[svn:parrot] r47436 - in branches/gsoc_nfg: . compilers/data_json compilers/imcc compilers/opsc compilers/opsc/src compilers/opsc/src/Ops compilers/opsc/src/Ops/Trans compilers/pct compilers/pct/src/PAST compilers/pct/src/PCT compilers/pct/src/POST compilers/pge compilers/tge config/auto config/auto/cpu/i386 config/auto/cpu/ppc config/auto/cpu/sun4 config/auto/cpu/x86_64 config/auto/sizes config/auto/zlib config/gen config/gen/config_pm config/gen/makefiles config/gen/platform/ansi config/gen/platform/generic config/gen/platform/solaris config/gen/platform/win32 config/init config/init/hints config/inter docs docs/book/draft docs/book/pct docs/book/pir docs/dev docs/pdds docs/user/pir examples/benchmarks examples/embed examples/io examples/json examples/languages/abc examples/languages/squaak examples/languages/squaak/doc examples/languages/squaak/src/builtins examples/library examples/nci examples/pasm examples/pge examples/pir examples/pir/befunge examples/sdl/lcd examples/sdl/minesweeper examples/shootout examples/tge/branch examples/tutorial ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot include/parrot/oplib lib/Parrot lib/Parrot/Configure/Step lib/Parrot/Harness ports/cygwin ports/debian ports/fedora/2.3.0 ports/suse/2.2.0 runtime/parrot/languages runtime/parrot/library runtime/parrot/library/Archive runtime/parrot/library/CGI runtime/parrot/library/Config runtime/parrot/library/Configure runtime/parrot/library/Digest runtime/parrot/library/HTTP runtime/parrot/library/LWP runtime/parrot/library/Math runtime/parrot/library/PGE runtime/parrot/library/Stream runtime/parrot/library/TAP runtime/parrot/library/Test/Builder src src/call src/dynoplibs src/gc src/interp src/io src/ops src/pmc src/runcore src/string t t/codingstd t/compilers/imcc/imcpasm t/compilers/imcc/syn t/compilers/opsc t/compilers/pct t/compilers/pge/p5regex t/compilers/pge/perl6regex t/compilers/tge t/dynoplibs t/dynpmc t/examples t/library t/native_pbc t/native_pbc/ testdata t/oo t/op t/pmc t/pmc/testlib t/src t/steps/auto t/steps/gen t/steps/init t/steps/init/hints t/steps/inter tools/build tools/dev tools/docs tools/install tools/util

darbelo at svn.parrot.org darbelo at svn.parrot.org
Mon Jun 7 18:03:18 UTC 2010


Author: darbelo
Date: Mon Jun  7 18:03:08 2010
New Revision: 47436
URL: https://trac.parrot.org/parrot/changeset/47436

Log:
Sync with trunk.

Added:
   branches/gsoc_nfg/src/dynoplibs/bit.ops
      - copied unchanged from r47434, trunk/src/dynoplibs/bit.ops
   branches/gsoc_nfg/src/dynoplibs/debug.ops
      - copied unchanged from r47434, trunk/src/dynoplibs/debug.ops
   branches/gsoc_nfg/src/dynoplibs/io.ops
      - copied unchanged from r47434, trunk/src/dynoplibs/io.ops
   branches/gsoc_nfg/src/dynoplibs/sys.ops
      - copied unchanged from r47434, trunk/src/dynoplibs/sys.ops
   branches/gsoc_nfg/src/dynoplibs/trans.ops
      - copied unchanged from r47434, trunk/src/dynoplibs/trans.ops
   branches/gsoc_nfg/t/dynoplibs/bit.t
      - copied unchanged from r47434, trunk/t/dynoplibs/bit.t
   branches/gsoc_nfg/t/dynoplibs/debug.t
      - copied unchanged from r47434, trunk/t/dynoplibs/debug.t
   branches/gsoc_nfg/t/dynoplibs/io.t
      - copied unchanged from r47434, trunk/t/dynoplibs/io.t
   branches/gsoc_nfg/t/dynoplibs/pmc_pow.t
      - copied unchanged from r47434, trunk/t/dynoplibs/pmc_pow.t
   branches/gsoc_nfg/t/dynoplibs/string_pmc_bitwise.t
      - copied unchanged from r47434, trunk/t/dynoplibs/string_pmc_bitwise.t
   branches/gsoc_nfg/t/dynoplibs/sysinfo.t
      - copied unchanged from r47434, trunk/t/dynoplibs/sysinfo.t
   branches/gsoc_nfg/t/dynoplibs/time.t
      - copied unchanged from r47434, trunk/t/dynoplibs/time.t
   branches/gsoc_nfg/t/dynoplibs/time_old.t
      - copied unchanged from r47434, trunk/t/dynoplibs/time_old.t
   branches/gsoc_nfg/t/dynoplibs/trans-infnan.t
      - copied unchanged from r47434, trunk/t/dynoplibs/trans-infnan.t
   branches/gsoc_nfg/t/dynoplibs/trans-old.t
      - copied unchanged from r47434, trunk/t/dynoplibs/trans-old.t
   branches/gsoc_nfg/t/dynoplibs/trans.t
      - copied unchanged from r47434, trunk/t/dynoplibs/trans.t
   branches/gsoc_nfg/t/library/distutils.t
      - copied unchanged from r47434, trunk/t/library/distutils.t
   branches/gsoc_nfg/t/native_pbc/integer.pbc
      - copied unchanged from r47434, trunk/t/native_pbc/integer.pbc
   branches/gsoc_nfg/t/native_pbc/number.pbc
      - copied unchanged from r47434, trunk/t/native_pbc/number.pbc
   branches/gsoc_nfg/t/native_pbc/string.pbc
      - copied unchanged from r47434, trunk/t/native_pbc/string.pbc
   branches/gsoc_nfg/tools/dev/mk_packfile_pbc
      - copied unchanged from r47434, trunk/tools/dev/mk_packfile_pbc
Deleted:
   branches/gsoc_nfg/config/auto/extra_nci_thunks.pm
   branches/gsoc_nfg/src/ops/debug.ops
   branches/gsoc_nfg/t/op/debuginfo.t
   branches/gsoc_nfg/t/op/io.t
   branches/gsoc_nfg/t/op/sysinfo.t
   branches/gsoc_nfg/t/op/time_old.t
   branches/gsoc_nfg/t/op/trans.t
   branches/gsoc_nfg/t/op/trans_old.t
   branches/gsoc_nfg/t/steps/auto/extra_nci_thunks-01.t
Modified:
   branches/gsoc_nfg/   (props changed)
   branches/gsoc_nfg/DEPRECATED.pod
   branches/gsoc_nfg/MANIFEST
   branches/gsoc_nfg/MANIFEST.SKIP
   branches/gsoc_nfg/MANIFEST.generated
   branches/gsoc_nfg/PBC_COMPAT
   branches/gsoc_nfg/compilers/data_json/Rules.mak   (props changed)
   branches/gsoc_nfg/compilers/imcc/Rules.in   (props changed)
   branches/gsoc_nfg/compilers/imcc/imc.h
   branches/gsoc_nfg/compilers/imcc/imcc.y
   branches/gsoc_nfg/compilers/imcc/imcparser.c
   branches/gsoc_nfg/compilers/imcc/imcparser.h
   branches/gsoc_nfg/compilers/imcc/parser_util.c
   branches/gsoc_nfg/compilers/imcc/pbc.c
   branches/gsoc_nfg/compilers/imcc/pcc.c
   branches/gsoc_nfg/compilers/imcc/reg_alloc.c
   branches/gsoc_nfg/compilers/imcc/symreg.c
   branches/gsoc_nfg/compilers/opsc/ops2c.nqp
   branches/gsoc_nfg/compilers/opsc/src/Ops/Emitter.pm
   branches/gsoc_nfg/compilers/opsc/src/Ops/File.pm
   branches/gsoc_nfg/compilers/opsc/src/Ops/Trans/C.pm
   branches/gsoc_nfg/compilers/opsc/src/builtins.pir
   branches/gsoc_nfg/compilers/pct/Rules.mak   (props changed)
   branches/gsoc_nfg/compilers/pct/src/PAST/Compiler.pir
   branches/gsoc_nfg/compilers/pct/src/PCT/HLLCompiler.pir
   branches/gsoc_nfg/compilers/pct/src/POST/Compiler.pir
   branches/gsoc_nfg/compilers/pct/src/POST/Node.pir
   branches/gsoc_nfg/compilers/pge/Rules.mak   (props changed)
   branches/gsoc_nfg/compilers/tge/Rules.mak   (props changed)
   branches/gsoc_nfg/compilers/tge/tgc.pir
   branches/gsoc_nfg/config/auto/arch.pm
   branches/gsoc_nfg/config/auto/attributes.pm
   branches/gsoc_nfg/config/auto/cpu.pm
   branches/gsoc_nfg/config/auto/cpu/i386/auto.pm
   branches/gsoc_nfg/config/auto/cpu/ppc/auto.pm
   branches/gsoc_nfg/config/auto/cpu/sun4/auto.pm
   branches/gsoc_nfg/config/auto/cpu/x86_64/auto.pm
   branches/gsoc_nfg/config/auto/ctags.pm
   branches/gsoc_nfg/config/auto/env.pm
   branches/gsoc_nfg/config/auto/gc.pm
   branches/gsoc_nfg/config/auto/gcc.pm
   branches/gsoc_nfg/config/auto/gettext.pm
   branches/gsoc_nfg/config/auto/gmp.pm
   branches/gsoc_nfg/config/auto/headers.pm
   branches/gsoc_nfg/config/auto/icu.pm
   branches/gsoc_nfg/config/auto/inline.pm
   branches/gsoc_nfg/config/auto/isreg.pm
   branches/gsoc_nfg/config/auto/memalign.pm
   branches/gsoc_nfg/config/auto/msvc.pm
   branches/gsoc_nfg/config/auto/neg_0.pm
   branches/gsoc_nfg/config/auto/opengl.pm
   branches/gsoc_nfg/config/auto/pcre.pm
   branches/gsoc_nfg/config/auto/readline.pm
   branches/gsoc_nfg/config/auto/signal.pm
   branches/gsoc_nfg/config/auto/sizes/intval_maxmin_c.in   (props changed)
   branches/gsoc_nfg/config/auto/snprintf.pm
   branches/gsoc_nfg/config/auto/thread.pm
   branches/gsoc_nfg/config/auto/warnings.pm
   branches/gsoc_nfg/config/auto/zlib/   (props changed)
   branches/gsoc_nfg/config/auto/zlib.pm
   branches/gsoc_nfg/config/gen/config_pm/config_pir.in
   branches/gsoc_nfg/config/gen/makefiles/root.in
   branches/gsoc_nfg/config/gen/opengl.pm
   branches/gsoc_nfg/config/gen/platform.pm
   branches/gsoc_nfg/config/gen/platform/ansi/time.c
   branches/gsoc_nfg/config/gen/platform/generic/time.c
   branches/gsoc_nfg/config/gen/platform/solaris/time.c
   branches/gsoc_nfg/config/gen/platform/win32/dl.c
   branches/gsoc_nfg/config/gen/platform/win32/time.c
   branches/gsoc_nfg/config/init/defaults.pm
   branches/gsoc_nfg/config/init/hints.pm
   branches/gsoc_nfg/config/init/hints/darwin.pm
   branches/gsoc_nfg/config/init/hints/linux.pm
   branches/gsoc_nfg/config/init/optimize.pm
   branches/gsoc_nfg/config/inter/libparrot.pm
   branches/gsoc_nfg/config/inter/progs.pm
   branches/gsoc_nfg/docs/book/draft/README   (props changed)
   branches/gsoc_nfg/docs/book/draft/appa_glossary.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/appb_patch_submission.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/appc_command_line_options.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/appd_build_options.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/appe_source_code.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/ch01_introduction.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/ch02_getting_started.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/ch07_dynpmcs.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/ch08_dynops.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/ch10_opcode_reference.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/ch11_directive_reference.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/ch12_operator_reference.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/chXX_hlls.pod   (contents, props changed)
   branches/gsoc_nfg/docs/book/draft/chXX_library.pod   (props changed)
   branches/gsoc_nfg/docs/book/draft/chXX_testing_and_debugging.pod   (props changed)
   branches/gsoc_nfg/docs/book/pct/ch01_introduction.pod   (props changed)
   branches/gsoc_nfg/docs/book/pct/ch02_getting_started.pod   (props changed)
   branches/gsoc_nfg/docs/book/pct/ch03_compiler_tools.pod   (props changed)
   branches/gsoc_nfg/docs/book/pct/ch04_pge.pod   (props changed)
   branches/gsoc_nfg/docs/book/pct/ch05_nqp.pod   (props changed)
   branches/gsoc_nfg/docs/book/pir/ch04_variables.pod
   branches/gsoc_nfg/docs/book/pir/ch08_io.pod
   branches/gsoc_nfg/docs/compiler_faq.pod
   branches/gsoc_nfg/docs/dev/c_functions.pod   (props changed)
   branches/gsoc_nfg/docs/parrotbyte.pod
   branches/gsoc_nfg/docs/parrothist.pod
   branches/gsoc_nfg/docs/pdds/pdd20_lexical_vars.pod
   branches/gsoc_nfg/docs/pdds/pdd21_namespaces.pod
   branches/gsoc_nfg/docs/pdds/pdd22_io.pod
   branches/gsoc_nfg/docs/pdds/pdd30_install.pod   (props changed)
   branches/gsoc_nfg/docs/running.pod
   branches/gsoc_nfg/docs/tests.pod
   branches/gsoc_nfg/docs/user/pir/intro.pod
   branches/gsoc_nfg/examples/benchmarks/primes.pasm
   branches/gsoc_nfg/examples/benchmarks/primes_i.pasm
   branches/gsoc_nfg/examples/embed/cotorra.c   (props changed)
   branches/gsoc_nfg/examples/io/http.pir
   branches/gsoc_nfg/examples/io/httpd.pir
   branches/gsoc_nfg/examples/json/postalcodes.pir
   branches/gsoc_nfg/examples/languages/abc/   (props changed)
   branches/gsoc_nfg/examples/languages/abc/abc.pir
   branches/gsoc_nfg/examples/languages/squaak/   (props changed)
   branches/gsoc_nfg/examples/languages/squaak/doc/tutorial_episode_1.pod
   branches/gsoc_nfg/examples/languages/squaak/squaak.pir
   branches/gsoc_nfg/examples/languages/squaak/src/builtins/say.pir
   branches/gsoc_nfg/examples/library/md5sum.pir
   branches/gsoc_nfg/examples/library/ncurses_life.pir
   branches/gsoc_nfg/examples/nci/xlibtest.pir
   branches/gsoc_nfg/examples/pasm/cat.pasm
   branches/gsoc_nfg/examples/pge/demo.pir   (contents, props changed)
   branches/gsoc_nfg/examples/pir/befunge/befunge.pir
   branches/gsoc_nfg/examples/pir/befunge/debug.pir
   branches/gsoc_nfg/examples/pir/befunge/io.pir
   branches/gsoc_nfg/examples/pir/io.pir
   branches/gsoc_nfg/examples/pir/life.pir
   branches/gsoc_nfg/examples/pir/make_hello_pbc.pir
   branches/gsoc_nfg/examples/pir/pirric.pir
   branches/gsoc_nfg/examples/pir/quine_ord.pir
   branches/gsoc_nfg/examples/pir/readline.pir
   branches/gsoc_nfg/examples/pir/sudoku.pir
   branches/gsoc_nfg/examples/pir/uniq.pir
   branches/gsoc_nfg/examples/sdl/lcd/clock.pir
   branches/gsoc_nfg/examples/sdl/minesweeper/field.pir
   branches/gsoc_nfg/examples/shootout/binarytrees.pir
   branches/gsoc_nfg/examples/shootout/fasta.pir
   branches/gsoc_nfg/examples/shootout/knucleotide.pir
   branches/gsoc_nfg/examples/shootout/nbody.pir
   branches/gsoc_nfg/examples/shootout/partialsums-2.pir
   branches/gsoc_nfg/examples/shootout/partialsums.pir
   branches/gsoc_nfg/examples/shootout/regexdna.pir
   branches/gsoc_nfg/examples/shootout/revcomp.pir
   branches/gsoc_nfg/examples/shootout/sumcol.pir
   branches/gsoc_nfg/examples/tge/branch/transform.pir
   branches/gsoc_nfg/examples/tutorial/40_file_ops.pir
   branches/gsoc_nfg/ext/nqp-rx/Rules.mak   (props changed)
   branches/gsoc_nfg/ext/nqp-rx/src/stage0/HLL-s0.pir
   branches/gsoc_nfg/ext/nqp-rx/src/stage0/NQP-s0.pir
   branches/gsoc_nfg/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   branches/gsoc_nfg/ext/nqp-rx/src/stage0/Regex-s0.pir
   branches/gsoc_nfg/ext/nqp-rx/src/stage0/nqp-setting.nqp
   branches/gsoc_nfg/include/parrot/call.h   (props changed)
   branches/gsoc_nfg/include/parrot/debugger.h
   branches/gsoc_nfg/include/parrot/exceptions.h
   branches/gsoc_nfg/include/parrot/gc_api.h   (contents, props changed)
   branches/gsoc_nfg/include/parrot/interpreter.h
   branches/gsoc_nfg/include/parrot/io.h
   branches/gsoc_nfg/include/parrot/misc.h
   branches/gsoc_nfg/include/parrot/oplib/   (props changed)
   branches/gsoc_nfg/include/parrot/oplib/core_ops.h
   branches/gsoc_nfg/include/parrot/oplib/ops.h
   branches/gsoc_nfg/include/parrot/opsenum.h
   branches/gsoc_nfg/include/parrot/packfile.h
   branches/gsoc_nfg/include/parrot/platform_interface.h
   branches/gsoc_nfg/include/parrot/runcore_api.h   (props changed)
   branches/gsoc_nfg/include/parrot/runcore_profiling.h   (props changed)
   branches/gsoc_nfg/include/parrot/runcore_trace.h   (props changed)
   branches/gsoc_nfg/lib/Parrot/Configure.pm
   branches/gsoc_nfg/lib/Parrot/Configure/Step/List.pm
   branches/gsoc_nfg/lib/Parrot/Configure/Step/Test.pm   (props changed)
   branches/gsoc_nfg/lib/Parrot/H2inc.pm   (props changed)
   branches/gsoc_nfg/lib/Parrot/Harness/DefaultTests.pm
   branches/gsoc_nfg/ports/cygwin/parrot-1.0.0-1.cygport   (props changed)
   branches/gsoc_nfg/ports/debian/libparrot-dev.install.in   (props changed)
   branches/gsoc_nfg/ports/debian/libparrot.install.in   (props changed)
   branches/gsoc_nfg/ports/debian/parrot-doc.install.in   (props changed)
   branches/gsoc_nfg/ports/debian/parrot.install.in   (props changed)
   branches/gsoc_nfg/ports/fedora/2.3.0/   (props changed)
   branches/gsoc_nfg/ports/suse/2.2.0/   (props changed)
   branches/gsoc_nfg/runtime/parrot/languages/   (props changed)
   branches/gsoc_nfg/runtime/parrot/library/Archive/Tar.pir
   branches/gsoc_nfg/runtime/parrot/library/Archive/Zip.pir
   branches/gsoc_nfg/runtime/parrot/library/CGI/QueryHash.pir
   branches/gsoc_nfg/runtime/parrot/library/Config/JSON.pir
   branches/gsoc_nfg/runtime/parrot/library/Configure/genfile.pir
   branches/gsoc_nfg/runtime/parrot/library/Crow.pir
   branches/gsoc_nfg/runtime/parrot/library/Digest/MD5.pir
   branches/gsoc_nfg/runtime/parrot/library/HTTP/Message.pir
   branches/gsoc_nfg/runtime/parrot/library/LWP/Protocol.pir
   branches/gsoc_nfg/runtime/parrot/library/LWP/UserAgent.pir
   branches/gsoc_nfg/runtime/parrot/library/Math/Rand.pir   (props changed)
   branches/gsoc_nfg/runtime/parrot/library/PGE/Util.pir
   branches/gsoc_nfg/runtime/parrot/library/Rules.mak   (props changed)
   branches/gsoc_nfg/runtime/parrot/library/Stream/ParrotIO.pir
   branches/gsoc_nfg/runtime/parrot/library/TAP/Harness.pir
   branches/gsoc_nfg/runtime/parrot/library/TAP/Parser.pir
   branches/gsoc_nfg/runtime/parrot/library/Test/Builder/Output.pir
   branches/gsoc_nfg/runtime/parrot/library/distutils.pir
   branches/gsoc_nfg/runtime/parrot/library/osutils.pir
   branches/gsoc_nfg/runtime/parrot/library/parrotlib.pir
   branches/gsoc_nfg/runtime/parrot/library/pcre.pir
   branches/gsoc_nfg/src/call/ops.c   (props changed)
   branches/gsoc_nfg/src/call/pcc.c   (props changed)
   branches/gsoc_nfg/src/debug.c
   branches/gsoc_nfg/src/dynoplibs/Defines.in
   branches/gsoc_nfg/src/dynoplibs/Rules.in
   branches/gsoc_nfg/src/dynoplibs/math.ops
   branches/gsoc_nfg/src/exceptions.c
   branches/gsoc_nfg/src/gc/alloc_memory.c   (props changed)
   branches/gsoc_nfg/src/gc/alloc_resources.c   (props changed)
   branches/gsoc_nfg/src/gc/api.c   (props changed)
   branches/gsoc_nfg/src/gc/malloc.c   (props changed)
   branches/gsoc_nfg/src/gc/malloc_trace.c   (props changed)
   branches/gsoc_nfg/src/gc/mark_sweep.c   (props changed)
   branches/gsoc_nfg/src/gc/system.c   (props changed)
   branches/gsoc_nfg/src/interp/inter_cb.c   (props changed)
   branches/gsoc_nfg/src/interp/inter_create.c   (props changed)
   branches/gsoc_nfg/src/interp/inter_misc.c   (contents, props changed)
   branches/gsoc_nfg/src/io/api.c
   branches/gsoc_nfg/src/oo.c
   branches/gsoc_nfg/src/ops/bit.ops
   branches/gsoc_nfg/src/ops/cmp.ops
   branches/gsoc_nfg/src/ops/core.ops
   branches/gsoc_nfg/src/ops/core_ops.c
   branches/gsoc_nfg/src/ops/experimental.ops
   branches/gsoc_nfg/src/ops/io.ops
   branches/gsoc_nfg/src/ops/math.ops
   branches/gsoc_nfg/src/ops/object.ops
   branches/gsoc_nfg/src/ops/pmc.ops
   branches/gsoc_nfg/src/ops/set.ops
   branches/gsoc_nfg/src/ops/string.ops
   branches/gsoc_nfg/src/ops/sys.ops
   branches/gsoc_nfg/src/ops/var.ops
   branches/gsoc_nfg/src/packdump.c
   branches/gsoc_nfg/src/packfile.c
   branches/gsoc_nfg/src/pbc_merge.c
   branches/gsoc_nfg/src/pmc/boolean.pmc
   branches/gsoc_nfg/src/pmc/exception.pmc
   branches/gsoc_nfg/src/pmc/filehandle.pmc
   branches/gsoc_nfg/src/pmc/fixedstringarray.pmc
   branches/gsoc_nfg/src/pmc/imageio.pmc
   branches/gsoc_nfg/src/pmc/orderedhash.pmc
   branches/gsoc_nfg/src/pmc/resizablepmcarray.pmc
   branches/gsoc_nfg/src/pmc/string.pmc
   branches/gsoc_nfg/src/pmc/stringbuilder.pmc
   branches/gsoc_nfg/src/runcore/cores.c   (props changed)
   branches/gsoc_nfg/src/runcore/main.c   (props changed)
   branches/gsoc_nfg/src/runcore/profiling.c   (props changed)
   branches/gsoc_nfg/src/runcore/trace.c   (props changed)
   branches/gsoc_nfg/src/string/api.c
   branches/gsoc_nfg/src/utils.c
   branches/gsoc_nfg/t/codingstd/c_function_docs.t
   branches/gsoc_nfg/t/compilers/imcc/imcpasm/opt1.t
   branches/gsoc_nfg/t/compilers/imcc/syn/clash.t
   branches/gsoc_nfg/t/compilers/imcc/syn/const.t
   branches/gsoc_nfg/t/compilers/imcc/syn/errors.t
   branches/gsoc_nfg/t/compilers/imcc/syn/op.t
   branches/gsoc_nfg/t/compilers/imcc/syn/tail.t
   branches/gsoc_nfg/t/compilers/opsc/06-opsfile.t
   branches/gsoc_nfg/t/compilers/opsc/07-emitter.t
   branches/gsoc_nfg/t/compilers/opsc/common.pir
   branches/gsoc_nfg/t/compilers/pct/past.t
   branches/gsoc_nfg/t/compilers/pct/post.t
   branches/gsoc_nfg/t/compilers/pge/p5regex/p5rx.t
   branches/gsoc_nfg/t/compilers/pge/perl6regex/01-regex.t
   branches/gsoc_nfg/t/compilers/tge/NoneGrammar.tg   (props changed)
   branches/gsoc_nfg/t/dynoplibs/math.t
   branches/gsoc_nfg/t/dynoplibs/obscure.t
   branches/gsoc_nfg/t/dynpmc/gziphandle.t
   branches/gsoc_nfg/t/dynpmc/os.t
   branches/gsoc_nfg/t/examples/pir.t
   branches/gsoc_nfg/t/harness.pir
   branches/gsoc_nfg/t/library/coroutine.t
   branches/gsoc_nfg/t/library/osutils.t
   branches/gsoc_nfg/t/native_pbc/annotations.pbc
   branches/gsoc_nfg/t/native_pbc/integer_1.pbc
   branches/gsoc_nfg/t/native_pbc/integer_2.pbc
   branches/gsoc_nfg/t/native_pbc/number_1.pbc
   branches/gsoc_nfg/t/native_pbc/number_2.pbc
   branches/gsoc_nfg/t/native_pbc/string_1.pbc
   branches/gsoc_nfg/t/native_pbc/string_2.pbc
   branches/gsoc_nfg/t/native_pbc/testdata/string.pasm
   branches/gsoc_nfg/t/oo/methods.t
   branches/gsoc_nfg/t/oo/root_new.t   (props changed)
   branches/gsoc_nfg/t/op/arithmetics.t
   branches/gsoc_nfg/t/op/arithmetics_pmc.t
   branches/gsoc_nfg/t/op/exit.t
   branches/gsoc_nfg/t/op/inf_nan.t
   branches/gsoc_nfg/t/op/integer.t
   branches/gsoc_nfg/t/op/interp.t
   branches/gsoc_nfg/t/op/number.t
   branches/gsoc_nfg/t/op/sprintf.t
   branches/gsoc_nfg/t/op/string.t
   branches/gsoc_nfg/t/op/stringu.t
   branches/gsoc_nfg/t/op/time.t
   branches/gsoc_nfg/t/pmc/addrregistry.t
   branches/gsoc_nfg/t/pmc/complex.t
   branches/gsoc_nfg/t/pmc/eval.t
   branches/gsoc_nfg/t/pmc/exporter.t
   branches/gsoc_nfg/t/pmc/filehandle.t
   branches/gsoc_nfg/t/pmc/fixedintegerarray.t
   branches/gsoc_nfg/t/pmc/freeze.t
   branches/gsoc_nfg/t/pmc/integer.t
   branches/gsoc_nfg/t/pmc/io.t
   branches/gsoc_nfg/t/pmc/lexpad.t
   branches/gsoc_nfg/t/pmc/namespace-old.t   (props changed)
   branches/gsoc_nfg/t/pmc/nci.t
   branches/gsoc_nfg/t/pmc/packfile.t
   branches/gsoc_nfg/t/pmc/packfileannotations.t
   branches/gsoc_nfg/t/pmc/resizablebooleanarray.t
   branches/gsoc_nfg/t/pmc/resizableintegerarray.t
   branches/gsoc_nfg/t/pmc/resizablepmcarray.t
   branches/gsoc_nfg/t/pmc/string.t
   branches/gsoc_nfg/t/pmc/stringbuilder.t
   branches/gsoc_nfg/t/pmc/stringhandle.t
   branches/gsoc_nfg/t/pmc/sub.t
   branches/gsoc_nfg/t/pmc/sys.t
   branches/gsoc_nfg/t/pmc/testlib/packfile_common.pir
   branches/gsoc_nfg/t/pmc/threads.t
   branches/gsoc_nfg/t/src/embed.t   (props changed)
   branches/gsoc_nfg/t/src/extend.t
   branches/gsoc_nfg/t/steps/auto/ctags-01.t
   branches/gsoc_nfg/t/steps/auto/gettext-01.t
   branches/gsoc_nfg/t/steps/auto/gmp-01.t
   branches/gsoc_nfg/t/steps/auto/icu-01.t
   branches/gsoc_nfg/t/steps/auto/msvc-01.t
   branches/gsoc_nfg/t/steps/auto/neg_0-01.t
   branches/gsoc_nfg/t/steps/auto/opengl-01.t
   branches/gsoc_nfg/t/steps/auto/pcre-01.t
   branches/gsoc_nfg/t/steps/auto/readline-02.t
   branches/gsoc_nfg/t/steps/auto/zlib-01.t
   branches/gsoc_nfg/t/steps/gen/opengl-01.t
   branches/gsoc_nfg/t/steps/gen/platform-01.t
   branches/gsoc_nfg/t/steps/init/defaults-01.t
   branches/gsoc_nfg/t/steps/init/hints/darwin-01.t
   branches/gsoc_nfg/t/steps/init/hints/linux-01.t   (contents, props changed)
   branches/gsoc_nfg/t/steps/inter/libparrot-01.t
   branches/gsoc_nfg/tools/build/h2inc.pl   (props changed)
   branches/gsoc_nfg/tools/dev/fetch_languages.pl   (contents, props changed)
   branches/gsoc_nfg/tools/dev/mk_gitignore.pl   (props changed)
   branches/gsoc_nfg/tools/dev/mk_language_shell.pl
   branches/gsoc_nfg/tools/dev/nci_thunk_gen.pir
   branches/gsoc_nfg/tools/dev/pbc_to_exe.pir
   branches/gsoc_nfg/tools/docs/filename_and_chapter.pl
   branches/gsoc_nfg/tools/install/smoke.pl
   branches/gsoc_nfg/tools/util/inc_ver.pir
   branches/gsoc_nfg/tools/util/parrot-config.pir
   branches/gsoc_nfg/tools/util/perlcritic-cage.conf   (props changed)
   branches/gsoc_nfg/tools/util/perlcritic.conf
   branches/gsoc_nfg/tools/util/pgegrep

Modified: branches/gsoc_nfg/DEPRECATED.pod
==============================================================================
--- branches/gsoc_nfg/DEPRECATED.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/DEPRECATED.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -134,18 +134,18 @@
 
 L<https://trac.parrot.org/parrot/ticket/1628>
 
-=back
+=item logical_* vtables [eligiblie in 2.7]
 
-=head1 Opcodes
+These can be replaced by C<get_bool> and intval ops unless you're using them for
+things that aren't really logical ops (don't do that!).
 
-=over 4
+L<https://trac.parrot.org/parrot/ticket/1655>
 
-=item moved to dynop [eligible in 1.1]
+=back
 
-Parts or all of: bit.ops, debug.ops, io.ops, math.ops, set.ops
-(the obscure and rarely used parts), sys.ops.
+=head1 Opcodes
 
-L<https://trac.parrot.org/parrot/ticket/449>
+=over 4
 
 =item get_addr and set_addr [eligible in 1.5]
 
@@ -239,6 +239,12 @@
 
 L<https://trac.parrot.org/parrot/ticket/1635>
 
+=item logical PMC ops [eligible in 2.7]
+
+These fall out from the logical vtables deprecation.
+
+L<https://trac.parrot.org/parrot/ticket/1655>
+
 =back
 
 =head1 Bytecode

Modified: branches/gsoc_nfg/MANIFEST
==============================================================================
--- branches/gsoc_nfg/MANIFEST	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/MANIFEST	Mon Jun  7 18:03:08 2010	(r47436)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Sat May 29 16:39:25 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Mon Jun  7 14:47:00 2010 UT
 #
 # See below for documentation on the format of this file.
 #
@@ -189,7 +189,6 @@
 config/auto/env.pm                                          []
 config/auto/env/test_setenv_c.in                            []
 config/auto/env/test_unsetenv_c.in                          []
-config/auto/extra_nci_thunks.pm                             []
 config/auto/format.pm                                       []
 config/auto/frames.pm                                       []
 config/auto/frames/test_exec_cygwin_c.in                    []
@@ -1253,9 +1252,14 @@
 src/dynoplibs/Defines.in                                    []
 src/dynoplibs/README                                        []doc
 src/dynoplibs/Rules.in                                      []
+src/dynoplibs/bit.ops                                       []
+src/dynoplibs/debug.ops                                     []
 src/dynoplibs/deprecated.ops                                []
+src/dynoplibs/io.ops                                        []
 src/dynoplibs/math.ops                                      []
 src/dynoplibs/obscure.ops                                   []
+src/dynoplibs/sys.ops                                       []
+src/dynoplibs/trans.ops                                     []
 src/dynpmc/Defines.in                                       []
 src/dynpmc/README.pod                                       []doc
 src/dynpmc/Rules.in                                         []
@@ -1324,7 +1328,6 @@
 src/ops/cmp.ops                                             []
 src/ops/core.ops                                            []
 src/ops/core_ops.c                                          []
-src/ops/debug.ops                                           []
 src/ops/experimental.ops                                    []
 src/ops/io.ops                                              []
 src/ops/math.ops                                            []
@@ -1462,6 +1465,7 @@
 src/string/encoding/utf16.h                                 []
 src/string/encoding/utf8.c                                  []
 src/string/encoding/utf8.h                                  []
+src/string/grapheme.c                                       []
 src/string/grapheme.h                                       []
 src/string/primitives.c                                     []
 src/string/unicode.h                                        []
@@ -1651,9 +1655,20 @@
 t/distro/file_metadata.t                                    [test]
 t/distro/manifest.t                                         [test]
 t/distro/manifest_generated.t                               [test]
+t/dynoplibs/bit.t                                           [test]
+t/dynoplibs/debug.t                                         [test]
 t/dynoplibs/deprecated.t                                    [test]
+t/dynoplibs/io.t                                            [test]
 t/dynoplibs/math.t                                          [test]
 t/dynoplibs/obscure.t                                       [test]
+t/dynoplibs/pmc_pow.t                                       [test]
+t/dynoplibs/string_pmc_bitwise.t                            [test]
+t/dynoplibs/sysinfo.t                                       [test]
+t/dynoplibs/time.t                                          [test]
+t/dynoplibs/time_old.t                                      [test]
+t/dynoplibs/trans-infnan.t                                  [test]
+t/dynoplibs/trans-old.t                                     [test]
+t/dynoplibs/trans.t                                         [test]
 t/dynpmc/dynlexpad.t                                        [test]
 t/dynpmc/file.t                                             [test]
 t/dynpmc/foo.t                                              [test]
@@ -1685,6 +1700,7 @@
 t/library/cgi_query_hash.t                                  [test]
 t/library/configure.t                                       [test]
 t/library/coroutine.t                                       [test]
+t/library/distutils.t                                       [test]
 t/library/dumper.t                                          [test]
 t/library/getopt_obj.t                                      [test]
 t/library/hllmacros.t                                       [test]
@@ -1721,6 +1737,7 @@
 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]
 t/native_pbc/integer_1.pbc                                  [test]
 t/native_pbc/integer_2.pbc                                  [test]
@@ -1729,6 +1746,7 @@
 t/native_pbc/integer_5.pbc                                  [test]
 t/native_pbc/integer_6.pbc                                  [test]
 t/native_pbc/integer_7.pbc                                  [test]
+t/native_pbc/number.pbc                                     [test]
 t/native_pbc/number.t                                       [test]
 t/native_pbc/number_1.pbc                                   [test]
 t/native_pbc/number_2.pbc                                   [test]
@@ -1737,6 +1755,7 @@
 t/native_pbc/number_5.pbc                                   [test]
 t/native_pbc/number_6.pbc                                   [test]
 t/native_pbc/number_7.pbc                                   [test]
+t/native_pbc/string.pbc                                     [test]
 t/native_pbc/string.t                                       [test]
 t/native_pbc/string_1.pbc                                   [test]
 t/native_pbc/string_2.pbc                                   [test]
@@ -1779,7 +1798,6 @@
 t/op/cmp-nonbranch.t                                        [test]
 t/op/comp.t                                                 [test]
 t/op/copy.t                                                 [test]
-t/op/debuginfo.t                                            [test]
 t/op/errorson.t                                             [test]
 t/op/exceptions.t                                           [test]
 t/op/exit.t                                                 [test]
@@ -1791,7 +1809,6 @@
 t/op/inf_nan.t                                              [test]
 t/op/integer.t                                              [test]
 t/op/interp.t                                               [test]
-t/op/io.t                                                   [test]
 t/op/jit.t                                                  [test]
 t/op/jitn.t                                                 [test]
 t/op/lexicals.t                                             [test]
@@ -1810,11 +1827,7 @@
 t/op/string_cs.t                                            [test]
 t/op/string_mem.t                                           [test]
 t/op/stringu.t                                              [test]
-t/op/sysinfo.t                                              [test]
 t/op/time.t                                                 [test]
-t/op/time_old.t                                             [test]
-t/op/trans.t                                                [test]
-t/op/trans_old.t                                            [test]
 t/op/vivify.t                                               [test]
 t/perl/Parrot_Distribution.t                                [test]
 t/perl/Parrot_Docs.t                                        [test]
@@ -1958,7 +1971,6 @@
 t/steps/auto/cpu-01.t                                       [test]
 t/steps/auto/ctags-01.t                                     [test]
 t/steps/auto/env-01.t                                       [test]
-t/steps/auto/extra_nci_thunks-01.t                          [test]
 t/steps/auto/format-01.t                                    [test]
 t/steps/auto/frames-01.t                                    [test]
 t/steps/auto/gc-01.t                                        [test]
@@ -2107,6 +2119,7 @@
 tools/dev/mk_manifest_and_skip.pl                           []
 tools/dev/mk_native_pbc                                     []
 tools/dev/mk_nci_thunks.pl                                  []
+tools/dev/mk_packfile_pbc                                   []
 tools/dev/mk_rpm_manifests.pl                               []
 tools/dev/nci_test_gen.pl                                   []
 tools/dev/nci_thunk_gen.pir                                 []

Modified: branches/gsoc_nfg/MANIFEST.SKIP
==============================================================================
--- branches/gsoc_nfg/MANIFEST.SKIP	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/MANIFEST.SKIP	Mon Jun  7 18:03:08 2010	(r47436)
@@ -1,6 +1,6 @@
 # ex: set ro:
 # $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Mon May 24 03:29:34 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Thu May 27 15:25:37 2010 UT
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -473,15 +473,6 @@
 ^include/parrot/platform_limits\.h/
 ^include/parrot/vtable\.h$
 ^include/parrot/vtable\.h/
-# generated from svn:ignore of 'include/parrot/oplib/'
-^include/parrot/oplib/.*_ops\.h$
-^include/parrot/oplib/.*_ops\.h/
-^include/parrot/oplib/.*_ops_cg.*\.h$
-^include/parrot/oplib/.*_ops_cg.*\.h/
-^include/parrot/oplib/.*_ops_switch\.h$
-^include/parrot/oplib/.*_ops_switch\.h/
-^include/parrot/oplib/ops\.h$
-^include/parrot/oplib/ops\.h/
 # generated from svn:ignore of 'include/pmc/'
 ^include/pmc/.*\.h$
 ^include/pmc/.*\.h/

Modified: branches/gsoc_nfg/MANIFEST.generated
==============================================================================
--- branches/gsoc_nfg/MANIFEST.generated	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/MANIFEST.generated	Mon Jun  7 18:03:08 2010	(r47436)
@@ -33,8 +33,6 @@
 include/parrot/extend_vtable.h                   [main]include
 include/parrot/feature.h                         [main]include
 include/parrot/has_header.h                      [main]include
-include/parrot/oplib/core_ops.h                  [main]include
-include/parrot/oplib/ops.h                       [main]include
 include/parrot/pbcversion.h                      [devel]include
 include/parrot/platform.h                        [main]include
 include/parrot/platform_limits.h                 [devel]include
@@ -152,6 +150,18 @@
 libparrot.dll                                    [main]bin
 libparrot.lib                                    [main]bin
 parrot.pc                                        [main]pkgconfig
+runtime/parrot/dynext/bit_ops.bundle             [library]
+runtime/parrot/dynext/bit_ops.dll                [library]
+runtime/parrot/dynext/bit_ops.dylib              [library]
+runtime/parrot/dynext/bit_ops.so                 [library]
+runtime/parrot/dynext/debug_ops.bundle           [library]
+runtime/parrot/dynext/debug_ops.dll              [library]
+runtime/parrot/dynext/debug_ops.dylib            [library]
+runtime/parrot/dynext/debug_ops.so               [library]
+runtime/parrot/dynext/deprecated_ops.bundle      [library]
+runtime/parrot/dynext/deprecated_ops.dll         [library]
+runtime/parrot/dynext/deprecated_ops.dylib       [library]
+runtime/parrot/dynext/deprecated_ops.so          [library]
 runtime/parrot/dynext/dynlexpad.bundle           [library]
 runtime/parrot/dynext/dynlexpad.dll              [library]
 runtime/parrot/dynext/dynlexpad.dylib            [library]
@@ -164,6 +174,10 @@
 runtime/parrot/dynext/gziphandle.dll             [library]
 runtime/parrot/dynext/gziphandle.dylib           [library]
 runtime/parrot/dynext/gziphandle.so              [library]
+runtime/parrot/dynext/io_ops.bundle              [library]
+runtime/parrot/dynext/io_ops.dll                 [library]
+runtime/parrot/dynext/io_ops.dylib               [library]
+runtime/parrot/dynext/io_ops.so                  [library]
 runtime/parrot/dynext/libglutcb.bundle           [library]
 runtime/parrot/dynext/libglutcb.dll              [library]
 runtime/parrot/dynext/libglutcb.dylib            [library]
@@ -184,6 +198,14 @@
 runtime/parrot/dynext/rational.dll               [library]
 runtime/parrot/dynext/rational.dylib             [library]
 runtime/parrot/dynext/rational.so                [library]
+runtime/parrot/dynext/sys_ops.bundle             [library]
+runtime/parrot/dynext/sys_ops.dll                [library]
+runtime/parrot/dynext/sys_ops.dylib              [library]
+runtime/parrot/dynext/sys_ops.so                 [library]
+runtime/parrot/dynext/trans_ops.bundle           [library]
+runtime/parrot/dynext/trans_ops.dll              [library]
+runtime/parrot/dynext/trans_ops.dylib            [library]
+runtime/parrot/dynext/trans_ops.so               [library]
 runtime/parrot/include/call_bits.pasm            [main]
 runtime/parrot/include/cclass.pasm               [main]
 runtime/parrot/include/config.fpmc               []

Modified: branches/gsoc_nfg/PBC_COMPAT
==============================================================================
--- branches/gsoc_nfg/PBC_COMPAT	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/PBC_COMPAT	Mon Jun  7 18:03:08 2010	(r47436)
@@ -23,10 +23,13 @@
 
 # TODO TT #361: all .pbc files should make-depend on PBC_COMPAT
 
-# Also, if you're removing an opcode, be sure to run "make opsrenumber"
+# Also, don't forget to run tools/dev/mk_packfile_pbc to rebuild PBCs
+# used for testing Packfile* PMCs.
 
 # please insert tab separated entries at the top of the list
 
+6.20	2010.05.29	plobsing	eliminate unused fixup type 'label'
+6.19	2010.05.27	plobsing	removed numerous core ops (TT #449)
 6.18	2010.05.25	cotto	removed ops.num
 6.17	2010.05.20	NotFound	store encoding of string constants
 6.16	2010.05.18	plobsing	move freeze/thaw adjacent to visit

Modified: branches/gsoc_nfg/compilers/imcc/imc.h
==============================================================================
--- branches/gsoc_nfg/compilers/imcc/imc.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/imcc/imc.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -186,6 +186,16 @@
 /* HEADERIZER BEGIN: compilers/imcc/parser_util.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+void * imcc_compile_file(PARROT_INTERP,
+    ARGIN(const char *fullname),
+    ARGOUT(STRING **error_message))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3)
+        FUNC_MODIFIES(*error_message);
+
 PARROT_WARN_UNUSED_RESULT
 int check_op(PARROT_INTERP,
     ARGOUT(char *fullname),
@@ -210,20 +220,6 @@
         __attribute__nonnull__(4)
         FUNC_MODIFIES(*error_message);
 
-PARROT_CANNOT_RETURN_NULL
-void * IMCC_compile_file(PARROT_INTERP, ARGIN(const char *s))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_CANNOT_RETURN_NULL
-void * IMCC_compile_file_s(PARROT_INTERP,
-    ARGIN(const char *s),
-    ARGOUT(STRING **error_message))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        FUNC_MODIFIES(*error_message);
-
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 PMC * imcc_compile_pasm(PARROT_INTERP, ARGIN(const char *s))
@@ -335,6 +331,10 @@
         FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*r);
 
+#define ASSERT_ARGS_imcc_compile_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(fullname) \
+    , PARROT_ASSERT_ARG(error_message))
 #define ASSERT_ARGS_check_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(fullname) \
@@ -344,13 +344,6 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(s) \
     , PARROT_ASSERT_ARG(error_message))
-#define ASSERT_ARGS_IMCC_compile_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(s))
-#define ASSERT_ARGS_IMCC_compile_file_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(s) \
-    , PARROT_ASSERT_ARG(error_message))
 #define ASSERT_ARGS_imcc_compile_pasm __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(s))

Modified: branches/gsoc_nfg/compilers/imcc/imcc.y
==============================================================================
--- branches/gsoc_nfg/compilers/imcc/imcc.y	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/imcc/imcc.y	Mon Jun  7 18:03:08 2010	(r47436)
@@ -1055,9 +1055,12 @@
 do_loadlib(PARROT_INTERP, ARGIN(const char *lib))
 {
     ASSERT_ARGS(do_loadlib)
-    STRING * const s = Parrot_str_unescape(interp, lib + 1, '"', NULL);
-    PMC    *ignored  = Parrot_load_lib(interp, s, NULL);
-    UNUSED(ignored);
+    STRING * const s       = Parrot_str_unescape(interp, lib + 1, '"', NULL);
+    PMC    * const lib_pmc = Parrot_load_lib(interp, s, NULL);
+    if (PMC_IS_NULL(lib_pmc) || !VTABLE_get_bool(interp, lib_pmc)) {
+        IMCC_fataly(interp, EXCEPTION_LIBRARY_ERROR,
+            "loadlib directive could not find library `%S'", s);
+    }
     Parrot_register_HLL_lib(interp, s);
 }
 

Modified: branches/gsoc_nfg/compilers/imcc/imcparser.c
==============================================================================
--- branches/gsoc_nfg/compilers/imcc/imcparser.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/imcc/imcparser.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -1136,9 +1136,12 @@
 do_loadlib(PARROT_INTERP, ARGIN(const char *lib))
 {
     ASSERT_ARGS(do_loadlib)
-    STRING * const s = Parrot_str_unescape(interp, lib + 1, '"', NULL);
-    PMC    *ignored  = Parrot_load_lib(interp, s, NULL);
-    UNUSED(ignored);
+    STRING * const s       = Parrot_str_unescape(interp, lib + 1, '"', NULL);
+    PMC    * const lib_pmc = Parrot_load_lib(interp, s, NULL);
+    if (PMC_IS_NULL(lib_pmc) || !VTABLE_get_bool(interp, lib_pmc)) {
+        IMCC_fataly(interp, EXCEPTION_LIBRARY_ERROR,
+            "loadlib directive could not find library `%S'", s);
+    }
     Parrot_register_HLL_lib(interp, s);
 }
 
@@ -1147,7 +1150,7 @@
 
 
 /* Line 189 of yacc.c  */
-#line 1140 "compilers/imcc/imcparser.c"
+#line 1143 "compilers/imcc/imcparser.c"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -1420,7 +1423,7 @@
 {
 
 /* Line 214 of yacc.c  */
-#line 1068 "compilers/imcc/imcc.y"
+#line 1071 "compilers/imcc/imcc.y"
 
     IdList * idlist;
     int t;
@@ -1431,7 +1434,7 @@
 
 
 /* Line 214 of yacc.c  */
-#line 1424 "compilers/imcc/imcparser.c"
+#line 1427 "compilers/imcc/imcparser.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1443,7 +1446,7 @@
 
 
 /* Line 264 of yacc.c  */
-#line 1436 "compilers/imcc/imcparser.c"
+#line 1439 "compilers/imcc/imcparser.c"
 
 #ifdef short
 # undef short
@@ -1866,41 +1869,41 @@
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,  1163,  1163,  1167,  1168,  1172,  1173,  1174,  1180,  1186,
-    1187,  1188,  1189,  1193,  1194,  1203,  1209,  1217,  1229,  1242,
-    1242,  1251,  1251,  1258,  1258,  1267,  1268,  1272,  1273,  1277,
-    1278,  1279,  1280,  1281,  1282,  1283,  1286,  1286,  1295,  1294,
-    1307,  1311,  1324,  1328,  1332,  1332,  1344,  1346,  1350,  1365,
-    1366,  1370,  1370,  1382,  1383,  1392,  1396,  1400,  1391,  1412,
-    1413,  1414,  1427,  1427,  1431,  1456,  1460,  1466,  1475,  1481,
-    1490,  1496,  1505,  1511,  1520,  1528,  1533,  1544,  1547,  1552,
-    1560,  1561,  1562,  1563,  1564,  1575,  1586,  1589,  1591,  1596,
-    1595,  1626,  1627,  1631,  1632,  1636,  1637,  1641,  1642,  1646,
-    1647,  1648,  1649,  1650,  1651,  1652,  1653,  1654,  1655,  1656,
-    1657,  1658,  1659,  1663,  1668,  1672,  1676,  1680,  1684,  1689,
-    1698,  1699,  1711,  1716,  1717,  1725,  1726,  1726,  1738,  1739,
-    1743,  1744,  1745,  1746,  1747,  1748,  1749,  1750,  1755,  1755,
-    1758,  1766,  1766,  1772,  1773,  1778,  1786,  1787,  1792,  1800,
-    1804,  1809,  1808,  1821,  1822,  1826,  1827,  1837,  1842,  1852,
-    1861,  1862,  1874,  1878,  1880,  1881,  1882,  1883,  1884,  1888,
-    1889,  1893,  1894,  1898,  1909,  1910,  1921,  1928,  1937,  1945,
-    1947,  1952,  1953,  1954,  1954,  1967,  1984,  1997,  1997,  2004,
-    2005,  2005,  2011,  2017,  2021,  2033,  2034,  2035,  2036,  2037,
-    2038,  2042,  2043,  2044,  2045,  2049,  2051,  2053,  2055,  2057,
-    2060,  2067,  2066,  2075,  2076,  2077,  2078,  2086,  2087,  2088,
-    2092,  2093,  2094,  2095,  2096,  2097,  2098,  2099,  2100,  2101,
-    2102,  2103,  2104,  2105,  2106,  2107,  2108,  2109,  2110,  2111,
-    2112,  2113,  2114,  2120,  2119,  2131,  2136,  2137,  2138,  2139,
-    2140,  2141,  2142,  2143,  2144,  2145,  2146,  2147,  2148,  2153,
-    2164,  2165,  2166,  2167,  2173,  2187,  2193,  2199,  2205,  2204,
-    2213,  2214,  2224,  2234,  2241,  2246,  2256,  2260,  2261,  2265,
-    2266,  2267,  2270,  2271,  2275,  2279,  2289,  2295,  2305,  2310,
-    2314,  2315,  2319,  2323,  2327,  2334,  2338,  2342,  2349,  2350,
-    2354,  2355,  2356,  2357,  2358,  2359,  2363,  2364,  2368,  2369,
-    2373,  2374,  2378,  2379,  2386,  2393,  2394,  2395,  2399,  2400,
-    2404,  2405,  2409,  2410,  2414,  2415,  2419,  2419,  2431,  2431,
-    2443,  2444,  2452,  2459,  2460,  2461,  2462,  2463,  2467,  2468,
-    2472,  2473,  2474
+       0,  1166,  1166,  1170,  1171,  1175,  1176,  1177,  1183,  1189,
+    1190,  1191,  1192,  1196,  1197,  1206,  1212,  1220,  1232,  1245,
+    1245,  1254,  1254,  1261,  1261,  1270,  1271,  1275,  1276,  1280,
+    1281,  1282,  1283,  1284,  1285,  1286,  1289,  1289,  1298,  1297,
+    1310,  1314,  1327,  1331,  1335,  1335,  1347,  1349,  1353,  1368,
+    1369,  1373,  1373,  1385,  1386,  1395,  1399,  1403,  1394,  1415,
+    1416,  1417,  1430,  1430,  1434,  1459,  1463,  1469,  1478,  1484,
+    1493,  1499,  1508,  1514,  1523,  1531,  1536,  1547,  1550,  1555,
+    1563,  1564,  1565,  1566,  1567,  1578,  1589,  1592,  1594,  1599,
+    1598,  1629,  1630,  1634,  1635,  1639,  1640,  1644,  1645,  1649,
+    1650,  1651,  1652,  1653,  1654,  1655,  1656,  1657,  1658,  1659,
+    1660,  1661,  1662,  1666,  1671,  1675,  1679,  1683,  1687,  1692,
+    1701,  1702,  1714,  1719,  1720,  1728,  1729,  1729,  1741,  1742,
+    1746,  1747,  1748,  1749,  1750,  1751,  1752,  1753,  1758,  1758,
+    1761,  1769,  1769,  1775,  1776,  1781,  1789,  1790,  1795,  1803,
+    1807,  1812,  1811,  1824,  1825,  1829,  1830,  1840,  1845,  1855,
+    1864,  1865,  1877,  1881,  1883,  1884,  1885,  1886,  1887,  1891,
+    1892,  1896,  1897,  1901,  1912,  1913,  1924,  1931,  1940,  1948,
+    1950,  1955,  1956,  1957,  1957,  1970,  1987,  2000,  2000,  2007,
+    2008,  2008,  2014,  2020,  2024,  2036,  2037,  2038,  2039,  2040,
+    2041,  2045,  2046,  2047,  2048,  2052,  2054,  2056,  2058,  2060,
+    2063,  2070,  2069,  2078,  2079,  2080,  2081,  2089,  2090,  2091,
+    2095,  2096,  2097,  2098,  2099,  2100,  2101,  2102,  2103,  2104,
+    2105,  2106,  2107,  2108,  2109,  2110,  2111,  2112,  2113,  2114,
+    2115,  2116,  2117,  2123,  2122,  2134,  2139,  2140,  2141,  2142,
+    2143,  2144,  2145,  2146,  2147,  2148,  2149,  2150,  2151,  2156,
+    2167,  2168,  2169,  2170,  2176,  2190,  2196,  2202,  2208,  2207,
+    2216,  2217,  2227,  2237,  2244,  2249,  2259,  2263,  2264,  2268,
+    2269,  2270,  2273,  2274,  2278,  2282,  2292,  2298,  2308,  2313,
+    2317,  2318,  2322,  2326,  2330,  2337,  2341,  2345,  2352,  2353,
+    2357,  2358,  2359,  2360,  2361,  2362,  2366,  2367,  2371,  2372,
+    2376,  2377,  2381,  2382,  2389,  2396,  2397,  2398,  2402,  2403,
+    2407,  2408,  2412,  2413,  2417,  2418,  2422,  2422,  2434,  2434,
+    2446,  2447,  2455,  2462,  2463,  2464,  2465,  2466,  2470,  2471,
+    2475,  2476,  2477
 };
 #endif
 
@@ -3260,28 +3263,28 @@
         case 2:
 
 /* Line 1464 of yacc.c  */
-#line 1163 "compilers/imcc/imcc.y"
+#line 1166 "compilers/imcc/imcc.y"
     { if (yynerrs) YYABORT; (yyval.i) = 0; }
     break;
 
   case 5:
 
 /* Line 1464 of yacc.c  */
-#line 1172 "compilers/imcc/imcc.y"
+#line 1175 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 6:
 
 /* Line 1464 of yacc.c  */
-#line 1173 "compilers/imcc/imcc.y"
+#line 1176 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 7:
 
 /* Line 1464 of yacc.c  */
-#line 1175 "compilers/imcc/imcc.y"
+#line 1178 "compilers/imcc/imcc.y"
     {
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3292,7 +3295,7 @@
   case 8:
 
 /* Line 1464 of yacc.c  */
-#line 1181 "compilers/imcc/imcc.y"
+#line 1184 "compilers/imcc/imcc.y"
     {
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3303,42 +3306,42 @@
   case 9:
 
 /* Line 1464 of yacc.c  */
-#line 1186 "compilers/imcc/imcc.y"
+#line 1189 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 10:
 
 /* Line 1464 of yacc.c  */
-#line 1187 "compilers/imcc/imcc.y"
+#line 1190 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 11:
 
 /* Line 1464 of yacc.c  */
-#line 1188 "compilers/imcc/imcc.y"
+#line 1191 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 12:
 
 /* Line 1464 of yacc.c  */
-#line 1189 "compilers/imcc/imcc.y"
+#line 1192 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 13:
 
 /* Line 1464 of yacc.c  */
-#line 1193 "compilers/imcc/imcc.y"
+#line 1196 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 14:
 
 /* Line 1464 of yacc.c  */
-#line 1195 "compilers/imcc/imcc.y"
+#line 1198 "compilers/imcc/imcc.y"
     {
            (yyval.i) = 0;
            do_loadlib(interp, (yyvsp[(2) - (3)].s));
@@ -3349,7 +3352,7 @@
   case 15:
 
 /* Line 1464 of yacc.c  */
-#line 1204 "compilers/imcc/imcc.y"
+#line 1207 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
            /* set_filename() frees the STRINGC */
@@ -3360,7 +3363,7 @@
   case 16:
 
 /* Line 1464 of yacc.c  */
-#line 1210 "compilers/imcc/imcc.y"
+#line 1213 "compilers/imcc/imcc.y"
     {
            /* set_filename() frees the STRINGC */
            set_filename(interp, (yyvsp[(2) - (3)].s));
@@ -3370,7 +3373,7 @@
   case 17:
 
 /* Line 1464 of yacc.c  */
-#line 1218 "compilers/imcc/imcc.y"
+#line 1221 "compilers/imcc/imcc.y"
     {
           /* We'll want to store an entry while emitting instructions, so just
            * store annotation like it's an instruction. */
@@ -3383,7 +3386,7 @@
   case 18:
 
 /* Line 1464 of yacc.c  */
-#line 1230 "compilers/imcc/imcc.y"
+#line 1233 "compilers/imcc/imcc.y"
     {
             STRING * const hll_name = Parrot_str_unescape(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
             Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp),
@@ -3398,14 +3401,14 @@
   case 19:
 
 /* Line 1464 of yacc.c  */
-#line 1242 "compilers/imcc/imcc.y"
+#line 1245 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 20:
 
 /* Line 1464 of yacc.c  */
-#line 1243 "compilers/imcc/imcc.y"
+#line 1246 "compilers/imcc/imcc.y"
     {
              mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
              mem_sys_free((yyvsp[(4) - (6)].s));
@@ -3416,14 +3419,14 @@
   case 21:
 
 /* Line 1464 of yacc.c  */
-#line 1251 "compilers/imcc/imcc.y"
+#line 1254 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 22:
 
 /* Line 1464 of yacc.c  */
-#line 1252 "compilers/imcc/imcc.y"
+#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));
            mem_sys_free((yyvsp[(6) - (6)].s));
@@ -3434,14 +3437,14 @@
   case 23:
 
 /* Line 1464 of yacc.c  */
-#line 1258 "compilers/imcc/imcc.y"
+#line 1261 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 24:
 
 /* Line 1464 of yacc.c  */
-#line 1259 "compilers/imcc/imcc.y"
+#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));
            mem_sys_free((yyvsp[(3) - (6)].s));
@@ -3453,49 +3456,49 @@
   case 29:
 
 /* Line 1464 of yacc.c  */
-#line 1277 "compilers/imcc/imcc.y"
+#line 1280 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 30:
 
 /* Line 1464 of yacc.c  */
-#line 1278 "compilers/imcc/imcc.y"
+#line 1281 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 31:
 
 /* Line 1464 of yacc.c  */
-#line 1279 "compilers/imcc/imcc.y"
+#line 1282 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 32:
 
 /* Line 1464 of yacc.c  */
-#line 1280 "compilers/imcc/imcc.y"
+#line 1283 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 33:
 
 /* Line 1464 of yacc.c  */
-#line 1281 "compilers/imcc/imcc.y"
+#line 1284 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 36:
 
 /* Line 1464 of yacc.c  */
-#line 1286 "compilers/imcc/imcc.y"
+#line 1289 "compilers/imcc/imcc.y"
     { clear_state(interp); }
     break;
 
   case 37:
 
 /* Line 1464 of yacc.c  */
-#line 1288 "compilers/imcc/imcc.y"
+#line 1291 "compilers/imcc/imcc.y"
     {
            (yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
                     (yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
@@ -3507,7 +3510,7 @@
   case 38:
 
 /* Line 1464 of yacc.c  */
-#line 1295 "compilers/imcc/imcc.y"
+#line 1298 "compilers/imcc/imcc.y"
     {
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
@@ -3517,7 +3520,7 @@
   case 39:
 
 /* Line 1464 of yacc.c  */
-#line 1300 "compilers/imcc/imcc.y"
+#line 1303 "compilers/imcc/imcc.y"
     {
            (yyval.i) = iSUBROUTINE(interp,
                     IMCC_INFO(interp)->cur_unit,
@@ -3530,7 +3533,7 @@
   case 40:
 
 /* Line 1464 of yacc.c  */
-#line 1308 "compilers/imcc/imcc.y"
+#line 1311 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
          }
@@ -3539,7 +3542,7 @@
   case 41:
 
 /* Line 1464 of yacc.c  */
-#line 1312 "compilers/imcc/imcc.y"
+#line 1315 "compilers/imcc/imcc.y"
     {
            char   *name = mem_sys_strdup((yyvsp[(2) - (4)].s) + 1);
            SymReg *r    = mk_pasm_reg(interp, (yyvsp[(4) - (4)].s));
@@ -3557,21 +3560,21 @@
   case 42:
 
 /* Line 1464 of yacc.c  */
-#line 1324 "compilers/imcc/imcc.y"
+#line 1327 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;}
     break;
 
   case 44:
 
 /* Line 1464 of yacc.c  */
-#line 1332 "compilers/imcc/imcc.y"
+#line 1335 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
     break;
 
   case 45:
 
 /* Line 1464 of yacc.c  */
-#line 1335 "compilers/imcc/imcc.y"
+#line 1338 "compilers/imcc/imcc.y"
     {
            /* if (optimizer_level & OPT_PASM)
                          imc_compile_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3584,7 +3587,7 @@
   case 48:
 
 /* Line 1464 of yacc.c  */
-#line 1351 "compilers/imcc/imcc.y"
+#line 1354 "compilers/imcc/imcc.y"
     {
            int re_open = 0;
            (yyval.i) = 0;
@@ -3601,21 +3604,21 @@
   case 49:
 
 /* Line 1464 of yacc.c  */
-#line 1365 "compilers/imcc/imcc.y"
+#line 1368 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 50:
 
 /* Line 1464 of yacc.c  */
-#line 1366 "compilers/imcc/imcc.y"
+#line 1369 "compilers/imcc/imcc.y"
     { (yyval.sr) = NULL; }
     break;
 
   case 51:
 
 /* Line 1464 of yacc.c  */
-#line 1370 "compilers/imcc/imcc.y"
+#line 1373 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys    = 0;
          }
@@ -3624,7 +3627,7 @@
   case 52:
 
 /* Line 1464 of yacc.c  */
-#line 1374 "compilers/imcc/imcc.y"
+#line 1377 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
@@ -3635,14 +3638,14 @@
   case 53:
 
 /* Line 1464 of yacc.c  */
-#line 1382 "compilers/imcc/imcc.y"
+#line 1385 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 54:
 
 /* Line 1464 of yacc.c  */
-#line 1384 "compilers/imcc/imcc.y"
+#line 1387 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
            (yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -3652,7 +3655,7 @@
   case 55:
 
 /* Line 1464 of yacc.c  */
-#line 1392 "compilers/imcc/imcc.y"
+#line 1395 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
          }
@@ -3661,7 +3664,7 @@
   case 56:
 
 /* Line 1464 of yacc.c  */
-#line 1396 "compilers/imcc/imcc.y"
+#line 1399 "compilers/imcc/imcc.y"
     {
            iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
          }
@@ -3670,7 +3673,7 @@
   case 57:
 
 /* Line 1464 of yacc.c  */
-#line 1400 "compilers/imcc/imcc.y"
+#line 1403 "compilers/imcc/imcc.y"
     {
           IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(5) - (6)].t);
           if (!IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid) {
@@ -3683,28 +3686,28 @@
   case 58:
 
 /* Line 1464 of yacc.c  */
-#line 1408 "compilers/imcc/imcc.y"
+#line 1411 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 59:
 
 /* Line 1464 of yacc.c  */
-#line 1412 "compilers/imcc/imcc.y"
+#line 1415 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 60:
 
 /* Line 1464 of yacc.c  */
-#line 1413 "compilers/imcc/imcc.y"
+#line 1416 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 61:
 
 /* Line 1464 of yacc.c  */
-#line 1415 "compilers/imcc/imcc.y"
+#line 1418 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                  add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
@@ -3719,21 +3722,21 @@
   case 62:
 
 /* Line 1464 of yacc.c  */
-#line 1427 "compilers/imcc/imcc.y"
+#line 1430 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 63:
 
 /* Line 1464 of yacc.c  */
-#line 1427 "compilers/imcc/imcc.y"
+#line 1430 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; }
     break;
 
   case 64:
 
 /* Line 1464 of yacc.c  */
-#line 1432 "compilers/imcc/imcc.y"
+#line 1435 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(3) - (3)].t) & VT_OPT_FLAG && (yyvsp[(1) - (3)].t) != 'I') {
                const char *type;
@@ -3758,14 +3761,14 @@
   case 65:
 
 /* Line 1464 of yacc.c  */
-#line 1456 "compilers/imcc/imcc.y"
+#line 1459 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 66:
 
 /* Line 1464 of yacc.c  */
-#line 1461 "compilers/imcc/imcc.y"
+#line 1464 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
@@ -3776,7 +3779,7 @@
   case 67:
 
 /* Line 1464 of yacc.c  */
-#line 1467 "compilers/imcc/imcc.y"
+#line 1470 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3787,7 +3790,7 @@
   case 68:
 
 /* Line 1464 of yacc.c  */
-#line 1476 "compilers/imcc/imcc.y"
+#line 1479 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_VTABLE;
            IMCC_INFO(interp)->cur_unit->vtable_name      = NULL;
@@ -3798,7 +3801,7 @@
   case 69:
 
 /* Line 1464 of yacc.c  */
-#line 1482 "compilers/imcc/imcc.y"
+#line 1485 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_VTABLE;
            IMCC_INFO(interp)->cur_unit->vtable_name      = (yyvsp[(3) - (4)].s);
@@ -3809,7 +3812,7 @@
   case 70:
 
 /* Line 1464 of yacc.c  */
-#line 1491 "compilers/imcc/imcc.y"
+#line 1494 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = NULL;
@@ -3820,7 +3823,7 @@
   case 71:
 
 /* Line 1464 of yacc.c  */
-#line 1497 "compilers/imcc/imcc.y"
+#line 1500 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
@@ -3831,7 +3834,7 @@
   case 72:
 
 /* Line 1464 of yacc.c  */
-#line 1506 "compilers/imcc/imcc.y"
+#line 1509 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_NSENTRY;
            IMCC_INFO(interp)->cur_unit->ns_entry_name     = NULL;
@@ -3842,7 +3845,7 @@
   case 73:
 
 /* Line 1464 of yacc.c  */
-#line 1512 "compilers/imcc/imcc.y"
+#line 1515 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_NSENTRY;
            IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
@@ -3853,7 +3856,7 @@
   case 74:
 
 /* Line 1464 of yacc.c  */
-#line 1521 "compilers/imcc/imcc.y"
+#line 1524 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
@@ -3863,7 +3866,7 @@
   case 75:
 
 /* Line 1464 of yacc.c  */
-#line 1529 "compilers/imcc/imcc.y"
+#line 1532 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->subid = NULL;
@@ -3873,7 +3876,7 @@
   case 76:
 
 /* Line 1464 of yacc.c  */
-#line 1534 "compilers/imcc/imcc.y"
+#line 1537 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3885,7 +3888,7 @@
   case 77:
 
 /* Line 1464 of yacc.c  */
-#line 1544 "compilers/imcc/imcc.y"
+#line 1547 "compilers/imcc/imcc.y"
     {
            add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, NULL);
          }
@@ -3894,7 +3897,7 @@
   case 78:
 
 /* Line 1464 of yacc.c  */
-#line 1548 "compilers/imcc/imcc.y"
+#line 1551 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
@@ -3904,7 +3907,7 @@
   case 79:
 
 /* Line 1464 of yacc.c  */
-#line 1553 "compilers/imcc/imcc.y"
+#line 1556 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
@@ -3914,35 +3917,35 @@
   case 80:
 
 /* Line 1464 of yacc.c  */
-#line 1560 "compilers/imcc/imcc.y"
+#line 1563 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); }
     break;
 
   case 81:
 
 /* Line 1464 of yacc.c  */
-#line 1561 "compilers/imcc/imcc.y"
+#line 1564 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
     break;
 
   case 82:
 
 /* Line 1464 of yacc.c  */
-#line 1562 "compilers/imcc/imcc.y"
+#line 1565 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "PMC",      'S'); }
     break;
 
   case 83:
 
 /* Line 1464 of yacc.c  */
-#line 1563 "compilers/imcc/imcc.y"
+#line 1566 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "STRING",   'S'); }
     break;
 
   case 84:
 
 /* Line 1464 of yacc.c  */
-#line 1565 "compilers/imcc/imcc.y"
+#line 1568 "compilers/imcc/imcc.y"
     {
            SymReg *r;
            if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3958,7 +3961,7 @@
   case 85:
 
 /* Line 1464 of yacc.c  */
-#line 1576 "compilers/imcc/imcc.y"
+#line 1579 "compilers/imcc/imcc.y"
     {
            SymReg *r;
            if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3974,14 +3977,14 @@
   case 86:
 
 /* Line 1464 of yacc.c  */
-#line 1586 "compilers/imcc/imcc.y"
+#line 1589 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 89:
 
 /* Line 1464 of yacc.c  */
-#line 1596 "compilers/imcc/imcc.y"
+#line 1599 "compilers/imcc/imcc.y"
     {
            char name[128];
            SymReg *r, *r1;
@@ -4008,112 +4011,112 @@
   case 90:
 
 /* Line 1464 of yacc.c  */
-#line 1622 "compilers/imcc/imcc.y"
+#line 1625 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 91:
 
 /* Line 1464 of yacc.c  */
-#line 1626 "compilers/imcc/imcc.y"
+#line 1629 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
     break;
 
   case 92:
 
 /* Line 1464 of yacc.c  */
-#line 1627 "compilers/imcc/imcc.y"
+#line 1630 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
     break;
 
   case 93:
 
 /* Line 1464 of yacc.c  */
-#line 1631 "compilers/imcc/imcc.y"
+#line 1634 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; }
     break;
 
   case 94:
 
 /* Line 1464 of yacc.c  */
-#line 1632 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 1636 "compilers/imcc/imcc.y"
+#line 1639 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 97:
 
 /* Line 1464 of yacc.c  */
-#line 1641 "compilers/imcc/imcc.y"
+#line 1644 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (1)].t); }
     break;
 
   case 98:
 
 /* Line 1464 of yacc.c  */
-#line 1642 "compilers/imcc/imcc.y"
+#line 1645 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 99:
 
 /* Line 1464 of yacc.c  */
-#line 1646 "compilers/imcc/imcc.y"
+#line 1649 "compilers/imcc/imcc.y"
     { (yyval.t) = P_LOAD; }
     break;
 
   case 100:
 
 /* Line 1464 of yacc.c  */
-#line 1647 "compilers/imcc/imcc.y"
+#line 1650 "compilers/imcc/imcc.y"
     { (yyval.t) = P_INIT; }
     break;
 
   case 101:
 
 /* Line 1464 of yacc.c  */
-#line 1648 "compilers/imcc/imcc.y"
+#line 1651 "compilers/imcc/imcc.y"
     { (yyval.t) = P_MAIN; }
     break;
 
   case 102:
 
 /* Line 1464 of yacc.c  */
-#line 1649 "compilers/imcc/imcc.y"
+#line 1652 "compilers/imcc/imcc.y"
     { (yyval.t) = P_IMMEDIATE; }
     break;
 
   case 103:
 
 /* Line 1464 of yacc.c  */
-#line 1650 "compilers/imcc/imcc.y"
+#line 1653 "compilers/imcc/imcc.y"
     { (yyval.t) = P_POSTCOMP; }
     break;
 
   case 104:
 
 /* Line 1464 of yacc.c  */
-#line 1651 "compilers/imcc/imcc.y"
+#line 1654 "compilers/imcc/imcc.y"
     { (yyval.t) = P_ANON; }
     break;
 
   case 105:
 
 /* Line 1464 of yacc.c  */
-#line 1652 "compilers/imcc/imcc.y"
+#line 1655 "compilers/imcc/imcc.y"
     { (yyval.t) = P_NEED_LEX; }
     break;
 
   case 113:
 
 /* Line 1464 of yacc.c  */
-#line 1664 "compilers/imcc/imcc.y"
+#line 1667 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -4123,7 +4126,7 @@
   case 114:
 
 /* Line 1464 of yacc.c  */
-#line 1669 "compilers/imcc/imcc.y"
+#line 1672 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
          }
@@ -4132,7 +4135,7 @@
   case 115:
 
 /* Line 1464 of yacc.c  */
-#line 1673 "compilers/imcc/imcc.y"
+#line 1676 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
          }
@@ -4141,7 +4144,7 @@
   case 116:
 
 /* Line 1464 of yacc.c  */
-#line 1677 "compilers/imcc/imcc.y"
+#line 1680 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
          }
@@ -4150,7 +4153,7 @@
   case 117:
 
 /* Line 1464 of yacc.c  */
-#line 1681 "compilers/imcc/imcc.y"
+#line 1684 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
          }
@@ -4159,7 +4162,7 @@
   case 118:
 
 /* Line 1464 of yacc.c  */
-#line 1685 "compilers/imcc/imcc.y"
+#line 1688 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -4169,7 +4172,7 @@
   case 119:
 
 /* Line 1464 of yacc.c  */
-#line 1690 "compilers/imcc/imcc.y"
+#line 1693 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -4179,14 +4182,14 @@
   case 120:
 
 /* Line 1464 of yacc.c  */
-#line 1698 "compilers/imcc/imcc.y"
+#line 1701 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 121:
 
 /* Line 1464 of yacc.c  */
-#line 1699 "compilers/imcc/imcc.y"
+#line 1702 "compilers/imcc/imcc.y"
     {
                                  if (IMCC_INFO(interp)->adv_named_id) {
                                      add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
@@ -4201,21 +4204,21 @@
   case 122:
 
 /* Line 1464 of yacc.c  */
-#line 1711 "compilers/imcc/imcc.y"
+#line 1714 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (2)].sr); }
     break;
 
   case 123:
 
 /* Line 1464 of yacc.c  */
-#line 1716 "compilers/imcc/imcc.y"
+#line 1719 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 124:
 
 /* Line 1464 of yacc.c  */
-#line 1718 "compilers/imcc/imcc.y"
+#line 1721 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4225,21 +4228,21 @@
   case 125:
 
 /* Line 1464 of yacc.c  */
-#line 1725 "compilers/imcc/imcc.y"
+#line 1728 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 126:
 
 /* Line 1464 of yacc.c  */
-#line 1726 "compilers/imcc/imcc.y"
+#line 1729 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 127:
 
 /* Line 1464 of yacc.c  */
-#line 1727 "compilers/imcc/imcc.y"
+#line 1730 "compilers/imcc/imcc.y"
     {
            IdList * const l = (yyvsp[(4) - (4)].idlist);
            SymReg *ignored;
@@ -4253,91 +4256,91 @@
   case 128:
 
 /* Line 1464 of yacc.c  */
-#line 1738 "compilers/imcc/imcc.y"
+#line 1741 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 129:
 
 /* Line 1464 of yacc.c  */
-#line 1739 "compilers/imcc/imcc.y"
+#line 1742 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 130:
 
 /* Line 1464 of yacc.c  */
-#line 1743 "compilers/imcc/imcc.y"
+#line 1746 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_FLAT;   }
     break;
 
   case 131:
 
 /* Line 1464 of yacc.c  */
-#line 1744 "compilers/imcc/imcc.y"
+#line 1747 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_OPTIONAL; }
     break;
 
   case 132:
 
 /* Line 1464 of yacc.c  */
-#line 1745 "compilers/imcc/imcc.y"
+#line 1748 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_OPT_FLAG; }
     break;
 
   case 133:
 
 /* Line 1464 of yacc.c  */
-#line 1746 "compilers/imcc/imcc.y"
+#line 1749 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_NAMED; }
     break;
 
   case 134:
 
 /* Line 1464 of yacc.c  */
-#line 1747 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 1748 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 1749 "compilers/imcc/imcc.y"
+#line 1752 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 137:
 
 /* Line 1464 of yacc.c  */
-#line 1750 "compilers/imcc/imcc.y"
+#line 1753 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_CALL_SIG; }
     break;
 
   case 138:
 
 /* Line 1464 of yacc.c  */
-#line 1755 "compilers/imcc/imcc.y"
+#line 1758 "compilers/imcc/imcc.y"
     { begin_return_or_yield(interp, 0); }
     break;
 
   case 139:
 
 /* Line 1464 of yacc.c  */
-#line 1757 "compilers/imcc/imcc.y"
+#line 1760 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
     break;
 
   case 140:
 
 /* Line 1464 of yacc.c  */
-#line 1759 "compilers/imcc/imcc.y"
+#line 1762 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->asm_state = AsmDefault;
            (yyval.i) = 0;
@@ -4347,28 +4350,28 @@
   case 141:
 
 /* Line 1464 of yacc.c  */
-#line 1766 "compilers/imcc/imcc.y"
+#line 1769 "compilers/imcc/imcc.y"
     { begin_return_or_yield(interp, 1); }
     break;
 
   case 142:
 
 /* Line 1464 of yacc.c  */
-#line 1768 "compilers/imcc/imcc.y"
+#line 1771 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
     break;
 
   case 143:
 
 /* Line 1464 of yacc.c  */
-#line 1772 "compilers/imcc/imcc.y"
+#line 1775 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 144:
 
 /* Line 1464 of yacc.c  */
-#line 1774 "compilers/imcc/imcc.y"
+#line 1777 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -4378,7 +4381,7 @@
   case 145:
 
 /* Line 1464 of yacc.c  */
-#line 1779 "compilers/imcc/imcc.y"
+#line 1782 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -4388,14 +4391,14 @@
   case 146:
 
 /* Line 1464 of yacc.c  */
-#line 1786 "compilers/imcc/imcc.y"
+#line 1789 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 147:
 
 /* Line 1464 of yacc.c  */
-#line 1788 "compilers/imcc/imcc.y"
+#line 1791 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -4405,7 +4408,7 @@
   case 148:
 
 /* Line 1464 of yacc.c  */
-#line 1793 "compilers/imcc/imcc.y"
+#line 1796 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -4415,21 +4418,21 @@
   case 149:
 
 /* Line 1464 of yacc.c  */
-#line 1800 "compilers/imcc/imcc.y"
+#line 1803 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 150:
 
 /* Line 1464 of yacc.c  */
-#line 1804 "compilers/imcc/imcc.y"
+#line 1807 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 151:
 
 /* Line 1464 of yacc.c  */
-#line 1809 "compilers/imcc/imcc.y"
+#line 1812 "compilers/imcc/imcc.y"
     {
           if (IMCC_INFO(interp)->asm_state == AsmDefault)
               begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
@@ -4439,7 +4442,7 @@
   case 152:
 
 /* Line 1464 of yacc.c  */
-#line 1814 "compilers/imcc/imcc.y"
+#line 1817 "compilers/imcc/imcc.y"
     {
           IMCC_INFO(interp)->asm_state = AsmDefault;
           (yyval.t) = 0;
@@ -4449,28 +4452,28 @@
   case 153:
 
 /* Line 1464 of yacc.c  */
-#line 1821 "compilers/imcc/imcc.y"
+#line 1824 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 154:
 
 /* Line 1464 of yacc.c  */
-#line 1822 "compilers/imcc/imcc.y"
+#line 1825 "compilers/imcc/imcc.y"
     { (yyval.t) = 1; }
     break;
 
   case 155:
 
 /* Line 1464 of yacc.c  */
-#line 1826 "compilers/imcc/imcc.y"
+#line 1829 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 156:
 
 /* Line 1464 of yacc.c  */
-#line 1828 "compilers/imcc/imcc.y"
+#line 1831 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -4485,7 +4488,7 @@
   case 157:
 
 /* Line 1464 of yacc.c  */
-#line 1838 "compilers/imcc/imcc.y"
+#line 1841 "compilers/imcc/imcc.y"
     {
             SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
             add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(3) - (3)].sr));
@@ -4495,7 +4498,7 @@
   case 158:
 
 /* Line 1464 of yacc.c  */
-#line 1843 "compilers/imcc/imcc.y"
+#line 1846 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -4510,7 +4513,7 @@
   case 159:
 
 /* Line 1464 of yacc.c  */
-#line 1853 "compilers/imcc/imcc.y"
+#line 1856 "compilers/imcc/imcc.y"
     {
            SymReg * const name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
            add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(5) - (5)].sr));
@@ -4520,63 +4523,63 @@
   case 162:
 
 /* Line 1464 of yacc.c  */
-#line 1874 "compilers/imcc/imcc.y"
+#line 1877 "compilers/imcc/imcc.y"
     { clear_state(interp); }
     break;
 
   case 163:
 
 /* Line 1464 of yacc.c  */
-#line 1879 "compilers/imcc/imcc.y"
+#line 1882 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (2)].i); }
     break;
 
   case 164:
 
 /* Line 1464 of yacc.c  */
-#line 1880 "compilers/imcc/imcc.y"
+#line 1883 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 165:
 
 /* Line 1464 of yacc.c  */
-#line 1881 "compilers/imcc/imcc.y"
+#line 1884 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 166:
 
 /* Line 1464 of yacc.c  */
-#line 1882 "compilers/imcc/imcc.y"
+#line 1885 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 167:
 
 /* Line 1464 of yacc.c  */
-#line 1883 "compilers/imcc/imcc.y"
+#line 1886 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 168:
 
 /* Line 1464 of yacc.c  */
-#line 1884 "compilers/imcc/imcc.y"
+#line 1887 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 169:
 
 /* Line 1464 of yacc.c  */
-#line 1888 "compilers/imcc/imcc.y"
+#line 1891 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; }
     break;
 
   case 173:
 
 /* Line 1464 of yacc.c  */
-#line 1899 "compilers/imcc/imcc.y"
+#line 1902 "compilers/imcc/imcc.y"
     {
              Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
              mem_sys_free((yyvsp[(1) - (1)].s));
@@ -4587,14 +4590,14 @@
   case 174:
 
 /* Line 1464 of yacc.c  */
-#line 1909 "compilers/imcc/imcc.y"
+#line 1912 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (3)].i); }
     break;
 
   case 175:
 
 /* Line 1464 of yacc.c  */
-#line 1911 "compilers/imcc/imcc.y"
+#line 1914 "compilers/imcc/imcc.y"
     {
            if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
                IMCC_warning(interp, "Too many errors. Correct some first.\n");
@@ -4607,7 +4610,7 @@
   case 176:
 
 /* Line 1464 of yacc.c  */
-#line 1922 "compilers/imcc/imcc.y"
+#line 1925 "compilers/imcc/imcc.y"
     {
            IdList* const l = (yyvsp[(1) - (1)].idlist);
            l->next = NULL;
@@ -4618,7 +4621,7 @@
   case 177:
 
 /* Line 1464 of yacc.c  */
-#line 1929 "compilers/imcc/imcc.y"
+#line 1932 "compilers/imcc/imcc.y"
     {
            IdList* const l = (yyvsp[(3) - (3)].idlist);
            l->next = (yyvsp[(1) - (3)].idlist);
@@ -4629,7 +4632,7 @@
   case 178:
 
 /* Line 1464 of yacc.c  */
-#line 1938 "compilers/imcc/imcc.y"
+#line 1941 "compilers/imcc/imcc.y"
     {
            IdList* const l = mem_gc_allocate_n_zeroed_typed(interp, 1, IdList);
            l->id           = (yyvsp[(1) - (2)].s);
@@ -4640,14 +4643,14 @@
   case 183:
 
 /* Line 1464 of yacc.c  */
-#line 1954 "compilers/imcc/imcc.y"
+#line 1957 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 184:
 
 /* Line 1464 of yacc.c  */
-#line 1955 "compilers/imcc/imcc.y"
+#line 1958 "compilers/imcc/imcc.y"
     {
            IdList *l = (yyvsp[(4) - (4)].idlist);
            while (l) {
@@ -4665,7 +4668,7 @@
   case 185:
 
 /* Line 1464 of yacc.c  */
-#line 1968 "compilers/imcc/imcc.y"
+#line 1971 "compilers/imcc/imcc.y"
     {
             if ((yyvsp[(4) - (4)].sr)->set != 'P') {
                 mem_sys_free((yyvsp[(2) - (4)].s));
@@ -4687,7 +4690,7 @@
   case 186:
 
 /* Line 1464 of yacc.c  */
-#line 1985 "compilers/imcc/imcc.y"
+#line 1988 "compilers/imcc/imcc.y"
     {
             if ((yyvsp[(4) - (4)].sr)->set != 'P') {
                 mem_sys_free((yyvsp[(2) - (4)].s));
@@ -4705,14 +4708,14 @@
   case 187:
 
 /* Line 1464 of yacc.c  */
-#line 1997 "compilers/imcc/imcc.y"
+#line 2000 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 188:
 
 /* Line 1464 of yacc.c  */
-#line 1998 "compilers/imcc/imcc.y"
+#line 2001 "compilers/imcc/imcc.y"
     {
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
            IMCC_INFO(interp)->is_def = 0;
@@ -4723,14 +4726,14 @@
   case 190:
 
 /* Line 1464 of yacc.c  */
-#line 2005 "compilers/imcc/imcc.y"
+#line 2008 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 191:
 
 /* Line 1464 of yacc.c  */
-#line 2006 "compilers/imcc/imcc.y"
+#line 2009 "compilers/imcc/imcc.y"
     {
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
            IMCC_INFO(interp)->is_def = 0;
@@ -4741,7 +4744,7 @@
   case 192:
 
 /* Line 1464 of yacc.c  */
-#line 2012 "compilers/imcc/imcc.y"
+#line 2015 "compilers/imcc/imcc.y"
     {
            (yyval.i) = NULL;
            IMCC_INFO(interp)->cur_call->pcc_sub->tailcall = 1;
@@ -4752,7 +4755,7 @@
   case 193:
 
 /* Line 1464 of yacc.c  */
-#line 2018 "compilers/imcc/imcc.y"
+#line 2021 "compilers/imcc/imcc.y"
     {
             (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
          }
@@ -4761,7 +4764,7 @@
   case 194:
 
 /* Line 1464 of yacc.c  */
-#line 2022 "compilers/imcc/imcc.y"
+#line 2025 "compilers/imcc/imcc.y"
     {
            (yyval.i) = INS(interp,
                     IMCC_INFO(interp)->cur_unit,
@@ -4778,98 +4781,98 @@
   case 195:
 
 /* Line 1464 of yacc.c  */
-#line 2033 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2034 "compilers/imcc/imcc.y"
+#line 2037 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 197:
 
 /* Line 1464 of yacc.c  */
-#line 2035 "compilers/imcc/imcc.y"
+#line 2038 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 200:
 
 /* Line 1464 of yacc.c  */
-#line 2038 "compilers/imcc/imcc.y"
+#line 2041 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;}
     break;
 
   case 201:
 
 /* Line 1464 of yacc.c  */
-#line 2042 "compilers/imcc/imcc.y"
+#line 2045 "compilers/imcc/imcc.y"
     { (yyval.t) = 'I'; }
     break;
 
   case 202:
 
 /* Line 1464 of yacc.c  */
-#line 2043 "compilers/imcc/imcc.y"
+#line 2046 "compilers/imcc/imcc.y"
     { (yyval.t) = 'N'; }
     break;
 
   case 203:
 
 /* Line 1464 of yacc.c  */
-#line 2044 "compilers/imcc/imcc.y"
+#line 2047 "compilers/imcc/imcc.y"
     { (yyval.t) = 'S'; }
     break;
 
   case 204:
 
 /* Line 1464 of yacc.c  */
-#line 2045 "compilers/imcc/imcc.y"
+#line 2048 "compilers/imcc/imcc.y"
     { (yyval.t) = 'P'; }
     break;
 
   case 205:
 
 /* Line 1464 of yacc.c  */
-#line 2050 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2052 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2054 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2056 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2058 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2061 "compilers/imcc/imcc.y"
+#line 2064 "compilers/imcc/imcc.y"
     {
            add_pcc_result(interp, (yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
@@ -4880,7 +4883,7 @@
   case 211:
 
 /* Line 1464 of yacc.c  */
-#line 2067 "compilers/imcc/imcc.y"
+#line 2070 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
          }
@@ -4889,7 +4892,7 @@
   case 212:
 
 /* Line 1464 of yacc.c  */
-#line 2071 "compilers/imcc/imcc.y"
+#line 2074 "compilers/imcc/imcc.y"
     {
            IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
@@ -4899,7 +4902,7 @@
   case 216:
 
 /* Line 1464 of yacc.c  */
-#line 2079 "compilers/imcc/imcc.y"
+#line 2082 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
          }
@@ -4908,189 +4911,189 @@
   case 217:
 
 /* Line 1464 of yacc.c  */
-#line 2086 "compilers/imcc/imcc.y"
+#line 2089 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"not"; }
     break;
 
   case 218:
 
 /* Line 1464 of yacc.c  */
-#line 2087 "compilers/imcc/imcc.y"
+#line 2090 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bnot"; }
     break;
 
   case 219:
 
 /* Line 1464 of yacc.c  */
-#line 2088 "compilers/imcc/imcc.y"
+#line 2091 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"neg"; }
     break;
 
   case 220:
 
 /* Line 1464 of yacc.c  */
-#line 2092 "compilers/imcc/imcc.y"
+#line 2095 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"sub"; }
     break;
 
   case 221:
 
 /* Line 1464 of yacc.c  */
-#line 2093 "compilers/imcc/imcc.y"
+#line 2096 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"add"; }
     break;
 
   case 222:
 
 /* Line 1464 of yacc.c  */
-#line 2094 "compilers/imcc/imcc.y"
+#line 2097 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mul"; }
     break;
 
   case 223:
 
 /* Line 1464 of yacc.c  */
-#line 2095 "compilers/imcc/imcc.y"
+#line 2098 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"div"; }
     break;
 
   case 224:
 
 /* Line 1464 of yacc.c  */
-#line 2096 "compilers/imcc/imcc.y"
+#line 2099 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mod"; }
     break;
 
   case 225:
 
 /* Line 1464 of yacc.c  */
-#line 2097 "compilers/imcc/imcc.y"
+#line 2100 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"fdiv"; }
     break;
 
   case 226:
 
 /* Line 1464 of yacc.c  */
-#line 2098 "compilers/imcc/imcc.y"
+#line 2101 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"pow"; }
     break;
 
   case 227:
 
 /* Line 1464 of yacc.c  */
-#line 2099 "compilers/imcc/imcc.y"
+#line 2102 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"concat"; }
     break;
 
   case 228:
 
 /* Line 1464 of yacc.c  */
-#line 2100 "compilers/imcc/imcc.y"
+#line 2103 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"iseq"; }
     break;
 
   case 229:
 
 /* Line 1464 of yacc.c  */
-#line 2101 "compilers/imcc/imcc.y"
+#line 2104 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isne"; }
     break;
 
   case 230:
 
 /* Line 1464 of yacc.c  */
-#line 2102 "compilers/imcc/imcc.y"
+#line 2105 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isgt"; }
     break;
 
   case 231:
 
 /* Line 1464 of yacc.c  */
-#line 2103 "compilers/imcc/imcc.y"
+#line 2106 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isge"; }
     break;
 
   case 232:
 
 /* Line 1464 of yacc.c  */
-#line 2104 "compilers/imcc/imcc.y"
+#line 2107 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"islt"; }
     break;
 
   case 233:
 
 /* Line 1464 of yacc.c  */
-#line 2105 "compilers/imcc/imcc.y"
+#line 2108 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isle"; }
     break;
 
   case 234:
 
 /* Line 1464 of yacc.c  */
-#line 2106 "compilers/imcc/imcc.y"
+#line 2109 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shl"; }
     break;
 
   case 235:
 
 /* Line 1464 of yacc.c  */
-#line 2107 "compilers/imcc/imcc.y"
+#line 2110 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shr"; }
     break;
 
   case 236:
 
 /* Line 1464 of yacc.c  */
-#line 2108 "compilers/imcc/imcc.y"
+#line 2111 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lsr"; }
     break;
 
   case 237:
 
 /* Line 1464 of yacc.c  */
-#line 2109 "compilers/imcc/imcc.y"
+#line 2112 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"and"; }
     break;
 
   case 238:
 
 /* Line 1464 of yacc.c  */
-#line 2110 "compilers/imcc/imcc.y"
+#line 2113 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"or"; }
     break;
 
   case 239:
 
 /* Line 1464 of yacc.c  */
-#line 2111 "compilers/imcc/imcc.y"
+#line 2114 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"xor"; }
     break;
 
   case 240:
 
 /* Line 1464 of yacc.c  */
-#line 2112 "compilers/imcc/imcc.y"
+#line 2115 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"band"; }
     break;
 
   case 241:
 
 /* Line 1464 of yacc.c  */
-#line 2113 "compilers/imcc/imcc.y"
+#line 2116 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bor"; }
     break;
 
   case 242:
 
 /* Line 1464 of yacc.c  */
-#line 2114 "compilers/imcc/imcc.y"
+#line 2117 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bxor"; }
     break;
 
   case 243:
 
 /* Line 1464 of yacc.c  */
-#line 2120 "compilers/imcc/imcc.y"
+#line 2123 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
            (yyval.i)->type &= ~ITCALL;
@@ -5101,112 +5104,112 @@
   case 244:
 
 /* Line 1464 of yacc.c  */
-#line 2125 "compilers/imcc/imcc.y"
+#line 2128 "compilers/imcc/imcc.y"
     {  (yyval.i) = 0; }
     break;
 
   case 245:
 
 /* Line 1464 of yacc.c  */
-#line 2132 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2136 "compilers/imcc/imcc.y"
+#line 2139 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"add"; }
     break;
 
   case 247:
 
 /* Line 1464 of yacc.c  */
-#line 2137 "compilers/imcc/imcc.y"
+#line 2140 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"sub"; }
     break;
 
   case 248:
 
 /* Line 1464 of yacc.c  */
-#line 2138 "compilers/imcc/imcc.y"
+#line 2141 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mul"; }
     break;
 
   case 249:
 
 /* Line 1464 of yacc.c  */
-#line 2139 "compilers/imcc/imcc.y"
+#line 2142 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"div"; }
     break;
 
   case 250:
 
 /* Line 1464 of yacc.c  */
-#line 2140 "compilers/imcc/imcc.y"
+#line 2143 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mod"; }
     break;
 
   case 251:
 
 /* Line 1464 of yacc.c  */
-#line 2141 "compilers/imcc/imcc.y"
+#line 2144 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"fdiv"; }
     break;
 
   case 252:
 
 /* Line 1464 of yacc.c  */
-#line 2142 "compilers/imcc/imcc.y"
+#line 2145 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"concat"; }
     break;
 
   case 253:
 
 /* Line 1464 of yacc.c  */
-#line 2143 "compilers/imcc/imcc.y"
+#line 2146 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"band"; }
     break;
 
   case 254:
 
 /* Line 1464 of yacc.c  */
-#line 2144 "compilers/imcc/imcc.y"
+#line 2147 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bor"; }
     break;
 
   case 255:
 
 /* Line 1464 of yacc.c  */
-#line 2145 "compilers/imcc/imcc.y"
+#line 2148 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bxor"; }
     break;
 
   case 256:
 
 /* Line 1464 of yacc.c  */
-#line 2146 "compilers/imcc/imcc.y"
+#line 2149 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shr"; }
     break;
 
   case 257:
 
 /* Line 1464 of yacc.c  */
-#line 2147 "compilers/imcc/imcc.y"
+#line 2150 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shl"; }
     break;
 
   case 258:
 
 /* Line 1464 of yacc.c  */
-#line 2148 "compilers/imcc/imcc.y"
+#line 2151 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lsr"; }
     break;
 
   case 259:
 
 /* Line 1464 of yacc.c  */
-#line 2154 "compilers/imcc/imcc.y"
+#line 2157 "compilers/imcc/imcc.y"
     {
         (yyval.i) = func_ins(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(3) - (4)].s),
                       IMCC_INFO(interp) -> regs,
@@ -5219,28 +5222,28 @@
   case 260:
 
 /* Line 1464 of yacc.c  */
-#line 2164 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2165 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2166 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2168 "compilers/imcc/imcc.y"
+#line 2171 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
            if ((yyvsp[(1) - (1)].sr)->set != 'P')
@@ -5251,7 +5254,7 @@
   case 264:
 
 /* Line 1464 of yacc.c  */
-#line 2174 "compilers/imcc/imcc.y"
+#line 2177 "compilers/imcc/imcc.y"
     {
             /* disallow bareword method names; SREG name constants are fine */
             const char * const name = (yyvsp[(3) - (3)].sr)->name;
@@ -5270,7 +5273,7 @@
   case 265:
 
 /* Line 1464 of yacc.c  */
-#line 2188 "compilers/imcc/imcc.y"
+#line 2191 "compilers/imcc/imcc.y"
     {
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'U');
@@ -5281,7 +5284,7 @@
   case 266:
 
 /* Line 1464 of yacc.c  */
-#line 2194 "compilers/imcc/imcc.y"
+#line 2197 "compilers/imcc/imcc.y"
     {
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
@@ -5292,14 +5295,14 @@
   case 267:
 
 /* Line 1464 of yacc.c  */
-#line 2199 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2205 "compilers/imcc/imcc.y"
+#line 2208 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
            IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
@@ -5309,21 +5312,21 @@
   case 269:
 
 /* Line 1464 of yacc.c  */
-#line 2209 "compilers/imcc/imcc.y"
+#line 2212 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (5)].i); }
     break;
 
   case 270:
 
 /* Line 1464 of yacc.c  */
-#line 2213 "compilers/imcc/imcc.y"
+#line 2216 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 271:
 
 /* Line 1464 of yacc.c  */
-#line 2215 "compilers/imcc/imcc.y"
+#line 2218 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -5338,7 +5341,7 @@
   case 272:
 
 /* Line 1464 of yacc.c  */
-#line 2225 "compilers/imcc/imcc.y"
+#line 2228 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -5353,7 +5356,7 @@
   case 273:
 
 /* Line 1464 of yacc.c  */
-#line 2235 "compilers/imcc/imcc.y"
+#line 2238 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
@@ -5365,7 +5368,7 @@
   case 274:
 
 /* Line 1464 of yacc.c  */
-#line 2242 "compilers/imcc/imcc.y"
+#line 2245 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            add_pcc_named_arg_var(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
@@ -5375,7 +5378,7 @@
   case 275:
 
 /* Line 1464 of yacc.c  */
-#line 2247 "compilers/imcc/imcc.y"
+#line 2250 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
@@ -5387,70 +5390,70 @@
   case 276:
 
 /* Line 1464 of yacc.c  */
-#line 2256 "compilers/imcc/imcc.y"
+#line 2259 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
     break;
 
   case 277:
 
 /* Line 1464 of yacc.c  */
-#line 2260 "compilers/imcc/imcc.y"
+#line 2263 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 278:
 
 /* Line 1464 of yacc.c  */
-#line 2261 "compilers/imcc/imcc.y"
+#line 2264 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 279:
 
 /* Line 1464 of yacc.c  */
-#line 2265 "compilers/imcc/imcc.y"
+#line 2268 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_FLAT;     }
     break;
 
   case 280:
 
 /* Line 1464 of yacc.c  */
-#line 2266 "compilers/imcc/imcc.y"
+#line 2269 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_NAMED;    }
     break;
 
   case 281:
 
 /* Line 1464 of yacc.c  */
-#line 2267 "compilers/imcc/imcc.y"
+#line 2270 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_CALL_SIG; }
     break;
 
   case 282:
 
 /* Line 1464 of yacc.c  */
-#line 2270 "compilers/imcc/imcc.y"
+#line 2273 "compilers/imcc/imcc.y"
     { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
     break;
 
   case 283:
 
 /* Line 1464 of yacc.c  */
-#line 2271 "compilers/imcc/imcc.y"
+#line 2274 "compilers/imcc/imcc.y"
     { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; }
     break;
 
   case 284:
 
 /* Line 1464 of yacc.c  */
-#line 2275 "compilers/imcc/imcc.y"
+#line 2278 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
     break;
 
   case 285:
 
 /* Line 1464 of yacc.c  */
-#line 2280 "compilers/imcc/imcc.y"
+#line 2283 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -5465,7 +5468,7 @@
   case 286:
 
 /* Line 1464 of yacc.c  */
-#line 2290 "compilers/imcc/imcc.y"
+#line 2293 "compilers/imcc/imcc.y"
     {
             add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call,
                     mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
@@ -5476,7 +5479,7 @@
   case 287:
 
 /* Line 1464 of yacc.c  */
-#line 2296 "compilers/imcc/imcc.y"
+#line 2299 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -5491,7 +5494,7 @@
   case 288:
 
 /* Line 1464 of yacc.c  */
-#line 2306 "compilers/imcc/imcc.y"
+#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));
            mem_sys_free((yyvsp[(1) - (3)].s));
@@ -5501,28 +5504,28 @@
   case 289:
 
 /* Line 1464 of yacc.c  */
-#line 2310 "compilers/imcc/imcc.y"
+#line 2313 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 290:
 
 /* Line 1464 of yacc.c  */
-#line 2314 "compilers/imcc/imcc.y"
+#line 2317 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 291:
 
 /* Line 1464 of yacc.c  */
-#line 2315 "compilers/imcc/imcc.y"
+#line 2318 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 292:
 
 /* Line 1464 of yacc.c  */
-#line 2320 "compilers/imcc/imcc.y"
+#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));
          }
@@ -5531,7 +5534,7 @@
   case 293:
 
 /* Line 1464 of yacc.c  */
-#line 2324 "compilers/imcc/imcc.y"
+#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));
          }
@@ -5540,7 +5543,7 @@
   case 294:
 
 /* Line 1464 of yacc.c  */
-#line 2328 "compilers/imcc/imcc.y"
+#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));
          }
@@ -5549,7 +5552,7 @@
   case 295:
 
 /* Line 1464 of yacc.c  */
-#line 2335 "compilers/imcc/imcc.y"
+#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));
          }
@@ -5558,7 +5561,7 @@
   case 296:
 
 /* Line 1464 of yacc.c  */
-#line 2339 "compilers/imcc/imcc.y"
+#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));
          }
@@ -5567,7 +5570,7 @@
   case 297:
 
 /* Line 1464 of yacc.c  */
-#line 2343 "compilers/imcc/imcc.y"
+#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));
          }
@@ -5576,91 +5579,91 @@
   case 298:
 
 /* Line 1464 of yacc.c  */
-#line 2349 "compilers/imcc/imcc.y"
+#line 2352 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 299:
 
 /* Line 1464 of yacc.c  */
-#line 2350 "compilers/imcc/imcc.y"
+#line 2353 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 300:
 
 /* Line 1464 of yacc.c  */
-#line 2354 "compilers/imcc/imcc.y"
+#line 2357 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"eq"; }
     break;
 
   case 301:
 
 /* Line 1464 of yacc.c  */
-#line 2355 "compilers/imcc/imcc.y"
+#line 2358 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"ne"; }
     break;
 
   case 302:
 
 /* Line 1464 of yacc.c  */
-#line 2356 "compilers/imcc/imcc.y"
+#line 2359 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"gt"; }
     break;
 
   case 303:
 
 /* Line 1464 of yacc.c  */
-#line 2357 "compilers/imcc/imcc.y"
+#line 2360 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"ge"; }
     break;
 
   case 304:
 
 /* Line 1464 of yacc.c  */
-#line 2358 "compilers/imcc/imcc.y"
+#line 2361 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lt"; }
     break;
 
   case 305:
 
 /* Line 1464 of yacc.c  */
-#line 2359 "compilers/imcc/imcc.y"
+#line 2362 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"le"; }
     break;
 
   case 308:
 
 /* Line 1464 of yacc.c  */
-#line 2368 "compilers/imcc/imcc.y"
+#line 2371 "compilers/imcc/imcc.y"
     { (yyval.sr) = NULL; }
     break;
 
   case 309:
 
 /* Line 1464 of yacc.c  */
-#line 2369 "compilers/imcc/imcc.y"
+#line 2372 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 310:
 
 /* Line 1464 of yacc.c  */
-#line 2373 "compilers/imcc/imcc.y"
+#line 2376 "compilers/imcc/imcc.y"
     { (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
     break;
 
   case 312:
 
 /* Line 1464 of yacc.c  */
-#line 2378 "compilers/imcc/imcc.y"
+#line 2381 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 313:
 
 /* Line 1464 of yacc.c  */
-#line 2380 "compilers/imcc/imcc.y"
+#line 2383 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (4)].sr);
            IMCC_INFO(interp) -> keyvec |= KEY_BIT(IMCC_INFO(interp)->nargs);
@@ -5672,7 +5675,7 @@
   case 314:
 
 /* Line 1464 of yacc.c  */
-#line 2387 "compilers/imcc/imcc.y"
+#line 2390 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
            (yyval.sr) = (yyvsp[(2) - (3)].sr);
@@ -5682,49 +5685,49 @@
   case 316:
 
 /* Line 1464 of yacc.c  */
-#line 2394 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2395 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2399 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2400 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2404 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2405 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2419 "compilers/imcc/imcc.y"
+#line 2422 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys    = 0;
          }
@@ -5733,7 +5736,7 @@
   case 327:
 
 /* Line 1464 of yacc.c  */
-#line 2423 "compilers/imcc/imcc.y"
+#line 2426 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
@@ -5744,7 +5747,7 @@
   case 328:
 
 /* Line 1464 of yacc.c  */
-#line 2431 "compilers/imcc/imcc.y"
+#line 2434 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys = 0;
          }
@@ -5753,7 +5756,7 @@
   case 329:
 
 /* Line 1464 of yacc.c  */
-#line 2435 "compilers/imcc/imcc.y"
+#line 2438 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
@@ -5764,14 +5767,14 @@
   case 330:
 
 /* Line 1464 of yacc.c  */
-#line 2443 "compilers/imcc/imcc.y"
+#line 2446 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 331:
 
 /* Line 1464 of yacc.c  */
-#line 2445 "compilers/imcc/imcc.y"
+#line 2448 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
            (yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -5781,7 +5784,7 @@
   case 332:
 
 /* Line 1464 of yacc.c  */
-#line 2453 "compilers/imcc/imcc.y"
+#line 2456 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
          }
@@ -5790,77 +5793,77 @@
   case 333:
 
 /* Line 1464 of yacc.c  */
-#line 2459 "compilers/imcc/imcc.y"
+#line 2462 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
     break;
 
   case 334:
 
 /* Line 1464 of yacc.c  */
-#line 2460 "compilers/imcc/imcc.y"
+#line 2463 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
     break;
 
   case 335:
 
 /* Line 1464 of yacc.c  */
-#line 2461 "compilers/imcc/imcc.y"
+#line 2464 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
     break;
 
   case 336:
 
 /* Line 1464 of yacc.c  */
-#line 2462 "compilers/imcc/imcc.y"
+#line 2465 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
     break;
 
   case 337:
 
 /* Line 1464 of yacc.c  */
-#line 2463 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2467 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2468 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2472 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2473 "compilers/imcc/imcc.y"
+#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 1464 of yacc.c  */
-#line 2474 "compilers/imcc/imcc.y"
+#line 2477 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (1)].sr); }
     break;
 
 
 
 /* Line 1464 of yacc.c  */
-#line 5853 "compilers/imcc/imcparser.c"
+#line 5856 "compilers/imcc/imcparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -6072,7 +6075,7 @@
 
 
 /* Line 1684 of yacc.c  */
-#line 2480 "compilers/imcc/imcc.y"
+#line 2483 "compilers/imcc/imcc.y"
 
 
 /* I need this prototype somewhere... */

Modified: branches/gsoc_nfg/compilers/imcc/imcparser.h
==============================================================================
--- branches/gsoc_nfg/compilers/imcc/imcparser.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/imcc/imcparser.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -295,7 +295,7 @@
 {
 
 /* Line 1685 of yacc.c  */
-#line 1068 "compilers/imcc/imcc.y"
+#line 1071 "compilers/imcc/imcc.y"
 
     IdList * idlist;
     int t;

Modified: branches/gsoc_nfg/compilers/imcc/parser_util.c
==============================================================================
--- branches/gsoc_nfg/compilers/imcc/parser_util.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/imcc/parser_util.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -47,7 +47,7 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 PARROT_WARN_UNUSED_RESULT
-static int change_op(PARROT_INTERP,
+static int change_op_arg_to_num(PARROT_INTERP,
     ARGMOD(IMC_Unit *unit),
     ARGMOD(SymReg **r),
     int num,
@@ -58,15 +58,6 @@
         FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*r);
 
-PARROT_CANNOT_RETURN_NULL
-static void * imcc_compile_file(PARROT_INTERP,
-    ARGIN(const char *fullname),
-    ARGOUT(STRING **error_message))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        FUNC_MODIFIES(*error_message);
-
 static void imcc_destroy_macro_values(ARGMOD(void *value))
         __attribute__nonnull__(1)
         FUNC_MODIFIES(*value);
@@ -94,14 +85,10 @@
         FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*r);
 
-#define ASSERT_ARGS_change_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_change_op_arg_to_num __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(unit) \
     , PARROT_ASSERT_ARG(r))
-#define ASSERT_ARGS_imcc_compile_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(fullname) \
-    , PARROT_ASSERT_ARG(error_message))
 #define ASSERT_ARGS_imcc_destroy_macro_values __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(value))
 #define ASSERT_ARGS_try_rev_cmp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -232,6 +219,9 @@
 =item C<static Instruction * var_arg_ins(PARROT_INTERP, IMC_Unit *unit, const
 char *name, SymReg **r, int n, int emit)>
 
+Create an C<Instruction> object for an instruction that takes a variable
+number of arguments.
+
 =cut
 
 */
@@ -686,6 +676,8 @@
 =item C<PMC * IMCC_compile_pir_s(PARROT_INTERP, const char *s, STRING
 **error_message)>
 
+Compile PIR code from a C string. Returns errors in the <STRING> provided.
+
 =cut
 
 */
@@ -705,6 +697,8 @@
 =item C<PMC * IMCC_compile_pasm_s(PARROT_INTERP, const char *s, STRING
 **error_message)>
 
+Compile PASM code from a C string. Returns errors in the <STRING> provided.
+
 =cut
 
 */
@@ -723,6 +717,8 @@
 
 =item C<PMC * imcc_compile_pasm_ex(PARROT_INTERP, const char *s)>
 
+Compile PASM code from a C string. Throws an exception upon errors.
+
 =cut
 
 */
@@ -748,6 +744,8 @@
 
 =item C<PMC * imcc_compile_pir_ex(PARROT_INTERP, const char *s)>
 
+Compile PIR code from a C string. Throws an exception upon errors.
+
 =cut
 
 */
@@ -771,8 +769,8 @@
 
 /*
 
-=item C<static void * imcc_compile_file(PARROT_INTERP, const char *fullname,
-STRING **error_message)>
+=item C<void * imcc_compile_file(PARROT_INTERP, const char *fullname, STRING
+**error_message)>
 
 Compile a file by filename (can be either PASM or IMCC code)
 
@@ -780,8 +778,9 @@
 
 */
 
+PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
-static void *
+void *
 imcc_compile_file(PARROT_INTERP, ARGIN(const char *fullname),
         ARGOUT(STRING **error_message))
 {
@@ -886,44 +885,6 @@
 
 /*
 
-=item C<void * IMCC_compile_file(PARROT_INTERP, const char *s)>
-
-Note: This function is provided for backward compatibility. This
-function can go away in future.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-void *
-IMCC_compile_file(PARROT_INTERP, ARGIN(const char *s))
-{
-    ASSERT_ARGS(IMCC_compile_file)
-    STRING *error_message;
-    return imcc_compile_file(interp, s, &error_message);
-}
-
-/*
-
-=item C<void * IMCC_compile_file_s(PARROT_INTERP, const char *s, STRING
-**error_message)>
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-void *
-IMCC_compile_file_s(PARROT_INTERP, ARGIN(const char *s),
-        ARGOUT(STRING **error_message))
-{
-    ASSERT_ARGS(IMCC_compile_file_s)
-    return imcc_compile_file(interp, s, error_message);
-}
-
-/*
-
 =item C<void register_compilers(PARROT_INTERP)>
 
 Register additional compilers with the interpreter
@@ -948,8 +909,11 @@
 
 /*
 
-=item C<static int change_op(PARROT_INTERP, IMC_Unit *unit, SymReg **r, int num,
-int emit)>
+=item C<static int change_op_arg_to_num(PARROT_INTERP, IMC_Unit *unit, SymReg
+**r, int num, int emit)>
+
+Change one argument of an op to be numeric in stead of integral. Used when
+integer argument op variants don't exist.
 
 =cut
 
@@ -957,9 +921,9 @@
 
 PARROT_WARN_UNUSED_RESULT
 static int
-change_op(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGMOD(SymReg **r), int num, int emit)
+change_op_arg_to_num(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGMOD(SymReg **r), int num, int emit)
 {
-    ASSERT_ARGS(change_op)
+    ASSERT_ARGS(change_op_arg_to_num)
     int changed = 0;
 
     if (r[num]->type & (VTCONST|VT_CONSTP)) {
@@ -1021,44 +985,11 @@
     ASSERT_ARGS(try_find_op)
     char fullname[64];
     int changed = 0;
-    /*
-     * eq_str, eq_num => eq
-     * ...
-     */
-    if (n == 3 && r[2]->type == VTADDRESS) {
-        if (STREQ(name, "eq_str") || STREQ(name, "eq_num")) {
-            name    = "eq";
-            changed = 1;
-        }
-        else if (STREQ(name, "ne_str") || STREQ(name, "ne_num")) {
-            name    = "ne";
-            changed = 1;
-        }
-        else if (STREQ(name, "le_str") || STREQ(name, "le_num")) {
-            name    = "le";
-            changed = 1;
-        }
-        else if (STREQ(name, "lt_str") || STREQ(name, "lt_num")) {
-            name    = "lt";
-            changed = 1;
-        }
-        else if (STREQ(name, "ge_str") || STREQ(name, "ge_num")) {
-            name    = "ge";
-            changed = 1;
-        }
-        else if (STREQ(name, "gt_str") || STREQ(name, "gt_num")) {
-            name    = "gt";
-            changed = 1;
-        }
-    }
-    else if (n == 3 && (STREQ(name, "cmp_str") || STREQ(name, "cmp_num"))) {
-        name     = "cmp";
-        changed = 1;
-    }
+
     if (n == 3 && r[0]->set == 'N') {
         if (r[1]->set == 'I') {
             const SymReg * const r1 = r[1];
-            changed |= change_op(interp, unit, r, 1, emit);
+            changed |= change_op_arg_to_num(interp, unit, r, 1, emit);
 
             /* op Nx, Iy, Iy: reuse generated temp Nz */
             if (r[2]->set == 'I' && r[2]->type != VTADDRESS && r[2] == r1)
@@ -1066,20 +997,20 @@
         }
 
         if (r[2]->set == 'I' && r[2]->type != VTADDRESS)
-            changed |= change_op(interp, unit, r, 2, emit);
+            changed |= change_op_arg_to_num(interp, unit, r, 2, emit);
     }
 
     /* handle eq_i_n_ic */
     else if (n == 3 && r[1]->set == 'N' && r[0]->set == 'I' &&
             r[2]->type == VTADDRESS) {
-        changed |= change_op(interp, unit, r, 0, emit);
+        changed |= change_op_arg_to_num(interp, unit, r, 0, emit);
     }
     else if (n == 2 && r[0]->set == 'N' && r[1]->set == 'I') {
         /*
          * transcendentals  e.g. acos N, I
          */
         if (!STREQ(name, "fact"))
-            changed = change_op(interp, unit, r, 1, emit);
+            changed = change_op_arg_to_num(interp, unit, r, 1, emit);
     }
 
     if (changed) {
@@ -1094,6 +1025,8 @@
 
 =item C<static const char * try_rev_cmp(const char *name, SymReg **r)>
 
+Try to find a valid op doing the same thing by reversing comparisons.
+
 =cut
 
 */
@@ -1163,6 +1096,8 @@
 
 =item C<void imcc_init(PARROT_INTERP)>
 
+Initialize IMCC with Parrot by registering it as a PIR and PASM compiler.
+
 =cut
 
 */
@@ -1211,6 +1146,8 @@
 
 =item C<void imcc_destroy(PARROT_INTERP)>
 
+Deallocate memory associated with IMCC.
+
 =cut
 
 */

Modified: branches/gsoc_nfg/compilers/imcc/pbc.c
==============================================================================
--- branches/gsoc_nfg/compilers/imcc/pbc.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/imcc/pbc.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -736,6 +736,8 @@
 =item C<static subs_t * find_sub_by_subid(PARROT_INTERP, const char *lookup,
 const subs_t *sym, int *pc)>
 
+Find the first sub in the current code segment with a given subid.
+
 =cut
 
 */
@@ -985,6 +987,9 @@
 
 =item C<STRING * IMCC_string_from__STRINGC(PARROT_INTERP, char *buf)>
 
+Creates a Parrot C<STRING> from a string constant found in PIR or PASM. This
+includes cases where charset and/or encoding are specified.
+
 =cut
 
 */
@@ -1323,7 +1328,7 @@
     ASSERT_ARGS(add_const_pmc_sub)
     PMC                   *ns_pmc;
     PMC                   *sub_pmc;
-    Parrot_Sub_attributes *sub, *outer_sub;
+    Parrot_Sub_attributes *sub;
 
     PackFile_ConstTable * const ct    = interp->code->const_table;
     IMC_Unit            * const unit  =
@@ -1336,23 +1341,25 @@
         SymReg     * const ns = unit->_namespace->reg;
 
         /* strip namespace off from front */
+        static const char ns_sep[]  = "@@@";
+        char             *real_name = strstr(r->name, ns_sep);
 
-        static const char ns_sep[] = "@@@";
-        char *real_name = strstr(r->name, ns_sep);
         if (real_name) {
             /* Unfortunately, there is no strrstr, then iterate until last */
             char *aux = strstr(real_name + 3, ns_sep);
+
             while (aux) {
-                 real_name = aux;
-                aux = strstr(real_name + 3, ns_sep);
+                real_name = aux;
+                aux       = strstr(real_name + 3, ns_sep);
             }
+
             real_name += 3;
         }
 
         IMCC_debug(interp, DEBUG_PBC_CONST,
                 "name space const = %d ns name '%s'\n", ns->color, ns->name);
 
-        ns_const  = ns->color;
+        ns_const = ns->color;
 
         if (real_name) {
             char * const p = mem_sys_strdup(real_name);
@@ -1383,15 +1390,17 @@
     else {
         /* use a possible type mapping for the Sub PMCs, and create it */
         const INTVAL type = Parrot_get_ctx_HLL_type(interp,
-                                r->pcc_sub->yield ? enum_class_Coroutine : enum_class_Sub);
+                                r->pcc_sub->yield
+                                    ? enum_class_Coroutine
+                                    : enum_class_Sub);
 
         /* TODO create constant - see also src/packfile.c */
         sub_pmc = Parrot_pmc_new(interp, type);
     }
 
     /* Set flags and get the sub info. */
-    PObj_get_FLAGS(sub_pmc) |= (r->pcc_sub->pragma & SUB_FLAG_PF_MASK);
     PMC_get_sub(interp, sub_pmc, sub);
+    PObj_get_FLAGS(sub_pmc) |= (r->pcc_sub->pragma & SUB_FLAG_PF_MASK);
     Sub_comp_get_FLAGS(sub) |= (r->pcc_sub->pragma & SUB_COMP_FLAG_MASK);
 
     r->color  = add_const_str(interp, IMCC_string_from_reg(interp, r));
@@ -1408,7 +1417,8 @@
         mem_sys_free(oldname);
 
         /* create string constant for it. */
-        unit->subid->color = add_const_str(interp, IMCC_string_from_reg(interp, unit->subid));
+        unit->subid->color = add_const_str(interp,
+            IMCC_string_from_reg(interp, unit->subid));
     }
 
     sub->subid = ct->constants[unit->subid->color]->u.string;
@@ -1421,7 +1431,8 @@
             break;
           case PFC_STRING:
             ns_pmc = Parrot_pmc_new_constant(interp, enum_class_String);
-            VTABLE_set_string_native(interp, ns_pmc, ct->constants[ns_const]->u.string);
+            VTABLE_set_string_native(interp, ns_pmc,
+                ct->constants[ns_const]->u.string);
             break;
           default:
             break;
@@ -1437,7 +1448,7 @@
         sub->n_regs_used[i] = unit->n_regs_used[i];
 
     sub->lex_info     = create_lexinfo(interp, unit, sub_pmc,
-            r->pcc_sub->pragma & P_NEED_LEX);
+                                        r->pcc_sub->pragma & P_NEED_LEX);
     sub->outer_sub    = find_outer(interp, unit);
     sub->vtable_index = -1;
 
@@ -1484,7 +1495,6 @@
     else
         sub->method_name = Parrot_str_new(interp, "", 0);
 
-
     if (unit->has_ns_entry_name == 1) {
         /* Work out the name of the ns entry. */
         if (unit->ns_entry_name) {
@@ -1499,25 +1509,24 @@
 
     Parrot_store_sub_in_namespace(interp, sub_pmc);
 
-    if (sub->outer_sub)
-        PMC_get_sub(interp, sub->outer_sub, outer_sub);
-
     /*
      * store the sub's strings
      * XXX these need to occur before the sub to support thawing properly
      */
     {
         PMC *strings = Parrot_freeze_strings(interp, sub_pmc);
-        int n = VTABLE_elements(interp, strings);
+        int        n = VTABLE_elements(interp, strings);
+
         for (i = 0; i < n; i++) {
-            int unused = add_const_str(interp, VTABLE_get_string_keyed_int(interp, strings, i));
+            int unused = add_const_str(interp,
+                VTABLE_get_string_keyed_int(interp, strings, i));
         }
     }
 
     /* store the sub */
     {
-        const int            k            = add_const_table(interp);
-        PackFile_Constant   * const pfc   = ct->constants[k];
+        const int            k          = add_const_table(interp);
+        PackFile_Constant   * const pfc = ct->constants[k];
 
         pfc->type     = PFC_PMC;
         pfc->u.key    = sub_pmc;
@@ -1525,14 +1534,20 @@
 
         IMCC_INFO(interp)->globals->cs->subs->pmc_const = k;
 
-        IMCC_debug(interp, DEBUG_PBC_CONST,
-                "add_const_pmc_sub '%s' flags %x color %d (%Ss) "
-                "lex_info %s :outer(%Ss)\n",
-                r->name, r->pcc_sub->pragma, k,
-                sub_pmc->vtable->whoami,
-                sub->lex_info ? "yes" : "no",
-                sub->outer_sub? outer_sub->name :
-                Parrot_str_new(interp, "*none*", 0));
+        if (DEBUG_PBC_CONST & IMCC_INFO(interp)->debug) {
+            Parrot_Sub_attributes *outer_sub;
+            if (sub->outer_sub)
+                PMC_get_sub(interp, sub->outer_sub, outer_sub);
+
+            IMCC_debug(interp, DEBUG_PBC_CONST,
+                    "add_const_pmc_sub '%s' flags %x color %d (%Ss) "
+                    "lex_info %s :outer(%Ss)\n",
+                    r->name, r->pcc_sub->pragma, k,
+                    sub_pmc->vtable->whoami,
+                    sub->lex_info  ? "yes" : "no",
+                    sub->outer_sub ? outer_sub->name
+                                   : Parrot_str_new(interp, "*none*", 0));
+        }
 
         /*
          * create entry in our fixup (=symbol) table

Modified: branches/gsoc_nfg/compilers/imcc/pcc.c
==============================================================================
--- branches/gsoc_nfg/compilers/imcc/pcc.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/imcc/pcc.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -526,6 +526,9 @@
 =item C<static int pcc_reg_mov(PARROT_INTERP, unsigned char d, unsigned char s,
 void *vinfo)>
 
+Callback for C<Parrot_register_move>. Inserts move instructions in stead of
+actually moving the registers.
+
 =cut
 
 */
@@ -598,6 +601,8 @@
 =item C<static Instruction * move_regs(PARROT_INTERP, IMC_Unit *unit,
 Instruction *ins, size_t n, SymReg **dest, SymReg **src)>
 
+Insert instructions for moving C<n> registers from C<src> to C<dest>.
+
 =cut
 
 */
@@ -720,6 +725,9 @@
 =item C<static void insert_tail_call(PARROT_INTERP, IMC_Unit *unit, Instruction
 *ins, SymReg *sub, SymReg *meth)>
 
+Creates and inserts an appropriate tailcall instruction for either a sub call
+or a method call.
+
 =cut
 
 */

Modified: branches/gsoc_nfg/compilers/imcc/reg_alloc.c
==============================================================================
--- branches/gsoc_nfg/compilers/imcc/reg_alloc.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/imcc/reg_alloc.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -229,6 +229,8 @@
 
 =item C<void free_reglist(IMC_Unit *unit)>
 
+Frees the register list associated with a compilation unit.
+
 =cut
 
 */
@@ -405,6 +407,8 @@
 
 =item C<static void sort_reglist(IMC_Unit *unit)>
 
+Sort a compilation unit's register list (by line number of first appearance).
+
 =cut
 
 */
@@ -529,6 +533,8 @@
 
 =item C<static void compute_one_du_chain(SymReg *r, IMC_Unit *unit)>
 
+Compute the DU-chain for one register within the compilation unit.
+
 =cut
 
 */
@@ -691,6 +697,9 @@
 
 =item C<static void vanilla_reg_alloc(PARROT_INTERP, IMC_Unit *unit)>
 
+Vanilla register allocator - assign every virtual register to an actual
+register.
+
 =cut
 
 */
@@ -745,6 +754,9 @@
 
 =item C<static void allocate_lexicals(PARROT_INTERP, IMC_Unit *unit)>
 
+Allocate registers for lexical variables. These must have unique registers
+because they are accessible through the LexPad.
+
 =cut
 
 */

Modified: branches/gsoc_nfg/compilers/imcc/symreg.c
==============================================================================
--- branches/gsoc_nfg/compilers/imcc/symreg.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/imcc/symreg.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -824,6 +824,9 @@
 
 =item C<static int int_overflows(const SymReg *r)>
 
+Determine whether an integer constant would overflow an C<INTVAL>
+register.
+
 =cut
 
 */

Modified: branches/gsoc_nfg/compilers/opsc/ops2c.nqp
==============================================================================
--- branches/gsoc_nfg/compilers/opsc/ops2c.nqp	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/opsc/ops2c.nqp	Mon Jun  7 18:03:08 2010	(r47436)
@@ -38,11 +38,6 @@
 $arg.long('help');
 $arg.short('h');
 
-# regenerate ops.num et. al. even if it's not necessary
-$arg := $getopts.add();
-$arg.long('force-regen');
-$arg.short('f');
-
 # suppress timing and debug output on stdout
 $arg := $getopts.add();
 $arg.long('quiet');
@@ -55,7 +50,6 @@
         src/ops/core.ops
         src/ops/bit.ops
         src/ops/cmp.ops
-        src/ops/debug.ops
         src/ops/io.ops
         src/ops/math.ops
         src/ops/object.ops
@@ -73,15 +67,20 @@
     @files.push( $opts<dynamic>);
 }
 elsif (+$opts == 0 || $opts<help>) {
-    say("This is ops2c, part of Parrot build infrastructure.
-usage:
-ops2c --core
-ops2c --dynamic path/to/dynops.ops");
+    say("This is ops2c, part of the Parrot VM's build infrastructure.
+normal options:
+ -c --core                generate the C code for core ops (must be run from within Parrot's build directory)
+ -d --dynamic <file.ops>  generate the C code for the dynamic ops in a single .ops file
+ -q --quiet               don't report any non-error messages
+ -h --help                print this usage information
+ -n --no-lines            do not print #line directives in generated C code (line numbers are not currently supported)
+
+#debugging options:
+ -g --debug               perform all processing but do not write to any files
+");
     pir::exit(0);
 }
 
-my $force_regen := ?$opts<force-regen>;
-
 if ($opts<no-lines>) {
     #TODO: figure out how to generate line numbers
     # $emit_lines is currently ignored

Modified: branches/gsoc_nfg/compilers/opsc/src/Ops/Emitter.pm
==============================================================================
--- branches/gsoc_nfg/compilers/opsc/src/Ops/Emitter.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/opsc/src/Ops/Emitter.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -74,13 +74,15 @@
 
 method print_c_header_files() {
 
-    my $fh := pir::open__PSs(self<func_header>, 'w')
+    my $fh := pir::new__Ps('FileHandle');
+    $fh.open(self<func_header>, 'w')
         || die("Can't open "~ self<func_header>);
     self.emit_c_op_func_header($fh);
     $fh.close();
 
     if self.ops_file<core> {
-        $fh := pir::open__PSs(self<enum_header>, 'w')
+        $fh := pir::new__Ps('FileHandle');
+        $fh.open(self<enum_header>, 'w')
             || die("Can't open "~ self<enum_header>);
         self.emit_c_op_enum_header($fh);
         $fh.close();
@@ -119,7 +121,8 @@
 method print_ops_num_files() {
 
     my $file := ~self<dir> ~ "include/parrot/opsenum.h";
-    my $fh := pir::open__pss($file, 'w')
+    my $fh := pir::new__Ps('FileHandle');
+    $fh.open($file, 'w')
         || die("Can't open $file for writing: " ~ ~pir::err__s());
     self.emit_c_opsenum_header($fh, $file);
     $fh.close();
@@ -164,7 +167,8 @@
     $fh.close();
 
     # ... and write it to disk
-    my $final := pir::open__PSs(self<source>, 'w') || die("Can't open filehandle");
+    my $final := pir::new__Ps('FileHandle');
+    $final.open(self<source>, 'w') || die("Can't open filehandle");
     $final.print($fh.readall());
     $final.close();
     return self<source>;
@@ -365,7 +369,8 @@
  * This file is generated automatically from '{self<file>}' (and possibly other
  * .ops files). by {self<script>}.
  *
- * Any changes made here will be lost!
+ * Any changes made here will be lost!  To regenerate this file after making
+ * changes to any ops, use the bootstap-ops makefile target.
  *
  */
 |);

Modified: branches/gsoc_nfg/compilers/opsc/src/Ops/File.pm
==============================================================================
--- branches/gsoc_nfg/compilers/opsc/src/Ops/File.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/opsc/src/Ops/File.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -246,9 +246,12 @@
     self<quiet> || say("# Parsing $file...");
     my $start_time := pir::time__N();
     my $buffer     := slurp($file);
+    my $start_ops  := +self<ops>;
     self.compile_ops($buffer, :experimental( $file ~~ /experimental\.ops/));
+    my $end_ops  := +self<ops>;
     pir::sprintf(my $time, "%.3f", [pir::time__N() - $start_time] );
-    self<quiet> || say("# Parsed $file in $time seconds.");
+    self<quiet> || say("# Parsed $file in $time seconds; found "~
+                       ($end_ops - $start_ops) ~" ops.");
 }
 
 method compile_ops($str, :$experimental? = 0) {

Modified: branches/gsoc_nfg/compilers/opsc/src/Ops/Trans/C.pm
==============================================================================
--- branches/gsoc_nfg/compilers/opsc/src/Ops/Trans/C.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/opsc/src/Ops/Trans/C.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -143,7 +143,7 @@
 ** Op Function Table:
 */
 
-static op_func{self.suffix}_t {self.op_func($emitter)}[{self<num_entries>}] = | ~ '{'
+static op_func{self.suffix}_t {self.op_func($emitter)}[{self<num_entries>}] = | ~ '{' ~ "\n"
 );
 
         for self<op_func_table> {

Modified: branches/gsoc_nfg/compilers/opsc/src/builtins.pir
==============================================================================
--- branches/gsoc_nfg/compilers/opsc/src/builtins.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/opsc/src/builtins.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -93,9 +93,10 @@
 .sub 'slurp'
     .param string file
     .local pmc pio
-    pio  = open file
+    pio = new ['FileHandle']
+    pio.'open'(file)
     $S0  = pio.'readall'()
-    close pio
+    pio.'close'()
     .return ($S0)
 .end
 

Modified: branches/gsoc_nfg/compilers/pct/src/PAST/Compiler.pir
==============================================================================
--- branches/gsoc_nfg/compilers/pct/src/PAST/Compiler.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/pct/src/PAST/Compiler.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -126,54 +126,29 @@
     valflags['String']   = 's~*:e'
     valflags['Integer']  = 'i+*:'
     valflags['Float']    = 'n+*:'
+    valflags['!cconst']          = 'i+*:c'
+    valflags['!except_severity'] = 'i+*:c'
+    valflags['!except_types']    = 'i+*:c'
+    valflags['!iterator']        = 'i+*:c'
+    valflags['!socket']          = 'i+*:c'
     set_global '%valflags', valflags
 
     ##  %!controltypes holds the list of exception types for each
     ##  type of exception handler we support
     .local pmc controltypes
     controltypes = new 'Hash'
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_RETURN)
-    $P0.'push'(.CONTROL_OK)
-    $P0.'push'(.CONTROL_BREAK)
-    $P0.'push'(.CONTROL_CONTINUE)
-    #$P0.'push'(.CONTROL_ERROR)
-    $P0.'push'(.CONTROL_TAKE)
-    $P0.'push'(.CONTROL_LEAVE)
-    $P0.'push'(.CONTROL_LOOP_NEXT)
-    $P0.'push'(.CONTROL_LOOP_LAST)
-    $P0.'push'(.CONTROL_LOOP_REDO)
-    controltypes['CONTROL']   = $P0
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_RETURN)
-    controltypes['RETURN']   = $P0
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_OK)
-    controltypes['OK'] = $P0
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_BREAK)
-    controltypes['BREAK'] = $P0
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_CONTINUE)
-    controltypes['CONTINUE'] = $P0
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_ERROR)
-    controltypes['ERROR'] = $P0
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_TAKE)
-    controltypes['GATHER']   = $P0
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_LEAVE)
-    controltypes['LEAVE'] = $P0
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_LOOP_NEXT)
-    controltypes['NEXT'] = $P0
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_LOOP_LAST)
-    controltypes['LAST'] = $P0
-    $P0 = new 'ResizablePMCArray'
-    $P0.'push'(.CONTROL_LOOP_REDO)
-    controltypes['REDO'] = $P0
+    controltypes['CONTROL']  = '.CONTROL_RETURN, .CONTROL_OK, .CONTROL_BREAK, .CONTROL_CONTINUE, .CONTROL_TAKE, .CONTROL_LEAVE, .CONTROL_EXIT, .CONTROL_LOOP_NEXT, .CONTROL_LOOP_LAST, .CONTROL_LOOP_REDO'
+    controltypes['RETURN']   = '.CONTROL_RETURN'
+    controltypes['OK']       = '.CONTROL_OK'
+    controltypes['BREAK']    = '.CONTROL_BREAK'
+    controltypes['CONTINUE'] = '.CONTROL_CONTINUE'
+    controltypes['ERROR']    = '.CONTROL_ERROR'
+    controltypes['GATHER']   = '.CONTROL_TAKE'
+    controltypes['LEAVE']    = '.CONTROL_LEAVE'
+    controltypes['EXIT']     = '.CONTROL_EXIT'
+    controltypes['NEXT']     = '.CONTROL_NEXT'
+    controltypes['LAST']     = '.CONTROL_LAST'
+    controltypes['REDO']     = '.CONTROL_REDO'
     set_global '%!controltypes', controltypes
 
     $P0 = box 11
@@ -206,9 +181,11 @@
     blockpast = new 'ResizablePMCArray'
     set_global '@?BLOCK', blockpast
   have_blockpast:
-    null $P0
-    set_global '$?SUB', $P0
-    .tailcall self.'as_post'(past, 'rtype'=>'v')
+    .lex '@*BLOCKPAST', blockpast
+    null $P99
+    .lex '$*SUB', $P99
+    $P1 = self.'as_post'(past, 'rtype'=>'v')
+    .return ($P1)
 .end
 
 =item escape(str)
@@ -649,7 +626,7 @@
     .local pmc eh
     eh = node.'handlers'()
     unless eh, no_eh
-    ops = self.'wrap_handlers'(ops,eh,'rtype'=>rtype)
+    ops = self.'wrap_handlers'(ops, eh, 'rtype'=>rtype)
   no_eh:
     .return (ops)
 .end
@@ -723,28 +700,34 @@
     unless it, handler_loop_done
     node = shift it
 
-    .local pmc ehpir, types, label
+    .local pmc ehpir, label, controltypes, subpost
     .local string ehreg, type
     $P0 = get_hll_global ['POST'], 'Label'
     $S0 = self.'unique'('control_')
     label = $P0.'new'('result'=>$S0)
 
+    subpost = find_dynamic_lex '$*SUB'
+
     ehreg = self.'uniquereg'('P')
     ops.'push_pirop'('new', ehreg, "'ExceptionHandler'")
     ops.'push_pirop'('set_addr', ehreg, label)
-    $P0 = get_global '%!controltypes'
+    controltypes = get_global '%!controltypes'
     type = node.'handle_types'()
-    unless type, no_handle_types
-    types = $P0[type]
-    unless type, no_handle_types
-    ops.'push_pirop'('callmethod', '"handle_types"', ehreg, types :flat)
-  no_handle_types:
+    unless type, handle_types_done
+    type = controltypes[type]
+    unless type, handle_types_done
+    $P0 = split ',', type
+    ops.'push_pirop'('callmethod', '"handle_types"', ehreg, $P0 :flat)
+    subpost.'add_directive'('.include "except_types.pasm"')
+  handle_types_done:
     type = node.'handle_types_except'()
-    unless type, no_handle_types_except
-    types = $P0[type]
-    unless type, no_handle_types_except
-    ops.'push_pirop'('callmethod', '"handle_types_except"', ehreg, types :flat)
-  no_handle_types_except:
+    unless type, handle_types_except_done
+    type = controltypes[type]
+    unless type, handle_types_except_done
+    $P0 = split ',', type
+    ops.'push_pirop'('callmethod', '"handle_types_except"', ehreg, $P0 :flat)
+    subpost.'add_directive'('.include "except_types.pasm"')
+  handle_types_except_done:
     ops.'push_pirop'('push_eh', ehreg)
 
     # Add one pop_eh for every handler we push_eh
@@ -785,9 +768,9 @@
     .param pmc node
     .param pmc options         :slurpy :named
 
-    ##  add current block node to @?BLOCK
+    ##  add current block node to @*BLOCKPAST
     .local pmc blockpast
-    blockpast = get_global '@?BLOCK'
+    blockpast = find_dynamic_lex '@*BLOCKPAST'
     unshift blockpast, node
 
     .local string name, pirflags, blocktype
@@ -853,8 +836,8 @@
 
     ##  determine the outer POST::Sub for the new one
     .local pmc outerpost
-    outerpost = get_global '$?SUB'
-    set_global '$?SUB', bpost
+    outerpost = find_dynamic_lex '$*SUB'
+    .lex '$*SUB', bpost
 
     .local int islexical
     islexical = node.'lexical'()
@@ -912,8 +895,9 @@
     $S0 = self.'uniquereg'('P')
     bpost.'push_pirop'('new', $S0, "'ExceptionHandler'")
     bpost.'push_pirop'('set_addr', $S0, ctrllabel)
-    bpost.'push_pirop'('callmethod', '"handle_types"', $S0, .CONTROL_RETURN)
+    bpost.'push_pirop'('callmethod', '"handle_types"', $S0, '.CONTROL_RETURN')
     bpost.'push_pirop'('push_eh', $S0)
+    bpost.'add_directive'('.include "except_types.pasm"')
 
   children_past:
     ##  all children but last are void context, last returns anything
@@ -930,7 +914,7 @@
     unless eh, no_eh
     $S0 = options['rtype']
     retval = ops[-1]
-    ops = self.'wrap_handlers'(ops,eh,'rtype'=>$S0)
+    ops = self.'wrap_handlers'(ops, eh, 'rtype'=>$S0)
     goto had_eh
   no_eh:
     ##  result of last child is return from block
@@ -985,7 +969,6 @@
   loadinit_done:
 
     ##  restore previous outer scope and symtable
-    set_global '$?SUB', outerpost
     setattribute self, '%!symtable', outersym
 
     ##  return block or block result
@@ -1026,7 +1009,7 @@
     bpost.'push_pirop'('call', blockreg, arglist :flat, 'result'=>result)
 
   block_done:
-    ##  remove current block from @?BLOCK
+    ##  remove current block from @*BLOCKPAST
     $P99 = shift blockpast
     .return (bpost)
 .end
@@ -1372,11 +1355,14 @@
     $P0 = get_hll_global ['POST'], 'Ops'
     ops = $P0.'new'()
 
+    $P0 = find_dynamic_lex '$*SUB'
+    $P0.'add_directive'('.include "except_types.pasm"')
+
     .local string handreg
     handreg = self.'uniquereg'('P')
     ops.'push_pirop'('new', handreg, "'ExceptionHandler'")
     ops.'push_pirop'('set_addr', handreg, handlabel)
-    ops.'push_pirop'('callmethod', '"handle_types"', handreg, .CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    ops.'push_pirop'('callmethod', '"handle_types"', handreg, '.CONTROL_LOOP_NEXT', '.CONTROL_LOOP_REDO', '.CONTROL_LOOP_LAST')
     ops.'push_pirop'('push_eh', handreg)
 
     unless bodyfirst goto bodyfirst_done
@@ -1404,8 +1390,8 @@
     ops.'push_pirop'('.get_results (exception)')
     $S0 = self.'uniquereg'('P')
     ops.'push_pirop'('getattribute', $S0, 'exception', "'type'")
-    ops.'push_pirop'('eq', $S0, .CONTROL_LOOP_NEXT, nextlabel)
-    ops.'push_pirop'('eq', $S0, .CONTROL_LOOP_REDO, redolabel)
+    ops.'push_pirop'('eq', $S0, '.CONTROL_LOOP_NEXT', nextlabel)
+    ops.'push_pirop'('eq', $S0, '.CONTROL_LOOP_REDO', redolabel)
     ops.'push'(donelabel)
     ops.'push_pirop'('pop_eh')
     .return (ops)
@@ -1643,7 +1629,9 @@
     exreg = self.'uniquereg'('P')
     extype = concat exreg, "['type']"
     ops.'push_pirop'('new', exreg, '"Exception"')
-    ops.'push_pirop'('set', extype, .CONTROL_RETURN)
+    ops.'push_pirop'('set', extype, '.CONTROL_RETURN')
+    $P0 = find_dynamic_lex '$*SUB'
+    $P0.'add_directive'('.include "except_types.pasm"')
 
     .local pmc cpast, cpost
     cpast = node[0]
@@ -2038,7 +2026,7 @@
     .local string blockname
     blockname = ''
     .local pmc it
-    $P0 = get_global '@?BLOCK'
+    $P0 = find_dynamic_lex '@*BLOCKPAST'
     it = iter $P0
   scope_error_block_loop:
     unless it goto scope_error_2
@@ -2108,7 +2096,7 @@
 
     ##  get the current sub
     .local pmc subpost
-    subpost = get_global '$?SUB'
+    subpost = find_dynamic_lex '$*SUB'
 
     ##  determine lexical, register, and parameter names
     .local string named, pname, has_pname
@@ -2248,7 +2236,7 @@
     # treat it as that type.
     .local string name
     name = node.'name'()
-    $P0 = get_global '@?BLOCK'
+    $P0 = find_dynamic_lex '@*BLOCKPAST'
     $P0 = $P0[0]
     $P0 = $P0.'symtable'()
     unless $P0 goto contextual
@@ -2473,6 +2461,22 @@
     value = self.'escape'(value)
   escape_done:
 
+    # See if this is a pasm constant type
+    $I0 = index valflags, 'c'
+    if $I0 < 0 goto const_done
+    # Add the directive for the appropriate .include statement.
+    $S0 = returns
+    $S0 = replace $S0, 0, 1, '.include "'
+    $S0 = concat $S0, '.pasm"'
+    $P0 = find_dynamic_lex '$*SUB'
+    $P0.'add_directive'($S0)
+    # Add a leading dot to the value if one isn't already there.
+    $S0 = substr value, 0, 1
+    if $S0 == '.' goto const_done
+    $P0 = box '.'
+    value = concat $P0, value
+  const_done:
+
     .local string rtype
     rtype = options['rtype']
     $I0 = index valflags, rtype

Modified: branches/gsoc_nfg/compilers/pct/src/PCT/HLLCompiler.pir
==============================================================================
--- branches/gsoc_nfg/compilers/pct/src/PCT/HLLCompiler.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/pct/src/PCT/HLLCompiler.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -25,6 +25,7 @@
 .namespace [ 'PCT';'HLLCompiler' ]
 
 .include 'cclass.pasm'
+.include 'stdio.pasm'
 
 .sub 'init' :vtable :method
     load_bytecode 'config.pir'
@@ -329,11 +330,13 @@
     result = self.stagename(result, adverbs :flat :named)
     $N1 = time
     $N2 = $N1 - $N0
-    printerr "Stage '"
-    printerr stagename
-    printerr "': "
-    printerr $N2
-    printerr " sec\n"
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("Stage '")
+    $P1.'print'(stagename)
+    $P1.'print'("': ")
+    $P1.'print'($N2)
+    $P1.'print'(" sec\n")
     if target == stagename goto have_result
     goto stagestats_loop
 
@@ -611,11 +614,14 @@
 
     # on startup show the welcome message
     $P0 = self.'commandline_banner'()
-    printerr $P0
+    $P1 = getinterp
+    $P2 = $P1.'stdhandle'(.PIO_STDERR_FILENO)
+    $P2.'print'($P0)
 
     .local pmc stdin
     .local int has_readline
-    stdin = getstdin
+    $P0 = getinterp
+    stdin = $P0.'stdhandle'(.PIO_STDIN_FILENO)
     encoding = adverbs['encoding']
     if encoding == 'fixed_8' goto interactive_loop
     unless encoding goto interactive_loop
@@ -746,7 +752,7 @@
   iter_loop_1:
     $S0 = ifh.'readall'(iname)
     code .= $S0
-    close ifh
+    ifh.'close'()
     goto iter_loop
   iter_end:
     $S0 = join ' ', files
@@ -799,6 +805,7 @@
 
 =cut
 
+.include 'except_severity.pasm'
 .sub 'command_line' :method
     .param pmc args
     .param pmc adverbs         :slurpy :named
@@ -844,11 +851,15 @@
     $I0 = adverbs['version']
     if $I0 goto version
 
+    .local int can_backtrace
+    can_backtrace = can self, 'backtrace'
+    unless can_backtrace goto no_push_eh
+    push_eh uncaught_exception
+  no_push_eh:
 
     $S0 = adverbs['e']
     $I0 = exists adverbs['e']
     if $I0 goto eval_line
-
     .local pmc result
     result = box ''
     unless args goto interactive
@@ -867,6 +878,9 @@
     result = self.'eval'($S0, '-e', args :flat, adverbs :flat :named)
 
   save_output:
+    unless can_backtrace goto no_pop_eh
+    pop_eh
+  no_pop_eh:
     if null result goto end
     $I0 = defined result
     unless $I0 goto end
@@ -876,15 +890,17 @@
     if target != 'pir' goto end
     .local string output
     .local pmc ofh
-    ofh = getstdout
+    $P0 = getinterp
+    ofh = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
     output = adverbs['output']
     if output == '' goto save_output_1
     if output == '-' goto save_output_1
-    ofh = open output, 'w'
+    ofh = new ['FileHandle']
+    ofh.'open'(output, 'w')
     unless ofh goto err_output
   save_output_1:
     print ofh, result
-    close ofh
+    ofh.'close'()
   end:
     .return ()
 
@@ -896,6 +912,29 @@
   version:
     self.'version'()
     goto end
+
+    # If we get an uncaught exception in the program and the HLL provides
+    # a backtrace method, we end up here. We pass it the exception object
+    # so it can render a backtrace, unless the severity is exit or warning
+    # in which case it needs special handling.
+  uncaught_exception:
+    .get_results ($P0)
+    pop_eh
+    $P1 = getinterp
+    $P1 = $P1.'stdhandle'(.PIO_STDERR_FILENO)
+    $I0 = $P0['severity']
+    if $I0 == .EXCEPT_EXIT goto do_exit
+    $S0 = self.'backtrace'($P0)
+    print $P1, $S0
+    if $I0 <= .EXCEPT_WARNING goto do_warning
+    exit 1
+  do_exit:
+    $I0 = $P0['exit_code']
+    exit $I0
+  do_warning:
+    $P0 = $P0["resume"]
+    push_eh uncaught_exception # Otherwise we get errors about no handler to delete
+    $P0()
 .end
 
 

Modified: branches/gsoc_nfg/compilers/pct/src/POST/Compiler.pir
==============================================================================
--- branches/gsoc_nfg/compilers/pct/src/POST/Compiler.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/pct/src/POST/Compiler.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -368,6 +368,11 @@
     subpir.'append_format'("\n.HLL %0\n", $P0)
   subpir_ns:
     subpir.'append_format'("\n.namespace %0\n", nskey)
+  subpir_directives:
+    $S0 = node['directives']
+    unless $S0 goto subpir_decl
+    subpir.'append_format'("%0", $S0)
+  subpir_decl:
     $S0 = self.'escape'(name)
     subpir.'append_format'(".sub %0 %1\n", $S0, pirflags)
     .local pmc paramlist

Modified: branches/gsoc_nfg/compilers/pct/src/POST/Node.pir
==============================================================================
--- branches/gsoc_nfg/compilers/pct/src/POST/Node.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/pct/src/POST/Node.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -291,6 +291,21 @@
     .return ()
 .end
 
+
+.sub 'add_directive' :method
+    .param string line
+    .local string dlist
+    dlist = self['directives']
+    $I0 = index dlist, line
+    unless $I0 < 0 goto done
+    dlist = concat dlist, line
+    dlist = concat dlist, "\n"
+    self['directives'] = dlist
+  done:
+    .return ()
+.end
+
+
 =back
 
 =head1 AUTHOR

Modified: branches/gsoc_nfg/compilers/tge/tgc.pir
==============================================================================
--- branches/gsoc_nfg/compilers/tge/tgc.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/compilers/tge/tgc.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -25,6 +25,8 @@
 
 =cut
 
+.include 'stdio.pasm'
+
 .sub "main" :main
     .param pmc args
     .local string prog
@@ -64,24 +66,27 @@
     if ck_output goto OUTPUT_FILE
 
   OUTPUT_STDOUT:
-    outfh = getstdout
+    $P0 = getinterp
+    outfh = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
     goto OUTPUT_DONE
 
   OUTPUT_FILE:
     outfile = opts['output']
-    outfh = open outfile, 'w'
+    outfh = new ['FileHandle']
+    outfh.'open'(outfile, 'w')
     unless outfh goto ERR_NO_OUTFILE
 
   OUTPUT_DONE:
 
     # Read grammar file and compile here
     .local pmc infh
-    infh = open infile, 'r'
+    infh = new ['FileHandle']
+    infh.'open'(infile, 'r')
     unless infh goto ERR_NO_INFILE
 
     .local string source
-    source = read infh, 65535
-    close infh
+    source = infh.'read'(65535)
+    infh.'close'()
 
     .local pmc grammar
     grammar = new ['TGE';'Compiler']
@@ -99,10 +104,12 @@
   goto END
 
   USAGE:
-    printerr "Usage: "
-    printerr prog
-    printerr " [OPTIONS] FILE\n"
-    printerr <<"OPTIONS"
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("Usage: ")
+    $P1.'print'(prog)
+    $P1.'print'(" [OPTIONS] FILE\n")
+    $P1.'print'(<<"OPTIONS")
  Options:
   --output=OUTFILE  -- redirect output to OUTFILE
   --help            -- print this message
@@ -110,19 +117,25 @@
     exit 1
 
   ERR_TOO_FEW_ARGS:
-    printerr "Error: too few arguments\n\n"
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("Error: too few arguments\n\n")
     goto USAGE
 
   ERR_NO_INFILE:
-    printerr "Error: file not found: "
-    printerr infile
-    printerr "\n\n"
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("Error: file not found: ")
+    $P1.'print'(infile)
+    $P1.'print'("\n\n")
     goto USAGE
 
   ERR_NO_OUTFILE:
-    printerr "Error: file not found: "
-    printerr outfile
-    printerr "\n\n"
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("Error: file not found: ")
+    $P1.'print'(outfile)
+    $P1.'print'("\n\n")
     goto USAGE
 
   END:

Modified: branches/gsoc_nfg/config/auto/arch.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/arch.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/arch.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -42,8 +42,7 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose = $conf->options->get('verbose');
-    $verbose and print "\n";
+    $conf->debug("\n");
 
     my $archname = $conf->data->get('archname');
     # This was added to convert IA64.ARCHREV_0 on HP-UX, TT #645, TT #653
@@ -51,10 +50,10 @@
     my ( $cpuarch, $osname ) = split( /-/, $archname );
 
 
-    if ($verbose) {
-        print "determining operating system and cpu architecture\n";
-        print "archname: $archname\n";
-    }
+    $conf->debug(
+        "determining operating system and cpu architecture\n",
+        "archname: $archname\n")
+    ;
 
     if ( !defined $osname ) {
         ( $osname, $cpuarch ) = ( $cpuarch, q{} );
@@ -127,12 +126,11 @@
 
 sub _report_verbose {
     my ($conf) = @_;
-    my $verbose = $conf->options->get( 'verbose' );
-    if ( $verbose ) {
-        print "osname:   ", $conf->data->get('osname'), "\n";
-        print "cpuarch:  ", $conf->data->get('cpuarch'), "\n";
-        print "platform: ", $conf->data->get('platform'), "\n";
-    }
+    $conf->debug(
+        "osname:   ", $conf->data->get('osname'), "\n",
+        "cpuarch:  ", $conf->data->get('cpuarch'), "\n",
+        "platform: ", $conf->data->get('platform'), "\n",
+    );
     return 1;
 }
 

Modified: branches/gsoc_nfg/config/auto/attributes.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/attributes.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/attributes.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -49,21 +49,20 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose = $conf->options->get('verbose');
-    print "\n" if $verbose;
+    $conf->debug("\n");
 
     for my $maybe_attr (@potential_attributes) {
-        $self->try_attr( $conf, $maybe_attr, $verbose );
+        $self->try_attr( $conf, $maybe_attr);
     }
     return 1;
 }
 
 sub try_attr {
-    my ( $self, $conf, $attr, $verbose ) = @_;
+    my ( $self, $conf, $attr ) = @_;
 
     my $output_file = 'test.cco';
 
-    $verbose and print "trying attribute '$attr'\n";
+    $conf->debug("trying attribute '$attr'\n");
 
     my $cc = $conf->option_or_data('cc');
     $conf->cc_gen('config/auto/attributes/test_c.in');
@@ -79,29 +78,29 @@
     my $tryflags = "$ccflags -D$attr $disable_warnings";
 
     my $command_line = Parrot::Configure::Utils::_build_compile_command( $cc, $tryflags );
-    $verbose and print "  ", $command_line, "\n";
+    $conf->debug("  ", $command_line, "\n");
 
     # Don't use cc_build, because failure is expected.
     my $exit_code =
         Parrot::Configure::Utils::_run_command( $command_line, $output_file, $output_file );
-    $verbose and print "  exit code: $exit_code\n";
+    $conf->debug("  exit code: $exit_code\n");
 
     $conf->cc_clean();
     $conf->data->set( $attr => !$exit_code | 0 );
 
     if ($exit_code) {
         unlink $output_file or die "Unable to unlink $output_file: $!";
-        $verbose and print "Rejecting bogus attribute:  $attr\n";
+        $conf->debug("Rejecting bogus attribute:  $attr\n");
         return;
     }
 
     my $output = Parrot::BuildUtil::slurp_file($output_file);
-    $verbose and print "  output: $output\n";
+    $conf->debug("  output: $output\n");
 
     if ( $output !~ /error|warning/i ) {
         $conf->data->set( ccflags => $tryflags );
         my $ccflags = $conf->data->get("ccflags");
-        $verbose and print "  ccflags: $ccflags\n";
+        $conf->debug("  ccflags: $ccflags\n");
     }
     unlink $output_file or die "Unable to unlink $output_file: $!";
 

Modified: branches/gsoc_nfg/config/auto/cpu.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/cpu.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/cpu.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -32,20 +32,18 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose = $conf->options->get('verbose');
-
     $conf->data->add( ' ', TEMP_atomic_o => '' );    # assure a default
 
     my $hints = "auto::cpu::" . $conf->data->get('cpuarch') . "::auto";
 
-    print "\t(cpu hints = '$hints') " if $verbose;
+    $conf->debug("\t(cpu hints = '$hints') ");
 
     eval "use $hints";
     unless ($@) {
         $hints->runstep( $conf, @_ );
     }
     else {
-        print "(no cpu specific hints)" if $verbose;
+        $conf->debug("(no cpu specific hints)");
     }
 
     return 1;

Modified: branches/gsoc_nfg/config/auto/cpu/i386/auto.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/cpu/i386/auto.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/cpu/i386/auto.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -22,21 +22,19 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose = $conf->options->get('verbose');
-
     my @files = qw( test_gcc_cmpxchg_c.in );
     for my $f (@files) {
-        print " $f " if $verbose;
+        $conf->debug(" $f ");
         my ($suffix) = $f =~ /test_(\w+)/;
         my $path_f = "config/auto/cpu/i386/$f";
         $conf->cc_gen($path_f);
         eval { $conf->cc_build("-DPARROT_CONFIG_TEST") };
         if ($@) {
-            print " $@ " if $verbose;
+            $conf->debug(" $@ ");
         }
         else {
             if ( $conf->cc_run() =~ /ok/ ) {
-                _handle_cc_run_ok($conf, $suffix, $path_f, $verbose);
+                _handle_cc_run_ok($conf, $suffix, $path_f);
             }
         }
         $conf->cc_clean();
@@ -45,12 +43,12 @@
 }
 
 sub _handle_cc_run_ok {
-    my ($conf, $suffix, $path_f, $verbose) = @_;
+    my ($conf, $suffix, $path_f) = @_;
     $conf->data->set(
         "i386_has_$suffix" => '1',
         "HAS_i386_$suffix" => '1',
     );
-    print " (\U$suffix) " if ($verbose);
+    $conf->debug(" (\U$suffix) ");
     $conf->data->add( ' ', TEMP_generated => $path_f );
 }
 

Modified: branches/gsoc_nfg/config/auto/cpu/ppc/auto.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/cpu/ppc/auto.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/cpu/ppc/auto.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,17 +19,15 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose = $conf->options->get('verbose');
-
     my @files = qw( test_gcc_cmpset_c.in );
     for my $f (@files) {
-        print " $f " if $verbose;
+        $conf->debug(" $f ");
         my ($suffix) = $f =~ /test_(\w+)/;
         $f = "config/auto/cpu/ppc/$f";
         $conf->cc_gen($f);
         eval { $conf->cc_build("-DPARROT_CONFIG_TEST") };
         if ($@) {
-            print " $@ " if $verbose;
+            $conf->debug(" $@ ");
         }
         else {
             if ( $conf->cc_run() =~ /ok/ ) {
@@ -37,7 +35,7 @@
                     "ppc_has_$suffix" => '1',
                     "HAS_PPC_$suffix" => '1',
                 );
-                print " (\U$suffix) " if ($verbose);
+                $conf->debug(" (\U$suffix) ");
                 $conf->data->add( ' ', TEMP_generated => $f );
             }
         }

Modified: branches/gsoc_nfg/config/auto/cpu/sun4/auto.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/cpu/sun4/auto.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/cpu/sun4/auto.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -40,19 +40,17 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose = $conf->options->get('verbose');
-
     build_asm( $self, $conf );
 
     my @files = qw( test_atomic_c.in );
     for my $f (@files) {
-        print " $f " if $verbose;
+        $conf->debug(" $f ");
         my ($suffix) = $f =~ /test_(\w+)/;
         $f = "config/auto/cpu/sun4/$f";
         $conf->cc_gen($f);
         eval { $conf->cc_build("-DPARROT_CONFIG_TEST", "sparcasm" . $conf->data->get('o') ) };
         if ($@) {
-            print " $@ " if $verbose;
+            $conf->debug(" $@ ");
         }
         else {
             if ( $conf->cc_run() =~ /ok/ ) {
@@ -60,7 +58,7 @@
                     "sparc_has_$suffix" => '1',
                     "HAS_SPARC_$suffix" => '1',
                 );
-                print " (\U$suffix) " if ($verbose);
+                $conf->debug(" (\U$suffix) ");
                 $conf->data->add( ' ', TEMP_atomic_o => 'src/atomic/sparc_v9.o' );
             }
         }

Modified: branches/gsoc_nfg/config/auto/cpu/x86_64/auto.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/cpu/x86_64/auto.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/cpu/x86_64/auto.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -20,8 +20,6 @@
     my ( $self, $conf ) = @_;
 
     # x86_64 is recently new and has cmpxchg
-
-    my $verbose = $conf->options->get('verbose');
     my $gcc     = $conf->data->get('gccversion');
 
     # when running on gcc, we just define the config item

Modified: branches/gsoc_nfg/config/auto/ctags.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/ctags.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/ctags.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -40,11 +40,10 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose = $conf->options->get( 'verbose' );
-    print "\n" if $verbose;
+    $conf->debug("\n");
 
     my ($ctags, $has_ctags) =
-        _probe_for_ctags($conf, [ @ctags_variations ], $verbose);
+        _probe_for_ctags($conf, [ @ctags_variations ]);
     $self->_evaluate_ctags($conf, $ctags, $has_ctags);
     return 1;
 }
@@ -52,12 +51,11 @@
 sub _probe_for_ctags {
     my $conf = shift;
     my $variations_ref = shift;
-    my $verbose = shift;
     my ($ctags, $has_ctags);
     while (defined (my $t = shift(@$variations_ref))) {
         my $output = capture_output( $t, '--version' ) || '';
-        print $output, "\n" if $verbose;
-        $has_ctags = _probe_for_ctags_output($output, $verbose);
+        $conf->debug("$output\n");
+        $has_ctags = _probe_for_ctags_output($conf, $output);
         $ctags = $t if $has_ctags;
         last if $has_ctags;
     }
@@ -65,9 +63,9 @@
 }
 
 sub _probe_for_ctags_output {
-    my ($output, $verbose) = @_;
+    my ($conf, $output) = @_;
     my $has_ctags = ( $output =~ m/Exuberant Ctags/ ) ? 1 : 0;
-    print $has_ctags, "\n" if $verbose;
+    $conf->debug("$has_ctags\n");
     return $has_ctags;
 }
 

Modified: branches/gsoc_nfg/config/auto/env.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/env.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/env.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -57,26 +57,25 @@
 
 sub _evaluate_env {
     my ($self, $conf, $setenv, $unsetenv) = @_;
-    my $verbose = $conf->options->get('verbose');
     $conf->data->set(
         setenv   => $setenv,
         unsetenv => $unsetenv
     );
 
     if ( $setenv && $unsetenv ) {
-        print " (both) " if $verbose;
+        $conf->debug(" (both) ");
         $self->set_result('both');
     }
     elsif ($setenv) {
-        print " (setenv) " if $verbose;
+        $conf->debug(" (setenv) ");
         $self->set_result('setenv');
     }
     elsif ($unsetenv) {
-        print " (unsetenv) " if $verbose;
+        $conf->debug(" (unsetenv) ");
         $self->set_result('unsetenv');
     }
     else {
-        print " (no) " if $verbose;
+        $conf->debug(" (no) ");
         $self->set_result('no');
     }
 }

Deleted: branches/gsoc_nfg/config/auto/extra_nci_thunks.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/extra_nci_thunks.pm	Mon Jun  7 18:03:08 2010	(r47435)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,54 +0,0 @@
-# Copyright (C) 2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/auto/extra_nci_thunks - Static NCI Frame Building
-
-=head1 DESCRIPTION
-
-If C<--without-extra-nci-thunks> is specified, builds parrot without NCI thunks
-not required by core.
-
-=cut
-
-package auto::extra_nci_thunks;
-
-use strict;
-use warnings;
-
-use base 'Parrot::Configure::Step';
-
-sub _init {
-    my $self = shift;
-    return {
-        description => 'Determine whether to build extra NCI thunks',
-    };
-}
-
-sub runstep {
-    my ($self, $conf) = @_;
-    my $without = $conf->options->get( 'without-extra-nci-thunks' );
-
-    if ($without) {
-        $conf->data->set( has_extra_nci_thunks => 0 );
-        $conf->data->set( HAS_EXTRA_NCI_THUNKS => 0 );
-        $self->set_result( 'no' );
-    }
-    else {
-        $conf->data->set( has_extra_nci_thunks => 1 );
-        $conf->data->set( HAS_EXTRA_NCI_THUNKS => 1 );
-        $self->set_result( 'yes' );
-    }
-
-    return 1;
-}
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/gsoc_nfg/config/auto/gc.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/gc.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/gc.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -50,7 +50,7 @@
         TEMP_gc_o => "src/gc/alloc_resources\$(O)",
         gc_flag   => '',
     );
-    print(" ($gc) ") if $conf->options->get('verbose');
+    $conf->debug(" ($gc) ");
 
     return 1;
 }

Modified: branches/gsoc_nfg/config/auto/gcc.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/gcc.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/gcc.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -62,9 +62,8 @@
     my $minor = $gnucref->{__GNUC_MINOR__};
     my $intel = $gnucref->{__INTEL_COMPILER};
 
-    my $verbose = $conf->options->get('verbose');
     if ( defined $intel || !defined $major ) {
-        print " (no) " if $verbose;
+        $conf->debug(" (no) ");
         $self->set_result('no');
         $conf->data->set( gccversion => undef );
         return 1;
@@ -76,7 +75,7 @@
         undef $minor;    # Don't use it
     }
     if ( ! defined $major ) {
-        print " (no) " if $verbose;
+        $conf->debug(" (no) ");
         $self->set_result('no');
         $conf->data->set( gccversion => undef );
         return 1;

Modified: branches/gsoc_nfg/config/auto/gettext.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/gettext.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/gettext.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -37,12 +37,7 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my ( $verbose, $without ) = $conf->options->get(
-        qw|
-            verbose
-            without-gettext
-        |
-    );
+    my $without = $conf->options->get( qw| without-gettext | );
 
     if ($without) {
         $conf->data->set( has_gettext => 0 );
@@ -66,10 +61,10 @@
     my $has_gettext = 0;
     if ( !$@ ) {
         my $test = $conf->cc_run();
-        $has_gettext = $self->_evaluate_cc_run($test, $verbose);
+        $has_gettext = $self->_evaluate_cc_run($conf, $test);
     }
     if ($has_gettext) {
-        _handle_gettext($conf, $verbose, $extra_libs);
+        _handle_gettext($conf, $extra_libs);
     }
     $conf->data->set( HAS_GETTEXT => $has_gettext );
 
@@ -77,22 +72,21 @@
 }
 
 sub _evaluate_cc_run {
-    my $self = shift;
-    my ($test, $verbose) = @_;
+    my ($self, $conf, $test) = @_;
     my $has_gettext = 0;
     if ( $test eq "Hello, world!\n" ) {
         $has_gettext = 1;
-        print " (yes) " if $verbose;
+        $conf->debug(" (yes) ");
         $self->set_result('yes');
     }
     return $has_gettext;
 }
 
 sub _handle_gettext {
-    my ($conf, $verbose, $libs) = @_;
+    my ($conf, $libs) = @_;
     $conf->data->add( ' ', ccflags => "-DHAS_GETTEXT" );
     $conf->data->add( ' ', libs => $libs );
-    $verbose and print "\n  ccflags: ", $conf->data->get("ccflags"), "\n";
+    $conf->debug("\n  ccflags: ", $conf->data->get("ccflags"), "\n");
     return 1;
 }
 

Modified: branches/gsoc_nfg/config/auto/gmp.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/gmp.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/gmp.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -43,12 +43,7 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my ( $verbose, $without ) = $conf->options->get(
-        qw|
-            verbose
-            without-gmp
-        |
-    );
+    my $without = $conf->options->get( qw| without-gmp | );
 
     if ($without) {
         $conf->data->set( has_gmp => 0 );
@@ -71,7 +66,7 @@
     my $has_gmp = 0;
     if ( !$@ ) {
         my $test = $conf->cc_run();
-        $has_gmp = $self->_evaluate_cc_run( $conf, $test, $has_gmp, $verbose );
+        $has_gmp = $self->_evaluate_cc_run( $conf, $test, $has_gmp );
     }
     if ($has_gmp) {
         $conf->data->add( ' ', libs => $extra_libs );
@@ -82,10 +77,10 @@
 }
 
 sub _evaluate_cc_run {
-    my ($self, $conf, $test, $has_gmp, $verbose) = @_;
+    my ($self, $conf, $test, $has_gmp) = @_;
     if ( $test eq $self->{cc_run_expected} ) {
         $has_gmp = 1;
-        print " (yes) " if $verbose;
+        $conf->debug(" (yes) ");
         $self->set_result('yes');
 
         $conf->data->set(

Modified: branches/gsoc_nfg/config/auto/headers.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/headers.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/headers.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -64,7 +64,7 @@
         my $flag = "i_$header";
         $flag =~ s/\.h$//g;
         $flag =~ s/\///g;
-        print "$flag: $pass\n" if defined $conf->options->get('verbose');
+        $conf->debug("$flag: $pass\n");
         $conf->data->set( $flag => $pass ? 'define' : undef );
     }
 

Modified: branches/gsoc_nfg/config/auto/icu.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/icu.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/icu.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -46,9 +46,8 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my ( $verbose, $icushared_opt, $icuheaders_opt,
+    my ( $icushared_opt, $icuheaders_opt,
         $icuconfig_opt, $without_opt ) = $conf->options->get( qw|
-            verbose
             icushared
             icuheaders
             icu-config
@@ -101,21 +100,21 @@
                         ( ! defined($icuheaders) );
 
     my $without = 0;
-    ($icuconfig, $autodetect, $without) =
-        $self->_handle_autodetect( {
+    ($icuconfig, $autodetect, $without) = $self->_handle_autodetect(
+        $conf,
+        {
             icuconfig   => $icuconfig,
             autodetect  => $autodetect,
             without     => $without,
-            verbose     => $verbose,
-    } );
+        }
+    );
     # Inside _handle_autodetect(), $without can be set to 1 by
     # _handle_search_for_icu_config().  In that case, we're abandoning our
     # attempt to configure with ICU and so may return here.
     # 2nd possible return point
     if ( $without ) {
         $self->_set_no_configure_with_icu($conf, q{no icu-config});
-        print "Could not locate an icu-config program\n"
-            if $verbose;
+        $conf->debug("Could not locate an icu-config program\n");
         return 1;
     }
 
@@ -126,7 +125,6 @@
                 without         => $without,
                 autodetect      => $autodetect,
                 icuconfig       => $icuconfig,
-                verbose         => $verbose,
                 icushared       => $icushared,
                 icuheaders      => $icuheaders,
             },
@@ -137,7 +135,7 @@
         return 1;
     }
 
-    _verbose_report($verbose, $icuconfig, $icushared, $icuheaders);
+    _verbose_report($conf, $icuconfig, $icushared, $icuheaders);
 
     $icuheaders = $self->_handle_icuconfig_errors( {
         icushared   => $icushared,
@@ -169,7 +167,6 @@
         $conf,
         {
             ccflags_status  => $ccflags_status,
-            verbose         => $verbose,
             icuheaders      => $icuheaders,
         },
     );
@@ -222,8 +219,7 @@
 }
 
 sub _handle_search_for_icu_config {
-    my $self = shift;
-    my $arg = shift;
+    my ($self, $conf, $arg) = @_;
     if ( $arg->{ret} ) {
         undef $arg->{icuconfig};
         $arg->{autodetect} = 0;
@@ -231,40 +227,38 @@
     }
     else {
         $arg->{icuconfig} = $self->{icuconfig_default};
-        if ($arg->{verbose}) {
-            print "icu-config found... good!\n";
-        }
+        $conf->debug("icu-config found... good!\n");
     }
     return ( $arg->{icuconfig}, $arg->{autodetect}, $arg->{without} );
 }
 
 sub _handle_autodetect {
-    my $self = shift;
-    my $arg = shift;
+    my ($self, $conf, $arg) = @_;
     if ( $arg->{autodetect} ) {
         if ( ! $arg->{icuconfig} ) {
 
             my ( undef, undef, $ret ) =
                 capture_output( $self->{icuconfig_default}, "--exists" );
 
-            print "Discovered $self->{icuconfig_default} --exists returns $ret\n"
-                if $arg->{verbose};
+            $conf->debug("Discovered $self->{icuconfig_default} --exists returns $ret\n");
 
             ($arg->{icuconfig}, $arg->{autodetect}, $arg->{without}) =
-                $self->_handle_search_for_icu_config( {
-                    icuconfig   => $arg->{icuconfig},
-                    autodetect  => $arg->{autodetect},
-                    without     => $arg->{without},
-                    verbose     => $arg->{verbose},
-                    ret         => $ret,
-            } );
+                $self->_handle_search_for_icu_config(
+                    $conf,
+                    {
+                        icuconfig   => $arg->{icuconfig},
+                        autodetect  => $arg->{autodetect},
+                        without     => $arg->{without},
+                        ret         => $ret,
+                    }
+                );
         }
     } # end $autodetect true
     else {
-        if ($arg->{verbose}) {
-            print "Specified an ICU config parameter,\n";
-            print "ICU autodetection disabled.\n";
-        }
+        $conf->debug(
+            "Specified an ICU config parameter,\n",
+            "ICU autodetection disabled.\n",
+        );
     } # end $autodetect false
     return ( $arg->{icuconfig}, $arg->{autodetect}, $arg->{without} );
 }
@@ -285,28 +279,22 @@
         $arg->{icuconfig}
     ) {
         # ldflags
-        print "Trying $arg->{icuconfig} with '--ldflags'\n"
-            if $arg->{verbose};
+        $conf->debug("Trying $arg->{icuconfig} with '--ldflags'\n");
         $icushared = capture_output("$arg->{icuconfig} --ldflags");
         chomp $icushared;
-        print "icushared:  captured $icushared\n"
-            if $arg->{verbose};
+        $conf->debug("icushared:  captured $icushared\n");
         ($icushared, $arg->{without}) =
             $self->_handle_icushared($icushared, $arg->{without});
-        print "For icushared, found $icushared and $arg->{without}\n"
-            if $arg->{verbose};
+        $conf->debug("For icushared, found $icushared and $arg->{without}\n");
 
         # location of header files
-        print "Trying $arg->{icuconfig} with '--prefix'\n"
-            if $arg->{verbose};
+        $conf->debug("Trying $arg->{icuconfig} with '--prefix'\n");
         $icuheaders = capture_output("$arg->{icuconfig} --prefix");
         chomp($icuheaders);
-        print "icuheaders:  captured $icuheaders\n"
-            if $arg->{verbose};
+        $conf->debug("icuheaders:  captured $icuheaders\n");
         ($icuheaders, $arg->{without}) =
             $self->_handle_icuheaders($conf, $icuheaders, $arg->{without});
-        print "For icuheaders, found $icuheaders and $arg->{without}\n"
-            if $arg->{verbose};
+        $conf->debug("For icuheaders, found $icuheaders and $arg->{without}\n");
     }
 
     return ($arg->{without}, $icushared, $icuheaders);
@@ -348,8 +336,8 @@
 }
 
 sub _verbose_report {
-    my ($verbose, $icuconfig, $icushared, $icuheaders) = @_;
-    if ($verbose) {
+    my ($conf, $icuconfig, $icushared, $icuheaders) = @_;
+    if ($conf->options->get('verbose')) {
         print "icuconfig: $icuconfig\n"  if defined $icuconfig;
         print "icushared='$icushared'\n" if defined $icushared;
         print "headers='$icuheaders'\n"  if defined $icuheaders;
@@ -395,9 +383,7 @@
     my $arg = shift;
     if ($arg->{ccflags_status}) {
         # Ok, we don't need anything more.
-        if ($arg->{verbose}) {
-            print "Your compiler found the icu headers... good!\n";
-        }
+        $conf->debug("Your compiler found the icu headers... good!\n");
     }
     else {
         my $icuheaders = $arg->{icuheaders};
@@ -410,9 +396,7 @@
             $icuflags = "-I $arg->{icuheaders}";
         }
 
-        if ($arg->{verbose}) {
-            print "Adding $icuflags to ccflags for icu headers.\n";
-        }
+        $conf->debug( "Adding $icuflags to ccflags for icu headers.\n");
         $conf->data->add( ' ', ccflags => $icuflags );
     }
 }

Modified: branches/gsoc_nfg/config/auto/inline.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/inline.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/inline.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -79,13 +79,12 @@
 
 sub _evaluate_inline {
     my ($self, $conf, $test) = @_;
-    my $verbose = $conf->options->get(qw(verbose));
     if ($test) {
-        print " ($test) " if $verbose;
+        $conf->debug(" ($test) ");
         $self->set_result('yes');
     }
     else {
-        print " no " if $verbose;
+        $conf->debug(" no ");
         $self->set_result('no');
         $test = '';
     }

Modified: branches/gsoc_nfg/config/auto/isreg.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/isreg.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/isreg.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -63,7 +63,8 @@
     my $test;
     $test = (! defined $anyerror) ? 1 : 0;
     $conf->data->set( isreg => $test );
-    print( $test ? " (Yep) " : " (no) " ) if $conf->options->get('verbose');
+    my $test_str = $test ? " (Yep) " : " (no) ";
+    $conf->debug($test_str);
     $self->set_result( $test ? 'yes' : 'no' );
     return 1;
 }

Modified: branches/gsoc_nfg/config/auto/memalign.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/memalign.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/memalign.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -95,7 +95,8 @@
         : $test  ? 'memalign'
         :          '';
     $conf->data->set( memalign => $f );
-    print( $test ? " (Yep:$f) " : " (no) " ) if $conf->options->get('verbose');
+    my $test_str = $test ? " (Yep:$f) " : " (no) ";
+    $conf->debug($test_str);
     $self->set_result( $test ? 'yes' : 'no' );
 }
 

Modified: branches/gsoc_nfg/config/auto/msvc.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/msvc.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/msvc.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -33,8 +33,7 @@
     my ( $self, $conf ) = ( shift, shift );
 
     if ($conf->data->get('gccversion')) {
-        my $verbose = $conf->options->get('verbose');
-        print " (skipped) " if $verbose;
+        $conf->debug(" (skipped) ");
         $self->set_result('skipped');
         $conf->data->set( msvcversion => undef );
         return 1;
@@ -57,7 +56,6 @@
 
 sub _evaluate_msvc {
     my ($self, $conf, $msvcref) = @_;
-    my $verbose = $conf->options->get('verbose');
     # Set msvcversion to undef.  This will also trigger any hints-file
     # callbacks that depend on knowing whether or not we're using Visual C++.
 
@@ -73,10 +71,10 @@
 
     my $major = int( $msvcref->{_MSC_VER} / 100 );
     my $minor = $msvcref->{_MSC_VER} % 100;
-    my $status = $self->_handle_not_msvc($conf, $major, $minor, $verbose);
+    my $status = $self->_handle_not_msvc($conf, $major, $minor);
     return 1 if $status;
 
-    my $msvcversion = $self->_compose_msvcversion($major, $minor, $verbose);
+    my $msvcversion = $self->_compose_msvcversion($major, $minor);
 
     $conf->data->set( msvcversion => $msvcversion );
 
@@ -96,10 +94,10 @@
 
 sub _handle_not_msvc {
     my $self = shift;
-    my ($conf, $major, $minor, $verbose) = @_;
+    my ($conf, $major, $minor) = @_;
     my $status;
     unless ( defined $major && defined $minor ) {
-        print " (no) " if $verbose;
+        $conf->debug(" (no) ");
         $self->set_result('no');
         $conf->data->set( msvcversion => undef );
         $status++;
@@ -109,7 +107,7 @@
 
 sub _compose_msvcversion {
     my $self = shift;
-    my ($major, $minor, $verbose) = @_;
+    my ($major, $minor) = @_;
     my $msvcversion = "$major.$minor";
     $self->set_result("yes, $msvcversion");
     return $msvcversion;

Modified: branches/gsoc_nfg/config/auto/neg_0.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/neg_0.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/neg_0.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -33,7 +33,6 @@
 
 sub runstep {
     my ( $self, $conf ) = @_;
-    my ( $verbose ) = $conf->options->get('verbose');
     $conf->cc_gen('config/auto/neg_0/test_c.in');
     eval { $conf->cc_build( q{} ); };
     my $has_neg_0 = 0;
@@ -43,7 +42,6 @@
             $conf,
             $test,
             $has_neg_0,
-            $verbose,
         );
     }
     $conf->cc_clean();
@@ -54,10 +52,11 @@
 
 sub _evaluate_cc_run {
     my $self = shift;
-    my ($conf, $test, $has_neg_0, $verbose) = @_;
+    my ($conf, $test, $has_neg_0) = @_;
     $has_neg_0 = ($test =~ m/^-0/ ? 1 : 0);
     $self->set_result( $has_neg_0 ? 'yes' : 'no' );
-    print $has_neg_0 ? ' (yes) ' : ' (no) ' if $verbose;
+    my $output = $has_neg_0 ? ' (yes) ' : ' (no) ';
+    $conf->debug($output);
     return $has_neg_0;
 }
 

Modified: branches/gsoc_nfg/config/auto/opengl.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/opengl.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/opengl.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -158,12 +158,7 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my ( $verbose, $without ) = $conf->options->get(
-        qw|
-            verbose
-            without-opengl
-        |
-    );
+    my $without = $conf->options->get( qw| without-opengl | );
 
     return $self->_handle_no_opengl($conf) if $without;
 
@@ -192,15 +187,15 @@
     }
     else {
         my $test = $conf->cc_run();
-        return _handle_glut($conf, $extra_libs, $self->_evaluate_cc_run($test, $verbose));
+        return _handle_glut($conf, $extra_libs, $self->_evaluate_cc_run($conf, $test));
     }
 }
 
 sub _evaluate_cc_run {
-    my ($self, $test, $verbose) = @_;
+    my ($self, $conf, $test) = @_;
     my ($glut_api_version, $glut_brand) = split ' ', $test;
 
-    print " (yes, $glut_brand API version $glut_api_version) " if $verbose;
+    $conf->debug(" (yes, $glut_brand API version $glut_api_version) ");
     $self->set_result("yes, $glut_brand $glut_api_version");
 
     return ($glut_api_version, $glut_brand);

Modified: branches/gsoc_nfg/config/auto/pcre.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/pcre.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/pcre.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -33,12 +33,7 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my ( $verbose, $without ) = $conf->options->get(
-        qw|
-            verbose
-            without-pcre
-        |
-    );
+    my $without = $conf->options->get( qw| without-pcre | );
 
     if ($without) {
         $conf->data->set( HAS_PCRE => 0 );
@@ -61,7 +56,7 @@
     my $has_pcre = 0;
     if ( !$@ ) {
         my $test = $conf->cc_run();
-        $has_pcre = $self->_evaluate_cc_run($test, $verbose);
+        $has_pcre = $self->_evaluate_cc_run($conf, $test);
     }
     $conf->data->set( HAS_PCRE => $has_pcre);
 
@@ -70,12 +65,12 @@
 
 sub _evaluate_cc_run {
     my $self = shift;
-    my ($test, $verbose) = @_;
+    my ($conf, $test) = @_;
     my $has_pcre = 0;
     if ( $test =~ /pcre (\d+\.\d+)/ ) {
         my $pcre_version = $1;
         $has_pcre = 1;
-        print " (yes, $pcre_version) " if $verbose;
+        $conf->debug(" (yes, $pcre_version) ");
         $self->set_result("yes, $pcre_version");
     }
     return $has_pcre;

Modified: branches/gsoc_nfg/config/auto/readline.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/readline.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/readline.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -36,8 +36,6 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose = $conf->options->get('verbose');
-
     my $cc     = $conf->data->get('cc');
     my $osname = $conf->data->get('osname');
 
@@ -54,7 +52,7 @@
     eval { $conf->cc_build( q{}, $extra_libs ) };
     if ( !$@ ) {
         if ( $conf->cc_run() ) {
-            $has_readline = $self->_evaluate_cc_run($verbose);
+            $has_readline = $self->_evaluate_cc_run($conf);
         }
         _handle_readline($conf, $extra_libs);
     }
@@ -71,7 +69,7 @@
         eval { $conf->cc_build( q{}, $extra_libs) };
         if ( !$@ ) {
             if ( $conf->cc_run() ) {
-                $has_readline = $self->_evaluate_cc_run($verbose);
+                $has_readline = $self->_evaluate_cc_run($conf);
             }
             _handle_readline($conf, $extra_libs);
         }
@@ -83,9 +81,9 @@
 }
 
 sub _evaluate_cc_run {
-    my ($self, $verbose) = @_;
+    my ($self, $conf) = @_;
     my $has_readline = 1;
-    print " (yes) " if $verbose;
+    $conf->debug(" (yes) ");
     $self->set_result('yes');
     return $has_readline;
 }

Modified: branches/gsoc_nfg/config/auto/signal.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/signal.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/signal.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -39,26 +39,24 @@
         has_setitimer      => undef
     );
 
-    my $verbose = $conf->options->get('verbose');
-
     $conf->cc_gen('config/auto/signal/test1_c.in');
     eval { $conf->cc_build(); };
     unless ( $@ || $conf->cc_run() !~ /ok/ ) {
-        _handle__sighandler_t($conf, $verbose);
+        _handle__sighandler_t($conf);
     }
     $conf->cc_clean();
 
     $conf->cc_gen('config/auto/signal/test2_c.in');
     eval { $conf->cc_build(); };
     unless ( $@ || $conf->cc_run() !~ /ok/ ) {
-        _handle_sigaction($conf, $verbose);
+        _handle_sigaction($conf);
     }
     $conf->cc_clean();
 
     $conf->cc_gen('config/auto/signal/test_itimer_c.in');
     eval { $conf->cc_build(); };
     unless ( $@ || $conf->cc_run() !~ /ok/ ) {
-        _handle_setitimer($conf, $verbose);
+        _handle_setitimer($conf);
     }
     $conf->cc_clean();
 
@@ -70,26 +68,26 @@
 }
 
 sub _handle__sighandler_t {
-    my ($conf, $verbose) = @_;
+    my ($conf) = @_;
     $conf->data->set( has___sighandler_t => 'define' );
-    print " (__sighandler_t)" if $verbose;
+    $conf->debug(" (__sighandler_t)");
     return 1;
 }
 
 sub _handle_sigaction {
-    my ($conf, $verbose) = @_;
+    my ($conf) = @_;
     $conf->data->set( has_sigaction => 'define' );
-    print " (sigaction)" if $verbose;
+    $conf->debug(" (sigaction)");
     return 1;
 }
 
 sub _handle_setitimer {
-    my ($conf, $verbose) = @_;
+    my ($conf) = @_;
     $conf->data->set(
         has_setitimer    => 'define',
         has_sig_atomic_t => 'define',
     );
-    print " (setitimer) " if $verbose;
+    $conf->debug(" (setitimer) ");
     return 1;
 }
 

Modified: branches/gsoc_nfg/config/auto/snprintf.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/snprintf.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/snprintf.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -56,7 +56,7 @@
     elsif ( $res =~ /^old snprintf/ ) {
         $conf->data->set( HAS_OLD_SNPRINTF => 1 );
     }
-    print " ($res) " if $conf->options->get('verbose');
+    $conf->debug(" ($res) ");
     return 1;
 }
 

Modified: branches/gsoc_nfg/config/auto/thread.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/thread.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/thread.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -31,12 +31,7 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my ( $verbose, $without ) = $conf->options->get(
-        qw|
-            verbose
-            without-threads
-        |
-    );
+    my $without = $conf->options->get( qw| without-threads |);
 
     if ($without) {
         $conf->data->set( HAS_THREADS => 0 );

Modified: branches/gsoc_nfg/config/auto/warnings.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/warnings.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/warnings.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -274,8 +274,7 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose = $conf->options->get('verbose');
-    print "\n" if $verbose;
+    $conf->debug("\n");
 
     my $compiler = '';
     if ( defined $conf->data->get('gccversion') ) {
@@ -289,8 +288,7 @@
     }
 
     if ($compiler eq '') {
-        print "We do not (yet) probe for warnings for your compiler\n"
-            if $verbose;
+        $conf->debug("We do not (yet) probe for warnings for your compiler\n");
         $self->set_result('skipped');
         return 1;
     }
@@ -357,12 +355,10 @@
 sub valid_warning {
     my ( $self, $conf, $warning ) = @_;
 
-    my $verbose = $conf->options->get('verbose');
-
     # This should be using a temp file name.
     my $output_file = 'test.cco';
 
-    $verbose and print "trying attribute '$warning'\n";
+    $conf->debug("trying attribute '$warning'\n");
 
     my $cc = $conf->option_or_data('cc');
     $conf->cc_gen('config/auto/warnings/test_c.in');
@@ -372,7 +368,7 @@
     my $tryflags = "$ccflags $warnings $warning";
 
     my $command_line = Parrot::Configure::Utils::_build_compile_command( $cc, $tryflags );
-    $verbose and print '  ', $command_line, "\n";
+    $conf->debug("  ", $command_line, "\n");
 
     # Don't use cc_build, because failure is expected.
     my $exit_code = Parrot::Configure::Utils::_run_command(
@@ -390,15 +386,15 @@
     my $output = Parrot::BuildUtil::slurp_file($output_file);
     unlink $output_file or die "Unable to unlink $output_file: $!";
 
-    $verbose and print "  output: $output\n";
+    $conf->debug("  output: $output\n");
 
     if ( $output !~ /\berror|warning|not supported|ignoring (unknown )?option\b/i ) {
         push @{$self->{'validated'}}, $warning;
-        $verbose and print "    valid warning: '$warning'\n";
+        $conf->debug("    valid warning: '$warning'\n");
         return 1;
     }
     else {
-        $verbose and print "  invalid warning: '$warning'\n";
+        $conf->debug("  invalid warning: '$warning'\n");
         return 0;
     }
 }

Modified: branches/gsoc_nfg/config/auto/zlib.pm
==============================================================================
--- branches/gsoc_nfg/config/auto/zlib.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/auto/zlib.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -32,12 +32,7 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my ( $verbose, $without ) = $conf->options->get(
-        qw|
-            verbose
-            without-zlib
-        |
-    );
+    my $without = $conf->options->get( qw| without-zlib | );
 
     if ($without) {
         $conf->data->set( has_zlib => 0 );
@@ -60,7 +55,7 @@
     my $has_zlib = 0;
     if ( !$@ ) {
         my $test = $conf->cc_run();
-        $has_zlib = $self->_evaluate_cc_run($conf, $test, $has_zlib, $verbose);
+        $has_zlib = $self->_evaluate_cc_run($conf, $test, $has_zlib);
     }
     $conf->data->set( has_zlib => $has_zlib );
     $self->set_result($has_zlib ? 'yes' : 'no');
@@ -70,11 +65,11 @@
 
 sub _evaluate_cc_run {
     my $self = shift;
-    my ($conf, $test, $has_zlib, $verbose) = @_;
+    my ($conf, $test, $has_zlib) = @_;
     if ( $test =~ m/^(\d\.\d\.\d)/ ) {
         my $version = $1;
         $has_zlib = 1;
-        print " (yes) " if $verbose;
+        $conf->debug(" (yes) ");
         $self->set_result("yes, $version");
     }
     return $has_zlib;

Modified: branches/gsoc_nfg/config/gen/config_pm/config_pir.in
==============================================================================
--- branches/gsoc_nfg/config/gen/config_pm/config_pir.in	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/gen/config_pm/config_pir.in	Mon Jun  7 18:03:08 2010	(r47436)
@@ -40,20 +40,32 @@
 =cut
 
 .include "interpinfo.pasm"
-.include "stat.pasm"
 
 .sub _config
     .local string prefix, conf_file
     prefix = interpinfo .INTERPINFO_RUNTIME_PREFIX
 
     $S0 = concat prefix, "/runtime"
-    $I0 = stat $S0, .STAT_EXISTS
-    if $I0 goto L1
+
+    push_eh L1
+        # 'os' is dynop and can be absent at this point.
+        # Treat it as developers mode.
+        $P0 = loadlib 'os'
+        $P0 = new ['OS']
+        pop_eh
+
+    push_eh file_not_found
+        # OS.stat throws on file not found
+        $P0.'stat'($S0)
+        goto L1
+  file_not_found:
+    # Treat it as installed parrot.
     conf_file = "@libdir@@versiondir@/include/config.fpmc"
     goto L2
   L1:
     conf_file = prefix . "/runtime/parrot/include/config.fpmc"
   L2:
+    pop_eh
 
     .local pmc CONF
     CONF = new 'FileHandle'

Modified: branches/gsoc_nfg/config/gen/makefiles/root.in
==============================================================================
--- branches/gsoc_nfg/config/gen/makefiles/root.in	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/gen/makefiles/root.in	Mon Jun  7 18:03:08 2010	(r47436)
@@ -617,17 +617,42 @@
     $(DYNOPLIBS_TARGETS) \
     $(LIBNCI_TEST_SO)
 
+# We build DYNPMC_TARGET in corevm. It's kinda hack to test t/pmc/threads.t CLONE_LIBRARIES
 corevm : \
     $(GEN_PM_INCLUDES) \
     PARROT_LIBS \
     $(PARROT) \
     runtime/parrot/include/parrotlib.pbc \
     runtime/parrot/include/config.fpmc \
-    $(LIBRARY_DIR)/Test/More.pbc \
-    $(DYNPMC_TARGETS)
+    $(DYNPMC_TARGETS) \
+    $(LIBRARY_DIR)/Test/More.pbc
 
 $(GEN_LIBRARY) : $(PARROT) $(GEN_PASM_INCLUDES)
 
+$(LIBRARY_DIR)/Digest/MD5.pbc: $(DYNEXT_DIR)/bit_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/Archive/Zip.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT) $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/Configure/genfile.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/HTTP/Message.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/distutils.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/pcre.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/LWP/Protocol.pbc: $(DYNEXT_DIR)/io_ops$(LOAD_EXT) $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/Test/More.pbc:
+
+$(LIBRARY_DIR)/Archive/Tar.pbc: $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/osutils.pbc: $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/Config/JSON.pbc: $(DYNEXT_DIR)/io_ops$(LOAD_EXT) $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/LWP/UserAgent.pbc: $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
+
 # constant string support
 .c.str : # suffix rule (limited support)
 	$(PERL) $(BUILD_TOOLS_DIR)/c2str.pl $< > $@
@@ -782,6 +807,7 @@
 	@echo "  tags-vi:           Create tags for the vi editor."
 	@echo "  tags-emacs:        Create tags for the Emacs editor."
 	@echo "  perlcritic:        Check Perl code with Perl::Critic."
+	@echo "  bootstrap-ops:     Generate C code from .ops files."
 	@echo ""
 	@echo "Release:"
 	@echo "  release:           Create a tarball."

Modified: branches/gsoc_nfg/config/gen/opengl.pm
==============================================================================
--- branches/gsoc_nfg/config/gen/opengl.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/gen/opengl.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -457,8 +457,6 @@
         return 1;
     }
 
-    my $verbose = $conf->options->get('verbose') || 0;
-
     my @include_paths_win32 = grep /\S/ => split /;/ => ($ENV{INCLUDE} || '');
 
     my $osname = $conf->data->get('osname');
@@ -522,22 +520,28 @@
     # X freeglut only if DISPLAY is set, otherwise use native w32api GLUT
     shift @header_globs if $^O eq 'cygwin' and !$ENV{DISPLAY};
 
-    print "\nChecking for OpenGL headers using the following globs:\n\t",
-        join("\n\t", @header_globs), "\n"
-        if $verbose;
+    my $globs_str = join("\n\t", @header_globs) . "\n";
+    $conf->debug(
+        "\n",
+        "Checking for OpenGL headers using the following globs:\n",
+        "\t$globs_str"
+    );
 
     my @header_files = sort map {File::Glob::bsd_glob($_)} @header_globs;
 
     my %skip = map {($_ => 1)} @SKIP;
-    @header_files = grep {my ($file) = m{([^/]+)$}; !$skip{$file}} @header_files;
-
-    print "\nFound the following OpenGL headers:\n\t",
-        join("\n\t", @header_files), "\n"
-        if $verbose;
-
+    @header_files =
+        grep {my ($file) = m{([^/]+)$}; !$skip{$file}} @header_files;
     die "OpenGL enabled and detected, but no OpenGL headers found!"
         unless @header_files;
 
+    my $files_str = join("\n\t", @header_files) . "\n";
+    $conf->debug(
+        "\n",
+        "Found the following OpenGL headers:\n",
+        "\t$files_str\n",
+    );
+
     my $autogen_header = <<'HEADER';
 # DO NOT EDIT THIS FILE.
 #
@@ -550,15 +554,15 @@
 
     $autogen_header .= "# $_\n" foreach @header_files;
 
-    $self->gen_opengl_defines ($conf, \@header_files, $autogen_header, $verbose);
-    $self->gen_opengl_wrappers($conf, \@header_files, $autogen_header, $verbose);
+    $self->gen_opengl_defines ($conf, \@header_files, $autogen_header);
+    $self->gen_opengl_wrappers($conf, \@header_files, $autogen_header);
     $self->gen_glut_callbacks ($conf);
 
     return 1;
 }
 
 sub gen_opengl_defines {
-    my ($self, $conf, $header_files, $autogen_header, $verbose) = @_;
+    my ($self, $conf, $header_files, $autogen_header) = @_;
 
     my (%defs, @macros, %non_numeric);
     my $max_len = 0;
@@ -590,7 +594,7 @@
             }
             else {
                 $non_numeric{$F[1]}++;
-                print "\nNon-numeric value for '$F[1]': '$F[2]'\n" if $verbose;
+                $conf->debug("Non-numeric value for '$F[1]': '$F[2]'\n");
             }
         }
     }
@@ -630,7 +634,8 @@
 }
 
 sub gen_opengl_wrappers {
-    my ($self, $conf, $header_files, $autogen_header, $verbose) = @_;
+    my ($self, $conf, $header_files, $autogen_header) = @_;
+    my $verbose = $conf->options->get('verbose') || 0;
 
     my %IGNORE = map {($_ => 1)} @IGNORE;
 
@@ -772,7 +777,8 @@
             $sigs{$nci_sig}++;
             push @{$funcs{$group}}, [$name, $nci_sig];
 
-            print "$group\t$nci_sig\t$return $name($params);\n" if $verbose >= 3;
+            print "$group\t$nci_sig\t$return $name($params);\n"
+                if $verbose >= 3;
         }
     }
 

Modified: branches/gsoc_nfg/config/gen/platform.pm
==============================================================================
--- branches/gsoc_nfg/config/gen/platform.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/gen/platform.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -39,35 +39,32 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose     = $conf->options->get('verbose');
-    my $generated   = $self->_get_generated($conf, $verbose);
-
+    my $generated   = $self->_get_generated($conf);
 
     # headers are merged into platform.h
-    $self->_set_headers($conf, $verbose, $generated);
+    $self->_set_headers($conf, $generated);
 
     # implementation files are merged into platform.c
-    $self->_set_implementations($conf, $verbose, $generated);
+    $self->_set_implementations($conf, $generated);
 
     $self->_handle_asm($conf);
 
-    $self->_set_limits($conf, $verbose);
+    $self->_set_limits($conf);
 
     return 1;
 }
 
 sub _get_generated {
-    my $self = shift;
-    my ($conf, $verbose) = @_;
+    my ($self, $conf) = @_;
     my $generated = $conf->data->get('TEMP_generated');
     $generated = '' unless defined $generated;
-    print " ($generated) " if $verbose;
+    $conf->debug(" ($generated) \n");
     return $generated;
 }
 
 sub _set_headers {
     my $self = shift;
-    my ($conf, $verbose, $generated) = @_;
+    my ($conf, $generated) = @_;
     my $platform = $conf->data->get('platform');
     my @headers = qw/
         io.h
@@ -112,7 +109,7 @@
 
         if ( -e $header_file ) {
             local $/ = undef;
-            print("\t$header_file\n") if $verbose;
+            $conf->debug("\t$header_file\n");
             open my $IN_H, "<", "$header_file"
                 or die "Can't open $header_file: $!";
 
@@ -144,7 +141,7 @@
     for my $h (@headers) {
         if ( -e $h ) {
             local $/ = undef;
-            print("\t$h\n") if $verbose;
+            $conf->debug("\t$h\n");
             open my $IN_H, "<", $h or die "Can't open $h: $!";
             print {$PLATFORM_H} <<"END_HERE";
 /*
@@ -186,7 +183,7 @@
 
 sub _set_implementations {
     my $self = shift;
-    my ($conf, $verbose, $generated) = @_;
+    my ($conf, $generated) = @_;
     my $platform = $conf->data->get('platform');
     my @impls = qw/
         time.c
@@ -238,7 +235,7 @@
 
         if ( -e $impl_file ) {
             local $/ = undef;
-            print("\t$impl_file\n") if $verbose;
+            $conf->debug("\t$impl_file\n");
             open my $IN_C, "<", $impl_file or die "Can't open $impl_file: $!";
 
             # slurp in the C file
@@ -263,7 +260,7 @@
     for my $im (@impls) {
         if ( -e $im ) {
             local $/ = undef;
-            print("\t$im\n") if $verbose;
+            $conf->debug("\t$im\n");
             open my $IN_C, "<", $im or die "Can't open $im: $!";
             print {$PLATFORM_C} <<"END_HERE";
 /*

Modified: branches/gsoc_nfg/config/gen/platform/ansi/time.c
==============================================================================
--- branches/gsoc_nfg/config/gen/platform/ansi/time.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/gen/platform/ansi/time.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -60,6 +60,8 @@
 
 =item C<void Parrot_sleep(unsigned int seconds)>
 
+Sleep for at least the specified number of seconds.
+
 =cut
 
 */

Modified: branches/gsoc_nfg/config/gen/platform/generic/time.c
==============================================================================
--- branches/gsoc_nfg/config/gen/platform/generic/time.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/gen/platform/generic/time.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -94,6 +94,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_gmtime_r(const time_t *t, struct tm *tm)
 {
@@ -108,6 +109,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_localtime_r(const time_t *t, struct tm *tm)
 {
@@ -122,6 +124,7 @@
 
 */
 
+PARROT_EXPORT
 char*
 Parrot_asctime_r(const struct tm *tm, char *buffer)
 {

Modified: branches/gsoc_nfg/config/gen/platform/solaris/time.c
==============================================================================
--- branches/gsoc_nfg/config/gen/platform/solaris/time.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/gen/platform/solaris/time.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -94,6 +94,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_gmtime_r(const time_t *t, struct tm *tm)
 {
@@ -108,6 +109,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_localtime_r(const time_t *t, struct tm *tm)
 {
@@ -122,6 +124,7 @@
 
 */
 
+PARROT_EXPORT
 char*
 Parrot_asctime_r(const struct tm *tm, char *buffer)
 {

Modified: branches/gsoc_nfg/config/gen/platform/win32/dl.c
==============================================================================
--- branches/gsoc_nfg/config/gen/platform/win32/dl.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/gen/platform/win32/dl.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -42,7 +42,7 @@
 
 =item C<const char * Parrot_dlerror(void)>
 
-System-dependant error code that indicates failure in opening a DL.
+System-dependent error code that indicates failure in opening a DL.
 
 =cut
 

Modified: branches/gsoc_nfg/config/gen/platform/win32/time.c
==============================================================================
--- branches/gsoc_nfg/config/gen/platform/win32/time.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/gen/platform/win32/time.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -122,6 +122,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_gmtime_r(const time_t *t, struct tm *tm)
 {
@@ -139,6 +140,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_localtime_r(const time_t *t, struct tm *tm)
 {
@@ -157,6 +159,7 @@
 
 */
 
+PARROT_EXPORT
 char*
 Parrot_asctime_r(const struct tm *tm, char *buffer)
 {

Modified: branches/gsoc_nfg/config/init/defaults.pm
==============================================================================
--- branches/gsoc_nfg/config/init/defaults.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/init/defaults.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -258,6 +258,13 @@
 
     $conf->data->set( 'archname', $Config{archname});
 
+    $conf->data->set( has_extra_nci_thunks => 1 );
+    $conf->data->set( HAS_EXTRA_NCI_THUNKS => 1 );
+    if ( $conf->options->get( 'without-extra-nci-thunks' ) ) {
+        $conf->data->set( has_extra_nci_thunks => 0 );
+        $conf->data->set( HAS_EXTRA_NCI_THUNKS => 0 );
+    }
+
     # adjust archname, cc and libs for e.g. --m=32
     # remember corrected archname - jit.pm was using $Config('archname')
     _64_bit_adjustments($conf);

Modified: branches/gsoc_nfg/config/init/hints.pm
==============================================================================
--- branches/gsoc_nfg/config/init/hints.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/init/hints.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -31,8 +31,7 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my $verbose = $conf->options->get('verbose');
-    print "\n[ " if $verbose;
+    $conf->debug("\n[ ");
 
     my $hints_used = 0;
     my $hints_file;
@@ -46,7 +45,7 @@
     if ( -f $hints_file ) {
         my $hints_pkg = "init::hints::" . $hints_file_name;
 
-        print "$hints_pkg " if $verbose;
+        $conf->debug("$hints_pkg ");
 
         eval "use $hints_pkg";
         die $@ if $@;
@@ -57,7 +56,7 @@
         $hints_used++;
 
         $hints_pkg = "init::hints::local";
-        print "$hints_pkg " if $verbose;
+        $conf->debug("$hints_pkg ");
         eval "use $hints_pkg";
 
         unless ($@) {
@@ -66,14 +65,14 @@
         }
     }
     else {
-        print "No $hints_file found.  " if $verbose;
+        $conf->debug("No $hints_file found.  ");
     }
 
-    if ( $hints_used == 0 and $verbose ) {
-        print "(no hints) ";
+    if ( $hints_used == 0 ) {
+        $conf->debug("(no hints) ");
     }
 
-    print "]" if $verbose;
+    $conf->debug("]");
 
     return 1;
 }

Modified: branches/gsoc_nfg/config/init/hints/darwin.pm
==============================================================================
--- branches/gsoc_nfg/config/init/hints/darwin.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/init/hints/darwin.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -25,7 +25,6 @@
 
     my $share_ext = $conf->option_or_data('share_ext');
     my $version   = $conf->option_or_data('VERSION');
-    my $verbose = $conf->options->get('verbose');
 
     # The hash referenced by $flagsref is the list of options that have -arch
     # flags added to them implicitly through config/init/defaults.pm when
@@ -35,7 +34,7 @@
     # friends.  So, it's time to remove all -arch flags set in $conf->data and
     # force a single, native architecture to being the default build.
 
-    my $flagsref = _strip_arch_flags($conf, $verbose);
+    my $flagsref = _strip_arch_flags($conf);
 
     # And now, after possibly losing a few undesired compiler and linker
     # flags, on to the main Darwin config.
@@ -98,11 +97,11 @@
 #################### INTERNAL SUBROUTINES ####################
 
 sub _precheck {
-    my ($flag, $stored, $verbose) = @_;
-    if ($verbose) {
-        print "Checking $flag...\n";
-        print "Pre-check: " . ($stored || '(nil)') . "\n";
-    }
+    my ($conf, $flag, $stored) = @_;
+    $conf->debug(
+        "Checking $flag...\n",
+        "Pre-check: " . ($stored || '(nil)') . "\n",
+    );
 }
 
 sub _strip_arch_flags_engine {
@@ -116,27 +115,26 @@
 }
 
 sub _postcheck {
-    my ($flagsref, $flag, $verbose) = @_;
-    if ($verbose) {
-        print "Post-check: ", ( $flagsref->{$flag} or '(nil)' ), "\n";
-    }
+    my ($conf, $flagsref, $flag) = @_;
+    my $f = $flagsref->{$flag} || '(nil)';
+    $conf->debug("Post-check: $f\n");
 }
 
 sub _strip_arch_flags {
-    my ($conf, $verbose) = @_;
+    my ($conf) = @_;
     my $flagsref  = { map { $_ => '' } @{ $defaults{problem_flags} } };
 
-    print "\nStripping -arch flags due to Apple multi-architecture build problems:\n" if $verbose;
+    $conf->debug("\nStripping -arch flags due to Apple multi-architecture build problems:\n");
     for my $flag ( keys %{ $flagsref } ) {
         my $stored = $conf->data->get($flag) || '';
 
-        _precheck($flag, $stored, $verbose);
+        _precheck($conf, $flag, $stored);
 
         $flagsref = _strip_arch_flags_engine(
             $defaults{architectures}, $stored, $flagsref, $flag
         );
 
-        _postcheck($flagsref, $flag, $verbose);
+        _postcheck($conf, $flagsref, $flag);
     }
     return $flagsref;
 }
@@ -167,12 +165,11 @@
 
 sub _probe_for_fink {
     my $conf = shift;
-    my $verbose = $conf->options->get( 'verbose' );
     # Per fink(8), this is location for Fink configuration file, presumably
     # regardless of where Fink itself is installed.
     my $fink_conf    = $defaults{fink_conf};
     unless (-f $fink_conf) {
-        print "Fink configuration file not located\n" if $verbose;
+        $conf->debug("Fink configuration file not located\n");
         return;
     }
     my $fink_conf_str = Parrot::BuildUtil::slurp_file($fink_conf);
@@ -185,8 +182,7 @@
         last;
     }
     unless (defined $fink_base_dir) {
-        print "Fink configuration file defective:  no 'Basepath'\n"
-            if $verbose;
+        $conf->debug("Fink configuration file defective:  no 'Basepath'\n");
         return;
     }
     my $fink_lib_dir = qq{$fink_base_dir/lib};
@@ -196,8 +192,7 @@
         push @unlocateables, $dir unless (-d $dir);
     }
     if (@unlocateables) {
-        print "Could not locate Fink directories:  @unlocateables\n"
-            if $verbose;
+        $conf->debug("Could not locate Fink directories:  @unlocateables\n");
         return;
     }
     else {
@@ -212,7 +207,6 @@
 
 sub _probe_for_macports {
     my $conf = shift;
-    my $verbose = $conf->options->get( 'verbose' );
     my $ports_base_dir = $defaults{ports_base_dir};
     my $ports_lib_dir = qq{$ports_base_dir/lib};
     my $ports_include_dir = qq{$ports_base_dir/include};
@@ -221,8 +215,7 @@
         push @unlocateables, $dir unless (-d $dir);
     }
     if (@unlocateables) {
-        print "Could not locate Macports directories:  @unlocateables\n"
-            if $verbose;
+        $conf->debug("Could not locate Macports directories:  @unlocateables\n");
         return;
     }
     else {
@@ -239,7 +232,6 @@
     my ($conf, $flagsref, $library) = @_;
     my $no_library_option = "darwin_no_$library";
     my $title = ucfirst(lc($library));
-    my $verbose = $conf->options->get( 'verbose' );
     unless ($conf->options->get( $no_library_option ) ) {
         my $addl_flags_ref;
         if ($library eq 'fink') {
@@ -248,14 +240,14 @@
         if ($library eq 'macports') {
             $addl_flags_ref = _probe_for_macports($conf);
         }
-        my $rv = _add_to_flags( $addl_flags_ref, $flagsref, $title, $verbose );
+        my $rv = _add_to_flags( $conf, $addl_flags_ref, $flagsref, $title );
         return $rv;
     }
     return;
 }
 
 sub _add_to_flags {
-    my ( $addl_flags_ref, $flagsref, $title, $verbose ) = @_;
+    my ( $conf, $addl_flags_ref, $flagsref, $title ) = @_;
     if ( defined $addl_flags_ref ) {
         foreach my $addl ( keys %{ $addl_flags_ref } ) {
             my %seen;
@@ -266,10 +258,10 @@
             $flagsref->{$addl} .= " $addl_flags_ref->{$addl}"
                 unless $seen{ $addl_flags_ref->{$addl} };
         }
-        print "Probe for $title successful\n" if $verbose;
+        $conf->debug("Probe for $title successful\n");
     }
     else {
-        print "Probe for $title unsuccessful\n" if $verbose;
+        $conf->debug("Probe for $title unsuccessful\n");
     }
     return 1;
 }

Modified: branches/gsoc_nfg/config/init/hints/linux.pm
==============================================================================
--- branches/gsoc_nfg/config/init/hints/linux.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/init/hints/linux.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -15,10 +15,8 @@
     my $linkflags = $conf->option_or_data('linkflags');
     my $share_ext = $conf->option_or_data('share_ext');
     my $version   = $conf->option_or_data('VERSION');
-    my $verbose;
 
-    $verbose = $conf->options->get('verbose');
-    print "\n" if $verbose;
+    $conf->debug("\n");
 
     # should find g++ in most cases
     my $link = $conf->data->get('link') || 'c++';
@@ -39,7 +37,7 @@
         $ld_share_flags = ' -shared -g -pipe -fexceptions -fPIC';
         $cc_shared .= ' -fPIC';
 
-        $ccflags = _handle_icc_ccflags($ccflags, $verbose);
+        $ccflags = _handle_icc_ccflags($conf, $ccflags);
 
     }
     elsif ( $cc =~ /suncc/ ) {
@@ -96,7 +94,7 @@
 }
 
 sub _handle_icc_ccflags {
-    my ($ccflags, $verbose) = @_;
+    my ($conf, $ccflags) = @_;
 
     # enable correct floating point behavior
     # which is *not* the default behavior. ahem.
@@ -106,7 +104,7 @@
     # for negative zero without this.
     $ccflags .= ' -fp-model source';
 
-    $verbose and print " ccflags: $ccflags\n";
+    $conf->debug(" ccflags: $ccflags\n");
     return $ccflags;
 }
 

Modified: branches/gsoc_nfg/config/init/optimize.pm
==============================================================================
--- branches/gsoc_nfg/config/init/optimize.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/init/optimize.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -27,16 +27,12 @@
     };
 }
 
-our $verbose;
-
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    $verbose = $conf->options->get( 'verbose' );
-    print "\n" if $verbose;
+    $conf->debug("\n");
 
-    print "(optimization options: init::optimize)\n"
-        if $verbose;
+    $conf->debug("(optimization options: init::optimize)\n");
 
     # A plain --optimize means use perl5's $Config{optimize}.  If an argument
     # is given, however, use that instead.
@@ -44,7 +40,7 @@
 
     if (! defined $optimize) {
         $self->set_result('no');
-        print "(none requested) " if $conf->options->get('verbose');
+        $conf->debug("(none requested) ");
         return 1;
     }
 
@@ -68,7 +64,7 @@
 
     # save the options, however we got them.
     $conf->data->set( optimize => $options );
-    print "optimize options: ", $options, "\n" if $verbose;
+    $conf->debug("optimize options: ", $options, "\n");
 
     # disable debug flags.
     $conf->data->set( cc_debug => '' );

Modified: branches/gsoc_nfg/config/inter/libparrot.pm
==============================================================================
--- branches/gsoc_nfg/config/inter/libparrot.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/inter/libparrot.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -46,27 +46,8 @@
     # Parrot can't necessarily handle a pre-existing installed shared
     # libparrot.so. At this point, we don't know the actual name
     # of the shared parrot library. So we try some candidates.
-    my @libs = ('libparrot.so');
-    my @libpaths = ('/usr/local/lib', '/usr/lib', $conf->data->get('libdir'));
-    if ($^O eq 'MSWin32') {
-        push @libpaths, (split /;/, $ENV{PATH});
-        @libs = ('libparrot.dll', 'libparrot.lib', 'libparrot.dll.a');
-    }
-    if ($^O eq 'cygwin') {
-        @libs = ('libparrot.dll.a');
-    }
-    if ($^O eq 'darwin'){
-        @libs = qw/libparrot.dylib libparrot.a/;
-    }
-    if (defined $ENV{LD_LIBRARY_PATH}) {
-        push @libpaths, (split /:/, $ENV{LD_LIBRARY_PATH});
-    }
-    if (defined $ENV{LD_RUN_PATH}) {
-        push @libpaths, (split /:/, $ENV{LD_RUN_PATH});
-    }
-    if (defined $ENV{DYLD_LIBRARY_PATH}) {
-        push @libpaths, (split /:/, $ENV{DYLD_LIBRARY_PATH});
-    }
+    my @libs = get_libs();
+    my @libpaths = get_libpaths($conf);
     foreach my $f (@libs) {
         foreach my $d (@libpaths) {
             my $oldversion = File::Spec->catfile($d, $f);
@@ -164,6 +145,38 @@
     return 1;
 }
 
+sub get_libs {
+    my @libs = ('libparrot.so');
+    if ($^O eq 'MSWin32') {
+        @libs = ('libparrot.dll', 'libparrot.lib', 'libparrot.dll.a');
+    }
+    if ($^O eq 'cygwin') {
+        @libs = ('libparrot.dll.a');
+    }
+    if ($^O eq 'darwin'){
+        @libs = qw/libparrot.dylib libparrot.a/;
+    }
+    return @libs;
+}
+
+sub get_libpaths {
+    my $conf = shift;
+    my @libpaths = ('/usr/local/lib', '/usr/lib', $conf->data->get('libdir'));
+    if ($^O eq 'MSWin32') {
+        push @libpaths, (split /;/, $ENV{PATH});
+    }
+    if (defined $ENV{LD_LIBRARY_PATH}) {
+        push @libpaths, (split /:/, $ENV{LD_LIBRARY_PATH});
+    }
+    if (defined $ENV{LD_RUN_PATH}) {
+        push @libpaths, (split /:/, $ENV{LD_RUN_PATH});
+    }
+    if (defined $ENV{DYLD_LIBRARY_PATH}) {
+        push @libpaths, (split /:/, $ENV{DYLD_LIBRARY_PATH});
+    }
+    return @libpaths
+}
+
 1;
 
 # Local Variables:

Modified: branches/gsoc_nfg/config/inter/progs.pm
==============================================================================
--- branches/gsoc_nfg/config/inter/progs.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/config/inter/progs.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -100,7 +100,7 @@
         if $ask;
     $conf->data->set( ccflags => $ccflags );
 
-    $conf->options->get('verbose') and print "\nccflags: $ccflags\n";
+    $conf->debug("\nccflags: $ccflags\n");
 
     $linkflags = $conf->data->get('linkflags');
     $linkflags =~ s/-libpath:\S+//g;    # TT #854: No idea why.

Modified: branches/gsoc_nfg/docs/book/draft/chXX_hlls.pod
==============================================================================
--- branches/gsoc_nfg/docs/book/draft/chXX_hlls.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/book/draft/chXX_hlls.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -126,12 +126,15 @@
 
 =begin PIR
 
+  .include 'stdio.pasm'
+
   .sub main
-    $P0 = getstdin
+    $P0 = getinterp
+    $P0 = $P0.'stdhandle'(.PIO_STDIN_FILENO)
     $P1 = compreg 'PIR'
     
     loop_top:
-      $S0 = readline $P0
+      $S0 = $P0.'readline'()
       $S0 = ".sub '' :anon\n" . $S0
       $S0 = $S0 . "\n.end\n"
       $P2 = $P1($S0)

Modified: branches/gsoc_nfg/docs/book/pir/ch04_variables.pod
==============================================================================
--- branches/gsoc_nfg/docs/book/pir/ch04_variables.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/book/pir/ch04_variables.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -133,12 +133,16 @@
 C<vers>X<vers opcode> (versine).  All angle arguments for the X<trigonometric
 opcodes> trigonometric opcodes are in radians:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'trans_ops'
+
+  # ...
 
   $N0 = sin $N1
   $N0 = exp 2
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 The majority of the floating-point operations have a single argument and a
 single result. The arguments can generally be either an integer or number, but
@@ -167,14 +171,18 @@
 The C<or>X<or opcode> opcode returns the first argument if
 it's true and the second argument otherwise:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'bit_ops'
+
+  # ...
 
   $I0 = or 1, 0  # returns 1
   $I0 = or 0, 2  # returns 2
 
   $P0 = or $P1, $P2
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID[
 
 Both C<and> and C<or> are short-circuiting ops. If they can determine what
 value to return from the first argument, they'll never evaluate the second.
@@ -210,30 +218,42 @@
 value that is the logical AND, OR, or XOR of each bit in the source arguments.
 They each take two arguments.
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'bit_ops'
+
+  # ...
 
   $I0 = bor $I1, $I2
   $P0 = bxor $P1, $I2
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 C<band>, C<bor>, and C<bxor> also have variants that modify the result
 in place.
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'bit_ops'
+
+  # ...
 
   $I0 = band $I1
   $P0 = bor $P1
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 C<bnot>X<bnot opcode> is the logical NOT of each bit in the source argument.
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'bit_ops'
+
+  # ...
 
   $I0 = bnot $I1
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 X<shl opcode>
 X<shr opcode>
@@ -241,13 +261,17 @@
 The logical and arithmetic shift operations shift their values by a specified
 number of bits:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'bit_ops'
+
+  # ...
 
   $I0 = shl $I1, $I2        # shift $I1 left by count $I2
   $I0 = shr $I1, $I2        # arithmetic shift right
   $P0 = lsr $P1, $P2        # logical shift right
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 =head2 Working with Strings
 
@@ -889,14 +913,18 @@
 operation on each byte of the strings to produce the result string.
 Remember that in-place string operations are no longer available.
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'bit_ops'
+
+  # ...
 
   $P0 = bors $P1
   $P0 = bands $P1
   $S0 = bors $S1, $S2
   $P0 = bxors $P1, $S2
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 The bitwise string opcodes produce meaningful results only when used with
 simple ASCII strings, because Parrot performs bitwise operations per byte.

Modified: branches/gsoc_nfg/docs/book/pir/ch08_io.pod
==============================================================================
--- branches/gsoc_nfg/docs/book/pir/ch08_io.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/book/pir/ch08_io.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -12,24 +12,32 @@
 The C<open>X<open opcode> opcode opens a new filehandle. It takes a
 string argument, which is the path to the file:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'io_ops'
+
+  # ...
 
   $P0 = open 'my/file/name.txt'
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 By default, it opens the filehandle as read-only, but an optional second string
 argument can specify the mode for the file. The modes are C<r> for read, C<w>
 for write, C<a> for append, and C<p> for pipe:N<These are the same as the C
 language read-modes, so may be familiar.>
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'io_ops'
+
+  # ...
 
   $P0 = open 'my/file/name.txt', 'a'
 
   $P0 = open 'myfile.txt', 'r'
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 You can combine modes; a handle that can read and write uses the mode string
 C<rw>. A handle that can read and write but will not overwrite the existing
@@ -42,11 +50,15 @@
 input, standard output, or standard error filehandles, though you can
 recreate them.>
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'io_ops'
+
+  # ...
 
   close $P0
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 The C<print>X<print opcode> opcode prints a string argument or the
 string form of an integer, number, or PMC to a filehandle:
@@ -71,13 +83,19 @@
 mentioning is the C<printerr>X<printerr opcode> opcode, which prints an
 argument to the standard error instead of standard output:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
 
   say 'Turnip'
 
+  # ...
+
+  .loadlib 'io_ops'
+
+  # ...
+
   printerr 'Blancmange'
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 The C<read>X<read opcode> and C<readline>X<readline opcode> opcodes read
 values from a filehandle.  C<read> takes an integer value and returns a
@@ -85,44 +103,58 @@
 of input from a filehandle and returns the string without the trailing
 newline:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'io_ops'
 
   $S0 = read $P0, 10
 
   $S0 = readline $P0
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 The C<read> opcode has a one-argument variant that reads from standard input:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
 
-      $S0 = read 10
+  .loadlib 'io_ops'
 
-=end PIR_FRAGMENT
+  # ...
+
+  $S0 = read 10
+
+=end PIR_FRAGMENT_INVALID
 
 The C<getstdin>X<getstdin opcode>, C<getstdout>X<getstdout opcode>, and
 C<getstderr>X<getstderr opcode> opcodes fetch the filehandle objects for
 the standard streams: standard input, standard output, and standard
 error:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'io_ops'
+
+  # ...
 
   $P0 = getstdin    # Standard input handle
   $P1 = getstdout   # Standard output handle
   $P2 = getstderr   # Standard error handle
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 Once you have the filehandle for one of the standard streams, you can use it
 just like any other filehandle object:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+  .loadlib 'io_ops'
+
+  # ...
 
   $P0 = getstdout
   print $P0, 'hello'
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 This following example reads data from the file F<myfile.txt> one line at a
 time using the C<readline> opcode. As it loops over the lines of the file, it
@@ -131,6 +163,8 @@
 
 =begin PIR
 
+  .loadlib 'io_ops'
+
   .sub 'main'
     $P0 = getstdout
     $P1 = open 'myfile.txt', 'r'

Modified: branches/gsoc_nfg/docs/compiler_faq.pod
==============================================================================
--- branches/gsoc_nfg/docs/compiler_faq.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/compiler_faq.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -526,7 +526,9 @@
 
 or with the class object:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+    .loadlib 'io_ops'
 
     $P1 = get_class 'Dog'   # find the 'Dog' class
     unless null $P1 goto have_dog_class
@@ -535,7 +537,7 @@
   have_dog_class:
     new $P0, $P1    # creates a Dog object and stores it in register $P0
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 The chief difference is that using a string constant will produce the
 specific error "Class 'Dog' not found" if that happens to be the case;

Modified: branches/gsoc_nfg/docs/parrotbyte.pod
==============================================================================
--- branches/gsoc_nfg/docs/parrotbyte.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/parrotbyte.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -166,10 +166,7 @@
   | label offset                              |
   +----------+----------+----------+----------+
 
-Fixup type B<0>, known as enum_fixup_label, has a label symbol and an offset
-into the bytecode.
-
-Fixup type B<1>, known as enum_fixup_sub, has a label symbol that is the name
+Fixup type B<enum_fixup_sub>, has a label symbol that is the name
 of the "sub" and an offset into the constant table, referencing a Sub, Closure
 or Coroutine PMC.
 

Modified: branches/gsoc_nfg/docs/parrothist.pod
==============================================================================
--- branches/gsoc_nfg/docs/parrothist.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/parrothist.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -104,7 +104,7 @@
 
  chromatic   2.0.0 *        2010-Jan-19     "Inevitable"
  darbelo     2.1.0          2010-Feb-16     "As Scheduled"
- coke        2.1.1          2010-Feb-19
+ coke        2.1.1          2010-Feb-19     (bugfix release)
  cotto       2.2.0          2010-Mar-16     "Like Clockwork"
 
  Gerd        2.3.0 *        2010-Apr-20     "Samoan Lory"

Modified: branches/gsoc_nfg/docs/pdds/pdd20_lexical_vars.pod
==============================================================================
--- branches/gsoc_nfg/docs/pdds/pdd20_lexical_vars.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/pdds/pdd20_lexical_vars.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -14,7 +14,7 @@
 
 =head2 Synopsis
 
-=begin PIR
+=begin PIR_INVALID
 
     .sub 'foo'
         .lex "$a", $P0
@@ -52,7 +52,7 @@
         $P0 = find_lex "x"   # SUCCEEDS
     .end
 
-=end PIR
+=end PIR_INVALID
 
 =head2 Description
 

Modified: branches/gsoc_nfg/docs/pdds/pdd21_namespaces.pod
==============================================================================
--- branches/gsoc_nfg/docs/pdds/pdd21_namespaces.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/pdds/pdd21_namespaces.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -585,7 +585,7 @@
 
 should map roughly to this PIR:
 
-=begin PIR
+=begin PIR_INVALID
 
   .HLL "Perl5"
   .loadlib "perl5_group"
@@ -596,7 +596,7 @@
     set_global "$x", $P0
   .end
 
-=end PIR
+=end PIR_INVALID
 
 In this case, the C<main> sub would be tied to Perl 5 by the C<.HLL>
 directive, so a Perl 5 namespace would be created.
@@ -613,7 +613,7 @@
 these cases, Parrot should create the namespace based on the HLL of the PIR
 subroutine that calls the store function.
 
-=begin PIR
+=begin PIR_INVALID
 
   .HLL "Perl5"
   .loadlib "perl5_group"
@@ -635,7 +635,7 @@
     set_global $P2, $S0, $P3
   .end
 
-=end PIR
+=end PIR_INVALID
 
 In this case, C<set_global> should see that it was called from "main",
 which is in a Perl 5 namespace, so it will create the "Foo" namespace as

Modified: branches/gsoc_nfg/docs/pdds/pdd22_io.pod
==============================================================================
--- branches/gsoc_nfg/docs/pdds/pdd22_io.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/pdds/pdd22_io.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -464,6 +464,8 @@
 
 =begin PIR_FRAGMENT_INVALID
 
+  .loadlib 'io_ops'
+  ...
   $P0 = open $S1
   $P0 = open $S1, $S2
   $P0 = open $P1
@@ -488,6 +490,8 @@
 
 =begin PIR_FRAGMENT_INVALID
 
+  .loadlib 'io_ops'
+  ...
   close $P0
   close $P0, $P1
 
@@ -554,14 +558,16 @@
 
 =item C<printerr>
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
 
+  .loadlib 'io_ops'
+  ...
   printerr $I0
   printerr $N0
   printerr $S0
   printerr $P0
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 Writes an integer, float, string, or PMC value to standard error.
 
@@ -578,6 +584,8 @@
 
 =begin PIR_FRAGMENT_INVALID
 
+  .loadlib 'io_ops'
+  ...
   $S0 = read $I1
   $S0 = read $P1, $I2
   $P0 = read $P1, $I2, $P3
@@ -598,6 +606,8 @@
 
 =begin PIR_FRAGMENT_INVALID
 
+  .loadlib 'io_ops'
+  ...
   $S0 = readline $P1
   $P0 = readline $P1, $P2
 
@@ -613,12 +623,14 @@
 
 =item C<peek>
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
 
+  .loadlib 'io_ops'
+  ...
   $S0 = peek
   $S0 = peek $P1
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 [C<peek>, C<seek>, C<tell>, and C<poll> are all candidates for moving from
 opcodes to FileHandle object methods.]
@@ -641,6 +653,8 @@
 
 =begin PIR_FRAGMENT_INVALID
 
+  .loadlib 'io_ops'
+  ...
   seek $P0, $I1, $I2
   seek $P0, $I1, $I2, $I3
   seek $P0, $I1, $I2, $P3
@@ -664,6 +678,8 @@
 
 =begin PIR_FRAGMENT_INVALID
 
+  .loadlib 'io_ops'
+  ...
   $I0 = tell $P1
   ($I0, $I1) = tell $P2
 

Modified: branches/gsoc_nfg/docs/running.pod
==============================================================================
--- branches/gsoc_nfg/docs/running.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/running.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -169,6 +169,11 @@
 Turn on interpreter debug flag. See C<parrot --help-debug> for available flag
 bits.
 
+=item --hash-seed <hexnum>
+
+Sets the hash seed to the provided value. Only useful for debugging
+intermittent failures, and harmful in production.
+
 =item --gc-debug
 
 Turn on GC (Garbage Collection) debugging. This imposes some stress on the GC

Modified: branches/gsoc_nfg/docs/tests.pod
==============================================================================
--- branches/gsoc_nfg/docs/tests.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/tests.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -111,7 +111,7 @@
 
         Parrot_run_native(interp, the_test);
         printf("done\n");
-    fflush(stdout);
+        fflush(stdout);
         return 0;
     }
 

Modified: branches/gsoc_nfg/docs/user/pir/intro.pod
==============================================================================
--- branches/gsoc_nfg/docs/user/pir/intro.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/docs/user/pir/intro.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -410,22 +410,26 @@
 pass it a string register or variable where you wish the characters
 read to be placed and the number of characters you wish to read:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
 
+  .loadlib 'io_ops'
+  ...
   read $S1, 100
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 This line will read 100 characters (or until the end of the line) and
 put the read string into C<$S1>. In case you need a number, just
 assign the string to the correct register type:
 
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
 
+  .loadlib 'io_ops'
   read $S1, 100
+  ...
   $I1 = $S1
 
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
 
 With the PIR syntax shown in this article you should be able to start
 writing simple programs. Next article we will look into available

Modified: branches/gsoc_nfg/examples/benchmarks/primes.pasm
==============================================================================
--- branches/gsoc_nfg/examples/benchmarks/primes.pasm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/benchmarks/primes.pasm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -42,6 +42,7 @@
     div     P4, P1, 2
     # Check if P3 is a factor of P1
 LOOP:
+.loadlib 'math_ops' # cmod is a dynop
     cmod    P5, P1, P3
     if      P5, OK
 

Modified: branches/gsoc_nfg/examples/benchmarks/primes_i.pasm
==============================================================================
--- branches/gsoc_nfg/examples/benchmarks/primes_i.pasm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/benchmarks/primes_i.pasm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -30,6 +30,7 @@
 	set     I3, 2
 	div     I4, I1, 2
 LOOP:   # Check if I3 is a factor of I1
+.loadlib 'math_ops' # cmod is a dynop
 	cmod    I5, I1, I3
 	if      I5, OK
 	# We've found a factor, so it can't be a prime and

Modified: branches/gsoc_nfg/examples/io/http.pir
==============================================================================
--- branches/gsoc_nfg/examples/io/http.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/io/http.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -53,7 +53,7 @@
     print "Socket error\n"
     end
 END:
-    close sock
+    sock.'close'()
     end
 .end
 

Modified: branches/gsoc_nfg/examples/io/httpd.pir
==============================================================================
--- branches/gsoc_nfg/examples/io/httpd.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/io/httpd.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -95,6 +95,9 @@
 .include 'except_types.pasm'
 .include 'socket.pasm'
 
+.loadlib 'io_ops'
+.loadlib 'sys_ops'
+
 .sub main :main
     .local pmc listener, work, fp
     .local pmc fp               # read requested files from disk

Modified: branches/gsoc_nfg/examples/json/postalcodes.pir
==============================================================================
--- branches/gsoc_nfg/examples/json/postalcodes.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/json/postalcodes.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -18,6 +18,7 @@
 =cut
 
 .include 'socket.pasm'
+.loadlib 'io_ops'
 
 .sub _main :main
     .param pmc argv

Modified: branches/gsoc_nfg/examples/languages/abc/abc.pir
==============================================================================
--- branches/gsoc_nfg/examples/languages/abc/abc.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/languages/abc/abc.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -56,8 +56,6 @@
 
 .namespace [ 'abc'; 'Compiler' ]
 
-.loadlib 'abc_group'
-
 .sub '' :anon :load :init
     .local pmc abc
     $P0 = get_root_global ['parrot'], 'P6metaclass'

Modified: branches/gsoc_nfg/examples/languages/squaak/doc/tutorial_episode_1.pod
==============================================================================
--- branches/gsoc_nfg/examples/languages/squaak/doc/tutorial_episode_1.pod	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/languages/squaak/doc/tutorial_episode_1.pod	Mon Jun  7 18:03:08 2010	(r47436)
@@ -150,8 +150,8 @@
 This will compile the generated files and run the test suite. If you want more
 information on what files are being generated, please check out the references
 at the end of this episode or read the documentation included in the file
-F<mk_language_shell.pl>. For that you can use a installed parrot executable from
-your distribution or one you have just compiled.
+F<mk_language_shell.pl>. For that you can use an installed parrot executable
+from your distribution or one you have just compiled.
 
 Note that we didn't write a single line of code, and already we have the basic
 infrastructure in place to get us started. Of course, the generated compiler

Modified: branches/gsoc_nfg/examples/languages/squaak/squaak.pir
==============================================================================
--- branches/gsoc_nfg/examples/languages/squaak/squaak.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/languages/squaak/squaak.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -26,8 +26,6 @@
 
 .namespace [ 'Squaak';'Compiler' ]
 
-.loadlib 'squaak_group'
-
 .sub 'onload' :anon :load :init
     load_bytecode 'PCT.pbc'
 

Modified: branches/gsoc_nfg/examples/languages/squaak/src/builtins/say.pir
==============================================================================
--- branches/gsoc_nfg/examples/languages/squaak/src/builtins/say.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/languages/squaak/src/builtins/say.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -24,9 +24,13 @@
     .return ()
 .end
 
+.include 'stdio.pasm'
+
 .sub 'read'
-    $P0 = getstdin
-    $S0 = readline $P0
+    .local pmc stdin
+    $P0 = getinterp
+    stdin = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+    $S0 = stdin.'readline'()
     .return ($S0)
 .end
 

Modified: branches/gsoc_nfg/examples/library/md5sum.pir
==============================================================================
--- branches/gsoc_nfg/examples/library/md5sum.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/library/md5sum.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -24,6 +24,8 @@
 
 =cut
 
+.loadlib 'os'       # OS object
+
 .sub _main :main
     .param pmc args
 
@@ -34,9 +36,9 @@
     $I0 = $I0 - 1
     if $I0 > 0 goto has_args
     $S0 = args[0]
-    printerr "(parrot) "
-    printerr $S0
-    printerr " filename [filename ...]\n"
+    print "(parrot) "
+    print $S0
+    print " filename [filename ...]\n"
     exit 1
 
 has_args:
@@ -50,7 +52,10 @@
     file = args[$I1]
     .include "stat.pasm"
     # Get size of file
-    size = stat file, .STAT_FILESIZE
+    .local pmc os, stat_buf
+    os = new ['OS']
+    stat_buf = os.'stat'(file)
+    size = stat_buf[7]
     .local pmc pio, cl
     cl = new 'FileHandle'
     # slurp the file into memory
@@ -60,8 +65,12 @@
     $I2 = length contents
     if $I2 == size goto size_ok
 
-    printerr file
-    printerr ": size mismatch\n"
+    print file
+    print ": size mismatch ("
+    print size
+    print " vs "
+    print $I2
+    print ")\n"
     goto iter_cont
 
 size_ok:

Modified: branches/gsoc_nfg/examples/library/ncurses_life.pir
==============================================================================
--- branches/gsoc_nfg/examples/library/ncurses_life.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/library/ncurses_life.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -56,6 +56,8 @@
 
 =cut
 
+.loadlib 'io_ops'
+
 .sub _MAIN :main
     .param pmc argv
     # the command line

Modified: branches/gsoc_nfg/examples/nci/xlibtest.pir
==============================================================================
--- branches/gsoc_nfg/examples/nci/xlibtest.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/nci/xlibtest.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -277,13 +277,14 @@
 
     push_eh newfile
     .local pmc handle
-    handle = open filename, 'r'
+    handle = new 'FileHandle'
+    handle.'open'(filename, 'r')
     pop_eh
 
     push_eh failed
     .local string jsonfile
     jsonfile = handle.'readall'()
-    close handle
+    handle.'close'()
 
     load_language 'data_json'
     .local pmc json, jsonobject, jsondata
@@ -322,10 +323,11 @@
     .local string jsonfile
     jsonfile = _json(jsondata)
     .local pmc handle
-    handle = open filename, 'w'
+    handle = new 'FileHandle'
+    handle.'open'(filename, 'w')
     print handle, jsonfile
     print handle, "\n"
-    close handle
+    handle.'close'()
     .return()
 failed:
     .local pmc exception

Modified: branches/gsoc_nfg/examples/pasm/cat.pasm
==============================================================================
--- branches/gsoc_nfg/examples/pasm/cat.pasm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pasm/cat.pasm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,6 +19,8 @@
 
 =cut
 
+.loadlib 'io_ops'
+
 	getstdin P0
 	getstdout P1
 REDO:

Modified: branches/gsoc_nfg/examples/pge/demo.pir
==============================================================================
--- branches/gsoc_nfg/examples/pge/demo.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pge/demo.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -2,6 +2,7 @@
 # $Id$
 
 .include "errors.pasm"
+.include 'stdio.pasm'
 .sub _main
     .local string x
     .local string pattern
@@ -34,8 +35,9 @@
   read_loop:
     print "\ninput \"regex <pattern>\", \"glob <pattern>\", \"save <name>\",\n"
     print "target string, \"pir\", \"exp\", \"trace\", \"next\"\n"
-    getstdin stdin
-    readline x, stdin
+    $P0 = getinterp
+    stdin = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+    x = stdin.'readline'()
     length $I0, x
     if $I0 < 1 goto end_demo
     $I0 = index x, " "

Modified: branches/gsoc_nfg/examples/pir/befunge/befunge.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/befunge/befunge.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/befunge/befunge.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -1,6 +1,9 @@
 # Copyright (C) 2002-2009, Parrot Foundation.
 # $Id$
 
+.loadlib 'io_ops'
+
+.include "stdio.pasm"
 .include "debug.pir"
 .include "flow.pir"
 .include "io.pir"
@@ -15,7 +18,8 @@
 
     # disable buffering on stdout
     .local pmc stdout
-    getstdout stdout
+    $P0 = getinterp
+    stdout = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
     stdout.'buffer_type'("unbuffered")
 
     # parsing argv

Modified: branches/gsoc_nfg/examples/pir/befunge/debug.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/befunge/debug.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/befunge/debug.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -179,8 +179,9 @@
     _debug__print_status()
 
     print "bef> "
-    $P0 = getstdin
-    $S0 = readline $P0
+    $P0 = getinterp
+    $P0 = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+    $S0 = $P0.'readline'()
     $S0 = chopn $S0, 1
     $I0 = length $S0
 

Modified: branches/gsoc_nfg/examples/pir/befunge/io.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/befunge/io.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/befunge/io.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -39,8 +39,9 @@
     $I0 = length $S0
     if $I0 > 0 goto _IO__INPUT_CHAR__SUBSTR
 
-    $P1 = getstdin
-    $S0 = readline $P1
+    $P1 = getinterp
+    $P1 = $P1.'stdhandle'(.PIO_STDIN_FILENO)
+    $S0 = $P1.'readline'()
     $S0 = chopn $S0, 1
 
   _IO__INPUT_CHAR__SUBSTR:
@@ -71,8 +72,9 @@
     len = length $S0
     if len > 0 goto _IO__INPUT_INT__PARSE_INPUT
 
-    $P1 = getstdin
-    $S0 = readline $P1
+    $P1 = getinterp
+    $P1 = $P1.'stdhandle'(.PIO_STDIN_FILENO)
+    $S0 = $P1.'readline'()
     $S0 = chopn $S0, 1
     len = length $S0
 

Modified: branches/gsoc_nfg/examples/pir/io.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/io.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/io.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -17,6 +17,8 @@
 
 =cut
 
+.loadlib 'io_ops' # convenient I/O dynamic opcodes
+
 .sub 'example' :main
     .local string test_fn
     test_fn = "tmp_example_io.tmp"

Modified: branches/gsoc_nfg/examples/pir/life.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/life.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/life.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -86,7 +86,10 @@
 	inc $I0
 	mod $I31,$I0,100
 	if $I31, skip
-	printerr "."
+        $P0 = getinterp
+        .include 'stdio.pasm'
+        $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+	print $P1, "."
 skip:
 
 	local_branch jmpstack,  generate

Modified: branches/gsoc_nfg/examples/pir/make_hello_pbc.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/make_hello_pbc.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/make_hello_pbc.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -84,9 +84,10 @@
 
     # Now pack Packfile and save it
     $S0 = pf
-    $P1 = open "generated_hello.pbc", "w"
+    $P1 = new ['FileHandle']
+    $P1.'open'("generated_hello.pbc", "w")
     $P1.'puts'($S0)
-    close $P1
+    $P1.'close'()
 
     # And check it!
     load_bytecode 'generated_hello.pbc'

Modified: branches/gsoc_nfg/examples/pir/pirric.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/pirric.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/pirric.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -49,6 +49,10 @@
 
 .include 'warnings.pasm'
 
+.loadlib 'io_ops'
+.loadlib 'debug_ops'
+.loadlib 'trans_ops'
+
 #-----------------------------------------------------------------------
 
 .sub pirric_aux_loadbytecode

Modified: branches/gsoc_nfg/examples/pir/quine_ord.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/quine_ord.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/quine_ord.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -1,6 +1,9 @@
 # Copyright (C) 2006-2010, Parrot Foundation.
 # ATT no autoexpanding svn markers please
 
+# XXX currently broken
+.loadlib 'io_ops'
+
 .sub quine :main
     .param pmc argv
 

Modified: branches/gsoc_nfg/examples/pir/readline.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/readline.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/readline.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,6 +19,7 @@
 =cut
 
 .include 'cclass.pasm'
+.loadlib 'io_ops'
 
 .sub "example" :main
         .local pmc stdin

Modified: branches/gsoc_nfg/examples/pir/sudoku.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/sudoku.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/sudoku.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -151,6 +151,9 @@
 
 .const string VERSION="0.2.3"
 
+.loadlib 'bit_ops'
+.loadlib 'io_ops'
+
 .sub _main :main
     .param pmc argv
     .local int argc

Modified: branches/gsoc_nfg/examples/pir/uniq.pir
==============================================================================
--- branches/gsoc_nfg/examples/pir/uniq.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/pir/uniq.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -41,6 +41,8 @@
 
 =cut
 
+.loadlib 'io_ops' # convenient I/O dynamic opcodes
+
 .sub "uniq" :main
   .param pmc argv
 

Modified: branches/gsoc_nfg/examples/sdl/lcd/clock.pir
==============================================================================
--- branches/gsoc_nfg/examples/sdl/lcd/clock.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/sdl/lcd/clock.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -20,6 +20,8 @@
 
 .include "tm.pasm"
 .include "timer.pasm"
+.loadlib 'sys_ops'
+.loadlib 'math_ops'
 
 =item _main
 

Modified: branches/gsoc_nfg/examples/sdl/minesweeper/field.pir
==============================================================================
--- branches/gsoc_nfg/examples/sdl/minesweeper/field.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/sdl/minesweeper/field.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -35,6 +35,7 @@
 =cut
 
 .include "iterator.pasm"
+.loadlib 'math_ops'
 .namespace ["Mines::Field"]
 
 # size of a single mine field, in pixels

Modified: branches/gsoc_nfg/examples/shootout/binarytrees.pir
==============================================================================
--- branches/gsoc_nfg/examples/shootout/binarytrees.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/shootout/binarytrees.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -6,6 +6,8 @@
 # by Joshua Isom, modified by Leopold Toetsch
 # modified by karl : default value of N=10 to match shootout output
 
+.loadlib 'trans_ops'
+
 .sub itemcheck
 	.param pmc node
 	$I0 = exists node[0]

Modified: branches/gsoc_nfg/examples/shootout/fasta.pir
==============================================================================
--- branches/gsoc_nfg/examples/shootout/fasta.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/shootout/fasta.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -160,10 +160,12 @@
 
 .sub main :main
 	.param pmc argv
-	.local pmc stdout
+	.local pmc interp, stdout
 	.local int n
 	# stdout is linebuffered per default - make it block buffered
-	stdout = getstdout
+        .include 'stdio.pasm'
+        interp = getinterp
+	stdout = interp.'stdhandle'(.PIO_STDOUT_FILENO)
 	stdout.'buffer_size'(40960)
 	$I0 = argv
 	if $I0 > 1 goto argsok

Modified: branches/gsoc_nfg/examples/shootout/knucleotide.pir
==============================================================================
--- branches/gsoc_nfg/examples/shootout/knucleotide.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/shootout/knucleotide.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -1,6 +1,8 @@
 # Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 
+.loadlib 'io_ops'
+
 .sub main :main
 	.local pmc stdin
 	.local string line

Modified: branches/gsoc_nfg/examples/shootout/nbody.pir
==============================================================================
--- branches/gsoc_nfg/examples/shootout/nbody.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/shootout/nbody.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -9,6 +9,8 @@
 # speed up  from 1m25 to 6s by Leopold Toetsch
 # changed default value to 1000 to match shootout default (karl)
 
+.loadlib 'trans_ops'
+
 .const int x = 0
 .const int y = 1
 .const int z = 2

Modified: branches/gsoc_nfg/examples/shootout/partialsums-2.pir
==============================================================================
--- branches/gsoc_nfg/examples/shootout/partialsums-2.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/shootout/partialsums-2.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -7,6 +7,8 @@
 # By Joshua Isom
 # changed default value to N=25000 (shootout test default) Karl Forner
 
+.loadlib 'trans_ops'
+
 .sub main :main
 	.param pmc argv
 	.local int k, n

Modified: branches/gsoc_nfg/examples/shootout/partialsums.pir
==============================================================================
--- branches/gsoc_nfg/examples/shootout/partialsums.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/shootout/partialsums.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -7,6 +7,8 @@
 # By Joshua Isom
 # changed default value to N=25000 (shootout test default) Karl Forner
 
+.loadlib 'trans_ops'
+
 .sub main :main
 	.param pmc argv
 	.local int k, n

Modified: branches/gsoc_nfg/examples/shootout/regexdna.pir
==============================================================================
--- branches/gsoc_nfg/examples/shootout/regexdna.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/shootout/regexdna.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -61,8 +61,11 @@
 	############################################
 	# Read in the file
 beginwhile:
-	chunk = read 65535
-	chunklen = length chunk
+        $P0      = getinterp
+        .include 'stdio.pasm'
+        $P1      = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+        chunk    = $P1.'read'(65535)
+        chunklen = length chunk
 	unless chunklen goto endwhile
 	# They don't say you have to match case insenitive...
 	chunk = downcase chunk

Modified: branches/gsoc_nfg/examples/shootout/revcomp.pir
==============================================================================
--- branches/gsoc_nfg/examples/shootout/revcomp.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/shootout/revcomp.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -35,15 +35,17 @@
 .sub main :main
 	.local pmc stdin, stdout
 	.local string line, seq
-	stdin = getstdin
-	stdout = getstdout
+        $P0    = getinterp
+        .include 'stdio.pasm'
+        stdin  = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+        stdout = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
 	# stdout is linebuffered per default - make it block buffered
 	stdout.'buffer_size'(8192)
 
 	seq = ''
 
 beginwhile:
-	line = readline stdin
+	line = stdin.'readline'()
 	unless line goto endwhile
 	$I0 = ord line
 	unless $I0 == 62 goto else   # '>'

Modified: branches/gsoc_nfg/examples/shootout/sumcol.pir
==============================================================================
--- branches/gsoc_nfg/examples/shootout/sumcol.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/shootout/sumcol.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -7,17 +7,19 @@
 # N.B. it is called the sum-file benchmark on the computer shootout (KF)
 
 .sub main :main
-	.local pmc stdin
+	.local pmc interp, stdin
 	.local string line
 	.local int count, tmp, linelen
-	count = 0
-	stdin = getstdin
+	count  = 0
+	interp = getinterp
+        .include 'stdio.pasm'
+	stdin  = interp.'stdhandle'(.PIO_STDIN_FILENO)
 beginwhile:
-	line = readline stdin
+	line    = stdin.'readline'()
 	linelen = length line
 	unless linelen goto endwhile
-	tmp	= line
-	count += tmp
+	tmp     = line
+	count  += tmp
 	goto beginwhile
 endwhile:
 	print count

Modified: branches/gsoc_nfg/examples/tge/branch/transform.pir
==============================================================================
--- branches/gsoc_nfg/examples/tge/branch/transform.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/tge/branch/transform.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -105,21 +105,24 @@
     $I0 = argv
     if $I0 == 2 goto fromfile
 
-    filehandle = getstdin
+    $P0 = getinterp
+    .include 'stdio.pasm'
+    filehandle = $P0.'stdhandle'(.PIO_STDIN_FILENO)
     goto grabline
 
   fromfile:
     # Read in the source file
     filename = argv[1]
-    filehandle = open filename, 'r'
+    filehandle = new ['FileHandle']
+    filehandle.'open'(filename, 'r')
 
   grabline:
-    $S1 = read filehandle, 65535
+    $S1 = filehandle.'read'(65535)
 #    $S1 = readline filehandle
 #    print $S1
 
     if $I0 != 2 goto finished
-    close filehandle
+    filehandle.'close'()
 
   finished:
     .return ($S1)

Modified: branches/gsoc_nfg/examples/tutorial/40_file_ops.pir
==============================================================================
--- branches/gsoc_nfg/examples/tutorial/40_file_ops.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/examples/tutorial/40_file_ops.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -10,14 +10,16 @@
 .sub main :main
     .local pmc fileout, filein
 
-    fileout = open '40_file_ops_data.txt', 'w'
-    print fileout, "The quick brown fox jumps over the lazy dog.\n"
-    close fileout
+    fileout = new ['FileHandle']
+    fileout.'open'('40_file_ops_data.txt', 'w')
+    fileout.'print'("The quick brown fox jumps over the lazy dog.\n")
+    fileout.'close'()
 
-    filein = open '40_file_ops_data.txt', 'r'
-    $S0 = readline filein
+    filein = new ['FileHandle']
+    filein.'open'('40_file_ops_data.txt', 'r')
+    $S0 = filein.'readline'()
     say $S0
-    close filein
+    filein.'close'()
 
     # Be nice and remove the temporary file we created.
     $P0 = loadlib 'os'

Modified: branches/gsoc_nfg/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/gsoc_nfg/ext/nqp-rx/src/stage0/HLL-s0.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/ext/nqp-rx/src/stage0/HLL-s0.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -902,7 +902,7 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274853022.01464")
+.sub "_block11"  :anon :subid("10_1275811471.14938")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
@@ -916,101 +916,103 @@
 .annotate 'line', 5
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
-    $P343 = $P14()
+    $P348 = $P14()
 .annotate 'line', 1
-    .return ($P343)
-    .const 'Sub' $P345 = "104_1274853022.01464" 
-    .return ($P345)
+    .return ($P348)
+    .const 'Sub' $P350 = "106_1275811471.14938" 
+    .return ($P350)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post105") :outer("10_1274853022.01464")
+.sub "" :load :init :subid("post107") :outer("10_1275811471.14938")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274853022.01464" 
+    .const 'Sub' $P12 = "10_1275811471.14938" 
     .local pmc block
     set block, $P12
-    $P348 = get_root_global ["parrot"], "P6metaclass"
-    $P348."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
+    $P353 = get_root_global ["parrot"], "P6metaclass"
+    $P353."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1274853022.01464") :outer("10_1274853022.01464")
+.sub "_block13"  :subid("11_1275811471.14938") :outer("10_1275811471.14938")
 .annotate 'line', 5
-    .const 'Sub' $P329 = "101_1274853022.01464" 
-    capture_lex $P329
-    .const 'Sub' $P322 = "99_1274853022.01464" 
-    capture_lex $P322
-    .const 'Sub' $P309 = "96_1274853022.01464" 
-    capture_lex $P309
-    .const 'Sub' $P277 = "91_1274853022.01464" 
-    capture_lex $P277
-    .const 'Sub' $P271 = "89_1274853022.01464" 
+    .const 'Sub' $P334 = "103_1275811471.14938" 
+    capture_lex $P334
+    .const 'Sub' $P327 = "101_1275811471.14938" 
+    capture_lex $P327
+    .const 'Sub' $P314 = "98_1275811471.14938" 
+    capture_lex $P314
+    .const 'Sub' $P282 = "93_1275811471.14938" 
+    capture_lex $P282
+    .const 'Sub' $P276 = "91_1275811471.14938" 
+    capture_lex $P276
+    .const 'Sub' $P271 = "89_1275811471.14938" 
     capture_lex $P271
-    .const 'Sub' $P266 = "87_1274853022.01464" 
-    capture_lex $P266
-    .const 'Sub' $P260 = "85_1274853022.01464" 
-    capture_lex $P260
-    .const 'Sub' $P254 = "83_1274853022.01464" 
+    .const 'Sub' $P265 = "87_1275811471.14938" 
+    capture_lex $P265
+    .const 'Sub' $P259 = "85_1275811471.14938" 
+    capture_lex $P259
+    .const 'Sub' $P254 = "83_1275811471.14938" 
     capture_lex $P254
-    .const 'Sub' $P249 = "81_1274853022.01464" 
+    .const 'Sub' $P249 = "81_1275811471.14938" 
     capture_lex $P249
-    .const 'Sub' $P244 = "79_1274853022.01464" 
+    .const 'Sub' $P244 = "79_1275811471.14938" 
     capture_lex $P244
-    .const 'Sub' $P239 = "77_1274853022.01464" 
+    .const 'Sub' $P239 = "77_1275811471.14938" 
     capture_lex $P239
-    .const 'Sub' $P234 = "75_1274853022.01464" 
+    .const 'Sub' $P234 = "75_1275811471.14938" 
     capture_lex $P234
-    .const 'Sub' $P229 = "73_1274853022.01464" 
+    .const 'Sub' $P229 = "73_1275811471.14938" 
     capture_lex $P229
-    .const 'Sub' $P224 = "71_1274853022.01464" 
+    .const 'Sub' $P224 = "71_1275811471.14938" 
     capture_lex $P224
-    .const 'Sub' $P219 = "69_1274853022.01464" 
+    .const 'Sub' $P219 = "69_1275811471.14938" 
     capture_lex $P219
-    .const 'Sub' $P208 = "65_1274853022.01464" 
+    .const 'Sub' $P208 = "65_1275811471.14938" 
     capture_lex $P208
-    .const 'Sub' $P195 = "63_1274853022.01464" 
+    .const 'Sub' $P195 = "63_1275811471.14938" 
     capture_lex $P195
-    .const 'Sub' $P183 = "61_1274853022.01464" 
+    .const 'Sub' $P183 = "61_1275811471.14938" 
     capture_lex $P183
-    .const 'Sub' $P176 = "59_1274853022.01464" 
+    .const 'Sub' $P176 = "59_1275811471.14938" 
     capture_lex $P176
-    .const 'Sub' $P167 = "57_1274853022.01464" 
+    .const 'Sub' $P167 = "57_1275811471.14938" 
     capture_lex $P167
-    .const 'Sub' $P160 = "55_1274853022.01464" 
+    .const 'Sub' $P160 = "55_1275811471.14938" 
     capture_lex $P160
-    .const 'Sub' $P151 = "53_1274853022.01464" 
+    .const 'Sub' $P151 = "53_1275811471.14938" 
     capture_lex $P151
-    .const 'Sub' $P144 = "51_1274853022.01464" 
+    .const 'Sub' $P144 = "51_1275811471.14938" 
     capture_lex $P144
-    .const 'Sub' $P135 = "49_1274853022.01464" 
+    .const 'Sub' $P135 = "49_1275811471.14938" 
     capture_lex $P135
-    .const 'Sub' $P128 = "47_1274853022.01464" 
+    .const 'Sub' $P128 = "47_1275811471.14938" 
     capture_lex $P128
-    .const 'Sub' $P121 = "45_1274853022.01464" 
+    .const 'Sub' $P121 = "45_1275811471.14938" 
     capture_lex $P121
-    .const 'Sub' $P111 = "43_1274853022.01464" 
+    .const 'Sub' $P111 = "43_1275811471.14938" 
     capture_lex $P111
-    .const 'Sub' $P103 = "41_1274853022.01464" 
+    .const 'Sub' $P103 = "41_1275811471.14938" 
     capture_lex $P103
-    .const 'Sub' $P93 = "40_1274853022.01464" 
+    .const 'Sub' $P93 = "40_1275811471.14938" 
     capture_lex $P93
-    .const 'Sub' $P87 = "38_1274853022.01464" 
+    .const 'Sub' $P87 = "38_1275811471.14938" 
     capture_lex $P87
-    .const 'Sub' $P82 = "36_1274853022.01464" 
+    .const 'Sub' $P82 = "36_1275811471.14938" 
     capture_lex $P82
-    .const 'Sub' $P74 = "34_1274853022.01464" 
+    .const 'Sub' $P74 = "34_1275811471.14938" 
     capture_lex $P74
-    .const 'Sub' $P68 = "32_1274853022.01464" 
+    .const 'Sub' $P68 = "32_1275811471.14938" 
     capture_lex $P68
-    .const 'Sub' $P62 = "30_1274853022.01464" 
+    .const 'Sub' $P62 = "30_1275811471.14938" 
     capture_lex $P62
-    .const 'Sub' $P56 = "28_1274853022.01464" 
+    .const 'Sub' $P56 = "28_1275811471.14938" 
     capture_lex $P56
-    .const 'Sub' $P23 = "14_1274853022.01464" 
+    .const 'Sub' $P23 = "14_1275811471.14938" 
     capture_lex $P23
-    .const 'Sub' $P15 = "12_1274853022.01464" 
+    .const 'Sub' $P15 = "12_1275811471.14938" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -1019,17 +1021,17 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 33
-    .const 'Sub' $P329 = "101_1274853022.01464" 
-    capture_lex $P329
+    .const 'Sub' $P334 = "103_1275811471.14938" 
+    capture_lex $P334
 .annotate 'line', 5
-    .return ($P329)
-    .const 'Sub' $P340 = "103_1274853022.01464" 
-    .return ($P340)
+    .return ($P334)
+    .const 'Sub' $P345 = "105_1275811471.14938" 
+    .return ($P345)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "ws"  :subid("12_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1043,6 +1045,7 @@
     .local pmc match
     .lex "$/", match
     length rx16_eos, rx16_tgt
+    gt rx16_pos, rx16_eos, rx16_done
     set rx16_off, 0
     lt rx16_pos, 2, rx16_start
     sub rx16_off, rx16_pos, 1
@@ -1113,7 +1116,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1274853022.01464") :method
+.sub "!PREFIX__ws"  :subid("13_1275811471.14938") :method
 .annotate 'line', 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1122,7 +1125,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "termish"  :subid("14_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 5
     .local string rx24_tgt
     .local int rx24_pos
@@ -1137,6 +1140,7 @@
     .local pmc match
     .lex "$/", match
     length rx24_eos, rx24_tgt
+    gt rx24_pos, rx24_eos, rx24_done
     set rx24_off, 0
     lt rx24_pos, 2, rx24_start
     sub rx24_off, rx24_pos, 1
@@ -1214,7 +1218,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1274853022.01464") :method
+.sub "!PREFIX__termish"  :subid("15_1275811471.14938") :method
 .annotate 'line', 5
     new $P26, "ResizablePMCArray"
     push $P26, ""
@@ -1223,7 +1227,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1274853022.01464") :method
+.sub "term"  :subid("16_1275811471.14938") :method
 .annotate 'line', 13
     $P33 = self."!protoregex"("term")
     .return ($P33)
@@ -1231,7 +1235,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1274853022.01464") :method
+.sub "!PREFIX__term"  :subid("17_1275811471.14938") :method
 .annotate 'line', 13
     $P35 = self."!PREFIX__!protoregex"("term")
     .return ($P35)
@@ -1239,7 +1243,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1274853022.01464") :method
+.sub "infix"  :subid("18_1275811471.14938") :method
 .annotate 'line', 14
     $P37 = self."!protoregex"("infix")
     .return ($P37)
@@ -1247,7 +1251,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1274853022.01464") :method
+.sub "!PREFIX__infix"  :subid("19_1275811471.14938") :method
 .annotate 'line', 14
     $P39 = self."!PREFIX__!protoregex"("infix")
     .return ($P39)
@@ -1255,7 +1259,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1274853022.01464") :method
+.sub "prefix"  :subid("20_1275811471.14938") :method
 .annotate 'line', 15
     $P41 = self."!protoregex"("prefix")
     .return ($P41)
@@ -1263,7 +1267,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1274853022.01464") :method
+.sub "!PREFIX__prefix"  :subid("21_1275811471.14938") :method
 .annotate 'line', 15
     $P43 = self."!PREFIX__!protoregex"("prefix")
     .return ($P43)
@@ -1271,7 +1275,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1274853022.01464") :method
+.sub "postfix"  :subid("22_1275811471.14938") :method
 .annotate 'line', 16
     $P45 = self."!protoregex"("postfix")
     .return ($P45)
@@ -1279,7 +1283,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1274853022.01464") :method
+.sub "!PREFIX__postfix"  :subid("23_1275811471.14938") :method
 .annotate 'line', 16
     $P47 = self."!PREFIX__!protoregex"("postfix")
     .return ($P47)
@@ -1287,7 +1291,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1274853022.01464") :method
+.sub "circumfix"  :subid("24_1275811471.14938") :method
 .annotate 'line', 17
     $P49 = self."!protoregex"("circumfix")
     .return ($P49)
@@ -1295,7 +1299,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1274853022.01464") :method
+.sub "!PREFIX__circumfix"  :subid("25_1275811471.14938") :method
 .annotate 'line', 17
     $P51 = self."!PREFIX__!protoregex"("circumfix")
     .return ($P51)
@@ -1303,7 +1307,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1274853022.01464") :method
+.sub "postcircumfix"  :subid("26_1275811471.14938") :method
 .annotate 'line', 18
     $P53 = self."!protoregex"("postcircumfix")
     .return ($P53)
@@ -1311,7 +1315,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1274853022.01464") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1275811471.14938") :method
 .annotate 'line', 18
     $P55 = self."!PREFIX__!protoregex"("postcircumfix")
     .return ($P55)
@@ -1319,7 +1323,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "term:sym<circumfix>"  :subid("28_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 5
     .local string rx57_tgt
     .local int rx57_pos
@@ -1333,6 +1337,7 @@
     .local pmc match
     .lex "$/", match
     length rx57_eos, rx57_tgt
+    gt rx57_pos, rx57_eos, rx57_done
     set rx57_off, 0
     lt rx57_pos, 2, rx57_start
     sub rx57_off, rx57_pos, 1
@@ -1377,7 +1382,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1274853022.01464") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1275811471.14938") :method
 .annotate 'line', 5
     $P59 = self."!PREFIX__!subrule"("circumfix", "")
     new $P60, "ResizablePMCArray"
@@ -1387,7 +1392,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "infixish"  :subid("30_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 5
     .local string rx63_tgt
     .local int rx63_pos
@@ -1401,6 +1406,7 @@
     .local pmc match
     .lex "$/", match
     length rx63_eos, rx63_tgt
+    gt rx63_pos, rx63_eos, rx63_done
     set rx63_off, 0
     lt rx63_pos, 2, rx63_start
     sub rx63_off, rx63_pos, 1
@@ -1445,9 +1451,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1274853022.01464") :method
+.sub "!PREFIX__infixish"  :subid("31_1275811471.14938") :method
 .annotate 'line', 5
-    $P65 = self."!PREFIX__!subrule"("OPER=infix", "")
+    $P65 = self."!PREFIX__!subrule"("infix", "")
     new $P66, "ResizablePMCArray"
     push $P66, $P65
     .return ($P66)
@@ -1455,7 +1461,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "prefixish"  :subid("32_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 5
     .local string rx69_tgt
     .local int rx69_pos
@@ -1469,6 +1475,7 @@
     .local pmc match
     .lex "$/", match
     length rx69_eos, rx69_tgt
+    gt rx69_pos, rx69_eos, rx69_done
     set rx69_off, 0
     lt rx69_pos, 2, rx69_start
     sub rx69_off, rx69_pos, 1
@@ -1518,9 +1525,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1274853022.01464") :method
+.sub "!PREFIX__prefixish"  :subid("33_1275811471.14938") :method
 .annotate 'line', 5
-    $P71 = self."!PREFIX__!subrule"("OPER=prefix", "")
+    $P71 = self."!PREFIX__!subrule"("prefix", "")
     new $P72, "ResizablePMCArray"
     push $P72, $P71
     .return ($P72)
@@ -1528,7 +1535,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "postfixish"  :subid("34_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 5
     .local string rx75_tgt
     .local int rx75_pos
@@ -1542,6 +1549,7 @@
     .local pmc match
     .lex "$/", match
     length rx75_eos, rx75_tgt
+    gt rx75_pos, rx75_eos, rx75_done
     set rx75_off, 0
     lt rx75_pos, 2, rx75_start
     sub rx75_off, rx75_pos, 1
@@ -1602,10 +1610,10 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1274853022.01464") :method
+.sub "!PREFIX__postfixish"  :subid("35_1275811471.14938") :method
 .annotate 'line', 5
-    $P77 = self."!PREFIX__!subrule"("OPER=postcircumfix", "")
-    $P78 = self."!PREFIX__!subrule"("OPER=postfix", "")
+    $P77 = self."!PREFIX__!subrule"("postcircumfix", "")
+    $P78 = self."!PREFIX__!subrule"("postfix", "")
     new $P79, "ResizablePMCArray"
     push $P79, $P77
     push $P79, $P78
@@ -1614,7 +1622,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "nullterm"  :subid("36_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 5
     .local string rx83_tgt
     .local int rx83_pos
@@ -1628,6 +1636,7 @@
     .local pmc match
     .lex "$/", match
     length rx83_eos, rx83_tgt
+    gt rx83_pos, rx83_eos, rx83_done
     set rx83_off, 0
     lt rx83_pos, 2, rx83_start
     sub rx83_off, rx83_pos, 1
@@ -1665,7 +1674,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1274853022.01464") :method
+.sub "!PREFIX__nullterm"  :subid("37_1275811471.14938") :method
 .annotate 'line', 5
     new $P85, "ResizablePMCArray"
     push $P85, ""
@@ -1674,7 +1683,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "nullterm_alt"  :subid("38_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 5
     .local string rx88_tgt
     .local int rx88_pos
@@ -1688,6 +1697,7 @@
     .local pmc match
     .lex "$/", match
     length rx88_eos, rx88_tgt
+    gt rx88_pos, rx88_eos, rx88_done
     set rx88_off, 0
     lt rx88_pos, 2, rx88_start
     sub rx88_off, rx88_pos, 1
@@ -1732,9 +1742,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1274853022.01464") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1275811471.14938") :method
 .annotate 'line', 5
-    $P90 = self."!PREFIX__!subrule"("term", "")
+    $P90 = self."!PREFIX__!subrule"("nullterm", "")
     new $P91, "ResizablePMCArray"
     push $P91, $P90
     .return ($P91)
@@ -1742,11 +1752,12 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nulltermish"  :subid("40_1274853022.01464") :method :outer("11_1274853022.01464")
+.include "except_types.pasm"
+.sub "nulltermish"  :subid("40_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     new $P95, 'ExceptionHandler'
     set_addr $P95, control_94
-    $P95."handle_types"(57)
+    $P95."handle_types"(.CONTROL_RETURN)
     push_eh $P95
     .lex "self", self
     find_lex $P98, "self"
@@ -1769,7 +1780,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_delimited"  :subid("41_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx104_tgt
     .local int rx104_pos
@@ -1784,6 +1795,7 @@
     .local pmc match
     .lex "$/", match
     length rx104_eos, rx104_tgt
+    gt rx104_pos, rx104_eos, rx104_done
     set rx104_off, 0
     lt rx104_pos, 2, rx104_start
     sub rx104_off, rx104_pos, 1
@@ -1851,7 +1863,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1274853022.01464") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1275811471.14938") :method
 .annotate 'line', 33
     $P106 = self."!PREFIX__!subrule"("starter", "")
     new $P107, "ResizablePMCArray"
@@ -1861,7 +1873,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_atom"  :subid("43_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx112_tgt
     .local int rx112_pos
@@ -1875,6 +1887,7 @@
     .local pmc match
     .lex "$/", match
     length rx112_eos, rx112_tgt
+    gt rx112_pos, rx112_eos, rx112_done
     set rx112_off, 0
     lt rx112_pos, 2, rx112_start
     sub rx112_off, rx112_pos, 1
@@ -1952,7 +1965,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1274853022.01464") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1275811471.14938") :method
 .annotate 'line', 33
     new $P114, "ResizablePMCArray"
     push $P114, ""
@@ -1961,7 +1974,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "decint"  :subid("45_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx122_tgt
     .local int rx122_pos
@@ -1975,6 +1988,7 @@
     .local pmc match
     .lex "$/", match
     length rx122_eos, rx122_tgt
+    gt rx122_pos, rx122_eos, rx122_done
     set rx122_off, 0
     lt rx122_pos, 2, rx122_start
     sub rx122_off, rx122_pos, 1
@@ -2033,7 +2047,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1274853022.01464") :method
+.sub "!PREFIX__decint"  :subid("46_1275811471.14938") :method
 .annotate 'line', 33
     new $P124, "ResizablePMCArray"
     push $P124, ""
@@ -2042,7 +2056,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "decints"  :subid("47_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx129_tgt
     .local int rx129_pos
@@ -2057,6 +2071,7 @@
     .local pmc match
     .lex "$/", match
     length rx129_eos, rx129_tgt
+    gt rx129_pos, rx129_eos, rx129_done
     set rx129_off, 0
     lt rx129_pos, 2, rx129_start
     sub rx129_off, rx129_pos, 1
@@ -2126,7 +2141,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1274853022.01464") :method
+.sub "!PREFIX__decints"  :subid("48_1275811471.14938") :method
 .annotate 'line', 33
     new $P131, "ResizablePMCArray"
     push $P131, ""
@@ -2135,7 +2150,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "hexint"  :subid("49_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx136_tgt
     .local int rx136_pos
@@ -2149,6 +2164,7 @@
     .local pmc match
     .lex "$/", match
     length rx136_eos, rx136_tgt
+    gt rx136_pos, rx136_eos, rx136_done
     set rx136_off, 0
     lt rx136_pos, 2, rx136_start
     sub rx136_off, rx136_pos, 1
@@ -2216,7 +2232,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1274853022.01464") :method
+.sub "!PREFIX__hexint"  :subid("50_1275811471.14938") :method
 .annotate 'line', 33
     new $P138, "ResizablePMCArray"
     push $P138, ""
@@ -2225,7 +2241,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "hexints"  :subid("51_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2240,6 +2256,7 @@
     .local pmc match
     .lex "$/", match
     length rx145_eos, rx145_tgt
+    gt rx145_pos, rx145_eos, rx145_done
     set rx145_off, 0
     lt rx145_pos, 2, rx145_start
     sub rx145_off, rx145_pos, 1
@@ -2309,7 +2326,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1274853022.01464") :method
+.sub "!PREFIX__hexints"  :subid("52_1275811471.14938") :method
 .annotate 'line', 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2318,7 +2335,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "octint"  :subid("53_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2332,6 +2349,7 @@
     .local pmc match
     .lex "$/", match
     length rx152_eos, rx152_tgt
+    gt rx152_pos, rx152_eos, rx152_done
     set rx152_off, 0
     lt rx152_pos, 2, rx152_start
     sub rx152_off, rx152_pos, 1
@@ -2399,7 +2417,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1274853022.01464") :method
+.sub "!PREFIX__octint"  :subid("54_1275811471.14938") :method
 .annotate 'line', 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2408,7 +2426,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "octints"  :subid("55_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx161_tgt
     .local int rx161_pos
@@ -2423,6 +2441,7 @@
     .local pmc match
     .lex "$/", match
     length rx161_eos, rx161_tgt
+    gt rx161_pos, rx161_eos, rx161_done
     set rx161_off, 0
     lt rx161_pos, 2, rx161_start
     sub rx161_off, rx161_pos, 1
@@ -2492,7 +2511,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1274853022.01464") :method
+.sub "!PREFIX__octints"  :subid("56_1275811471.14938") :method
 .annotate 'line', 33
     new $P163, "ResizablePMCArray"
     push $P163, ""
@@ -2501,7 +2520,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "binint"  :subid("57_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx168_tgt
     .local int rx168_pos
@@ -2515,6 +2534,7 @@
     .local pmc match
     .lex "$/", match
     length rx168_eos, rx168_tgt
+    gt rx168_pos, rx168_eos, rx168_done
     set rx168_off, 0
     lt rx168_pos, 2, rx168_start
     sub rx168_off, rx168_pos, 1
@@ -2582,7 +2602,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1274853022.01464") :method
+.sub "!PREFIX__binint"  :subid("58_1275811471.14938") :method
 .annotate 'line', 33
     new $P170, "ResizablePMCArray"
     push $P170, ""
@@ -2591,7 +2611,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "binints"  :subid("59_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx177_tgt
     .local int rx177_pos
@@ -2606,6 +2626,7 @@
     .local pmc match
     .lex "$/", match
     length rx177_eos, rx177_tgt
+    gt rx177_pos, rx177_eos, rx177_done
     set rx177_off, 0
     lt rx177_pos, 2, rx177_start
     sub rx177_off, rx177_pos, 1
@@ -2675,7 +2696,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1274853022.01464") :method
+.sub "!PREFIX__binints"  :subid("60_1275811471.14938") :method
 .annotate 'line', 33
     new $P179, "ResizablePMCArray"
     push $P179, ""
@@ -2684,7 +2705,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "integer"  :subid("61_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx184_tgt
     .local int rx184_pos
@@ -2698,6 +2719,7 @@
     .local pmc match
     .lex "$/", match
     length rx184_eos, rx184_tgt
+    gt rx184_pos, rx184_eos, rx184_done
     set rx184_off, 0
     lt rx184_pos, 2, rx184_start
     sub rx184_off, rx184_pos, 1
@@ -2832,13 +2854,13 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1274853022.01464") :method
+.sub "!PREFIX__integer"  :subid("62_1275811471.14938") :method
 .annotate 'line', 33
-    $P186 = self."!PREFIX__!subrule"("VALUE=decint", "")
-    $P187 = self."!PREFIX__!subrule"("VALUE=decint", "0d")
-    $P188 = self."!PREFIX__!subrule"("VALUE=hexint", "0x")
-    $P189 = self."!PREFIX__!subrule"("VALUE=octint", "0o")
-    $P190 = self."!PREFIX__!subrule"("VALUE=binint", "0b")
+    $P186 = self."!PREFIX__!subrule"("decint", "")
+    $P187 = self."!PREFIX__!subrule"("decint", "0d")
+    $P188 = self."!PREFIX__!subrule"("hexint", "0x")
+    $P189 = self."!PREFIX__!subrule"("octint", "0o")
+    $P190 = self."!PREFIX__!subrule"("binint", "0b")
     new $P191, "ResizablePMCArray"
     push $P191, $P186
     push $P191, $P187
@@ -2850,7 +2872,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "dec_number"  :subid("63_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx196_tgt
     .local int rx196_pos
@@ -2865,6 +2887,7 @@
     .local pmc match
     .lex "$/", match
     length rx196_eos, rx196_tgt
+    gt rx196_pos, rx196_eos, rx196_done
     set rx196_off, 0
     lt rx196_pos, 2, rx196_start
     sub rx196_off, rx196_pos, 1
@@ -3029,7 +3052,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1274853022.01464") :method
+.sub "!PREFIX__dec_number"  :subid("64_1275811471.14938") :method
 .annotate 'line', 33
     new $P198, "ResizablePMCArray"
     push $P198, ""
@@ -3040,7 +3063,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "escale"  :subid("65_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx209_tgt
     .local int rx209_pos
@@ -3054,6 +3077,7 @@
     .local pmc match
     .lex "$/", match
     length rx209_eos, rx209_tgt
+    gt rx209_pos, rx209_eos, rx209_done
     set rx209_off, 0
     lt rx209_pos, 2, rx209_start
     sub rx209_off, rx209_pos, 1
@@ -3117,7 +3141,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1274853022.01464") :method
+.sub "!PREFIX__escale"  :subid("66_1275811471.14938") :method
 .annotate 'line', 33
     new $P211, "ResizablePMCArray"
     push $P211, "e"
@@ -3127,7 +3151,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1274853022.01464") :method
+.sub "quote_escape"  :subid("67_1275811471.14938") :method
 .annotate 'line', 79
     $P216 = self."!protoregex"("quote_escape")
     .return ($P216)
@@ -3135,7 +3159,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1274853022.01464") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1275811471.14938") :method
 .annotate 'line', 79
     $P218 = self."!PREFIX__!protoregex"("quote_escape")
     .return ($P218)
@@ -3143,7 +3167,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<backslash>"  :subid("69_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx220_tgt
     .local int rx220_pos
@@ -3157,6 +3181,7 @@
     .local pmc match
     .lex "$/", match
     length rx220_eos, rx220_tgt
+    gt rx220_pos, rx220_eos, rx220_done
     set rx220_off, 0
     lt rx220_pos, 2, rx220_start
     sub rx220_off, rx220_pos, 1
@@ -3205,7 +3230,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1275811471.14938") :method
 .annotate 'line', 33
     new $P222, "ResizablePMCArray"
     push $P222, "\\\\"
@@ -3214,7 +3239,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<stopper>"  :subid("71_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx225_tgt
     .local int rx225_pos
@@ -3228,6 +3253,7 @@
     .local pmc match
     .lex "$/", match
     length rx225_eos, rx225_tgt
+    gt rx225_pos, rx225_eos, rx225_done
     set rx225_off, 0
     lt rx225_pos, 2, rx225_start
     sub rx225_off, rx225_pos, 1
@@ -3283,7 +3309,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1275811471.14938") :method
 .annotate 'line', 33
     new $P227, "ResizablePMCArray"
     push $P227, "\\"
@@ -3292,7 +3318,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<bs>"  :subid("73_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx230_tgt
     .local int rx230_pos
@@ -3306,6 +3332,7 @@
     .local pmc match
     .lex "$/", match
     length rx230_eos, rx230_tgt
+    gt rx230_pos, rx230_eos, rx230_done
     set rx230_off, 0
     lt rx230_pos, 2, rx230_start
     sub rx230_off, rx230_pos, 1
@@ -3354,7 +3381,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1275811471.14938") :method
 .annotate 'line', 33
     new $P232, "ResizablePMCArray"
     push $P232, "\\b"
@@ -3363,7 +3390,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<nl>"  :subid("75_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx235_tgt
     .local int rx235_pos
@@ -3377,6 +3404,7 @@
     .local pmc match
     .lex "$/", match
     length rx235_eos, rx235_tgt
+    gt rx235_pos, rx235_eos, rx235_done
     set rx235_off, 0
     lt rx235_pos, 2, rx235_start
     sub rx235_off, rx235_pos, 1
@@ -3425,7 +3453,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1275811471.14938") :method
 .annotate 'line', 33
     new $P237, "ResizablePMCArray"
     push $P237, "\\n"
@@ -3434,7 +3462,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<cr>"  :subid("77_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx240_tgt
     .local int rx240_pos
@@ -3448,6 +3476,7 @@
     .local pmc match
     .lex "$/", match
     length rx240_eos, rx240_tgt
+    gt rx240_pos, rx240_eos, rx240_done
     set rx240_off, 0
     lt rx240_pos, 2, rx240_start
     sub rx240_off, rx240_pos, 1
@@ -3496,7 +3525,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1275811471.14938") :method
 .annotate 'line', 33
     new $P242, "ResizablePMCArray"
     push $P242, "\\r"
@@ -3505,7 +3534,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<tab>"  :subid("79_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx245_tgt
     .local int rx245_pos
@@ -3519,6 +3548,7 @@
     .local pmc match
     .lex "$/", match
     length rx245_eos, rx245_tgt
+    gt rx245_pos, rx245_eos, rx245_done
     set rx245_off, 0
     lt rx245_pos, 2, rx245_start
     sub rx245_off, rx245_pos, 1
@@ -3567,7 +3597,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1275811471.14938") :method
 .annotate 'line', 33
     new $P247, "ResizablePMCArray"
     push $P247, "\\t"
@@ -3576,7 +3606,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>"  :subid("81_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<ff>"  :subid("81_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx250_tgt
     .local int rx250_pos
@@ -3590,6 +3620,7 @@
     .local pmc match
     .lex "$/", match
     length rx250_eos, rx250_tgt
+    gt rx250_pos, rx250_eos, rx250_done
     set rx250_off, 0
     lt rx250_pos, 2, rx250_start
     sub rx250_off, rx250_pos, 1
@@ -3638,7 +3669,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1275811471.14938") :method
 .annotate 'line', 33
     new $P252, "ResizablePMCArray"
     push $P252, "\\f"
@@ -3647,7 +3678,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("83_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<esc>"  :subid("83_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx255_tgt
     .local int rx255_pos
@@ -3656,11 +3687,12 @@
     .local int rx255_rep
     .local pmc rx255_cur
     (rx255_cur, rx255_pos, rx255_tgt) = self."!cursor_start"()
-    rx255_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
+    rx255_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
     .lex unicode:"$\x{a2}", rx255_cur
     .local pmc match
     .lex "$/", match
     length rx255_eos, rx255_tgt
+    gt rx255_pos, rx255_eos, rx255_done
     set rx255_off, 0
     lt rx255_pos, 2, rx255_start
     sub rx255_off, rx255_pos, 1
@@ -3678,57 +3710,21 @@
     set_addr $I10, rxscan258_loop
     rx255_cur."!mark_push"(0, rx255_pos, $I10)
   rxscan258_done:
-.annotate 'line', 89
-  # rx literal  unicode:"\\x"
+.annotate 'line', 88
+  # rx literal  "\\e"
     add $I11, rx255_pos, 2
     gt $I11, rx255_eos, rx255_fail
     sub $I11, rx255_pos, rx255_off
     substr $S10, rx255_tgt, $I11, 2
-    ne $S10, unicode:"\\x", rx255_fail
+    ne $S10, "\\e", rx255_fail
     add rx255_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx255_cur."!cursor_pos"(rx255_pos)
     $P10 = rx255_cur."quotemod_check"("b")
     unless $P10, rx255_fail
-  alt259_0:
-.annotate 'line', 90
-    set_addr $I10, alt259_1
-    rx255_cur."!mark_push"(0, rx255_pos, $I10)
-  # rx subrule "hexint" subtype=capture negate=
-    rx255_cur."!cursor_pos"(rx255_pos)
-    $P10 = rx255_cur."hexint"()
-    unless $P10, rx255_fail
-    rx255_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("hexint")
-    rx255_pos = $P10."pos"()
-    goto alt259_end
-  alt259_1:
-  # rx literal  "["
-    add $I11, rx255_pos, 1
-    gt $I11, rx255_eos, rx255_fail
-    sub $I11, rx255_pos, rx255_off
-    substr $S10, rx255_tgt, $I11, 1
-    ne $S10, "[", rx255_fail
-    add rx255_pos, 1
-  # rx subrule "hexints" subtype=capture negate=
-    rx255_cur."!cursor_pos"(rx255_pos)
-    $P10 = rx255_cur."hexints"()
-    unless $P10, rx255_fail
-    rx255_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("hexints")
-    rx255_pos = $P10."pos"()
-  # rx literal  "]"
-    add $I11, rx255_pos, 1
-    gt $I11, rx255_eos, rx255_fail
-    sub $I11, rx255_pos, rx255_off
-    substr $S10, rx255_tgt, $I11, 1
-    ne $S10, "]", rx255_fail
-    add rx255_pos, 1
-  alt259_end:
-.annotate 'line', 88
   # rx pass
-    rx255_cur."!cursor_pass"(rx255_pos, "quote_escape:sym<hex>")
-    rx255_cur."!cursor_debug"("PASS  ", "quote_escape:sym<hex>", " at pos=", rx255_pos)
+    rx255_cur."!cursor_pass"(rx255_pos, "quote_escape:sym<esc>")
+    rx255_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx255_pos)
     .return (rx255_cur)
   rx255_fail:
 .annotate 'line', 33
@@ -3738,208 +3734,239 @@
     jump $I10
   rx255_done:
     rx255_cur."!cursor_fail"()
-    rx255_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<hex>")
+    rx255_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
     .return (rx255_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("84_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1275811471.14938") :method
 .annotate 'line', 33
     new $P257, "ResizablePMCArray"
-    push $P257, unicode:"\\x"
+    push $P257, "\\e"
     .return ($P257)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("85_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<hex>"  :subid("85_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
-    .local string rx261_tgt
-    .local int rx261_pos
-    .local int rx261_off
-    .local int rx261_eos
-    .local int rx261_rep
-    .local pmc rx261_cur
-    (rx261_cur, rx261_pos, rx261_tgt) = self."!cursor_start"()
-    rx261_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
-    .lex unicode:"$\x{a2}", rx261_cur
+    .local string rx260_tgt
+    .local int rx260_pos
+    .local int rx260_off
+    .local int rx260_eos
+    .local int rx260_rep
+    .local pmc rx260_cur
+    (rx260_cur, rx260_pos, rx260_tgt) = self."!cursor_start"()
+    rx260_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
+    .lex unicode:"$\x{a2}", rx260_cur
     .local pmc match
     .lex "$/", match
-    length rx261_eos, rx261_tgt
-    set rx261_off, 0
-    lt rx261_pos, 2, rx261_start
-    sub rx261_off, rx261_pos, 1
-    substr rx261_tgt, rx261_tgt, rx261_off
-  rx261_start:
+    length rx260_eos, rx260_tgt
+    gt rx260_pos, rx260_eos, rx260_done
+    set rx260_off, 0
+    lt rx260_pos, 2, rx260_start
+    sub rx260_off, rx260_pos, 1
+    substr rx260_tgt, rx260_tgt, rx260_off
+  rx260_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan264_done
-    goto rxscan264_scan
-  rxscan264_loop:
-    ($P10) = rx261_cur."from"()
+    ne $I10, -1, rxscan263_done
+    goto rxscan263_scan
+  rxscan263_loop:
+    ($P10) = rx260_cur."from"()
     inc $P10
-    set rx261_pos, $P10
-    ge rx261_pos, rx261_eos, rxscan264_done
-  rxscan264_scan:
-    set_addr $I10, rxscan264_loop
-    rx261_cur."!mark_push"(0, rx261_pos, $I10)
-  rxscan264_done:
-.annotate 'line', 93
-  # rx literal  "\\o"
-    add $I11, rx261_pos, 2
-    gt $I11, rx261_eos, rx261_fail
-    sub $I11, rx261_pos, rx261_off
-    substr $S10, rx261_tgt, $I11, 2
-    ne $S10, "\\o", rx261_fail
-    add rx261_pos, 2
+    set rx260_pos, $P10
+    ge rx260_pos, rx260_eos, rxscan263_done
+  rxscan263_scan:
+    set_addr $I10, rxscan263_loop
+    rx260_cur."!mark_push"(0, rx260_pos, $I10)
+  rxscan263_done:
+.annotate 'line', 90
+  # rx literal  unicode:"\\x"
+    add $I11, rx260_pos, 2
+    gt $I11, rx260_eos, rx260_fail
+    sub $I11, rx260_pos, rx260_off
+    substr $S10, rx260_tgt, $I11, 2
+    ne $S10, unicode:"\\x", rx260_fail
+    add rx260_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."quotemod_check"("b")
-    unless $P10, rx261_fail
-  alt265_0:
-.annotate 'line', 94
-    set_addr $I10, alt265_1
-    rx261_cur."!mark_push"(0, rx261_pos, $I10)
-  # rx subrule "octint" subtype=capture negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."octint"()
-    unless $P10, rx261_fail
-    rx261_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("octint")
-    rx261_pos = $P10."pos"()
-    goto alt265_end
-  alt265_1:
+    rx260_cur."!cursor_pos"(rx260_pos)
+    $P10 = rx260_cur."quotemod_check"("b")
+    unless $P10, rx260_fail
+  alt264_0:
+.annotate 'line', 91
+    set_addr $I10, alt264_1
+    rx260_cur."!mark_push"(0, rx260_pos, $I10)
+  # rx subrule "hexint" subtype=capture negate=
+    rx260_cur."!cursor_pos"(rx260_pos)
+    $P10 = rx260_cur."hexint"()
+    unless $P10, rx260_fail
+    rx260_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("hexint")
+    rx260_pos = $P10."pos"()
+    goto alt264_end
+  alt264_1:
   # rx literal  "["
-    add $I11, rx261_pos, 1
-    gt $I11, rx261_eos, rx261_fail
-    sub $I11, rx261_pos, rx261_off
-    substr $S10, rx261_tgt, $I11, 1
-    ne $S10, "[", rx261_fail
-    add rx261_pos, 1
-  # rx subrule "octints" subtype=capture negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."octints"()
-    unless $P10, rx261_fail
-    rx261_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("octints")
-    rx261_pos = $P10."pos"()
+    add $I11, rx260_pos, 1
+    gt $I11, rx260_eos, rx260_fail
+    sub $I11, rx260_pos, rx260_off
+    substr $S10, rx260_tgt, $I11, 1
+    ne $S10, "[", rx260_fail
+    add rx260_pos, 1
+  # rx subrule "hexints" subtype=capture negate=
+    rx260_cur."!cursor_pos"(rx260_pos)
+    $P10 = rx260_cur."hexints"()
+    unless $P10, rx260_fail
+    rx260_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("hexints")
+    rx260_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx261_pos, 1
-    gt $I11, rx261_eos, rx261_fail
-    sub $I11, rx261_pos, rx261_off
-    substr $S10, rx261_tgt, $I11, 1
-    ne $S10, "]", rx261_fail
-    add rx261_pos, 1
-  alt265_end:
-.annotate 'line', 92
+    add $I11, rx260_pos, 1
+    gt $I11, rx260_eos, rx260_fail
+    sub $I11, rx260_pos, rx260_off
+    substr $S10, rx260_tgt, $I11, 1
+    ne $S10, "]", rx260_fail
+    add rx260_pos, 1
+  alt264_end:
+.annotate 'line', 89
   # rx pass
-    rx261_cur."!cursor_pass"(rx261_pos, "quote_escape:sym<oct>")
-    rx261_cur."!cursor_debug"("PASS  ", "quote_escape:sym<oct>", " at pos=", rx261_pos)
-    .return (rx261_cur)
-  rx261_fail:
-.annotate 'line', 33
-    (rx261_rep, rx261_pos, $I10, $P10) = rx261_cur."!mark_fail"(0)
-    lt rx261_pos, -1, rx261_done
-    eq rx261_pos, -1, rx261_fail
+    rx260_cur."!cursor_pass"(rx260_pos, "quote_escape:sym<hex>")
+    rx260_cur."!cursor_debug"("PASS  ", "quote_escape:sym<hex>", " at pos=", rx260_pos)
+    .return (rx260_cur)
+  rx260_fail:
+.annotate 'line', 33
+    (rx260_rep, rx260_pos, $I10, $P10) = rx260_cur."!mark_fail"(0)
+    lt rx260_pos, -1, rx260_done
+    eq rx260_pos, -1, rx260_fail
     jump $I10
-  rx261_done:
-    rx261_cur."!cursor_fail"()
-    rx261_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<oct>")
-    .return (rx261_cur)
+  rx260_done:
+    rx260_cur."!cursor_fail"()
+    rx260_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<hex>")
+    .return (rx260_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("86_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1275811471.14938") :method
 .annotate 'line', 33
-    new $P263, "ResizablePMCArray"
-    push $P263, "\\o"
-    .return ($P263)
+    new $P262, "ResizablePMCArray"
+    push $P262, unicode:"\\x"
+    .return ($P262)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("87_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<oct>"  :subid("87_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
-    .local string rx267_tgt
-    .local int rx267_pos
-    .local int rx267_off
-    .local int rx267_eos
-    .local int rx267_rep
-    .local pmc rx267_cur
-    (rx267_cur, rx267_pos, rx267_tgt) = self."!cursor_start"()
-    rx267_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
-    .lex unicode:"$\x{a2}", rx267_cur
+    .local string rx266_tgt
+    .local int rx266_pos
+    .local int rx266_off
+    .local int rx266_eos
+    .local int rx266_rep
+    .local pmc rx266_cur
+    (rx266_cur, rx266_pos, rx266_tgt) = self."!cursor_start"()
+    rx266_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
+    .lex unicode:"$\x{a2}", rx266_cur
     .local pmc match
     .lex "$/", match
-    length rx267_eos, rx267_tgt
-    set rx267_off, 0
-    lt rx267_pos, 2, rx267_start
-    sub rx267_off, rx267_pos, 1
-    substr rx267_tgt, rx267_tgt, rx267_off
-  rx267_start:
+    length rx266_eos, rx266_tgt
+    gt rx266_pos, rx266_eos, rx266_done
+    set rx266_off, 0
+    lt rx266_pos, 2, rx266_start
+    sub rx266_off, rx266_pos, 1
+    substr rx266_tgt, rx266_tgt, rx266_off
+  rx266_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan270_done
-    goto rxscan270_scan
-  rxscan270_loop:
-    ($P10) = rx267_cur."from"()
+    ne $I10, -1, rxscan269_done
+    goto rxscan269_scan
+  rxscan269_loop:
+    ($P10) = rx266_cur."from"()
     inc $P10
-    set rx267_pos, $P10
-    ge rx267_pos, rx267_eos, rxscan270_done
-  rxscan270_scan:
-    set_addr $I10, rxscan270_loop
-    rx267_cur."!mark_push"(0, rx267_pos, $I10)
-  rxscan270_done:
-.annotate 'line', 96
-  # rx literal  "\\c"
-    add $I11, rx267_pos, 2
-    gt $I11, rx267_eos, rx267_fail
-    sub $I11, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I11, 2
-    ne $S10, "\\c", rx267_fail
-    add rx267_pos, 2
+    set rx266_pos, $P10
+    ge rx266_pos, rx266_eos, rxscan269_done
+  rxscan269_scan:
+    set_addr $I10, rxscan269_loop
+    rx266_cur."!mark_push"(0, rx266_pos, $I10)
+  rxscan269_done:
+.annotate 'line', 94
+  # rx literal  "\\o"
+    add $I11, rx266_pos, 2
+    gt $I11, rx266_eos, rx266_fail
+    sub $I11, rx266_pos, rx266_off
+    substr $S10, rx266_tgt, $I11, 2
+    ne $S10, "\\o", rx266_fail
+    add rx266_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."quotemod_check"("b")
-    unless $P10, rx267_fail
-  # rx subrule "charspec" subtype=capture negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."charspec"()
-    unless $P10, rx267_fail
-    rx267_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("charspec")
-    rx267_pos = $P10."pos"()
+    rx266_cur."!cursor_pos"(rx266_pos)
+    $P10 = rx266_cur."quotemod_check"("b")
+    unless $P10, rx266_fail
+  alt270_0:
+.annotate 'line', 95
+    set_addr $I10, alt270_1
+    rx266_cur."!mark_push"(0, rx266_pos, $I10)
+  # rx subrule "octint" subtype=capture negate=
+    rx266_cur."!cursor_pos"(rx266_pos)
+    $P10 = rx266_cur."octint"()
+    unless $P10, rx266_fail
+    rx266_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("octint")
+    rx266_pos = $P10."pos"()
+    goto alt270_end
+  alt270_1:
+  # rx literal  "["
+    add $I11, rx266_pos, 1
+    gt $I11, rx266_eos, rx266_fail
+    sub $I11, rx266_pos, rx266_off
+    substr $S10, rx266_tgt, $I11, 1
+    ne $S10, "[", rx266_fail
+    add rx266_pos, 1
+  # rx subrule "octints" subtype=capture negate=
+    rx266_cur."!cursor_pos"(rx266_pos)
+    $P10 = rx266_cur."octints"()
+    unless $P10, rx266_fail
+    rx266_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("octints")
+    rx266_pos = $P10."pos"()
+  # rx literal  "]"
+    add $I11, rx266_pos, 1
+    gt $I11, rx266_eos, rx266_fail
+    sub $I11, rx266_pos, rx266_off
+    substr $S10, rx266_tgt, $I11, 1
+    ne $S10, "]", rx266_fail
+    add rx266_pos, 1
+  alt270_end:
+.annotate 'line', 93
   # rx pass
-    rx267_cur."!cursor_pass"(rx267_pos, "quote_escape:sym<chr>")
-    rx267_cur."!cursor_debug"("PASS  ", "quote_escape:sym<chr>", " at pos=", rx267_pos)
-    .return (rx267_cur)
-  rx267_fail:
-.annotate 'line', 33
-    (rx267_rep, rx267_pos, $I10, $P10) = rx267_cur."!mark_fail"(0)
-    lt rx267_pos, -1, rx267_done
-    eq rx267_pos, -1, rx267_fail
+    rx266_cur."!cursor_pass"(rx266_pos, "quote_escape:sym<oct>")
+    rx266_cur."!cursor_debug"("PASS  ", "quote_escape:sym<oct>", " at pos=", rx266_pos)
+    .return (rx266_cur)
+  rx266_fail:
+.annotate 'line', 33
+    (rx266_rep, rx266_pos, $I10, $P10) = rx266_cur."!mark_fail"(0)
+    lt rx266_pos, -1, rx266_done
+    eq rx266_pos, -1, rx266_fail
     jump $I10
-  rx267_done:
-    rx267_cur."!cursor_fail"()
-    rx267_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<chr>")
-    .return (rx267_cur)
+  rx266_done:
+    rx266_cur."!cursor_fail"()
+    rx266_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<oct>")
+    .return (rx266_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("88_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1275811471.14938") :method
 .annotate 'line', 33
-    new $P269, "ResizablePMCArray"
-    push $P269, "\\c"
-    .return ($P269)
+    new $P268, "ResizablePMCArray"
+    push $P268, "\\o"
+    .return ($P268)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>"  :subid("89_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<chr>"  :subid("89_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
     .local string rx272_tgt
     .local int rx272_pos
@@ -3948,11 +3975,12 @@
     .local int rx272_rep
     .local pmc rx272_cur
     (rx272_cur, rx272_pos, rx272_tgt) = self."!cursor_start"()
-    rx272_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
+    rx272_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
     .lex unicode:"$\x{a2}", rx272_cur
     .local pmc match
     .lex "$/", match
     length rx272_eos, rx272_tgt
+    gt rx272_pos, rx272_eos, rx272_done
     set rx272_off, 0
     lt rx272_pos, 2, rx272_start
     sub rx272_off, rx272_pos, 1
@@ -3971,41 +3999,27 @@
     rx272_cur."!mark_push"(0, rx272_pos, $I10)
   rxscan275_done:
 .annotate 'line', 97
-  # rx literal  "\\"
-    add $I11, rx272_pos, 1
-    gt $I11, rx272_eos, rx272_fail
-    sub $I11, rx272_pos, rx272_off
-    substr $S10, rx272_tgt, $I11, 1
-    ne $S10, "\\", rx272_fail
-    add rx272_pos, 1
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_276_fail
-    rx272_cur."!mark_push"(0, rx272_pos, $I10)
-  # rx literal  "0"
-    add $I11, rx272_pos, 1
+  # rx literal  "\\c"
+    add $I11, rx272_pos, 2
     gt $I11, rx272_eos, rx272_fail
     sub $I11, rx272_pos, rx272_off
-    substr $S10, rx272_tgt, $I11, 1
-    ne $S10, "0", rx272_fail
-    add rx272_pos, 1
-    set_addr $I10, rxcap_276_fail
-    ($I12, $I11) = rx272_cur."!mark_peek"($I10)
-    rx272_cur."!cursor_pos"($I11)
-    ($P10) = rx272_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx272_pos, "")
-    rx272_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_276_done
-  rxcap_276_fail:
-    goto rx272_fail
-  rxcap_276_done:
+    substr $S10, rx272_tgt, $I11, 2
+    ne $S10, "\\c", rx272_fail
+    add rx272_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx272_cur."!cursor_pos"(rx272_pos)
     $P10 = rx272_cur."quotemod_check"("b")
     unless $P10, rx272_fail
+  # rx subrule "charspec" subtype=capture negate=
+    rx272_cur."!cursor_pos"(rx272_pos)
+    $P10 = rx272_cur."charspec"()
+    unless $P10, rx272_fail
+    rx272_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("charspec")
+    rx272_pos = $P10."pos"()
   # rx pass
-    rx272_cur."!cursor_pass"(rx272_pos, "quote_escape:sym<0>")
-    rx272_cur."!cursor_debug"("PASS  ", "quote_escape:sym<0>", " at pos=", rx272_pos)
+    rx272_cur."!cursor_pass"(rx272_pos, "quote_escape:sym<chr>")
+    rx272_cur."!cursor_debug"("PASS  ", "quote_escape:sym<chr>", " at pos=", rx272_pos)
     .return (rx272_cur)
   rx272_fail:
 .annotate 'line', 33
@@ -4015,775 +4029,874 @@
     jump $I10
   rx272_done:
     rx272_cur."!cursor_fail"()
-    rx272_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<0>")
+    rx272_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<chr>")
     .return (rx272_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("90_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1275811471.14938") :method
 .annotate 'line', 33
     new $P274, "ResizablePMCArray"
-    push $P274, "\\0"
+    push $P274, "\\c"
     .return ($P274)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>"  :subid("91_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "quote_escape:sym<0>"  :subid("91_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
-    .const 'Sub' $P297 = "95_1274853022.01464" 
-    capture_lex $P297
-    .const 'Sub' $P290 = "94_1274853022.01464" 
-    capture_lex $P290
-    .const 'Sub' $P285 = "93_1274853022.01464" 
-    capture_lex $P285
-    .local string rx278_tgt
-    .local int rx278_pos
-    .local int rx278_off
-    .local int rx278_eos
-    .local int rx278_rep
-    .local pmc rx278_cur
-    (rx278_cur, rx278_pos, rx278_tgt) = self."!cursor_start"()
-    rx278_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
-    .lex unicode:"$\x{a2}", rx278_cur
+    .local string rx277_tgt
+    .local int rx277_pos
+    .local int rx277_off
+    .local int rx277_eos
+    .local int rx277_rep
+    .local pmc rx277_cur
+    (rx277_cur, rx277_pos, rx277_tgt) = self."!cursor_start"()
+    rx277_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
+    .lex unicode:"$\x{a2}", rx277_cur
     .local pmc match
     .lex "$/", match
-    length rx278_eos, rx278_tgt
-    set rx278_off, 0
-    lt rx278_pos, 2, rx278_start
-    sub rx278_off, rx278_pos, 1
-    substr rx278_tgt, rx278_tgt, rx278_off
-  rx278_start:
+    length rx277_eos, rx277_tgt
+    gt rx277_pos, rx277_eos, rx277_done
+    set rx277_off, 0
+    lt rx277_pos, 2, rx277_start
+    sub rx277_off, rx277_pos, 1
+    substr rx277_tgt, rx277_tgt, rx277_off
+  rx277_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan281_done
-    goto rxscan281_scan
-  rxscan281_loop:
-    ($P10) = rx278_cur."from"()
+    ne $I10, -1, rxscan280_done
+    goto rxscan280_scan
+  rxscan280_loop:
+    ($P10) = rx277_cur."from"()
     inc $P10
-    set rx278_pos, $P10
-    ge rx278_pos, rx278_eos, rxscan281_done
-  rxscan281_scan:
-    set_addr $I10, rxscan281_loop
-    rx278_cur."!mark_push"(0, rx278_pos, $I10)
-  rxscan281_done:
-.annotate 'line', 99
-    rx278_cur."!cursor_pos"(rx278_pos)
-    find_lex $P282, unicode:"$\x{a2}"
-    $P283 = $P282."MATCH"()
-    store_lex "$/", $P283
-    .const 'Sub' $P285 = "93_1274853022.01464" 
-    capture_lex $P285
-    $P286 = $P285()
+    set rx277_pos, $P10
+    ge rx277_pos, rx277_eos, rxscan280_done
+  rxscan280_scan:
+    set_addr $I10, rxscan280_loop
+    rx277_cur."!mark_push"(0, rx277_pos, $I10)
+  rxscan280_done:
+.annotate 'line', 98
   # rx literal  "\\"
-    add $I11, rx278_pos, 1
-    gt $I11, rx278_eos, rx278_fail
-    sub $I11, rx278_pos, rx278_off
-    substr $S10, rx278_tgt, $I11, 1
-    ne $S10, "\\", rx278_fail
-    add rx278_pos, 1
-  alt287_0:
+    add $I11, rx277_pos, 1
+    gt $I11, rx277_eos, rx277_fail
+    sub $I11, rx277_pos, rx277_off
+    substr $S10, rx277_tgt, $I11, 1
+    ne $S10, "\\", rx277_fail
+    add rx277_pos, 1
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_281_fail
+    rx277_cur."!mark_push"(0, rx277_pos, $I10)
+  # rx literal  "0"
+    add $I11, rx277_pos, 1
+    gt $I11, rx277_eos, rx277_fail
+    sub $I11, rx277_pos, rx277_off
+    substr $S10, rx277_tgt, $I11, 1
+    ne $S10, "0", rx277_fail
+    add rx277_pos, 1
+    set_addr $I10, rxcap_281_fail
+    ($I12, $I11) = rx277_cur."!mark_peek"($I10)
+    rx277_cur."!cursor_pos"($I11)
+    ($P10) = rx277_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx277_pos, "")
+    rx277_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_281_done
+  rxcap_281_fail:
+    goto rx277_fail
+  rxcap_281_done:
+  # rx subrule "quotemod_check" subtype=zerowidth negate=
+    rx277_cur."!cursor_pos"(rx277_pos)
+    $P10 = rx277_cur."quotemod_check"("b")
+    unless $P10, rx277_fail
+  # rx pass
+    rx277_cur."!cursor_pass"(rx277_pos, "quote_escape:sym<0>")
+    rx277_cur."!cursor_debug"("PASS  ", "quote_escape:sym<0>", " at pos=", rx277_pos)
+    .return (rx277_cur)
+  rx277_fail:
+.annotate 'line', 33
+    (rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0)
+    lt rx277_pos, -1, rx277_done
+    eq rx277_pos, -1, rx277_fail
+    jump $I10
+  rx277_done:
+    rx277_cur."!cursor_fail"()
+    rx277_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<0>")
+    .return (rx277_cur)
+    .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1275811471.14938") :method
+.annotate 'line', 33
+    new $P279, "ResizablePMCArray"
+    push $P279, "\\0"
+    .return ($P279)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "quote_escape:sym<misc>"  :subid("93_1275811471.14938") :method :outer("11_1275811471.14938")
+.annotate 'line', 33
+    .const 'Sub' $P302 = "97_1275811471.14938" 
+    capture_lex $P302
+    .const 'Sub' $P295 = "96_1275811471.14938" 
+    capture_lex $P295
+    .const 'Sub' $P290 = "95_1275811471.14938" 
+    capture_lex $P290
+    .local string rx283_tgt
+    .local int rx283_pos
+    .local int rx283_off
+    .local int rx283_eos
+    .local int rx283_rep
+    .local pmc rx283_cur
+    (rx283_cur, rx283_pos, rx283_tgt) = self."!cursor_start"()
+    rx283_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
+    .lex unicode:"$\x{a2}", rx283_cur
+    .local pmc match
+    .lex "$/", match
+    length rx283_eos, rx283_tgt
+    gt rx283_pos, rx283_eos, rx283_done
+    set rx283_off, 0
+    lt rx283_pos, 2, rx283_start
+    sub rx283_off, rx283_pos, 1
+    substr rx283_tgt, rx283_tgt, rx283_off
+  rx283_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan286_done
+    goto rxscan286_scan
+  rxscan286_loop:
+    ($P10) = rx283_cur."from"()
+    inc $P10
+    set rx283_pos, $P10
+    ge rx283_pos, rx283_eos, rxscan286_done
+  rxscan286_scan:
+    set_addr $I10, rxscan286_loop
+    rx283_cur."!mark_push"(0, rx283_pos, $I10)
+  rxscan286_done:
 .annotate 'line', 100
-    set_addr $I10, alt287_1
-    rx278_cur."!mark_push"(0, rx278_pos, $I10)
+    rx283_cur."!cursor_pos"(rx283_pos)
+    find_lex $P287, unicode:"$\x{a2}"
+    $P288 = $P287."MATCH"()
+    store_lex "$/", $P288
+    .const 'Sub' $P290 = "95_1275811471.14938" 
+    capture_lex $P290
+    $P291 = $P290()
+  # rx literal  "\\"
+    add $I11, rx283_pos, 1
+    gt $I11, rx283_eos, rx283_fail
+    sub $I11, rx283_pos, rx283_off
+    substr $S10, rx283_tgt, $I11, 1
+    ne $S10, "\\", rx283_fail
+    add rx283_pos, 1
+  alt292_0:
 .annotate 'line', 101
-  # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx278_cur."!cursor_pos"(rx278_pos)
-    $P10 = rx278_cur."quotemod_check"("b")
-    unless $P10, rx278_fail
-  alt288_0:
+    set_addr $I10, alt292_1
+    rx283_cur."!mark_push"(0, rx283_pos, $I10)
 .annotate 'line', 102
-    set_addr $I10, alt288_1
-    rx278_cur."!mark_push"(0, rx278_pos, $I10)
+  # rx subrule "quotemod_check" subtype=zerowidth negate=
+    rx283_cur."!cursor_pos"(rx283_pos)
+    $P10 = rx283_cur."quotemod_check"("b")
+    unless $P10, rx283_fail
+  alt293_0:
 .annotate 'line', 103
-  # rx subrule $P290 subtype=capture negate=
-    rx278_cur."!cursor_pos"(rx278_pos)
-    .const 'Sub' $P290 = "94_1274853022.01464" 
-    capture_lex $P290
-    $P10 = rx278_cur.$P290()
-    unless $P10, rx278_fail
-    rx278_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("textqq")
-    rx278_pos = $P10."pos"()
-    goto alt288_end
-  alt288_1:
+    set_addr $I10, alt293_1
+    rx283_cur."!mark_push"(0, rx283_pos, $I10)
 .annotate 'line', 104
+  # rx subrule $P295 subtype=capture negate=
+    rx283_cur."!cursor_pos"(rx283_pos)
+    .const 'Sub' $P295 = "96_1275811471.14938" 
+    capture_lex $P295
+    $P10 = rx283_cur.$P295()
+    unless $P10, rx283_fail
+    rx283_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("textqq")
+    rx283_pos = $P10."pos"()
+    goto alt293_end
+  alt293_1:
+.annotate 'line', 105
   # rx subcapture "x"
-    set_addr $I10, rxcap_293_fail
-    rx278_cur."!mark_push"(0, rx278_pos, $I10)
+    set_addr $I10, rxcap_298_fail
+    rx283_cur."!mark_push"(0, rx283_pos, $I10)
   # rx charclass w
-    ge rx278_pos, rx278_eos, rx278_fail
-    sub $I10, rx278_pos, rx278_off
-    is_cclass $I11, 8192, rx278_tgt, $I10
-    unless $I11, rx278_fail
-    inc rx278_pos
-    set_addr $I10, rxcap_293_fail
-    ($I12, $I11) = rx278_cur."!mark_peek"($I10)
-    rx278_cur."!cursor_pos"($I11)
-    ($P10) = rx278_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx278_pos, "")
-    rx278_cur."!mark_push"(0, -1, 0, $P10)
+    ge rx283_pos, rx283_eos, rx283_fail
+    sub $I10, rx283_pos, rx283_off
+    is_cclass $I11, 8192, rx283_tgt, $I10
+    unless $I11, rx283_fail
+    inc rx283_pos
+    set_addr $I10, rxcap_298_fail
+    ($I12, $I11) = rx283_cur."!mark_peek"($I10)
+    rx283_cur."!cursor_pos"($I11)
+    ($P10) = rx283_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx283_pos, "")
+    rx283_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("x")
-    goto rxcap_293_done
-  rxcap_293_fail:
-    goto rx278_fail
-  rxcap_293_done:
-    rx278_cur."!cursor_pos"(rx278_pos)
-    find_lex $P294, unicode:"$\x{a2}"
-    $P295 = $P294."MATCH"()
-    store_lex "$/", $P295
-    .const 'Sub' $P297 = "95_1274853022.01464" 
-    capture_lex $P297
-    $P307 = $P297()
-  alt288_end:
-.annotate 'line', 101
-    goto alt287_end
-  alt287_1:
-.annotate 'line', 106
+    goto rxcap_298_done
+  rxcap_298_fail:
+    goto rx283_fail
+  rxcap_298_done:
+    rx283_cur."!cursor_pos"(rx283_pos)
+    find_lex $P299, unicode:"$\x{a2}"
+    $P300 = $P299."MATCH"()
+    store_lex "$/", $P300
+    .const 'Sub' $P302 = "97_1275811471.14938" 
+    capture_lex $P302
+    $P312 = $P302()
+  alt293_end:
+.annotate 'line', 102
+    goto alt292_end
+  alt292_1:
+.annotate 'line', 107
   # rx subcapture "textq"
-    set_addr $I10, rxcap_308_fail
-    rx278_cur."!mark_push"(0, rx278_pos, $I10)
+    set_addr $I10, rxcap_313_fail
+    rx283_cur."!mark_push"(0, rx283_pos, $I10)
   # rx charclass .
-    ge rx278_pos, rx278_eos, rx278_fail
-    inc rx278_pos
-    set_addr $I10, rxcap_308_fail
-    ($I12, $I11) = rx278_cur."!mark_peek"($I10)
-    rx278_cur."!cursor_pos"($I11)
-    ($P10) = rx278_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx278_pos, "")
-    rx278_cur."!mark_push"(0, -1, 0, $P10)
+    ge rx283_pos, rx283_eos, rx283_fail
+    inc rx283_pos
+    set_addr $I10, rxcap_313_fail
+    ($I12, $I11) = rx283_cur."!mark_peek"($I10)
+    rx283_cur."!cursor_pos"($I11)
+    ($P10) = rx283_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx283_pos, "")
+    rx283_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("textq")
-    goto rxcap_308_done
-  rxcap_308_fail:
-    goto rx278_fail
-  rxcap_308_done:
-  alt287_end:
-.annotate 'line', 98
+    goto rxcap_313_done
+  rxcap_313_fail:
+    goto rx283_fail
+  rxcap_313_done:
+  alt292_end:
+.annotate 'line', 99
   # rx pass
-    rx278_cur."!cursor_pass"(rx278_pos, "quote_escape:sym<misc>")
-    rx278_cur."!cursor_debug"("PASS  ", "quote_escape:sym<misc>", " at pos=", rx278_pos)
-    .return (rx278_cur)
-  rx278_fail:
-.annotate 'line', 33
-    (rx278_rep, rx278_pos, $I10, $P10) = rx278_cur."!mark_fail"(0)
-    lt rx278_pos, -1, rx278_done
-    eq rx278_pos, -1, rx278_fail
+    rx283_cur."!cursor_pass"(rx283_pos, "quote_escape:sym<misc>")
+    rx283_cur."!cursor_debug"("PASS  ", "quote_escape:sym<misc>", " at pos=", rx283_pos)
+    .return (rx283_cur)
+  rx283_fail:
+.annotate 'line', 33
+    (rx283_rep, rx283_pos, $I10, $P10) = rx283_cur."!mark_fail"(0)
+    lt rx283_pos, -1, rx283_done
+    eq rx283_pos, -1, rx283_fail
     jump $I10
-  rx278_done:
-    rx278_cur."!cursor_fail"()
-    rx278_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<misc>")
-    .return (rx278_cur)
+  rx283_done:
+    rx283_cur."!cursor_fail"()
+    rx283_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<misc>")
+    .return (rx283_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("92_1274853022.01464") :method
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1275811471.14938") :method
 .annotate 'line', 33
-    new $P280, "ResizablePMCArray"
-    push $P280, ""
-    .return ($P280)
+    new $P285, "ResizablePMCArray"
+    push $P285, ""
+    .return ($P285)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block284"  :anon :subid("93_1274853022.01464") :outer("91_1274853022.01464")
-.annotate 'line', 99
+.sub "_block289"  :anon :subid("95_1275811471.14938") :outer("93_1275811471.14938")
+.annotate 'line', 100
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block289"  :anon :subid("94_1274853022.01464") :method :outer("91_1274853022.01464")
-.annotate 'line', 103
-    .local string rx291_tgt
-    .local int rx291_pos
-    .local int rx291_off
-    .local int rx291_eos
-    .local int rx291_rep
-    .local pmc rx291_cur
-    (rx291_cur, rx291_pos, rx291_tgt) = self."!cursor_start"()
-    rx291_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx291_cur
+.sub "_block294"  :anon :subid("96_1275811471.14938") :method :outer("93_1275811471.14938")
+.annotate 'line', 104
+    .local string rx296_tgt
+    .local int rx296_pos
+    .local int rx296_off
+    .local int rx296_eos
+    .local int rx296_rep
+    .local pmc rx296_cur
+    (rx296_cur, rx296_pos, rx296_tgt) = self."!cursor_start"()
+    rx296_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx296_cur
     .local pmc match
     .lex "$/", match
-    length rx291_eos, rx291_tgt
-    set rx291_off, 0
-    lt rx291_pos, 2, rx291_start
-    sub rx291_off, rx291_pos, 1
-    substr rx291_tgt, rx291_tgt, rx291_off
-  rx291_start:
+    length rx296_eos, rx296_tgt
+    gt rx296_pos, rx296_eos, rx296_done
+    set rx296_off, 0
+    lt rx296_pos, 2, rx296_start
+    sub rx296_off, rx296_pos, 1
+    substr rx296_tgt, rx296_tgt, rx296_off
+  rx296_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan292_done
-    goto rxscan292_scan
-  rxscan292_loop:
-    ($P10) = rx291_cur."from"()
+    ne $I10, -1, rxscan297_done
+    goto rxscan297_scan
+  rxscan297_loop:
+    ($P10) = rx296_cur."from"()
     inc $P10
-    set rx291_pos, $P10
-    ge rx291_pos, rx291_eos, rxscan292_done
-  rxscan292_scan:
-    set_addr $I10, rxscan292_loop
-    rx291_cur."!mark_push"(0, rx291_pos, $I10)
-  rxscan292_done:
+    set rx296_pos, $P10
+    ge rx296_pos, rx296_eos, rxscan297_done
+  rxscan297_scan:
+    set_addr $I10, rxscan297_loop
+    rx296_cur."!mark_push"(0, rx296_pos, $I10)
+  rxscan297_done:
   # rx charclass W
-    ge rx291_pos, rx291_eos, rx291_fail
-    sub $I10, rx291_pos, rx291_off
-    is_cclass $I11, 8192, rx291_tgt, $I10
-    if $I11, rx291_fail
-    inc rx291_pos
+    ge rx296_pos, rx296_eos, rx296_fail
+    sub $I10, rx296_pos, rx296_off
+    is_cclass $I11, 8192, rx296_tgt, $I10
+    if $I11, rx296_fail
+    inc rx296_pos
   # rx pass
-    rx291_cur."!cursor_pass"(rx291_pos, "")
-    rx291_cur."!cursor_debug"("PASS  ", "", " at pos=", rx291_pos)
-    .return (rx291_cur)
-  rx291_fail:
-    (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0)
-    lt rx291_pos, -1, rx291_done
-    eq rx291_pos, -1, rx291_fail
+    rx296_cur."!cursor_pass"(rx296_pos, "")
+    rx296_cur."!cursor_debug"("PASS  ", "", " at pos=", rx296_pos)
+    .return (rx296_cur)
+  rx296_fail:
+    (rx296_rep, rx296_pos, $I10, $P10) = rx296_cur."!mark_fail"(0)
+    lt rx296_pos, -1, rx296_done
+    eq rx296_pos, -1, rx296_fail
     jump $I10
-  rx291_done:
-    rx291_cur."!cursor_fail"()
-    rx291_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx291_cur)
+  rx296_done:
+    rx296_cur."!cursor_fail"()
+    rx296_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx296_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block296"  :anon :subid("95_1274853022.01464") :outer("91_1274853022.01464")
-.annotate 'line', 104
-    find_lex $P298, "$/"
-    $P299 = $P298."CURSOR"()
-    new $P300, "String"
-    assign $P300, "Unrecognized backslash sequence: '\\"
-    find_lex $P301, "$/"
-    unless_null $P301, vivify_106
-    $P301 = root_new ['parrot';'Hash']
-  vivify_106:
-    set $P302, $P301["x"]
-    unless_null $P302, vivify_107
-    new $P302, "Undef"
-  vivify_107:
-    $S303 = $P302."Str"()
-    concat $P304, $P300, $S303
-    concat $P305, $P304, "'"
-    $P306 = $P299."panic"($P305)
-    .return ($P306)
+.sub "_block301"  :anon :subid("97_1275811471.14938") :outer("93_1275811471.14938")
+.annotate 'line', 105
+    find_lex $P303, "$/"
+    $P304 = $P303."CURSOR"()
+    new $P305, "String"
+    assign $P305, "Unrecognized backslash sequence: '\\"
+    find_lex $P306, "$/"
+    unless_null $P306, vivify_108
+    $P306 = root_new ['parrot';'Hash']
+  vivify_108:
+    set $P307, $P306["x"]
+    unless_null $P307, vivify_109
+    new $P307, "Undef"
+  vivify_109:
+    $S308 = $P307."Str"()
+    concat $P309, $P305, $S308
+    concat $P310, $P309, "'"
+    $P311 = $P304."panic"($P310)
+    .return ($P311)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("96_1274853022.01464") :method :outer("11_1274853022.01464")
-.annotate 'line', 33
-    .const 'Sub' $P319 = "98_1274853022.01464" 
-    capture_lex $P319
-    .local string rx310_tgt
-    .local int rx310_pos
-    .local int rx310_off
-    .local int rx310_eos
-    .local int rx310_rep
-    .local pmc rx310_cur
-    (rx310_cur, rx310_pos, rx310_tgt) = self."!cursor_start"()
-    rx310_cur."!cursor_debug"("START ", "charname")
-    .lex unicode:"$\x{a2}", rx310_cur
+.sub "charname"  :subid("98_1275811471.14938") :method :outer("11_1275811471.14938")
+.annotate 'line', 33
+    .const 'Sub' $P324 = "100_1275811471.14938" 
+    capture_lex $P324
+    .local string rx315_tgt
+    .local int rx315_pos
+    .local int rx315_off
+    .local int rx315_eos
+    .local int rx315_rep
+    .local pmc rx315_cur
+    (rx315_cur, rx315_pos, rx315_tgt) = self."!cursor_start"()
+    rx315_cur."!cursor_debug"("START ", "charname")
+    .lex unicode:"$\x{a2}", rx315_cur
     .local pmc match
     .lex "$/", match
-    length rx310_eos, rx310_tgt
-    set rx310_off, 0
-    lt rx310_pos, 2, rx310_start
-    sub rx310_off, rx310_pos, 1
-    substr rx310_tgt, rx310_tgt, rx310_off
-  rx310_start:
+    length rx315_eos, rx315_tgt
+    gt rx315_pos, rx315_eos, rx315_done
+    set rx315_off, 0
+    lt rx315_pos, 2, rx315_start
+    sub rx315_off, rx315_pos, 1
+    substr rx315_tgt, rx315_tgt, rx315_off
+  rx315_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan314_done
-    goto rxscan314_scan
-  rxscan314_loop:
-    ($P10) = rx310_cur."from"()
+    ne $I10, -1, rxscan319_done
+    goto rxscan319_scan
+  rxscan319_loop:
+    ($P10) = rx315_cur."from"()
     inc $P10
-    set rx310_pos, $P10
-    ge rx310_pos, rx310_eos, rxscan314_done
-  rxscan314_scan:
-    set_addr $I10, rxscan314_loop
-    rx310_cur."!mark_push"(0, rx310_pos, $I10)
-  rxscan314_done:
-  alt315_0:
-.annotate 'line', 110
-    set_addr $I10, alt315_1
-    rx310_cur."!mark_push"(0, rx310_pos, $I10)
+    set rx315_pos, $P10
+    ge rx315_pos, rx315_eos, rxscan319_done
+  rxscan319_scan:
+    set_addr $I10, rxscan319_loop
+    rx315_cur."!mark_push"(0, rx315_pos, $I10)
+  rxscan319_done:
+  alt320_0:
 .annotate 'line', 111
+    set_addr $I10, alt320_1
+    rx315_cur."!mark_push"(0, rx315_pos, $I10)
+.annotate 'line', 112
   # rx subrule "integer" subtype=capture negate=
-    rx310_cur."!cursor_pos"(rx310_pos)
-    $P10 = rx310_cur."integer"()
-    unless $P10, rx310_fail
-    rx310_cur."!mark_push"(0, -1, 0, $P10)
+    rx315_cur."!cursor_pos"(rx315_pos)
+    $P10 = rx315_cur."integer"()
+    unless $P10, rx315_fail
+    rx315_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("integer")
-    rx310_pos = $P10."pos"()
-    goto alt315_end
-  alt315_1:
-.annotate 'line', 112
+    rx315_pos = $P10."pos"()
+    goto alt320_end
+  alt320_1:
+.annotate 'line', 113
   # rx enumcharlist negate=0 
-    ge rx310_pos, rx310_eos, rx310_fail
-    sub $I10, rx310_pos, rx310_off
-    substr $S10, rx310_tgt, $I10, 1
+    ge rx315_pos, rx315_eos, rx315_fail
+    sub $I10, rx315_pos, rx315_off
+    substr $S10, rx315_tgt, $I10, 1
     index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
-    lt $I11, 0, rx310_fail
-    inc rx310_pos
-  # rx rxquantf316 ** 0..*
-    set_addr $I10, rxquantf316_loop
-    rx310_cur."!mark_push"(0, rx310_pos, $I10)
-    goto rxquantf316_done
-  rxquantf316_loop:
+    lt $I11, 0, rx315_fail
+    inc rx315_pos
+  # rx rxquantf321 ** 0..*
+    set_addr $I10, rxquantf321_loop
+    rx315_cur."!mark_push"(0, rx315_pos, $I10)
+    goto rxquantf321_done
+  rxquantf321_loop:
   # rx enumcharlist negate=1 
-    ge rx310_pos, rx310_eos, rx310_fail
-    sub $I10, rx310_pos, rx310_off
-    substr $S10, rx310_tgt, $I10, 1
+    ge rx315_pos, rx315_eos, rx315_fail
+    sub $I10, rx315_pos, rx315_off
+    substr $S10, rx315_tgt, $I10, 1
     index $I11, "],#", $S10
-    ge $I11, 0, rx310_fail
-    inc rx310_pos
-    set_addr $I10, rxquantf316_loop
-    rx310_cur."!mark_push"($I317, rx310_pos, $I10)
-  rxquantf316_done:
+    ge $I11, 0, rx315_fail
+    inc rx315_pos
+    set_addr $I10, rxquantf321_loop
+    rx315_cur."!mark_push"($I322, rx315_pos, $I10)
+  rxquantf321_done:
   # rx enumcharlist negate=0 
-    ge rx310_pos, rx310_eos, rx310_fail
-    sub $I10, rx310_pos, rx310_off
-    substr $S10, rx310_tgt, $I10, 1
+    ge rx315_pos, rx315_eos, rx315_fail
+    sub $I10, rx315_pos, rx315_off
+    substr $S10, rx315_tgt, $I10, 1
     index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)", $S10
-    lt $I11, 0, rx310_fail
-    inc rx310_pos
-.annotate 'line', 113
+    lt $I11, 0, rx315_fail
+    inc rx315_pos
+.annotate 'line', 114
   # rx subrule "before" subtype=zerowidth negate=
-    rx310_cur."!cursor_pos"(rx310_pos)
-    .const 'Sub' $P319 = "98_1274853022.01464" 
-    capture_lex $P319
-    $P10 = rx310_cur."before"($P319)
-    unless $P10, rx310_fail
-  alt315_end:
-.annotate 'line', 110
+    rx315_cur."!cursor_pos"(rx315_pos)
+    .const 'Sub' $P324 = "100_1275811471.14938" 
+    capture_lex $P324
+    $P10 = rx315_cur."before"($P324)
+    unless $P10, rx315_fail
+  alt320_end:
+.annotate 'line', 111
   # rx pass
-    rx310_cur."!cursor_pass"(rx310_pos, "charname")
-    rx310_cur."!cursor_debug"("PASS  ", "charname", " at pos=", rx310_pos)
-    .return (rx310_cur)
-  rx310_fail:
-.annotate 'line', 33
-    (rx310_rep, rx310_pos, $I10, $P10) = rx310_cur."!mark_fail"(0)
-    lt rx310_pos, -1, rx310_done
-    eq rx310_pos, -1, rx310_fail
+    rx315_cur."!cursor_pass"(rx315_pos, "charname")
+    rx315_cur."!cursor_debug"("PASS  ", "charname", " at pos=", rx315_pos)
+    .return (rx315_cur)
+  rx315_fail:
+.annotate 'line', 33
+    (rx315_rep, rx315_pos, $I10, $P10) = rx315_cur."!mark_fail"(0)
+    lt rx315_pos, -1, rx315_done
+    eq rx315_pos, -1, rx315_fail
     jump $I10
-  rx310_done:
-    rx310_cur."!cursor_fail"()
-    rx310_cur."!cursor_debug"("FAIL  ", "charname")
-    .return (rx310_cur)
+  rx315_done:
+    rx315_cur."!cursor_fail"()
+    rx315_cur."!cursor_debug"("FAIL  ", "charname")
+    .return (rx315_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("97_1274853022.01464") :method
-.annotate 'line', 33
-    $P312 = self."!PREFIX__!subrule"("integer", "")
-    new $P313, "ResizablePMCArray"
-    push $P313, "Z"
-    push $P313, "Y"
-    push $P313, "X"
-    push $P313, "W"
-    push $P313, "V"
-    push $P313, "U"
-    push $P313, "T"
-    push $P313, "S"
-    push $P313, "R"
-    push $P313, "Q"
-    push $P313, "P"
-    push $P313, "O"
-    push $P313, "N"
-    push $P313, "M"
-    push $P313, "L"
-    push $P313, "K"
-    push $P313, "J"
-    push $P313, "I"
-    push $P313, "H"
-    push $P313, "G"
-    push $P313, "F"
-    push $P313, "E"
-    push $P313, "D"
-    push $P313, "C"
-    push $P313, "B"
-    push $P313, "A"
-    push $P313, "z"
-    push $P313, "y"
-    push $P313, "x"
-    push $P313, "w"
-    push $P313, "v"
-    push $P313, "u"
-    push $P313, "t"
-    push $P313, "s"
-    push $P313, "r"
-    push $P313, "q"
-    push $P313, "p"
-    push $P313, "o"
-    push $P313, "n"
-    push $P313, "m"
-    push $P313, "l"
-    push $P313, "k"
-    push $P313, "j"
-    push $P313, "i"
-    push $P313, "h"
-    push $P313, "g"
-    push $P313, "f"
-    push $P313, "e"
-    push $P313, "d"
-    push $P313, "c"
-    push $P313, "b"
-    push $P313, "a"
-    push $P313, $P312
-    .return ($P313)
+.sub "!PREFIX__charname"  :subid("99_1275811471.14938") :method
+.annotate 'line', 33
+    $P317 = self."!PREFIX__!subrule"("integer", "")
+    new $P318, "ResizablePMCArray"
+    push $P318, "Z"
+    push $P318, "Y"
+    push $P318, "X"
+    push $P318, "W"
+    push $P318, "V"
+    push $P318, "U"
+    push $P318, "T"
+    push $P318, "S"
+    push $P318, "R"
+    push $P318, "Q"
+    push $P318, "P"
+    push $P318, "O"
+    push $P318, "N"
+    push $P318, "M"
+    push $P318, "L"
+    push $P318, "K"
+    push $P318, "J"
+    push $P318, "I"
+    push $P318, "H"
+    push $P318, "G"
+    push $P318, "F"
+    push $P318, "E"
+    push $P318, "D"
+    push $P318, "C"
+    push $P318, "B"
+    push $P318, "A"
+    push $P318, "z"
+    push $P318, "y"
+    push $P318, "x"
+    push $P318, "w"
+    push $P318, "v"
+    push $P318, "u"
+    push $P318, "t"
+    push $P318, "s"
+    push $P318, "r"
+    push $P318, "q"
+    push $P318, "p"
+    push $P318, "o"
+    push $P318, "n"
+    push $P318, "m"
+    push $P318, "l"
+    push $P318, "k"
+    push $P318, "j"
+    push $P318, "i"
+    push $P318, "h"
+    push $P318, "g"
+    push $P318, "f"
+    push $P318, "e"
+    push $P318, "d"
+    push $P318, "c"
+    push $P318, "b"
+    push $P318, "a"
+    push $P318, $P317
+    .return ($P318)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block318"  :anon :subid("98_1274853022.01464") :method :outer("96_1274853022.01464")
-.annotate 'line', 113
-    .local string rx320_tgt
-    .local int rx320_pos
-    .local int rx320_off
-    .local int rx320_eos
-    .local int rx320_rep
-    .local pmc rx320_cur
-    (rx320_cur, rx320_pos, rx320_tgt) = self."!cursor_start"()
-    rx320_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx320_cur
+.sub "_block323"  :anon :subid("100_1275811471.14938") :method :outer("98_1275811471.14938")
+.annotate 'line', 114
+    .local string rx325_tgt
+    .local int rx325_pos
+    .local int rx325_off
+    .local int rx325_eos
+    .local int rx325_rep
+    .local pmc rx325_cur
+    (rx325_cur, rx325_pos, rx325_tgt) = self."!cursor_start"()
+    rx325_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx325_cur
     .local pmc match
     .lex "$/", match
-    length rx320_eos, rx320_tgt
-    set rx320_off, 0
-    lt rx320_pos, 2, rx320_start
-    sub rx320_off, rx320_pos, 1
-    substr rx320_tgt, rx320_tgt, rx320_off
-  rx320_start:
+    length rx325_eos, rx325_tgt
+    gt rx325_pos, rx325_eos, rx325_done
+    set rx325_off, 0
+    lt rx325_pos, 2, rx325_start
+    sub rx325_off, rx325_pos, 1
+    substr rx325_tgt, rx325_tgt, rx325_off
+  rx325_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan321_done
-    goto rxscan321_scan
-  rxscan321_loop:
-    ($P10) = rx320_cur."from"()
+    ne $I10, -1, rxscan326_done
+    goto rxscan326_scan
+  rxscan326_loop:
+    ($P10) = rx325_cur."from"()
     inc $P10
-    set rx320_pos, $P10
-    ge rx320_pos, rx320_eos, rxscan321_done
-  rxscan321_scan:
-    set_addr $I10, rxscan321_loop
-    rx320_cur."!mark_push"(0, rx320_pos, $I10)
-  rxscan321_done:
+    set rx325_pos, $P10
+    ge rx325_pos, rx325_eos, rxscan326_done
+  rxscan326_scan:
+    set_addr $I10, rxscan326_loop
+    rx325_cur."!mark_push"(0, rx325_pos, $I10)
+  rxscan326_done:
   # rx charclass_q s r 0..-1
-    sub $I10, rx320_pos, rx320_off
-    find_not_cclass $I11, 32, rx320_tgt, $I10, rx320_eos
-    add rx320_pos, rx320_off, $I11
+    sub $I10, rx325_pos, rx325_off
+    find_not_cclass $I11, 32, rx325_tgt, $I10, rx325_eos
+    add rx325_pos, rx325_off, $I11
   # rx enumcharlist negate=0 
-    ge rx320_pos, rx320_eos, rx320_fail
-    sub $I10, rx320_pos, rx320_off
-    substr $S10, rx320_tgt, $I10, 1
+    ge rx325_pos, rx325_eos, rx325_fail
+    sub $I10, rx325_pos, rx325_off
+    substr $S10, rx325_tgt, $I10, 1
     index $I11, "],#", $S10
-    lt $I11, 0, rx320_fail
-    inc rx320_pos
+    lt $I11, 0, rx325_fail
+    inc rx325_pos
   # rx pass
-    rx320_cur."!cursor_pass"(rx320_pos, "")
-    rx320_cur."!cursor_debug"("PASS  ", "", " at pos=", rx320_pos)
-    .return (rx320_cur)
-  rx320_fail:
-    (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0)
-    lt rx320_pos, -1, rx320_done
-    eq rx320_pos, -1, rx320_fail
+    rx325_cur."!cursor_pass"(rx325_pos, "")
+    rx325_cur."!cursor_debug"("PASS  ", "", " at pos=", rx325_pos)
+    .return (rx325_cur)
+  rx325_fail:
+    (rx325_rep, rx325_pos, $I10, $P10) = rx325_cur."!mark_fail"(0)
+    lt rx325_pos, -1, rx325_done
+    eq rx325_pos, -1, rx325_fail
     jump $I10
-  rx320_done:
-    rx320_cur."!cursor_fail"()
-    rx320_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx320_cur)
+  rx325_done:
+    rx325_cur."!cursor_fail"()
+    rx325_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx325_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("99_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "charnames"  :subid("101_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
-    .local string rx323_tgt
-    .local int rx323_pos
-    .local int rx323_off
-    .local int rx323_eos
-    .local int rx323_rep
-    .local pmc rx323_cur
-    (rx323_cur, rx323_pos, rx323_tgt) = self."!cursor_start"()
-    rx323_cur."!cursor_debug"("START ", "charnames")
-    rx323_cur."!cursor_caparray"("charname")
-    .lex unicode:"$\x{a2}", rx323_cur
+    .local string rx328_tgt
+    .local int rx328_pos
+    .local int rx328_off
+    .local int rx328_eos
+    .local int rx328_rep
+    .local pmc rx328_cur
+    (rx328_cur, rx328_pos, rx328_tgt) = self."!cursor_start"()
+    rx328_cur."!cursor_debug"("START ", "charnames")
+    rx328_cur."!cursor_caparray"("charname")
+    .lex unicode:"$\x{a2}", rx328_cur
     .local pmc match
     .lex "$/", match
-    length rx323_eos, rx323_tgt
-    set rx323_off, 0
-    lt rx323_pos, 2, rx323_start
-    sub rx323_off, rx323_pos, 1
-    substr rx323_tgt, rx323_tgt, rx323_off
-  rx323_start:
+    length rx328_eos, rx328_tgt
+    gt rx328_pos, rx328_eos, rx328_done
+    set rx328_off, 0
+    lt rx328_pos, 2, rx328_start
+    sub rx328_off, rx328_pos, 1
+    substr rx328_tgt, rx328_tgt, rx328_off
+  rx328_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan326_done
-    goto rxscan326_scan
-  rxscan326_loop:
-    ($P10) = rx323_cur."from"()
+    ne $I10, -1, rxscan331_done
+    goto rxscan331_scan
+  rxscan331_loop:
+    ($P10) = rx328_cur."from"()
     inc $P10
-    set rx323_pos, $P10
-    ge rx323_pos, rx323_eos, rxscan326_done
-  rxscan326_scan:
-    set_addr $I10, rxscan326_loop
-    rx323_cur."!mark_push"(0, rx323_pos, $I10)
-  rxscan326_done:
-.annotate 'line', 115
-  # rx rxquantr327 ** 1..*
-    set_addr $I328, rxquantr327_done
-    rx323_cur."!mark_push"(0, -1, $I328)
-  rxquantr327_loop:
+    set rx328_pos, $P10
+    ge rx328_pos, rx328_eos, rxscan331_done
+  rxscan331_scan:
+    set_addr $I10, rxscan331_loop
+    rx328_cur."!mark_push"(0, rx328_pos, $I10)
+  rxscan331_done:
+.annotate 'line', 116
+  # rx rxquantr332 ** 1..*
+    set_addr $I333, rxquantr332_done
+    rx328_cur."!mark_push"(0, -1, $I333)
+  rxquantr332_loop:
   # rx subrule "ws" subtype=method negate=
-    rx323_cur."!cursor_pos"(rx323_pos)
-    $P10 = rx323_cur."ws"()
-    unless $P10, rx323_fail
-    rx323_pos = $P10."pos"()
+    rx328_cur."!cursor_pos"(rx328_pos)
+    $P10 = rx328_cur."ws"()
+    unless $P10, rx328_fail
+    rx328_pos = $P10."pos"()
   # rx subrule "charname" subtype=capture negate=
-    rx323_cur."!cursor_pos"(rx323_pos)
-    $P10 = rx323_cur."charname"()
-    unless $P10, rx323_fail
-    rx323_cur."!mark_push"(0, -1, 0, $P10)
+    rx328_cur."!cursor_pos"(rx328_pos)
+    $P10 = rx328_cur."charname"()
+    unless $P10, rx328_fail
+    rx328_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charname")
-    rx323_pos = $P10."pos"()
+    rx328_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx323_cur."!cursor_pos"(rx323_pos)
-    $P10 = rx323_cur."ws"()
-    unless $P10, rx323_fail
-    rx323_pos = $P10."pos"()
-    (rx323_rep) = rx323_cur."!mark_commit"($I328)
-    rx323_cur."!mark_push"(rx323_rep, rx323_pos, $I328)
+    rx328_cur."!cursor_pos"(rx328_pos)
+    $P10 = rx328_cur."ws"()
+    unless $P10, rx328_fail
+    rx328_pos = $P10."pos"()
+    (rx328_rep) = rx328_cur."!mark_commit"($I333)
+    rx328_cur."!mark_push"(rx328_rep, rx328_pos, $I333)
   # rx literal  ","
-    add $I11, rx323_pos, 1
-    gt $I11, rx323_eos, rx323_fail
-    sub $I11, rx323_pos, rx323_off
-    substr $S10, rx323_tgt, $I11, 1
-    ne $S10, ",", rx323_fail
-    add rx323_pos, 1
-    goto rxquantr327_loop
-  rxquantr327_done:
+    add $I11, rx328_pos, 1
+    gt $I11, rx328_eos, rx328_fail
+    sub $I11, rx328_pos, rx328_off
+    substr $S10, rx328_tgt, $I11, 1
+    ne $S10, ",", rx328_fail
+    add rx328_pos, 1
+    goto rxquantr332_loop
+  rxquantr332_done:
   # rx pass
-    rx323_cur."!cursor_pass"(rx323_pos, "charnames")
-    rx323_cur."!cursor_debug"("PASS  ", "charnames", " at pos=", rx323_pos)
-    .return (rx323_cur)
-  rx323_fail:
-.annotate 'line', 33
-    (rx323_rep, rx323_pos, $I10, $P10) = rx323_cur."!mark_fail"(0)
-    lt rx323_pos, -1, rx323_done
-    eq rx323_pos, -1, rx323_fail
+    rx328_cur."!cursor_pass"(rx328_pos, "charnames")
+    rx328_cur."!cursor_debug"("PASS  ", "charnames", " at pos=", rx328_pos)
+    .return (rx328_cur)
+  rx328_fail:
+.annotate 'line', 33
+    (rx328_rep, rx328_pos, $I10, $P10) = rx328_cur."!mark_fail"(0)
+    lt rx328_pos, -1, rx328_done
+    eq rx328_pos, -1, rx328_fail
     jump $I10
-  rx323_done:
-    rx323_cur."!cursor_fail"()
-    rx323_cur."!cursor_debug"("FAIL  ", "charnames")
-    .return (rx323_cur)
+  rx328_done:
+    rx328_cur."!cursor_fail"()
+    rx328_cur."!cursor_debug"("FAIL  ", "charnames")
+    .return (rx328_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("100_1274853022.01464") :method
+.sub "!PREFIX__charnames"  :subid("102_1275811471.14938") :method
 .annotate 'line', 33
-    new $P325, "ResizablePMCArray"
-    push $P325, ""
-    .return ($P325)
+    new $P330, "ResizablePMCArray"
+    push $P330, ""
+    .return ($P330)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("101_1274853022.01464") :method :outer("11_1274853022.01464")
+.sub "charspec"  :subid("103_1275811471.14938") :method :outer("11_1275811471.14938")
 .annotate 'line', 33
-    .local string rx330_tgt
-    .local int rx330_pos
-    .local int rx330_off
-    .local int rx330_eos
-    .local int rx330_rep
-    .local pmc rx330_cur
-    (rx330_cur, rx330_pos, rx330_tgt) = self."!cursor_start"()
-    rx330_cur."!cursor_debug"("START ", "charspec")
-    .lex unicode:"$\x{a2}", rx330_cur
+    .local string rx335_tgt
+    .local int rx335_pos
+    .local int rx335_off
+    .local int rx335_eos
+    .local int rx335_rep
+    .local pmc rx335_cur
+    (rx335_cur, rx335_pos, rx335_tgt) = self."!cursor_start"()
+    rx335_cur."!cursor_debug"("START ", "charspec")
+    .lex unicode:"$\x{a2}", rx335_cur
     .local pmc match
     .lex "$/", match
-    length rx330_eos, rx330_tgt
-    set rx330_off, 0
-    lt rx330_pos, 2, rx330_start
-    sub rx330_off, rx330_pos, 1
-    substr rx330_tgt, rx330_tgt, rx330_off
-  rx330_start:
+    length rx335_eos, rx335_tgt
+    gt rx335_pos, rx335_eos, rx335_done
+    set rx335_off, 0
+    lt rx335_pos, 2, rx335_start
+    sub rx335_off, rx335_pos, 1
+    substr rx335_tgt, rx335_tgt, rx335_off
+  rx335_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan335_done
-    goto rxscan335_scan
-  rxscan335_loop:
-    ($P10) = rx330_cur."from"()
+    ne $I10, -1, rxscan340_done
+    goto rxscan340_scan
+  rxscan340_loop:
+    ($P10) = rx335_cur."from"()
     inc $P10
-    set rx330_pos, $P10
-    ge rx330_pos, rx330_eos, rxscan335_done
-  rxscan335_scan:
-    set_addr $I10, rxscan335_loop
-    rx330_cur."!mark_push"(0, rx330_pos, $I10)
-  rxscan335_done:
-  alt336_0:
-.annotate 'line', 117
-    set_addr $I10, alt336_1
-    rx330_cur."!mark_push"(0, rx330_pos, $I10)
+    set rx335_pos, $P10
+    ge rx335_pos, rx335_eos, rxscan340_done
+  rxscan340_scan:
+    set_addr $I10, rxscan340_loop
+    rx335_cur."!mark_push"(0, rx335_pos, $I10)
+  rxscan340_done:
+  alt341_0:
 .annotate 'line', 118
+    set_addr $I10, alt341_1
+    rx335_cur."!mark_push"(0, rx335_pos, $I10)
+.annotate 'line', 119
   # rx literal  "["
-    add $I11, rx330_pos, 1
-    gt $I11, rx330_eos, rx330_fail
-    sub $I11, rx330_pos, rx330_off
-    substr $S10, rx330_tgt, $I11, 1
-    ne $S10, "[", rx330_fail
-    add rx330_pos, 1
+    add $I11, rx335_pos, 1
+    gt $I11, rx335_eos, rx335_fail
+    sub $I11, rx335_pos, rx335_off
+    substr $S10, rx335_tgt, $I11, 1
+    ne $S10, "[", rx335_fail
+    add rx335_pos, 1
   # rx subrule "charnames" subtype=capture negate=
-    rx330_cur."!cursor_pos"(rx330_pos)
-    $P10 = rx330_cur."charnames"()
-    unless $P10, rx330_fail
-    rx330_cur."!mark_push"(0, -1, 0, $P10)
+    rx335_cur."!cursor_pos"(rx335_pos)
+    $P10 = rx335_cur."charnames"()
+    unless $P10, rx335_fail
+    rx335_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charnames")
-    rx330_pos = $P10."pos"()
+    rx335_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx330_pos, 1
-    gt $I11, rx330_eos, rx330_fail
-    sub $I11, rx330_pos, rx330_off
-    substr $S10, rx330_tgt, $I11, 1
-    ne $S10, "]", rx330_fail
-    add rx330_pos, 1
-    goto alt336_end
-  alt336_1:
-    set_addr $I10, alt336_2
-    rx330_cur."!mark_push"(0, rx330_pos, $I10)
-.annotate 'line', 119
+    add $I11, rx335_pos, 1
+    gt $I11, rx335_eos, rx335_fail
+    sub $I11, rx335_pos, rx335_off
+    substr $S10, rx335_tgt, $I11, 1
+    ne $S10, "]", rx335_fail
+    add rx335_pos, 1
+    goto alt341_end
+  alt341_1:
+    set_addr $I10, alt341_2
+    rx335_cur."!mark_push"(0, rx335_pos, $I10)
+.annotate 'line', 120
   # rx charclass_q d r 1..-1
-    sub $I10, rx330_pos, rx330_off
-    find_not_cclass $I11, 8, rx330_tgt, $I10, rx330_eos
+    sub $I10, rx335_pos, rx335_off
+    find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx330_fail
-    add rx330_pos, rx330_off, $I11
-  # rx rxquantr337 ** 0..*
-    set_addr $I338, rxquantr337_done
-    rx330_cur."!mark_push"(0, rx330_pos, $I338)
-  rxquantr337_loop:
+    lt $I11, $I12, rx335_fail
+    add rx335_pos, rx335_off, $I11
+  # rx rxquantr342 ** 0..*
+    set_addr $I343, rxquantr342_done
+    rx335_cur."!mark_push"(0, rx335_pos, $I343)
+  rxquantr342_loop:
   # rx literal  "_"
-    add $I11, rx330_pos, 1
-    gt $I11, rx330_eos, rx330_fail
-    sub $I11, rx330_pos, rx330_off
-    substr $S10, rx330_tgt, $I11, 1
-    ne $S10, "_", rx330_fail
-    add rx330_pos, 1
+    add $I11, rx335_pos, 1
+    gt $I11, rx335_eos, rx335_fail
+    sub $I11, rx335_pos, rx335_off
+    substr $S10, rx335_tgt, $I11, 1
+    ne $S10, "_", rx335_fail
+    add rx335_pos, 1
   # rx charclass_q d r 1..-1
-    sub $I10, rx330_pos, rx330_off
-    find_not_cclass $I11, 8, rx330_tgt, $I10, rx330_eos
+    sub $I10, rx335_pos, rx335_off
+    find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx330_fail
-    add rx330_pos, rx330_off, $I11
-    (rx330_rep) = rx330_cur."!mark_commit"($I338)
-    rx330_cur."!mark_push"(rx330_rep, rx330_pos, $I338)
-    goto rxquantr337_loop
-  rxquantr337_done:
-    goto alt336_end
-  alt336_2:
-    set_addr $I10, alt336_3
-    rx330_cur."!mark_push"(0, rx330_pos, $I10)
-.annotate 'line', 120
+    lt $I11, $I12, rx335_fail
+    add rx335_pos, rx335_off, $I11
+    (rx335_rep) = rx335_cur."!mark_commit"($I343)
+    rx335_cur."!mark_push"(rx335_rep, rx335_pos, $I343)
+    goto rxquantr342_loop
+  rxquantr342_done:
+    goto alt341_end
+  alt341_2:
+    set_addr $I10, alt341_3
+    rx335_cur."!mark_push"(0, rx335_pos, $I10)
+.annotate 'line', 121
   # rx enumcharlist negate=0 
-    ge rx330_pos, rx330_eos, rx330_fail
-    sub $I10, rx330_pos, rx330_off
-    substr $S10, rx330_tgt, $I10, 1
+    ge rx335_pos, rx335_eos, rx335_fail
+    sub $I10, rx335_pos, rx335_off
+    substr $S10, rx335_tgt, $I10, 1
     index $I11, "?@ABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
-    lt $I11, 0, rx330_fail
-    inc rx330_pos
-    goto alt336_end
-  alt336_3:
-.annotate 'line', 121
+    lt $I11, 0, rx335_fail
+    inc rx335_pos
+    goto alt341_end
+  alt341_3:
+.annotate 'line', 122
   # rx subrule "panic" subtype=method negate=
-    rx330_cur."!cursor_pos"(rx330_pos)
-    $P10 = rx330_cur."panic"("Unrecognized \\c character")
-    unless $P10, rx330_fail
-    rx330_pos = $P10."pos"()
-  alt336_end:
-.annotate 'line', 116
+    rx335_cur."!cursor_pos"(rx335_pos)
+    $P10 = rx335_cur."panic"("Unrecognized \\c character")
+    unless $P10, rx335_fail
+    rx335_pos = $P10."pos"()
+  alt341_end:
+.annotate 'line', 117
   # rx pass
-    rx330_cur."!cursor_pass"(rx330_pos, "charspec")
-    rx330_cur."!cursor_debug"("PASS  ", "charspec", " at pos=", rx330_pos)
-    .return (rx330_cur)
-  rx330_fail:
-.annotate 'line', 33
-    (rx330_rep, rx330_pos, $I10, $P10) = rx330_cur."!mark_fail"(0)
-    lt rx330_pos, -1, rx330_done
-    eq rx330_pos, -1, rx330_fail
+    rx335_cur."!cursor_pass"(rx335_pos, "charspec")
+    rx335_cur."!cursor_debug"("PASS  ", "charspec", " at pos=", rx335_pos)
+    .return (rx335_cur)
+  rx335_fail:
+.annotate 'line', 33
+    (rx335_rep, rx335_pos, $I10, $P10) = rx335_cur."!mark_fail"(0)
+    lt rx335_pos, -1, rx335_done
+    eq rx335_pos, -1, rx335_fail
     jump $I10
-  rx330_done:
-    rx330_cur."!cursor_fail"()
-    rx330_cur."!cursor_debug"("FAIL  ", "charspec")
-    .return (rx330_cur)
+  rx335_done:
+    rx335_cur."!cursor_fail"()
+    rx335_cur."!cursor_debug"("FAIL  ", "charspec")
+    .return (rx335_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("102_1274853022.01464") :method
-.annotate 'line', 33
-    $P332 = self."!PREFIX__!subrule"("", "")
-    $P333 = self."!PREFIX__!subrule"("charnames", "[")
-    new $P334, "ResizablePMCArray"
-    push $P334, $P332
-    push $P334, "Z"
-    push $P334, "Y"
-    push $P334, "X"
-    push $P334, "W"
-    push $P334, "V"
-    push $P334, "U"
-    push $P334, "T"
-    push $P334, "S"
-    push $P334, "R"
-    push $P334, "Q"
-    push $P334, "P"
-    push $P334, "O"
-    push $P334, "N"
-    push $P334, "M"
-    push $P334, "L"
-    push $P334, "K"
-    push $P334, "J"
-    push $P334, "I"
-    push $P334, "H"
-    push $P334, "G"
-    push $P334, "F"
-    push $P334, "E"
-    push $P334, "D"
-    push $P334, "C"
-    push $P334, "B"
-    push $P334, "A"
-    push $P334, "@"
-    push $P334, "?"
-    push $P334, ""
-    push $P334, $P333
-    .return ($P334)
+.sub "!PREFIX__charspec"  :subid("104_1275811471.14938") :method
+.annotate 'line', 33
+    $P337 = self."!PREFIX__!subrule"("panic", "")
+    $P338 = self."!PREFIX__!subrule"("charnames", "[")
+    new $P339, "ResizablePMCArray"
+    push $P339, $P337
+    push $P339, "Z"
+    push $P339, "Y"
+    push $P339, "X"
+    push $P339, "W"
+    push $P339, "V"
+    push $P339, "U"
+    push $P339, "T"
+    push $P339, "S"
+    push $P339, "R"
+    push $P339, "Q"
+    push $P339, "P"
+    push $P339, "O"
+    push $P339, "N"
+    push $P339, "M"
+    push $P339, "L"
+    push $P339, "K"
+    push $P339, "J"
+    push $P339, "I"
+    push $P339, "H"
+    push $P339, "G"
+    push $P339, "F"
+    push $P339, "E"
+    push $P339, "D"
+    push $P339, "C"
+    push $P339, "B"
+    push $P339, "A"
+    push $P339, "@"
+    push $P339, "?"
+    push $P339, ""
+    push $P339, $P338
+    .return ($P339)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block339" :load :anon :subid("103_1274853022.01464")
+.sub "_block344" :load :anon :subid("105_1275811471.14938")
 .annotate 'line', 5
-    .const 'Sub' $P341 = "11_1274853022.01464" 
-    $P342 = $P341()
-    .return ($P342)
+    .const 'Sub' $P346 = "11_1275811471.14938" 
+    $P347 = $P346()
+    .return ($P347)
 .end
 
 
 .namespace []
-.sub "_block344" :load :anon :subid("104_1274853022.01464")
+.sub "_block349" :load :anon :subid("106_1275811471.14938")
 .annotate 'line', 1
-    .const 'Sub' $P346 = "10_1274853022.01464" 
-    $P347 = $P346()
-    .return ($P347)
+    .const 'Sub' $P351 = "10_1275811471.14938" 
+    $P352 = $P351()
+    .return ($P352)
 .end
 
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274853024.15996")
+.sub "_block11"  :anon :subid("10_1275811473.30481")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
@@ -4797,93 +4910,95 @@
 .annotate 'line', 3
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
-    $P620 = $P14()
+    $P627 = $P14()
 .annotate 'line', 1
-    .return ($P620)
-    .const 'Sub' $P622 = "54_1274853024.15996" 
-    .return ($P622)
+    .return ($P627)
+    .const 'Sub' $P629 = "55_1275811473.30481" 
+    .return ($P629)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post55") :outer("10_1274853024.15996")
+.sub "" :load :init :subid("post56") :outer("10_1275811473.30481")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274853024.15996" 
+    .const 'Sub' $P12 = "10_1275811473.30481" 
     .local pmc block
     set block, $P12
-    $P625 = get_root_global ["parrot"], "P6metaclass"
-    $P625."new_class"("HLL::Actions")
+    $P632 = get_root_global ["parrot"], "P6metaclass"
+    $P632."new_class"("HLL::Actions")
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1274853024.15996") :outer("10_1274853024.15996")
+.sub "_block13"  :subid("11_1275811473.30481") :outer("10_1275811473.30481")
 .annotate 'line', 3
-    .const 'Sub' $P598 = "52_1274853024.15996" 
-    capture_lex $P598
-    .const 'Sub' $P573 = "50_1274853024.15996" 
-    capture_lex $P573
-    .const 'Sub' $P543 = "49_1274853024.15996" 
-    capture_lex $P543
-    .const 'Sub' $P524 = "48_1274853024.15996" 
+    .const 'Sub' $P605 = "53_1275811473.30481" 
+    capture_lex $P605
+    .const 'Sub' $P580 = "51_1275811473.30481" 
+    capture_lex $P580
+    .const 'Sub' $P550 = "50_1275811473.30481" 
+    capture_lex $P550
+    .const 'Sub' $P531 = "49_1275811473.30481" 
+    capture_lex $P531
+    .const 'Sub' $P524 = "48_1275811473.30481" 
     capture_lex $P524
-    .const 'Sub' $P517 = "47_1274853024.15996" 
-    capture_lex $P517
-    .const 'Sub' $P507 = "46_1274853024.15996" 
-    capture_lex $P507
-    .const 'Sub' $P490 = "45_1274853024.15996" 
-    capture_lex $P490
-    .const 'Sub' $P473 = "44_1274853024.15996" 
+    .const 'Sub' $P514 = "47_1275811473.30481" 
+    capture_lex $P514
+    .const 'Sub' $P497 = "46_1275811473.30481" 
+    capture_lex $P497
+    .const 'Sub' $P480 = "45_1275811473.30481" 
+    capture_lex $P480
+    .const 'Sub' $P473 = "44_1275811473.30481" 
     capture_lex $P473
-    .const 'Sub' $P466 = "43_1274853024.15996" 
+    .const 'Sub' $P466 = "43_1275811473.30481" 
     capture_lex $P466
-    .const 'Sub' $P459 = "42_1274853024.15996" 
+    .const 'Sub' $P459 = "42_1275811473.30481" 
     capture_lex $P459
-    .const 'Sub' $P452 = "41_1274853024.15996" 
+    .const 'Sub' $P452 = "41_1275811473.30481" 
     capture_lex $P452
-    .const 'Sub' $P445 = "40_1274853024.15996" 
+    .const 'Sub' $P445 = "40_1275811473.30481" 
     capture_lex $P445
-    .const 'Sub' $P438 = "39_1274853024.15996" 
+    .const 'Sub' $P438 = "39_1275811473.30481" 
     capture_lex $P438
-    .const 'Sub' $P428 = "38_1274853024.15996" 
+    .const 'Sub' $P428 = "38_1275811473.30481" 
     capture_lex $P428
-    .const 'Sub' $P421 = "37_1274853024.15996" 
+    .const 'Sub' $P421 = "37_1275811473.30481" 
     capture_lex $P421
-    .const 'Sub' $P405 = "36_1274853024.15996" 
+    .const 'Sub' $P405 = "36_1275811473.30481" 
     capture_lex $P405
-    .const 'Sub' $P330 = "34_1274853024.15996" 
+    .const 'Sub' $P330 = "34_1275811473.30481" 
     capture_lex $P330
-    .const 'Sub' $P267 = "31_1274853024.15996" 
+    .const 'Sub' $P267 = "31_1275811473.30481" 
     capture_lex $P267
-    .const 'Sub' $P258 = "30_1274853024.15996" 
+    .const 'Sub' $P258 = "30_1275811473.30481" 
     capture_lex $P258
-    .const 'Sub' $P249 = "29_1274853024.15996" 
+    .const 'Sub' $P249 = "29_1275811473.30481" 
     capture_lex $P249
-    .const 'Sub' $P240 = "28_1274853024.15996" 
+    .const 'Sub' $P240 = "28_1275811473.30481" 
     capture_lex $P240
-    .const 'Sub' $P231 = "27_1274853024.15996" 
+    .const 'Sub' $P231 = "27_1275811473.30481" 
     capture_lex $P231
-    .const 'Sub' $P222 = "26_1274853024.15996" 
+    .const 'Sub' $P222 = "26_1275811473.30481" 
     capture_lex $P222
-    .const 'Sub' $P212 = "25_1274853024.15996" 
+    .const 'Sub' $P212 = "25_1275811473.30481" 
     capture_lex $P212
-    .const 'Sub' $P202 = "24_1274853024.15996" 
+    .const 'Sub' $P202 = "24_1275811473.30481" 
     capture_lex $P202
-    .const 'Sub' $P194 = "23_1274853024.15996" 
+    .const 'Sub' $P194 = "23_1275811473.30481" 
     capture_lex $P194
-    .const 'Sub' $P184 = "22_1274853024.15996" 
+    .const 'Sub' $P184 = "22_1275811473.30481" 
     capture_lex $P184
-    .const 'Sub' $P174 = "21_1274853024.15996" 
+    .const 'Sub' $P174 = "21_1275811473.30481" 
     capture_lex $P174
-    .const 'Sub' $P73 = "18_1274853024.15996" 
+    .const 'Sub' $P73 = "18_1275811473.30481" 
     capture_lex $P73
-    .const 'Sub' $P35 = "15_1274853024.15996" 
+    .const 'Sub' $P35 = "15_1275811473.30481" 
     capture_lex $P35
-    .const 'Sub' $P28 = "14_1274853024.15996" 
+    .const 'Sub' $P28 = "14_1275811473.30481" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1274853024.15996" 
+    .const 'Sub' $P22 = "13_1275811473.30481" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1274853024.15996" 
+    .const 'Sub' $P15 = "12_1275811473.30481" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -4891,24 +5006,25 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-.annotate 'line', 224
-    .const 'Sub' $P598 = "52_1274853024.15996" 
-    newclosure $P615, $P598
+.annotate 'line', 225
+    .const 'Sub' $P605 = "53_1275811473.30481" 
+    newclosure $P622, $P605
 .annotate 'line', 3
-    .return ($P615)
-    .const 'Sub' $P617 = "53_1274853024.15996" 
-    .return ($P617)
+    .return ($P622)
+    .const 'Sub' $P624 = "54_1275811473.30481" 
+    .return ($P624)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "string_to_int"  :subid("12_1274853024.15996") :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "string_to_int"  :subid("12_1275811473.30481") :outer("11_1275811473.30481")
     .param pmc param_18
     .param pmc param_19
 .annotate 'line', 3
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
-    $P17."handle_types"(57)
+    $P17."handle_types"(.CONTROL_RETURN)
     push_eh $P17
     .lex "$src", param_18
     .lex "$base", param_19
@@ -4955,12 +5071,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "ints_to_string"  :subid("13_1274853024.15996") :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "ints_to_string"  :subid("13_1275811473.30481") :outer("11_1275811473.30481")
     .param pmc param_25
 .annotate 'line', 37
     new $P24, 'ExceptionHandler'
     set_addr $P24, control_23
-    $P24."handle_types"(57)
+    $P24."handle_types"(.CONTROL_RETURN)
     push_eh $P24
     .lex "$ints", param_25
 .annotate 'line', 38
@@ -4996,11 +5113,12 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "CTXSAVE"  :subid("14_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "CTXSAVE"  :subid("14_1275811473.30481") :method :outer("11_1275811473.30481")
 .annotate 'line', 62
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
-    $P30."handle_types"(57)
+    $P30."handle_types"(.CONTROL_RETURN)
     push_eh $P30
     .lex "self", self
 .annotate 'line', 63
@@ -5025,14 +5143,15 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_38
 .annotate 'line', 76
-    .const 'Sub' $P48 = "16_1274853024.15996" 
+    .const 'Sub' $P48 = "16_1275811473.30481" 
     capture_lex $P48
     new $P37, 'ExceptionHandler'
     set_addr $P37, control_36
-    $P37."handle_types"(57)
+    $P37."handle_types"(.CONTROL_RETURN)
     push_eh $P37
     .lex "self", self
     .lex "$block", param_38
@@ -5040,20 +5159,20 @@
     new $P39, "Undef"
     .lex "$outer_ctx", $P39
     find_dynamic_lex $P40, "%*COMPILING"
-    unless_null $P40, vivify_56
-    get_hll_global $P40, "%COMPILING"
     unless_null $P40, vivify_57
+    get_hll_global $P40, "%COMPILING"
+    unless_null $P40, vivify_58
     die "Contextual %*COMPILING not found"
+  vivify_58:
   vivify_57:
-  vivify_56:
     set $P41, $P40["%?OPTIONS"]
-    unless_null $P41, vivify_58
+    unless_null $P41, vivify_59
     $P41 = root_new ['parrot';'Hash']
-  vivify_58:
+  vivify_59:
     set $P42, $P41["outer_ctx"]
-    unless_null $P42, vivify_59
+    unless_null $P42, vivify_60
     new $P42, "Undef"
-  vivify_59:
+  vivify_60:
     store_lex "$outer_ctx", $P42
 .annotate 'line', 78
     find_lex $P45, "$outer_ctx"
@@ -5063,7 +5182,7 @@
     set $P43, $I46
     goto if_44_end
   if_44:
-    .const 'Sub' $P48 = "16_1274853024.15996" 
+    .const 'Sub' $P48 = "16_1275811473.30481" 
     capture_lex $P48
     $P71 = $P48()
     set $P43, $P71
@@ -5079,9 +5198,10 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block47"  :anon :subid("16_1274853024.15996") :outer("15_1274853024.15996")
+.include "except_types.pasm"
+.sub "_block47"  :anon :subid("16_1275811473.30481") :outer("15_1275811473.30481")
 .annotate 'line', 78
-    .const 'Sub' $P62 = "17_1274853024.15996" 
+    .const 'Sub' $P62 = "17_1275811473.30481" 
     capture_lex $P62
 .annotate 'line', 79
     $P49 = root_new ['parrot';'ResizablePMCArray']
@@ -5101,17 +5221,17 @@
     find_lex $P57, "$outer_ctx"
     $P58 = $P57."lexpad_full"()
     defined $I59, $P58
-    unless $I59, for_undef_60
+    unless $I59, for_undef_61
     iter $P56, $P58
     new $P69, 'ExceptionHandler'
     set_addr $P69, loop68_handler
-    $P69."handle_types"(64, 66, 65)
+    $P69."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P69
   loop68_test:
     unless $P56, loop68_done
     shift $P60, $P56
   loop68_redo:
-    .const 'Sub' $P62 = "17_1274853024.15996" 
+    .const 'Sub' $P62 = "17_1275811473.30481" 
     capture_lex $P62
     $P62($P60)
   loop68_next:
@@ -5120,18 +5240,18 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P70, exception, 'type'
-    eq $P70, 64, loop68_next
-    eq $P70, 66, loop68_redo
+    eq $P70, .CONTROL_LOOP_NEXT, loop68_next
+    eq $P70, .CONTROL_LOOP_REDO, loop68_redo
   loop68_done:
     pop_eh 
-  for_undef_60:
+  for_undef_61:
 .annotate 'line', 78
     .return ($P56)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block61"  :anon :subid("17_1274853024.15996") :outer("16_1274853024.15996")
+.sub "_block61"  :anon :subid("17_1275811473.30481") :outer("16_1275811473.30481")
     .param pmc param_63
 .annotate 'line', 82
     .lex "$_", param_63
@@ -5146,25 +5266,26 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "EXPR"  :subid("18_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "EXPR"  :subid("18_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_76
     .param pmc param_77 :optional
     .param int has_param_77 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P156 = "20_1274853024.15996" 
+    .const 'Sub' $P156 = "20_1275811473.30481" 
     capture_lex $P156
-    .const 'Sub' $P123 = "19_1274853024.15996" 
+    .const 'Sub' $P123 = "19_1275811473.30481" 
     capture_lex $P123
     new $P75, 'ExceptionHandler'
     set_addr $P75, control_74
-    $P75."handle_types"(57)
+    $P75."handle_types"(.CONTROL_RETURN)
     push_eh $P75
     .lex "self", self
     .lex "$/", param_76
-    if has_param_77, optparam_61
+    if has_param_77, optparam_62
     new $P78, "Undef"
     set param_77, $P78
-  optparam_61:
+  optparam_62:
     .lex "$key", param_77
 .annotate 'line', 91
     new $P79, "Undef"
@@ -5173,7 +5294,7 @@
     find_lex $P81, "$key"
     if $P81, unless_80_end
     new $P82, "Exception"
-    set $P82['type'], 57
+    set $P82['type'], .CONTROL_RETURN
     new $P83, "Integer"
     assign $P83, 0
     setattribute $P82, 'payload', $P83
@@ -5186,13 +5307,13 @@
     defined $I88, $P84
     if $I88, default_87
     find_lex $P89, "$/"
-    unless_null $P89, vivify_62
+    unless_null $P89, vivify_63
     $P89 = root_new ['parrot';'Hash']
-  vivify_62:
+  vivify_63:
     set $P90, $P89["OPER"]
-    unless_null $P90, vivify_63
+    unless_null $P90, vivify_64
     new $P90, "Undef"
-  vivify_63:
+  vivify_64:
     $P91 = $P90."ast"()
     set $P84, $P91
   default_87:
@@ -5207,57 +5328,57 @@
     store_lex "$past", $P96
 .annotate 'line', 94
     find_lex $P98, "$/"
-    unless_null $P98, vivify_64
+    unless_null $P98, vivify_65
     $P98 = root_new ['parrot';'Hash']
-  vivify_64:
+  vivify_65:
     set $P99, $P98["OPER"]
-    unless_null $P99, vivify_65
+    unless_null $P99, vivify_66
     $P99 = root_new ['parrot';'Hash']
-  vivify_65:
+  vivify_66:
     set $P100, $P99["O"]
-    unless_null $P100, vivify_66
+    unless_null $P100, vivify_67
     $P100 = root_new ['parrot';'Hash']
-  vivify_66:
+  vivify_67:
     set $P101, $P100["pasttype"]
-    unless_null $P101, vivify_67
+    unless_null $P101, vivify_68
     new $P101, "Undef"
-  vivify_67:
+  vivify_68:
     if $P101, if_97
 .annotate 'line', 95
     find_lex $P109, "$/"
-    unless_null $P109, vivify_68
+    unless_null $P109, vivify_69
     $P109 = root_new ['parrot';'Hash']
-  vivify_68:
+  vivify_69:
     set $P110, $P109["OPER"]
-    unless_null $P110, vivify_69
+    unless_null $P110, vivify_70
     $P110 = root_new ['parrot';'Hash']
-  vivify_69:
+  vivify_70:
     set $P111, $P110["O"]
-    unless_null $P111, vivify_70
+    unless_null $P111, vivify_71
     $P111 = root_new ['parrot';'Hash']
-  vivify_70:
+  vivify_71:
     set $P112, $P111["pirop"]
-    unless_null $P112, vivify_71
+    unless_null $P112, vivify_72
     new $P112, "Undef"
-  vivify_71:
+  vivify_72:
     unless $P112, if_108_end
     find_lex $P113, "$past"
     find_lex $P114, "$/"
-    unless_null $P114, vivify_72
+    unless_null $P114, vivify_73
     $P114 = root_new ['parrot';'Hash']
-  vivify_72:
+  vivify_73:
     set $P115, $P114["OPER"]
-    unless_null $P115, vivify_73
+    unless_null $P115, vivify_74
     $P115 = root_new ['parrot';'Hash']
-  vivify_73:
+  vivify_74:
     set $P116, $P115["O"]
-    unless_null $P116, vivify_74
+    unless_null $P116, vivify_75
     $P116 = root_new ['parrot';'Hash']
-  vivify_74:
+  vivify_75:
     set $P117, $P116["pirop"]
-    unless_null $P117, vivify_75
+    unless_null $P117, vivify_76
     new $P117, "Undef"
-  vivify_75:
+  vivify_76:
     set $S118, $P117
     $P113."pirop"($S118)
   if_108_end:
@@ -5266,21 +5387,21 @@
 .annotate 'line', 94
     find_lex $P102, "$past"
     find_lex $P103, "$/"
-    unless_null $P103, vivify_76
+    unless_null $P103, vivify_77
     $P103 = root_new ['parrot';'Hash']
-  vivify_76:
+  vivify_77:
     set $P104, $P103["OPER"]
-    unless_null $P104, vivify_77
+    unless_null $P104, vivify_78
     $P104 = root_new ['parrot';'Hash']
-  vivify_77:
+  vivify_78:
     set $P105, $P104["O"]
-    unless_null $P105, vivify_78
+    unless_null $P105, vivify_79
     $P105 = root_new ['parrot';'Hash']
-  vivify_78:
+  vivify_79:
     set $P106, $P105["pasttype"]
-    unless_null $P106, vivify_79
+    unless_null $P106, vivify_80
     new $P106, "Undef"
-  vivify_79:
+  vivify_80:
     set $S107, $P106
     $P102."pasttype"($S107)
   if_97_end:
@@ -5288,7 +5409,7 @@
     find_lex $P120, "$past"
     $P121 = $P120."name"()
     if $P121, unless_119_end
-    .const 'Sub' $P123 = "19_1274853024.15996" 
+    .const 'Sub' $P123 = "19_1275811473.30481" 
     capture_lex $P123
     $P123()
   unless_119_end:
@@ -5302,17 +5423,17 @@
     find_lex $P151, "$/"
     $P152 = $P151."list"()
     defined $I153, $P152
-    unless $I153, for_undef_83
+    unless $I153, for_undef_84
     iter $P150, $P152
     new $P168, 'ExceptionHandler'
     set_addr $P168, loop167_handler
-    $P168."handle_types"(64, 66, 65)
+    $P168."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P168
   loop167_test:
     unless $P150, loop167_done
     shift $P154, $P150
   loop167_redo:
-    .const 'Sub' $P156 = "20_1274853024.15996" 
+    .const 'Sub' $P156 = "20_1275811473.30481" 
     capture_lex $P156
     $P156($P154)
   loop167_next:
@@ -5321,24 +5442,24 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P169, exception, 'type'
-    eq $P169, 64, loop167_next
-    eq $P169, 66, loop167_redo
+    eq $P169, .CONTROL_LOOP_NEXT, loop167_next
+    eq $P169, .CONTROL_LOOP_REDO, loop167_redo
   loop167_done:
     pop_eh 
-  for_undef_83:
+  for_undef_84:
 .annotate 'line', 108
     goto if_142_end
   if_142:
 .annotate 'line', 107
     find_lex $P146, "$past"
     find_lex $P147, "$/"
-    unless_null $P147, vivify_84
+    unless_null $P147, vivify_85
     $P147 = root_new ['parrot';'ResizablePMCArray']
-  vivify_84:
+  vivify_85:
     set $P148, $P147[0]
-    unless_null $P148, vivify_85
+    unless_null $P148, vivify_86
     new $P148, "Undef"
-  vivify_85:
+  vivify_86:
     $P149 = $P148."ast"()
     $P146."unshift"($P149)
   if_142_end:
@@ -5357,7 +5478,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block122"  :anon :subid("19_1274853024.15996") :outer("18_1274853024.15996")
+.sub "_block122"  :anon :subid("19_1275811473.30481") :outer("18_1275811473.30481")
 .annotate 'line', 98
     new $P124, "Undef"
     .lex "$name", $P124
@@ -5380,17 +5501,17 @@
     concat $P131, $P130, ":<"
 .annotate 'line', 103
     find_lex $P132, "$/"
-    unless_null $P132, vivify_80
+    unless_null $P132, vivify_81
     $P132 = root_new ['parrot';'Hash']
-  vivify_80:
+  vivify_81:
     set $P133, $P132["OPER"]
-    unless_null $P133, vivify_81
+    unless_null $P133, vivify_82
     $P133 = root_new ['parrot';'Hash']
-  vivify_81:
+  vivify_82:
     set $P134, $P133["sym"]
-    unless_null $P134, vivify_82
+    unless_null $P134, vivify_83
     new $P134, "Undef"
-  vivify_82:
+  vivify_83:
     concat $P135, $P131, $P134
     concat $P136, $P135, ">"
     store_lex "$name", $P136
@@ -5407,7 +5528,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block155"  :anon :subid("20_1274853024.15996") :outer("18_1274853024.15996")
+.sub "_block155"  :anon :subid("20_1275811473.30481") :outer("18_1275811473.30481")
     .param pmc param_157
 .annotate 'line', 109
     .lex "$_", param_157
@@ -5430,24 +5551,25 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "term:sym<circumfix>"  :subid("21_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "term:sym<circumfix>"  :subid("21_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_177
 .annotate 'line', 114
     new $P176, 'ExceptionHandler'
     set_addr $P176, control_175
-    $P176."handle_types"(57)
+    $P176."handle_types"(.CONTROL_RETURN)
     push_eh $P176
     .lex "self", self
     .lex "$/", param_177
     find_lex $P178, "$/"
     find_lex $P179, "$/"
-    unless_null $P179, vivify_86
+    unless_null $P179, vivify_87
     $P179 = root_new ['parrot';'Hash']
-  vivify_86:
+  vivify_87:
     set $P180, $P179["circumfix"]
-    unless_null $P180, vivify_87
+    unless_null $P180, vivify_88
     new $P180, "Undef"
-  vivify_87:
+  vivify_88:
     $P181 = $P180."ast"()
     $P182 = $P178."!make"($P181)
     .return ($P182)
@@ -5460,24 +5582,25 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "termish"  :subid("22_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "termish"  :subid("22_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_187
 .annotate 'line', 116
     new $P186, 'ExceptionHandler'
     set_addr $P186, control_185
-    $P186."handle_types"(57)
+    $P186."handle_types"(.CONTROL_RETURN)
     push_eh $P186
     .lex "self", self
     .lex "$/", param_187
     find_lex $P188, "$/"
     find_lex $P189, "$/"
-    unless_null $P189, vivify_88
+    unless_null $P189, vivify_89
     $P189 = root_new ['parrot';'Hash']
-  vivify_88:
+  vivify_89:
     set $P190, $P189["term"]
-    unless_null $P190, vivify_89
+    unless_null $P190, vivify_90
     new $P190, "Undef"
-  vivify_89:
+  vivify_90:
     $P191 = $P190."ast"()
     $P192 = $P188."!make"($P191)
     .return ($P192)
@@ -5490,12 +5613,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "nullterm"  :subid("23_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "nullterm"  :subid("23_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_197
 .annotate 'line', 117
     new $P196, 'ExceptionHandler'
     set_addr $P196, control_195
-    $P196."handle_types"(57)
+    $P196."handle_types"(.CONTROL_RETURN)
     push_eh $P196
     .lex "self", self
     .lex "$/", param_197
@@ -5512,24 +5636,25 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "nullterm_alt"  :subid("24_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "nullterm_alt"  :subid("24_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_205
 .annotate 'line', 118
     new $P204, 'ExceptionHandler'
     set_addr $P204, control_203
-    $P204."handle_types"(57)
+    $P204."handle_types"(.CONTROL_RETURN)
     push_eh $P204
     .lex "self", self
     .lex "$/", param_205
     find_lex $P206, "$/"
     find_lex $P207, "$/"
-    unless_null $P207, vivify_90
+    unless_null $P207, vivify_91
     $P207 = root_new ['parrot';'Hash']
-  vivify_90:
+  vivify_91:
     set $P208, $P207["term"]
-    unless_null $P208, vivify_91
+    unless_null $P208, vivify_92
     new $P208, "Undef"
-  vivify_91:
+  vivify_92:
     $P209 = $P208."ast"()
     $P210 = $P206."!make"($P209)
     .return ($P210)
@@ -5542,24 +5667,25 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "integer"  :subid("25_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "integer"  :subid("25_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_215
 .annotate 'line', 120
     new $P214, 'ExceptionHandler'
     set_addr $P214, control_213
-    $P214."handle_types"(57)
+    $P214."handle_types"(.CONTROL_RETURN)
     push_eh $P214
     .lex "self", self
     .lex "$/", param_215
     find_lex $P216, "$/"
     find_lex $P217, "$/"
-    unless_null $P217, vivify_92
+    unless_null $P217, vivify_93
     $P217 = root_new ['parrot';'Hash']
-  vivify_92:
+  vivify_93:
     set $P218, $P217["VALUE"]
-    unless_null $P218, vivify_93
+    unless_null $P218, vivify_94
     new $P218, "Undef"
-  vivify_93:
+  vivify_94:
     $P219 = $P218."ast"()
     $P220 = $P216."!make"($P219)
     .return ($P220)
@@ -5572,12 +5698,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "dec_number"  :subid("26_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "dec_number"  :subid("26_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_225
 .annotate 'line', 122
     new $P224, 'ExceptionHandler'
     set_addr $P224, control_223
-    $P224."handle_types"(57)
+    $P224."handle_types"(.CONTROL_RETURN)
     push_eh $P224
     .lex "self", self
     .lex "$/", param_225
@@ -5595,12 +5722,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "decint"  :subid("27_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "decint"  :subid("27_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_234
 .annotate 'line', 124
     new $P233, 'ExceptionHandler'
     set_addr $P233, control_232
-    $P233."handle_types"(57)
+    $P233."handle_types"(.CONTROL_RETURN)
     push_eh $P233
     .lex "self", self
     .lex "$/", param_234
@@ -5618,12 +5746,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "hexint"  :subid("28_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "hexint"  :subid("28_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_243
 .annotate 'line', 125
     new $P242, 'ExceptionHandler'
     set_addr $P242, control_241
-    $P242."handle_types"(57)
+    $P242."handle_types"(.CONTROL_RETURN)
     push_eh $P242
     .lex "self", self
     .lex "$/", param_243
@@ -5641,12 +5770,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "octint"  :subid("29_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "octint"  :subid("29_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_252
 .annotate 'line', 126
     new $P251, 'ExceptionHandler'
     set_addr $P251, control_250
-    $P251."handle_types"(57)
+    $P251."handle_types"(.CONTROL_RETURN)
     push_eh $P251
     .lex "self", self
     .lex "$/", param_252
@@ -5664,12 +5794,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "binint"  :subid("30_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "binint"  :subid("30_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_261
 .annotate 'line', 127
     new $P260, 'ExceptionHandler'
     set_addr $P260, control_259
-    $P260."handle_types"(57)
+    $P260."handle_types"(.CONTROL_RETURN)
     push_eh $P260
     .lex "self", self
     .lex "$/", param_261
@@ -5687,14 +5818,15 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_EXPR"  :subid("31_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_EXPR"  :subid("31_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_270
 .annotate 'line', 129
-    .const 'Sub' $P286 = "32_1274853024.15996" 
+    .const 'Sub' $P286 = "32_1275811473.30481" 
     capture_lex $P286
     new $P269, 'ExceptionHandler'
     set_addr $P269, control_268
-    $P269."handle_types"(57)
+    $P269."handle_types"(.CONTROL_RETURN)
     push_eh $P269
     .lex "self", self
     .lex "$/", param_270
@@ -5702,13 +5834,13 @@
     new $P271, "Undef"
     .lex "$past", $P271
     find_lex $P272, "$/"
-    unless_null $P272, vivify_94
+    unless_null $P272, vivify_95
     $P272 = root_new ['parrot';'Hash']
-  vivify_94:
+  vivify_95:
     set $P273, $P272["quote_delimited"]
-    unless_null $P273, vivify_95
+    unless_null $P273, vivify_96
     new $P273, "Undef"
-  vivify_95:
+  vivify_96:
     $P274 = $P273."ast"()
     store_lex "$past", $P274
 .annotate 'line', 131
@@ -5722,7 +5854,7 @@
     $P282 = $P280."ACCEPTS"($P281)
     if $P282, if_279
 .annotate 'line', 135
-    .const 'Sub' $P286 = "32_1274853024.15996" 
+    .const 'Sub' $P286 = "32_1275811473.30481" 
     capture_lex $P286
     $P286()
     goto if_279_end
@@ -5761,9 +5893,10 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block285"  :anon :subid("32_1274853024.15996") :outer("31_1274853024.15996")
+.include "except_types.pasm"
+.sub "_block285"  :anon :subid("32_1275811473.30481") :outer("31_1275811473.30481")
 .annotate 'line', 135
-    .const 'Sub' $P305 = "33_1274853024.15996" 
+    .const 'Sub' $P305 = "33_1275811473.30481" 
     capture_lex $P305
 .annotate 'line', 136
     $P287 = root_new ['parrot';'ResizablePMCArray']
@@ -5780,13 +5913,13 @@
     if $I296, if_293
 .annotate 'line', 142
     find_lex $P313, "@words"
-    unless_null $P313, vivify_96
+    unless_null $P313, vivify_97
     $P313 = root_new ['parrot';'ResizablePMCArray']
-  vivify_96:
+  vivify_97:
     set $P314, $P313[0]
-    unless_null $P314, vivify_97
+    unless_null $P314, vivify_98
     new $P314, "Undef"
-  vivify_97:
+  vivify_98:
     set $S315, $P314
     new $P316, 'String'
     set $P316, $S315
@@ -5804,17 +5937,17 @@
 .annotate 'line', 139
     find_lex $P301, "@words"
     defined $I302, $P301
-    unless $I302, for_undef_98
+    unless $I302, for_undef_99
     iter $P300, $P301
     new $P311, 'ExceptionHandler'
     set_addr $P311, loop310_handler
-    $P311."handle_types"(64, 66, 65)
+    $P311."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P311
   loop310_test:
     unless $P300, loop310_done
     shift $P303, $P300
   loop310_redo:
-    .const 'Sub' $P305 = "33_1274853024.15996" 
+    .const 'Sub' $P305 = "33_1275811473.30481" 
     capture_lex $P305
     $P305($P303)
   loop310_next:
@@ -5823,11 +5956,11 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P312, exception, 'type'
-    eq $P312, 64, loop310_next
-    eq $P312, 66, loop310_redo
+    eq $P312, .CONTROL_LOOP_NEXT, loop310_next
+    eq $P312, .CONTROL_LOOP_REDO, loop310_redo
   loop310_done:
     pop_eh 
-  for_undef_98:
+  for_undef_99:
 .annotate 'line', 137
     set $P292, $P300
   if_293_end:
@@ -5837,7 +5970,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block304"  :anon :subid("33_1274853024.15996") :outer("32_1274853024.15996")
+.sub "_block304"  :anon :subid("33_1275811473.30481") :outer("32_1275811473.30481")
     .param pmc param_306
 .annotate 'line', 139
     .lex "$_", param_306
@@ -5849,14 +5982,15 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_delimited"  :subid("34_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_delimited"  :subid("34_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_333
 .annotate 'line', 152
-    .const 'Sub' $P345 = "35_1274853024.15996" 
+    .const 'Sub' $P345 = "35_1275811473.30481" 
     capture_lex $P345
     new $P332, 'ExceptionHandler'
     set_addr $P332, control_331
-    $P332."handle_types"(57)
+    $P332."handle_types"(.CONTROL_RETURN)
     push_eh $P332
     .lex "self", self
     .lex "$/", param_333
@@ -5877,25 +6011,25 @@
     store_lex "$lastlit", $P338
 .annotate 'line', 155
     find_lex $P340, "$/"
-    unless_null $P340, vivify_99
+    unless_null $P340, vivify_100
     $P340 = root_new ['parrot';'Hash']
-  vivify_99:
+  vivify_100:
     set $P341, $P340["quote_atom"]
-    unless_null $P341, vivify_100
+    unless_null $P341, vivify_101
     new $P341, "Undef"
-  vivify_100:
+  vivify_101:
     defined $I342, $P341
-    unless $I342, for_undef_101
+    unless $I342, for_undef_102
     iter $P339, $P341
     new $P378, 'ExceptionHandler'
     set_addr $P378, loop377_handler
-    $P378."handle_types"(64, 66, 65)
+    $P378."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P378
   loop377_test:
     unless $P339, loop377_done
     shift $P343, $P339
   loop377_redo:
-    .const 'Sub' $P345 = "35_1274853024.15996" 
+    .const 'Sub' $P345 = "35_1275811473.30481" 
     capture_lex $P345
     $P345($P343)
   loop377_next:
@@ -5904,11 +6038,11 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P379, exception, 'type'
-    eq $P379, 64, loop377_next
-    eq $P379, 66, loop377_redo
+    eq $P379, .CONTROL_LOOP_NEXT, loop377_next
+    eq $P379, .CONTROL_LOOP_REDO, loop377_redo
   loop377_done:
     pop_eh 
-  for_undef_101:
+  for_undef_102:
 .annotate 'line', 169
     find_lex $P381, "$lastlit"
     set $S382, $P381
@@ -5934,7 +6068,7 @@
 .annotate 'line', 171
     new $P399, 'ExceptionHandler'
     set_addr $P399, loop398_handler
-    $P399."handle_types"(64, 66, 65)
+    $P399."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P399
   loop398_test:
     find_lex $P392, "@parts"
@@ -5954,8 +6088,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P400, exception, 'type'
-    eq $P400, 64, loop398_next
-    eq $P400, 66, loop398_redo
+    eq $P400, .CONTROL_LOOP_NEXT, loop398_next
+    eq $P400, .CONTROL_LOOP_REDO, loop398_redo
   loop398_done:
     pop_eh 
 .annotate 'line', 174
@@ -5973,7 +6107,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block344"  :anon :subid("35_1274853024.15996") :outer("34_1274853024.15996")
+.sub "_block344"  :anon :subid("35_1275811473.30481") :outer("34_1275811473.30481")
     .param pmc param_347
 .annotate 'line', 156
     new $P346, "Undef"
@@ -6042,25 +6176,26 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_atom"  :subid("36_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_atom"  :subid("36_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_408
 .annotate 'line', 177
     new $P407, 'ExceptionHandler'
     set_addr $P407, control_406
-    $P407."handle_types"(57)
+    $P407."handle_types"(.CONTROL_RETURN)
     push_eh $P407
     .lex "self", self
     .lex "$/", param_408
 .annotate 'line', 178
     find_lex $P409, "$/"
     find_lex $P412, "$/"
-    unless_null $P412, vivify_102
+    unless_null $P412, vivify_103
     $P412 = root_new ['parrot';'Hash']
-  vivify_102:
+  vivify_103:
     set $P413, $P412["quote_escape"]
-    unless_null $P413, vivify_103
+    unless_null $P413, vivify_104
     new $P413, "Undef"
-  vivify_103:
+  vivify_104:
     if $P413, if_411
     find_lex $P417, "$/"
     set $S418, $P417
@@ -6069,13 +6204,13 @@
     goto if_411_end
   if_411:
     find_lex $P414, "$/"
-    unless_null $P414, vivify_104
+    unless_null $P414, vivify_105
     $P414 = root_new ['parrot';'Hash']
-  vivify_104:
+  vivify_105:
     set $P415, $P414["quote_escape"]
-    unless_null $P415, vivify_105
+    unless_null $P415, vivify_106
     new $P415, "Undef"
-  vivify_105:
+  vivify_106:
     $P416 = $P415."ast"()
     set $P410, $P416
   if_411_end:
@@ -6091,12 +6226,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<backslash>"  :subid("37_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_escape:sym<backslash>"  :subid("37_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_424
 .annotate 'line', 181
     new $P423, 'ExceptionHandler'
     set_addr $P423, control_422
-    $P423."handle_types"(57)
+    $P423."handle_types"(.CONTROL_RETURN)
     push_eh $P423
     .lex "self", self
     .lex "$/", param_424
@@ -6112,24 +6248,25 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<stopper>"  :subid("38_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_escape:sym<stopper>"  :subid("38_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_431
 .annotate 'line', 182
     new $P430, 'ExceptionHandler'
     set_addr $P430, control_429
-    $P430."handle_types"(57)
+    $P430."handle_types"(.CONTROL_RETURN)
     push_eh $P430
     .lex "self", self
     .lex "$/", param_431
     find_lex $P432, "$/"
     find_lex $P433, "$/"
-    unless_null $P433, vivify_106
+    unless_null $P433, vivify_107
     $P433 = root_new ['parrot';'Hash']
-  vivify_106:
+  vivify_107:
     set $P434, $P433["stopper"]
-    unless_null $P434, vivify_107
+    unless_null $P434, vivify_108
     new $P434, "Undef"
-  vivify_107:
+  vivify_108:
     set $S435, $P434
     $P436 = $P432."!make"($S435)
     .return ($P436)
@@ -6142,12 +6279,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<bs>"  :subid("39_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_escape:sym<bs>"  :subid("39_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_441
 .annotate 'line', 184
     new $P440, 'ExceptionHandler'
     set_addr $P440, control_439
-    $P440."handle_types"(57)
+    $P440."handle_types"(.CONTROL_RETURN)
     push_eh $P440
     .lex "self", self
     .lex "$/", param_441
@@ -6163,12 +6301,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<nl>"  :subid("40_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_escape:sym<nl>"  :subid("40_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_448
 .annotate 'line', 185
     new $P447, 'ExceptionHandler'
     set_addr $P447, control_446
-    $P447."handle_types"(57)
+    $P447."handle_types"(.CONTROL_RETURN)
     push_eh $P447
     .lex "self", self
     .lex "$/", param_448
@@ -6184,12 +6323,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<cr>"  :subid("41_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_escape:sym<cr>"  :subid("41_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_455
 .annotate 'line', 186
     new $P454, 'ExceptionHandler'
     set_addr $P454, control_453
-    $P454."handle_types"(57)
+    $P454."handle_types"(.CONTROL_RETURN)
     push_eh $P454
     .lex "self", self
     .lex "$/", param_455
@@ -6205,12 +6345,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<tab>"  :subid("42_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_escape:sym<tab>"  :subid("42_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_462
 .annotate 'line', 187
     new $P461, 'ExceptionHandler'
     set_addr $P461, control_460
-    $P461."handle_types"(57)
+    $P461."handle_types"(.CONTROL_RETURN)
     push_eh $P461
     .lex "self", self
     .lex "$/", param_462
@@ -6226,12 +6367,13 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<ff>"  :subid("43_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_escape:sym<ff>"  :subid("43_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_469
 .annotate 'line', 188
     new $P468, 'ExceptionHandler'
     set_addr $P468, control_467
-    $P468."handle_types"(57)
+    $P468."handle_types"(.CONTROL_RETURN)
     push_eh $P468
     .lex "self", self
     .lex "$/", param_469
@@ -6247,169 +6389,171 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<hex>"  :subid("44_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_escape:sym<esc>"  :subid("44_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_476
-.annotate 'line', 190
+.annotate 'line', 189
     new $P475, 'ExceptionHandler'
     set_addr $P475, control_474
-    $P475."handle_types"(57)
+    $P475."handle_types"(.CONTROL_RETURN)
     push_eh $P475
     .lex "self", self
     .lex "$/", param_476
-.annotate 'line', 191
     find_lex $P477, "$/"
-    find_lex $P480, "$/"
-    unless_null $P480, vivify_108
-    $P480 = root_new ['parrot';'Hash']
-  vivify_108:
-    set $P481, $P480["hexint"]
-    unless_null $P481, vivify_109
-    new $P481, "Undef"
-  vivify_109:
-    if $P481, if_479
+    $P478 = $P477."!make"("\e")
+    .return ($P478)
+  control_474:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P479, exception, "payload"
+    .return ($P479)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<hex>"  :subid("45_1275811473.30481") :method :outer("11_1275811473.30481")
+    .param pmc param_483
+.annotate 'line', 191
+    new $P482, 'ExceptionHandler'
+    set_addr $P482, control_481
+    $P482."handle_types"(.CONTROL_RETURN)
+    push_eh $P482
+    .lex "self", self
+    .lex "$/", param_483
+.annotate 'line', 192
     find_lex $P484, "$/"
-    unless_null $P484, vivify_110
-    $P484 = root_new ['parrot';'Hash']
+    find_lex $P487, "$/"
+    unless_null $P487, vivify_109
+    $P487 = root_new ['parrot';'Hash']
+  vivify_109:
+    set $P488, $P487["hexint"]
+    unless_null $P488, vivify_110
+    new $P488, "Undef"
   vivify_110:
-    set $P485, $P484["hexints"]
-    unless_null $P485, vivify_111
-    $P485 = root_new ['parrot';'Hash']
+    if $P488, if_486
+    find_lex $P491, "$/"
+    unless_null $P491, vivify_111
+    $P491 = root_new ['parrot';'Hash']
   vivify_111:
-    set $P486, $P485["hexint"]
-    unless_null $P486, vivify_112
-    new $P486, "Undef"
+    set $P492, $P491["hexints"]
+    unless_null $P492, vivify_112
+    $P492 = root_new ['parrot';'Hash']
   vivify_112:
-    set $P478, $P486
-    goto if_479_end
-  if_479:
-    find_lex $P482, "$/"
-    unless_null $P482, vivify_113
-    $P482 = root_new ['parrot';'Hash']
+    set $P493, $P492["hexint"]
+    unless_null $P493, vivify_113
+    new $P493, "Undef"
   vivify_113:
-    set $P483, $P482["hexint"]
-    unless_null $P483, vivify_114
-    new $P483, "Undef"
+    set $P485, $P493
+    goto if_486_end
+  if_486:
+    find_lex $P489, "$/"
+    unless_null $P489, vivify_114
+    $P489 = root_new ['parrot';'Hash']
   vivify_114:
-    set $P478, $P483
-  if_479_end:
-    $P487 = "ints_to_string"($P478)
-    $P488 = $P477."!make"($P487)
-.annotate 'line', 190
-    .return ($P488)
-  control_474:
+    set $P490, $P489["hexint"]
+    unless_null $P490, vivify_115
+    new $P490, "Undef"
+  vivify_115:
+    set $P485, $P490
+  if_486_end:
+    $P494 = "ints_to_string"($P485)
+    $P495 = $P484."!make"($P494)
+.annotate 'line', 191
+    .return ($P495)
+  control_481:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P489, exception, "payload"
-    .return ($P489)
+    getattribute $P496, exception, "payload"
+    .return ($P496)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<oct>"  :subid("45_1274853024.15996") :method :outer("11_1274853024.15996")
-    .param pmc param_493
-.annotate 'line', 194
-    new $P492, 'ExceptionHandler'
-    set_addr $P492, control_491
-    $P492."handle_types"(57)
-    push_eh $P492
-    .lex "self", self
-    .lex "$/", param_493
+.include "except_types.pasm"
+.sub "quote_escape:sym<oct>"  :subid("46_1275811473.30481") :method :outer("11_1275811473.30481")
+    .param pmc param_500
 .annotate 'line', 195
-    find_lex $P494, "$/"
-    find_lex $P497, "$/"
-    unless_null $P497, vivify_115
-    $P497 = root_new ['parrot';'Hash']
-  vivify_115:
-    set $P498, $P497["octint"]
-    unless_null $P498, vivify_116
-    new $P498, "Undef"
-  vivify_116:
-    if $P498, if_496
+    new $P499, 'ExceptionHandler'
+    set_addr $P499, control_498
+    $P499."handle_types"(.CONTROL_RETURN)
+    push_eh $P499
+    .lex "self", self
+    .lex "$/", param_500
+.annotate 'line', 196
     find_lex $P501, "$/"
-    unless_null $P501, vivify_117
-    $P501 = root_new ['parrot';'Hash']
+    find_lex $P504, "$/"
+    unless_null $P504, vivify_116
+    $P504 = root_new ['parrot';'Hash']
+  vivify_116:
+    set $P505, $P504["octint"]
+    unless_null $P505, vivify_117
+    new $P505, "Undef"
   vivify_117:
-    set $P502, $P501["octints"]
-    unless_null $P502, vivify_118
-    $P502 = root_new ['parrot';'Hash']
+    if $P505, if_503
+    find_lex $P508, "$/"
+    unless_null $P508, vivify_118
+    $P508 = root_new ['parrot';'Hash']
   vivify_118:
-    set $P503, $P502["octint"]
-    unless_null $P503, vivify_119
-    new $P503, "Undef"
+    set $P509, $P508["octints"]
+    unless_null $P509, vivify_119
+    $P509 = root_new ['parrot';'Hash']
   vivify_119:
-    set $P495, $P503
-    goto if_496_end
-  if_496:
-    find_lex $P499, "$/"
-    unless_null $P499, vivify_120
-    $P499 = root_new ['parrot';'Hash']
+    set $P510, $P509["octint"]
+    unless_null $P510, vivify_120
+    new $P510, "Undef"
   vivify_120:
-    set $P500, $P499["octint"]
-    unless_null $P500, vivify_121
-    new $P500, "Undef"
+    set $P502, $P510
+    goto if_503_end
+  if_503:
+    find_lex $P506, "$/"
+    unless_null $P506, vivify_121
+    $P506 = root_new ['parrot';'Hash']
   vivify_121:
-    set $P495, $P500
-  if_496_end:
-    $P504 = "ints_to_string"($P495)
-    $P505 = $P494."!make"($P504)
-.annotate 'line', 194
-    .return ($P505)
-  control_491:
+    set $P507, $P506["octint"]
+    unless_null $P507, vivify_122
+    new $P507, "Undef"
+  vivify_122:
+    set $P502, $P507
+  if_503_end:
+    $P511 = "ints_to_string"($P502)
+    $P512 = $P501."!make"($P511)
+.annotate 'line', 195
+    .return ($P512)
+  control_498:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P506, exception, "payload"
-    .return ($P506)
+    getattribute $P513, exception, "payload"
+    .return ($P513)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<chr>"  :subid("46_1274853024.15996") :method :outer("11_1274853024.15996")
-    .param pmc param_510
-.annotate 'line', 198
-    new $P509, 'ExceptionHandler'
-    set_addr $P509, control_508
-    $P509."handle_types"(57)
-    push_eh $P509
-    .lex "self", self
-    .lex "$/", param_510
+.include "except_types.pasm"
+.sub "quote_escape:sym<chr>"  :subid("47_1275811473.30481") :method :outer("11_1275811473.30481")
+    .param pmc param_517
 .annotate 'line', 199
-    find_lex $P511, "$/"
-    find_lex $P512, "$/"
-    unless_null $P512, vivify_122
-    $P512 = root_new ['parrot';'Hash']
-  vivify_122:
-    set $P513, $P512["charspec"]
-    unless_null $P513, vivify_123
-    new $P513, "Undef"
+    new $P516, 'ExceptionHandler'
+    set_addr $P516, control_515
+    $P516."handle_types"(.CONTROL_RETURN)
+    push_eh $P516
+    .lex "self", self
+    .lex "$/", param_517
+.annotate 'line', 200
+    find_lex $P518, "$/"
+    find_lex $P519, "$/"
+    unless_null $P519, vivify_123
+    $P519 = root_new ['parrot';'Hash']
   vivify_123:
-    $P514 = $P513."ast"()
-    $P515 = $P511."!make"($P514)
-.annotate 'line', 198
-    .return ($P515)
-  control_508:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P516, exception, "payload"
-    .return ($P516)
-.end
-
-
-.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<0>"  :subid("47_1274853024.15996") :method :outer("11_1274853024.15996")
-    .param pmc param_520
-.annotate 'line', 202
-    new $P519, 'ExceptionHandler'
-    set_addr $P519, control_518
-    $P519."handle_types"(57)
-    push_eh $P519
-    .lex "self", self
-    .lex "$/", param_520
-.annotate 'line', 203
-    find_lex $P521, "$/"
-    $P522 = $P521."!make"(unicode:"\x{0}")
-.annotate 'line', 202
+    set $P520, $P519["charspec"]
+    unless_null $P520, vivify_124
+    new $P520, "Undef"
+  vivify_124:
+    $P521 = $P520."ast"()
+    $P522 = $P518."!make"($P521)
+.annotate 'line', 199
     .return ($P522)
-  control_518:
+  control_515:
     .local pmc exception 
     .get_results (exception) 
     getattribute $P523, exception, "payload"
@@ -6418,287 +6562,315 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<misc>"  :subid("48_1274853024.15996") :method :outer("11_1274853024.15996")
+.include "except_types.pasm"
+.sub "quote_escape:sym<0>"  :subid("48_1275811473.30481") :method :outer("11_1275811473.30481")
     .param pmc param_527
-.annotate 'line', 206
+.annotate 'line', 203
     new $P526, 'ExceptionHandler'
     set_addr $P526, control_525
-    $P526."handle_types"(57)
+    $P526."handle_types"(.CONTROL_RETURN)
     push_eh $P526
     .lex "self", self
     .lex "$/", param_527
-.annotate 'line', 207
+.annotate 'line', 204
     find_lex $P528, "$/"
-    find_lex $P531, "$/"
-    unless_null $P531, vivify_124
-    $P531 = root_new ['parrot';'Hash']
-  vivify_124:
-    set $P532, $P531["textq"]
-    unless_null $P532, vivify_125
-    new $P532, "Undef"
-  vivify_125:
-    if $P532, if_530
+    $P529 = $P528."!make"(unicode:"\x{0}")
+.annotate 'line', 203
+    .return ($P529)
+  control_525:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P530, exception, "payload"
+    .return ($P530)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<misc>"  :subid("49_1275811473.30481") :method :outer("11_1275811473.30481")
+    .param pmc param_534
+.annotate 'line', 207
+    new $P533, 'ExceptionHandler'
+    set_addr $P533, control_532
+    $P533."handle_types"(.CONTROL_RETURN)
+    push_eh $P533
+    .lex "self", self
+    .lex "$/", param_534
+.annotate 'line', 208
+    find_lex $P535, "$/"
     find_lex $P538, "$/"
-    unless_null $P538, vivify_126
+    unless_null $P538, vivify_125
     $P538 = root_new ['parrot';'Hash']
-  vivify_126:
-    set $P539, $P538["textqq"]
-    unless_null $P539, vivify_127
+  vivify_125:
+    set $P539, $P538["textq"]
+    unless_null $P539, vivify_126
     new $P539, "Undef"
+  vivify_126:
+    if $P539, if_537
+    find_lex $P545, "$/"
+    unless_null $P545, vivify_127
+    $P545 = root_new ['parrot';'Hash']
   vivify_127:
-    $P540 = $P539."Str"()
-    set $P529, $P540
-    goto if_530_end
-  if_530:
-    new $P533, "String"
-    assign $P533, "\\"
-    find_lex $P534, "$/"
-    unless_null $P534, vivify_128
-    $P534 = root_new ['parrot';'Hash']
+    set $P546, $P545["textqq"]
+    unless_null $P546, vivify_128
+    new $P546, "Undef"
   vivify_128:
-    set $P535, $P534["textq"]
-    unless_null $P535, vivify_129
-    new $P535, "Undef"
+    $P547 = $P546."Str"()
+    set $P536, $P547
+    goto if_537_end
+  if_537:
+    new $P540, "String"
+    assign $P540, "\\"
+    find_lex $P541, "$/"
+    unless_null $P541, vivify_129
+    $P541 = root_new ['parrot';'Hash']
   vivify_129:
-    $S536 = $P535."Str"()
-    concat $P537, $P533, $S536
-    set $P529, $P537
-  if_530_end:
-    $P541 = $P528."!make"($P529)
-.annotate 'line', 206
-    .return ($P541)
-  control_525:
+    set $P542, $P541["textq"]
+    unless_null $P542, vivify_130
+    new $P542, "Undef"
+  vivify_130:
+    $S543 = $P542."Str"()
+    concat $P544, $P540, $S543
+    set $P536, $P544
+  if_537_end:
+    $P548 = $P535."!make"($P536)
+.annotate 'line', 207
+    .return ($P548)
+  control_532:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P542, exception, "payload"
-    .return ($P542)
+    getattribute $P549, exception, "payload"
+    .return ($P549)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "charname"  :subid("49_1274853024.15996") :method :outer("11_1274853024.15996")
-    .param pmc param_546
-.annotate 'line', 210
-    new $P545, 'ExceptionHandler'
-    set_addr $P545, control_544
-    $P545."handle_types"(57)
-    push_eh $P545
-    .lex "self", self
-    .lex "$/", param_546
+.include "except_types.pasm"
+.sub "charname"  :subid("50_1275811473.30481") :method :outer("11_1275811473.30481")
+    .param pmc param_553
 .annotate 'line', 211
-    new $P547, "Undef"
-    .lex "$codepoint", $P547
+    new $P552, 'ExceptionHandler'
+    set_addr $P552, control_551
+    $P552."handle_types"(.CONTROL_RETURN)
+    push_eh $P552
+    .lex "self", self
+    .lex "$/", param_553
 .annotate 'line', 212
-    find_lex $P550, "$/"
-    unless_null $P550, vivify_130
-    $P550 = root_new ['parrot';'Hash']
-  vivify_130:
-    set $P551, $P550["integer"]
-    unless_null $P551, vivify_131
-    new $P551, "Undef"
-  vivify_131:
-    if $P551, if_549
+    new $P554, "Undef"
+    .lex "$codepoint", $P554
 .annotate 'line', 213
-    find_lex $P555, "$/"
-    set $S556, $P555
-    find_codepoint $I557, $S556
-    new $P548, 'Integer'
-    set $P548, $I557
-.annotate 'line', 212
-    goto if_549_end
-  if_549:
-    find_lex $P552, "$/"
-    unless_null $P552, vivify_132
-    $P552 = root_new ['parrot';'Hash']
+    find_lex $P557, "$/"
+    unless_null $P557, vivify_131
+    $P557 = root_new ['parrot';'Hash']
+  vivify_131:
+    set $P558, $P557["integer"]
+    unless_null $P558, vivify_132
+    new $P558, "Undef"
   vivify_132:
-    set $P553, $P552["integer"]
-    unless_null $P553, vivify_133
-    new $P553, "Undef"
-  vivify_133:
-    $P554 = $P553."ast"()
-    set $P548, $P554
-  if_549_end:
-    store_lex "$codepoint", $P548
+    if $P558, if_556
 .annotate 'line', 214
-    find_lex $P559, "$codepoint"
-    set $N560, $P559
-    islt $I561, $N560, 0.0
-    unless $I561, if_558_end
     find_lex $P562, "$/"
-    $P563 = $P562."CURSOR"()
-    new $P564, 'String'
-    set $P564, "Unrecognized character name "
-    find_lex $P565, "$/"
-    concat $P566, $P564, $P565
-    $P563."panic"($P566)
-  if_558_end:
+    set $S563, $P562
+    find_codepoint $I564, $S563
+    new $P555, 'Integer'
+    set $P555, $I564
+.annotate 'line', 213
+    goto if_556_end
+  if_556:
+    find_lex $P559, "$/"
+    unless_null $P559, vivify_133
+    $P559 = root_new ['parrot';'Hash']
+  vivify_133:
+    set $P560, $P559["integer"]
+    unless_null $P560, vivify_134
+    new $P560, "Undef"
+  vivify_134:
+    $P561 = $P560."ast"()
+    set $P555, $P561
+  if_556_end:
+    store_lex "$codepoint", $P555
 .annotate 'line', 215
-    find_lex $P567, "$/"
-    find_lex $P568, "$codepoint"
-    set $I569, $P568
-    chr $S570, $I569
-    $P571 = $P567."!make"($S570)
-.annotate 'line', 210
-    .return ($P571)
-  control_544:
+    find_lex $P566, "$codepoint"
+    set $N567, $P566
+    islt $I568, $N567, 0.0
+    unless $I568, if_565_end
+    find_lex $P569, "$/"
+    $P570 = $P569."CURSOR"()
+    new $P571, 'String'
+    set $P571, "Unrecognized character name "
+    find_lex $P572, "$/"
+    concat $P573, $P571, $P572
+    $P570."panic"($P573)
+  if_565_end:
+.annotate 'line', 216
+    find_lex $P574, "$/"
+    find_lex $P575, "$codepoint"
+    set $I576, $P575
+    chr $S577, $I576
+    $P578 = $P574."!make"($S577)
+.annotate 'line', 211
+    .return ($P578)
+  control_551:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P572, exception, "payload"
-    .return ($P572)
+    getattribute $P579, exception, "payload"
+    .return ($P579)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "charnames"  :subid("50_1274853024.15996") :method :outer("11_1274853024.15996")
-    .param pmc param_576
-.annotate 'line', 218
-    .const 'Sub' $P585 = "51_1274853024.15996" 
-    capture_lex $P585
-    new $P575, 'ExceptionHandler'
-    set_addr $P575, control_574
-    $P575."handle_types"(57)
-    push_eh $P575
-    .lex "self", self
-    .lex "$/", param_576
+.include "except_types.pasm"
+.sub "charnames"  :subid("51_1275811473.30481") :method :outer("11_1275811473.30481")
+    .param pmc param_583
 .annotate 'line', 219
-    new $P577, "Undef"
-    .lex "$str", $P577
-    new $P578, "String"
-    assign $P578, ""
-    store_lex "$str", $P578
+    .const 'Sub' $P592 = "52_1275811473.30481" 
+    capture_lex $P592
+    new $P582, 'ExceptionHandler'
+    set_addr $P582, control_581
+    $P582."handle_types"(.CONTROL_RETURN)
+    push_eh $P582
+    .lex "self", self
+    .lex "$/", param_583
 .annotate 'line', 220
-    find_lex $P580, "$/"
-    unless_null $P580, vivify_134
-    $P580 = root_new ['parrot';'Hash']
-  vivify_134:
-    set $P581, $P580["charname"]
-    unless_null $P581, vivify_135
-    new $P581, "Undef"
+    new $P584, "Undef"
+    .lex "$str", $P584
+    new $P585, "String"
+    assign $P585, ""
+    store_lex "$str", $P585
+.annotate 'line', 221
+    find_lex $P587, "$/"
+    unless_null $P587, vivify_135
+    $P587 = root_new ['parrot';'Hash']
   vivify_135:
-    defined $I582, $P581
-    unless $I582, for_undef_136
-    iter $P579, $P581
-    new $P592, 'ExceptionHandler'
-    set_addr $P592, loop591_handler
-    $P592."handle_types"(64, 66, 65)
-    push_eh $P592
-  loop591_test:
-    unless $P579, loop591_done
-    shift $P583, $P579
-  loop591_redo:
-    .const 'Sub' $P585 = "51_1274853024.15996" 
-    capture_lex $P585
-    $P585($P583)
-  loop591_next:
-    goto loop591_test
-  loop591_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P593, exception, 'type'
-    eq $P593, 64, loop591_next
-    eq $P593, 66, loop591_redo
-  loop591_done:
+    set $P588, $P587["charname"]
+    unless_null $P588, vivify_136
+    new $P588, "Undef"
+  vivify_136:
+    defined $I589, $P588
+    unless $I589, for_undef_137
+    iter $P586, $P588
+    new $P599, 'ExceptionHandler'
+    set_addr $P599, loop598_handler
+    $P599."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P599
+  loop598_test:
+    unless $P586, loop598_done
+    shift $P590, $P586
+  loop598_redo:
+    .const 'Sub' $P592 = "52_1275811473.30481" 
+    capture_lex $P592
+    $P592($P590)
+  loop598_next:
+    goto loop598_test
+  loop598_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P600, exception, 'type'
+    eq $P600, .CONTROL_LOOP_NEXT, loop598_next
+    eq $P600, .CONTROL_LOOP_REDO, loop598_redo
+  loop598_done:
     pop_eh 
-  for_undef_136:
-.annotate 'line', 221
-    find_lex $P594, "$/"
-    find_lex $P595, "$str"
-    $P596 = $P594."!make"($P595)
-.annotate 'line', 218
-    .return ($P596)
-  control_574:
+  for_undef_137:
+.annotate 'line', 222
+    find_lex $P601, "$/"
+    find_lex $P602, "$str"
+    $P603 = $P601."!make"($P602)
+.annotate 'line', 219
+    .return ($P603)
+  control_581:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P597, exception, "payload"
-    .return ($P597)
+    getattribute $P604, exception, "payload"
+    .return ($P604)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block584"  :anon :subid("51_1274853024.15996") :outer("50_1274853024.15996")
-    .param pmc param_586
-.annotate 'line', 220
-    .lex "$_", param_586
-    find_lex $P587, "$str"
-    find_lex $P588, "$_"
-    $S589 = $P588."ast"()
-    concat $P590, $P587, $S589
-    store_lex "$str", $P590
-    .return ($P590)
+.sub "_block591"  :anon :subid("52_1275811473.30481") :outer("51_1275811473.30481")
+    .param pmc param_593
+.annotate 'line', 221
+    .lex "$_", param_593
+    find_lex $P594, "$str"
+    find_lex $P595, "$_"
+    $S596 = $P595."ast"()
+    concat $P597, $P594, $S596
+    store_lex "$str", $P597
+    .return ($P597)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "charspec"  :subid("52_1274853024.15996") :method :outer("11_1274853024.15996")
-    .param pmc param_601
-.annotate 'line', 224
-    new $P600, 'ExceptionHandler'
-    set_addr $P600, control_599
-    $P600."handle_types"(57)
-    push_eh $P600
-    .lex "self", self
-    .lex "$/", param_601
+.include "except_types.pasm"
+.sub "charspec"  :subid("53_1275811473.30481") :method :outer("11_1275811473.30481")
+    .param pmc param_608
 .annotate 'line', 225
-    find_lex $P602, "$/"
-    find_lex $P605, "$/"
-    unless_null $P605, vivify_137
-    $P605 = root_new ['parrot';'Hash']
-  vivify_137:
-    set $P606, $P605["charnames"]
-    unless_null $P606, vivify_138
-    new $P606, "Undef"
+    new $P607, 'ExceptionHandler'
+    set_addr $P607, control_606
+    $P607."handle_types"(.CONTROL_RETURN)
+    push_eh $P607
+    .lex "self", self
+    .lex "$/", param_608
+.annotate 'line', 226
+    find_lex $P609, "$/"
+    find_lex $P612, "$/"
+    unless_null $P612, vivify_138
+    $P612 = root_new ['parrot';'Hash']
   vivify_138:
-    if $P606, if_604
-    find_lex $P610, "$/"
-    $I611 = "string_to_int"($P610, 10)
-    chr $S612, $I611
-    new $P603, 'String'
-    set $P603, $S612
-    goto if_604_end
-  if_604:
-    find_lex $P607, "$/"
-    unless_null $P607, vivify_139
-    $P607 = root_new ['parrot';'Hash']
+    set $P613, $P612["charnames"]
+    unless_null $P613, vivify_139
+    new $P613, "Undef"
   vivify_139:
-    set $P608, $P607["charnames"]
-    unless_null $P608, vivify_140
-    new $P608, "Undef"
+    if $P613, if_611
+    find_lex $P617, "$/"
+    $I618 = "string_to_int"($P617, 10)
+    chr $S619, $I618
+    new $P610, 'String'
+    set $P610, $S619
+    goto if_611_end
+  if_611:
+    find_lex $P614, "$/"
+    unless_null $P614, vivify_140
+    $P614 = root_new ['parrot';'Hash']
   vivify_140:
-    $P609 = $P608."ast"()
-    set $P603, $P609
-  if_604_end:
-    $P613 = $P602."!make"($P603)
-.annotate 'line', 224
-    .return ($P613)
-  control_599:
+    set $P615, $P614["charnames"]
+    unless_null $P615, vivify_141
+    new $P615, "Undef"
+  vivify_141:
+    $P616 = $P615."ast"()
+    set $P610, $P616
+  if_611_end:
+    $P620 = $P609."!make"($P610)
+.annotate 'line', 225
+    .return ($P620)
+  control_606:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P614, exception, "payload"
-    .return ($P614)
+    getattribute $P621, exception, "payload"
+    .return ($P621)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block616" :load :anon :subid("53_1274853024.15996")
+.sub "_block623" :load :anon :subid("54_1275811473.30481")
 .annotate 'line', 3
-    .const 'Sub' $P618 = "11_1274853024.15996" 
-    $P619 = $P618()
-    .return ($P619)
+    .const 'Sub' $P625 = "11_1275811473.30481" 
+    $P626 = $P625()
+    .return ($P626)
 .end
 
 
 .namespace []
-.sub "_block621" :load :anon :subid("54_1274853024.15996")
+.sub "_block628" :load :anon :subid("55_1275811473.30481")
 .annotate 'line', 1
-    .const 'Sub' $P623 = "10_1274853024.15996" 
-    $P624 = $P623()
-    .return ($P624)
+    .const 'Sub' $P630 = "10_1275811473.30481" 
+    $P631 = $P630()
+    .return ($P631)
 .end
 
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274853025.56197")
+.sub "_block11"  :anon :subid("10_1275811474.72541")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
@@ -6712,86 +6884,87 @@
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
-    $P489 = $P14()
+    $P492 = $P14()
 .annotate 'line', 1
-    .return ($P489)
-    .const 'Sub' $P491 = "35_1274853025.56197" 
-    .return ($P491)
+    .return ($P492)
+    .const 'Sub' $P494 = "35_1275811474.72541" 
+    .return ($P494)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post36") :outer("10_1274853025.56197")
+.sub "" :load :init :subid("post36") :outer("10_1275811474.72541")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274853025.56197" 
+    .const 'Sub' $P12 = "10_1275811474.72541" 
     .local pmc block
     set block, $P12
 .annotate 'line', 2
     load_bytecode "PCT/HLLCompiler.pbc"
 .annotate 'line', 1
-    $P494 = get_root_global ["parrot"], "P6metaclass"
-    new $P495, "ResizablePMCArray"
-    push $P495, "$!language"
-    $P494."new_class"("HLL::Compiler", "PCT::HLLCompiler" :named("parent"), $P495 :named("attr"))
+    $P497 = get_root_global ["parrot"], "P6metaclass"
+    new $P498, "ResizablePMCArray"
+    push $P498, "$!language"
+    $P497."new_class"("HLL::Compiler", "PCT::HLLCompiler" :named("parent"), $P498 :named("attr"))
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1274853025.56197") :outer("10_1274853025.56197")
+.sub "_block13"  :subid("11_1275811474.72541") :outer("10_1275811474.72541")
 .annotate 'line', 6
-    .const 'Sub' $P481 = "34_1274853025.56197" 
-    capture_lex $P481
-    .const 'Sub' $P439 = "32_1274853025.56197" 
-    capture_lex $P439
-    .const 'Sub' $P298 = "26_1274853025.56197" 
+    .const 'Sub' $P484 = "34_1275811474.72541" 
+    capture_lex $P484
+    .const 'Sub' $P442 = "32_1275811474.72541" 
+    capture_lex $P442
+    .const 'Sub' $P298 = "26_1275811474.72541" 
     capture_lex $P298
-    .const 'Sub' $P283 = "25_1274853025.56197" 
+    .const 'Sub' $P283 = "25_1275811474.72541" 
     capture_lex $P283
-    .const 'Sub' $P188 = "20_1274853025.56197" 
+    .const 'Sub' $P188 = "20_1275811474.72541" 
     capture_lex $P188
-    .const 'Sub' $P153 = "18_1274853025.56197" 
+    .const 'Sub' $P153 = "18_1275811474.72541" 
     capture_lex $P153
-    .const 'Sub' $P138 = "17_1274853025.56197" 
+    .const 'Sub' $P138 = "17_1275811474.72541" 
     capture_lex $P138
-    .const 'Sub' $P122 = "16_1274853025.56197" 
+    .const 'Sub' $P122 = "16_1275811474.72541" 
     capture_lex $P122
-    .const 'Sub' $P33 = "13_1274853025.56197" 
+    .const 'Sub' $P33 = "13_1275811474.72541" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1274853025.56197" 
+    .const 'Sub' $P15 = "12_1275811474.72541" 
     capture_lex $P15
 .annotate 'line', 14
-    .const 'Sub' $P15 = "12_1274853025.56197" 
+    .const 'Sub' $P15 = "12_1275811474.72541" 
     newclosure $P31, $P15
     .lex "value_type", $P31
 .annotate 'line', 10
     find_lex $P32, "value_type"
 .annotate 'line', 163
-    .const 'Sub' $P481 = "34_1274853025.56197" 
-    newclosure $P487, $P481
+    .const 'Sub' $P484 = "34_1275811474.72541" 
+    newclosure $P490, $P484
 .annotate 'line', 6
-    .return ($P487)
+    .return ($P490)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post37") :outer("11_1274853025.56197")
+.sub "" :load :init :subid("post37") :outer("11_1275811474.72541")
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 11
-    get_hll_global $P488, ["HLL"], "Compiler"
-    $P488."language"("parrot")
+    get_hll_global $P491, ["HLL"], "Compiler"
+    $P491."language"("parrot")
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "value_type"  :subid("12_1274853025.56197") :outer("11_1274853025.56197")
+.include "except_types.pasm"
+.sub "value_type"  :subid("12_1275811474.72541") :outer("11_1275811474.72541")
     .param pmc param_18
 .annotate 'line', 14
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
-    $P17."handle_types"(57)
+    $P17."handle_types"(.CONTROL_RETURN)
     push_eh $P17
     .lex "$value", param_18
 .annotate 'line', 15
@@ -6830,19 +7003,20 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "get_exports"  :subid("13_1274853025.56197") :method :outer("11_1274853025.56197")
+.include "except_types.pasm"
+.sub "get_exports"  :subid("13_1275811474.72541") :method :outer("11_1275811474.72541")
     .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_1274853025.56197" 
+    .const 'Sub' $P105 = "15_1275811474.72541" 
     capture_lex $P105
-    .const 'Sub' $P84 = "14_1274853025.56197" 
+    .const 'Sub' $P84 = "14_1275811474.72541" 
     capture_lex $P84
     new $P35, 'ExceptionHandler'
     set_addr $P35, control_34
-    $P35."handle_types"(57)
+    $P35."handle_types"(.CONTROL_RETURN)
     push_eh $P35
     .lex "self", self
     .lex "$module", param_36
@@ -6938,13 +7112,13 @@
     iter $P100, $P101
     new $P118, 'ExceptionHandler'
     set_addr $P118, loop117_handler
-    $P118."handle_types"(64, 66, 65)
+    $P118."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P118
   loop117_test:
     unless $P100, loop117_done
     shift $P103, $P100
   loop117_redo:
-    .const 'Sub' $P105 = "15_1274853025.56197" 
+    .const 'Sub' $P105 = "15_1275811474.72541" 
     capture_lex $P105
     $P105($P103)
   loop117_next:
@@ -6953,8 +7127,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P119, exception, 'type'
-    eq $P119, 64, loop117_next
-    eq $P119, 66, loop117_redo
+    eq $P119, .CONTROL_LOOP_NEXT, loop117_next
+    eq $P119, .CONTROL_LOOP_REDO, loop117_redo
   loop117_done:
     pop_eh 
   for_undef_42:
@@ -6968,13 +7142,13 @@
     iter $P79, $P80
     new $P98, 'ExceptionHandler'
     set_addr $P98, loop97_handler
-    $P98."handle_types"(64, 66, 65)
+    $P98."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P98
   loop97_test:
     unless $P79, loop97_done
     shift $P82, $P79
   loop97_redo:
-    .const 'Sub' $P84 = "14_1274853025.56197" 
+    .const 'Sub' $P84 = "14_1275811474.72541" 
     capture_lex $P84
     $P84($P82)
   loop97_next:
@@ -6983,8 +7157,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P99, exception, 'type'
-    eq $P99, 64, loop97_next
-    eq $P99, 66, loop97_redo
+    eq $P99, .CONTROL_LOOP_NEXT, loop97_next
+    eq $P99, .CONTROL_LOOP_REDO, loop97_redo
   loop97_done:
     pop_eh 
   for_undef_45:
@@ -7002,7 +7176,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block104"  :anon :subid("15_1274853025.56197") :outer("13_1274853025.56197")
+.sub "_block104"  :anon :subid("15_1275811474.72541") :outer("13_1275811474.72541")
     .param pmc param_107
 .annotate 'line', 40
     new $P106, "Undef"
@@ -7034,7 +7208,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block83"  :anon :subid("14_1274853025.56197") :outer("13_1274853025.56197")
+.sub "_block83"  :anon :subid("14_1275811474.72541") :outer("13_1275811474.72541")
     .param pmc param_86
 .annotate 'line', 34
     new $P85, "Undef"
@@ -7073,12 +7247,13 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "get_module"  :subid("16_1274853025.56197") :method :outer("11_1274853025.56197")
+.include "except_types.pasm"
+.sub "get_module"  :subid("16_1275811474.72541") :method :outer("11_1275811474.72541")
     .param pmc param_125
 .annotate 'line', 47
     new $P124, 'ExceptionHandler'
     set_addr $P124, control_123
-    $P124."handle_types"(57)
+    $P124."handle_types"(.CONTROL_RETURN)
     push_eh $P124
     .lex "self", self
     .lex "$name", param_125
@@ -7113,13 +7288,14 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "language"  :subid("17_1274853025.56197") :method :outer("11_1274853025.56197")
+.include "except_types.pasm"
+.sub "language"  :subid("17_1275811474.72541") :method :outer("11_1275811474.72541")
     .param pmc param_141 :optional
     .param int has_param_141 :opt_flag
 .annotate 'line', 53
     new $P140, 'ExceptionHandler'
     set_addr $P140, control_139
-    $P140."handle_types"(57)
+    $P140."handle_types"(.CONTROL_RETURN)
     push_eh $P140
     .lex "self", self
     if has_param_141, optparam_51
@@ -7157,14 +7333,15 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "load_module"  :subid("18_1274853025.56197") :method :outer("11_1274853025.56197")
+.include "except_types.pasm"
+.sub "load_module"  :subid("18_1275811474.72541") :method :outer("11_1275811474.72541")
     .param pmc param_156
 .annotate 'line', 61
-    .const 'Sub' $P166 = "19_1274853025.56197" 
+    .const 'Sub' $P166 = "19_1275811474.72541" 
     capture_lex $P166
     new $P155, 'ExceptionHandler'
     set_addr $P155, control_154
-    $P155."handle_types"(57)
+    $P155."handle_types"(.CONTROL_RETURN)
     push_eh $P155
     .lex "self", self
     .lex "$name", param_156
@@ -7187,7 +7364,7 @@
     assign $P164, 0
     store_lex "$loaded", $P164
 .annotate 'line', 64
-    .const 'Sub' $P166 = "19_1274853025.56197" 
+    .const 'Sub' $P166 = "19_1275811474.72541" 
     capture_lex $P166
     $P166()
 .annotate 'line', 65
@@ -7216,11 +7393,12 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block165"  :anon :subid("19_1274853025.56197") :outer("18_1274853025.56197")
+.include "except_types.pasm"
+.sub "_block165"  :anon :subid("19_1275811474.72541") :outer("18_1275811474.72541")
 .annotate 'line', 64
     new $P173, 'ExceptionHandler'
     set_addr $P173, control_172
-    $P173."handle_types_except"(57, 58, 59, 60, 62, 63, 64, 65, 66)
+    $P173."handle_types_except"(.CONTROL_RETURN,  .CONTROL_OK,  .CONTROL_BREAK,  .CONTROL_CONTINUE,  .CONTROL_TAKE,  .CONTROL_LEAVE,  .CONTROL_EXIT,  .CONTROL_LOOP_NEXT,  .CONTROL_LOOP_LAST,  .CONTROL_LOOP_REDO)
     push_eh $P173
     find_lex $P167, "$base"
     concat $P168, $P167, ".pbc"
@@ -7249,15 +7427,16 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "import"  :subid("20_1274853025.56197") :method :outer("11_1274853025.56197")
+.include "except_types.pasm"
+.sub "import"  :subid("20_1275811474.72541") :method :outer("11_1275811474.72541")
     .param pmc param_191
     .param pmc param_192
 .annotate 'line', 69
-    .const 'Sub' $P198 = "21_1274853025.56197" 
+    .const 'Sub' $P198 = "21_1275811474.72541" 
     capture_lex $P198
     new $P190, 'ExceptionHandler'
     set_addr $P190, control_189
-    $P190."handle_types"(57)
+    $P190."handle_types"(.CONTROL_RETURN)
     push_eh $P190
     .lex "self", self
     .lex "$target", param_191
@@ -7269,13 +7448,13 @@
     iter $P193, $P194
     new $P280, 'ExceptionHandler'
     set_addr $P280, loop279_handler
-    $P280."handle_types"(64, 66, 65)
+    $P280."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P280
   loop279_test:
     unless $P193, loop279_done
     shift $P196, $P193
   loop279_redo:
-    .const 'Sub' $P198 = "21_1274853025.56197" 
+    .const 'Sub' $P198 = "21_1275811474.72541" 
     capture_lex $P198
     $P198($P196)
   loop279_next:
@@ -7284,8 +7463,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P281, exception, 'type'
-    eq $P281, 64, loop279_next
-    eq $P281, 66, loop279_redo
+    eq $P281, .CONTROL_LOOP_NEXT, loop279_next
+    eq $P281, .CONTROL_LOOP_REDO, loop279_redo
   loop279_done:
     pop_eh 
   for_undef_53:
@@ -7300,14 +7479,15 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block197"  :anon :subid("21_1274853025.56197") :outer("20_1274853025.56197")
+.include "except_types.pasm"
+.sub "_block197"  :anon :subid("21_1275811474.72541") :outer("20_1275811474.72541")
     .param pmc param_201
 .annotate 'line', 70
-    .const 'Sub' $P268 = "24_1274853025.56197" 
+    .const 'Sub' $P268 = "24_1275811474.72541" 
     capture_lex $P268
-    .const 'Sub' $P248 = "23_1274853025.56197" 
+    .const 'Sub' $P248 = "23_1275811474.72541" 
     capture_lex $P248
-    .const 'Sub' $P219 = "22_1274853025.56197" 
+    .const 'Sub' $P219 = "22_1275811474.72541" 
     capture_lex $P219
 .annotate 'line', 71
     new $P199, "Undef"
@@ -7349,13 +7529,13 @@
     iter $P263, $P264
     new $P277, 'ExceptionHandler'
     set_addr $P277, loop276_handler
-    $P277."handle_types"(64, 66, 65)
+    $P277."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P277
   loop276_test:
     unless $P263, loop276_done
     shift $P266, $P263
   loop276_redo:
-    .const 'Sub' $P268 = "24_1274853025.56197" 
+    .const 'Sub' $P268 = "24_1275811474.72541" 
     capture_lex $P268
     $P268($P266)
   loop276_next:
@@ -7364,8 +7544,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P278, exception, 'type'
-    eq $P278, 64, loop276_next
-    eq $P278, 66, loop276_redo
+    eq $P278, .CONTROL_LOOP_NEXT, loop276_next
+    eq $P278, .CONTROL_LOOP_REDO, loop276_redo
   loop276_done:
     pop_eh 
   for_undef_54:
@@ -7381,13 +7561,13 @@
     iter $P243, $P244
     new $P261, 'ExceptionHandler'
     set_addr $P261, loop260_handler
-    $P261."handle_types"(64, 66, 65)
+    $P261."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P261
   loop260_test:
     unless $P243, loop260_done
     shift $P246, $P243
   loop260_redo:
-    .const 'Sub' $P248 = "23_1274853025.56197" 
+    .const 'Sub' $P248 = "23_1275811474.72541" 
     capture_lex $P248
     $P248($P246)
   loop260_next:
@@ -7396,8 +7576,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P262, exception, 'type'
-    eq $P262, 64, loop260_next
-    eq $P262, 66, loop260_redo
+    eq $P262, .CONTROL_LOOP_NEXT, loop260_next
+    eq $P262, .CONTROL_LOOP_REDO, loop260_redo
   loop260_done:
     pop_eh 
   for_undef_56:
@@ -7415,13 +7595,13 @@
     iter $P214, $P215
     new $P233, 'ExceptionHandler'
     set_addr $P233, loop232_handler
-    $P233."handle_types"(64, 66, 65)
+    $P233."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P233
   loop232_test:
     unless $P214, loop232_done
     shift $P217, $P214
   loop232_redo:
-    .const 'Sub' $P219 = "22_1274853025.56197" 
+    .const 'Sub' $P219 = "22_1275811474.72541" 
     capture_lex $P219
     $P219($P217)
   loop232_next:
@@ -7430,8 +7610,8 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P234, exception, 'type'
-    eq $P234, 64, loop232_next
-    eq $P234, 66, loop232_redo
+    eq $P234, .CONTROL_LOOP_NEXT, loop232_next
+    eq $P234, .CONTROL_LOOP_REDO, loop232_redo
   loop232_done:
     pop_eh 
   for_undef_57:
@@ -7444,7 +7624,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block267"  :anon :subid("24_1274853025.56197") :outer("21_1274853025.56197")
+.sub "_block267"  :anon :subid("24_1275811474.72541") :outer("21_1275811474.72541")
     .param pmc param_269
 .annotate 'line', 80
     .lex "$_", param_269
@@ -7464,7 +7644,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block247"  :anon :subid("23_1274853025.56197") :outer("21_1274853025.56197")
+.sub "_block247"  :anon :subid("23_1275811474.72541") :outer("21_1275811474.72541")
     .param pmc param_249
 .annotate 'line', 77
     .lex "$_", param_249
@@ -7484,7 +7664,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block218"  :anon :subid("22_1274853025.56197") :outer("21_1274853025.56197")
+.sub "_block218"  :anon :subid("22_1275811474.72541") :outer("21_1275811474.72541")
     .param pmc param_220
 .annotate 'line', 74
     .lex "$_", param_220
@@ -7505,19 +7685,20 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "autoprint"  :subid("25_1274853025.56197") :method :outer("11_1274853025.56197")
+.include "except_types.pasm"
+.sub "autoprint"  :subid("25_1275811474.72541") :method :outer("11_1275811474.72541")
     .param pmc param_286
 .annotate 'line', 85
     new $P285, 'ExceptionHandler'
     set_addr $P285, control_284
-    $P285."handle_types"(57)
+    $P285."handle_types"(.CONTROL_RETURN)
     push_eh $P285
     .lex "self", self
     .lex "$value", param_286
 .annotate 'line', 87
-    getstdout $P289
-    tell $I290, $P289
-    set $N291, $I290
+    getinterp $P289
+    $P290 = $P289."stdhandle"(1)
+    $N291 = $P290."tell"()
     find_dynamic_lex $P292, "$*AUTOPRINTPOS"
     unless_null $P292, vivify_58
     get_hll_global $P292, "$AUTOPRINTPOS"
@@ -7548,14 +7729,15 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "interactive"  :subid("26_1274853025.56197") :method :outer("11_1274853025.56197")
+.include "except_types.pasm"
+.sub "interactive"  :subid("26_1275811474.72541") :method :outer("11_1275811474.72541")
     .param pmc param_301 :slurpy :named
 .annotate 'line', 90
-    .const 'Sub' $P328 = "27_1274853025.56197" 
-    capture_lex $P328
+    .const 'Sub' $P331 = "27_1275811474.72541" 
+    capture_lex $P331
     new $P300, 'ExceptionHandler'
     set_addr $P300, control_299
-    $P300."handle_types"(57)
+    $P300."handle_types"(.CONTROL_RETURN)
     push_eh $P300
     .lex "self", self
     .lex "%adverbs", param_301
@@ -7583,491 +7765,490 @@
     set $P309, $S308
     store_lex "$target", $P309
 .annotate 'line', 93
-    find_lex $P310, "self"
-    $S311 = $P310."commandline_banner"()
-    printerr $S311
+    getinterp $P310
+    $P311 = $P310."stdhandle"(2)
+    find_lex $P312, "self"
+    $S313 = $P312."commandline_banner"()
+    print $P311, $S313
 .annotate 'line', 95
-    getstdin $P312
-    store_lex "$stdin", $P312
+    getinterp $P314
+    $P315 = $P314."stdhandle"(0)
+    store_lex "$stdin", $P315
 .annotate 'line', 96
-    find_lex $P313, "%adverbs"
-    unless_null $P313, vivify_62
-    $P313 = root_new ['parrot';'Hash']
+    find_lex $P316, "%adverbs"
+    unless_null $P316, vivify_62
+    $P316 = root_new ['parrot';'Hash']
   vivify_62:
-    set $P314, $P313["encoding"]
-    unless_null $P314, vivify_63
-    new $P314, "Undef"
+    set $P317, $P316["encoding"]
+    unless_null $P317, vivify_63
+    new $P317, "Undef"
   vivify_63:
-    set $S315, $P314
-    new $P316, 'String'
-    set $P316, $S315
-    store_lex "$encoding", $P316
+    set $S318, $P317
+    new $P319, 'String'
+    set $P319, $S318
+    store_lex "$encoding", $P319
 .annotate 'line', 97
-    find_lex $P320, "$encoding"
-    if $P320, if_319
-    set $P318, $P320
-    goto if_319_end
-  if_319:
-    find_lex $P321, "$encoding"
-    set $S322, $P321
-    isne $I323, $S322, "fixed_8"
-    new $P318, 'Integer'
-    set $P318, $I323
-  if_319_end:
-    unless $P318, if_317_end
+    find_lex $P323, "$encoding"
+    if $P323, if_322
+    set $P321, $P323
+    goto if_322_end
+  if_322:
+    find_lex $P324, "$encoding"
+    set $S325, $P324
+    isne $I326, $S325, "fixed_8"
+    new $P321, 'Integer'
+    set $P321, $I326
+  if_322_end:
+    unless $P321, if_320_end
 .annotate 'line', 98
-    find_lex $P324, "$stdin"
-    find_lex $P325, "$encoding"
-    $P324."encoding"($P325)
-  if_317_end:
+    find_lex $P327, "$stdin"
+    find_lex $P328, "$encoding"
+    $P327."encoding"($P328)
+  if_320_end:
 .annotate 'line', 101
-    new $P436, 'ExceptionHandler'
-    set_addr $P436, loop435_handler
-    $P436."handle_types"(64, 66, 65)
-    push_eh $P436
-  loop435_test:
-    new $P326, "Integer"
-    assign $P326, 1
-    unless $P326, loop435_done
-  loop435_redo:
-    .const 'Sub' $P328 = "27_1274853025.56197" 
-    capture_lex $P328
-    $P328()
-  loop435_next:
-    goto loop435_test
-  loop435_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P437, exception, 'type'
-    eq $P437, 64, loop435_next
-    eq $P437, 66, loop435_redo
-  loop435_done:
+    new $P439, 'ExceptionHandler'
+    set_addr $P439, loop438_handler
+    $P439."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P439
+  loop438_test:
+    new $P329, "Integer"
+    assign $P329, 1
+    unless $P329, loop438_done
+  loop438_redo:
+    .const 'Sub' $P331 = "27_1275811474.72541" 
+    capture_lex $P331
+    $P331()
+  loop438_next:
+    goto loop438_test
+  loop438_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P440, exception, 'type'
+    eq $P440, .CONTROL_LOOP_NEXT, loop438_next
+    eq $P440, .CONTROL_LOOP_REDO, loop438_redo
+  loop438_done:
     pop_eh 
 .annotate 'line', 90
-    .return ($P326)
+    .return ($P329)
   control_299:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P438, exception, "payload"
-    .return ($P438)
+    getattribute $P441, exception, "payload"
+    .return ($P441)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block327"  :anon :subid("27_1274853025.56197") :outer("26_1274853025.56197")
+.include "except_types.pasm"
+.sub "_block330"  :anon :subid("27_1275811474.72541") :outer("26_1275811474.72541")
 .annotate 'line', 101
-    .const 'Sub' $P364 = "28_1274853025.56197" 
-    capture_lex $P364
+    .const 'Sub' $P367 = "28_1275811474.72541" 
+    capture_lex $P367
 .annotate 'line', 104
-    new $P329, "Undef"
-    .lex "$prompt", $P329
+    new $P332, "Undef"
+    .lex "$prompt", $P332
 .annotate 'line', 105
-    new $P330, "Undef"
-    .lex "$code", $P330
+    new $P333, "Undef"
+    .lex "$code", $P333
 .annotate 'line', 110
-    new $P331, "Undef"
-    .lex "$*AUTOPRINTPOS", $P331
+    new $P334, "Undef"
+    .lex "$*AUTOPRINTPOS", $P334
 .annotate 'line', 111
-    get_global $P332, "$interactive_ctx"
-    unless_null $P332, vivify_64
-    new $P332, "Undef"
-    set_global "$interactive_ctx", $P332
+    get_global $P335, "$interactive_ctx"
+    unless_null $P335, vivify_64
+    new $P335, "Undef"
+    set_global "$interactive_ctx", $P335
   vivify_64:
 .annotate 'line', 112
-    get_global $P333, "%interactive_pad"
-    unless_null $P333, vivify_65
-    $P333 = root_new ['parrot';'Hash']
-    set_global "%interactive_pad", $P333
+    get_global $P336, "%interactive_pad"
+    unless_null $P336, vivify_65
+    $P336 = root_new ['parrot';'Hash']
+    set_global "%interactive_pad", $P336
   vivify_65:
 .annotate 'line', 113
-    new $P334, "Undef"
-    .lex "$*CTXSAVE", $P334
+    new $P337, "Undef"
+    .lex "$*CTXSAVE", $P337
 .annotate 'line', 114
-    new $P335, "Undef"
-    .lex "$*MAIN_CTX", $P335
+    new $P338, "Undef"
+    .lex "$*MAIN_CTX", $P338
 .annotate 'line', 102
-    find_lex $P337, "$stdin"
-    if $P337, unless_336_end
-.include "except_types.pasm"
-    $P338 = new "Exception"
-    $P338["type"] = .CONTROL_LOOP_LAST
-    throw $P338
-  unless_336_end:
+    find_lex $P340, "$stdin"
+    if $P340, unless_339_end
+    set $I341, .CONTROL_LOOP_LAST
+    die 0, $I341
+  unless_339_end:
 .annotate 'line', 104
-    find_lex $P340, "self"
-    $P341 = $P340."commandline_prompt"()
-    set $P339, $P341
-    defined $I343, $P339
-    if $I343, default_342
-    new $P344, "String"
-    assign $P344, "> "
-    set $P339, $P344
-  default_342:
-    store_lex "$prompt", $P339
+    find_lex $P343, "self"
+    $P344 = $P343."commandline_prompt"()
+    set $P342, $P344
+    defined $I346, $P342
+    if $I346, default_345
+    new $P347, "String"
+    assign $P347, "> "
+    set $P342, $P347
+  default_345:
+    store_lex "$prompt", $P342
 .annotate 'line', 105
-    find_lex $P345, "$stdin"
-    find_lex $P346, "$prompt"
-    set $S347, $P346
-    $P348 = $P345."readline_interactive"($S347)
-    store_lex "$code", $P348
+    find_lex $P348, "$stdin"
+    find_lex $P349, "$prompt"
+    set $S350, $P349
+    $P351 = $P348."readline_interactive"($S350)
+    store_lex "$code", $P351
 .annotate 'line', 107
-    find_lex $P350, "$code"
-    isnull $I351, $P350
-    unless $I351, if_349_end
-.include "except_types.pasm"
-    $P352 = new "Exception"
-    $P352["type"] = .CONTROL_LOOP_LAST
-    throw $P352
-  if_349_end:
+    find_lex $P353, "$code"
+    isnull $I354, $P353
+    unless $I354, if_352_end
+    set $I355, .CONTROL_LOOP_LAST
+    die 0, $I355
+  if_352_end:
 .annotate 'line', 110
-    getstdout $P353
-    tell $I354, $P353
-    new $P355, 'Integer'
-    set $P355, $I354
-    store_lex "$*AUTOPRINTPOS", $P355
-    get_global $P356, "$interactive_ctx"
-    get_global $P357, "%interactive_pad"
+    getinterp $P356
+    $P357 = $P356."stdhandle"(1)
+    $P358 = $P357."tell"()
+    store_lex "$*AUTOPRINTPOS", $P358
+    get_global $P359, "$interactive_ctx"
+    get_global $P360, "%interactive_pad"
 .annotate 'line', 113
-    find_lex $P358, "self"
-    store_lex "$*CTXSAVE", $P358
-    find_lex $P359, "$*MAIN_CTX"
-    unless_null $P359, vivify_66
-    get_hll_global $P359, "$MAIN_CTX"
-    unless_null $P359, vivify_67
+    find_lex $P361, "self"
+    store_lex "$*CTXSAVE", $P361
+    find_lex $P362, "$*MAIN_CTX"
+    unless_null $P362, vivify_66
+    get_hll_global $P362, "$MAIN_CTX"
+    unless_null $P362, vivify_67
     die "Contextual $*MAIN_CTX not found"
   vivify_67:
   vivify_66:
 .annotate 'line', 116
-    find_lex $P362, "$code"
-    if $P362, if_361
-    set $P360, $P362
-    goto if_361_end
-  if_361:
-    .const 'Sub' $P364 = "28_1274853025.56197" 
-    capture_lex $P364
-    $P434 = $P364()
-    set $P360, $P434
-  if_361_end:
+    find_lex $P365, "$code"
+    if $P365, if_364
+    set $P363, $P365
+    goto if_364_end
+  if_364:
+    .const 'Sub' $P367 = "28_1275811474.72541" 
+    capture_lex $P367
+    $P437 = $P367()
+    set $P363, $P437
+  if_364_end:
 .annotate 'line', 101
-    .return ($P360)
+    .return ($P363)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block363"  :anon :subid("28_1274853025.56197") :outer("27_1274853025.56197")
+.include "except_types.pasm"
+.sub "_block366"  :anon :subid("28_1275811474.72541") :outer("27_1275811474.72541")
 .annotate 'line', 116
-    .const 'Sub' $P402 = "31_1274853025.56197" 
-    capture_lex $P402
-    .const 'Sub' $P370 = "29_1274853025.56197" 
-    capture_lex $P370
+    .const 'Sub' $P405 = "31_1275811474.72541" 
+    capture_lex $P405
+    .const 'Sub' $P373 = "29_1275811474.72541" 
+    capture_lex $P373
 .annotate 'line', 118
-    new $P365, "Undef"
-    .lex "$output", $P365
+    new $P368, "Undef"
+    .lex "$output", $P368
 .annotate 'line', 117
-    find_lex $P366, "$code"
-    concat $P367, $P366, "\n"
-    store_lex "$code", $P367
-    find_lex $P368, "$output"
+    find_lex $P369, "$code"
+    concat $P370, $P369, "\n"
+    store_lex "$code", $P370
+    find_lex $P371, "$output"
 .annotate 'line', 119
-    .const 'Sub' $P370 = "29_1274853025.56197" 
-    capture_lex $P370
-    $P370()
+    .const 'Sub' $P373 = "29_1275811474.72541" 
+    capture_lex $P373
+    $P373()
 .annotate 'line', 126
-    find_dynamic_lex $P394, "$*MAIN_CTX"
-    unless_null $P394, vivify_68
-    get_hll_global $P394, "$MAIN_CTX"
-    unless_null $P394, vivify_69
+    find_dynamic_lex $P397, "$*MAIN_CTX"
+    unless_null $P397, vivify_68
+    get_hll_global $P397, "$MAIN_CTX"
+    unless_null $P397, vivify_69
     die "Contextual $*MAIN_CTX not found"
   vivify_69:
   vivify_68:
-    defined $I395, $P394
-    unless $I395, if_393_end
+    defined $I398, $P397
+    unless $I398, if_396_end
 .annotate 'line', 127
-    find_dynamic_lex $P397, "$*MAIN_CTX"
-    unless_null $P397, vivify_70
-    get_hll_global $P397, "$MAIN_CTX"
-    unless_null $P397, vivify_71
+    find_dynamic_lex $P400, "$*MAIN_CTX"
+    unless_null $P400, vivify_70
+    get_hll_global $P400, "$MAIN_CTX"
+    unless_null $P400, vivify_71
     die "Contextual $*MAIN_CTX not found"
   vivify_71:
   vivify_70:
-    $P398 = $P397."lexpad_full"()
-    defined $I399, $P398
-    unless $I399, for_undef_72
-    iter $P396, $P398
-    new $P410, 'ExceptionHandler'
-    set_addr $P410, loop409_handler
-    $P410."handle_types"(64, 66, 65)
-    push_eh $P410
-  loop409_test:
-    unless $P396, loop409_done
-    shift $P400, $P396
-  loop409_redo:
-    .const 'Sub' $P402 = "31_1274853025.56197" 
-    capture_lex $P402
-    $P402($P400)
-  loop409_next:
-    goto loop409_test
-  loop409_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P411, exception, 'type'
-    eq $P411, 64, loop409_next
-    eq $P411, 66, loop409_redo
-  loop409_done:
+    $P401 = $P400."lexpad_full"()
+    defined $I402, $P401
+    unless $I402, for_undef_72
+    iter $P399, $P401
+    new $P413, 'ExceptionHandler'
+    set_addr $P413, loop412_handler
+    $P413."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P413
+  loop412_test:
+    unless $P399, loop412_done
+    shift $P403, $P399
+  loop412_redo:
+    .const 'Sub' $P405 = "31_1275811474.72541" 
+    capture_lex $P405
+    $P405($P403)
+  loop412_next:
+    goto loop412_test
+  loop412_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P414, exception, 'type'
+    eq $P414, .CONTROL_LOOP_NEXT, loop412_next
+    eq $P414, .CONTROL_LOOP_REDO, loop412_redo
+  loop412_done:
     pop_eh 
   for_undef_72:
-  if_393_end:
+  if_396_end:
 .annotate 'line', 131
-    find_lex $P413, "$output"
-    isnull $I414, $P413
-    unless $I414, if_412_end
-.include "except_types.pasm"
-    $P415 = new "Exception"
-    $P415["type"] = .CONTROL_LOOP_NEXT
-    throw $P415
-  if_412_end:
+    find_lex $P416, "$output"
+    isnull $I417, $P416
+    unless $I417, if_415_end
+    set $I418, .CONTROL_LOOP_NEXT
+    die 0, $I418
+  if_415_end:
 .annotate 'line', 133
-    find_lex $P418, "$target"
-    isfalse $I419, $P418
-    if $I419, if_417
+    find_lex $P421, "$target"
+    isfalse $I422, $P421
+    if $I422, if_420
 .annotate 'line', 135
-    find_lex $P425, "$target"
-    set $S426, $P425
-    iseq $I427, $S426, "pir"
-    if $I427, if_424
+    find_lex $P428, "$target"
+    set $S429, $P428
+    iseq $I430, $S429, "pir"
+    if $I430, if_427
 .annotate 'line', 138
-    find_lex $P429, "self"
-    find_lex $P430, "$output"
-    find_lex $P431, "$target"
-    find_lex $P432, "%adverbs"
-    $P433 = $P429."dumper"($P430, $P431, $P432 :flat)
+    find_lex $P432, "self"
+    find_lex $P433, "$output"
+    find_lex $P434, "$target"
+    find_lex $P435, "%adverbs"
+    $P436 = $P432."dumper"($P433, $P434, $P435 :flat)
 .annotate 'line', 137
-    set $P423, $P433
+    set $P426, $P436
 .annotate 'line', 135
-    goto if_424_end
-  if_424:
+    goto if_427_end
+  if_427:
 .annotate 'line', 136
-    find_lex $P428, "$output"
-    say $P428
-  if_424_end:
+    find_lex $P431, "$output"
+    say $P431
+  if_427_end:
 .annotate 'line', 135
-    set $P416, $P423
+    set $P419, $P426
 .annotate 'line', 133
-    goto if_417_end
-  if_417:
+    goto if_420_end
+  if_420:
 .annotate 'line', 134
-    find_lex $P420, "self"
-    find_lex $P421, "$output"
-    $P422 = $P420."autoprint"($P421)
+    find_lex $P423, "self"
+    find_lex $P424, "$output"
+    $P425 = $P423."autoprint"($P424)
 .annotate 'line', 133
-    set $P416, $P422
-  if_417_end:
+    set $P419, $P425
+  if_420_end:
 .annotate 'line', 116
-    .return ($P416)
+    .return ($P419)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block369"  :anon :subid("29_1274853025.56197") :outer("28_1274853025.56197")
+.include "except_types.pasm"
+.sub "_block372"  :anon :subid("29_1275811474.72541") :outer("28_1275811474.72541")
 .annotate 'line', 119
-    .const 'Sub' $P382 = "30_1274853025.56197" 
-    capture_lex $P382
-    new $P378, 'ExceptionHandler'
-    set_addr $P378, control_377
-    $P378."handle_types_except"(57, 58, 59, 60, 62, 63, 64, 65, 66)
-    push_eh $P378
+    .const 'Sub' $P385 = "30_1275811474.72541" 
+    capture_lex $P385
+    new $P381, 'ExceptionHandler'
+    set_addr $P381, control_380
+    $P381."handle_types_except"(.CONTROL_RETURN,  .CONTROL_OK,  .CONTROL_BREAK,  .CONTROL_CONTINUE,  .CONTROL_TAKE,  .CONTROL_LEAVE,  .CONTROL_EXIT,  .CONTROL_LOOP_NEXT,  .CONTROL_LOOP_LAST,  .CONTROL_LOOP_REDO)
+    push_eh $P381
 .annotate 'line', 120
-    find_lex $P371, "self"
-    find_lex $P372, "$code"
-    get_global $P373, "$interactive_ctx"
-    find_lex $P374, "%adverbs"
-    $P375 = $P371."eval"($P372, $P374 :flat, $P373 :named("outer_ctx"))
-    store_lex "$output", $P375
+    find_lex $P374, "self"
+    find_lex $P375, "$code"
+    get_global $P376, "$interactive_ctx"
+    find_lex $P377, "%adverbs"
+    $P378 = $P374."eval"($P375, $P377 :flat, $P376 :named("outer_ctx"))
+    store_lex "$output", $P378
 .annotate 'line', 119
     pop_eh 
-    goto skip_handler_376
-  control_377:
+    goto skip_handler_379
+  control_380:
 .annotate 'line', 121
     .local pmc exception 
     .get_results (exception) 
-    .const 'Sub' $P382 = "30_1274853025.56197" 
-    newclosure $P390, $P382
-    $P390(exception)
-    new $P391, 'Integer'
-    set $P391, 1
-    set exception["handled"], $P391
-    set $I392, exception["handled"]
-    ne $I392, 1, nothandled_380
-  handled_379:
+    .const 'Sub' $P385 = "30_1275811474.72541" 
+    newclosure $P393, $P385
+    $P393(exception)
+    new $P394, 'Integer'
+    set $P394, 1
+    set exception["handled"], $P394
+    set $I395, exception["handled"]
+    ne $I395, 1, nothandled_383
+  handled_382:
     .return (exception)
-  nothandled_380:
+  nothandled_383:
     rethrow exception
-  skip_handler_376:
+  skip_handler_379:
 .annotate 'line', 119
     .return ()
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block381"  :anon :subid("30_1274853025.56197") :outer("29_1274853025.56197")
-    .param pmc param_383
+.include "except_types.pasm"
+.sub "_block384"  :anon :subid("30_1275811474.72541") :outer("29_1275811474.72541")
+    .param pmc param_386
 .annotate 'line', 121
-    .lex "$_", param_383
-    find_lex $P384, "$_"
-    .lex "$!", $P384
+    .lex "$_", param_386
+    find_lex $P387, "$_"
+    .lex "$!", $P387
 .annotate 'line', 122
-    find_lex $P385, "$!"
-    set $S386, $P385
-    new $P387, 'String'
-    set $P387, $S386
-    concat $P388, $P387, "\n"
-    print $P388
+    find_lex $P388, "$!"
+    set $S389, $P388
+    new $P390, 'String'
+    set $P390, $S389
+    concat $P391, $P390, "\n"
+    print $P391
 .annotate 'line', 123
-.include "except_types.pasm"
-    $P389 = new "Exception"
-    $P389["type"] = .CONTROL_LOOP_NEXT
-    throw $P389
+    set $I392, .CONTROL_LOOP_NEXT
+    die 0, $I392
 .annotate 'line', 121
-    .return ($P389)
+    .return ()
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block401"  :anon :subid("31_1274853025.56197") :outer("28_1274853025.56197")
-    .param pmc param_403
+.sub "_block404"  :anon :subid("31_1275811474.72541") :outer("28_1275811474.72541")
+    .param pmc param_406
 .annotate 'line', 127
-    .lex "$_", param_403
+    .lex "$_", param_406
 .annotate 'line', 128
-    find_lex $P404, "$_"
-    $P405 = $P404."value"()
-    find_lex $P406, "$_"
-    $P407 = $P406."key"()
-    get_global $P408, "%interactive_pad"
-    unless_null $P408, vivify_73
-    $P408 = root_new ['parrot';'Hash']
-    set_global "%interactive_pad", $P408
+    find_lex $P407, "$_"
+    $P408 = $P407."value"()
+    find_lex $P409, "$_"
+    $P410 = $P409."key"()
+    get_global $P411, "%interactive_pad"
+    unless_null $P411, vivify_73
+    $P411 = root_new ['parrot';'Hash']
+    set_global "%interactive_pad", $P411
   vivify_73:
-    set $P408[$P407], $P405
+    set $P411[$P410], $P408
 .annotate 'line', 127
-    .return ($P405)
+    .return ($P408)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "eval"  :subid("32_1274853025.56197") :method :outer("11_1274853025.56197")
-    .param pmc param_442
-    .param pmc param_443 :slurpy
-    .param pmc param_444 :slurpy :named
+.include "except_types.pasm"
+.sub "eval"  :subid("32_1275811474.72541") :method :outer("11_1275811474.72541")
+    .param pmc param_445
+    .param pmc param_446 :slurpy
+    .param pmc param_447 :slurpy :named
 .annotate 'line', 144
-    .const 'Sub' $P463 = "33_1274853025.56197" 
-    capture_lex $P463
-    new $P441, 'ExceptionHandler'
-    set_addr $P441, control_440
-    $P441."handle_types"(57)
-    push_eh $P441
-    .lex "self", self
-    .lex "$code", param_442
-    .lex "@args", param_443
-    .lex "%adverbs", param_444
+    .const 'Sub' $P466 = "33_1275811474.72541" 
+    capture_lex $P466
+    new $P444, 'ExceptionHandler'
+    set_addr $P444, control_443
+    $P444."handle_types"(.CONTROL_RETURN)
+    push_eh $P444
+    .lex "self", self
+    .lex "$code", param_445
+    .lex "@args", param_446
+    .lex "%adverbs", param_447
 .annotate 'line', 145
-    new $P445, "Undef"
-    .lex "$output", $P445
+    new $P448, "Undef"
+    .lex "$output", $P448
 .annotate 'line', 144
-    find_lex $P446, "$output"
+    find_lex $P449, "$output"
 .annotate 'line', 146
-    find_lex $P447, "self"
-    find_lex $P448, "$code"
-    find_lex $P449, "%adverbs"
-    $P450 = $P447."compile"($P448, $P449 :flat)
-    store_lex "$output", $P450
+    find_lex $P450, "self"
+    find_lex $P451, "$code"
+    find_lex $P452, "%adverbs"
+    $P453 = $P450."compile"($P451, $P452 :flat)
+    store_lex "$output", $P453
 .annotate 'line', 148
-    find_lex $P454, "$output"
-    isa $I455, $P454, "String"
-    new $P456, 'Integer'
-    set $P456, $I455
-    isfalse $I457, $P456
-    if $I457, if_453
-    new $P452, 'Integer'
-    set $P452, $I457
-    goto if_453_end
-  if_453:
+    find_lex $P457, "$output"
+    isa $I458, $P457, "String"
+    new $P459, 'Integer'
+    set $P459, $I458
+    isfalse $I460, $P459
+    if $I460, if_456
+    new $P455, 'Integer'
+    set $P455, $I460
+    goto if_456_end
+  if_456:
 .annotate 'line', 149
-    find_lex $P458, "%adverbs"
-    unless_null $P458, vivify_74
-    $P458 = root_new ['parrot';'Hash']
+    find_lex $P461, "%adverbs"
+    unless_null $P461, vivify_74
+    $P461 = root_new ['parrot';'Hash']
   vivify_74:
-    set $P459, $P458["target"]
-    unless_null $P459, vivify_75
-    new $P459, "Undef"
+    set $P462, $P461["target"]
+    unless_null $P462, vivify_75
+    new $P462, "Undef"
   vivify_75:
-    set $S460, $P459
-    iseq $I461, $S460, ""
-    new $P452, 'Integer'
-    set $P452, $I461
-  if_453_end:
-    unless $P452, if_451_end
-    .const 'Sub' $P463 = "33_1274853025.56197" 
-    capture_lex $P463
-    $P463()
-  if_451_end:
+    set $S463, $P462
+    iseq $I464, $S463, ""
+    new $P455, 'Integer'
+    set $P455, $I464
+  if_456_end:
+    unless $P455, if_454_end
+    .const 'Sub' $P466 = "33_1275811474.72541" 
+    capture_lex $P466
+    $P466()
+  if_454_end:
 .annotate 'line', 148
-    find_lex $P479, "$output"
+    find_lex $P482, "$output"
 .annotate 'line', 144
-    .return ($P479)
-  control_440:
+    .return ($P482)
+  control_443:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P480, exception, "payload"
-    .return ($P480)
+    getattribute $P483, exception, "payload"
+    .return ($P483)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block462"  :anon :subid("33_1274853025.56197") :outer("32_1274853025.56197")
+.sub "_block465"  :anon :subid("33_1275811474.72541") :outer("32_1275811474.72541")
 .annotate 'line', 150
-    new $P464, "Undef"
-    .lex "$outer_ctx", $P464
-    find_lex $P465, "%adverbs"
-    unless_null $P465, vivify_76
-    $P465 = root_new ['parrot';'Hash']
+    new $P467, "Undef"
+    .lex "$outer_ctx", $P467
+    find_lex $P468, "%adverbs"
+    unless_null $P468, vivify_76
+    $P468 = root_new ['parrot';'Hash']
   vivify_76:
-    set $P466, $P465["outer_ctx"]
-    unless_null $P466, vivify_77
-    new $P466, "Undef"
+    set $P469, $P468["outer_ctx"]
+    unless_null $P469, vivify_77
+    new $P469, "Undef"
   vivify_77:
-    store_lex "$outer_ctx", $P466
+    store_lex "$outer_ctx", $P469
 .annotate 'line', 151
-    find_lex $P468, "$outer_ctx"
-    defined $I469, $P468
-    unless $I469, if_467_end
+    find_lex $P471, "$outer_ctx"
+    defined $I472, $P471
+    unless $I472, if_470_end
 .annotate 'line', 152
-    find_lex $P470, "$output"
-    unless_null $P470, vivify_78
-    $P470 = root_new ['parrot';'ResizablePMCArray']
+    find_lex $P473, "$output"
+    unless_null $P473, vivify_78
+    $P473 = root_new ['parrot';'ResizablePMCArray']
   vivify_78:
-    set $P471, $P470[0]
-    unless_null $P471, vivify_79
-    new $P471, "Undef"
+    set $P474, $P473[0]
+    unless_null $P474, vivify_79
+    new $P474, "Undef"
   vivify_79:
-    find_lex $P472, "$outer_ctx"
-    $P471."set_outer_ctx"($P472)
-  if_467_end:
+    find_lex $P475, "$outer_ctx"
+    $P474."set_outer_ctx"($P475)
+  if_470_end:
 .annotate 'line', 155
-    find_lex $P473, "%adverbs"
-    unless_null $P473, vivify_80
-    $P473 = root_new ['parrot';'Hash']
+    find_lex $P476, "%adverbs"
+    unless_null $P476, vivify_80
+    $P476 = root_new ['parrot';'Hash']
   vivify_80:
-    set $P474, $P473["trace"]
-    unless_null $P474, vivify_81
-    new $P474, "Undef"
+    set $P477, $P476["trace"]
+    unless_null $P477, vivify_81
+    new $P477, "Undef"
   vivify_81:
-    set $I475, $P474
-    trace $I475
+    set $I478, $P477
+    trace $I478
 .annotate 'line', 156
-    find_lex $P476, "$output"
-    find_lex $P477, "@args"
-    $P478 = $P476($P477 :flat)
-    store_lex "$output", $P478
+    find_lex $P479, "$output"
+    find_lex $P480, "@args"
+    $P481 = $P479($P480 :flat)
+    store_lex "$output", $P481
 .annotate 'line', 157
     trace 0
 .annotate 'line', 149
@@ -8076,39 +8257,40 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "ctxsave"  :subid("34_1274853025.56197") :method :outer("11_1274853025.56197")
+.include "except_types.pasm"
+.sub "ctxsave"  :subid("34_1275811474.72541") :method :outer("11_1275811474.72541")
 .annotate 'line', 163
-    new $P483, 'ExceptionHandler'
-    set_addr $P483, control_482
-    $P483."handle_types"(57)
-    push_eh $P483
+    new $P486, 'ExceptionHandler'
+    set_addr $P486, control_485
+    $P486."handle_types"(.CONTROL_RETURN)
+    push_eh $P486
     .lex "self", self
 .annotate 'line', 165
 
                 $P0 = getinterp
-                $P484 = $P0['context';1]
+                $P487 = $P0['context';1]
             
-    store_dynamic_lex "$*MAIN_CTX", $P484
+    store_dynamic_lex "$*MAIN_CTX", $P487
 .annotate 'line', 169
-    new $P485, "Integer"
-    assign $P485, 0
-    store_dynamic_lex "$*CTXSAVE", $P485
+    new $P488, "Integer"
+    assign $P488, 0
+    store_dynamic_lex "$*CTXSAVE", $P488
 .annotate 'line', 163
-    .return ($P485)
-  control_482:
+    .return ($P488)
+  control_485:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P486, exception, "payload"
-    .return ($P486)
+    getattribute $P489, exception, "payload"
+    .return ($P489)
 .end
 
 
 .namespace []
-.sub "_block490" :load :anon :subid("35_1274853025.56197")
+.sub "_block493" :load :anon :subid("35_1275811474.72541")
 .annotate 'line', 1
-    .const 'Sub' $P492 = "10_1274853025.56197" 
-    $P493 = $P492()
-    .return ($P493)
+    .const 'Sub' $P495 = "10_1275811474.72541" 
+    $P496 = $P495()
+    .return ($P496)
 .end
 
 

Modified: branches/gsoc_nfg/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/gsoc_nfg/ext/nqp-rx/src/stage0/NQP-s0.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/ext/nqp-rx/src/stage0/NQP-s0.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -15,7 +15,7 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274853038.58734")
+.sub "_block11"  :anon :subid("10_1275811487.95429")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
@@ -29,327 +29,333 @@
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
-    $P1379 = $P14()
+    $P1424 = $P14()
 .annotate 'line', 1
-    .return ($P1379)
-    .const 'Sub' $P1381 = "354_1274853038.58734" 
-    .return ($P1381)
+    .return ($P1424)
+    .const 'Sub' $P1426 = "363_1275811487.95429" 
+    .return ($P1426)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post355") :outer("10_1274853038.58734")
+.sub "" :load :init :subid("post364") :outer("10_1275811487.95429")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274853038.58734" 
+    .const 'Sub' $P12 = "10_1275811487.95429" 
     .local pmc block
     set block, $P12
-    $P1384 = get_root_global ["parrot"], "P6metaclass"
-    $P1384."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+    $P1429 = get_root_global ["parrot"], "P6metaclass"
+    $P1429."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1274853038.58734") :outer("10_1274853038.58734")
+.sub "_block13"  :subid("11_1275811487.95429") :outer("10_1275811487.95429")
 .annotate 'line', 4
-    get_hll_global $P1295, ["NQP";"Regex"], "_block1294" 
-    capture_lex $P1295
-    .const 'Sub' $P1281 = "331_1274853038.58734" 
-    capture_lex $P1281
-    .const 'Sub' $P1275 = "329_1274853038.58734" 
+    get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
+    capture_lex $P1340
+    .const 'Sub' $P1326 = "340_1275811487.95429" 
+    capture_lex $P1326
+    .const 'Sub' $P1320 = "338_1275811487.95429" 
+    capture_lex $P1320
+    .const 'Sub' $P1314 = "336_1275811487.95429" 
+    capture_lex $P1314
+    .const 'Sub' $P1308 = "334_1275811487.95429" 
+    capture_lex $P1308
+    .const 'Sub' $P1302 = "332_1275811487.95429" 
+    capture_lex $P1302
+    .const 'Sub' $P1296 = "330_1275811487.95429" 
+    capture_lex $P1296
+    .const 'Sub' $P1289 = "328_1275811487.95429" 
+    capture_lex $P1289
+    .const 'Sub' $P1282 = "326_1275811487.95429" 
+    capture_lex $P1282
+    .const 'Sub' $P1275 = "324_1275811487.95429" 
     capture_lex $P1275
-    .const 'Sub' $P1269 = "327_1274853038.58734" 
-    capture_lex $P1269
-    .const 'Sub' $P1263 = "325_1274853038.58734" 
-    capture_lex $P1263
-    .const 'Sub' $P1257 = "323_1274853038.58734" 
-    capture_lex $P1257
-    .const 'Sub' $P1251 = "321_1274853038.58734" 
-    capture_lex $P1251
-    .const 'Sub' $P1244 = "319_1274853038.58734" 
-    capture_lex $P1244
-    .const 'Sub' $P1237 = "317_1274853038.58734" 
-    capture_lex $P1237
-    .const 'Sub' $P1230 = "315_1274853038.58734" 
-    capture_lex $P1230
-    .const 'Sub' $P1223 = "313_1274853038.58734" 
-    capture_lex $P1223
-    .const 'Sub' $P1217 = "311_1274853038.58734" 
-    capture_lex $P1217
-    .const 'Sub' $P1210 = "309_1274853038.58734" 
-    capture_lex $P1210
-    .const 'Sub' $P1203 = "307_1274853038.58734" 
-    capture_lex $P1203
-    .const 'Sub' $P1196 = "305_1274853038.58734" 
-    capture_lex $P1196
-    .const 'Sub' $P1189 = "303_1274853038.58734" 
-    capture_lex $P1189
-    .const 'Sub' $P1182 = "301_1274853038.58734" 
-    capture_lex $P1182
-    .const 'Sub' $P1175 = "299_1274853038.58734" 
-    capture_lex $P1175
-    .const 'Sub' $P1168 = "297_1274853038.58734" 
-    capture_lex $P1168
-    .const 'Sub' $P1161 = "295_1274853038.58734" 
-    capture_lex $P1161
-    .const 'Sub' $P1154 = "293_1274853038.58734" 
-    capture_lex $P1154
-    .const 'Sub' $P1147 = "291_1274853038.58734" 
-    capture_lex $P1147
-    .const 'Sub' $P1140 = "289_1274853038.58734" 
-    capture_lex $P1140
-    .const 'Sub' $P1133 = "287_1274853038.58734" 
-    capture_lex $P1133
-    .const 'Sub' $P1126 = "285_1274853038.58734" 
-    capture_lex $P1126
-    .const 'Sub' $P1119 = "283_1274853038.58734" 
-    capture_lex $P1119
-    .const 'Sub' $P1112 = "281_1274853038.58734" 
-    capture_lex $P1112
-    .const 'Sub' $P1105 = "279_1274853038.58734" 
-    capture_lex $P1105
-    .const 'Sub' $P1098 = "277_1274853038.58734" 
-    capture_lex $P1098
-    .const 'Sub' $P1091 = "275_1274853038.58734" 
-    capture_lex $P1091
-    .const 'Sub' $P1084 = "273_1274853038.58734" 
-    capture_lex $P1084
-    .const 'Sub' $P1077 = "271_1274853038.58734" 
-    capture_lex $P1077
-    .const 'Sub' $P1070 = "269_1274853038.58734" 
-    capture_lex $P1070
-    .const 'Sub' $P1063 = "267_1274853038.58734" 
-    capture_lex $P1063
-    .const 'Sub' $P1056 = "265_1274853038.58734" 
-    capture_lex $P1056
-    .const 'Sub' $P1049 = "263_1274853038.58734" 
-    capture_lex $P1049
-    .const 'Sub' $P1042 = "261_1274853038.58734" 
-    capture_lex $P1042
-    .const 'Sub' $P1035 = "259_1274853038.58734" 
-    capture_lex $P1035
-    .const 'Sub' $P1029 = "257_1274853038.58734" 
-    capture_lex $P1029
-    .const 'Sub' $P1022 = "255_1274853038.58734" 
-    capture_lex $P1022
-    .const 'Sub' $P1015 = "253_1274853038.58734" 
-    capture_lex $P1015
-    .const 'Sub' $P1008 = "251_1274853038.58734" 
+    .const 'Sub' $P1268 = "322_1275811487.95429" 
+    capture_lex $P1268
+    .const 'Sub' $P1262 = "320_1275811487.95429" 
+    capture_lex $P1262
+    .const 'Sub' $P1255 = "318_1275811487.95429" 
+    capture_lex $P1255
+    .const 'Sub' $P1248 = "316_1275811487.95429" 
+    capture_lex $P1248
+    .const 'Sub' $P1241 = "314_1275811487.95429" 
+    capture_lex $P1241
+    .const 'Sub' $P1234 = "312_1275811487.95429" 
+    capture_lex $P1234
+    .const 'Sub' $P1227 = "310_1275811487.95429" 
+    capture_lex $P1227
+    .const 'Sub' $P1220 = "308_1275811487.95429" 
+    capture_lex $P1220
+    .const 'Sub' $P1213 = "306_1275811487.95429" 
+    capture_lex $P1213
+    .const 'Sub' $P1206 = "304_1275811487.95429" 
+    capture_lex $P1206
+    .const 'Sub' $P1199 = "302_1275811487.95429" 
+    capture_lex $P1199
+    .const 'Sub' $P1192 = "300_1275811487.95429" 
+    capture_lex $P1192
+    .const 'Sub' $P1185 = "298_1275811487.95429" 
+    capture_lex $P1185
+    .const 'Sub' $P1178 = "296_1275811487.95429" 
+    capture_lex $P1178
+    .const 'Sub' $P1171 = "294_1275811487.95429" 
+    capture_lex $P1171
+    .const 'Sub' $P1164 = "292_1275811487.95429" 
+    capture_lex $P1164
+    .const 'Sub' $P1157 = "290_1275811487.95429" 
+    capture_lex $P1157
+    .const 'Sub' $P1150 = "288_1275811487.95429" 
+    capture_lex $P1150
+    .const 'Sub' $P1143 = "286_1275811487.95429" 
+    capture_lex $P1143
+    .const 'Sub' $P1136 = "284_1275811487.95429" 
+    capture_lex $P1136
+    .const 'Sub' $P1129 = "282_1275811487.95429" 
+    capture_lex $P1129
+    .const 'Sub' $P1122 = "280_1275811487.95429" 
+    capture_lex $P1122
+    .const 'Sub' $P1115 = "278_1275811487.95429" 
+    capture_lex $P1115
+    .const 'Sub' $P1108 = "276_1275811487.95429" 
+    capture_lex $P1108
+    .const 'Sub' $P1101 = "274_1275811487.95429" 
+    capture_lex $P1101
+    .const 'Sub' $P1094 = "272_1275811487.95429" 
+    capture_lex $P1094
+    .const 'Sub' $P1087 = "270_1275811487.95429" 
+    capture_lex $P1087
+    .const 'Sub' $P1080 = "268_1275811487.95429" 
+    capture_lex $P1080
+    .const 'Sub' $P1074 = "266_1275811487.95429" 
+    capture_lex $P1074
+    .const 'Sub' $P1067 = "264_1275811487.95429" 
+    capture_lex $P1067
+    .const 'Sub' $P1060 = "262_1275811487.95429" 
+    capture_lex $P1060
+    .const 'Sub' $P1053 = "260_1275811487.95429" 
+    capture_lex $P1053
+    .const 'Sub' $P1046 = "258_1275811487.95429" 
+    capture_lex $P1046
+    .const 'Sub' $P1039 = "256_1275811487.95429" 
+    capture_lex $P1039
+    .const 'Sub' $P1032 = "254_1275811487.95429" 
+    capture_lex $P1032
+    .const 'Sub' $P1025 = "252_1275811487.95429" 
+    capture_lex $P1025
+    .const 'Sub' $P1019 = "250_1275811487.95429" 
+    capture_lex $P1019
+    .const 'Sub' $P1013 = "248_1275811487.95429" 
+    capture_lex $P1013
+    .const 'Sub' $P1008 = "246_1275811487.95429" 
     capture_lex $P1008
-    .const 'Sub' $P1001 = "249_1274853038.58734" 
-    capture_lex $P1001
-    .const 'Sub' $P994 = "247_1274853038.58734" 
-    capture_lex $P994
-    .const 'Sub' $P987 = "245_1274853038.58734" 
-    capture_lex $P987
-    .const 'Sub' $P980 = "243_1274853038.58734" 
-    capture_lex $P980
-    .const 'Sub' $P974 = "241_1274853038.58734" 
-    capture_lex $P974
-    .const 'Sub' $P968 = "239_1274853038.58734" 
-    capture_lex $P968
-    .const 'Sub' $P963 = "237_1274853038.58734" 
-    capture_lex $P963
-    .const 'Sub' $P957 = "235_1274853038.58734" 
-    capture_lex $P957
-    .const 'Sub' $P951 = "233_1274853038.58734" 
-    capture_lex $P951
-    .const 'Sub' $P946 = "231_1274853038.58734" 
-    capture_lex $P946
-    .const 'Sub' $P941 = "229_1274853038.58734" 
-    capture_lex $P941
-    .const 'Sub' $P934 = "227_1274853038.58734" 
+    .const 'Sub' $P1002 = "244_1275811487.95429" 
+    capture_lex $P1002
+    .const 'Sub' $P996 = "242_1275811487.95429" 
+    capture_lex $P996
+    .const 'Sub' $P991 = "240_1275811487.95429" 
+    capture_lex $P991
+    .const 'Sub' $P986 = "238_1275811487.95429" 
+    capture_lex $P986
+    .const 'Sub' $P978 = "236_1275811487.95429" 
+    capture_lex $P978
+    .const 'Sub' $P970 = "234_1275811487.95429" 
+    capture_lex $P970
+    .const 'Sub' $P965 = "232_1275811487.95429" 
+    capture_lex $P965
+    .const 'Sub' $P960 = "230_1275811487.95429" 
+    capture_lex $P960
+    .const 'Sub' $P955 = "228_1275811487.95429" 
+    capture_lex $P955
+    .const 'Sub' $P947 = "226_1275811487.95429" 
+    capture_lex $P947
+    .const 'Sub' $P939 = "224_1275811487.95429" 
+    capture_lex $P939
+    .const 'Sub' $P934 = "222_1275811487.95429" 
     capture_lex $P934
-    .const 'Sub' $P926 = "225_1274853038.58734" 
-    capture_lex $P926
-    .const 'Sub' $P921 = "223_1274853038.58734" 
-    capture_lex $P921
-    .const 'Sub' $P916 = "221_1274853038.58734" 
-    capture_lex $P916
-    .const 'Sub' $P911 = "219_1274853038.58734" 
-    capture_lex $P911
-    .const 'Sub' $P903 = "217_1274853038.58734" 
-    capture_lex $P903
-    .const 'Sub' $P895 = "215_1274853038.58734" 
-    capture_lex $P895
-    .const 'Sub' $P890 = "213_1274853038.58734" 
-    capture_lex $P890
-    .const 'Sub' $P885 = "211_1274853038.58734" 
-    capture_lex $P885
-    .const 'Sub' $P880 = "209_1274853038.58734" 
-    capture_lex $P880
-    .const 'Sub' $P874 = "207_1274853038.58734" 
-    capture_lex $P874
-    .const 'Sub' $P868 = "205_1274853038.58734" 
-    capture_lex $P868
-    .const 'Sub' $P862 = "203_1274853038.58734" 
-    capture_lex $P862
-    .const 'Sub' $P856 = "201_1274853038.58734" 
-    capture_lex $P856
-    .const 'Sub' $P850 = "199_1274853038.58734" 
+    .const 'Sub' $P929 = "220_1275811487.95429" 
+    capture_lex $P929
+    .const 'Sub' $P924 = "218_1275811487.95429" 
+    capture_lex $P924
+    .const 'Sub' $P918 = "216_1275811487.95429" 
+    capture_lex $P918
+    .const 'Sub' $P912 = "214_1275811487.95429" 
+    capture_lex $P912
+    .const 'Sub' $P906 = "212_1275811487.95429" 
+    capture_lex $P906
+    .const 'Sub' $P900 = "210_1275811487.95429" 
+    capture_lex $P900
+    .const 'Sub' $P894 = "208_1275811487.95429" 
+    capture_lex $P894
+    .const 'Sub' $P889 = "206_1275811487.95429" 
+    capture_lex $P889
+    .const 'Sub' $P884 = "204_1275811487.95429" 
+    capture_lex $P884
+    .const 'Sub' $P871 = "200_1275811487.95429" 
+    capture_lex $P871
+    .const 'Sub' $P863 = "198_1275811487.95429" 
+    capture_lex $P863
+    .const 'Sub' $P857 = "196_1275811487.95429" 
+    capture_lex $P857
+    .const 'Sub' $P850 = "194_1275811487.95429" 
     capture_lex $P850
-    .const 'Sub' $P845 = "197_1274853038.58734" 
-    capture_lex $P845
-    .const 'Sub' $P840 = "195_1274853038.58734" 
-    capture_lex $P840
-    .const 'Sub' $P827 = "191_1274853038.58734" 
-    capture_lex $P827
-    .const 'Sub' $P819 = "189_1274853038.58734" 
-    capture_lex $P819
-    .const 'Sub' $P813 = "187_1274853038.58734" 
-    capture_lex $P813
-    .const 'Sub' $P806 = "185_1274853038.58734" 
-    capture_lex $P806
-    .const 'Sub' $P800 = "183_1274853038.58734" 
-    capture_lex $P800
-    .const 'Sub' $P792 = "181_1274853038.58734" 
-    capture_lex $P792
-    .const 'Sub' $P784 = "179_1274853038.58734" 
-    capture_lex $P784
-    .const 'Sub' $P778 = "177_1274853038.58734" 
-    capture_lex $P778
-    .const 'Sub' $P772 = "175_1274853038.58734" 
-    capture_lex $P772
-    .const 'Sub' $P757 = "171_1274853038.58734" 
-    capture_lex $P757
-    .const 'Sub' $P720 = "169_1274853038.58734" 
-    capture_lex $P720
-    .const 'Sub' $P712 = "167_1274853038.58734" 
-    capture_lex $P712
-    .const 'Sub' $P706 = "165_1274853038.58734" 
-    capture_lex $P706
-    .const 'Sub' $P696 = "163_1274853038.58734" 
-    capture_lex $P696
-    .const 'Sub' $P682 = "161_1274853038.58734" 
-    capture_lex $P682
-    .const 'Sub' $P673 = "159_1274853038.58734" 
+    .const 'Sub' $P844 = "192_1275811487.95429" 
+    capture_lex $P844
+    .const 'Sub' $P836 = "190_1275811487.95429" 
+    capture_lex $P836
+    .const 'Sub' $P828 = "188_1275811487.95429" 
+    capture_lex $P828
+    .const 'Sub' $P822 = "186_1275811487.95429" 
+    capture_lex $P822
+    .const 'Sub' $P816 = "184_1275811487.95429" 
+    capture_lex $P816
+    .const 'Sub' $P801 = "180_1275811487.95429" 
+    capture_lex $P801
+    .const 'Sub' $P763 = "178_1275811487.95429" 
+    capture_lex $P763
+    .const 'Sub' $P754 = "176_1275811487.95429" 
+    capture_lex $P754
+    .const 'Sub' $P748 = "174_1275811487.95429" 
+    capture_lex $P748
+    .const 'Sub' $P738 = "172_1275811487.95429" 
+    capture_lex $P738
+    .const 'Sub' $P724 = "170_1275811487.95429" 
+    capture_lex $P724
+    .const 'Sub' $P715 = "168_1275811487.95429" 
+    capture_lex $P715
+    .const 'Sub' $P707 = "166_1275811487.95429" 
+    capture_lex $P707
+    .const 'Sub' $P697 = "164_1275811487.95429" 
+    capture_lex $P697
+    .const 'Sub' $P673 = "160_1275811487.95429" 
     capture_lex $P673
-    .const 'Sub' $P654 = "157_1274853038.58734" 
-    capture_lex $P654
-    .const 'Sub' $P630 = "155_1274853038.58734" 
-    capture_lex $P630
-    .const 'Sub' $P623 = "153_1274853038.58734" 
-    capture_lex $P623
-    .const 'Sub' $P616 = "151_1274853038.58734" 
+    .const 'Sub' $P648 = "158_1275811487.95429" 
+    capture_lex $P648
+    .const 'Sub' $P641 = "156_1275811487.95429" 
+    capture_lex $P641
+    .const 'Sub' $P634 = "154_1275811487.95429" 
+    capture_lex $P634
+    .const 'Sub' $P624 = "150_1275811487.95429" 
+    capture_lex $P624
+    .const 'Sub' $P616 = "148_1275811487.95429" 
     capture_lex $P616
-    .const 'Sub' $P606 = "147_1274853038.58734" 
-    capture_lex $P606
-    .const 'Sub' $P598 = "145_1274853038.58734" 
-    capture_lex $P598
-    .const 'Sub' $P592 = "143_1274853038.58734" 
-    capture_lex $P592
-    .const 'Sub' $P578 = "141_1274853038.58734" 
-    capture_lex $P578
-    .const 'Sub' $P571 = "139_1274853038.58734" 
-    capture_lex $P571
-    .const 'Sub' $P564 = "137_1274853038.58734" 
-    capture_lex $P564
-    .const 'Sub' $P557 = "135_1274853038.58734" 
-    capture_lex $P557
-    .const 'Sub' $P530 = "131_1274853038.58734" 
-    capture_lex $P530
-    .const 'Sub' $P521 = "129_1274853038.58734" 
-    capture_lex $P521
-    .const 'Sub' $P514 = "127_1274853038.58734" 
-    capture_lex $P514
-    .const 'Sub' $P505 = "123_1274853038.58734" 
-    capture_lex $P505
-    .const 'Sub' $P500 = "121_1274853038.58734" 
-    capture_lex $P500
-    .const 'Sub' $P488 = "119_1274853038.58734" 
-    capture_lex $P488
-    .const 'Sub' $P476 = "117_1274853038.58734" 
-    capture_lex $P476
-    .const 'Sub' $P468 = "115_1274853038.58734" 
-    capture_lex $P468
-    .const 'Sub' $P463 = "113_1274853038.58734" 
-    capture_lex $P463
-    .const 'Sub' $P457 = "111_1274853038.58734" 
-    capture_lex $P457
-    .const 'Sub' $P451 = "109_1274853038.58734" 
-    capture_lex $P451
-    .const 'Sub' $P445 = "107_1274853038.58734" 
-    capture_lex $P445
-    .const 'Sub' $P439 = "105_1274853038.58734" 
-    capture_lex $P439
-    .const 'Sub' $P433 = "103_1274853038.58734" 
-    capture_lex $P433
-    .const 'Sub' $P427 = "101_1274853038.58734" 
-    capture_lex $P427
-    .const 'Sub' $P421 = "99_1274853038.58734" 
-    capture_lex $P421
-    .const 'Sub' $P415 = "97_1274853038.58734" 
-    capture_lex $P415
-    .const 'Sub' $P407 = "95_1274853038.58734" 
-    capture_lex $P407
-    .const 'Sub' $P399 = "93_1274853038.58734" 
-    capture_lex $P399
-    .const 'Sub' $P387 = "89_1274853038.58734" 
-    capture_lex $P387
-    .const 'Sub' $P379 = "87_1274853038.58734" 
-    capture_lex $P379
-    .const 'Sub' $P369 = "83_1274853038.58734" 
-    capture_lex $P369
-    .const 'Sub' $P362 = "81_1274853038.58734" 
-    capture_lex $P362
-    .const 'Sub' $P355 = "79_1274853038.58734" 
-    capture_lex $P355
-    .const 'Sub' $P343 = "75_1274853038.58734" 
-    capture_lex $P343
-    .const 'Sub' $P335 = "73_1274853038.58734" 
-    capture_lex $P335
-    .const 'Sub' $P327 = "71_1274853038.58734" 
-    capture_lex $P327
-    .const 'Sub' $P307 = "69_1274853038.58734" 
-    capture_lex $P307
-    .const 'Sub' $P298 = "67_1274853038.58734" 
-    capture_lex $P298
-    .const 'Sub' $P280 = "64_1274853038.58734" 
-    capture_lex $P280
-    .const 'Sub' $P260 = "62_1274853038.58734" 
-    capture_lex $P260
-    .const 'Sub' $P251 = "58_1274853038.58734" 
-    capture_lex $P251
-    .const 'Sub' $P246 = "56_1274853038.58734" 
-    capture_lex $P246
-    .const 'Sub' $P237 = "52_1274853038.58734" 
-    capture_lex $P237
-    .const 'Sub' $P232 = "50_1274853038.58734" 
-    capture_lex $P232
-    .const 'Sub' $P227 = "48_1274853038.58734" 
-    capture_lex $P227
-    .const 'Sub' $P219 = "46_1274853038.58734" 
-    capture_lex $P219
-    .const 'Sub' $P212 = "44_1274853038.58734" 
-    capture_lex $P212
-    .const 'Sub' $P206 = "42_1274853038.58734" 
-    capture_lex $P206
-    .const 'Sub' $P198 = "40_1274853038.58734" 
-    capture_lex $P198
-    .const 'Sub' $P192 = "38_1274853038.58734" 
-    capture_lex $P192
-    .const 'Sub' $P186 = "36_1274853038.58734" 
-    capture_lex $P186
-    .const 'Sub' $P170 = "33_1274853038.58734" 
-    capture_lex $P170
-    .const 'Sub' $P157 = "31_1274853038.58734" 
-    capture_lex $P157
-    .const 'Sub' $P150 = "29_1274853038.58734" 
-    capture_lex $P150
-    .const 'Sub' $P100 = "26_1274853038.58734" 
-    capture_lex $P100
-    .const 'Sub' $P82 = "23_1274853038.58734" 
-    capture_lex $P82
-    .const 'Sub' $P68 = "21_1274853038.58734" 
-    capture_lex $P68
-    .const 'Sub' $P54 = "19_1274853038.58734" 
-    capture_lex $P54
-    .const 'Sub' $P46 = "17_1274853038.58734" 
-    capture_lex $P46
-    .const 'Sub' $P39 = "15_1274853038.58734" 
-    capture_lex $P39
-    .const 'Sub' $P33 = "13_1274853038.58734" 
-    capture_lex $P33
-    .const 'Sub' $P15 = "12_1274853038.58734" 
+    .const 'Sub' $P610 = "146_1275811487.95429" 
+    capture_lex $P610
+    .const 'Sub' $P597 = "144_1275811487.95429" 
+    capture_lex $P597
+    .const 'Sub' $P590 = "142_1275811487.95429" 
+    capture_lex $P590
+    .const 'Sub' $P583 = "140_1275811487.95429" 
+    capture_lex $P583
+    .const 'Sub' $P576 = "138_1275811487.95429" 
+    capture_lex $P576
+    .const 'Sub' $P548 = "134_1275811487.95429" 
+    capture_lex $P548
+    .const 'Sub' $P539 = "132_1275811487.95429" 
+    capture_lex $P539
+    .const 'Sub' $P532 = "130_1275811487.95429" 
+    capture_lex $P532
+    .const 'Sub' $P523 = "126_1275811487.95429" 
+    capture_lex $P523
+    .const 'Sub' $P518 = "124_1275811487.95429" 
+    capture_lex $P518
+    .const 'Sub' $P506 = "122_1275811487.95429" 
+    capture_lex $P506
+    .const 'Sub' $P494 = "120_1275811487.95429" 
+    capture_lex $P494
+    .const 'Sub' $P486 = "118_1275811487.95429" 
+    capture_lex $P486
+    .const 'Sub' $P481 = "116_1275811487.95429" 
+    capture_lex $P481
+    .const 'Sub' $P475 = "114_1275811487.95429" 
+    capture_lex $P475
+    .const 'Sub' $P469 = "112_1275811487.95429" 
+    capture_lex $P469
+    .const 'Sub' $P459 = "109_1275811487.95429" 
+    capture_lex $P459
+    .const 'Sub' $P453 = "107_1275811487.95429" 
+    capture_lex $P453
+    .const 'Sub' $P447 = "105_1275811487.95429" 
+    capture_lex $P447
+    .const 'Sub' $P441 = "103_1275811487.95429" 
+    capture_lex $P441
+    .const 'Sub' $P435 = "101_1275811487.95429" 
+    capture_lex $P435
+    .const 'Sub' $P429 = "99_1275811487.95429" 
+    capture_lex $P429
+    .const 'Sub' $P423 = "97_1275811487.95429" 
+    capture_lex $P423
+    .const 'Sub' $P414 = "95_1275811487.95429" 
+    capture_lex $P414
+    .const 'Sub' $P405 = "93_1275811487.95429" 
+    capture_lex $P405
+    .const 'Sub' $P392 = "89_1275811487.95429" 
+    capture_lex $P392
+    .const 'Sub' $P383 = "87_1275811487.95429" 
+    capture_lex $P383
+    .const 'Sub' $P373 = "83_1275811487.95429" 
+    capture_lex $P373
+    .const 'Sub' $P366 = "81_1275811487.95429" 
+    capture_lex $P366
+    .const 'Sub' $P359 = "79_1275811487.95429" 
+    capture_lex $P359
+    .const 'Sub' $P347 = "75_1275811487.95429" 
+    capture_lex $P347
+    .const 'Sub' $P339 = "73_1275811487.95429" 
+    capture_lex $P339
+    .const 'Sub' $P331 = "71_1275811487.95429" 
+    capture_lex $P331
+    .const 'Sub' $P311 = "69_1275811487.95429" 
+    capture_lex $P311
+    .const 'Sub' $P302 = "67_1275811487.95429" 
+    capture_lex $P302
+    .const 'Sub' $P284 = "64_1275811487.95429" 
+    capture_lex $P284
+    .const 'Sub' $P264 = "62_1275811487.95429" 
+    capture_lex $P264
+    .const 'Sub' $P255 = "58_1275811487.95429" 
+    capture_lex $P255
+    .const 'Sub' $P250 = "56_1275811487.95429" 
+    capture_lex $P250
+    .const 'Sub' $P241 = "52_1275811487.95429" 
+    capture_lex $P241
+    .const 'Sub' $P236 = "50_1275811487.95429" 
+    capture_lex $P236
+    .const 'Sub' $P231 = "48_1275811487.95429" 
+    capture_lex $P231
+    .const 'Sub' $P223 = "46_1275811487.95429" 
+    capture_lex $P223
+    .const 'Sub' $P216 = "44_1275811487.95429" 
+    capture_lex $P216
+    .const 'Sub' $P210 = "42_1275811487.95429" 
+    capture_lex $P210
+    .const 'Sub' $P202 = "40_1275811487.95429" 
+    capture_lex $P202
+    .const 'Sub' $P196 = "38_1275811487.95429" 
+    capture_lex $P196
+    .const 'Sub' $P190 = "36_1275811487.95429" 
+    capture_lex $P190
+    .const 'Sub' $P174 = "33_1275811487.95429" 
+    capture_lex $P174
+    .const 'Sub' $P159 = "31_1275811487.95429" 
+    capture_lex $P159
+    .const 'Sub' $P152 = "29_1275811487.95429" 
+    capture_lex $P152
+    .const 'Sub' $P102 = "26_1275811487.95429" 
+    capture_lex $P102
+    .const 'Sub' $P84 = "23_1275811487.95429" 
+    capture_lex $P84
+    .const 'Sub' $P70 = "21_1275811487.95429" 
+    capture_lex $P70
+    .const 'Sub' $P56 = "19_1275811487.95429" 
+    capture_lex $P56
+    .const 'Sub' $P48 = "17_1275811487.95429" 
+    capture_lex $P48
+    .const 'Sub' $P41 = "15_1275811487.95429" 
+    capture_lex $P41
+    .const 'Sub' $P35 = "13_1275811487.95429" 
+    capture_lex $P35
+    .const 'Sub' $P15 = "12_1275811487.95429" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -357,80 +363,81 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-.annotate 'line', 550
-    get_hll_global $P1295, ["NQP";"Regex"], "_block1294" 
-    capture_lex $P1295
-    $P1358 = $P1295()
+.annotate 'line', 563
+    get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
+    capture_lex $P1340
+    $P1403 = $P1340()
 .annotate 'line', 4
-    .return ($P1358)
-    .const 'Sub' $P1360 = "353_1274853038.58734" 
-    .return ($P1360)
+    .return ($P1403)
+    .const 'Sub' $P1405 = "362_1275811487.95429" 
+    .return ($P1405)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post356") :outer("11_1274853038.58734")
+.sub "" :load :init :subid("post365") :outer("11_1275811487.95429")
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
     set block, $P14
-.annotate 'line', 434
-    get_hll_global $P1363, ["NQP"], "Grammar"
-    $P1363."O"(":prec<y=>, :assoc<unary>", "%methodop")
-.annotate 'line', 435
-    get_hll_global $P1364, ["NQP"], "Grammar"
-    $P1364."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
-.annotate 'line', 436
-    get_hll_global $P1365, ["NQP"], "Grammar"
-    $P1365."O"(":prec<w=>, :assoc<left>", "%exponentiation")
-.annotate 'line', 437
-    get_hll_global $P1366, ["NQP"], "Grammar"
-    $P1366."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
-.annotate 'line', 438
-    get_hll_global $P1367, ["NQP"], "Grammar"
-    $P1367."O"(":prec<u=>, :assoc<left>", "%multiplicative")
-.annotate 'line', 439
-    get_hll_global $P1368, ["NQP"], "Grammar"
-    $P1368."O"(":prec<t=>, :assoc<left>", "%additive")
-.annotate 'line', 440
-    get_hll_global $P1369, ["NQP"], "Grammar"
-    $P1369."O"(":prec<r=>, :assoc<left>", "%concatenation")
-.annotate 'line', 441
-    get_hll_global $P1370, ["NQP"], "Grammar"
-    $P1370."O"(":prec<m=>, :assoc<left>", "%relational")
-.annotate 'line', 442
-    get_hll_global $P1371, ["NQP"], "Grammar"
-    $P1371."O"(":prec<l=>, :assoc<left>", "%tight_and")
-.annotate 'line', 443
-    get_hll_global $P1372, ["NQP"], "Grammar"
-    $P1372."O"(":prec<k=>, :assoc<left>", "%tight_or")
-.annotate 'line', 444
-    get_hll_global $P1373, ["NQP"], "Grammar"
-    $P1373."O"(":prec<j=>, :assoc<right>", "%conditional")
-.annotate 'line', 445
-    get_hll_global $P1374, ["NQP"], "Grammar"
-    $P1374."O"(":prec<i=>, :assoc<right>", "%assignment")
-.annotate 'line', 446
-    get_hll_global $P1375, ["NQP"], "Grammar"
-    $P1375."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
 .annotate 'line', 447
-    get_hll_global $P1376, ["NQP"], "Grammar"
-    $P1376."O"(":prec<f=>, :assoc<list>", "%list_infix")
+    get_hll_global $P1408, ["NQP"], "Grammar"
+    $P1408."O"(":prec<y=>, :assoc<unary>", "%methodop")
 .annotate 'line', 448
-    get_hll_global $P1377, ["NQP"], "Grammar"
-    $P1377."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
-.annotate 'line', 433
-    $P1378 = get_root_global ["parrot"], "P6metaclass"
-    $P1378."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+    get_hll_global $P1409, ["NQP"], "Grammar"
+    $P1409."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
+.annotate 'line', 449
+    get_hll_global $P1410, ["NQP"], "Grammar"
+    $P1410."O"(":prec<w=>, :assoc<left>", "%exponentiation")
+.annotate 'line', 450
+    get_hll_global $P1411, ["NQP"], "Grammar"
+    $P1411."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
+.annotate 'line', 451
+    get_hll_global $P1412, ["NQP"], "Grammar"
+    $P1412."O"(":prec<u=>, :assoc<left>", "%multiplicative")
+.annotate 'line', 452
+    get_hll_global $P1413, ["NQP"], "Grammar"
+    $P1413."O"(":prec<t=>, :assoc<left>", "%additive")
+.annotate 'line', 453
+    get_hll_global $P1414, ["NQP"], "Grammar"
+    $P1414."O"(":prec<r=>, :assoc<left>", "%concatenation")
+.annotate 'line', 454
+    get_hll_global $P1415, ["NQP"], "Grammar"
+    $P1415."O"(":prec<m=>, :assoc<left>", "%relational")
+.annotate 'line', 455
+    get_hll_global $P1416, ["NQP"], "Grammar"
+    $P1416."O"(":prec<l=>, :assoc<left>", "%tight_and")
+.annotate 'line', 456
+    get_hll_global $P1417, ["NQP"], "Grammar"
+    $P1417."O"(":prec<k=>, :assoc<left>", "%tight_or")
+.annotate 'line', 457
+    get_hll_global $P1418, ["NQP"], "Grammar"
+    $P1418."O"(":prec<j=>, :assoc<right>", "%conditional")
+.annotate 'line', 458
+    get_hll_global $P1419, ["NQP"], "Grammar"
+    $P1419."O"(":prec<i=>, :assoc<right>", "%assignment")
+.annotate 'line', 459
+    get_hll_global $P1420, ["NQP"], "Grammar"
+    $P1420."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+.annotate 'line', 460
+    get_hll_global $P1421, ["NQP"], "Grammar"
+    $P1421."O"(":prec<f=>, :assoc<list>", "%list_infix")
+.annotate 'line', 461
+    get_hll_global $P1422, ["NQP"], "Grammar"
+    $P1422."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
+.annotate 'line', 446
+    $P1423 = get_root_global ["parrot"], "P6metaclass"
+    $P1423."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "TOP"  :subid("12_1274853038.58734") :method :outer("11_1274853038.58734")
+.include "except_types.pasm"
+.sub "TOP"  :subid("12_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
-    $P17."handle_types"(57)
+    $P17."handle_types"(.CONTROL_RETURN)
     push_eh $P17
     .lex "self", self
 .annotate 'line', 5
@@ -439,6757 +446,6794 @@
 .annotate 'line', 10
     new $P19, "Undef"
     .lex "$*SCOPE", $P19
+.annotate 'line', 11
+    new $P20, "Undef"
+    .lex "$*MULTINESS", $P20
 .annotate 'line', 4
-    find_lex $P20, "%*LANG"
-    unless_null $P20, vivify_357
-    get_hll_global $P20, "%LANG"
-    unless_null $P20, vivify_358
+    find_lex $P21, "%*LANG"
+    unless_null $P21, vivify_366
+    get_hll_global $P21, "%LANG"
+    unless_null $P21, vivify_367
     die "Contextual %*LANG not found"
-  vivify_358:
-  vivify_357:
+  vivify_367:
+  vivify_366:
 .annotate 'line', 6
-    get_hll_global $P21, ["NQP"], "Regex"
-    find_lex $P22, "%*LANG"
-    unless_null $P22, vivify_359
-    get_hll_global $P22, "%LANG"
-    unless_null $P22, vivify_360
+    get_hll_global $P22, ["NQP"], "Regex"
+    find_lex $P23, "%*LANG"
+    unless_null $P23, vivify_368
+    get_hll_global $P23, "%LANG"
+    unless_null $P23, vivify_369
     die "Contextual %*LANG not found"
-  vivify_360:
-    store_lex "%*LANG", $P22
-  vivify_359:
-    set $P22["Regex"], $P21
+  vivify_369:
+    store_lex "%*LANG", $P23
+  vivify_368:
+    set $P23["Regex"], $P22
 .annotate 'line', 7
-    get_hll_global $P23, ["NQP"], "RegexActions"
-    find_lex $P24, "%*LANG"
-    unless_null $P24, vivify_361
-    get_hll_global $P24, "%LANG"
-    unless_null $P24, vivify_362
+    get_hll_global $P24, ["NQP"], "RegexActions"
+    find_lex $P25, "%*LANG"
+    unless_null $P25, vivify_370
+    get_hll_global $P25, "%LANG"
+    unless_null $P25, vivify_371
     die "Contextual %*LANG not found"
-  vivify_362:
-    store_lex "%*LANG", $P24
-  vivify_361:
-    set $P24["Regex-actions"], $P23
+  vivify_371:
+    store_lex "%*LANG", $P25
+  vivify_370:
+    set $P25["Regex-actions"], $P24
 .annotate 'line', 8
-    get_hll_global $P25, ["NQP"], "Grammar"
-    find_lex $P26, "%*LANG"
-    unless_null $P26, vivify_363
-    get_hll_global $P26, "%LANG"
-    unless_null $P26, vivify_364
+    get_hll_global $P26, ["NQP"], "Grammar"
+    find_lex $P27, "%*LANG"
+    unless_null $P27, vivify_372
+    get_hll_global $P27, "%LANG"
+    unless_null $P27, vivify_373
     die "Contextual %*LANG not found"
-  vivify_364:
-    store_lex "%*LANG", $P26
-  vivify_363:
-    set $P26["MAIN"], $P25
+  vivify_373:
+    store_lex "%*LANG", $P27
+  vivify_372:
+    set $P27["MAIN"], $P26
 .annotate 'line', 9
-    get_hll_global $P27, ["NQP"], "Actions"
-    find_lex $P28, "%*LANG"
-    unless_null $P28, vivify_365
-    get_hll_global $P28, "%LANG"
-    unless_null $P28, vivify_366
+    get_hll_global $P28, ["NQP"], "Actions"
+    find_lex $P29, "%*LANG"
+    unless_null $P29, vivify_374
+    get_hll_global $P29, "%LANG"
+    unless_null $P29, vivify_375
     die "Contextual %*LANG not found"
-  vivify_366:
-    store_lex "%*LANG", $P28
-  vivify_365:
-    set $P28["MAIN-actions"], $P27
+  vivify_375:
+    store_lex "%*LANG", $P29
+  vivify_374:
+    set $P29["MAIN-actions"], $P28
 .annotate 'line', 10
-    new $P29, "String"
-    assign $P29, ""
-    store_lex "$*SCOPE", $P29
+    new $P30, "String"
+    assign $P30, ""
+    store_lex "$*SCOPE", $P30
 .annotate 'line', 11
-    find_lex $P30, "self"
-    $P31 = $P30."comp_unit"()
+    new $P31, "String"
+    assign $P31, ""
+    store_lex "$*MULTINESS", $P31
+.annotate 'line', 12
+    find_lex $P32, "self"
+    $P33 = $P32."comp_unit"()
 .annotate 'line', 4
-    .return ($P31)
+    .return ($P33)
   control_16:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P32, exception, "payload"
-    .return ($P32)
+    getattribute $P34, exception, "payload"
+    .return ($P34)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "identifier"  :subid("13_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx34_tgt
-    .local int rx34_pos
-    .local int rx34_off
-    .local int rx34_eos
-    .local int rx34_rep
-    .local pmc rx34_cur
-    (rx34_cur, rx34_pos, rx34_tgt) = self."!cursor_start"()
-    rx34_cur."!cursor_debug"("START ", "identifier")
-    .lex unicode:"$\x{a2}", rx34_cur
-    .local pmc match
-    .lex "$/", match
-    length rx34_eos, rx34_tgt
-    set rx34_off, 0
-    lt rx34_pos, 2, rx34_start
-    sub rx34_off, rx34_pos, 1
-    substr rx34_tgt, rx34_tgt, rx34_off
-  rx34_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan38_done
-    goto rxscan38_scan
-  rxscan38_loop:
-    ($P10) = rx34_cur."from"()
-    inc $P10
-    set rx34_pos, $P10
-    ge rx34_pos, rx34_eos, rxscan38_done
-  rxscan38_scan:
-    set_addr $I10, rxscan38_loop
-    rx34_cur."!mark_push"(0, rx34_pos, $I10)
-  rxscan38_done:
-.annotate 'line', 16
+    .local string rx36_tgt
+    .local int rx36_pos
+    .local int rx36_off
+    .local int rx36_eos
+    .local int rx36_rep
+    .local pmc rx36_cur
+    (rx36_cur, rx36_pos, rx36_tgt) = self."!cursor_start"()
+    rx36_cur."!cursor_debug"("START ", "identifier")
+    .lex unicode:"$\x{a2}", rx36_cur
+    .local pmc match
+    .lex "$/", match
+    length rx36_eos, rx36_tgt
+    gt rx36_pos, rx36_eos, rx36_done
+    set rx36_off, 0
+    lt rx36_pos, 2, rx36_start
+    sub rx36_off, rx36_pos, 1
+    substr rx36_tgt, rx36_tgt, rx36_off
+  rx36_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan40_done
+    goto rxscan40_scan
+  rxscan40_loop:
+    ($P10) = rx36_cur."from"()
+    inc $P10
+    set rx36_pos, $P10
+    ge rx36_pos, rx36_eos, rxscan40_done
+  rxscan40_scan:
+    set_addr $I10, rxscan40_loop
+    rx36_cur."!mark_push"(0, rx36_pos, $I10)
+  rxscan40_done:
+.annotate 'line', 17
   # rx subrule "ident" subtype=capture negate=
-    rx34_cur."!cursor_pos"(rx34_pos)
-    $P10 = rx34_cur."ident"()
-    unless $P10, rx34_fail
-    rx34_cur."!mark_push"(0, -1, 0, $P10)
+    rx36_cur."!cursor_pos"(rx36_pos)
+    $P10 = rx36_cur."ident"()
+    unless $P10, rx36_fail
+    rx36_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("ident")
-    rx34_pos = $P10."pos"()
+    rx36_pos = $P10."pos"()
   # rx pass
-    rx34_cur."!cursor_pass"(rx34_pos, "identifier")
-    rx34_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx34_pos)
-    .return (rx34_cur)
-  rx34_fail:
+    rx36_cur."!cursor_pass"(rx36_pos, "identifier")
+    rx36_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx36_pos)
+    .return (rx36_cur)
+  rx36_fail:
 .annotate 'line', 4
-    (rx34_rep, rx34_pos, $I10, $P10) = rx34_cur."!mark_fail"(0)
-    lt rx34_pos, -1, rx34_done
-    eq rx34_pos, -1, rx34_fail
+    (rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0)
+    lt rx36_pos, -1, rx36_done
+    eq rx36_pos, -1, rx36_fail
     jump $I10
-  rx34_done:
-    rx34_cur."!cursor_fail"()
-    rx34_cur."!cursor_debug"("FAIL  ", "identifier")
-    .return (rx34_cur)
+  rx36_done:
+    rx36_cur."!cursor_fail"()
+    rx36_cur."!cursor_debug"("FAIL  ", "identifier")
+    .return (rx36_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1274853038.58734") :method
+.sub "!PREFIX__identifier"  :subid("14_1275811487.95429") :method
 .annotate 'line', 4
-    $P36 = self."!PREFIX__!subrule"("ident", "")
-    new $P37, "ResizablePMCArray"
-    push $P37, $P36
-    .return ($P37)
+    $P38 = self."!PREFIX__!subrule"("ident", "")
+    new $P39, "ResizablePMCArray"
+    push $P39, $P38
+    .return ($P39)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "name"  :subid("15_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx40_tgt
-    .local int rx40_pos
-    .local int rx40_off
-    .local int rx40_eos
-    .local int rx40_rep
-    .local pmc rx40_cur
-    (rx40_cur, rx40_pos, rx40_tgt) = self."!cursor_start"()
-    rx40_cur."!cursor_debug"("START ", "name")
-    rx40_cur."!cursor_caparray"("identifier")
-    .lex unicode:"$\x{a2}", rx40_cur
+    .local string rx42_tgt
+    .local int rx42_pos
+    .local int rx42_off
+    .local int rx42_eos
+    .local int rx42_rep
+    .local pmc rx42_cur
+    (rx42_cur, rx42_pos, rx42_tgt) = self."!cursor_start"()
+    rx42_cur."!cursor_debug"("START ", "name")
+    rx42_cur."!cursor_caparray"("identifier")
+    .lex unicode:"$\x{a2}", rx42_cur
     .local pmc match
     .lex "$/", match
-    length rx40_eos, rx40_tgt
-    set rx40_off, 0
-    lt rx40_pos, 2, rx40_start
-    sub rx40_off, rx40_pos, 1
-    substr rx40_tgt, rx40_tgt, rx40_off
-  rx40_start:
+    length rx42_eos, rx42_tgt
+    gt rx42_pos, rx42_eos, rx42_done
+    set rx42_off, 0
+    lt rx42_pos, 2, rx42_start
+    sub rx42_off, rx42_pos, 1
+    substr rx42_tgt, rx42_tgt, rx42_off
+  rx42_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan43_done
-    goto rxscan43_scan
-  rxscan43_loop:
-    ($P10) = rx40_cur."from"()
+    ne $I10, -1, rxscan45_done
+    goto rxscan45_scan
+  rxscan45_loop:
+    ($P10) = rx42_cur."from"()
     inc $P10
-    set rx40_pos, $P10
-    ge rx40_pos, rx40_eos, rxscan43_done
-  rxscan43_scan:
-    set_addr $I10, rxscan43_loop
-    rx40_cur."!mark_push"(0, rx40_pos, $I10)
-  rxscan43_done:
-.annotate 'line', 18
-  # rx rxquantr44 ** 1..*
-    set_addr $I45, rxquantr44_done
-    rx40_cur."!mark_push"(0, -1, $I45)
-  rxquantr44_loop:
+    set rx42_pos, $P10
+    ge rx42_pos, rx42_eos, rxscan45_done
+  rxscan45_scan:
+    set_addr $I10, rxscan45_loop
+    rx42_cur."!mark_push"(0, rx42_pos, $I10)
+  rxscan45_done:
+.annotate 'line', 19
+  # rx rxquantr46 ** 1..*
+    set_addr $I47, rxquantr46_done
+    rx42_cur."!mark_push"(0, -1, $I47)
+  rxquantr46_loop:
   # rx subrule "identifier" subtype=capture negate=
-    rx40_cur."!cursor_pos"(rx40_pos)
-    $P10 = rx40_cur."identifier"()
-    unless $P10, rx40_fail
-    rx40_cur."!mark_push"(0, -1, 0, $P10)
+    rx42_cur."!cursor_pos"(rx42_pos)
+    $P10 = rx42_cur."identifier"()
+    unless $P10, rx42_fail
+    rx42_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx40_pos = $P10."pos"()
-    (rx40_rep) = rx40_cur."!mark_commit"($I45)
-    rx40_cur."!mark_push"(rx40_rep, rx40_pos, $I45)
+    rx42_pos = $P10."pos"()
+    (rx42_rep) = rx42_cur."!mark_commit"($I47)
+    rx42_cur."!mark_push"(rx42_rep, rx42_pos, $I47)
   # rx literal  "::"
-    add $I11, rx40_pos, 2
-    gt $I11, rx40_eos, rx40_fail
-    sub $I11, rx40_pos, rx40_off
-    substr $S10, rx40_tgt, $I11, 2
-    ne $S10, "::", rx40_fail
-    add rx40_pos, 2
-    goto rxquantr44_loop
-  rxquantr44_done:
+    add $I11, rx42_pos, 2
+    gt $I11, rx42_eos, rx42_fail
+    sub $I11, rx42_pos, rx42_off
+    substr $S10, rx42_tgt, $I11, 2
+    ne $S10, "::", rx42_fail
+    add rx42_pos, 2
+    goto rxquantr46_loop
+  rxquantr46_done:
   # rx pass
-    rx40_cur."!cursor_pass"(rx40_pos, "name")
-    rx40_cur."!cursor_debug"("PASS  ", "name", " at pos=", rx40_pos)
-    .return (rx40_cur)
-  rx40_fail:
+    rx42_cur."!cursor_pass"(rx42_pos, "name")
+    rx42_cur."!cursor_debug"("PASS  ", "name", " at pos=", rx42_pos)
+    .return (rx42_cur)
+  rx42_fail:
 .annotate 'line', 4
-    (rx40_rep, rx40_pos, $I10, $P10) = rx40_cur."!mark_fail"(0)
-    lt rx40_pos, -1, rx40_done
-    eq rx40_pos, -1, rx40_fail
+    (rx42_rep, rx42_pos, $I10, $P10) = rx42_cur."!mark_fail"(0)
+    lt rx42_pos, -1, rx42_done
+    eq rx42_pos, -1, rx42_fail
     jump $I10
-  rx40_done:
-    rx40_cur."!cursor_fail"()
-    rx40_cur."!cursor_debug"("FAIL  ", "name")
-    .return (rx40_cur)
+  rx42_done:
+    rx42_cur."!cursor_fail"()
+    rx42_cur."!cursor_debug"("FAIL  ", "name")
+    .return (rx42_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1274853038.58734") :method
+.sub "!PREFIX__name"  :subid("16_1275811487.95429") :method
 .annotate 'line', 4
-    new $P42, "ResizablePMCArray"
-    push $P42, ""
-    .return ($P42)
+    new $P44, "ResizablePMCArray"
+    push $P44, ""
+    .return ($P44)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "deflongname"  :subid("17_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx47_tgt
-    .local int rx47_pos
-    .local int rx47_off
-    .local int rx47_eos
-    .local int rx47_rep
-    .local pmc rx47_cur
-    (rx47_cur, rx47_pos, rx47_tgt) = self."!cursor_start"()
-    rx47_cur."!cursor_debug"("START ", "deflongname")
-    rx47_cur."!cursor_caparray"("colonpair")
-    .lex unicode:"$\x{a2}", rx47_cur
+    .local string rx49_tgt
+    .local int rx49_pos
+    .local int rx49_off
+    .local int rx49_eos
+    .local int rx49_rep
+    .local pmc rx49_cur
+    (rx49_cur, rx49_pos, rx49_tgt) = self."!cursor_start"()
+    rx49_cur."!cursor_debug"("START ", "deflongname")
+    rx49_cur."!cursor_caparray"("colonpair")
+    .lex unicode:"$\x{a2}", rx49_cur
     .local pmc match
     .lex "$/", match
-    length rx47_eos, rx47_tgt
-    set rx47_off, 0
-    lt rx47_pos, 2, rx47_start
-    sub rx47_off, rx47_pos, 1
-    substr rx47_tgt, rx47_tgt, rx47_off
-  rx47_start:
+    length rx49_eos, rx49_tgt
+    gt rx49_pos, rx49_eos, rx49_done
+    set rx49_off, 0
+    lt rx49_pos, 2, rx49_start
+    sub rx49_off, rx49_pos, 1
+    substr rx49_tgt, rx49_tgt, rx49_off
+  rx49_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan51_done
-    goto rxscan51_scan
-  rxscan51_loop:
-    ($P10) = rx47_cur."from"()
+    ne $I10, -1, rxscan53_done
+    goto rxscan53_scan
+  rxscan53_loop:
+    ($P10) = rx49_cur."from"()
     inc $P10
-    set rx47_pos, $P10
-    ge rx47_pos, rx47_eos, rxscan51_done
-  rxscan51_scan:
-    set_addr $I10, rxscan51_loop
-    rx47_cur."!mark_push"(0, rx47_pos, $I10)
-  rxscan51_done:
-.annotate 'line', 21
+    set rx49_pos, $P10
+    ge rx49_pos, rx49_eos, rxscan53_done
+  rxscan53_scan:
+    set_addr $I10, rxscan53_loop
+    rx49_cur."!mark_push"(0, rx49_pos, $I10)
+  rxscan53_done:
+.annotate 'line', 22
   # rx subrule "identifier" subtype=capture negate=
-    rx47_cur."!cursor_pos"(rx47_pos)
-    $P10 = rx47_cur."identifier"()
-    unless $P10, rx47_fail
-    rx47_cur."!mark_push"(0, -1, 0, $P10)
+    rx49_cur."!cursor_pos"(rx49_pos)
+    $P10 = rx49_cur."identifier"()
+    unless $P10, rx49_fail
+    rx49_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx47_pos = $P10."pos"()
-  # rx rxquantr52 ** 0..1
-    set_addr $I53, rxquantr52_done
-    rx47_cur."!mark_push"(0, rx47_pos, $I53)
-  rxquantr52_loop:
+    rx49_pos = $P10."pos"()
+  # rx rxquantr54 ** 0..1
+    set_addr $I55, rxquantr54_done
+    rx49_cur."!mark_push"(0, rx49_pos, $I55)
+  rxquantr54_loop:
   # rx subrule "colonpair" subtype=capture negate=
-    rx47_cur."!cursor_pos"(rx47_pos)
-    $P10 = rx47_cur."colonpair"()
-    unless $P10, rx47_fail
-    rx47_cur."!mark_push"(0, -1, 0, $P10)
+    rx49_cur."!cursor_pos"(rx49_pos)
+    $P10 = rx49_cur."colonpair"()
+    unless $P10, rx49_fail
+    rx49_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("colonpair")
-    rx47_pos = $P10."pos"()
-    (rx47_rep) = rx47_cur."!mark_commit"($I53)
-  rxquantr52_done:
-.annotate 'line', 20
+    rx49_pos = $P10."pos"()
+    (rx49_rep) = rx49_cur."!mark_commit"($I55)
+  rxquantr54_done:
+.annotate 'line', 21
   # rx pass
-    rx47_cur."!cursor_pass"(rx47_pos, "deflongname")
-    rx47_cur."!cursor_debug"("PASS  ", "deflongname", " at pos=", rx47_pos)
-    .return (rx47_cur)
-  rx47_fail:
+    rx49_cur."!cursor_pass"(rx49_pos, "deflongname")
+    rx49_cur."!cursor_debug"("PASS  ", "deflongname", " at pos=", rx49_pos)
+    .return (rx49_cur)
+  rx49_fail:
 .annotate 'line', 4
-    (rx47_rep, rx47_pos, $I10, $P10) = rx47_cur."!mark_fail"(0)
-    lt rx47_pos, -1, rx47_done
-    eq rx47_pos, -1, rx47_fail
+    (rx49_rep, rx49_pos, $I10, $P10) = rx49_cur."!mark_fail"(0)
+    lt rx49_pos, -1, rx49_done
+    eq rx49_pos, -1, rx49_fail
     jump $I10
-  rx47_done:
-    rx47_cur."!cursor_fail"()
-    rx47_cur."!cursor_debug"("FAIL  ", "deflongname")
-    .return (rx47_cur)
+  rx49_done:
+    rx49_cur."!cursor_fail"()
+    rx49_cur."!cursor_debug"("FAIL  ", "deflongname")
+    .return (rx49_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1274853038.58734") :method
+.sub "!PREFIX__deflongname"  :subid("18_1275811487.95429") :method
 .annotate 'line', 4
-    $P49 = self."!PREFIX__!subrule"("identifier", "")
-    new $P50, "ResizablePMCArray"
-    push $P50, $P49
-    .return ($P50)
+    $P51 = self."!PREFIX__!subrule"("identifier", "")
+    new $P52, "ResizablePMCArray"
+    push $P52, $P51
+    .return ($P52)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "ENDSTMT"  :subid("19_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx55_tgt
-    .local int rx55_pos
-    .local int rx55_off
-    .local int rx55_eos
-    .local int rx55_rep
-    .local pmc rx55_cur
-    (rx55_cur, rx55_pos, rx55_tgt) = self."!cursor_start"()
-    rx55_cur."!cursor_debug"("START ", "ENDSTMT")
-    .lex unicode:"$\x{a2}", rx55_cur
+    .local string rx57_tgt
+    .local int rx57_pos
+    .local int rx57_off
+    .local int rx57_eos
+    .local int rx57_rep
+    .local pmc rx57_cur
+    (rx57_cur, rx57_pos, rx57_tgt) = self."!cursor_start"()
+    rx57_cur."!cursor_debug"("START ", "ENDSTMT")
+    .lex unicode:"$\x{a2}", rx57_cur
     .local pmc match
     .lex "$/", match
-    length rx55_eos, rx55_tgt
-    set rx55_off, 0
-    lt rx55_pos, 2, rx55_start
-    sub rx55_off, rx55_pos, 1
-    substr rx55_tgt, rx55_tgt, rx55_off
-  rx55_start:
+    length rx57_eos, rx57_tgt
+    gt rx57_pos, rx57_eos, rx57_done
+    set rx57_off, 0
+    lt rx57_pos, 2, rx57_start
+    sub rx57_off, rx57_pos, 1
+    substr rx57_tgt, rx57_tgt, rx57_off
+  rx57_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan58_done
-    goto rxscan58_scan
-  rxscan58_loop:
-    ($P10) = rx55_cur."from"()
+    ne $I10, -1, rxscan60_done
+    goto rxscan60_scan
+  rxscan60_loop:
+    ($P10) = rx57_cur."from"()
     inc $P10
-    set rx55_pos, $P10
-    ge rx55_pos, rx55_eos, rxscan58_done
-  rxscan58_scan:
-    set_addr $I10, rxscan58_loop
-    rx55_cur."!mark_push"(0, rx55_pos, $I10)
-  rxscan58_done:
-.annotate 'line', 28
-  # rx rxquantr59 ** 0..1
-    set_addr $I67, rxquantr59_done
-    rx55_cur."!mark_push"(0, rx55_pos, $I67)
-  rxquantr59_loop:
-  alt60_0:
-.annotate 'line', 25
-    set_addr $I10, alt60_1
-    rx55_cur."!mark_push"(0, rx55_pos, $I10)
-.annotate 'line', 26
-  # rx rxquantr61 ** 0..*
-    set_addr $I62, rxquantr61_done
-    rx55_cur."!mark_push"(0, rx55_pos, $I62)
+    set rx57_pos, $P10
+    ge rx57_pos, rx57_eos, rxscan60_done
+  rxscan60_scan:
+    set_addr $I10, rxscan60_loop
+    rx57_cur."!mark_push"(0, rx57_pos, $I10)
+  rxscan60_done:
+.annotate 'line', 29
+  # rx rxquantr61 ** 0..1
+    set_addr $I69, rxquantr61_done
+    rx57_cur."!mark_push"(0, rx57_pos, $I69)
   rxquantr61_loop:
+  alt62_0:
+.annotate 'line', 26
+    set_addr $I10, alt62_1
+    rx57_cur."!mark_push"(0, rx57_pos, $I10)
+.annotate 'line', 27
+  # rx rxquantr63 ** 0..*
+    set_addr $I64, rxquantr63_done
+    rx57_cur."!mark_push"(0, rx57_pos, $I64)
+  rxquantr63_loop:
   # rx enumcharlist negate=0 
-    ge rx55_pos, rx55_eos, rx55_fail
-    sub $I10, rx55_pos, rx55_off
-    substr $S10, rx55_tgt, $I10, 1
+    ge rx57_pos, rx57_eos, rx57_fail
+    sub $I10, rx57_pos, rx57_off
+    substr $S10, rx57_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, rx55_fail
-    inc rx55_pos
-    (rx55_rep) = rx55_cur."!mark_commit"($I62)
-    rx55_cur."!mark_push"(rx55_rep, rx55_pos, $I62)
-    goto rxquantr61_loop
-  rxquantr61_done:
+    lt $I11, 0, rx57_fail
+    inc rx57_pos
+    (rx57_rep) = rx57_cur."!mark_commit"($I64)
+    rx57_cur."!mark_push"(rx57_rep, rx57_pos, $I64)
+    goto rxquantr63_loop
+  rxquantr63_done:
   # rxanchor eol
-    sub $I10, rx55_pos, rx55_off
-    is_cclass $I11, 4096, rx55_tgt, $I10
-    if $I11, rxanchor63_done
-    ne rx55_pos, rx55_eos, rx55_fail
-    eq rx55_pos, 0, rxanchor63_done
+    sub $I10, rx57_pos, rx57_off
+    is_cclass $I11, 4096, rx57_tgt, $I10
+    if $I11, rxanchor65_done
+    ne rx57_pos, rx57_eos, rx57_fail
+    eq rx57_pos, 0, rxanchor65_done
     dec $I10
-    is_cclass $I11, 4096, rx55_tgt, $I10
-    if $I11, rx55_fail
-  rxanchor63_done:
-  # rx subrule "ws" subtype=method negate=
-    rx55_cur."!cursor_pos"(rx55_pos)
-    $P10 = rx55_cur."ws"()
-    unless $P10, rx55_fail
-    rx55_pos = $P10."pos"()
+    is_cclass $I11, 4096, rx57_tgt, $I10
+    if $I11, rx57_fail
+  rxanchor65_done:
+  # rx subrule "ws" subtype=method negate=
+    rx57_cur."!cursor_pos"(rx57_pos)
+    $P10 = rx57_cur."ws"()
+    unless $P10, rx57_fail
+    rx57_pos = $P10."pos"()
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx55_cur."!cursor_pos"(rx55_pos)
-    $P10 = rx55_cur."MARKER"("endstmt")
-    unless $P10, rx55_fail
-    goto alt60_end
-  alt60_1:
-.annotate 'line', 27
-  # rx rxquantr64 ** 0..1
-    set_addr $I65, rxquantr64_done
-    rx55_cur."!mark_push"(0, rx55_pos, $I65)
-  rxquantr64_loop:
+    rx57_cur."!cursor_pos"(rx57_pos)
+    $P10 = rx57_cur."MARKER"("endstmt")
+    unless $P10, rx57_fail
+    goto alt62_end
+  alt62_1:
+.annotate 'line', 28
+  # rx rxquantr66 ** 0..1
+    set_addr $I67, rxquantr66_done
+    rx57_cur."!mark_push"(0, rx57_pos, $I67)
+  rxquantr66_loop:
   # rx subrule "unv" subtype=method negate=
-    rx55_cur."!cursor_pos"(rx55_pos)
-    $P10 = rx55_cur."unv"()
-    unless $P10, rx55_fail
-    rx55_pos = $P10."pos"()
-    (rx55_rep) = rx55_cur."!mark_commit"($I65)
-  rxquantr64_done:
+    rx57_cur."!cursor_pos"(rx57_pos)
+    $P10 = rx57_cur."unv"()
+    unless $P10, rx57_fail
+    rx57_pos = $P10."pos"()
+    (rx57_rep) = rx57_cur."!mark_commit"($I67)
+  rxquantr66_done:
   # rxanchor eol
-    sub $I10, rx55_pos, rx55_off
-    is_cclass $I11, 4096, rx55_tgt, $I10
-    if $I11, rxanchor66_done
-    ne rx55_pos, rx55_eos, rx55_fail
-    eq rx55_pos, 0, rxanchor66_done
+    sub $I10, rx57_pos, rx57_off
+    is_cclass $I11, 4096, rx57_tgt, $I10
+    if $I11, rxanchor68_done
+    ne rx57_pos, rx57_eos, rx57_fail
+    eq rx57_pos, 0, rxanchor68_done
     dec $I10
-    is_cclass $I11, 4096, rx55_tgt, $I10
-    if $I11, rx55_fail
-  rxanchor66_done:
-  # rx subrule "ws" subtype=method negate=
-    rx55_cur."!cursor_pos"(rx55_pos)
-    $P10 = rx55_cur."ws"()
-    unless $P10, rx55_fail
-    rx55_pos = $P10."pos"()
+    is_cclass $I11, 4096, rx57_tgt, $I10
+    if $I11, rx57_fail
+  rxanchor68_done:
+  # rx subrule "ws" subtype=method negate=
+    rx57_cur."!cursor_pos"(rx57_pos)
+    $P10 = rx57_cur."ws"()
+    unless $P10, rx57_fail
+    rx57_pos = $P10."pos"()
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx55_cur."!cursor_pos"(rx55_pos)
-    $P10 = rx55_cur."MARKER"("endstmt")
-    unless $P10, rx55_fail
-  alt60_end:
-.annotate 'line', 28
-    (rx55_rep) = rx55_cur."!mark_commit"($I67)
-  rxquantr59_done:
-.annotate 'line', 24
+    rx57_cur."!cursor_pos"(rx57_pos)
+    $P10 = rx57_cur."MARKER"("endstmt")
+    unless $P10, rx57_fail
+  alt62_end:
+.annotate 'line', 29
+    (rx57_rep) = rx57_cur."!mark_commit"($I69)
+  rxquantr61_done:
+.annotate 'line', 25
   # rx pass
-    rx55_cur."!cursor_pass"(rx55_pos, "ENDSTMT")
-    rx55_cur."!cursor_debug"("PASS  ", "ENDSTMT", " at pos=", rx55_pos)
-    .return (rx55_cur)
-  rx55_fail:
+    rx57_cur."!cursor_pass"(rx57_pos, "ENDSTMT")
+    rx57_cur."!cursor_debug"("PASS  ", "ENDSTMT", " at pos=", rx57_pos)
+    .return (rx57_cur)
+  rx57_fail:
 .annotate 'line', 4
-    (rx55_rep, rx55_pos, $I10, $P10) = rx55_cur."!mark_fail"(0)
-    lt rx55_pos, -1, rx55_done
-    eq rx55_pos, -1, rx55_fail
+    (rx57_rep, rx57_pos, $I10, $P10) = rx57_cur."!mark_fail"(0)
+    lt rx57_pos, -1, rx57_done
+    eq rx57_pos, -1, rx57_fail
     jump $I10
-  rx55_done:
-    rx55_cur."!cursor_fail"()
-    rx55_cur."!cursor_debug"("FAIL  ", "ENDSTMT")
-    .return (rx55_cur)
+  rx57_done:
+    rx57_cur."!cursor_fail"()
+    rx57_cur."!cursor_debug"("FAIL  ", "ENDSTMT")
+    .return (rx57_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1274853038.58734") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1275811487.95429") :method
 .annotate 'line', 4
-    new $P57, "ResizablePMCArray"
-    push $P57, ""
-    .return ($P57)
+    new $P59, "ResizablePMCArray"
+    push $P59, ""
+    .return ($P59)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "ws"  :subid("21_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx69_tgt
-    .local int rx69_pos
-    .local int rx69_off
-    .local int rx69_eos
-    .local int rx69_rep
-    .local pmc rx69_cur
-    (rx69_cur, rx69_pos, rx69_tgt) = self."!cursor_start"()
-    rx69_cur."!cursor_debug"("START ", "ws")
-    .lex unicode:"$\x{a2}", rx69_cur
-    .local pmc match
-    .lex "$/", match
-    length rx69_eos, rx69_tgt
-    set rx69_off, 0
-    lt rx69_pos, 2, rx69_start
-    sub rx69_off, rx69_pos, 1
-    substr rx69_tgt, rx69_tgt, rx69_off
-  rx69_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan72_done
-    goto rxscan72_scan
-  rxscan72_loop:
-    ($P10) = rx69_cur."from"()
-    inc $P10
-    set rx69_pos, $P10
-    ge rx69_pos, rx69_eos, rxscan72_done
-  rxscan72_scan:
-    set_addr $I10, rxscan72_loop
-    rx69_cur."!mark_push"(0, rx69_pos, $I10)
-  rxscan72_done:
-  alt73_0:
-.annotate 'line', 31
-    set_addr $I10, alt73_1
-    rx69_cur."!mark_push"(0, rx69_pos, $I10)
+    .local string rx71_tgt
+    .local int rx71_pos
+    .local int rx71_off
+    .local int rx71_eos
+    .local int rx71_rep
+    .local pmc rx71_cur
+    (rx71_cur, rx71_pos, rx71_tgt) = self."!cursor_start"()
+    rx71_cur."!cursor_debug"("START ", "ws")
+    .lex unicode:"$\x{a2}", rx71_cur
+    .local pmc match
+    .lex "$/", match
+    length rx71_eos, rx71_tgt
+    gt rx71_pos, rx71_eos, rx71_done
+    set rx71_off, 0
+    lt rx71_pos, 2, rx71_start
+    sub rx71_off, rx71_pos, 1
+    substr rx71_tgt, rx71_tgt, rx71_off
+  rx71_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan74_done
+    goto rxscan74_scan
+  rxscan74_loop:
+    ($P10) = rx71_cur."from"()
+    inc $P10
+    set rx71_pos, $P10
+    ge rx71_pos, rx71_eos, rxscan74_done
+  rxscan74_scan:
+    set_addr $I10, rxscan74_loop
+    rx71_cur."!mark_push"(0, rx71_pos, $I10)
+  rxscan74_done:
+  alt75_0:
 .annotate 'line', 32
-  # rx subrule "MARKED" subtype=zerowidth negate=
-    rx69_cur."!cursor_pos"(rx69_pos)
-    $P10 = rx69_cur."MARKED"("ws")
-    unless $P10, rx69_fail
-    goto alt73_end
-  alt73_1:
+    set_addr $I10, alt75_1
+    rx71_cur."!mark_push"(0, rx71_pos, $I10)
 .annotate 'line', 33
-  # rx subrule "ww" subtype=zerowidth negate=1
-    rx69_cur."!cursor_pos"(rx69_pos)
-    $P10 = rx69_cur."ww"()
-    if $P10, rx69_fail
-.annotate 'line', 38
-  # rx rxquantr74 ** 0..*
-    set_addr $I81, rxquantr74_done
-    rx69_cur."!mark_push"(0, rx69_pos, $I81)
-  rxquantr74_loop:
-  alt75_0:
+  # rx subrule "MARKED" subtype=zerowidth negate=
+    rx71_cur."!cursor_pos"(rx71_pos)
+    $P10 = rx71_cur."MARKED"("ws")
+    unless $P10, rx71_fail
+    goto alt75_end
+  alt75_1:
 .annotate 'line', 34
-    set_addr $I10, alt75_1
-    rx69_cur."!mark_push"(0, rx69_pos, $I10)
-  # rx rxquantr76 ** 1..*
-    set_addr $I77, rxquantr76_done
-    rx69_cur."!mark_push"(0, -1, $I77)
+  # rx subrule "ww" subtype=zerowidth negate=1
+    rx71_cur."!cursor_pos"(rx71_pos)
+    $P10 = rx71_cur."ww"()
+    if $P10, rx71_fail
+.annotate 'line', 39
+  # rx rxquantr76 ** 0..*
+    set_addr $I83, rxquantr76_done
+    rx71_cur."!mark_push"(0, rx71_pos, $I83)
   rxquantr76_loop:
+  alt77_0:
+.annotate 'line', 35
+    set_addr $I10, alt77_1
+    rx71_cur."!mark_push"(0, rx71_pos, $I10)
+  # rx rxquantr78 ** 1..*
+    set_addr $I79, rxquantr78_done
+    rx71_cur."!mark_push"(0, -1, $I79)
+  rxquantr78_loop:
   # rx enumcharlist negate=0 
-    ge rx69_pos, rx69_eos, rx69_fail
-    sub $I10, rx69_pos, rx69_off
-    substr $S10, rx69_tgt, $I10, 1
+    ge rx71_pos, rx71_eos, rx71_fail
+    sub $I10, rx71_pos, rx71_off
+    substr $S10, rx71_tgt, $I10, 1
     index $I11, unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", $S10
-    lt $I11, 0, rx69_fail
-    inc rx69_pos
-    (rx69_rep) = rx69_cur."!mark_commit"($I77)
-    rx69_cur."!mark_push"(rx69_rep, rx69_pos, $I77)
-    goto rxquantr76_loop
-  rxquantr76_done:
-    goto alt75_end
-  alt75_1:
-    set_addr $I10, alt75_2
-    rx69_cur."!mark_push"(0, rx69_pos, $I10)
-.annotate 'line', 35
+    lt $I11, 0, rx71_fail
+    inc rx71_pos
+    (rx71_rep) = rx71_cur."!mark_commit"($I79)
+    rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I79)
+    goto rxquantr78_loop
+  rxquantr78_done:
+    goto alt77_end
+  alt77_1:
+    set_addr $I10, alt77_2
+    rx71_cur."!mark_push"(0, rx71_pos, $I10)
+.annotate 'line', 36
   # rx literal  "#"
-    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
-    add rx69_pos, 1
+    add $I11, rx71_pos, 1
+    gt $I11, rx71_eos, rx71_fail
+    sub $I11, rx71_pos, rx71_off
+    substr $S10, rx71_tgt, $I11, 1
+    ne $S10, "#", rx71_fail
+    add rx71_pos, 1
   # rx charclass_q N r 0..-1
-    sub $I10, rx69_pos, rx69_off
-    find_cclass $I11, 4096, rx69_tgt, $I10, rx69_eos
-    add rx69_pos, rx69_off, $I11
-    goto alt75_end
-  alt75_2:
-    set_addr $I10, alt75_3
-    rx69_cur."!mark_push"(0, rx69_pos, $I10)
-.annotate 'line', 36
+    sub $I10, rx71_pos, rx71_off
+    find_cclass $I11, 4096, rx71_tgt, $I10, rx71_eos
+    add rx71_pos, rx71_off, $I11
+    goto alt77_end
+  alt77_2:
+    set_addr $I10, alt77_3
+    rx71_cur."!mark_push"(0, rx71_pos, $I10)
+.annotate 'line', 37
   # rxanchor bol
-    eq rx69_pos, 0, rxanchor78_done
-    ge rx69_pos, rx69_eos, rx69_fail
-    sub $I10, rx69_pos, rx69_off
+    eq rx71_pos, 0, rxanchor80_done
+    ge rx71_pos, rx71_eos, rx71_fail
+    sub $I10, rx71_pos, rx71_off
     dec $I10
-    is_cclass $I11, 4096, rx69_tgt, $I10
-    unless $I11, rx69_fail
-  rxanchor78_done:
+    is_cclass $I11, 4096, rx71_tgt, $I10
+    unless $I11, rx71_fail
+  rxanchor80_done:
   # rx subrule "pod_comment" subtype=method negate=
-    rx69_cur."!cursor_pos"(rx69_pos)
-    $P10 = rx69_cur."pod_comment"()
-    unless $P10, rx69_fail
-    rx69_pos = $P10."pos"()
-    goto alt75_end
-  alt75_3:
-.annotate 'line', 37
-  # rx rxquantr79 ** 1..*
-    set_addr $I80, rxquantr79_done
-    rx69_cur."!mark_push"(0, -1, $I80)
-  rxquantr79_loop:
+    rx71_cur."!cursor_pos"(rx71_pos)
+    $P10 = rx71_cur."pod_comment"()
+    unless $P10, rx71_fail
+    rx71_pos = $P10."pos"()
+    goto alt77_end
+  alt77_3:
+.annotate 'line', 38
+  # rx rxquantr81 ** 1..*
+    set_addr $I82, rxquantr81_done
+    rx71_cur."!mark_push"(0, -1, $I82)
+  rxquantr81_loop:
   # rx enumcharlist negate=0 
-    ge rx69_pos, rx69_eos, rx69_fail
-    sub $I10, rx69_pos, rx69_off
-    substr $S10, rx69_tgt, $I10, 1
+    ge rx71_pos, rx71_eos, rx71_fail
+    sub $I10, rx71_pos, rx71_off
+    substr $S10, rx71_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, rx69_fail
-    inc rx69_pos
-    (rx69_rep) = rx69_cur."!mark_commit"($I80)
-    rx69_cur."!mark_push"(rx69_rep, rx69_pos, $I80)
-    goto rxquantr79_loop
-  rxquantr79_done:
-  alt75_end:
-.annotate 'line', 38
-    (rx69_rep) = rx69_cur."!mark_commit"($I81)
-    rx69_cur."!mark_push"(rx69_rep, rx69_pos, $I81)
-    goto rxquantr74_loop
-  rxquantr74_done:
+    lt $I11, 0, rx71_fail
+    inc rx71_pos
+    (rx71_rep) = rx71_cur."!mark_commit"($I82)
+    rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I82)
+    goto rxquantr81_loop
+  rxquantr81_done:
+  alt77_end:
 .annotate 'line', 39
+    (rx71_rep) = rx71_cur."!mark_commit"($I83)
+    rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I83)
+    goto rxquantr76_loop
+  rxquantr76_done:
+.annotate 'line', 40
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx69_cur."!cursor_pos"(rx69_pos)
-    $P10 = rx69_cur."MARKER"("ws")
-    unless $P10, rx69_fail
-  alt73_end:
-.annotate 'line', 31
+    rx71_cur."!cursor_pos"(rx71_pos)
+    $P10 = rx71_cur."MARKER"("ws")
+    unless $P10, rx71_fail
+  alt75_end:
+.annotate 'line', 32
   # rx pass
-    rx69_cur."!cursor_pass"(rx69_pos, "ws")
-    rx69_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx69_pos)
-    .return (rx69_cur)
-  rx69_fail:
+    rx71_cur."!cursor_pass"(rx71_pos, "ws")
+    rx71_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx71_pos)
+    .return (rx71_cur)
+  rx71_fail:
 .annotate 'line', 4
-    (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
-    lt rx69_pos, -1, rx69_done
-    eq rx69_pos, -1, rx69_fail
+    (rx71_rep, rx71_pos, $I10, $P10) = rx71_cur."!mark_fail"(0)
+    lt rx71_pos, -1, rx71_done
+    eq rx71_pos, -1, rx71_fail
     jump $I10
-  rx69_done:
-    rx69_cur."!cursor_fail"()
-    rx69_cur."!cursor_debug"("FAIL  ", "ws")
-    .return (rx69_cur)
+  rx71_done:
+    rx71_cur."!cursor_fail"()
+    rx71_cur."!cursor_debug"("FAIL  ", "ws")
+    .return (rx71_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1274853038.58734") :method
+.sub "!PREFIX__ws"  :subid("22_1275811487.95429") :method
 .annotate 'line', 4
-    new $P71, "ResizablePMCArray"
-    push $P71, ""
-    push $P71, ""
-    .return ($P71)
+    new $P73, "ResizablePMCArray"
+    push $P73, ""
+    push $P73, ""
+    .return ($P73)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "unv"  :subid("23_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .const 'Sub' $P90 = "25_1274853038.58734" 
-    capture_lex $P90
-    .local string rx83_tgt
-    .local int rx83_pos
-    .local int rx83_off
-    .local int rx83_eos
-    .local int rx83_rep
-    .local pmc rx83_cur
-    (rx83_cur, rx83_pos, rx83_tgt) = self."!cursor_start"()
-    rx83_cur."!cursor_debug"("START ", "unv")
-    .lex unicode:"$\x{a2}", rx83_cur
+    .const 'Sub' $P92 = "25_1275811487.95429" 
+    capture_lex $P92
+    .local string rx85_tgt
+    .local int rx85_pos
+    .local int rx85_off
+    .local int rx85_eos
+    .local int rx85_rep
+    .local pmc rx85_cur
+    (rx85_cur, rx85_pos, rx85_tgt) = self."!cursor_start"()
+    rx85_cur."!cursor_debug"("START ", "unv")
+    .lex unicode:"$\x{a2}", rx85_cur
     .local pmc match
     .lex "$/", match
-    length rx83_eos, rx83_tgt
-    set rx83_off, 0
-    lt rx83_pos, 2, rx83_start
-    sub rx83_off, rx83_pos, 1
-    substr rx83_tgt, rx83_tgt, rx83_off
-  rx83_start:
+    length rx85_eos, rx85_tgt
+    gt rx85_pos, rx85_eos, rx85_done
+    set rx85_off, 0
+    lt rx85_pos, 2, rx85_start
+    sub rx85_off, rx85_pos, 1
+    substr rx85_tgt, rx85_tgt, rx85_off
+  rx85_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan86_done
-    goto rxscan86_scan
-  rxscan86_loop:
-    ($P10) = rx83_cur."from"()
+    ne $I10, -1, rxscan88_done
+    goto rxscan88_scan
+  rxscan88_loop:
+    ($P10) = rx85_cur."from"()
     inc $P10
-    set rx83_pos, $P10
-    ge rx83_pos, rx83_eos, rxscan86_done
-  rxscan86_scan:
-    set_addr $I10, rxscan86_loop
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
-  rxscan86_done:
-  alt87_0:
-.annotate 'line', 44
-    set_addr $I10, alt87_1
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
+    set rx85_pos, $P10
+    ge rx85_pos, rx85_eos, rxscan88_done
+  rxscan88_scan:
+    set_addr $I10, rxscan88_loop
+    rx85_cur."!mark_push"(0, rx85_pos, $I10)
+  rxscan88_done:
+  alt89_0:
 .annotate 'line', 45
+    set_addr $I10, alt89_1
+    rx85_cur."!mark_push"(0, rx85_pos, $I10)
+.annotate 'line', 46
   # rxanchor bol
-    eq rx83_pos, 0, rxanchor88_done
-    ge rx83_pos, rx83_eos, rx83_fail
-    sub $I10, rx83_pos, rx83_off
+    eq rx85_pos, 0, rxanchor90_done
+    ge rx85_pos, rx85_eos, rx85_fail
+    sub $I10, rx85_pos, rx85_off
     dec $I10
-    is_cclass $I11, 4096, rx83_tgt, $I10
-    unless $I11, rx83_fail
-  rxanchor88_done:
+    is_cclass $I11, 4096, rx85_tgt, $I10
+    unless $I11, rx85_fail
+  rxanchor90_done:
   # rx subrule "before" subtype=zerowidth negate=
-    rx83_cur."!cursor_pos"(rx83_pos)
-    .const 'Sub' $P90 = "25_1274853038.58734" 
-    capture_lex $P90
-    $P10 = rx83_cur."before"($P90)
-    unless $P10, rx83_fail
+    rx85_cur."!cursor_pos"(rx85_pos)
+    .const 'Sub' $P92 = "25_1275811487.95429" 
+    capture_lex $P92
+    $P10 = rx85_cur."before"($P92)
+    unless $P10, rx85_fail
   # rx subrule "pod_comment" subtype=method negate=
-    rx83_cur."!cursor_pos"(rx83_pos)
-    $P10 = rx83_cur."pod_comment"()
-    unless $P10, rx83_fail
-    rx83_pos = $P10."pos"()
-    goto alt87_end
-  alt87_1:
-    set_addr $I10, alt87_2
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
-.annotate 'line', 46
-  # rx rxquantr96 ** 0..*
-    set_addr $I97, rxquantr96_done
-    rx83_cur."!mark_push"(0, rx83_pos, $I97)
-  rxquantr96_loop:
-  # rx enumcharlist negate=0 
-    ge rx83_pos, rx83_eos, rx83_fail
-    sub $I10, rx83_pos, rx83_off
-    substr $S10, rx83_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, rx83_fail
-    inc rx83_pos
-    (rx83_rep) = rx83_cur."!mark_commit"($I97)
-    rx83_cur."!mark_push"(rx83_rep, rx83_pos, $I97)
-    goto rxquantr96_loop
-  rxquantr96_done:
-  # rx literal  "#"
-    add $I11, rx83_pos, 1
-    gt $I11, rx83_eos, rx83_fail
-    sub $I11, rx83_pos, rx83_off
-    substr $S10, rx83_tgt, $I11, 1
-    ne $S10, "#", rx83_fail
-    add rx83_pos, 1
-  # rx charclass_q N r 0..-1
-    sub $I10, rx83_pos, rx83_off
-    find_cclass $I11, 4096, rx83_tgt, $I10, rx83_eos
-    add rx83_pos, rx83_off, $I11
-    goto alt87_end
-  alt87_2:
+    rx85_cur."!cursor_pos"(rx85_pos)
+    $P10 = rx85_cur."pod_comment"()
+    unless $P10, rx85_fail
+    rx85_pos = $P10."pos"()
+    goto alt89_end
+  alt89_1:
+    set_addr $I10, alt89_2
+    rx85_cur."!mark_push"(0, rx85_pos, $I10)
 .annotate 'line', 47
-  # rx rxquantr98 ** 1..*
+  # rx rxquantr98 ** 0..*
     set_addr $I99, rxquantr98_done
-    rx83_cur."!mark_push"(0, -1, $I99)
+    rx85_cur."!mark_push"(0, rx85_pos, $I99)
   rxquantr98_loop:
   # rx enumcharlist negate=0 
-    ge rx83_pos, rx83_eos, rx83_fail
-    sub $I10, rx83_pos, rx83_off
-    substr $S10, rx83_tgt, $I10, 1
+    ge rx85_pos, rx85_eos, rx85_fail
+    sub $I10, rx85_pos, rx85_off
+    substr $S10, rx85_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, rx83_fail
-    inc rx83_pos
-    (rx83_rep) = rx83_cur."!mark_commit"($I99)
-    rx83_cur."!mark_push"(rx83_rep, rx83_pos, $I99)
+    lt $I11, 0, rx85_fail
+    inc rx85_pos
+    (rx85_rep) = rx85_cur."!mark_commit"($I99)
+    rx85_cur."!mark_push"(rx85_rep, rx85_pos, $I99)
     goto rxquantr98_loop
   rxquantr98_done:
-  alt87_end:
-.annotate 'line', 42
+  # rx literal  "#"
+    add $I11, rx85_pos, 1
+    gt $I11, rx85_eos, rx85_fail
+    sub $I11, rx85_pos, rx85_off
+    substr $S10, rx85_tgt, $I11, 1
+    ne $S10, "#", rx85_fail
+    add rx85_pos, 1
+  # rx charclass_q N r 0..-1
+    sub $I10, rx85_pos, rx85_off
+    find_cclass $I11, 4096, rx85_tgt, $I10, rx85_eos
+    add rx85_pos, rx85_off, $I11
+    goto alt89_end
+  alt89_2:
+.annotate 'line', 48
+  # rx rxquantr100 ** 1..*
+    set_addr $I101, rxquantr100_done
+    rx85_cur."!mark_push"(0, -1, $I101)
+  rxquantr100_loop:
+  # rx enumcharlist negate=0 
+    ge rx85_pos, rx85_eos, rx85_fail
+    sub $I10, rx85_pos, rx85_off
+    substr $S10, rx85_tgt, $I10, 1
+    index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
+    lt $I11, 0, rx85_fail
+    inc rx85_pos
+    (rx85_rep) = rx85_cur."!mark_commit"($I101)
+    rx85_cur."!mark_push"(rx85_rep, rx85_pos, $I101)
+    goto rxquantr100_loop
+  rxquantr100_done:
+  alt89_end:
+.annotate 'line', 43
   # rx pass
-    rx83_cur."!cursor_pass"(rx83_pos, "unv")
-    rx83_cur."!cursor_debug"("PASS  ", "unv", " at pos=", rx83_pos)
-    .return (rx83_cur)
-  rx83_fail:
+    rx85_cur."!cursor_pass"(rx85_pos, "unv")
+    rx85_cur."!cursor_debug"("PASS  ", "unv", " at pos=", rx85_pos)
+    .return (rx85_cur)
+  rx85_fail:
 .annotate 'line', 4
-    (rx83_rep, rx83_pos, $I10, $P10) = rx83_cur."!mark_fail"(0)
-    lt rx83_pos, -1, rx83_done
-    eq rx83_pos, -1, rx83_fail
+    (rx85_rep, rx85_pos, $I10, $P10) = rx85_cur."!mark_fail"(0)
+    lt rx85_pos, -1, rx85_done
+    eq rx85_pos, -1, rx85_fail
     jump $I10
-  rx83_done:
-    rx83_cur."!cursor_fail"()
-    rx83_cur."!cursor_debug"("FAIL  ", "unv")
-    .return (rx83_cur)
+  rx85_done:
+    rx85_cur."!cursor_fail"()
+    rx85_cur."!cursor_debug"("FAIL  ", "unv")
+    .return (rx85_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1274853038.58734") :method
+.sub "!PREFIX__unv"  :subid("24_1275811487.95429") :method
 .annotate 'line', 4
-    new $P85, "ResizablePMCArray"
-    push $P85, ""
-    push $P85, ""
-    push $P85, ""
-    .return ($P85)
+    new $P87, "ResizablePMCArray"
+    push $P87, ""
+    push $P87, ""
+    push $P87, ""
+    .return ($P87)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block89"  :anon :subid("25_1274853038.58734") :method :outer("23_1274853038.58734")
-.annotate 'line', 45
-    .local string rx91_tgt
-    .local int rx91_pos
-    .local int rx91_off
-    .local int rx91_eos
-    .local int rx91_rep
-    .local pmc rx91_cur
-    (rx91_cur, rx91_pos, rx91_tgt) = self."!cursor_start"()
-    rx91_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx91_cur
-    .local pmc match
-    .lex "$/", match
-    length rx91_eos, rx91_tgt
-    set rx91_off, 0
-    lt rx91_pos, 2, rx91_start
-    sub rx91_off, rx91_pos, 1
-    substr rx91_tgt, rx91_tgt, rx91_off
-  rx91_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan92_done
-    goto rxscan92_scan
-  rxscan92_loop:
-    ($P10) = rx91_cur."from"()
-    inc $P10
-    set rx91_pos, $P10
-    ge rx91_pos, rx91_eos, rxscan92_done
-  rxscan92_scan:
-    set_addr $I10, rxscan92_loop
-    rx91_cur."!mark_push"(0, rx91_pos, $I10)
-  rxscan92_done:
-  # rx rxquantr93 ** 0..*
-    set_addr $I94, rxquantr93_done
-    rx91_cur."!mark_push"(0, rx91_pos, $I94)
-  rxquantr93_loop:
+.sub "_block91"  :anon :subid("25_1275811487.95429") :method :outer("23_1275811487.95429")
+.annotate 'line', 46
+    .local string rx93_tgt
+    .local int rx93_pos
+    .local int rx93_off
+    .local int rx93_eos
+    .local int rx93_rep
+    .local pmc rx93_cur
+    (rx93_cur, rx93_pos, rx93_tgt) = self."!cursor_start"()
+    rx93_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx93_cur
+    .local pmc match
+    .lex "$/", match
+    length rx93_eos, rx93_tgt
+    gt rx93_pos, rx93_eos, rx93_done
+    set rx93_off, 0
+    lt rx93_pos, 2, rx93_start
+    sub rx93_off, rx93_pos, 1
+    substr rx93_tgt, rx93_tgt, rx93_off
+  rx93_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan94_done
+    goto rxscan94_scan
+  rxscan94_loop:
+    ($P10) = rx93_cur."from"()
+    inc $P10
+    set rx93_pos, $P10
+    ge rx93_pos, rx93_eos, rxscan94_done
+  rxscan94_scan:
+    set_addr $I10, rxscan94_loop
+    rx93_cur."!mark_push"(0, rx93_pos, $I10)
+  rxscan94_done:
+  # rx rxquantr95 ** 0..*
+    set_addr $I96, rxquantr95_done
+    rx93_cur."!mark_push"(0, rx93_pos, $I96)
+  rxquantr95_loop:
   # rx enumcharlist negate=0 
-    ge rx91_pos, rx91_eos, rx91_fail
-    sub $I10, rx91_pos, rx91_off
-    substr $S10, rx91_tgt, $I10, 1
+    ge rx93_pos, rx93_eos, rx93_fail
+    sub $I10, rx93_pos, rx93_off
+    substr $S10, rx93_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, rx91_fail
-    inc rx91_pos
-    (rx91_rep) = rx91_cur."!mark_commit"($I94)
-    rx91_cur."!mark_push"(rx91_rep, rx91_pos, $I94)
-    goto rxquantr93_loop
-  rxquantr93_done:
+    lt $I11, 0, rx93_fail
+    inc rx93_pos
+    (rx93_rep) = rx93_cur."!mark_commit"($I96)
+    rx93_cur."!mark_push"(rx93_rep, rx93_pos, $I96)
+    goto rxquantr95_loop
+  rxquantr95_done:
   # rx literal  "="
-    add $I11, rx91_pos, 1
-    gt $I11, rx91_eos, rx91_fail
-    sub $I11, rx91_pos, rx91_off
-    substr $S10, rx91_tgt, $I11, 1
-    ne $S10, "=", rx91_fail
-    add rx91_pos, 1
-  alt95_0:
-    set_addr $I10, alt95_1
-    rx91_cur."!mark_push"(0, rx91_pos, $I10)
+    add $I11, rx93_pos, 1
+    gt $I11, rx93_eos, rx93_fail
+    sub $I11, rx93_pos, rx93_off
+    substr $S10, rx93_tgt, $I11, 1
+    ne $S10, "=", rx93_fail
+    add rx93_pos, 1
+  alt97_0:
+    set_addr $I10, alt97_1
+    rx93_cur."!mark_push"(0, rx93_pos, $I10)
   # rx charclass w
-    ge rx91_pos, rx91_eos, rx91_fail
-    sub $I10, rx91_pos, rx91_off
-    is_cclass $I11, 8192, rx91_tgt, $I10
-    unless $I11, rx91_fail
-    inc rx91_pos
-    goto alt95_end
-  alt95_1:
+    ge rx93_pos, rx93_eos, rx93_fail
+    sub $I10, rx93_pos, rx93_off
+    is_cclass $I11, 8192, rx93_tgt, $I10
+    unless $I11, rx93_fail
+    inc rx93_pos
+    goto alt97_end
+  alt97_1:
   # rx literal  "\\"
-    add $I11, rx91_pos, 1
-    gt $I11, rx91_eos, rx91_fail
-    sub $I11, rx91_pos, rx91_off
-    substr $S10, rx91_tgt, $I11, 1
-    ne $S10, "\\", rx91_fail
-    add rx91_pos, 1
-  alt95_end:
-  # rx pass
-    rx91_cur."!cursor_pass"(rx91_pos, "")
-    rx91_cur."!cursor_debug"("PASS  ", "", " at pos=", rx91_pos)
-    .return (rx91_cur)
-  rx91_fail:
-    (rx91_rep, rx91_pos, $I10, $P10) = rx91_cur."!mark_fail"(0)
-    lt rx91_pos, -1, rx91_done
-    eq rx91_pos, -1, rx91_fail
-    jump $I10
-  rx91_done:
-    rx91_cur."!cursor_fail"()
-    rx91_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx91_cur)
+    add $I11, rx93_pos, 1
+    gt $I11, rx93_eos, rx93_fail
+    sub $I11, rx93_pos, rx93_off
+    substr $S10, rx93_tgt, $I11, 1
+    ne $S10, "\\", rx93_fail
+    add rx93_pos, 1
+  alt97_end:
+  # rx pass
+    rx93_cur."!cursor_pass"(rx93_pos, "")
+    rx93_cur."!cursor_debug"("PASS  ", "", " at pos=", rx93_pos)
+    .return (rx93_cur)
+  rx93_fail:
+    (rx93_rep, rx93_pos, $I10, $P10) = rx93_cur."!mark_fail"(0)
+    lt rx93_pos, -1, rx93_done
+    eq rx93_pos, -1, rx93_fail
+    jump $I10
+  rx93_done:
+    rx93_cur."!cursor_fail"()
+    rx93_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx93_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 4
-    .const 'Sub' $P141 = "28_1274853038.58734" 
-    capture_lex $P141
-    .local string rx101_tgt
-    .local int rx101_pos
-    .local int rx101_off
-    .local int rx101_eos
-    .local int rx101_rep
-    .local pmc rx101_cur
-    (rx101_cur, rx101_pos, rx101_tgt) = self."!cursor_start"()
-    rx101_cur."!cursor_debug"("START ", "pod_comment")
-    .lex unicode:"$\x{a2}", rx101_cur
-    .local pmc match
-    .lex "$/", match
-    length rx101_eos, rx101_tgt
-    set rx101_off, 0
-    lt rx101_pos, 2, rx101_start
-    sub rx101_off, rx101_pos, 1
-    substr rx101_tgt, rx101_tgt, rx101_off
-  rx101_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan104_done
-    goto rxscan104_scan
-  rxscan104_loop:
-    ($P10) = rx101_cur."from"()
-    inc $P10
-    set rx101_pos, $P10
-    ge rx101_pos, rx101_eos, rxscan104_done
-  rxscan104_scan:
-    set_addr $I10, rxscan104_loop
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
-  rxscan104_done:
-.annotate 'line', 52
+.sub "pod_comment"  :subid("26_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .const 'Sub' $P143 = "28_1275811487.95429" 
+    capture_lex $P143
+    .local string rx103_tgt
+    .local int rx103_pos
+    .local int rx103_off
+    .local int rx103_eos
+    .local int rx103_rep
+    .local pmc rx103_cur
+    (rx103_cur, rx103_pos, rx103_tgt) = self."!cursor_start"()
+    rx103_cur."!cursor_debug"("START ", "pod_comment")
+    .lex unicode:"$\x{a2}", rx103_cur
+    .local pmc match
+    .lex "$/", match
+    length rx103_eos, rx103_tgt
+    gt rx103_pos, rx103_eos, rx103_done
+    set rx103_off, 0
+    lt rx103_pos, 2, rx103_start
+    sub rx103_off, rx103_pos, 1
+    substr rx103_tgt, rx103_tgt, rx103_off
+  rx103_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan106_done
+    goto rxscan106_scan
+  rxscan106_loop:
+    ($P10) = rx103_cur."from"()
+    inc $P10
+    set rx103_pos, $P10
+    ge rx103_pos, rx103_eos, rxscan106_done
+  rxscan106_scan:
+    set_addr $I10, rxscan106_loop
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+  rxscan106_done:
+.annotate 'line', 53
   # rxanchor bol
-    eq rx101_pos, 0, rxanchor105_done
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
+    eq rx103_pos, 0, rxanchor107_done
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
     dec $I10
-    is_cclass $I11, 4096, rx101_tgt, $I10
-    unless $I11, rx101_fail
-  rxanchor105_done:
-  # rx rxquantr106 ** 0..*
-    set_addr $I107, rxquantr106_done
-    rx101_cur."!mark_push"(0, rx101_pos, $I107)
-  rxquantr106_loop:
+    is_cclass $I11, 4096, rx103_tgt, $I10
+    unless $I11, rx103_fail
+  rxanchor107_done:
+  # rx rxquantr108 ** 0..*
+    set_addr $I109, rxquantr108_done
+    rx103_cur."!mark_push"(0, rx103_pos, $I109)
+  rxquantr108_loop:
   # rx enumcharlist negate=0 
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I10, 1
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx101_fail
-    inc rx101_pos
-    (rx101_rep) = rx101_cur."!mark_commit"($I107)
-    rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I107)
-    goto rxquantr106_loop
-  rxquantr106_done:
+    lt $I11, 0, rx103_fail
+    inc rx103_pos
+    (rx103_rep) = rx103_cur."!mark_commit"($I109)
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I109)
+    goto rxquantr108_loop
+  rxquantr108_done:
   # rx literal  "="
-    add $I11, rx101_pos, 1
-    gt $I11, rx101_eos, rx101_fail
-    sub $I11, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I11, 1
-    ne $S10, "=", rx101_fail
-    add rx101_pos, 1
-  alt108_0:
-.annotate 'line', 53
-    set_addr $I10, alt108_1
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
+    add $I11, rx103_pos, 1
+    gt $I11, rx103_eos, rx103_fail
+    sub $I11, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I11, 1
+    ne $S10, "=", rx103_fail
+    add rx103_pos, 1
+  alt110_0:
 .annotate 'line', 54
+    set_addr $I10, alt110_1
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 55
   # rx literal  "begin"
-    add $I11, rx101_pos, 5
-    gt $I11, rx101_eos, rx101_fail
-    sub $I11, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I11, 5
-    ne $S10, "begin", rx101_fail
-    add rx101_pos, 5
-  # rx rxquantr109 ** 1..*
-    set_addr $I110, rxquantr109_done
-    rx101_cur."!mark_push"(0, -1, $I110)
-  rxquantr109_loop:
+    add $I11, rx103_pos, 5
+    gt $I11, rx103_eos, rx103_fail
+    sub $I11, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I11, 5
+    ne $S10, "begin", rx103_fail
+    add rx103_pos, 5
+  # rx rxquantr111 ** 1..*
+    set_addr $I112, rxquantr111_done
+    rx103_cur."!mark_push"(0, -1, $I112)
+  rxquantr111_loop:
   # rx enumcharlist negate=0 
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I10, 1
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx101_fail
-    inc rx101_pos
-    (rx101_rep) = rx101_cur."!mark_commit"($I110)
-    rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I110)
-    goto rxquantr109_loop
-  rxquantr109_done:
+    lt $I11, 0, rx103_fail
+    inc rx103_pos
+    (rx103_rep) = rx103_cur."!mark_commit"($I112)
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I112)
+    goto rxquantr111_loop
+  rxquantr111_done:
   # rx literal  "END"
-    add $I11, rx101_pos, 3
-    gt $I11, rx101_eos, rx101_fail
-    sub $I11, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I11, 3
-    ne $S10, "END", rx101_fail
-    add rx101_pos, 3
+    add $I11, rx103_pos, 3
+    gt $I11, rx103_eos, rx103_fail
+    sub $I11, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I11, 3
+    ne $S10, "END", rx103_fail
+    add rx103_pos, 3
   # rxanchor rwb
-    le rx101_pos, 0, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    is_cclass $I11, 8192, rx101_tgt, $I10
-    if $I11, rx101_fail
+    le rx103_pos, 0, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    is_cclass $I11, 8192, rx103_tgt, $I10
+    if $I11, rx103_fail
     dec $I10
-    is_cclass $I11, 8192, rx101_tgt, $I10
-    unless $I11, rx101_fail
-  alt111_0:
-.annotate 'line', 55
-    set_addr $I10, alt111_1
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
-  # rx rxquantf112 ** 0..*
-    set_addr $I10, rxquantf112_loop
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
-    goto rxquantf112_done
-  rxquantf112_loop:
+    is_cclass $I11, 8192, rx103_tgt, $I10
+    unless $I11, rx103_fail
+  alt113_0:
+.annotate 'line', 56
+    set_addr $I10, alt113_1
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+  # rx rxquantf114 ** 0..*
+    set_addr $I10, rxquantf114_loop
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    goto rxquantf114_done
+  rxquantf114_loop:
   # rx charclass .
-    ge rx101_pos, rx101_eos, rx101_fail
-    inc rx101_pos
-    set_addr $I10, rxquantf112_loop
-    rx101_cur."!mark_push"($I113, rx101_pos, $I10)
-  rxquantf112_done:
+    ge rx103_pos, rx103_eos, rx103_fail
+    inc rx103_pos
+    set_addr $I10, rxquantf114_loop
+    rx103_cur."!mark_push"($I115, rx103_pos, $I10)
+  rxquantf114_done:
   # rx charclass nl
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    is_cclass $I11, 4096, rx101_tgt, $I10
-    unless $I11, rx101_fail
-    substr $S10, rx101_tgt, $I10, 2
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    is_cclass $I11, 4096, rx103_tgt, $I10
+    unless $I11, rx103_fail
+    substr $S10, rx103_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx101_pos, $I11
-    inc rx101_pos
-  # rx rxquantr114 ** 0..*
-    set_addr $I115, rxquantr114_done
-    rx101_cur."!mark_push"(0, rx101_pos, $I115)
-  rxquantr114_loop:
-  # rx enumcharlist negate=0 
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    substr $S10, rx101_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, rx101_fail
-    inc rx101_pos
-    (rx101_rep) = rx101_cur."!mark_commit"($I115)
-    rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I115)
-    goto rxquantr114_loop
-  rxquantr114_done:
-  # rx literal  "=end"
-    add $I11, rx101_pos, 4
-    gt $I11, rx101_eos, rx101_fail
-    sub $I11, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I11, 4
-    ne $S10, "=end", rx101_fail
-    add rx101_pos, 4
-  # rx rxquantr116 ** 1..*
+    add rx103_pos, $I11
+    inc rx103_pos
+  # rx rxquantr116 ** 0..*
     set_addr $I117, rxquantr116_done
-    rx101_cur."!mark_push"(0, -1, $I117)
+    rx103_cur."!mark_push"(0, rx103_pos, $I117)
   rxquantr116_loop:
   # rx enumcharlist negate=0 
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I10, 1
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx101_fail
-    inc rx101_pos
-    (rx101_rep) = rx101_cur."!mark_commit"($I117)
-    rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I117)
+    lt $I11, 0, rx103_fail
+    inc rx103_pos
+    (rx103_rep) = rx103_cur."!mark_commit"($I117)
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I117)
     goto rxquantr116_loop
   rxquantr116_done:
+  # rx literal  "=end"
+    add $I11, rx103_pos, 4
+    gt $I11, rx103_eos, rx103_fail
+    sub $I11, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I11, 4
+    ne $S10, "=end", rx103_fail
+    add rx103_pos, 4
+  # rx rxquantr118 ** 1..*
+    set_addr $I119, rxquantr118_done
+    rx103_cur."!mark_push"(0, -1, $I119)
+  rxquantr118_loop:
+  # rx enumcharlist negate=0 
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I10, 1
+    index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
+    lt $I11, 0, rx103_fail
+    inc rx103_pos
+    (rx103_rep) = rx103_cur."!mark_commit"($I119)
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I119)
+    goto rxquantr118_loop
+  rxquantr118_done:
   # rx literal  "END"
-    add $I11, rx101_pos, 3
-    gt $I11, rx101_eos, rx101_fail
-    sub $I11, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I11, 3
-    ne $S10, "END", rx101_fail
-    add rx101_pos, 3
+    add $I11, rx103_pos, 3
+    gt $I11, rx103_eos, rx103_fail
+    sub $I11, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I11, 3
+    ne $S10, "END", rx103_fail
+    add rx103_pos, 3
   # rxanchor rwb
-    le rx101_pos, 0, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    is_cclass $I11, 8192, rx101_tgt, $I10
-    if $I11, rx101_fail
+    le rx103_pos, 0, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    is_cclass $I11, 8192, rx103_tgt, $I10
+    if $I11, rx103_fail
     dec $I10
-    is_cclass $I11, 8192, rx101_tgt, $I10
-    unless $I11, rx101_fail
+    is_cclass $I11, 8192, rx103_tgt, $I10
+    unless $I11, rx103_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx101_pos, rx101_off
-    find_cclass $I11, 4096, rx101_tgt, $I10, rx101_eos
-    add rx101_pos, rx101_off, $I11
-    goto alt111_end
-  alt111_1:
+    sub $I10, rx103_pos, rx103_off
+    find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
+    add rx103_pos, rx103_off, $I11
+    goto alt113_end
+  alt113_1:
   # rx charclass_q . r 0..-1
-    sub $I10, rx101_pos, rx101_off
-    find_not_cclass $I11, 65535, rx101_tgt, $I10, rx101_eos
-    add rx101_pos, rx101_off, $I11
-  alt111_end:
-.annotate 'line', 54
-    goto alt108_end
-  alt108_1:
-    set_addr $I10, alt108_2
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
-.annotate 'line', 56
+    sub $I10, rx103_pos, rx103_off
+    find_not_cclass $I11, 65535, rx103_tgt, $I10, rx103_eos
+    add rx103_pos, rx103_off, $I11
+  alt113_end:
+.annotate 'line', 55
+    goto alt110_end
+  alt110_1:
+    set_addr $I10, alt110_2
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 57
   # rx literal  "begin"
-    add $I11, rx101_pos, 5
-    gt $I11, rx101_eos, rx101_fail
-    sub $I11, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I11, 5
-    ne $S10, "begin", rx101_fail
-    add rx101_pos, 5
-  # rx rxquantr118 ** 1..*
-    set_addr $I119, rxquantr118_done
-    rx101_cur."!mark_push"(0, -1, $I119)
-  rxquantr118_loop:
+    add $I11, rx103_pos, 5
+    gt $I11, rx103_eos, rx103_fail
+    sub $I11, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I11, 5
+    ne $S10, "begin", rx103_fail
+    add rx103_pos, 5
+  # rx rxquantr120 ** 1..*
+    set_addr $I121, rxquantr120_done
+    rx103_cur."!mark_push"(0, -1, $I121)
+  rxquantr120_loop:
   # rx enumcharlist negate=0 
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I10, 1
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx101_fail
-    inc rx101_pos
-    (rx101_rep) = rx101_cur."!mark_commit"($I119)
-    rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I119)
-    goto rxquantr118_loop
-  rxquantr118_done:
+    lt $I11, 0, rx103_fail
+    inc rx103_pos
+    (rx103_rep) = rx103_cur."!mark_commit"($I121)
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I121)
+    goto rxquantr120_loop
+  rxquantr120_done:
   # rx subrule "identifier" subtype=capture negate=
-    rx101_cur."!cursor_pos"(rx101_pos)
-    $P10 = rx101_cur."identifier"()
-    unless $P10, rx101_fail
-    rx101_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."identifier"()
+    unless $P10, rx103_fail
+    rx103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx101_pos = $P10."pos"()
-  alt120_0:
-.annotate 'line', 57
-    set_addr $I10, alt120_1
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
+    rx103_pos = $P10."pos"()
+  alt122_0:
 .annotate 'line', 58
-  # rx rxquantf121 ** 0..*
-    set_addr $I10, rxquantf121_loop
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
-    goto rxquantf121_done
-  rxquantf121_loop:
+    set_addr $I10, alt122_1
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 59
+  # rx rxquantf123 ** 0..*
+    set_addr $I10, rxquantf123_loop
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    goto rxquantf123_done
+  rxquantf123_loop:
   # rx charclass .
-    ge rx101_pos, rx101_eos, rx101_fail
-    inc rx101_pos
-    set_addr $I10, rxquantf121_loop
-    rx101_cur."!mark_push"($I122, rx101_pos, $I10)
-  rxquantf121_done:
+    ge rx103_pos, rx103_eos, rx103_fail
+    inc rx103_pos
+    set_addr $I10, rxquantf123_loop
+    rx103_cur."!mark_push"($I124, rx103_pos, $I10)
+  rxquantf123_done:
   # rx charclass nl
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    is_cclass $I11, 4096, rx101_tgt, $I10
-    unless $I11, rx101_fail
-    substr $S10, rx101_tgt, $I10, 2
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    is_cclass $I11, 4096, rx103_tgt, $I10
+    unless $I11, rx103_fail
+    substr $S10, rx103_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx101_pos, $I11
-    inc rx101_pos
-  # rx rxquantr123 ** 0..*
-    set_addr $I124, rxquantr123_done
-    rx101_cur."!mark_push"(0, rx101_pos, $I124)
-  rxquantr123_loop:
-  # rx enumcharlist negate=0 
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    substr $S10, rx101_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, rx101_fail
-    inc rx101_pos
-    (rx101_rep) = rx101_cur."!mark_commit"($I124)
-    rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I124)
-    goto rxquantr123_loop
-  rxquantr123_done:
-  # rx literal  "=end"
-    add $I11, rx101_pos, 4
-    gt $I11, rx101_eos, rx101_fail
-    sub $I11, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I11, 4
-    ne $S10, "=end", rx101_fail
-    add rx101_pos, 4
-  # rx rxquantr125 ** 1..*
+    add rx103_pos, $I11
+    inc rx103_pos
+  # rx rxquantr125 ** 0..*
     set_addr $I126, rxquantr125_done
-    rx101_cur."!mark_push"(0, -1, $I126)
+    rx103_cur."!mark_push"(0, rx103_pos, $I126)
   rxquantr125_loop:
   # rx enumcharlist negate=0 
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I10, 1
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx101_fail
-    inc rx101_pos
-    (rx101_rep) = rx101_cur."!mark_commit"($I126)
-    rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I126)
+    lt $I11, 0, rx103_fail
+    inc rx103_pos
+    (rx103_rep) = rx103_cur."!mark_commit"($I126)
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I126)
     goto rxquantr125_loop
   rxquantr125_done:
+  # rx literal  "=end"
+    add $I11, rx103_pos, 4
+    gt $I11, rx103_eos, rx103_fail
+    sub $I11, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I11, 4
+    ne $S10, "=end", rx103_fail
+    add rx103_pos, 4
+  # rx rxquantr127 ** 1..*
+    set_addr $I128, rxquantr127_done
+    rx103_cur."!mark_push"(0, -1, $I128)
+  rxquantr127_loop:
+  # rx enumcharlist negate=0 
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I10, 1
+    index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
+    lt $I11, 0, rx103_fail
+    inc rx103_pos
+    (rx103_rep) = rx103_cur."!mark_commit"($I128)
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I128)
+    goto rxquantr127_loop
+  rxquantr127_done:
   # rx subrule "!BACKREF" subtype=method negate=
-    rx101_cur."!cursor_pos"(rx101_pos)
-    $P10 = rx101_cur."!BACKREF"("identifier")
-    unless $P10, rx101_fail
-    rx101_pos = $P10."pos"()
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."!BACKREF"("identifier")
+    unless $P10, rx103_fail
+    rx103_pos = $P10."pos"()
   # rxanchor rwb
-    le rx101_pos, 0, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    is_cclass $I11, 8192, rx101_tgt, $I10
-    if $I11, rx101_fail
+    le rx103_pos, 0, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    is_cclass $I11, 8192, rx103_tgt, $I10
+    if $I11, rx103_fail
     dec $I10
-    is_cclass $I11, 8192, rx101_tgt, $I10
-    unless $I11, rx101_fail
+    is_cclass $I11, 8192, rx103_tgt, $I10
+    unless $I11, rx103_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx101_pos, rx101_off
-    find_cclass $I11, 4096, rx101_tgt, $I10, rx101_eos
-    add rx101_pos, rx101_off, $I11
-    goto alt120_end
-  alt120_1:
-.annotate 'line', 59
+    sub $I10, rx103_pos, rx103_off
+    find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
+    add rx103_pos, rx103_off, $I11
+    goto alt122_end
+  alt122_1:
+.annotate 'line', 60
   # rx subrule "panic" subtype=method negate=
-    rx101_cur."!cursor_pos"(rx101_pos)
-    $P10 = rx101_cur."panic"("=begin without matching =end")
-    unless $P10, rx101_fail
-    rx101_pos = $P10."pos"()
-  alt120_end:
-.annotate 'line', 56
-    goto alt108_end
-  alt108_2:
-    set_addr $I10, alt108_3
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
-.annotate 'line', 61
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."panic"("=begin without matching =end")
+    unless $P10, rx103_fail
+    rx103_pos = $P10."pos"()
+  alt122_end:
+.annotate 'line', 57
+    goto alt110_end
+  alt110_2:
+    set_addr $I10, alt110_3
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 62
   # rx literal  "begin"
-    add $I11, rx101_pos, 5
-    gt $I11, rx101_eos, rx101_fail
-    sub $I11, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I11, 5
-    ne $S10, "begin", rx101_fail
-    add rx101_pos, 5
+    add $I11, rx103_pos, 5
+    gt $I11, rx103_eos, rx103_fail
+    sub $I11, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I11, 5
+    ne $S10, "begin", rx103_fail
+    add rx103_pos, 5
   # rxanchor rwb
-    le rx101_pos, 0, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    is_cclass $I11, 8192, rx101_tgt, $I10
-    if $I11, rx101_fail
+    le rx103_pos, 0, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    is_cclass $I11, 8192, rx103_tgt, $I10
+    if $I11, rx103_fail
     dec $I10
-    is_cclass $I11, 8192, rx101_tgt, $I10
-    unless $I11, rx101_fail
-  # rx rxquantr128 ** 0..*
-    set_addr $I129, rxquantr128_done
-    rx101_cur."!mark_push"(0, rx101_pos, $I129)
-  rxquantr128_loop:
+    is_cclass $I11, 8192, rx103_tgt, $I10
+    unless $I11, rx103_fail
+  # rx rxquantr130 ** 0..*
+    set_addr $I131, rxquantr130_done
+    rx103_cur."!mark_push"(0, rx103_pos, $I131)
+  rxquantr130_loop:
   # rx enumcharlist negate=0 
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I10, 1
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx101_fail
-    inc rx101_pos
-    (rx101_rep) = rx101_cur."!mark_commit"($I129)
-    rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I129)
-    goto rxquantr128_loop
-  rxquantr128_done:
-  alt130_0:
-.annotate 'line', 62
-    set_addr $I10, alt130_1
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
+    lt $I11, 0, rx103_fail
+    inc rx103_pos
+    (rx103_rep) = rx103_cur."!mark_commit"($I131)
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I131)
+    goto rxquantr130_loop
+  rxquantr130_done:
+  alt132_0:
+.annotate 'line', 63
+    set_addr $I10, alt132_1
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
   # rxanchor eol
-    sub $I10, rx101_pos, rx101_off
-    is_cclass $I11, 4096, rx101_tgt, $I10
-    if $I11, rxanchor131_done
-    ne rx101_pos, rx101_eos, rx101_fail
-    eq rx101_pos, 0, rxanchor131_done
+    sub $I10, rx103_pos, rx103_off
+    is_cclass $I11, 4096, rx103_tgt, $I10
+    if $I11, rxanchor133_done
+    ne rx103_pos, rx103_eos, rx103_fail
+    eq rx103_pos, 0, rxanchor133_done
     dec $I10
-    is_cclass $I11, 4096, rx101_tgt, $I10
-    if $I11, rx101_fail
-  rxanchor131_done:
-    goto alt130_end
-  alt130_1:
-    set_addr $I10, alt130_2
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
+    is_cclass $I11, 4096, rx103_tgt, $I10
+    if $I11, rx103_fail
+  rxanchor133_done:
+    goto alt132_end
+  alt132_1:
+    set_addr $I10, alt132_2
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
   # rx literal  "#"
-    add $I11, rx101_pos, 1
-    gt $I11, rx101_eos, rx101_fail
-    sub $I11, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I11, 1
-    ne $S10, "#", rx101_fail
-    add rx101_pos, 1
-    goto alt130_end
-  alt130_2:
+    add $I11, rx103_pos, 1
+    gt $I11, rx103_eos, rx103_fail
+    sub $I11, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I11, 1
+    ne $S10, "#", rx103_fail
+    add rx103_pos, 1
+    goto alt132_end
+  alt132_2:
   # rx subrule "panic" subtype=method negate=
-    rx101_cur."!cursor_pos"(rx101_pos)
-    $P10 = rx101_cur."panic"("Unrecognized token after =begin")
-    unless $P10, rx101_fail
-    rx101_pos = $P10."pos"()
-  alt130_end:
-  alt132_0:
-.annotate 'line', 63
-    set_addr $I10, alt132_1
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."panic"("Unrecognized token after =begin")
+    unless $P10, rx103_fail
+    rx103_pos = $P10."pos"()
+  alt132_end:
+  alt134_0:
 .annotate 'line', 64
-  # rx rxquantf133 ** 0..*
-    set_addr $I10, rxquantf133_loop
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
-    goto rxquantf133_done
-  rxquantf133_loop:
+    set_addr $I10, alt134_1
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 65
+  # rx rxquantf135 ** 0..*
+    set_addr $I10, rxquantf135_loop
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    goto rxquantf135_done
+  rxquantf135_loop:
   # rx charclass .
-    ge rx101_pos, rx101_eos, rx101_fail
-    inc rx101_pos
-    set_addr $I10, rxquantf133_loop
-    rx101_cur."!mark_push"($I134, rx101_pos, $I10)
-  rxquantf133_done:
+    ge rx103_pos, rx103_eos, rx103_fail
+    inc rx103_pos
+    set_addr $I10, rxquantf135_loop
+    rx103_cur."!mark_push"($I136, rx103_pos, $I10)
+  rxquantf135_done:
   # rx charclass nl
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    is_cclass $I11, 4096, rx101_tgt, $I10
-    unless $I11, rx101_fail
-    substr $S10, rx101_tgt, $I10, 2
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    is_cclass $I11, 4096, rx103_tgt, $I10
+    unless $I11, rx103_fail
+    substr $S10, rx103_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx101_pos, $I11
-    inc rx101_pos
-  # rx rxquantr135 ** 0..*
-    set_addr $I136, rxquantr135_done
-    rx101_cur."!mark_push"(0, rx101_pos, $I136)
-  rxquantr135_loop:
+    add rx103_pos, $I11
+    inc rx103_pos
+  # rx rxquantr137 ** 0..*
+    set_addr $I138, rxquantr137_done
+    rx103_cur."!mark_push"(0, rx103_pos, $I138)
+  rxquantr137_loop:
   # rx enumcharlist negate=0 
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I10, 1
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx101_fail
-    inc rx101_pos
-    (rx101_rep) = rx101_cur."!mark_commit"($I136)
-    rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I136)
-    goto rxquantr135_loop
-  rxquantr135_done:
+    lt $I11, 0, rx103_fail
+    inc rx103_pos
+    (rx103_rep) = rx103_cur."!mark_commit"($I138)
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I138)
+    goto rxquantr137_loop
+  rxquantr137_done:
   # rx literal  "=end"
-    add $I11, rx101_pos, 4
-    gt $I11, rx101_eos, rx101_fail
-    sub $I11, rx101_pos, rx101_off
-    substr $S10, rx101_tgt, $I11, 4
-    ne $S10, "=end", rx101_fail
-    add rx101_pos, 4
+    add $I11, rx103_pos, 4
+    gt $I11, rx103_eos, rx103_fail
+    sub $I11, rx103_pos, rx103_off
+    substr $S10, rx103_tgt, $I11, 4
+    ne $S10, "=end", rx103_fail
+    add rx103_pos, 4
   # rxanchor rwb
-    le rx101_pos, 0, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    is_cclass $I11, 8192, rx101_tgt, $I10
-    if $I11, rx101_fail
+    le rx103_pos, 0, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    is_cclass $I11, 8192, rx103_tgt, $I10
+    if $I11, rx103_fail
     dec $I10
-    is_cclass $I11, 8192, rx101_tgt, $I10
-    unless $I11, rx101_fail
+    is_cclass $I11, 8192, rx103_tgt, $I10
+    unless $I11, rx103_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx101_pos, rx101_off
-    find_cclass $I11, 4096, rx101_tgt, $I10, rx101_eos
-    add rx101_pos, rx101_off, $I11
-    goto alt132_end
-  alt132_1:
-.annotate 'line', 65
+    sub $I10, rx103_pos, rx103_off
+    find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
+    add rx103_pos, rx103_off, $I11
+    goto alt134_end
+  alt134_1:
+.annotate 'line', 66
   # rx subrule "panic" subtype=method negate=
-    rx101_cur."!cursor_pos"(rx101_pos)
-    $P10 = rx101_cur."panic"("=begin without matching =end")
-    unless $P10, rx101_fail
-    rx101_pos = $P10."pos"()
-  alt132_end:
-.annotate 'line', 61
-    goto alt108_end
-  alt108_3:
-    set_addr $I10, alt108_4
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
-.annotate 'line', 67
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."panic"("=begin without matching =end")
+    unless $P10, rx103_fail
+    rx103_pos = $P10."pos"()
+  alt134_end:
+.annotate 'line', 62
+    goto alt110_end
+  alt110_3:
+    set_addr $I10, alt110_4
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 68
   # rx subrule "identifier" subtype=capture negate=
-    rx101_cur."!cursor_pos"(rx101_pos)
-    $P10 = rx101_cur."identifier"()
-    unless $P10, rx101_fail
-    rx101_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."identifier"()
+    unless $P10, rx103_fail
+    rx103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx101_pos = $P10."pos"()
-.annotate 'line', 68
-  # rx rxquantf137 ** 0..*
-    set_addr $I10, rxquantf137_loop
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
-    goto rxquantf137_done
-  rxquantf137_loop:
+    rx103_pos = $P10."pos"()
+.annotate 'line', 69
+  # rx rxquantf139 ** 0..*
+    set_addr $I10, rxquantf139_loop
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    goto rxquantf139_done
+  rxquantf139_loop:
   # rx charclass .
-    ge rx101_pos, rx101_eos, rx101_fail
-    inc rx101_pos
-    set_addr $I10, rxquantf137_loop
-    rx101_cur."!mark_push"($I138, rx101_pos, $I10)
-  rxquantf137_done:
+    ge rx103_pos, rx103_eos, rx103_fail
+    inc rx103_pos
+    set_addr $I10, rxquantf139_loop
+    rx103_cur."!mark_push"($I140, rx103_pos, $I10)
+  rxquantf139_done:
   # rxanchor bol
-    eq rx101_pos, 0, rxanchor139_done
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
+    eq rx103_pos, 0, rxanchor141_done
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
     dec $I10
-    is_cclass $I11, 4096, rx101_tgt, $I10
-    unless $I11, rx101_fail
-  rxanchor139_done:
+    is_cclass $I11, 4096, rx103_tgt, $I10
+    unless $I11, rx103_fail
+  rxanchor141_done:
   # rx subrule "before" subtype=zerowidth negate=
-    rx101_cur."!cursor_pos"(rx101_pos)
-    .const 'Sub' $P141 = "28_1274853038.58734" 
-    capture_lex $P141
-    $P10 = rx101_cur."before"($P141)
-    unless $P10, rx101_fail
-.annotate 'line', 67
-    goto alt108_end
-  alt108_4:
-  alt149_0:
-.annotate 'line', 74
-    set_addr $I10, alt149_1
-    rx101_cur."!mark_push"(0, rx101_pos, $I10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    .const 'Sub' $P143 = "28_1275811487.95429" 
+    capture_lex $P143
+    $P10 = rx103_cur."before"($P143)
+    unless $P10, rx103_fail
+.annotate 'line', 68
+    goto alt110_end
+  alt110_4:
+  alt151_0:
+.annotate 'line', 75
+    set_addr $I10, alt151_1
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
   # rx charclass s
-    ge rx101_pos, rx101_eos, rx101_fail
-    sub $I10, rx101_pos, rx101_off
-    is_cclass $I11, 32, rx101_tgt, $I10
-    unless $I11, rx101_fail
-    inc rx101_pos
-    goto alt149_end
-  alt149_1:
+    ge rx103_pos, rx103_eos, rx103_fail
+    sub $I10, rx103_pos, rx103_off
+    is_cclass $I11, 32, rx103_tgt, $I10
+    unless $I11, rx103_fail
+    inc rx103_pos
+    goto alt151_end
+  alt151_1:
   # rx subrule "panic" subtype=method negate=
-    rx101_cur."!cursor_pos"(rx101_pos)
-    $P10 = rx101_cur."panic"("Illegal pod directive")
-    unless $P10, rx101_fail
-    rx101_pos = $P10."pos"()
-  alt149_end:
-.annotate 'line', 75
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."panic"("Illegal pod directive")
+    unless $P10, rx103_fail
+    rx103_pos = $P10."pos"()
+  alt151_end:
+.annotate 'line', 76
   # rx charclass_q N r 0..-1
-    sub $I10, rx101_pos, rx101_off
-    find_cclass $I11, 4096, rx101_tgt, $I10, rx101_eos
-    add rx101_pos, rx101_off, $I11
-  alt108_end:
-.annotate 'line', 51
+    sub $I10, rx103_pos, rx103_off
+    find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
+    add rx103_pos, rx103_off, $I11
+  alt110_end:
+.annotate 'line', 52
   # rx pass
-    rx101_cur."!cursor_pass"(rx101_pos, "pod_comment")
-    rx101_cur."!cursor_debug"("PASS  ", "pod_comment", " at pos=", rx101_pos)
-    .return (rx101_cur)
-  rx101_fail:
+    rx103_cur."!cursor_pass"(rx103_pos, "pod_comment")
+    rx103_cur."!cursor_debug"("PASS  ", "pod_comment", " at pos=", rx103_pos)
+    .return (rx103_cur)
+  rx103_fail:
 .annotate 'line', 4
-    (rx101_rep, rx101_pos, $I10, $P10) = rx101_cur."!mark_fail"(0)
-    lt rx101_pos, -1, rx101_done
-    eq rx101_pos, -1, rx101_fail
+    (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
+    lt rx103_pos, -1, rx103_done
+    eq rx103_pos, -1, rx103_fail
     jump $I10
-  rx101_done:
-    rx101_cur."!cursor_fail"()
-    rx101_cur."!cursor_debug"("FAIL  ", "pod_comment")
-    .return (rx101_cur)
+  rx103_done:
+    rx103_cur."!cursor_fail"()
+    rx103_cur."!cursor_debug"("FAIL  ", "pod_comment")
+    .return (rx103_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1274853038.58734") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1275811487.95429") :method
 .annotate 'line', 4
-    new $P103, "ResizablePMCArray"
-    push $P103, ""
-    .return ($P103)
+    new $P105, "ResizablePMCArray"
+    push $P105, ""
+    .return ($P105)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block140"  :anon :subid("28_1274853038.58734") :method :outer("26_1274853038.58734")
-.annotate 'line', 68
-    .local string rx142_tgt
-    .local int rx142_pos
-    .local int rx142_off
-    .local int rx142_eos
-    .local int rx142_rep
-    .local pmc rx142_cur
-    (rx142_cur, rx142_pos, rx142_tgt) = self."!cursor_start"()
-    rx142_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx142_cur
-    .local pmc match
-    .lex "$/", match
-    length rx142_eos, rx142_tgt
-    set rx142_off, 0
-    lt rx142_pos, 2, rx142_start
-    sub rx142_off, rx142_pos, 1
-    substr rx142_tgt, rx142_tgt, rx142_off
-  rx142_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan143_done
-    goto rxscan143_scan
-  rxscan143_loop:
-    ($P10) = rx142_cur."from"()
-    inc $P10
-    set rx142_pos, $P10
-    ge rx142_pos, rx142_eos, rxscan143_done
-  rxscan143_scan:
-    set_addr $I10, rxscan143_loop
-    rx142_cur."!mark_push"(0, rx142_pos, $I10)
-  rxscan143_done:
-  # rx rxquantr144 ** 0..*
-    set_addr $I145, rxquantr144_done
-    rx142_cur."!mark_push"(0, rx142_pos, $I145)
-  rxquantr144_loop:
+.sub "_block142"  :anon :subid("28_1275811487.95429") :method :outer("26_1275811487.95429")
+.annotate 'line', 69
+    .local string rx144_tgt
+    .local int rx144_pos
+    .local int rx144_off
+    .local int rx144_eos
+    .local int rx144_rep
+    .local pmc rx144_cur
+    (rx144_cur, rx144_pos, rx144_tgt) = self."!cursor_start"()
+    rx144_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx144_cur
+    .local pmc match
+    .lex "$/", match
+    length rx144_eos, rx144_tgt
+    gt rx144_pos, rx144_eos, rx144_done
+    set rx144_off, 0
+    lt rx144_pos, 2, rx144_start
+    sub rx144_off, rx144_pos, 1
+    substr rx144_tgt, rx144_tgt, rx144_off
+  rx144_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan145_done
+    goto rxscan145_scan
+  rxscan145_loop:
+    ($P10) = rx144_cur."from"()
+    inc $P10
+    set rx144_pos, $P10
+    ge rx144_pos, rx144_eos, rxscan145_done
+  rxscan145_scan:
+    set_addr $I10, rxscan145_loop
+    rx144_cur."!mark_push"(0, rx144_pos, $I10)
+  rxscan145_done:
+  # rx rxquantr146 ** 0..*
+    set_addr $I147, rxquantr146_done
+    rx144_cur."!mark_push"(0, rx144_pos, $I147)
+  rxquantr146_loop:
   # rx enumcharlist negate=0 
-    ge rx142_pos, rx142_eos, rx142_fail
-    sub $I10, rx142_pos, rx142_off
-    substr $S10, rx142_tgt, $I10, 1
+    ge rx144_pos, rx144_eos, rx144_fail
+    sub $I10, rx144_pos, rx144_off
+    substr $S10, rx144_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, rx142_fail
-    inc rx142_pos
-    (rx142_rep) = rx142_cur."!mark_commit"($I145)
-    rx142_cur."!mark_push"(rx142_rep, rx142_pos, $I145)
-    goto rxquantr144_loop
-  rxquantr144_done:
-  alt146_0:
-    set_addr $I10, alt146_1
-    rx142_cur."!mark_push"(0, rx142_pos, $I10)
-.annotate 'line', 69
+    lt $I11, 0, rx144_fail
+    inc rx144_pos
+    (rx144_rep) = rx144_cur."!mark_commit"($I147)
+    rx144_cur."!mark_push"(rx144_rep, rx144_pos, $I147)
+    goto rxquantr146_loop
+  rxquantr146_done:
+  alt148_0:
+    set_addr $I10, alt148_1
+    rx144_cur."!mark_push"(0, rx144_pos, $I10)
+.annotate 'line', 70
   # rx literal  "="
-    add $I11, rx142_pos, 1
-    gt $I11, rx142_eos, rx142_fail
-    sub $I11, rx142_pos, rx142_off
-    substr $S10, rx142_tgt, $I11, 1
-    ne $S10, "=", rx142_fail
-    add rx142_pos, 1
+    add $I11, rx144_pos, 1
+    gt $I11, rx144_eos, rx144_fail
+    sub $I11, rx144_pos, rx144_off
+    substr $S10, rx144_tgt, $I11, 1
+    ne $S10, "=", rx144_fail
+    add rx144_pos, 1
+.annotate 'line', 72
+  # rx rxquantr149 ** 0..1
+    set_addr $I150, rxquantr149_done
+    rx144_cur."!mark_push"(0, rx144_pos, $I150)
+  rxquantr149_loop:
 .annotate 'line', 71
-  # rx rxquantr147 ** 0..1
-    set_addr $I148, rxquantr147_done
-    rx142_cur."!mark_push"(0, rx142_pos, $I148)
-  rxquantr147_loop:
-.annotate 'line', 70
   # rx literal  "cut"
-    add $I11, rx142_pos, 3
-    gt $I11, rx142_eos, rx142_fail
-    sub $I11, rx142_pos, rx142_off
-    substr $S10, rx142_tgt, $I11, 3
-    ne $S10, "cut", rx142_fail
-    add rx142_pos, 3
+    add $I11, rx144_pos, 3
+    gt $I11, rx144_eos, rx144_fail
+    sub $I11, rx144_pos, rx144_off
+    substr $S10, rx144_tgt, $I11, 3
+    ne $S10, "cut", rx144_fail
+    add rx144_pos, 3
   # rxanchor rwb
-    le rx142_pos, 0, rx142_fail
-    sub $I10, rx142_pos, rx142_off
-    is_cclass $I11, 8192, rx142_tgt, $I10
-    if $I11, rx142_fail
+    le rx144_pos, 0, rx144_fail
+    sub $I10, rx144_pos, rx144_off
+    is_cclass $I11, 8192, rx144_tgt, $I10
+    if $I11, rx144_fail
     dec $I10
-    is_cclass $I11, 8192, rx142_tgt, $I10
-    unless $I11, rx142_fail
-.annotate 'line', 71
-  # rx subrule "panic" subtype=method negate=
-    rx142_cur."!cursor_pos"(rx142_pos)
-    $P10 = rx142_cur."panic"("Obsolete pod format, please use =begin/=end instead")
-    unless $P10, rx142_fail
-    rx142_pos = $P10."pos"()
-    (rx142_rep) = rx142_cur."!mark_commit"($I148)
-  rxquantr147_done:
-.annotate 'line', 68
-    goto alt146_end
-  alt146_1:
+    is_cclass $I11, 8192, rx144_tgt, $I10
+    unless $I11, rx144_fail
 .annotate 'line', 72
+  # rx subrule "panic" subtype=method negate=
+    rx144_cur."!cursor_pos"(rx144_pos)
+    $P10 = rx144_cur."panic"("Obsolete pod format, please use =begin/=end instead")
+    unless $P10, rx144_fail
+    rx144_pos = $P10."pos"()
+    (rx144_rep) = rx144_cur."!mark_commit"($I150)
+  rxquantr149_done:
+.annotate 'line', 69
+    goto alt148_end
+  alt148_1:
+.annotate 'line', 73
   # rx charclass nl
-    ge rx142_pos, rx142_eos, rx142_fail
-    sub $I10, rx142_pos, rx142_off
-    is_cclass $I11, 4096, rx142_tgt, $I10
-    unless $I11, rx142_fail
-    substr $S10, rx142_tgt, $I10, 2
+    ge rx144_pos, rx144_eos, rx144_fail
+    sub $I10, rx144_pos, rx144_off
+    is_cclass $I11, 4096, rx144_tgt, $I10
+    unless $I11, rx144_fail
+    substr $S10, rx144_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx142_pos, $I11
-    inc rx142_pos
-  alt146_end:
-.annotate 'line', 68
+    add rx144_pos, $I11
+    inc rx144_pos
+  alt148_end:
+.annotate 'line', 69
   # rx pass
-    rx142_cur."!cursor_pass"(rx142_pos, "")
-    rx142_cur."!cursor_debug"("PASS  ", "", " at pos=", rx142_pos)
-    .return (rx142_cur)
-  rx142_fail:
-    (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
-    lt rx142_pos, -1, rx142_done
-    eq rx142_pos, -1, rx142_fail
-    jump $I10
-  rx142_done:
-    rx142_cur."!cursor_fail"()
-    rx142_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx142_cur)
+    rx144_cur."!cursor_pass"(rx144_pos, "")
+    rx144_cur."!cursor_debug"("PASS  ", "", " at pos=", rx144_pos)
+    .return (rx144_cur)
+  rx144_fail:
+    (rx144_rep, rx144_pos, $I10, $P10) = rx144_cur."!mark_fail"(0)
+    lt rx144_pos, -1, rx144_done
+    eq rx144_pos, -1, rx144_fail
+    jump $I10
+  rx144_done:
+    rx144_cur."!cursor_fail"()
+    rx144_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx144_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 4
-    .local string rx151_tgt
-    .local int rx151_pos
-    .local int rx151_off
-    .local int rx151_eos
-    .local int rx151_rep
-    .local pmc rx151_cur
-    (rx151_cur, rx151_pos, rx151_tgt) = self."!cursor_start"()
-    rx151_cur."!cursor_debug"("START ", "comp_unit")
-    .lex unicode:"$\x{a2}", rx151_cur
-    .local pmc match
-    .lex "$/", match
-    length rx151_eos, rx151_tgt
-    set rx151_off, 0
-    lt rx151_pos, 2, rx151_start
-    sub rx151_off, rx151_pos, 1
-    substr rx151_tgt, rx151_tgt, rx151_off
-  rx151_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan155_done
-    goto rxscan155_scan
-  rxscan155_loop:
-    ($P10) = rx151_cur."from"()
-    inc $P10
-    set rx151_pos, $P10
-    ge rx151_pos, rx151_eos, rxscan155_done
-  rxscan155_scan:
-    set_addr $I10, rxscan155_loop
-    rx151_cur."!mark_push"(0, rx151_pos, $I10)
-  rxscan155_done:
-.annotate 'line', 83
-  # rx subrule "newpad" subtype=method negate=
-    rx151_cur."!cursor_pos"(rx151_pos)
-    $P10 = rx151_cur."newpad"()
-    unless $P10, rx151_fail
-    rx151_pos = $P10."pos"()
+.sub "comp_unit"  :subid("29_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx153_tgt
+    .local int rx153_pos
+    .local int rx153_off
+    .local int rx153_eos
+    .local int rx153_rep
+    .local pmc rx153_cur
+    (rx153_cur, rx153_pos, rx153_tgt) = self."!cursor_start"()
+    rx153_cur."!cursor_debug"("START ", "comp_unit")
+    .lex unicode:"$\x{a2}", rx153_cur
+    .local pmc match
+    .lex "$/", match
+    length rx153_eos, rx153_tgt
+    gt rx153_pos, rx153_eos, rx153_done
+    set rx153_off, 0
+    lt rx153_pos, 2, rx153_start
+    sub rx153_off, rx153_pos, 1
+    substr rx153_tgt, rx153_tgt, rx153_off
+  rx153_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan157_done
+    goto rxscan157_scan
+  rxscan157_loop:
+    ($P10) = rx153_cur."from"()
+    inc $P10
+    set rx153_pos, $P10
+    ge rx153_pos, rx153_eos, rxscan157_done
+  rxscan157_scan:
+    set_addr $I10, rxscan157_loop
+    rx153_cur."!mark_push"(0, rx153_pos, $I10)
+  rxscan157_done:
 .annotate 'line', 84
-  # rx subrule "outerctx" subtype=method negate=
-    rx151_cur."!cursor_pos"(rx151_pos)
-    $P10 = rx151_cur."outerctx"()
-    unless $P10, rx151_fail
-    rx151_pos = $P10."pos"()
+  # rx subrule "newpad" subtype=method negate=
+    rx153_cur."!cursor_pos"(rx153_pos)
+    $P10 = rx153_cur."newpad"()
+    unless $P10, rx153_fail
+    rx153_pos = $P10."pos"()
 .annotate 'line', 85
+  # rx subrule "outerctx" subtype=method negate=
+    rx153_cur."!cursor_pos"(rx153_pos)
+    $P10 = rx153_cur."outerctx"()
+    unless $P10, rx153_fail
+    rx153_pos = $P10."pos"()
+.annotate 'line', 86
   # rx subrule "statementlist" subtype=capture negate=
-    rx151_cur."!cursor_pos"(rx151_pos)
-    $P10 = rx151_cur."statementlist"()
-    unless $P10, rx151_fail
-    rx151_cur."!mark_push"(0, -1, 0, $P10)
+    rx153_cur."!cursor_pos"(rx153_pos)
+    $P10 = rx153_cur."statementlist"()
+    unless $P10, rx153_fail
+    rx153_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statementlist")
-    rx151_pos = $P10."pos"()
-  alt156_0:
-.annotate 'line', 86
-    set_addr $I10, alt156_1
-    rx151_cur."!mark_push"(0, rx151_pos, $I10)
+    rx153_pos = $P10."pos"()
+  alt158_0:
+.annotate 'line', 87
+    set_addr $I10, alt158_1
+    rx153_cur."!mark_push"(0, rx153_pos, $I10)
   # rxanchor eos
-    ne rx151_pos, rx151_eos, rx151_fail
-    goto alt156_end
-  alt156_1:
+    ne rx153_pos, rx153_eos, rx153_fail
+    goto alt158_end
+  alt158_1:
   # rx subrule "panic" subtype=method negate=
-    rx151_cur."!cursor_pos"(rx151_pos)
-    $P10 = rx151_cur."panic"("Confused")
-    unless $P10, rx151_fail
-    rx151_pos = $P10."pos"()
-  alt156_end:
-.annotate 'line', 82
+    rx153_cur."!cursor_pos"(rx153_pos)
+    $P10 = rx153_cur."panic"("Confused")
+    unless $P10, rx153_fail
+    rx153_pos = $P10."pos"()
+  alt158_end:
+.annotate 'line', 83
   # rx pass
-    rx151_cur."!cursor_pass"(rx151_pos, "comp_unit")
-    rx151_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx151_pos)
-    .return (rx151_cur)
-  rx151_fail:
+    rx153_cur."!cursor_pass"(rx153_pos, "comp_unit")
+    rx153_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx153_pos)
+    .return (rx153_cur)
+  rx153_fail:
 .annotate 'line', 4
-    (rx151_rep, rx151_pos, $I10, $P10) = rx151_cur."!mark_fail"(0)
-    lt rx151_pos, -1, rx151_done
-    eq rx151_pos, -1, rx151_fail
+    (rx153_rep, rx153_pos, $I10, $P10) = rx153_cur."!mark_fail"(0)
+    lt rx153_pos, -1, rx153_done
+    eq rx153_pos, -1, rx153_fail
     jump $I10
-  rx151_done:
-    rx151_cur."!cursor_fail"()
-    rx151_cur."!cursor_debug"("FAIL  ", "comp_unit")
-    .return (rx151_cur)
+  rx153_done:
+    rx153_cur."!cursor_fail"()
+    rx153_cur."!cursor_debug"("FAIL  ", "comp_unit")
+    .return (rx153_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1274853038.58734") :method
+.sub "!PREFIX__comp_unit"  :subid("30_1275811487.95429") :method
 .annotate 'line', 4
-    $P153 = self."!PREFIX__!subrule"("", "")
-    new $P154, "ResizablePMCArray"
-    push $P154, $P153
-    .return ($P154)
+    $P155 = self."!PREFIX__!subrule"("newpad", "")
+    new $P156, "ResizablePMCArray"
+    push $P156, $P155
+    .return ($P156)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statementlist"  :subid("31_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx158_tgt
-    .local int rx158_pos
-    .local int rx158_off
-    .local int rx158_eos
-    .local int rx158_rep
-    .local pmc rx158_cur
-    (rx158_cur, rx158_pos, rx158_tgt) = self."!cursor_start"()
-    rx158_cur."!cursor_debug"("START ", "statementlist")
-    rx158_cur."!cursor_caparray"("statement")
-    .lex unicode:"$\x{a2}", rx158_cur
+    .local string rx160_tgt
+    .local int rx160_pos
+    .local int rx160_off
+    .local int rx160_eos
+    .local int rx160_rep
+    .local pmc rx160_cur
+    (rx160_cur, rx160_pos, rx160_tgt) = self."!cursor_start"()
+    rx160_cur."!cursor_debug"("START ", "statementlist")
+    rx160_cur."!cursor_caparray"("statement")
+    .lex unicode:"$\x{a2}", rx160_cur
     .local pmc match
     .lex "$/", match
-    length rx158_eos, rx158_tgt
-    set rx158_off, 0
-    lt rx158_pos, 2, rx158_start
-    sub rx158_off, rx158_pos, 1
-    substr rx158_tgt, rx158_tgt, rx158_off
-  rx158_start:
+    length rx160_eos, rx160_tgt
+    gt rx160_pos, rx160_eos, rx160_done
+    set rx160_off, 0
+    lt rx160_pos, 2, rx160_start
+    sub rx160_off, rx160_pos, 1
+    substr rx160_tgt, rx160_tgt, rx160_off
+  rx160_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan161_done
-    goto rxscan161_scan
-  rxscan161_loop:
-    ($P10) = rx158_cur."from"()
+    ne $I10, -1, rxscan165_done
+    goto rxscan165_scan
+  rxscan165_loop:
+    ($P10) = rx160_cur."from"()
     inc $P10
-    set rx158_pos, $P10
-    ge rx158_pos, rx158_eos, rxscan161_done
-  rxscan161_scan:
-    set_addr $I10, rxscan161_loop
-    rx158_cur."!mark_push"(0, rx158_pos, $I10)
-  rxscan161_done:
-  alt162_0:
-.annotate 'line', 89
-    set_addr $I10, alt162_1
-    rx158_cur."!mark_push"(0, rx158_pos, $I10)
+    set rx160_pos, $P10
+    ge rx160_pos, rx160_eos, rxscan165_done
+  rxscan165_scan:
+    set_addr $I10, rxscan165_loop
+    rx160_cur."!mark_push"(0, rx160_pos, $I10)
+  rxscan165_done:
+  alt166_0:
 .annotate 'line', 90
+    set_addr $I10, alt166_1
+    rx160_cur."!mark_push"(0, rx160_pos, $I10)
+.annotate 'line', 91
   # rx subrule "ws" subtype=method negate=
-    rx158_cur."!cursor_pos"(rx158_pos)
-    $P10 = rx158_cur."ws"()
-    unless $P10, rx158_fail
-    rx158_pos = $P10."pos"()
+    rx160_cur."!cursor_pos"(rx160_pos)
+    $P10 = rx160_cur."ws"()
+    unless $P10, rx160_fail
+    rx160_pos = $P10."pos"()
   # rxanchor eos
-    ne rx158_pos, rx158_eos, rx158_fail
+    ne rx160_pos, rx160_eos, rx160_fail
   # rx subrule "ws" subtype=method negate=
-    rx158_cur."!cursor_pos"(rx158_pos)
-    $P10 = rx158_cur."ws"()
-    unless $P10, rx158_fail
-    rx158_pos = $P10."pos"()
-    goto alt162_end
-  alt162_1:
-.annotate 'line', 91
+    rx160_cur."!cursor_pos"(rx160_pos)
+    $P10 = rx160_cur."ws"()
+    unless $P10, rx160_fail
+    rx160_pos = $P10."pos"()
+    goto alt166_end
+  alt166_1:
+.annotate 'line', 92
   # rx subrule "ws" subtype=method negate=
-    rx158_cur."!cursor_pos"(rx158_pos)
-    $P10 = rx158_cur."ws"()
-    unless $P10, rx158_fail
-    rx158_pos = $P10."pos"()
-  # rx rxquantr166 ** 0..*
-    set_addr $I168, rxquantr166_done
-    rx158_cur."!mark_push"(0, rx158_pos, $I168)
-  rxquantr166_loop:
+    rx160_cur."!cursor_pos"(rx160_pos)
+    $P10 = rx160_cur."ws"()
+    unless $P10, rx160_fail
+    rx160_pos = $P10."pos"()
+  # rx rxquantr170 ** 0..*
+    set_addr $I172, rxquantr170_done
+    rx160_cur."!mark_push"(0, rx160_pos, $I172)
+  rxquantr170_loop:
   # rx subrule "statement" subtype=capture negate=
-    rx158_cur."!cursor_pos"(rx158_pos)
-    $P10 = rx158_cur."statement"()
-    unless $P10, rx158_fail
-    rx158_cur."!mark_push"(0, -1, 0, $P10)
+    rx160_cur."!cursor_pos"(rx160_pos)
+    $P10 = rx160_cur."statement"()
+    unless $P10, rx160_fail
+    rx160_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx158_pos = $P10."pos"()
+    rx160_pos = $P10."pos"()
   # rx subrule "eat_terminator" subtype=method negate=
-    rx158_cur."!cursor_pos"(rx158_pos)
-    $P10 = rx158_cur."eat_terminator"()
-    unless $P10, rx158_fail
-    rx158_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx158_cur."!cursor_pos"(rx158_pos)
-    $P10 = rx158_cur."ws"()
-    unless $P10, rx158_fail
-    rx158_pos = $P10."pos"()
-    (rx158_rep) = rx158_cur."!mark_commit"($I168)
-    rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I168)
-    goto rxquantr166_loop
-  rxquantr166_done:
-  # rx subrule "ws" subtype=method negate=
-    rx158_cur."!cursor_pos"(rx158_pos)
-    $P10 = rx158_cur."ws"()
-    unless $P10, rx158_fail
-    rx158_pos = $P10."pos"()
-  alt162_end:
-.annotate 'line', 89
+    rx160_cur."!cursor_pos"(rx160_pos)
+    $P10 = rx160_cur."eat_terminator"()
+    unless $P10, rx160_fail
+    rx160_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx160_cur."!cursor_pos"(rx160_pos)
+    $P10 = rx160_cur."ws"()
+    unless $P10, rx160_fail
+    rx160_pos = $P10."pos"()
+    (rx160_rep) = rx160_cur."!mark_commit"($I172)
+    rx160_cur."!mark_push"(rx160_rep, rx160_pos, $I172)
+    goto rxquantr170_loop
+  rxquantr170_done:
+  # rx subrule "ws" subtype=method negate=
+    rx160_cur."!cursor_pos"(rx160_pos)
+    $P10 = rx160_cur."ws"()
+    unless $P10, rx160_fail
+    rx160_pos = $P10."pos"()
+  alt166_end:
+.annotate 'line', 90
   # rx pass
-    rx158_cur."!cursor_pass"(rx158_pos, "statementlist")
-    rx158_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx158_pos)
-    .return (rx158_cur)
-  rx158_fail:
+    rx160_cur."!cursor_pass"(rx160_pos, "statementlist")
+    rx160_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx160_pos)
+    .return (rx160_cur)
+  rx160_fail:
 .annotate 'line', 4
-    (rx158_rep, rx158_pos, $I10, $P10) = rx158_cur."!mark_fail"(0)
-    lt rx158_pos, -1, rx158_done
-    eq rx158_pos, -1, rx158_fail
+    (rx160_rep, rx160_pos, $I10, $P10) = rx160_cur."!mark_fail"(0)
+    lt rx160_pos, -1, rx160_done
+    eq rx160_pos, -1, rx160_fail
     jump $I10
-  rx158_done:
-    rx158_cur."!cursor_fail"()
-    rx158_cur."!cursor_debug"("FAIL  ", "statementlist")
-    .return (rx158_cur)
+  rx160_done:
+    rx160_cur."!cursor_fail"()
+    rx160_cur."!cursor_debug"("FAIL  ", "statementlist")
+    .return (rx160_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1274853038.58734") :method
+.sub "!PREFIX__statementlist"  :subid("32_1275811487.95429") :method
 .annotate 'line', 4
-    new $P160, "ResizablePMCArray"
-    push $P160, ""
-    push $P160, ""
-    .return ($P160)
+    $P162 = self."!PREFIX__!subrule"("ws", "")
+    $P163 = self."!PREFIX__!subrule"("ws", "")
+    new $P164, "ResizablePMCArray"
+    push $P164, $P162
+    push $P164, $P163
+    .return ($P164)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement"  :subid("33_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .const 'Sub' $P176 = "35_1274853038.58734" 
-    capture_lex $P176
-    .local string rx171_tgt
-    .local int rx171_pos
-    .local int rx171_off
-    .local int rx171_eos
-    .local int rx171_rep
-    .local pmc rx171_cur
-    (rx171_cur, rx171_pos, rx171_tgt) = self."!cursor_start"()
-    rx171_cur."!cursor_debug"("START ", "statement")
-    rx171_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
-    .lex unicode:"$\x{a2}", rx171_cur
-    .local pmc match
-    .lex "$/", match
-    length rx171_eos, rx171_tgt
-    set rx171_off, 0
-    lt rx171_pos, 2, rx171_start
-    sub rx171_off, rx171_pos, 1
-    substr rx171_tgt, rx171_tgt, rx171_off
-  rx171_start:
+    .const 'Sub' $P180 = "35_1275811487.95429" 
+    capture_lex $P180
+    .local string rx175_tgt
+    .local int rx175_pos
+    .local int rx175_off
+    .local int rx175_eos
+    .local int rx175_rep
+    .local pmc rx175_cur
+    (rx175_cur, rx175_pos, rx175_tgt) = self."!cursor_start"()
+    rx175_cur."!cursor_debug"("START ", "statement")
+    rx175_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
+    .lex unicode:"$\x{a2}", rx175_cur
+    .local pmc match
+    .lex "$/", match
+    length rx175_eos, rx175_tgt
+    gt rx175_pos, rx175_eos, rx175_done
+    set rx175_off, 0
+    lt rx175_pos, 2, rx175_start
+    sub rx175_off, rx175_pos, 1
+    substr rx175_tgt, rx175_tgt, rx175_off
+  rx175_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan174_done
-    goto rxscan174_scan
-  rxscan174_loop:
-    ($P10) = rx171_cur."from"()
+    ne $I10, -1, rxscan178_done
+    goto rxscan178_scan
+  rxscan178_loop:
+    ($P10) = rx175_cur."from"()
     inc $P10
-    set rx171_pos, $P10
-    ge rx171_pos, rx171_eos, rxscan174_done
-  rxscan174_scan:
-    set_addr $I10, rxscan174_loop
-    rx171_cur."!mark_push"(0, rx171_pos, $I10)
-  rxscan174_done:
-.annotate 'line', 95
-  # rx subrule "before" subtype=zerowidth negate=1
-    rx171_cur."!cursor_pos"(rx171_pos)
-    .const 'Sub' $P176 = "35_1274853038.58734" 
-    capture_lex $P176
-    $P10 = rx171_cur."before"($P176)
-    if $P10, rx171_fail
-  alt180_0:
+    set rx175_pos, $P10
+    ge rx175_pos, rx175_eos, rxscan178_done
+  rxscan178_scan:
+    set_addr $I10, rxscan178_loop
+    rx175_cur."!mark_push"(0, rx175_pos, $I10)
+  rxscan178_done:
 .annotate 'line', 96
-    set_addr $I10, alt180_1
-    rx171_cur."!mark_push"(0, rx171_pos, $I10)
+  # rx subrule "before" subtype=zerowidth negate=1
+    rx175_cur."!cursor_pos"(rx175_pos)
+    .const 'Sub' $P180 = "35_1275811487.95429" 
+    capture_lex $P180
+    $P10 = rx175_cur."before"($P180)
+    if $P10, rx175_fail
+  alt184_0:
 .annotate 'line', 97
+    set_addr $I10, alt184_1
+    rx175_cur."!mark_push"(0, rx175_pos, $I10)
+.annotate 'line', 98
   # rx subrule "statement_control" subtype=capture negate=
-    rx171_cur."!cursor_pos"(rx171_pos)
-    $P10 = rx171_cur."statement_control"()
-    unless $P10, rx171_fail
-    rx171_cur."!mark_push"(0, -1, 0, $P10)
+    rx175_cur."!cursor_pos"(rx175_pos)
+    $P10 = rx175_cur."statement_control"()
+    unless $P10, rx175_fail
+    rx175_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_control")
-    rx171_pos = $P10."pos"()
-    goto alt180_end
-  alt180_1:
-.annotate 'line', 98
+    rx175_pos = $P10."pos"()
+    goto alt184_end
+  alt184_1:
+.annotate 'line', 99
   # rx subrule "EXPR" subtype=capture negate=
-    rx171_cur."!cursor_pos"(rx171_pos)
-    $P10 = rx171_cur."EXPR"()
-    unless $P10, rx171_fail
-    rx171_cur."!mark_push"(0, -1, 0, $P10)
+    rx175_cur."!cursor_pos"(rx175_pos)
+    $P10 = rx175_cur."EXPR"()
+    unless $P10, rx175_fail
+    rx175_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx171_pos = $P10."pos"()
+    rx175_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx171_cur."!cursor_pos"(rx171_pos)
-    $P10 = rx171_cur."ws"()
-    unless $P10, rx171_fail
-    rx171_pos = $P10."pos"()
-.annotate 'line', 103
-  # rx rxquantr181 ** 0..1
-    set_addr $I185, rxquantr181_done
-    rx171_cur."!mark_push"(0, rx171_pos, $I185)
-  rxquantr181_loop:
-  alt182_0:
-.annotate 'line', 99
-    set_addr $I10, alt182_1
-    rx171_cur."!mark_push"(0, rx171_pos, $I10)
+    rx175_cur."!cursor_pos"(rx175_pos)
+    $P10 = rx175_cur."ws"()
+    unless $P10, rx175_fail
+    rx175_pos = $P10."pos"()
+.annotate 'line', 104
+  # rx rxquantr185 ** 0..1
+    set_addr $I189, rxquantr185_done
+    rx175_cur."!mark_push"(0, rx175_pos, $I189)
+  rxquantr185_loop:
+  alt186_0:
 .annotate 'line', 100
-  # rx subrule "MARKED" subtype=zerowidth negate=
-    rx171_cur."!cursor_pos"(rx171_pos)
-    $P10 = rx171_cur."MARKED"("endstmt")
-    unless $P10, rx171_fail
-    goto alt182_end
-  alt182_1:
-    set_addr $I10, alt182_2
-    rx171_cur."!mark_push"(0, rx171_pos, $I10)
+    set_addr $I10, alt186_1
+    rx175_cur."!mark_push"(0, rx175_pos, $I10)
 .annotate 'line', 101
+  # rx subrule "MARKED" subtype=zerowidth negate=
+    rx175_cur."!cursor_pos"(rx175_pos)
+    $P10 = rx175_cur."MARKED"("endstmt")
+    unless $P10, rx175_fail
+    goto alt186_end
+  alt186_1:
+    set_addr $I10, alt186_2
+    rx175_cur."!mark_push"(0, rx175_pos, $I10)
+.annotate 'line', 102
   # rx subrule "statement_mod_cond" subtype=capture negate=
-    rx171_cur."!cursor_pos"(rx171_pos)
-    $P10 = rx171_cur."statement_mod_cond"()
-    unless $P10, rx171_fail
-    rx171_cur."!mark_push"(0, -1, 0, $P10)
+    rx175_cur."!cursor_pos"(rx175_pos)
+    $P10 = rx175_cur."statement_mod_cond"()
+    unless $P10, rx175_fail
+    rx175_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_mod_cond")
-    rx171_pos = $P10."pos"()
-  # rx rxquantr183 ** 0..1
-    set_addr $I184, rxquantr183_done
-    rx171_cur."!mark_push"(0, rx171_pos, $I184)
-  rxquantr183_loop:
+    rx175_pos = $P10."pos"()
+  # rx rxquantr187 ** 0..1
+    set_addr $I188, rxquantr187_done
+    rx175_cur."!mark_push"(0, rx175_pos, $I188)
+  rxquantr187_loop:
   # rx subrule "statement_mod_loop" subtype=capture negate=
-    rx171_cur."!cursor_pos"(rx171_pos)
-    $P10 = rx171_cur."statement_mod_loop"()
-    unless $P10, rx171_fail
-    rx171_cur."!mark_push"(0, -1, 0, $P10)
+    rx175_cur."!cursor_pos"(rx175_pos)
+    $P10 = rx175_cur."statement_mod_loop"()
+    unless $P10, rx175_fail
+    rx175_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_mod_loop")
-    rx171_pos = $P10."pos"()
-    (rx171_rep) = rx171_cur."!mark_commit"($I184)
-  rxquantr183_done:
-    goto alt182_end
-  alt182_2:
-.annotate 'line', 102
+    rx175_pos = $P10."pos"()
+    (rx175_rep) = rx175_cur."!mark_commit"($I188)
+  rxquantr187_done:
+    goto alt186_end
+  alt186_2:
+.annotate 'line', 103
   # rx subrule "statement_mod_loop" subtype=capture negate=
-    rx171_cur."!cursor_pos"(rx171_pos)
-    $P10 = rx171_cur."statement_mod_loop"()
-    unless $P10, rx171_fail
-    rx171_cur."!mark_push"(0, -1, 0, $P10)
+    rx175_cur."!cursor_pos"(rx175_pos)
+    $P10 = rx175_cur."statement_mod_loop"()
+    unless $P10, rx175_fail
+    rx175_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_mod_loop")
-    rx171_pos = $P10."pos"()
-  alt182_end:
-.annotate 'line', 103
-    (rx171_rep) = rx171_cur."!mark_commit"($I185)
-  rxquantr181_done:
-  alt180_end:
-.annotate 'line', 94
+    rx175_pos = $P10."pos"()
+  alt186_end:
+.annotate 'line', 104
+    (rx175_rep) = rx175_cur."!mark_commit"($I189)
+  rxquantr185_done:
+  alt184_end:
+.annotate 'line', 95
   # rx pass
-    rx171_cur."!cursor_pass"(rx171_pos, "statement")
-    rx171_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx171_pos)
-    .return (rx171_cur)
-  rx171_fail:
+    rx175_cur."!cursor_pass"(rx175_pos, "statement")
+    rx175_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx175_pos)
+    .return (rx175_cur)
+  rx175_fail:
 .annotate 'line', 4
-    (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
-    lt rx171_pos, -1, rx171_done
-    eq rx171_pos, -1, rx171_fail
+    (rx175_rep, rx175_pos, $I10, $P10) = rx175_cur."!mark_fail"(0)
+    lt rx175_pos, -1, rx175_done
+    eq rx175_pos, -1, rx175_fail
     jump $I10
-  rx171_done:
-    rx171_cur."!cursor_fail"()
-    rx171_cur."!cursor_debug"("FAIL  ", "statement")
-    .return (rx171_cur)
+  rx175_done:
+    rx175_cur."!cursor_fail"()
+    rx175_cur."!cursor_debug"("FAIL  ", "statement")
+    .return (rx175_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1274853038.58734") :method
+.sub "!PREFIX__statement"  :subid("34_1275811487.95429") :method
 .annotate 'line', 4
-    new $P173, "ResizablePMCArray"
-    push $P173, ""
-    .return ($P173)
+    new $P177, "ResizablePMCArray"
+    push $P177, ""
+    .return ($P177)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block175"  :anon :subid("35_1274853038.58734") :method :outer("33_1274853038.58734")
-.annotate 'line', 95
-    .local string rx177_tgt
-    .local int rx177_pos
-    .local int rx177_off
-    .local int rx177_eos
-    .local int rx177_rep
-    .local pmc rx177_cur
-    (rx177_cur, rx177_pos, rx177_tgt) = self."!cursor_start"()
-    rx177_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx177_cur
-    .local pmc match
-    .lex "$/", match
-    length rx177_eos, rx177_tgt
-    set rx177_off, 0
-    lt rx177_pos, 2, rx177_start
-    sub rx177_off, rx177_pos, 1
-    substr rx177_tgt, rx177_tgt, rx177_off
-  rx177_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan178_done
-    goto rxscan178_scan
-  rxscan178_loop:
-    ($P10) = rx177_cur."from"()
-    inc $P10
-    set rx177_pos, $P10
-    ge rx177_pos, rx177_eos, rxscan178_done
-  rxscan178_scan:
-    set_addr $I10, rxscan178_loop
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
-  rxscan178_done:
-  alt179_0:
-    set_addr $I10, alt179_1
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
+.sub "_block179"  :anon :subid("35_1275811487.95429") :method :outer("33_1275811487.95429")
+.annotate 'line', 96
+    .local string rx181_tgt
+    .local int rx181_pos
+    .local int rx181_off
+    .local int rx181_eos
+    .local int rx181_rep
+    .local pmc rx181_cur
+    (rx181_cur, rx181_pos, rx181_tgt) = self."!cursor_start"()
+    rx181_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx181_cur
+    .local pmc match
+    .lex "$/", match
+    length rx181_eos, rx181_tgt
+    gt rx181_pos, rx181_eos, rx181_done
+    set rx181_off, 0
+    lt rx181_pos, 2, rx181_start
+    sub rx181_off, rx181_pos, 1
+    substr rx181_tgt, rx181_tgt, rx181_off
+  rx181_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan182_done
+    goto rxscan182_scan
+  rxscan182_loop:
+    ($P10) = rx181_cur."from"()
+    inc $P10
+    set rx181_pos, $P10
+    ge rx181_pos, rx181_eos, rxscan182_done
+  rxscan182_scan:
+    set_addr $I10, rxscan182_loop
+    rx181_cur."!mark_push"(0, rx181_pos, $I10)
+  rxscan182_done:
+  alt183_0:
+    set_addr $I10, alt183_1
+    rx181_cur."!mark_push"(0, rx181_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx177_pos, rx177_eos, rx177_fail
-    sub $I10, rx177_pos, rx177_off
-    substr $S10, rx177_tgt, $I10, 1
+    ge rx181_pos, rx181_eos, rx181_fail
+    sub $I10, rx181_pos, rx181_off
+    substr $S10, rx181_tgt, $I10, 1
     index $I11, "])}", $S10
-    lt $I11, 0, rx177_fail
-    inc rx177_pos
-    goto alt179_end
-  alt179_1:
+    lt $I11, 0, rx181_fail
+    inc rx181_pos
+    goto alt183_end
+  alt183_1:
   # rxanchor eos
-    ne rx177_pos, rx177_eos, rx177_fail
-  alt179_end:
+    ne rx181_pos, rx181_eos, rx181_fail
+  alt183_end:
   # rx pass
-    rx177_cur."!cursor_pass"(rx177_pos, "")
-    rx177_cur."!cursor_debug"("PASS  ", "", " at pos=", rx177_pos)
-    .return (rx177_cur)
-  rx177_fail:
-    (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
-    lt rx177_pos, -1, rx177_done
-    eq rx177_pos, -1, rx177_fail
-    jump $I10
-  rx177_done:
-    rx177_cur."!cursor_fail"()
-    rx177_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx177_cur)
+    rx181_cur."!cursor_pass"(rx181_pos, "")
+    rx181_cur."!cursor_debug"("PASS  ", "", " at pos=", rx181_pos)
+    .return (rx181_cur)
+  rx181_fail:
+    (rx181_rep, rx181_pos, $I10, $P10) = rx181_cur."!mark_fail"(0)
+    lt rx181_pos, -1, rx181_done
+    eq rx181_pos, -1, rx181_fail
+    jump $I10
+  rx181_done:
+    rx181_cur."!cursor_fail"()
+    rx181_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx181_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 4
-    .local string rx187_tgt
-    .local int rx187_pos
-    .local int rx187_off
-    .local int rx187_eos
-    .local int rx187_rep
-    .local pmc rx187_cur
-    (rx187_cur, rx187_pos, rx187_tgt) = self."!cursor_start"()
-    rx187_cur."!cursor_debug"("START ", "eat_terminator")
-    .lex unicode:"$\x{a2}", rx187_cur
-    .local pmc match
-    .lex "$/", match
-    length rx187_eos, rx187_tgt
-    set rx187_off, 0
-    lt rx187_pos, 2, rx187_start
-    sub rx187_off, rx187_pos, 1
-    substr rx187_tgt, rx187_tgt, rx187_off
-  rx187_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan190_done
-    goto rxscan190_scan
-  rxscan190_loop:
-    ($P10) = rx187_cur."from"()
-    inc $P10
-    set rx187_pos, $P10
-    ge rx187_pos, rx187_eos, rxscan190_done
-  rxscan190_scan:
-    set_addr $I10, rxscan190_loop
-    rx187_cur."!mark_push"(0, rx187_pos, $I10)
-  rxscan190_done:
-  alt191_0:
-.annotate 'line', 107
-    set_addr $I10, alt191_1
-    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+.sub "eat_terminator"  :subid("36_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx191_tgt
+    .local int rx191_pos
+    .local int rx191_off
+    .local int rx191_eos
+    .local int rx191_rep
+    .local pmc rx191_cur
+    (rx191_cur, rx191_pos, rx191_tgt) = self."!cursor_start"()
+    rx191_cur."!cursor_debug"("START ", "eat_terminator")
+    .lex unicode:"$\x{a2}", rx191_cur
+    .local pmc match
+    .lex "$/", match
+    length rx191_eos, rx191_tgt
+    gt rx191_pos, rx191_eos, rx191_done
+    set rx191_off, 0
+    lt rx191_pos, 2, rx191_start
+    sub rx191_off, rx191_pos, 1
+    substr rx191_tgt, rx191_tgt, rx191_off
+  rx191_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan194_done
+    goto rxscan194_scan
+  rxscan194_loop:
+    ($P10) = rx191_cur."from"()
+    inc $P10
+    set rx191_pos, $P10
+    ge rx191_pos, rx191_eos, rxscan194_done
+  rxscan194_scan:
+    set_addr $I10, rxscan194_loop
+    rx191_cur."!mark_push"(0, rx191_pos, $I10)
+  rxscan194_done:
+  alt195_0:
 .annotate 'line', 108
-  # rx literal  ";"
-    add $I11, rx187_pos, 1
-    gt $I11, rx187_eos, rx187_fail
-    sub $I11, rx187_pos, rx187_off
-    substr $S10, rx187_tgt, $I11, 1
-    ne $S10, ";", rx187_fail
-    add rx187_pos, 1
-    goto alt191_end
-  alt191_1:
-    set_addr $I10, alt191_2
-    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+    set_addr $I10, alt195_1
+    rx191_cur."!mark_push"(0, rx191_pos, $I10)
 .annotate 'line', 109
-  # rx subrule "MARKED" subtype=zerowidth negate=
-    rx187_cur."!cursor_pos"(rx187_pos)
-    $P10 = rx187_cur."MARKED"("endstmt")
-    unless $P10, rx187_fail
-    goto alt191_end
-  alt191_2:
-    set_addr $I10, alt191_3
-    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+  # rx literal  ";"
+    add $I11, rx191_pos, 1
+    gt $I11, rx191_eos, rx191_fail
+    sub $I11, rx191_pos, rx191_off
+    substr $S10, rx191_tgt, $I11, 1
+    ne $S10, ";", rx191_fail
+    add rx191_pos, 1
+    goto alt195_end
+  alt195_1:
+    set_addr $I10, alt195_2
+    rx191_cur."!mark_push"(0, rx191_pos, $I10)
 .annotate 'line', 110
-  # rx subrule "terminator" subtype=zerowidth negate=
-    rx187_cur."!cursor_pos"(rx187_pos)
-    $P10 = rx187_cur."terminator"()
-    unless $P10, rx187_fail
-    goto alt191_end
-  alt191_3:
+  # rx subrule "MARKED" subtype=zerowidth negate=
+    rx191_cur."!cursor_pos"(rx191_pos)
+    $P10 = rx191_cur."MARKED"("endstmt")
+    unless $P10, rx191_fail
+    goto alt195_end
+  alt195_2:
+    set_addr $I10, alt195_3
+    rx191_cur."!mark_push"(0, rx191_pos, $I10)
 .annotate 'line', 111
+  # rx subrule "terminator" subtype=zerowidth negate=
+    rx191_cur."!cursor_pos"(rx191_pos)
+    $P10 = rx191_cur."terminator"()
+    unless $P10, rx191_fail
+    goto alt195_end
+  alt195_3:
+.annotate 'line', 112
   # rxanchor eos
-    ne rx187_pos, rx187_eos, rx187_fail
-  alt191_end:
-.annotate 'line', 107
+    ne rx191_pos, rx191_eos, rx191_fail
+  alt195_end:
+.annotate 'line', 108
   # rx pass
-    rx187_cur."!cursor_pass"(rx187_pos, "eat_terminator")
-    rx187_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx187_pos)
-    .return (rx187_cur)
-  rx187_fail:
+    rx191_cur."!cursor_pass"(rx191_pos, "eat_terminator")
+    rx191_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx191_pos)
+    .return (rx191_cur)
+  rx191_fail:
 .annotate 'line', 4
-    (rx187_rep, rx187_pos, $I10, $P10) = rx187_cur."!mark_fail"(0)
-    lt rx187_pos, -1, rx187_done
-    eq rx187_pos, -1, rx187_fail
+    (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
+    lt rx191_pos, -1, rx191_done
+    eq rx191_pos, -1, rx191_fail
     jump $I10
-  rx187_done:
-    rx187_cur."!cursor_fail"()
-    rx187_cur."!cursor_debug"("FAIL  ", "eat_terminator")
-    .return (rx187_cur)
+  rx191_done:
+    rx191_cur."!cursor_fail"()
+    rx191_cur."!cursor_debug"("FAIL  ", "eat_terminator")
+    .return (rx191_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1274853038.58734") :method
+.sub "!PREFIX__eat_terminator"  :subid("37_1275811487.95429") :method
 .annotate 'line', 4
-    new $P189, "ResizablePMCArray"
-    push $P189, ""
-    push $P189, ""
-    push $P189, ""
-    push $P189, ";"
-    .return ($P189)
+    new $P193, "ResizablePMCArray"
+    push $P193, ""
+    push $P193, ""
+    push $P193, ""
+    push $P193, ";"
+    .return ($P193)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "xblock"  :subid("38_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx193_tgt
-    .local int rx193_pos
-    .local int rx193_off
-    .local int rx193_eos
-    .local int rx193_rep
-    .local pmc rx193_cur
-    (rx193_cur, rx193_pos, rx193_tgt) = self."!cursor_start"()
-    rx193_cur."!cursor_debug"("START ", "xblock")
-    .lex unicode:"$\x{a2}", rx193_cur
+    .local string rx197_tgt
+    .local int rx197_pos
+    .local int rx197_off
+    .local int rx197_eos
+    .local int rx197_rep
+    .local pmc rx197_cur
+    (rx197_cur, rx197_pos, rx197_tgt) = self."!cursor_start"()
+    rx197_cur."!cursor_debug"("START ", "xblock")
+    .lex unicode:"$\x{a2}", rx197_cur
     .local pmc match
     .lex "$/", match
-    length rx193_eos, rx193_tgt
-    set rx193_off, 0
-    lt rx193_pos, 2, rx193_start
-    sub rx193_off, rx193_pos, 1
-    substr rx193_tgt, rx193_tgt, rx193_off
-  rx193_start:
+    length rx197_eos, rx197_tgt
+    gt rx197_pos, rx197_eos, rx197_done
+    set rx197_off, 0
+    lt rx197_pos, 2, rx197_start
+    sub rx197_off, rx197_pos, 1
+    substr rx197_tgt, rx197_tgt, rx197_off
+  rx197_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan197_done
-    goto rxscan197_scan
-  rxscan197_loop:
-    ($P10) = rx193_cur."from"()
+    ne $I10, -1, rxscan201_done
+    goto rxscan201_scan
+  rxscan201_loop:
+    ($P10) = rx197_cur."from"()
     inc $P10
-    set rx193_pos, $P10
-    ge rx193_pos, rx193_eos, rxscan197_done
-  rxscan197_scan:
-    set_addr $I10, rxscan197_loop
-    rx193_cur."!mark_push"(0, rx193_pos, $I10)
-  rxscan197_done:
-.annotate 'line', 115
+    set rx197_pos, $P10
+    ge rx197_pos, rx197_eos, rxscan201_done
+  rxscan201_scan:
+    set_addr $I10, rxscan201_loop
+    rx197_cur."!mark_push"(0, rx197_pos, $I10)
+  rxscan201_done:
+.annotate 'line', 116
   # rx subrule "EXPR" subtype=capture negate=
-    rx193_cur."!cursor_pos"(rx193_pos)
-    $P10 = rx193_cur."EXPR"()
-    unless $P10, rx193_fail
-    rx193_cur."!mark_push"(0, -1, 0, $P10)
+    rx197_cur."!cursor_pos"(rx197_pos)
+    $P10 = rx197_cur."EXPR"()
+    unless $P10, rx197_fail
+    rx197_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx193_pos = $P10."pos"()
+    rx197_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx193_cur."!cursor_pos"(rx193_pos)
-    $P10 = rx193_cur."ws"()
-    unless $P10, rx193_fail
-    rx193_pos = $P10."pos"()
+    rx197_cur."!cursor_pos"(rx197_pos)
+    $P10 = rx197_cur."ws"()
+    unless $P10, rx197_fail
+    rx197_pos = $P10."pos"()
   # rx subrule "pblock" subtype=capture negate=
-    rx193_cur."!cursor_pos"(rx193_pos)
-    $P10 = rx193_cur."pblock"()
-    unless $P10, rx193_fail
-    rx193_cur."!mark_push"(0, -1, 0, $P10)
+    rx197_cur."!cursor_pos"(rx197_pos)
+    $P10 = rx197_cur."pblock"()
+    unless $P10, rx197_fail
+    rx197_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx193_pos = $P10."pos"()
-.annotate 'line', 114
+    rx197_pos = $P10."pos"()
+.annotate 'line', 115
   # rx pass
-    rx193_cur."!cursor_pass"(rx193_pos, "xblock")
-    rx193_cur."!cursor_debug"("PASS  ", "xblock", " at pos=", rx193_pos)
-    .return (rx193_cur)
-  rx193_fail:
+    rx197_cur."!cursor_pass"(rx197_pos, "xblock")
+    rx197_cur."!cursor_debug"("PASS  ", "xblock", " at pos=", rx197_pos)
+    .return (rx197_cur)
+  rx197_fail:
 .annotate 'line', 4
-    (rx193_rep, rx193_pos, $I10, $P10) = rx193_cur."!mark_fail"(0)
-    lt rx193_pos, -1, rx193_done
-    eq rx193_pos, -1, rx193_fail
+    (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
+    lt rx197_pos, -1, rx197_done
+    eq rx197_pos, -1, rx197_fail
     jump $I10
-  rx193_done:
-    rx193_cur."!cursor_fail"()
-    rx193_cur."!cursor_debug"("FAIL  ", "xblock")
-    .return (rx193_cur)
+  rx197_done:
+    rx197_cur."!cursor_fail"()
+    rx197_cur."!cursor_debug"("FAIL  ", "xblock")
+    .return (rx197_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock"  :subid("39_1274853038.58734") :method
+.sub "!PREFIX__xblock"  :subid("39_1275811487.95429") :method
 .annotate 'line', 4
-    $P195 = self."!PREFIX__!subrule"("EXPR", "")
-    new $P196, "ResizablePMCArray"
-    push $P196, $P195
-    .return ($P196)
+    $P199 = self."!PREFIX__!subrule"("EXPR", "")
+    new $P200, "ResizablePMCArray"
+    push $P200, $P199
+    .return ($P200)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "pblock"  :subid("40_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx199_tgt
-    .local int rx199_pos
-    .local int rx199_off
-    .local int rx199_eos
-    .local int rx199_rep
-    .local pmc rx199_cur
-    (rx199_cur, rx199_pos, rx199_tgt) = self."!cursor_start"()
-    rx199_cur."!cursor_debug"("START ", "pblock")
-    .lex unicode:"$\x{a2}", rx199_cur
+    .local string rx203_tgt
+    .local int rx203_pos
+    .local int rx203_off
+    .local int rx203_eos
+    .local int rx203_rep
+    .local pmc rx203_cur
+    (rx203_cur, rx203_pos, rx203_tgt) = self."!cursor_start"()
+    rx203_cur."!cursor_debug"("START ", "pblock")
+    .lex unicode:"$\x{a2}", rx203_cur
     .local pmc match
     .lex "$/", match
-    length rx199_eos, rx199_tgt
-    set rx199_off, 0
-    lt rx199_pos, 2, rx199_start
-    sub rx199_off, rx199_pos, 1
-    substr rx199_tgt, rx199_tgt, rx199_off
-  rx199_start:
+    length rx203_eos, rx203_tgt
+    gt rx203_pos, rx203_eos, rx203_done
+    set rx203_off, 0
+    lt rx203_pos, 2, rx203_start
+    sub rx203_off, rx203_pos, 1
+    substr rx203_tgt, rx203_tgt, rx203_off
+  rx203_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan204_done
-    goto rxscan204_scan
-  rxscan204_loop:
-    ($P10) = rx199_cur."from"()
+    ne $I10, -1, rxscan208_done
+    goto rxscan208_scan
+  rxscan208_loop:
+    ($P10) = rx203_cur."from"()
     inc $P10
-    set rx199_pos, $P10
-    ge rx199_pos, rx199_eos, rxscan204_done
-  rxscan204_scan:
-    set_addr $I10, rxscan204_loop
-    rx199_cur."!mark_push"(0, rx199_pos, $I10)
-  rxscan204_done:
-  alt205_0:
-.annotate 'line', 118
-    set_addr $I10, alt205_1
-    rx199_cur."!mark_push"(0, rx199_pos, $I10)
+    set rx203_pos, $P10
+    ge rx203_pos, rx203_eos, rxscan208_done
+  rxscan208_scan:
+    set_addr $I10, rxscan208_loop
+    rx203_cur."!mark_push"(0, rx203_pos, $I10)
+  rxscan208_done:
+  alt209_0:
 .annotate 'line', 119
-  # rx subrule "lambda" subtype=method negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."lambda"()
-    unless $P10, rx199_fail
-    rx199_pos = $P10."pos"()
+    set_addr $I10, alt209_1
+    rx203_cur."!mark_push"(0, rx203_pos, $I10)
 .annotate 'line', 120
-  # rx subrule "newpad" subtype=method negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."newpad"()
-    unless $P10, rx199_fail
-    rx199_pos = $P10."pos"()
+  # rx subrule "lambda" subtype=method negate=
+    rx203_cur."!cursor_pos"(rx203_pos)
+    $P10 = rx203_cur."lambda"()
+    unless $P10, rx203_fail
+    rx203_pos = $P10."pos"()
 .annotate 'line', 121
+  # rx subrule "newpad" subtype=method negate=
+    rx203_cur."!cursor_pos"(rx203_pos)
+    $P10 = rx203_cur."newpad"()
+    unless $P10, rx203_fail
+    rx203_pos = $P10."pos"()
+.annotate 'line', 122
   # rx subrule "signature" subtype=capture negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."signature"()
-    unless $P10, rx199_fail
-    rx199_cur."!mark_push"(0, -1, 0, $P10)
+    rx203_cur."!cursor_pos"(rx203_pos)
+    $P10 = rx203_cur."signature"()
+    unless $P10, rx203_fail
+    rx203_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx199_pos = $P10."pos"()
-.annotate 'line', 122
+    rx203_pos = $P10."pos"()
+.annotate 'line', 123
   # rx subrule "blockoid" subtype=capture negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."blockoid"()
-    unless $P10, rx199_fail
-    rx199_cur."!mark_push"(0, -1, 0, $P10)
+    rx203_cur."!cursor_pos"(rx203_pos)
+    $P10 = rx203_cur."blockoid"()
+    unless $P10, rx203_fail
+    rx203_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx199_pos = $P10."pos"()
-.annotate 'line', 119
-    goto alt205_end
-  alt205_1:
-    set_addr $I10, alt205_2
-    rx199_cur."!mark_push"(0, rx199_pos, $I10)
-.annotate 'line', 123
+    rx203_pos = $P10."pos"()
+.annotate 'line', 120
+    goto alt209_end
+  alt209_1:
+    set_addr $I10, alt209_2
+    rx203_cur."!mark_push"(0, rx203_pos, $I10)
+.annotate 'line', 124
   # rx enumcharlist negate=0 zerowidth
-    ge rx199_pos, rx199_eos, rx199_fail
-    sub $I10, rx199_pos, rx199_off
-    substr $S10, rx199_tgt, $I10, 1
+    ge rx203_pos, rx203_eos, rx203_fail
+    sub $I10, rx203_pos, rx203_off
+    substr $S10, rx203_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx199_fail
-.annotate 'line', 124
-  # rx subrule "newpad" subtype=method negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."newpad"()
-    unless $P10, rx199_fail
-    rx199_pos = $P10."pos"()
+    lt $I11, 0, rx203_fail
 .annotate 'line', 125
+  # rx subrule "newpad" subtype=method negate=
+    rx203_cur."!cursor_pos"(rx203_pos)
+    $P10 = rx203_cur."newpad"()
+    unless $P10, rx203_fail
+    rx203_pos = $P10."pos"()
+.annotate 'line', 126
   # rx subrule "blockoid" subtype=capture negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."blockoid"()
-    unless $P10, rx199_fail
-    rx199_cur."!mark_push"(0, -1, 0, $P10)
+    rx203_cur."!cursor_pos"(rx203_pos)
+    $P10 = rx203_cur."blockoid"()
+    unless $P10, rx203_fail
+    rx203_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx199_pos = $P10."pos"()
-.annotate 'line', 123
-    goto alt205_end
-  alt205_2:
-.annotate 'line', 126
+    rx203_pos = $P10."pos"()
+.annotate 'line', 124
+    goto alt209_end
+  alt209_2:
+.annotate 'line', 127
   # rx subrule "panic" subtype=method negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."panic"("Missing block")
-    unless $P10, rx199_fail
-    rx199_pos = $P10."pos"()
-  alt205_end:
-.annotate 'line', 118
+    rx203_cur."!cursor_pos"(rx203_pos)
+    $P10 = rx203_cur."panic"("Missing block")
+    unless $P10, rx203_fail
+    rx203_pos = $P10."pos"()
+  alt209_end:
+.annotate 'line', 119
   # rx pass
-    rx199_cur."!cursor_pass"(rx199_pos, "pblock")
-    rx199_cur."!cursor_debug"("PASS  ", "pblock", " at pos=", rx199_pos)
-    .return (rx199_cur)
-  rx199_fail:
+    rx203_cur."!cursor_pass"(rx203_pos, "pblock")
+    rx203_cur."!cursor_debug"("PASS  ", "pblock", " at pos=", rx203_pos)
+    .return (rx203_cur)
+  rx203_fail:
 .annotate 'line', 4
-    (rx199_rep, rx199_pos, $I10, $P10) = rx199_cur."!mark_fail"(0)
-    lt rx199_pos, -1, rx199_done
-    eq rx199_pos, -1, rx199_fail
+    (rx203_rep, rx203_pos, $I10, $P10) = rx203_cur."!mark_fail"(0)
+    lt rx203_pos, -1, rx203_done
+    eq rx203_pos, -1, rx203_fail
     jump $I10
-  rx199_done:
-    rx199_cur."!cursor_fail"()
-    rx199_cur."!cursor_debug"("FAIL  ", "pblock")
-    .return (rx199_cur)
+  rx203_done:
+    rx203_cur."!cursor_fail"()
+    rx203_cur."!cursor_debug"("FAIL  ", "pblock")
+    .return (rx203_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1274853038.58734") :method
+.sub "!PREFIX__pblock"  :subid("41_1275811487.95429") :method
 .annotate 'line', 4
-    $P201 = self."!PREFIX__!subrule"("", "")
-    $P202 = self."!PREFIX__!subrule"("", "")
-    new $P203, "ResizablePMCArray"
-    push $P203, $P201
-    push $P203, "{"
-    push $P203, $P202
-    .return ($P203)
+    $P205 = self."!PREFIX__!subrule"("panic", "")
+    $P206 = self."!PREFIX__!subrule"("lambda", "")
+    new $P207, "ResizablePMCArray"
+    push $P207, $P205
+    push $P207, "{"
+    push $P207, $P206
+    .return ($P207)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "lambda"  :subid("42_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx207_tgt
-    .local int rx207_pos
-    .local int rx207_off
-    .local int rx207_eos
-    .local int rx207_rep
-    .local pmc rx207_cur
-    (rx207_cur, rx207_pos, rx207_tgt) = self."!cursor_start"()
-    rx207_cur."!cursor_debug"("START ", "lambda")
-    .lex unicode:"$\x{a2}", rx207_cur
+    .local string rx211_tgt
+    .local int rx211_pos
+    .local int rx211_off
+    .local int rx211_eos
+    .local int rx211_rep
+    .local pmc rx211_cur
+    (rx211_cur, rx211_pos, rx211_tgt) = self."!cursor_start"()
+    rx211_cur."!cursor_debug"("START ", "lambda")
+    .lex unicode:"$\x{a2}", rx211_cur
     .local pmc match
     .lex "$/", match
-    length rx207_eos, rx207_tgt
-    set rx207_off, 0
-    lt rx207_pos, 2, rx207_start
-    sub rx207_off, rx207_pos, 1
-    substr rx207_tgt, rx207_tgt, rx207_off
-  rx207_start:
+    length rx211_eos, rx211_tgt
+    gt rx211_pos, rx211_eos, rx211_done
+    set rx211_off, 0
+    lt rx211_pos, 2, rx211_start
+    sub rx211_off, rx211_pos, 1
+    substr rx211_tgt, rx211_tgt, rx211_off
+  rx211_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan210_done
-    goto rxscan210_scan
-  rxscan210_loop:
-    ($P10) = rx207_cur."from"()
+    ne $I10, -1, rxscan214_done
+    goto rxscan214_scan
+  rxscan214_loop:
+    ($P10) = rx211_cur."from"()
     inc $P10
-    set rx207_pos, $P10
-    ge rx207_pos, rx207_eos, rxscan210_done
-  rxscan210_scan:
-    set_addr $I10, rxscan210_loop
-    rx207_cur."!mark_push"(0, rx207_pos, $I10)
-  rxscan210_done:
-  alt211_0:
-.annotate 'line', 129
-    set_addr $I10, alt211_1
-    rx207_cur."!mark_push"(0, rx207_pos, $I10)
+    set rx211_pos, $P10
+    ge rx211_pos, rx211_eos, rxscan214_done
+  rxscan214_scan:
+    set_addr $I10, rxscan214_loop
+    rx211_cur."!mark_push"(0, rx211_pos, $I10)
+  rxscan214_done:
+  alt215_0:
+.annotate 'line', 130
+    set_addr $I10, alt215_1
+    rx211_cur."!mark_push"(0, rx211_pos, $I10)
   # rx literal  "->"
-    add $I11, rx207_pos, 2
-    gt $I11, rx207_eos, rx207_fail
-    sub $I11, rx207_pos, rx207_off
-    substr $S10, rx207_tgt, $I11, 2
-    ne $S10, "->", rx207_fail
-    add rx207_pos, 2
-    goto alt211_end
-  alt211_1:
+    add $I11, rx211_pos, 2
+    gt $I11, rx211_eos, rx211_fail
+    sub $I11, rx211_pos, rx211_off
+    substr $S10, rx211_tgt, $I11, 2
+    ne $S10, "->", rx211_fail
+    add rx211_pos, 2
+    goto alt215_end
+  alt215_1:
   # rx literal  "<->"
-    add $I11, rx207_pos, 3
-    gt $I11, rx207_eos, rx207_fail
-    sub $I11, rx207_pos, rx207_off
-    substr $S10, rx207_tgt, $I11, 3
-    ne $S10, "<->", rx207_fail
-    add rx207_pos, 3
-  alt211_end:
+    add $I11, rx211_pos, 3
+    gt $I11, rx211_eos, rx211_fail
+    sub $I11, rx211_pos, rx211_off
+    substr $S10, rx211_tgt, $I11, 3
+    ne $S10, "<->", rx211_fail
+    add rx211_pos, 3
+  alt215_end:
   # rx pass
-    rx207_cur."!cursor_pass"(rx207_pos, "lambda")
-    rx207_cur."!cursor_debug"("PASS  ", "lambda", " at pos=", rx207_pos)
-    .return (rx207_cur)
-  rx207_fail:
+    rx211_cur."!cursor_pass"(rx211_pos, "lambda")
+    rx211_cur."!cursor_debug"("PASS  ", "lambda", " at pos=", rx211_pos)
+    .return (rx211_cur)
+  rx211_fail:
 .annotate 'line', 4
-    (rx207_rep, rx207_pos, $I10, $P10) = rx207_cur."!mark_fail"(0)
-    lt rx207_pos, -1, rx207_done
-    eq rx207_pos, -1, rx207_fail
+    (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
+    lt rx211_pos, -1, rx211_done
+    eq rx211_pos, -1, rx211_fail
     jump $I10
-  rx207_done:
-    rx207_cur."!cursor_fail"()
-    rx207_cur."!cursor_debug"("FAIL  ", "lambda")
-    .return (rx207_cur)
+  rx211_done:
+    rx211_cur."!cursor_fail"()
+    rx211_cur."!cursor_debug"("FAIL  ", "lambda")
+    .return (rx211_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1274853038.58734") :method
+.sub "!PREFIX__lambda"  :subid("43_1275811487.95429") :method
 .annotate 'line', 4
-    new $P209, "ResizablePMCArray"
-    push $P209, "<->"
-    push $P209, "->"
-    .return ($P209)
+    new $P213, "ResizablePMCArray"
+    push $P213, "<->"
+    push $P213, "->"
+    .return ($P213)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "block"  :subid("44_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx213_tgt
-    .local int rx213_pos
-    .local int rx213_off
-    .local int rx213_eos
-    .local int rx213_rep
-    .local pmc rx213_cur
-    (rx213_cur, rx213_pos, rx213_tgt) = self."!cursor_start"()
-    rx213_cur."!cursor_debug"("START ", "block")
-    .lex unicode:"$\x{a2}", rx213_cur
+    .local string rx217_tgt
+    .local int rx217_pos
+    .local int rx217_off
+    .local int rx217_eos
+    .local int rx217_rep
+    .local pmc rx217_cur
+    (rx217_cur, rx217_pos, rx217_tgt) = self."!cursor_start"()
+    rx217_cur."!cursor_debug"("START ", "block")
+    .lex unicode:"$\x{a2}", rx217_cur
     .local pmc match
     .lex "$/", match
-    length rx213_eos, rx213_tgt
-    set rx213_off, 0
-    lt rx213_pos, 2, rx213_start
-    sub rx213_off, rx213_pos, 1
-    substr rx213_tgt, rx213_tgt, rx213_off
-  rx213_start:
+    length rx217_eos, rx217_tgt
+    gt rx217_pos, rx217_eos, rx217_done
+    set rx217_off, 0
+    lt rx217_pos, 2, rx217_start
+    sub rx217_off, rx217_pos, 1
+    substr rx217_tgt, rx217_tgt, rx217_off
+  rx217_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan217_done
-    goto rxscan217_scan
-  rxscan217_loop:
-    ($P10) = rx213_cur."from"()
+    ne $I10, -1, rxscan221_done
+    goto rxscan221_scan
+  rxscan221_loop:
+    ($P10) = rx217_cur."from"()
     inc $P10
-    set rx213_pos, $P10
-    ge rx213_pos, rx213_eos, rxscan217_done
-  rxscan217_scan:
-    set_addr $I10, rxscan217_loop
-    rx213_cur."!mark_push"(0, rx213_pos, $I10)
-  rxscan217_done:
-  alt218_0:
-.annotate 'line', 132
-    set_addr $I10, alt218_1
-    rx213_cur."!mark_push"(0, rx213_pos, $I10)
+    set rx217_pos, $P10
+    ge rx217_pos, rx217_eos, rxscan221_done
+  rxscan221_scan:
+    set_addr $I10, rxscan221_loop
+    rx217_cur."!mark_push"(0, rx217_pos, $I10)
+  rxscan221_done:
+  alt222_0:
+.annotate 'line', 133
+    set_addr $I10, alt222_1
+    rx217_cur."!mark_push"(0, rx217_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx213_pos, rx213_eos, rx213_fail
-    sub $I10, rx213_pos, rx213_off
-    substr $S10, rx213_tgt, $I10, 1
+    ge rx217_pos, rx217_eos, rx217_fail
+    sub $I10, rx217_pos, rx217_off
+    substr $S10, rx217_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx213_fail
-    goto alt218_end
-  alt218_1:
+    lt $I11, 0, rx217_fail
+    goto alt222_end
+  alt222_1:
   # rx subrule "panic" subtype=method negate=
-    rx213_cur."!cursor_pos"(rx213_pos)
-    $P10 = rx213_cur."panic"("Missing block")
-    unless $P10, rx213_fail
-    rx213_pos = $P10."pos"()
-  alt218_end:
-.annotate 'line', 133
-  # rx subrule "newpad" subtype=method negate=
-    rx213_cur."!cursor_pos"(rx213_pos)
-    $P10 = rx213_cur."newpad"()
-    unless $P10, rx213_fail
-    rx213_pos = $P10."pos"()
+    rx217_cur."!cursor_pos"(rx217_pos)
+    $P10 = rx217_cur."panic"("Missing block")
+    unless $P10, rx217_fail
+    rx217_pos = $P10."pos"()
+  alt222_end:
 .annotate 'line', 134
+  # rx subrule "newpad" subtype=method negate=
+    rx217_cur."!cursor_pos"(rx217_pos)
+    $P10 = rx217_cur."newpad"()
+    unless $P10, rx217_fail
+    rx217_pos = $P10."pos"()
+.annotate 'line', 135
   # rx subrule "blockoid" subtype=capture negate=
-    rx213_cur."!cursor_pos"(rx213_pos)
-    $P10 = rx213_cur."blockoid"()
-    unless $P10, rx213_fail
-    rx213_cur."!mark_push"(0, -1, 0, $P10)
+    rx217_cur."!cursor_pos"(rx217_pos)
+    $P10 = rx217_cur."blockoid"()
+    unless $P10, rx217_fail
+    rx217_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx213_pos = $P10."pos"()
-.annotate 'line', 131
+    rx217_pos = $P10."pos"()
+.annotate 'line', 132
   # rx pass
-    rx213_cur."!cursor_pass"(rx213_pos, "block")
-    rx213_cur."!cursor_debug"("PASS  ", "block", " at pos=", rx213_pos)
-    .return (rx213_cur)
-  rx213_fail:
+    rx217_cur."!cursor_pass"(rx217_pos, "block")
+    rx217_cur."!cursor_debug"("PASS  ", "block", " at pos=", rx217_pos)
+    .return (rx217_cur)
+  rx217_fail:
 .annotate 'line', 4
-    (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
-    lt rx213_pos, -1, rx213_done
-    eq rx213_pos, -1, rx213_fail
+    (rx217_rep, rx217_pos, $I10, $P10) = rx217_cur."!mark_fail"(0)
+    lt rx217_pos, -1, rx217_done
+    eq rx217_pos, -1, rx217_fail
     jump $I10
-  rx213_done:
-    rx213_cur."!cursor_fail"()
-    rx213_cur."!cursor_debug"("FAIL  ", "block")
-    .return (rx213_cur)
+  rx217_done:
+    rx217_cur."!cursor_fail"()
+    rx217_cur."!cursor_debug"("FAIL  ", "block")
+    .return (rx217_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1274853038.58734") :method
+.sub "!PREFIX__block"  :subid("45_1275811487.95429") :method
 .annotate 'line', 4
-    $P215 = self."!PREFIX__!subrule"("", "")
-    new $P216, "ResizablePMCArray"
-    push $P216, $P215
-    push $P216, "{"
-    .return ($P216)
+    $P219 = self."!PREFIX__!subrule"("panic", "")
+    new $P220, "ResizablePMCArray"
+    push $P220, $P219
+    push $P220, "{"
+    .return ($P220)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "blockoid"  :subid("46_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx220_tgt
-    .local int rx220_pos
-    .local int rx220_off
-    .local int rx220_eos
-    .local int rx220_rep
-    .local pmc rx220_cur
-    (rx220_cur, rx220_pos, rx220_tgt) = self."!cursor_start"()
-    rx220_cur."!cursor_debug"("START ", "blockoid")
-    .lex unicode:"$\x{a2}", rx220_cur
+    .local string rx224_tgt
+    .local int rx224_pos
+    .local int rx224_off
+    .local int rx224_eos
+    .local int rx224_rep
+    .local pmc rx224_cur
+    (rx224_cur, rx224_pos, rx224_tgt) = self."!cursor_start"()
+    rx224_cur."!cursor_debug"("START ", "blockoid")
+    .lex unicode:"$\x{a2}", rx224_cur
     .local pmc match
     .lex "$/", match
-    length rx220_eos, rx220_tgt
-    set rx220_off, 0
-    lt rx220_pos, 2, rx220_start
-    sub rx220_off, rx220_pos, 1
-    substr rx220_tgt, rx220_tgt, rx220_off
-  rx220_start:
+    length rx224_eos, rx224_tgt
+    gt rx224_pos, rx224_eos, rx224_done
+    set rx224_off, 0
+    lt rx224_pos, 2, rx224_start
+    sub rx224_off, rx224_pos, 1
+    substr rx224_tgt, rx224_tgt, rx224_off
+  rx224_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan224_done
-    goto rxscan224_scan
-  rxscan224_loop:
-    ($P10) = rx220_cur."from"()
+    ne $I10, -1, rxscan228_done
+    goto rxscan228_scan
+  rxscan228_loop:
+    ($P10) = rx224_cur."from"()
     inc $P10
-    set rx220_pos, $P10
-    ge rx220_pos, rx220_eos, rxscan224_done
-  rxscan224_scan:
-    set_addr $I10, rxscan224_loop
-    rx220_cur."!mark_push"(0, rx220_pos, $I10)
-  rxscan224_done:
-.annotate 'line', 138
-  # rx subrule "finishpad" subtype=method negate=
-    rx220_cur."!cursor_pos"(rx220_pos)
-    $P10 = rx220_cur."finishpad"()
-    unless $P10, rx220_fail
-    rx220_pos = $P10."pos"()
+    set rx224_pos, $P10
+    ge rx224_pos, rx224_eos, rxscan228_done
+  rxscan228_scan:
+    set_addr $I10, rxscan228_loop
+    rx224_cur."!mark_push"(0, rx224_pos, $I10)
+  rxscan228_done:
 .annotate 'line', 139
+  # rx subrule "finishpad" subtype=method negate=
+    rx224_cur."!cursor_pos"(rx224_pos)
+    $P10 = rx224_cur."finishpad"()
+    unless $P10, rx224_fail
+    rx224_pos = $P10."pos"()
+.annotate 'line', 140
   # rx literal  "{"
-    add $I11, rx220_pos, 1
-    gt $I11, rx220_eos, rx220_fail
-    sub $I11, rx220_pos, rx220_off
-    substr $S10, rx220_tgt, $I11, 1
-    ne $S10, "{", rx220_fail
-    add rx220_pos, 1
+    add $I11, rx224_pos, 1
+    gt $I11, rx224_eos, rx224_fail
+    sub $I11, rx224_pos, rx224_off
+    substr $S10, rx224_tgt, $I11, 1
+    ne $S10, "{", rx224_fail
+    add rx224_pos, 1
   # rx subrule "statementlist" subtype=capture negate=
-    rx220_cur."!cursor_pos"(rx220_pos)
-    $P10 = rx220_cur."statementlist"()
-    unless $P10, rx220_fail
-    rx220_cur."!mark_push"(0, -1, 0, $P10)
+    rx224_cur."!cursor_pos"(rx224_pos)
+    $P10 = rx224_cur."statementlist"()
+    unless $P10, rx224_fail
+    rx224_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statementlist")
-    rx220_pos = $P10."pos"()
-  alt225_0:
-    set_addr $I10, alt225_1
-    rx220_cur."!mark_push"(0, rx220_pos, $I10)
+    rx224_pos = $P10."pos"()
+  alt229_0:
+    set_addr $I10, alt229_1
+    rx224_cur."!mark_push"(0, rx224_pos, $I10)
   # rx literal  "}"
-    add $I11, rx220_pos, 1
-    gt $I11, rx220_eos, rx220_fail
-    sub $I11, rx220_pos, rx220_off
-    substr $S10, rx220_tgt, $I11, 1
-    ne $S10, "}", rx220_fail
-    add rx220_pos, 1
-    goto alt225_end
-  alt225_1:
+    add $I11, rx224_pos, 1
+    gt $I11, rx224_eos, rx224_fail
+    sub $I11, rx224_pos, rx224_off
+    substr $S10, rx224_tgt, $I11, 1
+    ne $S10, "}", rx224_fail
+    add rx224_pos, 1
+    goto alt229_end
+  alt229_1:
   # rx subrule "FAILGOAL" subtype=method negate=
-    rx220_cur."!cursor_pos"(rx220_pos)
-    $P10 = rx220_cur."FAILGOAL"("'}'")
-    unless $P10, rx220_fail
-    rx220_pos = $P10."pos"()
-  alt225_end:
-.annotate 'line', 140
+    rx224_cur."!cursor_pos"(rx224_pos)
+    $P10 = rx224_cur."FAILGOAL"("'}'")
+    unless $P10, rx224_fail
+    rx224_pos = $P10."pos"()
+  alt229_end:
+.annotate 'line', 141
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx220_cur."!cursor_pos"(rx220_pos)
-    $P10 = rx220_cur."ENDSTMT"()
-    unless $P10, rx220_fail
-.annotate 'line', 137
+    rx224_cur."!cursor_pos"(rx224_pos)
+    $P10 = rx224_cur."ENDSTMT"()
+    unless $P10, rx224_fail
+.annotate 'line', 138
   # rx pass
-    rx220_cur."!cursor_pass"(rx220_pos, "blockoid")
-    rx220_cur."!cursor_debug"("PASS  ", "blockoid", " at pos=", rx220_pos)
-    .return (rx220_cur)
-  rx220_fail:
+    rx224_cur."!cursor_pass"(rx224_pos, "blockoid")
+    rx224_cur."!cursor_debug"("PASS  ", "blockoid", " at pos=", rx224_pos)
+    .return (rx224_cur)
+  rx224_fail:
 .annotate 'line', 4
-    (rx220_rep, rx220_pos, $I10, $P10) = rx220_cur."!mark_fail"(0)
-    lt rx220_pos, -1, rx220_done
-    eq rx220_pos, -1, rx220_fail
+    (rx224_rep, rx224_pos, $I10, $P10) = rx224_cur."!mark_fail"(0)
+    lt rx224_pos, -1, rx224_done
+    eq rx224_pos, -1, rx224_fail
     jump $I10
-  rx220_done:
-    rx220_cur."!cursor_fail"()
-    rx220_cur."!cursor_debug"("FAIL  ", "blockoid")
-    .return (rx220_cur)
+  rx224_done:
+    rx224_cur."!cursor_fail"()
+    rx224_cur."!cursor_debug"("FAIL  ", "blockoid")
+    .return (rx224_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1274853038.58734") :method
+.sub "!PREFIX__blockoid"  :subid("47_1275811487.95429") :method
 .annotate 'line', 4
-    $P222 = self."!PREFIX__!subrule"("", "")
-    new $P223, "ResizablePMCArray"
-    push $P223, $P222
-    .return ($P223)
+    $P226 = self."!PREFIX__!subrule"("finishpad", "")
+    new $P227, "ResizablePMCArray"
+    push $P227, $P226
+    .return ($P227)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "newpad"  :subid("48_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx228_tgt
-    .local int rx228_pos
-    .local int rx228_off
-    .local int rx228_eos
-    .local int rx228_rep
-    .local pmc rx228_cur
-    (rx228_cur, rx228_pos, rx228_tgt) = self."!cursor_start"()
-    rx228_cur."!cursor_debug"("START ", "newpad")
-    .lex unicode:"$\x{a2}", rx228_cur
+    .local string rx232_tgt
+    .local int rx232_pos
+    .local int rx232_off
+    .local int rx232_eos
+    .local int rx232_rep
+    .local pmc rx232_cur
+    (rx232_cur, rx232_pos, rx232_tgt) = self."!cursor_start"()
+    rx232_cur."!cursor_debug"("START ", "newpad")
+    .lex unicode:"$\x{a2}", rx232_cur
     .local pmc match
     .lex "$/", match
-    length rx228_eos, rx228_tgt
-    set rx228_off, 0
-    lt rx228_pos, 2, rx228_start
-    sub rx228_off, rx228_pos, 1
-    substr rx228_tgt, rx228_tgt, rx228_off
-  rx228_start:
+    length rx232_eos, rx232_tgt
+    gt rx232_pos, rx232_eos, rx232_done
+    set rx232_off, 0
+    lt rx232_pos, 2, rx232_start
+    sub rx232_off, rx232_pos, 1
+    substr rx232_tgt, rx232_tgt, rx232_off
+  rx232_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan231_done
-    goto rxscan231_scan
-  rxscan231_loop:
-    ($P10) = rx228_cur."from"()
+    ne $I10, -1, rxscan235_done
+    goto rxscan235_scan
+  rxscan235_loop:
+    ($P10) = rx232_cur."from"()
     inc $P10
-    set rx228_pos, $P10
-    ge rx228_pos, rx228_eos, rxscan231_done
-  rxscan231_scan:
-    set_addr $I10, rxscan231_loop
-    rx228_cur."!mark_push"(0, rx228_pos, $I10)
-  rxscan231_done:
-.annotate 'line', 143
+    set rx232_pos, $P10
+    ge rx232_pos, rx232_eos, rxscan235_done
+  rxscan235_scan:
+    set_addr $I10, rxscan235_loop
+    rx232_cur."!mark_push"(0, rx232_pos, $I10)
+  rxscan235_done:
+.annotate 'line', 144
   # rx pass
-    rx228_cur."!cursor_pass"(rx228_pos, "newpad")
-    rx228_cur."!cursor_debug"("PASS  ", "newpad", " at pos=", rx228_pos)
-    .return (rx228_cur)
-  rx228_fail:
+    rx232_cur."!cursor_pass"(rx232_pos, "newpad")
+    rx232_cur."!cursor_debug"("PASS  ", "newpad", " at pos=", rx232_pos)
+    .return (rx232_cur)
+  rx232_fail:
 .annotate 'line', 4
-    (rx228_rep, rx228_pos, $I10, $P10) = rx228_cur."!mark_fail"(0)
-    lt rx228_pos, -1, rx228_done
-    eq rx228_pos, -1, rx228_fail
+    (rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0)
+    lt rx232_pos, -1, rx232_done
+    eq rx232_pos, -1, rx232_fail
     jump $I10
-  rx228_done:
-    rx228_cur."!cursor_fail"()
-    rx228_cur."!cursor_debug"("FAIL  ", "newpad")
-    .return (rx228_cur)
+  rx232_done:
+    rx232_cur."!cursor_fail"()
+    rx232_cur."!cursor_debug"("FAIL  ", "newpad")
+    .return (rx232_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1274853038.58734") :method
+.sub "!PREFIX__newpad"  :subid("49_1275811487.95429") :method
 .annotate 'line', 4
-    new $P230, "ResizablePMCArray"
-    push $P230, ""
-    .return ($P230)
+    new $P234, "ResizablePMCArray"
+    push $P234, ""
+    .return ($P234)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "outerctx"  :subid("50_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "outerctx"  :subid("50_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx233_tgt
-    .local int rx233_pos
-    .local int rx233_off
-    .local int rx233_eos
-    .local int rx233_rep
-    .local pmc rx233_cur
-    (rx233_cur, rx233_pos, rx233_tgt) = self."!cursor_start"()
-    rx233_cur."!cursor_debug"("START ", "outerctx")
-    .lex unicode:"$\x{a2}", rx233_cur
+    .local string rx237_tgt
+    .local int rx237_pos
+    .local int rx237_off
+    .local int rx237_eos
+    .local int rx237_rep
+    .local pmc rx237_cur
+    (rx237_cur, rx237_pos, rx237_tgt) = self."!cursor_start"()
+    rx237_cur."!cursor_debug"("START ", "outerctx")
+    .lex unicode:"$\x{a2}", rx237_cur
     .local pmc match
     .lex "$/", match
-    length rx233_eos, rx233_tgt
-    set rx233_off, 0
-    lt rx233_pos, 2, rx233_start
-    sub rx233_off, rx233_pos, 1
-    substr rx233_tgt, rx233_tgt, rx233_off
-  rx233_start:
+    length rx237_eos, rx237_tgt
+    gt rx237_pos, rx237_eos, rx237_done
+    set rx237_off, 0
+    lt rx237_pos, 2, rx237_start
+    sub rx237_off, rx237_pos, 1
+    substr rx237_tgt, rx237_tgt, rx237_off
+  rx237_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan236_done
-    goto rxscan236_scan
-  rxscan236_loop:
-    ($P10) = rx233_cur."from"()
+    ne $I10, -1, rxscan240_done
+    goto rxscan240_scan
+  rxscan240_loop:
+    ($P10) = rx237_cur."from"()
     inc $P10
-    set rx233_pos, $P10
-    ge rx233_pos, rx233_eos, rxscan236_done
-  rxscan236_scan:
-    set_addr $I10, rxscan236_loop
-    rx233_cur."!mark_push"(0, rx233_pos, $I10)
-  rxscan236_done:
-.annotate 'line', 144
+    set rx237_pos, $P10
+    ge rx237_pos, rx237_eos, rxscan240_done
+  rxscan240_scan:
+    set_addr $I10, rxscan240_loop
+    rx237_cur."!mark_push"(0, rx237_pos, $I10)
+  rxscan240_done:
+.annotate 'line', 145
   # rx pass
-    rx233_cur."!cursor_pass"(rx233_pos, "outerctx")
-    rx233_cur."!cursor_debug"("PASS  ", "outerctx", " at pos=", rx233_pos)
-    .return (rx233_cur)
-  rx233_fail:
+    rx237_cur."!cursor_pass"(rx237_pos, "outerctx")
+    rx237_cur."!cursor_debug"("PASS  ", "outerctx", " at pos=", rx237_pos)
+    .return (rx237_cur)
+  rx237_fail:
 .annotate 'line', 4
-    (rx233_rep, rx233_pos, $I10, $P10) = rx233_cur."!mark_fail"(0)
-    lt rx233_pos, -1, rx233_done
-    eq rx233_pos, -1, rx233_fail
+    (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
+    lt rx237_pos, -1, rx237_done
+    eq rx237_pos, -1, rx237_fail
     jump $I10
-  rx233_done:
-    rx233_cur."!cursor_fail"()
-    rx233_cur."!cursor_debug"("FAIL  ", "outerctx")
-    .return (rx233_cur)
+  rx237_done:
+    rx237_cur."!cursor_fail"()
+    rx237_cur."!cursor_debug"("FAIL  ", "outerctx")
+    .return (rx237_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__outerctx"  :subid("51_1274853038.58734") :method
+.sub "!PREFIX__outerctx"  :subid("51_1275811487.95429") :method
 .annotate 'line', 4
-    new $P235, "ResizablePMCArray"
-    push $P235, ""
-    .return ($P235)
+    new $P239, "ResizablePMCArray"
+    push $P239, ""
+    .return ($P239)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("52_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "finishpad"  :subid("52_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx238_tgt
-    .local int rx238_pos
-    .local int rx238_off
-    .local int rx238_eos
-    .local int rx238_rep
-    .local pmc rx238_cur
-    (rx238_cur, rx238_pos, rx238_tgt) = self."!cursor_start"()
-    rx238_cur."!cursor_debug"("START ", "finishpad")
-    .lex unicode:"$\x{a2}", rx238_cur
+    .local string rx242_tgt
+    .local int rx242_pos
+    .local int rx242_off
+    .local int rx242_eos
+    .local int rx242_rep
+    .local pmc rx242_cur
+    (rx242_cur, rx242_pos, rx242_tgt) = self."!cursor_start"()
+    rx242_cur."!cursor_debug"("START ", "finishpad")
+    .lex unicode:"$\x{a2}", rx242_cur
     .local pmc match
     .lex "$/", match
-    length rx238_eos, rx238_tgt
-    set rx238_off, 0
-    lt rx238_pos, 2, rx238_start
-    sub rx238_off, rx238_pos, 1
-    substr rx238_tgt, rx238_tgt, rx238_off
-  rx238_start:
+    length rx242_eos, rx242_tgt
+    gt rx242_pos, rx242_eos, rx242_done
+    set rx242_off, 0
+    lt rx242_pos, 2, rx242_start
+    sub rx242_off, rx242_pos, 1
+    substr rx242_tgt, rx242_tgt, rx242_off
+  rx242_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan241_done
-    goto rxscan241_scan
-  rxscan241_loop:
-    ($P10) = rx238_cur."from"()
+    ne $I10, -1, rxscan245_done
+    goto rxscan245_scan
+  rxscan245_loop:
+    ($P10) = rx242_cur."from"()
     inc $P10
-    set rx238_pos, $P10
-    ge rx238_pos, rx238_eos, rxscan241_done
-  rxscan241_scan:
-    set_addr $I10, rxscan241_loop
-    rx238_cur."!mark_push"(0, rx238_pos, $I10)
-  rxscan241_done:
-.annotate 'line', 145
+    set rx242_pos, $P10
+    ge rx242_pos, rx242_eos, rxscan245_done
+  rxscan245_scan:
+    set_addr $I10, rxscan245_loop
+    rx242_cur."!mark_push"(0, rx242_pos, $I10)
+  rxscan245_done:
+.annotate 'line', 146
   # rx pass
-    rx238_cur."!cursor_pass"(rx238_pos, "finishpad")
-    rx238_cur."!cursor_debug"("PASS  ", "finishpad", " at pos=", rx238_pos)
-    .return (rx238_cur)
-  rx238_fail:
+    rx242_cur."!cursor_pass"(rx242_pos, "finishpad")
+    rx242_cur."!cursor_debug"("PASS  ", "finishpad", " at pos=", rx242_pos)
+    .return (rx242_cur)
+  rx242_fail:
 .annotate 'line', 4
-    (rx238_rep, rx238_pos, $I10, $P10) = rx238_cur."!mark_fail"(0)
-    lt rx238_pos, -1, rx238_done
-    eq rx238_pos, -1, rx238_fail
+    (rx242_rep, rx242_pos, $I10, $P10) = rx242_cur."!mark_fail"(0)
+    lt rx242_pos, -1, rx242_done
+    eq rx242_pos, -1, rx242_fail
     jump $I10
-  rx238_done:
-    rx238_cur."!cursor_fail"()
-    rx238_cur."!cursor_debug"("FAIL  ", "finishpad")
-    .return (rx238_cur)
+  rx242_done:
+    rx242_cur."!cursor_fail"()
+    rx242_cur."!cursor_debug"("FAIL  ", "finishpad")
+    .return (rx242_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("53_1274853038.58734") :method
+.sub "!PREFIX__finishpad"  :subid("53_1275811487.95429") :method
 .annotate 'line', 4
-    new $P240, "ResizablePMCArray"
-    push $P240, ""
-    .return ($P240)
+    new $P244, "ResizablePMCArray"
+    push $P244, ""
+    .return ($P244)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("54_1274853038.58734") :method
-.annotate 'line', 147
-    $P243 = self."!protoregex"("terminator")
-    .return ($P243)
+.sub "terminator"  :subid("54_1275811487.95429") :method
+.annotate 'line', 148
+    $P247 = self."!protoregex"("terminator")
+    .return ($P247)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("55_1274853038.58734") :method
-.annotate 'line', 147
-    $P245 = self."!PREFIX__!protoregex"("terminator")
-    .return ($P245)
+.sub "!PREFIX__terminator"  :subid("55_1275811487.95429") :method
+.annotate 'line', 148
+    $P249 = self."!PREFIX__!protoregex"("terminator")
+    .return ($P249)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("56_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "terminator:sym<;>"  :subid("56_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx247_tgt
-    .local int rx247_pos
-    .local int rx247_off
-    .local int rx247_eos
-    .local int rx247_rep
-    .local pmc rx247_cur
-    (rx247_cur, rx247_pos, rx247_tgt) = self."!cursor_start"()
-    rx247_cur."!cursor_debug"("START ", "terminator:sym<;>")
-    .lex unicode:"$\x{a2}", rx247_cur
-    .local pmc match
-    .lex "$/", match
-    length rx247_eos, rx247_tgt
-    set rx247_off, 0
-    lt rx247_pos, 2, rx247_start
-    sub rx247_off, rx247_pos, 1
-    substr rx247_tgt, rx247_tgt, rx247_off
-  rx247_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan250_done
-    goto rxscan250_scan
-  rxscan250_loop:
-    ($P10) = rx247_cur."from"()
-    inc $P10
-    set rx247_pos, $P10
-    ge rx247_pos, rx247_eos, rxscan250_done
-  rxscan250_scan:
-    set_addr $I10, rxscan250_loop
-    rx247_cur."!mark_push"(0, rx247_pos, $I10)
-  rxscan250_done:
-.annotate 'line', 149
+    .local string rx251_tgt
+    .local int rx251_pos
+    .local int rx251_off
+    .local int rx251_eos
+    .local int rx251_rep
+    .local pmc rx251_cur
+    (rx251_cur, rx251_pos, rx251_tgt) = self."!cursor_start"()
+    rx251_cur."!cursor_debug"("START ", "terminator:sym<;>")
+    .lex unicode:"$\x{a2}", rx251_cur
+    .local pmc match
+    .lex "$/", match
+    length rx251_eos, rx251_tgt
+    gt rx251_pos, rx251_eos, rx251_done
+    set rx251_off, 0
+    lt rx251_pos, 2, rx251_start
+    sub rx251_off, rx251_pos, 1
+    substr rx251_tgt, rx251_tgt, rx251_off
+  rx251_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan254_done
+    goto rxscan254_scan
+  rxscan254_loop:
+    ($P10) = rx251_cur."from"()
+    inc $P10
+    set rx251_pos, $P10
+    ge rx251_pos, rx251_eos, rxscan254_done
+  rxscan254_scan:
+    set_addr $I10, rxscan254_loop
+    rx251_cur."!mark_push"(0, rx251_pos, $I10)
+  rxscan254_done:
+.annotate 'line', 150
   # rx enumcharlist negate=0 zerowidth
-    ge rx247_pos, rx247_eos, rx247_fail
-    sub $I10, rx247_pos, rx247_off
-    substr $S10, rx247_tgt, $I10, 1
+    ge rx251_pos, rx251_eos, rx251_fail
+    sub $I10, rx251_pos, rx251_off
+    substr $S10, rx251_tgt, $I10, 1
     index $I11, ";", $S10
-    lt $I11, 0, rx247_fail
+    lt $I11, 0, rx251_fail
   # rx pass
-    rx247_cur."!cursor_pass"(rx247_pos, "terminator:sym<;>")
-    rx247_cur."!cursor_debug"("PASS  ", "terminator:sym<;>", " at pos=", rx247_pos)
-    .return (rx247_cur)
-  rx247_fail:
+    rx251_cur."!cursor_pass"(rx251_pos, "terminator:sym<;>")
+    rx251_cur."!cursor_debug"("PASS  ", "terminator:sym<;>", " at pos=", rx251_pos)
+    .return (rx251_cur)
+  rx251_fail:
 .annotate 'line', 4
-    (rx247_rep, rx247_pos, $I10, $P10) = rx247_cur."!mark_fail"(0)
-    lt rx247_pos, -1, rx247_done
-    eq rx247_pos, -1, rx247_fail
+    (rx251_rep, rx251_pos, $I10, $P10) = rx251_cur."!mark_fail"(0)
+    lt rx251_pos, -1, rx251_done
+    eq rx251_pos, -1, rx251_fail
     jump $I10
-  rx247_done:
-    rx247_cur."!cursor_fail"()
-    rx247_cur."!cursor_debug"("FAIL  ", "terminator:sym<;>")
-    .return (rx247_cur)
+  rx251_done:
+    rx251_cur."!cursor_fail"()
+    rx251_cur."!cursor_debug"("FAIL  ", "terminator:sym<;>")
+    .return (rx251_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("57_1274853038.58734") :method
+.sub "!PREFIX__terminator:sym<;>"  :subid("57_1275811487.95429") :method
 .annotate 'line', 4
-    new $P249, "ResizablePMCArray"
-    push $P249, ";"
-    .return ($P249)
+    new $P253, "ResizablePMCArray"
+    push $P253, ";"
+    .return ($P253)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("58_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "terminator:sym<}>"  :subid("58_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx252_tgt
-    .local int rx252_pos
-    .local int rx252_off
-    .local int rx252_eos
-    .local int rx252_rep
-    .local pmc rx252_cur
-    (rx252_cur, rx252_pos, rx252_tgt) = self."!cursor_start"()
-    rx252_cur."!cursor_debug"("START ", "terminator:sym<}>")
-    .lex unicode:"$\x{a2}", rx252_cur
-    .local pmc match
-    .lex "$/", match
-    length rx252_eos, rx252_tgt
-    set rx252_off, 0
-    lt rx252_pos, 2, rx252_start
-    sub rx252_off, rx252_pos, 1
-    substr rx252_tgt, rx252_tgt, rx252_off
-  rx252_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan255_done
-    goto rxscan255_scan
-  rxscan255_loop:
-    ($P10) = rx252_cur."from"()
-    inc $P10
-    set rx252_pos, $P10
-    ge rx252_pos, rx252_eos, rxscan255_done
-  rxscan255_scan:
-    set_addr $I10, rxscan255_loop
-    rx252_cur."!mark_push"(0, rx252_pos, $I10)
-  rxscan255_done:
-.annotate 'line', 150
+    .local string rx256_tgt
+    .local int rx256_pos
+    .local int rx256_off
+    .local int rx256_eos
+    .local int rx256_rep
+    .local pmc rx256_cur
+    (rx256_cur, rx256_pos, rx256_tgt) = self."!cursor_start"()
+    rx256_cur."!cursor_debug"("START ", "terminator:sym<}>")
+    .lex unicode:"$\x{a2}", rx256_cur
+    .local pmc match
+    .lex "$/", match
+    length rx256_eos, rx256_tgt
+    gt rx256_pos, rx256_eos, rx256_done
+    set rx256_off, 0
+    lt rx256_pos, 2, rx256_start
+    sub rx256_off, rx256_pos, 1
+    substr rx256_tgt, rx256_tgt, rx256_off
+  rx256_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan259_done
+    goto rxscan259_scan
+  rxscan259_loop:
+    ($P10) = rx256_cur."from"()
+    inc $P10
+    set rx256_pos, $P10
+    ge rx256_pos, rx256_eos, rxscan259_done
+  rxscan259_scan:
+    set_addr $I10, rxscan259_loop
+    rx256_cur."!mark_push"(0, rx256_pos, $I10)
+  rxscan259_done:
+.annotate 'line', 151
   # rx enumcharlist negate=0 zerowidth
-    ge rx252_pos, rx252_eos, rx252_fail
-    sub $I10, rx252_pos, rx252_off
-    substr $S10, rx252_tgt, $I10, 1
+    ge rx256_pos, rx256_eos, rx256_fail
+    sub $I10, rx256_pos, rx256_off
+    substr $S10, rx256_tgt, $I10, 1
     index $I11, "}", $S10
-    lt $I11, 0, rx252_fail
+    lt $I11, 0, rx256_fail
   # rx pass
-    rx252_cur."!cursor_pass"(rx252_pos, "terminator:sym<}>")
-    rx252_cur."!cursor_debug"("PASS  ", "terminator:sym<}>", " at pos=", rx252_pos)
-    .return (rx252_cur)
-  rx252_fail:
+    rx256_cur."!cursor_pass"(rx256_pos, "terminator:sym<}>")
+    rx256_cur."!cursor_debug"("PASS  ", "terminator:sym<}>", " at pos=", rx256_pos)
+    .return (rx256_cur)
+  rx256_fail:
 .annotate 'line', 4
-    (rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0)
-    lt rx252_pos, -1, rx252_done
-    eq rx252_pos, -1, rx252_fail
+    (rx256_rep, rx256_pos, $I10, $P10) = rx256_cur."!mark_fail"(0)
+    lt rx256_pos, -1, rx256_done
+    eq rx256_pos, -1, rx256_fail
     jump $I10
-  rx252_done:
-    rx252_cur."!cursor_fail"()
-    rx252_cur."!cursor_debug"("FAIL  ", "terminator:sym<}>")
-    .return (rx252_cur)
+  rx256_done:
+    rx256_cur."!cursor_fail"()
+    rx256_cur."!cursor_debug"("FAIL  ", "terminator:sym<}>")
+    .return (rx256_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("59_1274853038.58734") :method
+.sub "!PREFIX__terminator:sym<}>"  :subid("59_1275811487.95429") :method
 .annotate 'line', 4
-    new $P254, "ResizablePMCArray"
-    push $P254, "}"
-    .return ($P254)
+    new $P258, "ResizablePMCArray"
+    push $P258, "}"
+    .return ($P258)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("60_1274853038.58734") :method
-.annotate 'line', 154
-    $P257 = self."!protoregex"("statement_control")
-    .return ($P257)
+.sub "statement_control"  :subid("60_1275811487.95429") :method
+.annotate 'line', 155
+    $P261 = self."!protoregex"("statement_control")
+    .return ($P261)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("61_1274853038.58734") :method
-.annotate 'line', 154
-    $P259 = self."!PREFIX__!protoregex"("statement_control")
-    .return ($P259)
+.sub "!PREFIX__statement_control"  :subid("61_1275811487.95429") :method
+.annotate 'line', 155
+    $P263 = self."!PREFIX__!protoregex"("statement_control")
+    .return ($P263)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>"  :subid("62_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement_control:sym<if>"  :subid("62_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx261_tgt
-    .local int rx261_pos
-    .local int rx261_off
-    .local int rx261_eos
-    .local int rx261_rep
-    .local pmc rx261_cur
-    (rx261_cur, rx261_pos, rx261_tgt) = self."!cursor_start"()
-    rx261_cur."!cursor_debug"("START ", "statement_control:sym<if>")
-    rx261_cur."!cursor_caparray"("xblock", "else")
-    .lex unicode:"$\x{a2}", rx261_cur
-    .local pmc match
-    .lex "$/", match
-    length rx261_eos, rx261_tgt
-    set rx261_off, 0
-    lt rx261_pos, 2, rx261_start
-    sub rx261_off, rx261_pos, 1
-    substr rx261_tgt, rx261_tgt, rx261_off
-  rx261_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan264_done
-    goto rxscan264_scan
-  rxscan264_loop:
-    ($P10) = rx261_cur."from"()
-    inc $P10
-    set rx261_pos, $P10
-    ge rx261_pos, rx261_eos, rxscan264_done
-  rxscan264_scan:
-    set_addr $I10, rxscan264_loop
-    rx261_cur."!mark_push"(0, rx261_pos, $I10)
-  rxscan264_done:
-.annotate 'line', 157
+    .local string rx265_tgt
+    .local int rx265_pos
+    .local int rx265_off
+    .local int rx265_eos
+    .local int rx265_rep
+    .local pmc rx265_cur
+    (rx265_cur, rx265_pos, rx265_tgt) = self."!cursor_start"()
+    rx265_cur."!cursor_debug"("START ", "statement_control:sym<if>")
+    rx265_cur."!cursor_caparray"("else", "xblock")
+    .lex unicode:"$\x{a2}", rx265_cur
+    .local pmc match
+    .lex "$/", match
+    length rx265_eos, rx265_tgt
+    gt rx265_pos, rx265_eos, rx265_done
+    set rx265_off, 0
+    lt rx265_pos, 2, rx265_start
+    sub rx265_off, rx265_pos, 1
+    substr rx265_tgt, rx265_tgt, rx265_off
+  rx265_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan268_done
+    goto rxscan268_scan
+  rxscan268_loop:
+    ($P10) = rx265_cur."from"()
+    inc $P10
+    set rx265_pos, $P10
+    ge rx265_pos, rx265_eos, rxscan268_done
+  rxscan268_scan:
+    set_addr $I10, rxscan268_loop
+    rx265_cur."!mark_push"(0, rx265_pos, $I10)
+  rxscan268_done:
+.annotate 'line', 158
   # rx subcapture "sym"
-    set_addr $I10, rxcap_265_fail
-    rx261_cur."!mark_push"(0, rx261_pos, $I10)
+    set_addr $I10, rxcap_269_fail
+    rx265_cur."!mark_push"(0, rx265_pos, $I10)
   # rx literal  "if"
-    add $I11, rx261_pos, 2
-    gt $I11, rx261_eos, rx261_fail
-    sub $I11, rx261_pos, rx261_off
-    substr $S10, rx261_tgt, $I11, 2
-    ne $S10, "if", rx261_fail
-    add rx261_pos, 2
-    set_addr $I10, rxcap_265_fail
-    ($I12, $I11) = rx261_cur."!mark_peek"($I10)
-    rx261_cur."!cursor_pos"($I11)
-    ($P10) = rx261_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx261_pos, "")
-    rx261_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx265_pos, 2
+    gt $I11, rx265_eos, rx265_fail
+    sub $I11, rx265_pos, rx265_off
+    substr $S10, rx265_tgt, $I11, 2
+    ne $S10, "if", rx265_fail
+    add rx265_pos, 2
+    set_addr $I10, rxcap_269_fail
+    ($I12, $I11) = rx265_cur."!mark_peek"($I10)
+    rx265_cur."!cursor_pos"($I11)
+    ($P10) = rx265_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx265_pos, "")
+    rx265_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_265_done
-  rxcap_265_fail:
-    goto rx261_fail
-  rxcap_265_done:
+    goto rxcap_269_done
+  rxcap_269_fail:
+    goto rx265_fail
+  rxcap_269_done:
   # rx charclass s
-    ge rx261_pos, rx261_eos, rx261_fail
-    sub $I10, rx261_pos, rx261_off
-    is_cclass $I11, 32, rx261_tgt, $I10
-    unless $I11, rx261_fail
-    inc rx261_pos
-  # rx subrule "ws" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."ws"()
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
-.annotate 'line', 158
+    ge rx265_pos, rx265_eos, rx265_fail
+    sub $I10, rx265_pos, rx265_off
+    is_cclass $I11, 32, rx265_tgt, $I10
+    unless $I11, rx265_fail
+    inc rx265_pos
+  # rx subrule "ws" subtype=method negate=
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."ws"()
+    unless $P10, rx265_fail
+    rx265_pos = $P10."pos"()
+.annotate 'line', 159
   # rx subrule "xblock" subtype=capture negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."xblock"()
-    unless $P10, rx261_fail
-    rx261_cur."!mark_push"(0, -1, 0, $P10)
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."xblock"()
+    unless $P10, rx265_fail
+    rx265_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx261_pos = $P10."pos"()
+    rx265_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."ws"()
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
-.annotate 'line', 159
-  # rx rxquantr268 ** 0..*
-    set_addr $I272, rxquantr268_done
-    rx261_cur."!mark_push"(0, rx261_pos, $I272)
-  rxquantr268_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."ws"()
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."ws"()
+    unless $P10, rx265_fail
+    rx265_pos = $P10."pos"()
+.annotate 'line', 160
+  # rx rxquantr272 ** 0..*
+    set_addr $I276, rxquantr272_done
+    rx265_cur."!mark_push"(0, rx265_pos, $I276)
+  rxquantr272_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."ws"()
+    unless $P10, rx265_fail
+    rx265_pos = $P10."pos"()
   # rx literal  "elsif"
-    add $I11, rx261_pos, 5
-    gt $I11, rx261_eos, rx261_fail
-    sub $I11, rx261_pos, rx261_off
-    substr $S10, rx261_tgt, $I11, 5
-    ne $S10, "elsif", rx261_fail
-    add rx261_pos, 5
+    add $I11, rx265_pos, 5
+    gt $I11, rx265_eos, rx265_fail
+    sub $I11, rx265_pos, rx265_off
+    substr $S10, rx265_tgt, $I11, 5
+    ne $S10, "elsif", rx265_fail
+    add rx265_pos, 5
   # rx charclass s
-    ge rx261_pos, rx261_eos, rx261_fail
-    sub $I10, rx261_pos, rx261_off
-    is_cclass $I11, 32, rx261_tgt, $I10
-    unless $I11, rx261_fail
-    inc rx261_pos
-  # rx subrule "ws" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."ws"()
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
+    ge rx265_pos, rx265_eos, rx265_fail
+    sub $I10, rx265_pos, rx265_off
+    is_cclass $I11, 32, rx265_tgt, $I10
+    unless $I11, rx265_fail
+    inc rx265_pos
+  # rx subrule "ws" subtype=method negate=
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."ws"()
+    unless $P10, rx265_fail
+    rx265_pos = $P10."pos"()
   # rx subrule "xblock" subtype=capture negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."xblock"()
-    unless $P10, rx261_fail
-    rx261_cur."!mark_push"(0, -1, 0, $P10)
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."xblock"()
+    unless $P10, rx265_fail
+    rx265_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx261_pos = $P10."pos"()
+    rx265_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."ws"()
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
-    (rx261_rep) = rx261_cur."!mark_commit"($I272)
-    rx261_cur."!mark_push"(rx261_rep, rx261_pos, $I272)
-    goto rxquantr268_loop
-  rxquantr268_done:
-  # rx subrule "ws" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."ws"()
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
-.annotate 'line', 160
-  # rx rxquantr274 ** 0..1
-    set_addr $I278, rxquantr274_done
-    rx261_cur."!mark_push"(0, rx261_pos, $I278)
-  rxquantr274_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."ws"()
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."ws"()
+    unless $P10, rx265_fail
+    rx265_pos = $P10."pos"()
+    (rx265_rep) = rx265_cur."!mark_commit"($I276)
+    rx265_cur."!mark_push"(rx265_rep, rx265_pos, $I276)
+    goto rxquantr272_loop
+  rxquantr272_done:
+  # rx subrule "ws" subtype=method negate=
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."ws"()
+    unless $P10, rx265_fail
+    rx265_pos = $P10."pos"()
+.annotate 'line', 161
+  # rx rxquantr278 ** 0..1
+    set_addr $I282, rxquantr278_done
+    rx265_cur."!mark_push"(0, rx265_pos, $I282)
+  rxquantr278_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."ws"()
+    unless $P10, rx265_fail
+    rx265_pos = $P10."pos"()
   # rx literal  "else"
-    add $I11, rx261_pos, 4
-    gt $I11, rx261_eos, rx261_fail
-    sub $I11, rx261_pos, rx261_off
-    substr $S10, rx261_tgt, $I11, 4
-    ne $S10, "else", rx261_fail
-    add rx261_pos, 4
+    add $I11, rx265_pos, 4
+    gt $I11, rx265_eos, rx265_fail
+    sub $I11, rx265_pos, rx265_off
+    substr $S10, rx265_tgt, $I11, 4
+    ne $S10, "else", rx265_fail
+    add rx265_pos, 4
   # rx charclass s
-    ge rx261_pos, rx261_eos, rx261_fail
-    sub $I10, rx261_pos, rx261_off
-    is_cclass $I11, 32, rx261_tgt, $I10
-    unless $I11, rx261_fail
-    inc rx261_pos
-  # rx subrule "ws" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."ws"()
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
+    ge rx265_pos, rx265_eos, rx265_fail
+    sub $I10, rx265_pos, rx265_off
+    is_cclass $I11, 32, rx265_tgt, $I10
+    unless $I11, rx265_fail
+    inc rx265_pos
+  # rx subrule "ws" subtype=method negate=
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."ws"()
+    unless $P10, rx265_fail
+    rx265_pos = $P10."pos"()
   # rx subrule "pblock" subtype=capture negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."pblock"()
-    unless $P10, rx261_fail
-    rx261_cur."!mark_push"(0, -1, 0, $P10)
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."pblock"()
+    unless $P10, rx265_fail
+    rx265_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("else")
-    rx261_pos = $P10."pos"()
+    rx265_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."ws"()
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
-    (rx261_rep) = rx261_cur."!mark_commit"($I278)
-  rxquantr274_done:
-  # rx subrule "ws" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."ws"()
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
-.annotate 'line', 156
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."ws"()
+    unless $P10, rx265_fail
+    rx265_pos = $P10."pos"()
+    (rx265_rep) = rx265_cur."!mark_commit"($I282)
+  rxquantr278_done:
+  # rx subrule "ws" subtype=method negate=
+    rx265_cur."!cursor_pos"(rx265_pos)
+    $P10 = rx265_cur."ws"()
+    unless $P10, rx265_fail
+    rx265_pos = $P10."pos"()
+.annotate 'line', 157
   # rx pass
-    rx261_cur."!cursor_pass"(rx261_pos, "statement_control:sym<if>")
-    rx261_cur."!cursor_debug"("PASS  ", "statement_control:sym<if>", " at pos=", rx261_pos)
-    .return (rx261_cur)
-  rx261_fail:
+    rx265_cur."!cursor_pass"(rx265_pos, "statement_control:sym<if>")
+    rx265_cur."!cursor_debug"("PASS  ", "statement_control:sym<if>", " at pos=", rx265_pos)
+    .return (rx265_cur)
+  rx265_fail:
 .annotate 'line', 4
-    (rx261_rep, rx261_pos, $I10, $P10) = rx261_cur."!mark_fail"(0)
-    lt rx261_pos, -1, rx261_done
-    eq rx261_pos, -1, rx261_fail
+    (rx265_rep, rx265_pos, $I10, $P10) = rx265_cur."!mark_fail"(0)
+    lt rx265_pos, -1, rx265_done
+    eq rx265_pos, -1, rx265_fail
     jump $I10
-  rx261_done:
-    rx261_cur."!cursor_fail"()
-    rx261_cur."!cursor_debug"("FAIL  ", "statement_control:sym<if>")
-    .return (rx261_cur)
+  rx265_done:
+    rx265_cur."!cursor_fail"()
+    rx265_cur."!cursor_debug"("FAIL  ", "statement_control:sym<if>")
+    .return (rx265_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1274853038.58734") :method
+.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1275811487.95429") :method
 .annotate 'line', 4
-    new $P263, "ResizablePMCArray"
-    push $P263, "if"
-    .return ($P263)
+    new $P267, "ResizablePMCArray"
+    push $P267, "if"
+    .return ($P267)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>"  :subid("64_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement_control:sym<unless>"  :subid("64_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .const 'Sub' $P291 = "66_1274853038.58734" 
-    capture_lex $P291
-    .local string rx281_tgt
-    .local int rx281_pos
-    .local int rx281_off
-    .local int rx281_eos
-    .local int rx281_rep
-    .local pmc rx281_cur
-    (rx281_cur, rx281_pos, rx281_tgt) = self."!cursor_start"()
-    rx281_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
-    .lex unicode:"$\x{a2}", rx281_cur
-    .local pmc match
-    .lex "$/", match
-    length rx281_eos, rx281_tgt
-    set rx281_off, 0
-    lt rx281_pos, 2, rx281_start
-    sub rx281_off, rx281_pos, 1
-    substr rx281_tgt, rx281_tgt, rx281_off
-  rx281_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan284_done
-    goto rxscan284_scan
-  rxscan284_loop:
-    ($P10) = rx281_cur."from"()
-    inc $P10
-    set rx281_pos, $P10
-    ge rx281_pos, rx281_eos, rxscan284_done
-  rxscan284_scan:
-    set_addr $I10, rxscan284_loop
-    rx281_cur."!mark_push"(0, rx281_pos, $I10)
-  rxscan284_done:
-.annotate 'line', 164
+    .const 'Sub' $P295 = "66_1275811487.95429" 
+    capture_lex $P295
+    .local string rx285_tgt
+    .local int rx285_pos
+    .local int rx285_off
+    .local int rx285_eos
+    .local int rx285_rep
+    .local pmc rx285_cur
+    (rx285_cur, rx285_pos, rx285_tgt) = self."!cursor_start"()
+    rx285_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
+    .lex unicode:"$\x{a2}", rx285_cur
+    .local pmc match
+    .lex "$/", match
+    length rx285_eos, rx285_tgt
+    gt rx285_pos, rx285_eos, rx285_done
+    set rx285_off, 0
+    lt rx285_pos, 2, rx285_start
+    sub rx285_off, rx285_pos, 1
+    substr rx285_tgt, rx285_tgt, rx285_off
+  rx285_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan288_done
+    goto rxscan288_scan
+  rxscan288_loop:
+    ($P10) = rx285_cur."from"()
+    inc $P10
+    set rx285_pos, $P10
+    ge rx285_pos, rx285_eos, rxscan288_done
+  rxscan288_scan:
+    set_addr $I10, rxscan288_loop
+    rx285_cur."!mark_push"(0, rx285_pos, $I10)
+  rxscan288_done:
+.annotate 'line', 165
   # rx subcapture "sym"
-    set_addr $I10, rxcap_285_fail
-    rx281_cur."!mark_push"(0, rx281_pos, $I10)
+    set_addr $I10, rxcap_289_fail
+    rx285_cur."!mark_push"(0, rx285_pos, $I10)
   # rx literal  "unless"
-    add $I11, rx281_pos, 6
-    gt $I11, rx281_eos, rx281_fail
-    sub $I11, rx281_pos, rx281_off
-    substr $S10, rx281_tgt, $I11, 6
-    ne $S10, "unless", rx281_fail
-    add rx281_pos, 6
-    set_addr $I10, rxcap_285_fail
-    ($I12, $I11) = rx281_cur."!mark_peek"($I10)
-    rx281_cur."!cursor_pos"($I11)
-    ($P10) = rx281_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx281_pos, "")
-    rx281_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx285_pos, 6
+    gt $I11, rx285_eos, rx285_fail
+    sub $I11, rx285_pos, rx285_off
+    substr $S10, rx285_tgt, $I11, 6
+    ne $S10, "unless", rx285_fail
+    add rx285_pos, 6
+    set_addr $I10, rxcap_289_fail
+    ($I12, $I11) = rx285_cur."!mark_peek"($I10)
+    rx285_cur."!cursor_pos"($I11)
+    ($P10) = rx285_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx285_pos, "")
+    rx285_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_285_done
-  rxcap_285_fail:
-    goto rx281_fail
-  rxcap_285_done:
+    goto rxcap_289_done
+  rxcap_289_fail:
+    goto rx285_fail
+  rxcap_289_done:
   # rx charclass s
-    ge rx281_pos, rx281_eos, rx281_fail
-    sub $I10, rx281_pos, rx281_off
-    is_cclass $I11, 32, rx281_tgt, $I10
-    unless $I11, rx281_fail
-    inc rx281_pos
-  # rx subrule "ws" subtype=method negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."ws"()
-    unless $P10, rx281_fail
-    rx281_pos = $P10."pos"()
-.annotate 'line', 165
+    ge rx285_pos, rx285_eos, rx285_fail
+    sub $I10, rx285_pos, rx285_off
+    is_cclass $I11, 32, rx285_tgt, $I10
+    unless $I11, rx285_fail
+    inc rx285_pos
+  # rx subrule "ws" subtype=method negate=
+    rx285_cur."!cursor_pos"(rx285_pos)
+    $P10 = rx285_cur."ws"()
+    unless $P10, rx285_fail
+    rx285_pos = $P10."pos"()
+.annotate 'line', 166
   # rx subrule "xblock" subtype=capture negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."xblock"()
-    unless $P10, rx281_fail
-    rx281_cur."!mark_push"(0, -1, 0, $P10)
+    rx285_cur."!cursor_pos"(rx285_pos)
+    $P10 = rx285_cur."xblock"()
+    unless $P10, rx285_fail
+    rx285_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx281_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."ws"()
-    unless $P10, rx281_fail
-    rx281_pos = $P10."pos"()
-  alt288_0:
-.annotate 'line', 166
-    set_addr $I10, alt288_1
-    rx281_cur."!mark_push"(0, rx281_pos, $I10)
+    rx285_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."ws"()
-    unless $P10, rx281_fail
-    rx281_pos = $P10."pos"()
+    rx285_cur."!cursor_pos"(rx285_pos)
+    $P10 = rx285_cur."ws"()
+    unless $P10, rx285_fail
+    rx285_pos = $P10."pos"()
+  alt292_0:
+.annotate 'line', 167
+    set_addr $I10, alt292_1
+    rx285_cur."!mark_push"(0, rx285_pos, $I10)
+  # rx subrule "ws" subtype=method negate=
+    rx285_cur."!cursor_pos"(rx285_pos)
+    $P10 = rx285_cur."ws"()
+    unless $P10, rx285_fail
+    rx285_pos = $P10."pos"()
   # rx subrule "before" subtype=zerowidth negate=1
-    rx281_cur."!cursor_pos"(rx281_pos)
-    .const 'Sub' $P291 = "66_1274853038.58734" 
-    capture_lex $P291
-    $P10 = rx281_cur."before"($P291)
-    if $P10, rx281_fail
-  # rx subrule "ws" subtype=method negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."ws"()
-    unless $P10, rx281_fail
-    rx281_pos = $P10."pos"()
-    goto alt288_end
-  alt288_1:
-  # rx subrule "ws" subtype=method negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."ws"()
-    unless $P10, rx281_fail
-    rx281_pos = $P10."pos"()
+    rx285_cur."!cursor_pos"(rx285_pos)
+    .const 'Sub' $P295 = "66_1275811487.95429" 
+    capture_lex $P295
+    $P10 = rx285_cur."before"($P295)
+    if $P10, rx285_fail
+  # rx subrule "ws" subtype=method negate=
+    rx285_cur."!cursor_pos"(rx285_pos)
+    $P10 = rx285_cur."ws"()
+    unless $P10, rx285_fail
+    rx285_pos = $P10."pos"()
+    goto alt292_end
+  alt292_1:
+  # rx subrule "ws" subtype=method negate=
+    rx285_cur."!cursor_pos"(rx285_pos)
+    $P10 = rx285_cur."ws"()
+    unless $P10, rx285_fail
+    rx285_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
-    unless $P10, rx281_fail
-    rx281_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."ws"()
-    unless $P10, rx281_fail
-    rx281_pos = $P10."pos"()
-  alt288_end:
-  # rx subrule "ws" subtype=method negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."ws"()
-    unless $P10, rx281_fail
-    rx281_pos = $P10."pos"()
-.annotate 'line', 163
+    rx285_cur."!cursor_pos"(rx285_pos)
+    $P10 = rx285_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
+    unless $P10, rx285_fail
+    rx285_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx285_cur."!cursor_pos"(rx285_pos)
+    $P10 = rx285_cur."ws"()
+    unless $P10, rx285_fail
+    rx285_pos = $P10."pos"()
+  alt292_end:
+  # rx subrule "ws" subtype=method negate=
+    rx285_cur."!cursor_pos"(rx285_pos)
+    $P10 = rx285_cur."ws"()
+    unless $P10, rx285_fail
+    rx285_pos = $P10."pos"()
+.annotate 'line', 164
   # rx pass
-    rx281_cur."!cursor_pass"(rx281_pos, "statement_control:sym<unless>")
-    rx281_cur."!cursor_debug"("PASS  ", "statement_control:sym<unless>", " at pos=", rx281_pos)
-    .return (rx281_cur)
-  rx281_fail:
+    rx285_cur."!cursor_pass"(rx285_pos, "statement_control:sym<unless>")
+    rx285_cur."!cursor_debug"("PASS  ", "statement_control:sym<unless>", " at pos=", rx285_pos)
+    .return (rx285_cur)
+  rx285_fail:
 .annotate 'line', 4
-    (rx281_rep, rx281_pos, $I10, $P10) = rx281_cur."!mark_fail"(0)
-    lt rx281_pos, -1, rx281_done
-    eq rx281_pos, -1, rx281_fail
+    (rx285_rep, rx285_pos, $I10, $P10) = rx285_cur."!mark_fail"(0)
+    lt rx285_pos, -1, rx285_done
+    eq rx285_pos, -1, rx285_fail
     jump $I10
-  rx281_done:
-    rx281_cur."!cursor_fail"()
-    rx281_cur."!cursor_debug"("FAIL  ", "statement_control:sym<unless>")
-    .return (rx281_cur)
+  rx285_done:
+    rx285_cur."!cursor_fail"()
+    rx285_cur."!cursor_debug"("FAIL  ", "statement_control:sym<unless>")
+    .return (rx285_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1274853038.58734") :method
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1275811487.95429") :method
 .annotate 'line', 4
-    new $P283, "ResizablePMCArray"
-    push $P283, "unless"
-    .return ($P283)
+    new $P287, "ResizablePMCArray"
+    push $P287, "unless"
+    .return ($P287)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block290"  :anon :subid("66_1274853038.58734") :method :outer("64_1274853038.58734")
-.annotate 'line', 166
-    .local string rx292_tgt
-    .local int rx292_pos
-    .local int rx292_off
-    .local int rx292_eos
-    .local int rx292_rep
-    .local pmc rx292_cur
-    (rx292_cur, rx292_pos, rx292_tgt) = self."!cursor_start"()
-    rx292_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx292_cur
-    .local pmc match
-    .lex "$/", match
-    length rx292_eos, rx292_tgt
-    set rx292_off, 0
-    lt rx292_pos, 2, rx292_start
-    sub rx292_off, rx292_pos, 1
-    substr rx292_tgt, rx292_tgt, rx292_off
-  rx292_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan293_done
-    goto rxscan293_scan
-  rxscan293_loop:
-    ($P10) = rx292_cur."from"()
-    inc $P10
-    set rx292_pos, $P10
-    ge rx292_pos, rx292_eos, rxscan293_done
-  rxscan293_scan:
-    set_addr $I10, rxscan293_loop
-    rx292_cur."!mark_push"(0, rx292_pos, $I10)
-  rxscan293_done:
+.sub "_block294"  :anon :subid("66_1275811487.95429") :method :outer("64_1275811487.95429")
+.annotate 'line', 167
+    .local string rx296_tgt
+    .local int rx296_pos
+    .local int rx296_off
+    .local int rx296_eos
+    .local int rx296_rep
+    .local pmc rx296_cur
+    (rx296_cur, rx296_pos, rx296_tgt) = self."!cursor_start"()
+    rx296_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx296_cur
+    .local pmc match
+    .lex "$/", match
+    length rx296_eos, rx296_tgt
+    gt rx296_pos, rx296_eos, rx296_done
+    set rx296_off, 0
+    lt rx296_pos, 2, rx296_start
+    sub rx296_off, rx296_pos, 1
+    substr rx296_tgt, rx296_tgt, rx296_off
+  rx296_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan297_done
+    goto rxscan297_scan
+  rxscan297_loop:
+    ($P10) = rx296_cur."from"()
+    inc $P10
+    set rx296_pos, $P10
+    ge rx296_pos, rx296_eos, rxscan297_done
+  rxscan297_scan:
+    set_addr $I10, rxscan297_loop
+    rx296_cur."!mark_push"(0, rx296_pos, $I10)
+  rxscan297_done:
   # rx literal  "else"
-    add $I11, rx292_pos, 4
-    gt $I11, rx292_eos, rx292_fail
-    sub $I11, rx292_pos, rx292_off
-    substr $S10, rx292_tgt, $I11, 4
-    ne $S10, "else", rx292_fail
-    add rx292_pos, 4
-  # rx pass
-    rx292_cur."!cursor_pass"(rx292_pos, "")
-    rx292_cur."!cursor_debug"("PASS  ", "", " at pos=", rx292_pos)
-    .return (rx292_cur)
-  rx292_fail:
-    (rx292_rep, rx292_pos, $I10, $P10) = rx292_cur."!mark_fail"(0)
-    lt rx292_pos, -1, rx292_done
-    eq rx292_pos, -1, rx292_fail
-    jump $I10
-  rx292_done:
-    rx292_cur."!cursor_fail"()
-    rx292_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx292_cur)
+    add $I11, rx296_pos, 4
+    gt $I11, rx296_eos, rx296_fail
+    sub $I11, rx296_pos, rx296_off
+    substr $S10, rx296_tgt, $I11, 4
+    ne $S10, "else", rx296_fail
+    add rx296_pos, 4
+  # rx pass
+    rx296_cur."!cursor_pass"(rx296_pos, "")
+    rx296_cur."!cursor_debug"("PASS  ", "", " at pos=", rx296_pos)
+    .return (rx296_cur)
+  rx296_fail:
+    (rx296_rep, rx296_pos, $I10, $P10) = rx296_cur."!mark_fail"(0)
+    lt rx296_pos, -1, rx296_done
+    eq rx296_pos, -1, rx296_fail
+    jump $I10
+  rx296_done:
+    rx296_cur."!cursor_fail"()
+    rx296_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx296_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("67_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 4
-    .local string rx299_tgt
-    .local int rx299_pos
-    .local int rx299_off
-    .local int rx299_eos
-    .local int rx299_rep
-    .local pmc rx299_cur
-    (rx299_cur, rx299_pos, rx299_tgt) = self."!cursor_start"()
-    rx299_cur."!cursor_debug"("START ", "statement_control:sym<while>")
-    .lex unicode:"$\x{a2}", rx299_cur
-    .local pmc match
-    .lex "$/", match
-    length rx299_eos, rx299_tgt
-    set rx299_off, 0
-    lt rx299_pos, 2, rx299_start
-    sub rx299_off, rx299_pos, 1
-    substr rx299_tgt, rx299_tgt, rx299_off
-  rx299_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan302_done
-    goto rxscan302_scan
-  rxscan302_loop:
-    ($P10) = rx299_cur."from"()
-    inc $P10
-    set rx299_pos, $P10
-    ge rx299_pos, rx299_eos, rxscan302_done
-  rxscan302_scan:
-    set_addr $I10, rxscan302_loop
-    rx299_cur."!mark_push"(0, rx299_pos, $I10)
-  rxscan302_done:
-.annotate 'line', 170
+.sub "statement_control:sym<while>"  :subid("67_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx303_tgt
+    .local int rx303_pos
+    .local int rx303_off
+    .local int rx303_eos
+    .local int rx303_rep
+    .local pmc rx303_cur
+    (rx303_cur, rx303_pos, rx303_tgt) = self."!cursor_start"()
+    rx303_cur."!cursor_debug"("START ", "statement_control:sym<while>")
+    .lex unicode:"$\x{a2}", rx303_cur
+    .local pmc match
+    .lex "$/", match
+    length rx303_eos, rx303_tgt
+    gt rx303_pos, rx303_eos, rx303_done
+    set rx303_off, 0
+    lt rx303_pos, 2, rx303_start
+    sub rx303_off, rx303_pos, 1
+    substr rx303_tgt, rx303_tgt, rx303_off
+  rx303_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan306_done
+    goto rxscan306_scan
+  rxscan306_loop:
+    ($P10) = rx303_cur."from"()
+    inc $P10
+    set rx303_pos, $P10
+    ge rx303_pos, rx303_eos, rxscan306_done
+  rxscan306_scan:
+    set_addr $I10, rxscan306_loop
+    rx303_cur."!mark_push"(0, rx303_pos, $I10)
+  rxscan306_done:
+.annotate 'line', 171
   # rx subcapture "sym"
-    set_addr $I10, rxcap_304_fail
-    rx299_cur."!mark_push"(0, rx299_pos, $I10)
-  alt303_0:
-    set_addr $I10, alt303_1
-    rx299_cur."!mark_push"(0, rx299_pos, $I10)
+    set_addr $I10, rxcap_308_fail
+    rx303_cur."!mark_push"(0, rx303_pos, $I10)
+  alt307_0:
+    set_addr $I10, alt307_1
+    rx303_cur."!mark_push"(0, rx303_pos, $I10)
   # rx literal  "while"
-    add $I11, rx299_pos, 5
-    gt $I11, rx299_eos, rx299_fail
-    sub $I11, rx299_pos, rx299_off
-    substr $S10, rx299_tgt, $I11, 5
-    ne $S10, "while", rx299_fail
-    add rx299_pos, 5
-    goto alt303_end
-  alt303_1:
+    add $I11, rx303_pos, 5
+    gt $I11, rx303_eos, rx303_fail
+    sub $I11, rx303_pos, rx303_off
+    substr $S10, rx303_tgt, $I11, 5
+    ne $S10, "while", rx303_fail
+    add rx303_pos, 5
+    goto alt307_end
+  alt307_1:
   # rx literal  "until"
-    add $I11, rx299_pos, 5
-    gt $I11, rx299_eos, rx299_fail
-    sub $I11, rx299_pos, rx299_off
-    substr $S10, rx299_tgt, $I11, 5
-    ne $S10, "until", rx299_fail
-    add rx299_pos, 5
-  alt303_end:
-    set_addr $I10, rxcap_304_fail
-    ($I12, $I11) = rx299_cur."!mark_peek"($I10)
-    rx299_cur."!cursor_pos"($I11)
-    ($P10) = rx299_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx299_pos, "")
-    rx299_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx303_pos, 5
+    gt $I11, rx303_eos, rx303_fail
+    sub $I11, rx303_pos, rx303_off
+    substr $S10, rx303_tgt, $I11, 5
+    ne $S10, "until", rx303_fail
+    add rx303_pos, 5
+  alt307_end:
+    set_addr $I10, rxcap_308_fail
+    ($I12, $I11) = rx303_cur."!mark_peek"($I10)
+    rx303_cur."!cursor_pos"($I11)
+    ($P10) = rx303_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx303_pos, "")
+    rx303_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_304_done
-  rxcap_304_fail:
-    goto rx299_fail
-  rxcap_304_done:
+    goto rxcap_308_done
+  rxcap_308_fail:
+    goto rx303_fail
+  rxcap_308_done:
   # rx charclass s
-    ge rx299_pos, rx299_eos, rx299_fail
-    sub $I10, rx299_pos, rx299_off
-    is_cclass $I11, 32, rx299_tgt, $I10
-    unless $I11, rx299_fail
-    inc rx299_pos
-  # rx subrule "ws" subtype=method negate=
-    rx299_cur."!cursor_pos"(rx299_pos)
-    $P10 = rx299_cur."ws"()
-    unless $P10, rx299_fail
-    rx299_pos = $P10."pos"()
-.annotate 'line', 171
+    ge rx303_pos, rx303_eos, rx303_fail
+    sub $I10, rx303_pos, rx303_off
+    is_cclass $I11, 32, rx303_tgt, $I10
+    unless $I11, rx303_fail
+    inc rx303_pos
+  # rx subrule "ws" subtype=method negate=
+    rx303_cur."!cursor_pos"(rx303_pos)
+    $P10 = rx303_cur."ws"()
+    unless $P10, rx303_fail
+    rx303_pos = $P10."pos"()
+.annotate 'line', 172
   # rx subrule "xblock" subtype=capture negate=
-    rx299_cur."!cursor_pos"(rx299_pos)
-    $P10 = rx299_cur."xblock"()
-    unless $P10, rx299_fail
-    rx299_cur."!mark_push"(0, -1, 0, $P10)
+    rx303_cur."!cursor_pos"(rx303_pos)
+    $P10 = rx303_cur."xblock"()
+    unless $P10, rx303_fail
+    rx303_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx299_pos = $P10."pos"()
+    rx303_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx299_cur."!cursor_pos"(rx299_pos)
-    $P10 = rx299_cur."ws"()
-    unless $P10, rx299_fail
-    rx299_pos = $P10."pos"()
-.annotate 'line', 169
+    rx303_cur."!cursor_pos"(rx303_pos)
+    $P10 = rx303_cur."ws"()
+    unless $P10, rx303_fail
+    rx303_pos = $P10."pos"()
+.annotate 'line', 170
   # rx pass
-    rx299_cur."!cursor_pass"(rx299_pos, "statement_control:sym<while>")
-    rx299_cur."!cursor_debug"("PASS  ", "statement_control:sym<while>", " at pos=", rx299_pos)
-    .return (rx299_cur)
-  rx299_fail:
+    rx303_cur."!cursor_pass"(rx303_pos, "statement_control:sym<while>")
+    rx303_cur."!cursor_debug"("PASS  ", "statement_control:sym<while>", " at pos=", rx303_pos)
+    .return (rx303_cur)
+  rx303_fail:
 .annotate 'line', 4
-    (rx299_rep, rx299_pos, $I10, $P10) = rx299_cur."!mark_fail"(0)
-    lt rx299_pos, -1, rx299_done
-    eq rx299_pos, -1, rx299_fail
+    (rx303_rep, rx303_pos, $I10, $P10) = rx303_cur."!mark_fail"(0)
+    lt rx303_pos, -1, rx303_done
+    eq rx303_pos, -1, rx303_fail
     jump $I10
-  rx299_done:
-    rx299_cur."!cursor_fail"()
-    rx299_cur."!cursor_debug"("FAIL  ", "statement_control:sym<while>")
-    .return (rx299_cur)
+  rx303_done:
+    rx303_cur."!cursor_fail"()
+    rx303_cur."!cursor_debug"("FAIL  ", "statement_control:sym<while>")
+    .return (rx303_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1274853038.58734") :method
+.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1275811487.95429") :method
 .annotate 'line', 4
-    new $P301, "ResizablePMCArray"
-    push $P301, "until"
-    push $P301, "while"
-    .return ($P301)
+    new $P305, "ResizablePMCArray"
+    push $P305, "until"
+    push $P305, "while"
+    .return ($P305)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>"  :subid("69_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement_control:sym<repeat>"  :subid("69_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx308_tgt
-    .local int rx308_pos
-    .local int rx308_off
-    .local int rx308_eos
-    .local int rx308_rep
-    .local pmc rx308_cur
-    (rx308_cur, rx308_pos, rx308_tgt) = self."!cursor_start"()
-    rx308_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
-    .lex unicode:"$\x{a2}", rx308_cur
+    .local string rx312_tgt
+    .local int rx312_pos
+    .local int rx312_off
+    .local int rx312_eos
+    .local int rx312_rep
+    .local pmc rx312_cur
+    (rx312_cur, rx312_pos, rx312_tgt) = self."!cursor_start"()
+    rx312_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
+    .lex unicode:"$\x{a2}", rx312_cur
     .local pmc match
     .lex "$/", match
-    length rx308_eos, rx308_tgt
-    set rx308_off, 0
-    lt rx308_pos, 2, rx308_start
-    sub rx308_off, rx308_pos, 1
-    substr rx308_tgt, rx308_tgt, rx308_off
-  rx308_start:
+    length rx312_eos, rx312_tgt
+    gt rx312_pos, rx312_eos, rx312_done
+    set rx312_off, 0
+    lt rx312_pos, 2, rx312_start
+    sub rx312_off, rx312_pos, 1
+    substr rx312_tgt, rx312_tgt, rx312_off
+  rx312_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan311_done
-    goto rxscan311_scan
-  rxscan311_loop:
-    ($P10) = rx308_cur."from"()
+    ne $I10, -1, rxscan315_done
+    goto rxscan315_scan
+  rxscan315_loop:
+    ($P10) = rx312_cur."from"()
     inc $P10
-    set rx308_pos, $P10
-    ge rx308_pos, rx308_eos, rxscan311_done
-  rxscan311_scan:
-    set_addr $I10, rxscan311_loop
-    rx308_cur."!mark_push"(0, rx308_pos, $I10)
-  rxscan311_done:
-.annotate 'line', 175
+    set rx312_pos, $P10
+    ge rx312_pos, rx312_eos, rxscan315_done
+  rxscan315_scan:
+    set_addr $I10, rxscan315_loop
+    rx312_cur."!mark_push"(0, rx312_pos, $I10)
+  rxscan315_done:
+.annotate 'line', 176
   # rx subcapture "sym"
-    set_addr $I10, rxcap_312_fail
-    rx308_cur."!mark_push"(0, rx308_pos, $I10)
+    set_addr $I10, rxcap_316_fail
+    rx312_cur."!mark_push"(0, rx312_pos, $I10)
   # rx literal  "repeat"
-    add $I11, rx308_pos, 6
-    gt $I11, rx308_eos, rx308_fail
-    sub $I11, rx308_pos, rx308_off
-    substr $S10, rx308_tgt, $I11, 6
-    ne $S10, "repeat", rx308_fail
-    add rx308_pos, 6
-    set_addr $I10, rxcap_312_fail
-    ($I12, $I11) = rx308_cur."!mark_peek"($I10)
-    rx308_cur."!cursor_pos"($I11)
-    ($P10) = rx308_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx308_pos, "")
-    rx308_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx312_pos, 6
+    gt $I11, rx312_eos, rx312_fail
+    sub $I11, rx312_pos, rx312_off
+    substr $S10, rx312_tgt, $I11, 6
+    ne $S10, "repeat", rx312_fail
+    add rx312_pos, 6
+    set_addr $I10, rxcap_316_fail
+    ($I12, $I11) = rx312_cur."!mark_peek"($I10)
+    rx312_cur."!cursor_pos"($I11)
+    ($P10) = rx312_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx312_pos, "")
+    rx312_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_312_done
-  rxcap_312_fail:
-    goto rx308_fail
-  rxcap_312_done:
+    goto rxcap_316_done
+  rxcap_316_fail:
+    goto rx312_fail
+  rxcap_316_done:
   # rx charclass s
-    ge rx308_pos, rx308_eos, rx308_fail
-    sub $I10, rx308_pos, rx308_off
-    is_cclass $I11, 32, rx308_tgt, $I10
-    unless $I11, rx308_fail
-    inc rx308_pos
-  # rx subrule "ws" subtype=method negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."ws"()
-    unless $P10, rx308_fail
-    rx308_pos = $P10."pos"()
-  alt314_0:
-.annotate 'line', 176
-    set_addr $I10, alt314_1
-    rx308_cur."!mark_push"(0, rx308_pos, $I10)
+    ge rx312_pos, rx312_eos, rx312_fail
+    sub $I10, rx312_pos, rx312_off
+    is_cclass $I11, 32, rx312_tgt, $I10
+    unless $I11, rx312_fail
+    inc rx312_pos
+  # rx subrule "ws" subtype=method negate=
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."ws"()
+    unless $P10, rx312_fail
+    rx312_pos = $P10."pos"()
+  alt318_0:
 .annotate 'line', 177
+    set_addr $I10, alt318_1
+    rx312_cur."!mark_push"(0, rx312_pos, $I10)
+.annotate 'line', 178
   # rx subrule "ws" subtype=method negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."ws"()
-    unless $P10, rx308_fail
-    rx308_pos = $P10."pos"()
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."ws"()
+    unless $P10, rx312_fail
+    rx312_pos = $P10."pos"()
   # rx subcapture "wu"
-    set_addr $I10, rxcap_317_fail
-    rx308_cur."!mark_push"(0, rx308_pos, $I10)
-  alt316_0:
-    set_addr $I10, alt316_1
-    rx308_cur."!mark_push"(0, rx308_pos, $I10)
+    set_addr $I10, rxcap_321_fail
+    rx312_cur."!mark_push"(0, rx312_pos, $I10)
+  alt320_0:
+    set_addr $I10, alt320_1
+    rx312_cur."!mark_push"(0, rx312_pos, $I10)
   # rx literal  "while"
-    add $I11, rx308_pos, 5
-    gt $I11, rx308_eos, rx308_fail
-    sub $I11, rx308_pos, rx308_off
-    substr $S10, rx308_tgt, $I11, 5
-    ne $S10, "while", rx308_fail
-    add rx308_pos, 5
-    goto alt316_end
-  alt316_1:
+    add $I11, rx312_pos, 5
+    gt $I11, rx312_eos, rx312_fail
+    sub $I11, rx312_pos, rx312_off
+    substr $S10, rx312_tgt, $I11, 5
+    ne $S10, "while", rx312_fail
+    add rx312_pos, 5
+    goto alt320_end
+  alt320_1:
   # rx literal  "until"
-    add $I11, rx308_pos, 5
-    gt $I11, rx308_eos, rx308_fail
-    sub $I11, rx308_pos, rx308_off
-    substr $S10, rx308_tgt, $I11, 5
-    ne $S10, "until", rx308_fail
-    add rx308_pos, 5
-  alt316_end:
-    set_addr $I10, rxcap_317_fail
-    ($I12, $I11) = rx308_cur."!mark_peek"($I10)
-    rx308_cur."!cursor_pos"($I11)
-    ($P10) = rx308_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx308_pos, "")
-    rx308_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx312_pos, 5
+    gt $I11, rx312_eos, rx312_fail
+    sub $I11, rx312_pos, rx312_off
+    substr $S10, rx312_tgt, $I11, 5
+    ne $S10, "until", rx312_fail
+    add rx312_pos, 5
+  alt320_end:
+    set_addr $I10, rxcap_321_fail
+    ($I12, $I11) = rx312_cur."!mark_peek"($I10)
+    rx312_cur."!cursor_pos"($I11)
+    ($P10) = rx312_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx312_pos, "")
+    rx312_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("wu")
-    goto rxcap_317_done
-  rxcap_317_fail:
-    goto rx308_fail
-  rxcap_317_done:
+    goto rxcap_321_done
+  rxcap_321_fail:
+    goto rx312_fail
+  rxcap_321_done:
   # rx charclass s
-    ge rx308_pos, rx308_eos, rx308_fail
-    sub $I10, rx308_pos, rx308_off
-    is_cclass $I11, 32, rx308_tgt, $I10
-    unless $I11, rx308_fail
-    inc rx308_pos
-  # rx subrule "ws" subtype=method negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."ws"()
-    unless $P10, rx308_fail
-    rx308_pos = $P10."pos"()
+    ge rx312_pos, rx312_eos, rx312_fail
+    sub $I10, rx312_pos, rx312_off
+    is_cclass $I11, 32, rx312_tgt, $I10
+    unless $I11, rx312_fail
+    inc rx312_pos
+  # rx subrule "ws" subtype=method negate=
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."ws"()
+    unless $P10, rx312_fail
+    rx312_pos = $P10."pos"()
   # rx subrule "xblock" subtype=capture negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."xblock"()
-    unless $P10, rx308_fail
-    rx308_cur."!mark_push"(0, -1, 0, $P10)
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."xblock"()
+    unless $P10, rx312_fail
+    rx312_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx308_pos = $P10."pos"()
+    rx312_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."ws"()
-    unless $P10, rx308_fail
-    rx308_pos = $P10."pos"()
-    goto alt314_end
-  alt314_1:
-.annotate 'line', 178
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."ws"()
+    unless $P10, rx312_fail
+    rx312_pos = $P10."pos"()
+    goto alt318_end
+  alt318_1:
+.annotate 'line', 179
   # rx subrule "ws" subtype=method negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."ws"()
-    unless $P10, rx308_fail
-    rx308_pos = $P10."pos"()
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."ws"()
+    unless $P10, rx312_fail
+    rx312_pos = $P10."pos"()
   # rx subrule "pblock" subtype=capture negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."pblock"()
-    unless $P10, rx308_fail
-    rx308_cur."!mark_push"(0, -1, 0, $P10)
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."pblock"()
+    unless $P10, rx312_fail
+    rx312_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx308_pos = $P10."pos"()
+    rx312_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."ws"()
-    unless $P10, rx308_fail
-    rx308_pos = $P10."pos"()
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."ws"()
+    unless $P10, rx312_fail
+    rx312_pos = $P10."pos"()
   # rx subcapture "wu"
-    set_addr $I10, rxcap_323_fail
-    rx308_cur."!mark_push"(0, rx308_pos, $I10)
-  alt322_0:
-    set_addr $I10, alt322_1
-    rx308_cur."!mark_push"(0, rx308_pos, $I10)
+    set_addr $I10, rxcap_327_fail
+    rx312_cur."!mark_push"(0, rx312_pos, $I10)
+  alt326_0:
+    set_addr $I10, alt326_1
+    rx312_cur."!mark_push"(0, rx312_pos, $I10)
   # rx literal  "while"
-    add $I11, rx308_pos, 5
-    gt $I11, rx308_eos, rx308_fail
-    sub $I11, rx308_pos, rx308_off
-    substr $S10, rx308_tgt, $I11, 5
-    ne $S10, "while", rx308_fail
-    add rx308_pos, 5
-    goto alt322_end
-  alt322_1:
+    add $I11, rx312_pos, 5
+    gt $I11, rx312_eos, rx312_fail
+    sub $I11, rx312_pos, rx312_off
+    substr $S10, rx312_tgt, $I11, 5
+    ne $S10, "while", rx312_fail
+    add rx312_pos, 5
+    goto alt326_end
+  alt326_1:
   # rx literal  "until"
-    add $I11, rx308_pos, 5
-    gt $I11, rx308_eos, rx308_fail
-    sub $I11, rx308_pos, rx308_off
-    substr $S10, rx308_tgt, $I11, 5
-    ne $S10, "until", rx308_fail
-    add rx308_pos, 5
-  alt322_end:
-    set_addr $I10, rxcap_323_fail
-    ($I12, $I11) = rx308_cur."!mark_peek"($I10)
-    rx308_cur."!cursor_pos"($I11)
-    ($P10) = rx308_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx308_pos, "")
-    rx308_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx312_pos, 5
+    gt $I11, rx312_eos, rx312_fail
+    sub $I11, rx312_pos, rx312_off
+    substr $S10, rx312_tgt, $I11, 5
+    ne $S10, "until", rx312_fail
+    add rx312_pos, 5
+  alt326_end:
+    set_addr $I10, rxcap_327_fail
+    ($I12, $I11) = rx312_cur."!mark_peek"($I10)
+    rx312_cur."!cursor_pos"($I11)
+    ($P10) = rx312_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx312_pos, "")
+    rx312_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("wu")
-    goto rxcap_323_done
-  rxcap_323_fail:
-    goto rx308_fail
-  rxcap_323_done:
+    goto rxcap_327_done
+  rxcap_327_fail:
+    goto rx312_fail
+  rxcap_327_done:
   # rx charclass s
-    ge rx308_pos, rx308_eos, rx308_fail
-    sub $I10, rx308_pos, rx308_off
-    is_cclass $I11, 32, rx308_tgt, $I10
-    unless $I11, rx308_fail
-    inc rx308_pos
-  # rx subrule "ws" subtype=method negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."ws"()
-    unless $P10, rx308_fail
-    rx308_pos = $P10."pos"()
+    ge rx312_pos, rx312_eos, rx312_fail
+    sub $I10, rx312_pos, rx312_off
+    is_cclass $I11, 32, rx312_tgt, $I10
+    unless $I11, rx312_fail
+    inc rx312_pos
+  # rx subrule "ws" subtype=method negate=
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."ws"()
+    unless $P10, rx312_fail
+    rx312_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."EXPR"()
-    unless $P10, rx308_fail
-    rx308_cur."!mark_push"(0, -1, 0, $P10)
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."EXPR"()
+    unless $P10, rx312_fail
+    rx312_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx308_pos = $P10."pos"()
+    rx312_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."ws"()
-    unless $P10, rx308_fail
-    rx308_pos = $P10."pos"()
-  alt314_end:
-.annotate 'line', 179
-  # rx subrule "ws" subtype=method negate=
-    rx308_cur."!cursor_pos"(rx308_pos)
-    $P10 = rx308_cur."ws"()
-    unless $P10, rx308_fail
-    rx308_pos = $P10."pos"()
-.annotate 'line', 174
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."ws"()
+    unless $P10, rx312_fail
+    rx312_pos = $P10."pos"()
+  alt318_end:
+.annotate 'line', 180
+  # rx subrule "ws" subtype=method negate=
+    rx312_cur."!cursor_pos"(rx312_pos)
+    $P10 = rx312_cur."ws"()
+    unless $P10, rx312_fail
+    rx312_pos = $P10."pos"()
+.annotate 'line', 175
   # rx pass
-    rx308_cur."!cursor_pass"(rx308_pos, "statement_control:sym<repeat>")
-    rx308_cur."!cursor_debug"("PASS  ", "statement_control:sym<repeat>", " at pos=", rx308_pos)
-    .return (rx308_cur)
-  rx308_fail:
+    rx312_cur."!cursor_pass"(rx312_pos, "statement_control:sym<repeat>")
+    rx312_cur."!cursor_debug"("PASS  ", "statement_control:sym<repeat>", " at pos=", rx312_pos)
+    .return (rx312_cur)
+  rx312_fail:
 .annotate 'line', 4
-    (rx308_rep, rx308_pos, $I10, $P10) = rx308_cur."!mark_fail"(0)
-    lt rx308_pos, -1, rx308_done
-    eq rx308_pos, -1, rx308_fail
+    (rx312_rep, rx312_pos, $I10, $P10) = rx312_cur."!mark_fail"(0)
+    lt rx312_pos, -1, rx312_done
+    eq rx312_pos, -1, rx312_fail
     jump $I10
-  rx308_done:
-    rx308_cur."!cursor_fail"()
-    rx308_cur."!cursor_debug"("FAIL  ", "statement_control:sym<repeat>")
-    .return (rx308_cur)
+  rx312_done:
+    rx312_cur."!cursor_fail"()
+    rx312_cur."!cursor_debug"("FAIL  ", "statement_control:sym<repeat>")
+    .return (rx312_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1274853038.58734") :method
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1275811487.95429") :method
 .annotate 'line', 4
-    new $P310, "ResizablePMCArray"
-    push $P310, "repeat"
-    .return ($P310)
+    new $P314, "ResizablePMCArray"
+    push $P314, "repeat"
+    .return ($P314)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>"  :subid("71_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement_control:sym<for>"  :subid("71_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx328_tgt
-    .local int rx328_pos
-    .local int rx328_off
-    .local int rx328_eos
-    .local int rx328_rep
-    .local pmc rx328_cur
-    (rx328_cur, rx328_pos, rx328_tgt) = self."!cursor_start"()
-    rx328_cur."!cursor_debug"("START ", "statement_control:sym<for>")
-    .lex unicode:"$\x{a2}", rx328_cur
+    .local string rx332_tgt
+    .local int rx332_pos
+    .local int rx332_off
+    .local int rx332_eos
+    .local int rx332_rep
+    .local pmc rx332_cur
+    (rx332_cur, rx332_pos, rx332_tgt) = self."!cursor_start"()
+    rx332_cur."!cursor_debug"("START ", "statement_control:sym<for>")
+    .lex unicode:"$\x{a2}", rx332_cur
     .local pmc match
     .lex "$/", match
-    length rx328_eos, rx328_tgt
-    set rx328_off, 0
-    lt rx328_pos, 2, rx328_start
-    sub rx328_off, rx328_pos, 1
-    substr rx328_tgt, rx328_tgt, rx328_off
-  rx328_start:
+    length rx332_eos, rx332_tgt
+    gt rx332_pos, rx332_eos, rx332_done
+    set rx332_off, 0
+    lt rx332_pos, 2, rx332_start
+    sub rx332_off, rx332_pos, 1
+    substr rx332_tgt, rx332_tgt, rx332_off
+  rx332_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan331_done
-    goto rxscan331_scan
-  rxscan331_loop:
-    ($P10) = rx328_cur."from"()
+    ne $I10, -1, rxscan335_done
+    goto rxscan335_scan
+  rxscan335_loop:
+    ($P10) = rx332_cur."from"()
     inc $P10
-    set rx328_pos, $P10
-    ge rx328_pos, rx328_eos, rxscan331_done
-  rxscan331_scan:
-    set_addr $I10, rxscan331_loop
-    rx328_cur."!mark_push"(0, rx328_pos, $I10)
-  rxscan331_done:
-.annotate 'line', 183
+    set rx332_pos, $P10
+    ge rx332_pos, rx332_eos, rxscan335_done
+  rxscan335_scan:
+    set_addr $I10, rxscan335_loop
+    rx332_cur."!mark_push"(0, rx332_pos, $I10)
+  rxscan335_done:
+.annotate 'line', 184
   # rx subcapture "sym"
-    set_addr $I10, rxcap_332_fail
-    rx328_cur."!mark_push"(0, rx328_pos, $I10)
+    set_addr $I10, rxcap_336_fail
+    rx332_cur."!mark_push"(0, rx332_pos, $I10)
   # rx literal  "for"
-    add $I11, rx328_pos, 3
-    gt $I11, rx328_eos, rx328_fail
-    sub $I11, rx328_pos, rx328_off
-    substr $S10, rx328_tgt, $I11, 3
-    ne $S10, "for", rx328_fail
-    add rx328_pos, 3
-    set_addr $I10, rxcap_332_fail
-    ($I12, $I11) = rx328_cur."!mark_peek"($I10)
-    rx328_cur."!cursor_pos"($I11)
-    ($P10) = rx328_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx328_pos, "")
-    rx328_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx332_pos, 3
+    gt $I11, rx332_eos, rx332_fail
+    sub $I11, rx332_pos, rx332_off
+    substr $S10, rx332_tgt, $I11, 3
+    ne $S10, "for", rx332_fail
+    add rx332_pos, 3
+    set_addr $I10, rxcap_336_fail
+    ($I12, $I11) = rx332_cur."!mark_peek"($I10)
+    rx332_cur."!cursor_pos"($I11)
+    ($P10) = rx332_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx332_pos, "")
+    rx332_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_332_done
-  rxcap_332_fail:
-    goto rx328_fail
-  rxcap_332_done:
+    goto rxcap_336_done
+  rxcap_336_fail:
+    goto rx332_fail
+  rxcap_336_done:
   # rx charclass s
-    ge rx328_pos, rx328_eos, rx328_fail
-    sub $I10, rx328_pos, rx328_off
-    is_cclass $I11, 32, rx328_tgt, $I10
-    unless $I11, rx328_fail
-    inc rx328_pos
-  # rx subrule "ws" subtype=method negate=
-    rx328_cur."!cursor_pos"(rx328_pos)
-    $P10 = rx328_cur."ws"()
-    unless $P10, rx328_fail
-    rx328_pos = $P10."pos"()
-.annotate 'line', 184
+    ge rx332_pos, rx332_eos, rx332_fail
+    sub $I10, rx332_pos, rx332_off
+    is_cclass $I11, 32, rx332_tgt, $I10
+    unless $I11, rx332_fail
+    inc rx332_pos
+  # rx subrule "ws" subtype=method negate=
+    rx332_cur."!cursor_pos"(rx332_pos)
+    $P10 = rx332_cur."ws"()
+    unless $P10, rx332_fail
+    rx332_pos = $P10."pos"()
+.annotate 'line', 185
   # rx subrule "xblock" subtype=capture negate=
-    rx328_cur."!cursor_pos"(rx328_pos)
-    $P10 = rx328_cur."xblock"()
-    unless $P10, rx328_fail
-    rx328_cur."!mark_push"(0, -1, 0, $P10)
+    rx332_cur."!cursor_pos"(rx332_pos)
+    $P10 = rx332_cur."xblock"()
+    unless $P10, rx332_fail
+    rx332_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx328_pos = $P10."pos"()
+    rx332_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx328_cur."!cursor_pos"(rx328_pos)
-    $P10 = rx328_cur."ws"()
-    unless $P10, rx328_fail
-    rx328_pos = $P10."pos"()
-.annotate 'line', 182
+    rx332_cur."!cursor_pos"(rx332_pos)
+    $P10 = rx332_cur."ws"()
+    unless $P10, rx332_fail
+    rx332_pos = $P10."pos"()
+.annotate 'line', 183
   # rx pass
-    rx328_cur."!cursor_pass"(rx328_pos, "statement_control:sym<for>")
-    rx328_cur."!cursor_debug"("PASS  ", "statement_control:sym<for>", " at pos=", rx328_pos)
-    .return (rx328_cur)
-  rx328_fail:
+    rx332_cur."!cursor_pass"(rx332_pos, "statement_control:sym<for>")
+    rx332_cur."!cursor_debug"("PASS  ", "statement_control:sym<for>", " at pos=", rx332_pos)
+    .return (rx332_cur)
+  rx332_fail:
 .annotate 'line', 4
-    (rx328_rep, rx328_pos, $I10, $P10) = rx328_cur."!mark_fail"(0)
-    lt rx328_pos, -1, rx328_done
-    eq rx328_pos, -1, rx328_fail
+    (rx332_rep, rx332_pos, $I10, $P10) = rx332_cur."!mark_fail"(0)
+    lt rx332_pos, -1, rx332_done
+    eq rx332_pos, -1, rx332_fail
     jump $I10
-  rx328_done:
-    rx328_cur."!cursor_fail"()
-    rx328_cur."!cursor_debug"("FAIL  ", "statement_control:sym<for>")
-    .return (rx328_cur)
+  rx332_done:
+    rx332_cur."!cursor_fail"()
+    rx332_cur."!cursor_debug"("FAIL  ", "statement_control:sym<for>")
+    .return (rx332_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1274853038.58734") :method
+.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1275811487.95429") :method
 .annotate 'line', 4
-    new $P330, "ResizablePMCArray"
-    push $P330, "for"
-    .return ($P330)
+    new $P334, "ResizablePMCArray"
+    push $P334, "for"
+    .return ($P334)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>"  :subid("73_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement_control:sym<CATCH>"  :subid("73_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx336_tgt
-    .local int rx336_pos
-    .local int rx336_off
-    .local int rx336_eos
-    .local int rx336_rep
-    .local pmc rx336_cur
-    (rx336_cur, rx336_pos, rx336_tgt) = self."!cursor_start"()
-    rx336_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
-    .lex unicode:"$\x{a2}", rx336_cur
+    .local string rx340_tgt
+    .local int rx340_pos
+    .local int rx340_off
+    .local int rx340_eos
+    .local int rx340_rep
+    .local pmc rx340_cur
+    (rx340_cur, rx340_pos, rx340_tgt) = self."!cursor_start"()
+    rx340_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
+    .lex unicode:"$\x{a2}", rx340_cur
     .local pmc match
     .lex "$/", match
-    length rx336_eos, rx336_tgt
-    set rx336_off, 0
-    lt rx336_pos, 2, rx336_start
-    sub rx336_off, rx336_pos, 1
-    substr rx336_tgt, rx336_tgt, rx336_off
-  rx336_start:
+    length rx340_eos, rx340_tgt
+    gt rx340_pos, rx340_eos, rx340_done
+    set rx340_off, 0
+    lt rx340_pos, 2, rx340_start
+    sub rx340_off, rx340_pos, 1
+    substr rx340_tgt, rx340_tgt, rx340_off
+  rx340_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan339_done
-    goto rxscan339_scan
-  rxscan339_loop:
-    ($P10) = rx336_cur."from"()
+    ne $I10, -1, rxscan343_done
+    goto rxscan343_scan
+  rxscan343_loop:
+    ($P10) = rx340_cur."from"()
     inc $P10
-    set rx336_pos, $P10
-    ge rx336_pos, rx336_eos, rxscan339_done
-  rxscan339_scan:
-    set_addr $I10, rxscan339_loop
-    rx336_cur."!mark_push"(0, rx336_pos, $I10)
-  rxscan339_done:
-.annotate 'line', 188
+    set rx340_pos, $P10
+    ge rx340_pos, rx340_eos, rxscan343_done
+  rxscan343_scan:
+    set_addr $I10, rxscan343_loop
+    rx340_cur."!mark_push"(0, rx340_pos, $I10)
+  rxscan343_done:
+.annotate 'line', 189
   # rx subcapture "sym"
-    set_addr $I10, rxcap_340_fail
-    rx336_cur."!mark_push"(0, rx336_pos, $I10)
+    set_addr $I10, rxcap_344_fail
+    rx340_cur."!mark_push"(0, rx340_pos, $I10)
   # rx literal  "CATCH"
-    add $I11, rx336_pos, 5
-    gt $I11, rx336_eos, rx336_fail
-    sub $I11, rx336_pos, rx336_off
-    substr $S10, rx336_tgt, $I11, 5
-    ne $S10, "CATCH", rx336_fail
-    add rx336_pos, 5
-    set_addr $I10, rxcap_340_fail
-    ($I12, $I11) = rx336_cur."!mark_peek"($I10)
-    rx336_cur."!cursor_pos"($I11)
-    ($P10) = rx336_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx336_pos, "")
-    rx336_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx340_pos, 5
+    gt $I11, rx340_eos, rx340_fail
+    sub $I11, rx340_pos, rx340_off
+    substr $S10, rx340_tgt, $I11, 5
+    ne $S10, "CATCH", rx340_fail
+    add rx340_pos, 5
+    set_addr $I10, rxcap_344_fail
+    ($I12, $I11) = rx340_cur."!mark_peek"($I10)
+    rx340_cur."!cursor_pos"($I11)
+    ($P10) = rx340_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx340_pos, "")
+    rx340_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_340_done
-  rxcap_340_fail:
-    goto rx336_fail
-  rxcap_340_done:
+    goto rxcap_344_done
+  rxcap_344_fail:
+    goto rx340_fail
+  rxcap_344_done:
   # rx charclass s
-    ge rx336_pos, rx336_eos, rx336_fail
-    sub $I10, rx336_pos, rx336_off
-    is_cclass $I11, 32, rx336_tgt, $I10
-    unless $I11, rx336_fail
-    inc rx336_pos
-  # rx subrule "ws" subtype=method negate=
-    rx336_cur."!cursor_pos"(rx336_pos)
-    $P10 = rx336_cur."ws"()
-    unless $P10, rx336_fail
-    rx336_pos = $P10."pos"()
-.annotate 'line', 189
+    ge rx340_pos, rx340_eos, rx340_fail
+    sub $I10, rx340_pos, rx340_off
+    is_cclass $I11, 32, rx340_tgt, $I10
+    unless $I11, rx340_fail
+    inc rx340_pos
+  # rx subrule "ws" subtype=method negate=
+    rx340_cur."!cursor_pos"(rx340_pos)
+    $P10 = rx340_cur."ws"()
+    unless $P10, rx340_fail
+    rx340_pos = $P10."pos"()
+.annotate 'line', 190
   # rx subrule "block" subtype=capture negate=
-    rx336_cur."!cursor_pos"(rx336_pos)
-    $P10 = rx336_cur."block"()
-    unless $P10, rx336_fail
-    rx336_cur."!mark_push"(0, -1, 0, $P10)
+    rx340_cur."!cursor_pos"(rx340_pos)
+    $P10 = rx340_cur."block"()
+    unless $P10, rx340_fail
+    rx340_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx336_pos = $P10."pos"()
+    rx340_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx336_cur."!cursor_pos"(rx336_pos)
-    $P10 = rx336_cur."ws"()
-    unless $P10, rx336_fail
-    rx336_pos = $P10."pos"()
-.annotate 'line', 187
+    rx340_cur."!cursor_pos"(rx340_pos)
+    $P10 = rx340_cur."ws"()
+    unless $P10, rx340_fail
+    rx340_pos = $P10."pos"()
+.annotate 'line', 188
   # rx pass
-    rx336_cur."!cursor_pass"(rx336_pos, "statement_control:sym<CATCH>")
-    rx336_cur."!cursor_debug"("PASS  ", "statement_control:sym<CATCH>", " at pos=", rx336_pos)
-    .return (rx336_cur)
-  rx336_fail:
+    rx340_cur."!cursor_pass"(rx340_pos, "statement_control:sym<CATCH>")
+    rx340_cur."!cursor_debug"("PASS  ", "statement_control:sym<CATCH>", " at pos=", rx340_pos)
+    .return (rx340_cur)
+  rx340_fail:
 .annotate 'line', 4
-    (rx336_rep, rx336_pos, $I10, $P10) = rx336_cur."!mark_fail"(0)
-    lt rx336_pos, -1, rx336_done
-    eq rx336_pos, -1, rx336_fail
+    (rx340_rep, rx340_pos, $I10, $P10) = rx340_cur."!mark_fail"(0)
+    lt rx340_pos, -1, rx340_done
+    eq rx340_pos, -1, rx340_fail
     jump $I10
-  rx336_done:
-    rx336_cur."!cursor_fail"()
-    rx336_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CATCH>")
-    .return (rx336_cur)
+  rx340_done:
+    rx340_cur."!cursor_fail"()
+    rx340_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CATCH>")
+    .return (rx340_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1274853038.58734") :method
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1275811487.95429") :method
 .annotate 'line', 4
-    new $P338, "ResizablePMCArray"
-    push $P338, "CATCH"
-    .return ($P338)
+    new $P342, "ResizablePMCArray"
+    push $P342, "CATCH"
+    .return ($P342)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>"  :subid("75_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement_control:sym<CONTROL>"  :subid("75_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx344_tgt
-    .local int rx344_pos
-    .local int rx344_off
-    .local int rx344_eos
-    .local int rx344_rep
-    .local pmc rx344_cur
-    (rx344_cur, rx344_pos, rx344_tgt) = self."!cursor_start"()
-    rx344_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
-    .lex unicode:"$\x{a2}", rx344_cur
+    .local string rx348_tgt
+    .local int rx348_pos
+    .local int rx348_off
+    .local int rx348_eos
+    .local int rx348_rep
+    .local pmc rx348_cur
+    (rx348_cur, rx348_pos, rx348_tgt) = self."!cursor_start"()
+    rx348_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
+    .lex unicode:"$\x{a2}", rx348_cur
     .local pmc match
     .lex "$/", match
-    length rx344_eos, rx344_tgt
-    set rx344_off, 0
-    lt rx344_pos, 2, rx344_start
-    sub rx344_off, rx344_pos, 1
-    substr rx344_tgt, rx344_tgt, rx344_off
-  rx344_start:
+    length rx348_eos, rx348_tgt
+    gt rx348_pos, rx348_eos, rx348_done
+    set rx348_off, 0
+    lt rx348_pos, 2, rx348_start
+    sub rx348_off, rx348_pos, 1
+    substr rx348_tgt, rx348_tgt, rx348_off
+  rx348_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan347_done
-    goto rxscan347_scan
-  rxscan347_loop:
-    ($P10) = rx344_cur."from"()
+    ne $I10, -1, rxscan351_done
+    goto rxscan351_scan
+  rxscan351_loop:
+    ($P10) = rx348_cur."from"()
     inc $P10
-    set rx344_pos, $P10
-    ge rx344_pos, rx344_eos, rxscan347_done
-  rxscan347_scan:
-    set_addr $I10, rxscan347_loop
-    rx344_cur."!mark_push"(0, rx344_pos, $I10)
-  rxscan347_done:
-.annotate 'line', 193
+    set rx348_pos, $P10
+    ge rx348_pos, rx348_eos, rxscan351_done
+  rxscan351_scan:
+    set_addr $I10, rxscan351_loop
+    rx348_cur."!mark_push"(0, rx348_pos, $I10)
+  rxscan351_done:
+.annotate 'line', 194
   # rx subcapture "sym"
-    set_addr $I10, rxcap_348_fail
-    rx344_cur."!mark_push"(0, rx344_pos, $I10)
+    set_addr $I10, rxcap_352_fail
+    rx348_cur."!mark_push"(0, rx348_pos, $I10)
   # rx literal  "CONTROL"
-    add $I11, rx344_pos, 7
-    gt $I11, rx344_eos, rx344_fail
-    sub $I11, rx344_pos, rx344_off
-    substr $S10, rx344_tgt, $I11, 7
-    ne $S10, "CONTROL", rx344_fail
-    add rx344_pos, 7
-    set_addr $I10, rxcap_348_fail
-    ($I12, $I11) = rx344_cur."!mark_peek"($I10)
-    rx344_cur."!cursor_pos"($I11)
-    ($P10) = rx344_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx344_pos, "")
-    rx344_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx348_pos, 7
+    gt $I11, rx348_eos, rx348_fail
+    sub $I11, rx348_pos, rx348_off
+    substr $S10, rx348_tgt, $I11, 7
+    ne $S10, "CONTROL", rx348_fail
+    add rx348_pos, 7
+    set_addr $I10, rxcap_352_fail
+    ($I12, $I11) = rx348_cur."!mark_peek"($I10)
+    rx348_cur."!cursor_pos"($I11)
+    ($P10) = rx348_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx348_pos, "")
+    rx348_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_348_done
-  rxcap_348_fail:
-    goto rx344_fail
-  rxcap_348_done:
+    goto rxcap_352_done
+  rxcap_352_fail:
+    goto rx348_fail
+  rxcap_352_done:
   # rx charclass s
-    ge rx344_pos, rx344_eos, rx344_fail
-    sub $I10, rx344_pos, rx344_off
-    is_cclass $I11, 32, rx344_tgt, $I10
-    unless $I11, rx344_fail
-    inc rx344_pos
-  # rx subrule "ws" subtype=method negate=
-    rx344_cur."!cursor_pos"(rx344_pos)
-    $P10 = rx344_cur."ws"()
-    unless $P10, rx344_fail
-    rx344_pos = $P10."pos"()
-.annotate 'line', 194
+    ge rx348_pos, rx348_eos, rx348_fail
+    sub $I10, rx348_pos, rx348_off
+    is_cclass $I11, 32, rx348_tgt, $I10
+    unless $I11, rx348_fail
+    inc rx348_pos
+  # rx subrule "ws" subtype=method negate=
+    rx348_cur."!cursor_pos"(rx348_pos)
+    $P10 = rx348_cur."ws"()
+    unless $P10, rx348_fail
+    rx348_pos = $P10."pos"()
+.annotate 'line', 195
   # rx subrule "block" subtype=capture negate=
-    rx344_cur."!cursor_pos"(rx344_pos)
-    $P10 = rx344_cur."block"()
-    unless $P10, rx344_fail
-    rx344_cur."!mark_push"(0, -1, 0, $P10)
+    rx348_cur."!cursor_pos"(rx348_pos)
+    $P10 = rx348_cur."block"()
+    unless $P10, rx348_fail
+    rx348_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx344_pos = $P10."pos"()
+    rx348_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx344_cur."!cursor_pos"(rx344_pos)
-    $P10 = rx344_cur."ws"()
-    unless $P10, rx344_fail
-    rx344_pos = $P10."pos"()
-.annotate 'line', 192
+    rx348_cur."!cursor_pos"(rx348_pos)
+    $P10 = rx348_cur."ws"()
+    unless $P10, rx348_fail
+    rx348_pos = $P10."pos"()
+.annotate 'line', 193
   # rx pass
-    rx344_cur."!cursor_pass"(rx344_pos, "statement_control:sym<CONTROL>")
-    rx344_cur."!cursor_debug"("PASS  ", "statement_control:sym<CONTROL>", " at pos=", rx344_pos)
-    .return (rx344_cur)
-  rx344_fail:
+    rx348_cur."!cursor_pass"(rx348_pos, "statement_control:sym<CONTROL>")
+    rx348_cur."!cursor_debug"("PASS  ", "statement_control:sym<CONTROL>", " at pos=", rx348_pos)
+    .return (rx348_cur)
+  rx348_fail:
 .annotate 'line', 4
-    (rx344_rep, rx344_pos, $I10, $P10) = rx344_cur."!mark_fail"(0)
-    lt rx344_pos, -1, rx344_done
-    eq rx344_pos, -1, rx344_fail
+    (rx348_rep, rx348_pos, $I10, $P10) = rx348_cur."!mark_fail"(0)
+    lt rx348_pos, -1, rx348_done
+    eq rx348_pos, -1, rx348_fail
     jump $I10
-  rx344_done:
-    rx344_cur."!cursor_fail"()
-    rx344_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CONTROL>")
-    .return (rx344_cur)
+  rx348_done:
+    rx348_cur."!cursor_fail"()
+    rx348_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CONTROL>")
+    .return (rx348_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1274853038.58734") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1275811487.95429") :method
 .annotate 'line', 4
-    new $P346, "ResizablePMCArray"
-    push $P346, "CONTROL"
-    .return ($P346)
+    new $P350, "ResizablePMCArray"
+    push $P350, "CONTROL"
+    .return ($P350)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("77_1274853038.58734") :method
-.annotate 'line', 197
-    $P352 = self."!protoregex"("statement_prefix")
-    .return ($P352)
+.sub "statement_prefix"  :subid("77_1275811487.95429") :method
+.annotate 'line', 198
+    $P356 = self."!protoregex"("statement_prefix")
+    .return ($P356)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("78_1274853038.58734") :method
-.annotate 'line', 197
-    $P354 = self."!PREFIX__!protoregex"("statement_prefix")
-    .return ($P354)
+.sub "!PREFIX__statement_prefix"  :subid("78_1275811487.95429") :method
+.annotate 'line', 198
+    $P358 = self."!PREFIX__!protoregex"("statement_prefix")
+    .return ($P358)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>"  :subid("79_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement_prefix:sym<INIT>"  :subid("79_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx356_tgt
-    .local int rx356_pos
-    .local int rx356_off
-    .local int rx356_eos
-    .local int rx356_rep
-    .local pmc rx356_cur
-    (rx356_cur, rx356_pos, rx356_tgt) = self."!cursor_start"()
-    rx356_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
-    .lex unicode:"$\x{a2}", rx356_cur
-    .local pmc match
-    .lex "$/", match
-    length rx356_eos, rx356_tgt
-    set rx356_off, 0
-    lt rx356_pos, 2, rx356_start
-    sub rx356_off, rx356_pos, 1
-    substr rx356_tgt, rx356_tgt, rx356_off
-  rx356_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan360_done
-    goto rxscan360_scan
-  rxscan360_loop:
-    ($P10) = rx356_cur."from"()
-    inc $P10
-    set rx356_pos, $P10
-    ge rx356_pos, rx356_eos, rxscan360_done
-  rxscan360_scan:
-    set_addr $I10, rxscan360_loop
-    rx356_cur."!mark_push"(0, rx356_pos, $I10)
-  rxscan360_done:
-.annotate 'line', 198
+    .local string rx360_tgt
+    .local int rx360_pos
+    .local int rx360_off
+    .local int rx360_eos
+    .local int rx360_rep
+    .local pmc rx360_cur
+    (rx360_cur, rx360_pos, rx360_tgt) = self."!cursor_start"()
+    rx360_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
+    .lex unicode:"$\x{a2}", rx360_cur
+    .local pmc match
+    .lex "$/", match
+    length rx360_eos, rx360_tgt
+    gt rx360_pos, rx360_eos, rx360_done
+    set rx360_off, 0
+    lt rx360_pos, 2, rx360_start
+    sub rx360_off, rx360_pos, 1
+    substr rx360_tgt, rx360_tgt, rx360_off
+  rx360_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan364_done
+    goto rxscan364_scan
+  rxscan364_loop:
+    ($P10) = rx360_cur."from"()
+    inc $P10
+    set rx360_pos, $P10
+    ge rx360_pos, rx360_eos, rxscan364_done
+  rxscan364_scan:
+    set_addr $I10, rxscan364_loop
+    rx360_cur."!mark_push"(0, rx360_pos, $I10)
+  rxscan364_done:
+.annotate 'line', 199
   # rx subcapture "sym"
-    set_addr $I10, rxcap_361_fail
-    rx356_cur."!mark_push"(0, rx356_pos, $I10)
+    set_addr $I10, rxcap_365_fail
+    rx360_cur."!mark_push"(0, rx360_pos, $I10)
   # rx literal  "INIT"
-    add $I11, rx356_pos, 4
-    gt $I11, rx356_eos, rx356_fail
-    sub $I11, rx356_pos, rx356_off
-    substr $S10, rx356_tgt, $I11, 4
-    ne $S10, "INIT", rx356_fail
-    add rx356_pos, 4
-    set_addr $I10, rxcap_361_fail
-    ($I12, $I11) = rx356_cur."!mark_peek"($I10)
-    rx356_cur."!cursor_pos"($I11)
-    ($P10) = rx356_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx356_pos, "")
-    rx356_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx360_pos, 4
+    gt $I11, rx360_eos, rx360_fail
+    sub $I11, rx360_pos, rx360_off
+    substr $S10, rx360_tgt, $I11, 4
+    ne $S10, "INIT", rx360_fail
+    add rx360_pos, 4
+    set_addr $I10, rxcap_365_fail
+    ($I12, $I11) = rx360_cur."!mark_peek"($I10)
+    rx360_cur."!cursor_pos"($I11)
+    ($P10) = rx360_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx360_pos, "")
+    rx360_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_361_done
-  rxcap_361_fail:
-    goto rx356_fail
-  rxcap_361_done:
+    goto rxcap_365_done
+  rxcap_365_fail:
+    goto rx360_fail
+  rxcap_365_done:
   # rx subrule "blorst" subtype=capture negate=
-    rx356_cur."!cursor_pos"(rx356_pos)
-    $P10 = rx356_cur."blorst"()
-    unless $P10, rx356_fail
-    rx356_cur."!mark_push"(0, -1, 0, $P10)
+    rx360_cur."!cursor_pos"(rx360_pos)
+    $P10 = rx360_cur."blorst"()
+    unless $P10, rx360_fail
+    rx360_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blorst")
-    rx356_pos = $P10."pos"()
+    rx360_pos = $P10."pos"()
   # rx pass
-    rx356_cur."!cursor_pass"(rx356_pos, "statement_prefix:sym<INIT>")
-    rx356_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<INIT>", " at pos=", rx356_pos)
-    .return (rx356_cur)
-  rx356_fail:
+    rx360_cur."!cursor_pass"(rx360_pos, "statement_prefix:sym<INIT>")
+    rx360_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<INIT>", " at pos=", rx360_pos)
+    .return (rx360_cur)
+  rx360_fail:
 .annotate 'line', 4
-    (rx356_rep, rx356_pos, $I10, $P10) = rx356_cur."!mark_fail"(0)
-    lt rx356_pos, -1, rx356_done
-    eq rx356_pos, -1, rx356_fail
+    (rx360_rep, rx360_pos, $I10, $P10) = rx360_cur."!mark_fail"(0)
+    lt rx360_pos, -1, rx360_done
+    eq rx360_pos, -1, rx360_fail
     jump $I10
-  rx356_done:
-    rx356_cur."!cursor_fail"()
-    rx356_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<INIT>")
-    .return (rx356_cur)
+  rx360_done:
+    rx360_cur."!cursor_fail"()
+    rx360_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<INIT>")
+    .return (rx360_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1274853038.58734") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1275811487.95429") :method
 .annotate 'line', 4
-    $P358 = self."!PREFIX__!subrule"("blorst", "INIT")
-    new $P359, "ResizablePMCArray"
-    push $P359, $P358
-    .return ($P359)
+    $P362 = self."!PREFIX__!subrule"("blorst", "INIT")
+    new $P363, "ResizablePMCArray"
+    push $P363, $P362
+    .return ($P363)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>"  :subid("81_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement_prefix:sym<try>"  :subid("81_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx363_tgt
-    .local int rx363_pos
-    .local int rx363_off
-    .local int rx363_eos
-    .local int rx363_rep
-    .local pmc rx363_cur
-    (rx363_cur, rx363_pos, rx363_tgt) = self."!cursor_start"()
-    rx363_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
-    .lex unicode:"$\x{a2}", rx363_cur
-    .local pmc match
-    .lex "$/", match
-    length rx363_eos, rx363_tgt
-    set rx363_off, 0
-    lt rx363_pos, 2, rx363_start
-    sub rx363_off, rx363_pos, 1
-    substr rx363_tgt, rx363_tgt, rx363_off
-  rx363_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan367_done
-    goto rxscan367_scan
-  rxscan367_loop:
-    ($P10) = rx363_cur."from"()
-    inc $P10
-    set rx363_pos, $P10
-    ge rx363_pos, rx363_eos, rxscan367_done
-  rxscan367_scan:
-    set_addr $I10, rxscan367_loop
-    rx363_cur."!mark_push"(0, rx363_pos, $I10)
-  rxscan367_done:
-.annotate 'line', 201
+    .local string rx367_tgt
+    .local int rx367_pos
+    .local int rx367_off
+    .local int rx367_eos
+    .local int rx367_rep
+    .local pmc rx367_cur
+    (rx367_cur, rx367_pos, rx367_tgt) = self."!cursor_start"()
+    rx367_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
+    .lex unicode:"$\x{a2}", rx367_cur
+    .local pmc match
+    .lex "$/", match
+    length rx367_eos, rx367_tgt
+    gt rx367_pos, rx367_eos, rx367_done
+    set rx367_off, 0
+    lt rx367_pos, 2, rx367_start
+    sub rx367_off, rx367_pos, 1
+    substr rx367_tgt, rx367_tgt, rx367_off
+  rx367_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan371_done
+    goto rxscan371_scan
+  rxscan371_loop:
+    ($P10) = rx367_cur."from"()
+    inc $P10
+    set rx367_pos, $P10
+    ge rx367_pos, rx367_eos, rxscan371_done
+  rxscan371_scan:
+    set_addr $I10, rxscan371_loop
+    rx367_cur."!mark_push"(0, rx367_pos, $I10)
+  rxscan371_done:
+.annotate 'line', 202
   # rx subcapture "sym"
-    set_addr $I10, rxcap_368_fail
-    rx363_cur."!mark_push"(0, rx363_pos, $I10)
+    set_addr $I10, rxcap_372_fail
+    rx367_cur."!mark_push"(0, rx367_pos, $I10)
   # rx literal  "try"
-    add $I11, rx363_pos, 3
-    gt $I11, rx363_eos, rx363_fail
-    sub $I11, rx363_pos, rx363_off
-    substr $S10, rx363_tgt, $I11, 3
-    ne $S10, "try", rx363_fail
-    add rx363_pos, 3
-    set_addr $I10, rxcap_368_fail
-    ($I12, $I11) = rx363_cur."!mark_peek"($I10)
-    rx363_cur."!cursor_pos"($I11)
-    ($P10) = rx363_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx363_pos, "")
-    rx363_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx367_pos, 3
+    gt $I11, rx367_eos, rx367_fail
+    sub $I11, rx367_pos, rx367_off
+    substr $S10, rx367_tgt, $I11, 3
+    ne $S10, "try", rx367_fail
+    add rx367_pos, 3
+    set_addr $I10, rxcap_372_fail
+    ($I12, $I11) = rx367_cur."!mark_peek"($I10)
+    rx367_cur."!cursor_pos"($I11)
+    ($P10) = rx367_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx367_pos, "")
+    rx367_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_368_done
-  rxcap_368_fail:
-    goto rx363_fail
-  rxcap_368_done:
-.annotate 'line', 202
+    goto rxcap_372_done
+  rxcap_372_fail:
+    goto rx367_fail
+  rxcap_372_done:
+.annotate 'line', 203
   # rx subrule "blorst" subtype=capture negate=
-    rx363_cur."!cursor_pos"(rx363_pos)
-    $P10 = rx363_cur."blorst"()
-    unless $P10, rx363_fail
-    rx363_cur."!mark_push"(0, -1, 0, $P10)
+    rx367_cur."!cursor_pos"(rx367_pos)
+    $P10 = rx367_cur."blorst"()
+    unless $P10, rx367_fail
+    rx367_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blorst")
-    rx363_pos = $P10."pos"()
-.annotate 'line', 200
+    rx367_pos = $P10."pos"()
+.annotate 'line', 201
   # rx pass
-    rx363_cur."!cursor_pass"(rx363_pos, "statement_prefix:sym<try>")
-    rx363_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<try>", " at pos=", rx363_pos)
-    .return (rx363_cur)
-  rx363_fail:
+    rx367_cur."!cursor_pass"(rx367_pos, "statement_prefix:sym<try>")
+    rx367_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<try>", " at pos=", rx367_pos)
+    .return (rx367_cur)
+  rx367_fail:
 .annotate 'line', 4
-    (rx363_rep, rx363_pos, $I10, $P10) = rx363_cur."!mark_fail"(0)
-    lt rx363_pos, -1, rx363_done
-    eq rx363_pos, -1, rx363_fail
+    (rx367_rep, rx367_pos, $I10, $P10) = rx367_cur."!mark_fail"(0)
+    lt rx367_pos, -1, rx367_done
+    eq rx367_pos, -1, rx367_fail
     jump $I10
-  rx363_done:
-    rx363_cur."!cursor_fail"()
-    rx363_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<try>")
-    .return (rx363_cur)
+  rx367_done:
+    rx367_cur."!cursor_fail"()
+    rx367_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<try>")
+    .return (rx367_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1274853038.58734") :method
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1275811487.95429") :method
 .annotate 'line', 4
-    $P365 = self."!PREFIX__!subrule"("blorst", "try")
-    new $P366, "ResizablePMCArray"
-    push $P366, $P365
-    .return ($P366)
+    $P369 = self."!PREFIX__!subrule"("blorst", "try")
+    new $P370, "ResizablePMCArray"
+    push $P370, $P369
+    .return ($P370)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("83_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "blorst"  :subid("83_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx370_tgt
-    .local int rx370_pos
-    .local int rx370_off
-    .local int rx370_eos
-    .local int rx370_rep
-    .local pmc rx370_cur
-    (rx370_cur, rx370_pos, rx370_tgt) = self."!cursor_start"()
-    rx370_cur."!cursor_debug"("START ", "blorst")
-    .lex unicode:"$\x{a2}", rx370_cur
+    .local string rx374_tgt
+    .local int rx374_pos
+    .local int rx374_off
+    .local int rx374_eos
+    .local int rx374_rep
+    .local pmc rx374_cur
+    (rx374_cur, rx374_pos, rx374_tgt) = self."!cursor_start"()
+    rx374_cur."!cursor_debug"("START ", "blorst")
+    .lex unicode:"$\x{a2}", rx374_cur
     .local pmc match
     .lex "$/", match
-    length rx370_eos, rx370_tgt
-    set rx370_off, 0
-    lt rx370_pos, 2, rx370_start
-    sub rx370_off, rx370_pos, 1
-    substr rx370_tgt, rx370_tgt, rx370_off
-  rx370_start:
+    length rx374_eos, rx374_tgt
+    gt rx374_pos, rx374_eos, rx374_done
+    set rx374_off, 0
+    lt rx374_pos, 2, rx374_start
+    sub rx374_off, rx374_pos, 1
+    substr rx374_tgt, rx374_tgt, rx374_off
+  rx374_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan373_done
-    goto rxscan373_scan
-  rxscan373_loop:
-    ($P10) = rx370_cur."from"()
+    ne $I10, -1, rxscan377_done
+    goto rxscan377_scan
+  rxscan377_loop:
+    ($P10) = rx374_cur."from"()
     inc $P10
-    set rx370_pos, $P10
-    ge rx370_pos, rx370_eos, rxscan373_done
-  rxscan373_scan:
-    set_addr $I10, rxscan373_loop
-    rx370_cur."!mark_push"(0, rx370_pos, $I10)
-  rxscan373_done:
-.annotate 'line', 206
+    set rx374_pos, $P10
+    ge rx374_pos, rx374_eos, rxscan377_done
+  rxscan377_scan:
+    set_addr $I10, rxscan377_loop
+    rx374_cur."!mark_push"(0, rx374_pos, $I10)
+  rxscan377_done:
+.annotate 'line', 207
   # rx charclass s
-    ge rx370_pos, rx370_eos, rx370_fail
-    sub $I10, rx370_pos, rx370_off
-    is_cclass $I11, 32, rx370_tgt, $I10
-    unless $I11, rx370_fail
-    inc rx370_pos
-  # rx subrule "ws" subtype=method negate=
-    rx370_cur."!cursor_pos"(rx370_pos)
-    $P10 = rx370_cur."ws"()
-    unless $P10, rx370_fail
-    rx370_pos = $P10."pos"()
-  alt374_0:
-    set_addr $I10, alt374_1
-    rx370_cur."!mark_push"(0, rx370_pos, $I10)
+    ge rx374_pos, rx374_eos, rx374_fail
+    sub $I10, rx374_pos, rx374_off
+    is_cclass $I11, 32, rx374_tgt, $I10
+    unless $I11, rx374_fail
+    inc rx374_pos
+  # rx subrule "ws" subtype=method negate=
+    rx374_cur."!cursor_pos"(rx374_pos)
+    $P10 = rx374_cur."ws"()
+    unless $P10, rx374_fail
+    rx374_pos = $P10."pos"()
+  alt378_0:
+    set_addr $I10, alt378_1
+    rx374_cur."!mark_push"(0, rx374_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx370_pos, rx370_eos, rx370_fail
-    sub $I10, rx370_pos, rx370_off
-    substr $S10, rx370_tgt, $I10, 1
+    ge rx374_pos, rx374_eos, rx374_fail
+    sub $I10, rx374_pos, rx374_off
+    substr $S10, rx374_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx370_fail
+    lt $I11, 0, rx374_fail
   # rx subrule "block" subtype=capture negate=
-    rx370_cur."!cursor_pos"(rx370_pos)
-    $P10 = rx370_cur."block"()
-    unless $P10, rx370_fail
-    rx370_cur."!mark_push"(0, -1, 0, $P10)
+    rx374_cur."!cursor_pos"(rx374_pos)
+    $P10 = rx374_cur."block"()
+    unless $P10, rx374_fail
+    rx374_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx370_pos = $P10."pos"()
-    goto alt374_end
-  alt374_1:
+    rx374_pos = $P10."pos"()
+    goto alt378_end
+  alt378_1:
   # rx subrule "statement" subtype=capture negate=
-    rx370_cur."!cursor_pos"(rx370_pos)
-    $P10 = rx370_cur."statement"()
-    unless $P10, rx370_fail
-    rx370_cur."!mark_push"(0, -1, 0, $P10)
+    rx374_cur."!cursor_pos"(rx374_pos)
+    $P10 = rx374_cur."statement"()
+    unless $P10, rx374_fail
+    rx374_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx370_pos = $P10."pos"()
-  alt374_end:
-.annotate 'line', 205
+    rx374_pos = $P10."pos"()
+  alt378_end:
+.annotate 'line', 206
   # rx pass
-    rx370_cur."!cursor_pass"(rx370_pos, "blorst")
-    rx370_cur."!cursor_debug"("PASS  ", "blorst", " at pos=", rx370_pos)
-    .return (rx370_cur)
-  rx370_fail:
+    rx374_cur."!cursor_pass"(rx374_pos, "blorst")
+    rx374_cur."!cursor_debug"("PASS  ", "blorst", " at pos=", rx374_pos)
+    .return (rx374_cur)
+  rx374_fail:
 .annotate 'line', 4
-    (rx370_rep, rx370_pos, $I10, $P10) = rx370_cur."!mark_fail"(0)
-    lt rx370_pos, -1, rx370_done
-    eq rx370_pos, -1, rx370_fail
+    (rx374_rep, rx374_pos, $I10, $P10) = rx374_cur."!mark_fail"(0)
+    lt rx374_pos, -1, rx374_done
+    eq rx374_pos, -1, rx374_fail
     jump $I10
-  rx370_done:
-    rx370_cur."!cursor_fail"()
-    rx370_cur."!cursor_debug"("FAIL  ", "blorst")
-    .return (rx370_cur)
+  rx374_done:
+    rx374_cur."!cursor_fail"()
+    rx374_cur."!cursor_debug"("FAIL  ", "blorst")
+    .return (rx374_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("84_1274853038.58734") :method
+.sub "!PREFIX__blorst"  :subid("84_1275811487.95429") :method
 .annotate 'line', 4
-    new $P372, "ResizablePMCArray"
-    push $P372, ""
-    .return ($P372)
+    new $P376, "ResizablePMCArray"
+    push $P376, ""
+    .return ($P376)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("85_1274853038.58734") :method
-.annotate 'line', 211
-    $P376 = self."!protoregex"("statement_mod_cond")
-    .return ($P376)
+.sub "statement_mod_cond"  :subid("85_1275811487.95429") :method
+.annotate 'line', 212
+    $P380 = self."!protoregex"("statement_mod_cond")
+    .return ($P380)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("86_1274853038.58734") :method
-.annotate 'line', 211
-    $P378 = self."!PREFIX__!protoregex"("statement_mod_cond")
-    .return ($P378)
+.sub "!PREFIX__statement_mod_cond"  :subid("86_1275811487.95429") :method
+.annotate 'line', 212
+    $P382 = self."!PREFIX__!protoregex"("statement_mod_cond")
+    .return ($P382)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>"  :subid("87_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 4
-    .local string rx380_tgt
-    .local int rx380_pos
-    .local int rx380_off
-    .local int rx380_eos
-    .local int rx380_rep
-    .local pmc rx380_cur
-    (rx380_cur, rx380_pos, rx380_tgt) = self."!cursor_start"()
-    rx380_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
-    .lex unicode:"$\x{a2}", rx380_cur
-    .local pmc match
-    .lex "$/", match
-    length rx380_eos, rx380_tgt
-    set rx380_off, 0
-    lt rx380_pos, 2, rx380_start
-    sub rx380_off, rx380_pos, 1
-    substr rx380_tgt, rx380_tgt, rx380_off
-  rx380_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan383_done
-    goto rxscan383_scan
-  rxscan383_loop:
-    ($P10) = rx380_cur."from"()
-    inc $P10
-    set rx380_pos, $P10
-    ge rx380_pos, rx380_eos, rxscan383_done
-  rxscan383_scan:
-    set_addr $I10, rxscan383_loop
-    rx380_cur."!mark_push"(0, rx380_pos, $I10)
-  rxscan383_done:
-.annotate 'line', 213
+.sub "statement_mod_cond:sym<if>"  :subid("87_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx384_tgt
+    .local int rx384_pos
+    .local int rx384_off
+    .local int rx384_eos
+    .local int rx384_rep
+    .local pmc rx384_cur
+    (rx384_cur, rx384_pos, rx384_tgt) = self."!cursor_start"()
+    rx384_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
+    .lex unicode:"$\x{a2}", rx384_cur
+    .local pmc match
+    .lex "$/", match
+    length rx384_eos, rx384_tgt
+    gt rx384_pos, rx384_eos, rx384_done
+    set rx384_off, 0
+    lt rx384_pos, 2, rx384_start
+    sub rx384_off, rx384_pos, 1
+    substr rx384_tgt, rx384_tgt, rx384_off
+  rx384_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan388_done
+    goto rxscan388_scan
+  rxscan388_loop:
+    ($P10) = rx384_cur."from"()
+    inc $P10
+    set rx384_pos, $P10
+    ge rx384_pos, rx384_eos, rxscan388_done
+  rxscan388_scan:
+    set_addr $I10, rxscan388_loop
+    rx384_cur."!mark_push"(0, rx384_pos, $I10)
+  rxscan388_done:
+.annotate 'line', 214
   # rx subcapture "sym"
-    set_addr $I10, rxcap_384_fail
-    rx380_cur."!mark_push"(0, rx380_pos, $I10)
+    set_addr $I10, rxcap_389_fail
+    rx384_cur."!mark_push"(0, rx384_pos, $I10)
   # rx literal  "if"
-    add $I11, rx380_pos, 2
-    gt $I11, rx380_eos, rx380_fail
-    sub $I11, rx380_pos, rx380_off
-    substr $S10, rx380_tgt, $I11, 2
-    ne $S10, "if", rx380_fail
-    add rx380_pos, 2
-    set_addr $I10, rxcap_384_fail
-    ($I12, $I11) = rx380_cur."!mark_peek"($I10)
-    rx380_cur."!cursor_pos"($I11)
-    ($P10) = rx380_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx380_pos, "")
-    rx380_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx384_pos, 2
+    gt $I11, rx384_eos, rx384_fail
+    sub $I11, rx384_pos, rx384_off
+    substr $S10, rx384_tgt, $I11, 2
+    ne $S10, "if", rx384_fail
+    add rx384_pos, 2
+    set_addr $I10, rxcap_389_fail
+    ($I12, $I11) = rx384_cur."!mark_peek"($I10)
+    rx384_cur."!cursor_pos"($I11)
+    ($P10) = rx384_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx384_pos, "")
+    rx384_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_384_done
-  rxcap_384_fail:
-    goto rx380_fail
-  rxcap_384_done:
-  # rx subrule "ws" subtype=method negate=
-    rx380_cur."!cursor_pos"(rx380_pos)
-    $P10 = rx380_cur."ws"()
-    unless $P10, rx380_fail
-    rx380_pos = $P10."pos"()
+    goto rxcap_389_done
+  rxcap_389_fail:
+    goto rx384_fail
+  rxcap_389_done:
+  # rx subrule "ws" subtype=method negate=
+    rx384_cur."!cursor_pos"(rx384_pos)
+    $P10 = rx384_cur."ws"()
+    unless $P10, rx384_fail
+    rx384_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx380_cur."!cursor_pos"(rx380_pos)
-    $P10 = rx380_cur."EXPR"()
-    unless $P10, rx380_fail
-    rx380_cur."!mark_push"(0, -1, 0, $P10)
+    rx384_cur."!cursor_pos"(rx384_pos)
+    $P10 = rx384_cur."EXPR"()
+    unless $P10, rx384_fail
+    rx384_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx380_pos = $P10."pos"()
+    rx384_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx380_cur."!cursor_pos"(rx380_pos)
-    $P10 = rx380_cur."ws"()
-    unless $P10, rx380_fail
-    rx380_pos = $P10."pos"()
+    rx384_cur."!cursor_pos"(rx384_pos)
+    $P10 = rx384_cur."ws"()
+    unless $P10, rx384_fail
+    rx384_pos = $P10."pos"()
   # rx pass
-    rx380_cur."!cursor_pass"(rx380_pos, "statement_mod_cond:sym<if>")
-    rx380_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<if>", " at pos=", rx380_pos)
-    .return (rx380_cur)
-  rx380_fail:
+    rx384_cur."!cursor_pass"(rx384_pos, "statement_mod_cond:sym<if>")
+    rx384_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<if>", " at pos=", rx384_pos)
+    .return (rx384_cur)
+  rx384_fail:
 .annotate 'line', 4
-    (rx380_rep, rx380_pos, $I10, $P10) = rx380_cur."!mark_fail"(0)
-    lt rx380_pos, -1, rx380_done
-    eq rx380_pos, -1, rx380_fail
+    (rx384_rep, rx384_pos, $I10, $P10) = rx384_cur."!mark_fail"(0)
+    lt rx384_pos, -1, rx384_done
+    eq rx384_pos, -1, rx384_fail
     jump $I10
-  rx380_done:
-    rx380_cur."!cursor_fail"()
-    rx380_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<if>")
-    .return (rx380_cur)
+  rx384_done:
+    rx384_cur."!cursor_fail"()
+    rx384_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<if>")
+    .return (rx384_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1274853038.58734") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1275811487.95429") :method
 .annotate 'line', 4
-    new $P382, "ResizablePMCArray"
-    push $P382, "if"
-    .return ($P382)
+    $P386 = self."!PREFIX__!subrule"("ws", "if")
+    new $P387, "ResizablePMCArray"
+    push $P387, $P386
+    .return ($P387)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>"  :subid("89_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement_mod_cond:sym<unless>"  :subid("89_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx388_tgt
-    .local int rx388_pos
-    .local int rx388_off
-    .local int rx388_eos
-    .local int rx388_rep
-    .local pmc rx388_cur
-    (rx388_cur, rx388_pos, rx388_tgt) = self."!cursor_start"()
-    rx388_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
-    .lex unicode:"$\x{a2}", rx388_cur
-    .local pmc match
-    .lex "$/", match
-    length rx388_eos, rx388_tgt
-    set rx388_off, 0
-    lt rx388_pos, 2, rx388_start
-    sub rx388_off, rx388_pos, 1
-    substr rx388_tgt, rx388_tgt, rx388_off
-  rx388_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan391_done
-    goto rxscan391_scan
-  rxscan391_loop:
-    ($P10) = rx388_cur."from"()
-    inc $P10
-    set rx388_pos, $P10
-    ge rx388_pos, rx388_eos, rxscan391_done
-  rxscan391_scan:
-    set_addr $I10, rxscan391_loop
-    rx388_cur."!mark_push"(0, rx388_pos, $I10)
-  rxscan391_done:
-.annotate 'line', 214
+    .local string rx393_tgt
+    .local int rx393_pos
+    .local int rx393_off
+    .local int rx393_eos
+    .local int rx393_rep
+    .local pmc rx393_cur
+    (rx393_cur, rx393_pos, rx393_tgt) = self."!cursor_start"()
+    rx393_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
+    .lex unicode:"$\x{a2}", rx393_cur
+    .local pmc match
+    .lex "$/", match
+    length rx393_eos, rx393_tgt
+    gt rx393_pos, rx393_eos, rx393_done
+    set rx393_off, 0
+    lt rx393_pos, 2, rx393_start
+    sub rx393_off, rx393_pos, 1
+    substr rx393_tgt, rx393_tgt, rx393_off
+  rx393_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan397_done
+    goto rxscan397_scan
+  rxscan397_loop:
+    ($P10) = rx393_cur."from"()
+    inc $P10
+    set rx393_pos, $P10
+    ge rx393_pos, rx393_eos, rxscan397_done
+  rxscan397_scan:
+    set_addr $I10, rxscan397_loop
+    rx393_cur."!mark_push"(0, rx393_pos, $I10)
+  rxscan397_done:
+.annotate 'line', 215
   # rx subcapture "sym"
-    set_addr $I10, rxcap_392_fail
-    rx388_cur."!mark_push"(0, rx388_pos, $I10)
+    set_addr $I10, rxcap_398_fail
+    rx393_cur."!mark_push"(0, rx393_pos, $I10)
   # rx literal  "unless"
-    add $I11, rx388_pos, 6
-    gt $I11, rx388_eos, rx388_fail
-    sub $I11, rx388_pos, rx388_off
-    substr $S10, rx388_tgt, $I11, 6
-    ne $S10, "unless", rx388_fail
-    add rx388_pos, 6
-    set_addr $I10, rxcap_392_fail
-    ($I12, $I11) = rx388_cur."!mark_peek"($I10)
-    rx388_cur."!cursor_pos"($I11)
-    ($P10) = rx388_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx388_pos, "")
-    rx388_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx393_pos, 6
+    gt $I11, rx393_eos, rx393_fail
+    sub $I11, rx393_pos, rx393_off
+    substr $S10, rx393_tgt, $I11, 6
+    ne $S10, "unless", rx393_fail
+    add rx393_pos, 6
+    set_addr $I10, rxcap_398_fail
+    ($I12, $I11) = rx393_cur."!mark_peek"($I10)
+    rx393_cur."!cursor_pos"($I11)
+    ($P10) = rx393_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx393_pos, "")
+    rx393_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_392_done
-  rxcap_392_fail:
-    goto rx388_fail
-  rxcap_392_done:
-  # rx subrule "ws" subtype=method negate=
-    rx388_cur."!cursor_pos"(rx388_pos)
-    $P10 = rx388_cur."ws"()
-    unless $P10, rx388_fail
-    rx388_pos = $P10."pos"()
+    goto rxcap_398_done
+  rxcap_398_fail:
+    goto rx393_fail
+  rxcap_398_done:
+  # rx subrule "ws" subtype=method negate=
+    rx393_cur."!cursor_pos"(rx393_pos)
+    $P10 = rx393_cur."ws"()
+    unless $P10, rx393_fail
+    rx393_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx388_cur."!cursor_pos"(rx388_pos)
-    $P10 = rx388_cur."EXPR"()
-    unless $P10, rx388_fail
-    rx388_cur."!mark_push"(0, -1, 0, $P10)
+    rx393_cur."!cursor_pos"(rx393_pos)
+    $P10 = rx393_cur."EXPR"()
+    unless $P10, rx393_fail
+    rx393_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx388_pos = $P10."pos"()
+    rx393_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx388_cur."!cursor_pos"(rx388_pos)
-    $P10 = rx388_cur."ws"()
-    unless $P10, rx388_fail
-    rx388_pos = $P10."pos"()
+    rx393_cur."!cursor_pos"(rx393_pos)
+    $P10 = rx393_cur."ws"()
+    unless $P10, rx393_fail
+    rx393_pos = $P10."pos"()
   # rx pass
-    rx388_cur."!cursor_pass"(rx388_pos, "statement_mod_cond:sym<unless>")
-    rx388_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<unless>", " at pos=", rx388_pos)
-    .return (rx388_cur)
-  rx388_fail:
+    rx393_cur."!cursor_pass"(rx393_pos, "statement_mod_cond:sym<unless>")
+    rx393_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<unless>", " at pos=", rx393_pos)
+    .return (rx393_cur)
+  rx393_fail:
 .annotate 'line', 4
-    (rx388_rep, rx388_pos, $I10, $P10) = rx388_cur."!mark_fail"(0)
-    lt rx388_pos, -1, rx388_done
-    eq rx388_pos, -1, rx388_fail
+    (rx393_rep, rx393_pos, $I10, $P10) = rx393_cur."!mark_fail"(0)
+    lt rx393_pos, -1, rx393_done
+    eq rx393_pos, -1, rx393_fail
     jump $I10
-  rx388_done:
-    rx388_cur."!cursor_fail"()
-    rx388_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<unless>")
-    .return (rx388_cur)
+  rx393_done:
+    rx393_cur."!cursor_fail"()
+    rx393_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<unless>")
+    .return (rx393_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1274853038.58734") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1275811487.95429") :method
 .annotate 'line', 4
-    new $P390, "ResizablePMCArray"
-    push $P390, "unless"
-    .return ($P390)
+    $P395 = self."!PREFIX__!subrule"("ws", "unless")
+    new $P396, "ResizablePMCArray"
+    push $P396, $P395
+    .return ($P396)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("91_1274853038.58734") :method
-.annotate 'line', 216
-    $P396 = self."!protoregex"("statement_mod_loop")
-    .return ($P396)
+.sub "statement_mod_loop"  :subid("91_1275811487.95429") :method
+.annotate 'line', 217
+    $P402 = self."!protoregex"("statement_mod_loop")
+    .return ($P402)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("92_1274853038.58734") :method
-.annotate 'line', 216
-    $P398 = self."!PREFIX__!protoregex"("statement_mod_loop")
-    .return ($P398)
+.sub "!PREFIX__statement_mod_loop"  :subid("92_1275811487.95429") :method
+.annotate 'line', 217
+    $P404 = self."!PREFIX__!protoregex"("statement_mod_loop")
+    .return ($P404)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>"  :subid("93_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 4
-    .local string rx400_tgt
-    .local int rx400_pos
-    .local int rx400_off
-    .local int rx400_eos
-    .local int rx400_rep
-    .local pmc rx400_cur
-    (rx400_cur, rx400_pos, rx400_tgt) = self."!cursor_start"()
-    rx400_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
-    .lex unicode:"$\x{a2}", rx400_cur
-    .local pmc match
-    .lex "$/", match
-    length rx400_eos, rx400_tgt
-    set rx400_off, 0
-    lt rx400_pos, 2, rx400_start
-    sub rx400_off, rx400_pos, 1
-    substr rx400_tgt, rx400_tgt, rx400_off
-  rx400_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan403_done
-    goto rxscan403_scan
-  rxscan403_loop:
-    ($P10) = rx400_cur."from"()
-    inc $P10
-    set rx400_pos, $P10
-    ge rx400_pos, rx400_eos, rxscan403_done
-  rxscan403_scan:
-    set_addr $I10, rxscan403_loop
-    rx400_cur."!mark_push"(0, rx400_pos, $I10)
-  rxscan403_done:
-.annotate 'line', 218
+.sub "statement_mod_loop:sym<while>"  :subid("93_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx406_tgt
+    .local int rx406_pos
+    .local int rx406_off
+    .local int rx406_eos
+    .local int rx406_rep
+    .local pmc rx406_cur
+    (rx406_cur, rx406_pos, rx406_tgt) = self."!cursor_start"()
+    rx406_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
+    .lex unicode:"$\x{a2}", rx406_cur
+    .local pmc match
+    .lex "$/", match
+    length rx406_eos, rx406_tgt
+    gt rx406_pos, rx406_eos, rx406_done
+    set rx406_off, 0
+    lt rx406_pos, 2, rx406_start
+    sub rx406_off, rx406_pos, 1
+    substr rx406_tgt, rx406_tgt, rx406_off
+  rx406_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan410_done
+    goto rxscan410_scan
+  rxscan410_loop:
+    ($P10) = rx406_cur."from"()
+    inc $P10
+    set rx406_pos, $P10
+    ge rx406_pos, rx406_eos, rxscan410_done
+  rxscan410_scan:
+    set_addr $I10, rxscan410_loop
+    rx406_cur."!mark_push"(0, rx406_pos, $I10)
+  rxscan410_done:
+.annotate 'line', 219
   # rx subcapture "sym"
-    set_addr $I10, rxcap_404_fail
-    rx400_cur."!mark_push"(0, rx400_pos, $I10)
+    set_addr $I10, rxcap_411_fail
+    rx406_cur."!mark_push"(0, rx406_pos, $I10)
   # rx literal  "while"
-    add $I11, rx400_pos, 5
-    gt $I11, rx400_eos, rx400_fail
-    sub $I11, rx400_pos, rx400_off
-    substr $S10, rx400_tgt, $I11, 5
-    ne $S10, "while", rx400_fail
-    add rx400_pos, 5
-    set_addr $I10, rxcap_404_fail
-    ($I12, $I11) = rx400_cur."!mark_peek"($I10)
-    rx400_cur."!cursor_pos"($I11)
-    ($P10) = rx400_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx400_pos, "")
-    rx400_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx406_pos, 5
+    gt $I11, rx406_eos, rx406_fail
+    sub $I11, rx406_pos, rx406_off
+    substr $S10, rx406_tgt, $I11, 5
+    ne $S10, "while", rx406_fail
+    add rx406_pos, 5
+    set_addr $I10, rxcap_411_fail
+    ($I12, $I11) = rx406_cur."!mark_peek"($I10)
+    rx406_cur."!cursor_pos"($I11)
+    ($P10) = rx406_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx406_pos, "")
+    rx406_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_404_done
-  rxcap_404_fail:
-    goto rx400_fail
-  rxcap_404_done:
-  # rx subrule "ws" subtype=method negate=
-    rx400_cur."!cursor_pos"(rx400_pos)
-    $P10 = rx400_cur."ws"()
-    unless $P10, rx400_fail
-    rx400_pos = $P10."pos"()
+    goto rxcap_411_done
+  rxcap_411_fail:
+    goto rx406_fail
+  rxcap_411_done:
+  # rx subrule "ws" subtype=method negate=
+    rx406_cur."!cursor_pos"(rx406_pos)
+    $P10 = rx406_cur."ws"()
+    unless $P10, rx406_fail
+    rx406_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx400_cur."!cursor_pos"(rx400_pos)
-    $P10 = rx400_cur."EXPR"()
-    unless $P10, rx400_fail
-    rx400_cur."!mark_push"(0, -1, 0, $P10)
+    rx406_cur."!cursor_pos"(rx406_pos)
+    $P10 = rx406_cur."EXPR"()
+    unless $P10, rx406_fail
+    rx406_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx400_pos = $P10."pos"()
+    rx406_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx400_cur."!cursor_pos"(rx400_pos)
-    $P10 = rx400_cur."ws"()
-    unless $P10, rx400_fail
-    rx400_pos = $P10."pos"()
+    rx406_cur."!cursor_pos"(rx406_pos)
+    $P10 = rx406_cur."ws"()
+    unless $P10, rx406_fail
+    rx406_pos = $P10."pos"()
   # rx pass
-    rx400_cur."!cursor_pass"(rx400_pos, "statement_mod_loop:sym<while>")
-    rx400_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<while>", " at pos=", rx400_pos)
-    .return (rx400_cur)
-  rx400_fail:
+    rx406_cur."!cursor_pass"(rx406_pos, "statement_mod_loop:sym<while>")
+    rx406_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<while>", " at pos=", rx406_pos)
+    .return (rx406_cur)
+  rx406_fail:
 .annotate 'line', 4
-    (rx400_rep, rx400_pos, $I10, $P10) = rx400_cur."!mark_fail"(0)
-    lt rx400_pos, -1, rx400_done
-    eq rx400_pos, -1, rx400_fail
+    (rx406_rep, rx406_pos, $I10, $P10) = rx406_cur."!mark_fail"(0)
+    lt rx406_pos, -1, rx406_done
+    eq rx406_pos, -1, rx406_fail
     jump $I10
-  rx400_done:
-    rx400_cur."!cursor_fail"()
-    rx400_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<while>")
-    .return (rx400_cur)
+  rx406_done:
+    rx406_cur."!cursor_fail"()
+    rx406_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<while>")
+    .return (rx406_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1274853038.58734") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1275811487.95429") :method
 .annotate 'line', 4
-    new $P402, "ResizablePMCArray"
-    push $P402, "while"
-    .return ($P402)
+    $P408 = self."!PREFIX__!subrule"("ws", "while")
+    new $P409, "ResizablePMCArray"
+    push $P409, $P408
+    .return ($P409)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>"  :subid("95_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "statement_mod_loop:sym<until>"  :subid("95_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx408_tgt
-    .local int rx408_pos
-    .local int rx408_off
-    .local int rx408_eos
-    .local int rx408_rep
-    .local pmc rx408_cur
-    (rx408_cur, rx408_pos, rx408_tgt) = self."!cursor_start"()
-    rx408_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
-    .lex unicode:"$\x{a2}", rx408_cur
-    .local pmc match
-    .lex "$/", match
-    length rx408_eos, rx408_tgt
-    set rx408_off, 0
-    lt rx408_pos, 2, rx408_start
-    sub rx408_off, rx408_pos, 1
-    substr rx408_tgt, rx408_tgt, rx408_off
-  rx408_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan411_done
-    goto rxscan411_scan
-  rxscan411_loop:
-    ($P10) = rx408_cur."from"()
-    inc $P10
-    set rx408_pos, $P10
-    ge rx408_pos, rx408_eos, rxscan411_done
-  rxscan411_scan:
-    set_addr $I10, rxscan411_loop
-    rx408_cur."!mark_push"(0, rx408_pos, $I10)
-  rxscan411_done:
-.annotate 'line', 219
+    .local string rx415_tgt
+    .local int rx415_pos
+    .local int rx415_off
+    .local int rx415_eos
+    .local int rx415_rep
+    .local pmc rx415_cur
+    (rx415_cur, rx415_pos, rx415_tgt) = self."!cursor_start"()
+    rx415_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
+    .lex unicode:"$\x{a2}", rx415_cur
+    .local pmc match
+    .lex "$/", match
+    length rx415_eos, rx415_tgt
+    gt rx415_pos, rx415_eos, rx415_done
+    set rx415_off, 0
+    lt rx415_pos, 2, rx415_start
+    sub rx415_off, rx415_pos, 1
+    substr rx415_tgt, rx415_tgt, rx415_off
+  rx415_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan419_done
+    goto rxscan419_scan
+  rxscan419_loop:
+    ($P10) = rx415_cur."from"()
+    inc $P10
+    set rx415_pos, $P10
+    ge rx415_pos, rx415_eos, rxscan419_done
+  rxscan419_scan:
+    set_addr $I10, rxscan419_loop
+    rx415_cur."!mark_push"(0, rx415_pos, $I10)
+  rxscan419_done:
+.annotate 'line', 220
   # rx subcapture "sym"
-    set_addr $I10, rxcap_412_fail
-    rx408_cur."!mark_push"(0, rx408_pos, $I10)
+    set_addr $I10, rxcap_420_fail
+    rx415_cur."!mark_push"(0, rx415_pos, $I10)
   # rx literal  "until"
-    add $I11, rx408_pos, 5
-    gt $I11, rx408_eos, rx408_fail
-    sub $I11, rx408_pos, rx408_off
-    substr $S10, rx408_tgt, $I11, 5
-    ne $S10, "until", rx408_fail
-    add rx408_pos, 5
-    set_addr $I10, rxcap_412_fail
-    ($I12, $I11) = rx408_cur."!mark_peek"($I10)
-    rx408_cur."!cursor_pos"($I11)
-    ($P10) = rx408_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx408_pos, "")
-    rx408_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx415_pos, 5
+    gt $I11, rx415_eos, rx415_fail
+    sub $I11, rx415_pos, rx415_off
+    substr $S10, rx415_tgt, $I11, 5
+    ne $S10, "until", rx415_fail
+    add rx415_pos, 5
+    set_addr $I10, rxcap_420_fail
+    ($I12, $I11) = rx415_cur."!mark_peek"($I10)
+    rx415_cur."!cursor_pos"($I11)
+    ($P10) = rx415_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx415_pos, "")
+    rx415_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_412_done
-  rxcap_412_fail:
-    goto rx408_fail
-  rxcap_412_done:
-  # rx subrule "ws" subtype=method negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."ws"()
-    unless $P10, rx408_fail
-    rx408_pos = $P10."pos"()
+    goto rxcap_420_done
+  rxcap_420_fail:
+    goto rx415_fail
+  rxcap_420_done:
+  # rx subrule "ws" subtype=method negate=
+    rx415_cur."!cursor_pos"(rx415_pos)
+    $P10 = rx415_cur."ws"()
+    unless $P10, rx415_fail
+    rx415_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."EXPR"()
-    unless $P10, rx408_fail
-    rx408_cur."!mark_push"(0, -1, 0, $P10)
+    rx415_cur."!cursor_pos"(rx415_pos)
+    $P10 = rx415_cur."EXPR"()
+    unless $P10, rx415_fail
+    rx415_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx408_pos = $P10."pos"()
+    rx415_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."ws"()
-    unless $P10, rx408_fail
-    rx408_pos = $P10."pos"()
+    rx415_cur."!cursor_pos"(rx415_pos)
+    $P10 = rx415_cur."ws"()
+    unless $P10, rx415_fail
+    rx415_pos = $P10."pos"()
   # rx pass
-    rx408_cur."!cursor_pass"(rx408_pos, "statement_mod_loop:sym<until>")
-    rx408_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<until>", " at pos=", rx408_pos)
-    .return (rx408_cur)
-  rx408_fail:
+    rx415_cur."!cursor_pass"(rx415_pos, "statement_mod_loop:sym<until>")
+    rx415_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<until>", " at pos=", rx415_pos)
+    .return (rx415_cur)
+  rx415_fail:
 .annotate 'line', 4
-    (rx408_rep, rx408_pos, $I10, $P10) = rx408_cur."!mark_fail"(0)
-    lt rx408_pos, -1, rx408_done
-    eq rx408_pos, -1, rx408_fail
+    (rx415_rep, rx415_pos, $I10, $P10) = rx415_cur."!mark_fail"(0)
+    lt rx415_pos, -1, rx415_done
+    eq rx415_pos, -1, rx415_fail
     jump $I10
-  rx408_done:
-    rx408_cur."!cursor_fail"()
-    rx408_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<until>")
-    .return (rx408_cur)
+  rx415_done:
+    rx415_cur."!cursor_fail"()
+    rx415_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<until>")
+    .return (rx415_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1274853038.58734") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1275811487.95429") :method
 .annotate 'line', 4
-    new $P410, "ResizablePMCArray"
-    push $P410, "until"
-    .return ($P410)
+    $P417 = self."!PREFIX__!subrule"("ws", "until")
+    new $P418, "ResizablePMCArray"
+    push $P418, $P417
+    .return ($P418)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("97_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<fatarrow>"  :subid("97_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx416_tgt
-    .local int rx416_pos
-    .local int rx416_off
-    .local int rx416_eos
-    .local int rx416_rep
-    .local pmc rx416_cur
-    (rx416_cur, rx416_pos, rx416_tgt) = self."!cursor_start"()
-    rx416_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
-    .lex unicode:"$\x{a2}", rx416_cur
+    .local string rx424_tgt
+    .local int rx424_pos
+    .local int rx424_off
+    .local int rx424_eos
+    .local int rx424_rep
+    .local pmc rx424_cur
+    (rx424_cur, rx424_pos, rx424_tgt) = self."!cursor_start"()
+    rx424_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
+    .lex unicode:"$\x{a2}", rx424_cur
     .local pmc match
     .lex "$/", match
-    length rx416_eos, rx416_tgt
-    set rx416_off, 0
-    lt rx416_pos, 2, rx416_start
-    sub rx416_off, rx416_pos, 1
-    substr rx416_tgt, rx416_tgt, rx416_off
-  rx416_start:
+    length rx424_eos, rx424_tgt
+    gt rx424_pos, rx424_eos, rx424_done
+    set rx424_off, 0
+    lt rx424_pos, 2, rx424_start
+    sub rx424_off, rx424_pos, 1
+    substr rx424_tgt, rx424_tgt, rx424_off
+  rx424_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan420_done
-    goto rxscan420_scan
-  rxscan420_loop:
-    ($P10) = rx416_cur."from"()
+    ne $I10, -1, rxscan428_done
+    goto rxscan428_scan
+  rxscan428_loop:
+    ($P10) = rx424_cur."from"()
     inc $P10
-    set rx416_pos, $P10
-    ge rx416_pos, rx416_eos, rxscan420_done
-  rxscan420_scan:
-    set_addr $I10, rxscan420_loop
-    rx416_cur."!mark_push"(0, rx416_pos, $I10)
-  rxscan420_done:
-.annotate 'line', 223
+    set rx424_pos, $P10
+    ge rx424_pos, rx424_eos, rxscan428_done
+  rxscan428_scan:
+    set_addr $I10, rxscan428_loop
+    rx424_cur."!mark_push"(0, rx424_pos, $I10)
+  rxscan428_done:
+.annotate 'line', 224
   # rx subrule "fatarrow" subtype=capture negate=
-    rx416_cur."!cursor_pos"(rx416_pos)
-    $P10 = rx416_cur."fatarrow"()
-    unless $P10, rx416_fail
-    rx416_cur."!mark_push"(0, -1, 0, $P10)
+    rx424_cur."!cursor_pos"(rx424_pos)
+    $P10 = rx424_cur."fatarrow"()
+    unless $P10, rx424_fail
+    rx424_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("fatarrow")
-    rx416_pos = $P10."pos"()
+    rx424_pos = $P10."pos"()
   # rx pass
-    rx416_cur."!cursor_pass"(rx416_pos, "term:sym<fatarrow>")
-    rx416_cur."!cursor_debug"("PASS  ", "term:sym<fatarrow>", " at pos=", rx416_pos)
-    .return (rx416_cur)
-  rx416_fail:
+    rx424_cur."!cursor_pass"(rx424_pos, "term:sym<fatarrow>")
+    rx424_cur."!cursor_debug"("PASS  ", "term:sym<fatarrow>", " at pos=", rx424_pos)
+    .return (rx424_cur)
+  rx424_fail:
 .annotate 'line', 4
-    (rx416_rep, rx416_pos, $I10, $P10) = rx416_cur."!mark_fail"(0)
-    lt rx416_pos, -1, rx416_done
-    eq rx416_pos, -1, rx416_fail
+    (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
+    lt rx424_pos, -1, rx424_done
+    eq rx424_pos, -1, rx424_fail
     jump $I10
-  rx416_done:
-    rx416_cur."!cursor_fail"()
-    rx416_cur."!cursor_debug"("FAIL  ", "term:sym<fatarrow>")
-    .return (rx416_cur)
+  rx424_done:
+    rx424_cur."!cursor_fail"()
+    rx424_cur."!cursor_debug"("FAIL  ", "term:sym<fatarrow>")
+    .return (rx424_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("98_1274853038.58734") :method
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("98_1275811487.95429") :method
 .annotate 'line', 4
-    $P418 = self."!PREFIX__!subrule"("fatarrow", "")
-    new $P419, "ResizablePMCArray"
-    push $P419, $P418
-    .return ($P419)
+    $P426 = self."!PREFIX__!subrule"("fatarrow", "")
+    new $P427, "ResizablePMCArray"
+    push $P427, $P426
+    .return ($P427)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("99_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<colonpair>"  :subid("99_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx422_tgt
-    .local int rx422_pos
-    .local int rx422_off
-    .local int rx422_eos
-    .local int rx422_rep
-    .local pmc rx422_cur
-    (rx422_cur, rx422_pos, rx422_tgt) = self."!cursor_start"()
-    rx422_cur."!cursor_debug"("START ", "term:sym<colonpair>")
-    .lex unicode:"$\x{a2}", rx422_cur
-    .local pmc match
-    .lex "$/", match
-    length rx422_eos, rx422_tgt
-    set rx422_off, 0
-    lt rx422_pos, 2, rx422_start
-    sub rx422_off, rx422_pos, 1
-    substr rx422_tgt, rx422_tgt, rx422_off
-  rx422_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan426_done
-    goto rxscan426_scan
-  rxscan426_loop:
-    ($P10) = rx422_cur."from"()
-    inc $P10
-    set rx422_pos, $P10
-    ge rx422_pos, rx422_eos, rxscan426_done
-  rxscan426_scan:
-    set_addr $I10, rxscan426_loop
-    rx422_cur."!mark_push"(0, rx422_pos, $I10)
-  rxscan426_done:
-.annotate 'line', 224
+    .local string rx430_tgt
+    .local int rx430_pos
+    .local int rx430_off
+    .local int rx430_eos
+    .local int rx430_rep
+    .local pmc rx430_cur
+    (rx430_cur, rx430_pos, rx430_tgt) = self."!cursor_start"()
+    rx430_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+    .lex unicode:"$\x{a2}", rx430_cur
+    .local pmc match
+    .lex "$/", match
+    length rx430_eos, rx430_tgt
+    gt rx430_pos, rx430_eos, rx430_done
+    set rx430_off, 0
+    lt rx430_pos, 2, rx430_start
+    sub rx430_off, rx430_pos, 1
+    substr rx430_tgt, rx430_tgt, rx430_off
+  rx430_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan434_done
+    goto rxscan434_scan
+  rxscan434_loop:
+    ($P10) = rx430_cur."from"()
+    inc $P10
+    set rx430_pos, $P10
+    ge rx430_pos, rx430_eos, rxscan434_done
+  rxscan434_scan:
+    set_addr $I10, rxscan434_loop
+    rx430_cur."!mark_push"(0, rx430_pos, $I10)
+  rxscan434_done:
+.annotate 'line', 225
   # rx subrule "colonpair" subtype=capture negate=
-    rx422_cur."!cursor_pos"(rx422_pos)
-    $P10 = rx422_cur."colonpair"()
-    unless $P10, rx422_fail
-    rx422_cur."!mark_push"(0, -1, 0, $P10)
+    rx430_cur."!cursor_pos"(rx430_pos)
+    $P10 = rx430_cur."colonpair"()
+    unless $P10, rx430_fail
+    rx430_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("colonpair")
-    rx422_pos = $P10."pos"()
+    rx430_pos = $P10."pos"()
   # rx pass
-    rx422_cur."!cursor_pass"(rx422_pos, "term:sym<colonpair>")
-    rx422_cur."!cursor_debug"("PASS  ", "term:sym<colonpair>", " at pos=", rx422_pos)
-    .return (rx422_cur)
-  rx422_fail:
+    rx430_cur."!cursor_pass"(rx430_pos, "term:sym<colonpair>")
+    rx430_cur."!cursor_debug"("PASS  ", "term:sym<colonpair>", " at pos=", rx430_pos)
+    .return (rx430_cur)
+  rx430_fail:
 .annotate 'line', 4
-    (rx422_rep, rx422_pos, $I10, $P10) = rx422_cur."!mark_fail"(0)
-    lt rx422_pos, -1, rx422_done
-    eq rx422_pos, -1, rx422_fail
+    (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
+    lt rx430_pos, -1, rx430_done
+    eq rx430_pos, -1, rx430_fail
     jump $I10
-  rx422_done:
-    rx422_cur."!cursor_fail"()
-    rx422_cur."!cursor_debug"("FAIL  ", "term:sym<colonpair>")
-    .return (rx422_cur)
+  rx430_done:
+    rx430_cur."!cursor_fail"()
+    rx430_cur."!cursor_debug"("FAIL  ", "term:sym<colonpair>")
+    .return (rx430_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("100_1274853038.58734") :method
+.sub "!PREFIX__term:sym<colonpair>"  :subid("100_1275811487.95429") :method
 .annotate 'line', 4
-    $P424 = self."!PREFIX__!subrule"("colonpair", "")
-    new $P425, "ResizablePMCArray"
-    push $P425, $P424
-    .return ($P425)
+    $P432 = self."!PREFIX__!subrule"("colonpair", "")
+    new $P433, "ResizablePMCArray"
+    push $P433, $P432
+    .return ($P433)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("101_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<variable>"  :subid("101_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx428_tgt
-    .local int rx428_pos
-    .local int rx428_off
-    .local int rx428_eos
-    .local int rx428_rep
-    .local pmc rx428_cur
-    (rx428_cur, rx428_pos, rx428_tgt) = self."!cursor_start"()
-    rx428_cur."!cursor_debug"("START ", "term:sym<variable>")
-    .lex unicode:"$\x{a2}", rx428_cur
+    .local string rx436_tgt
+    .local int rx436_pos
+    .local int rx436_off
+    .local int rx436_eos
+    .local int rx436_rep
+    .local pmc rx436_cur
+    (rx436_cur, rx436_pos, rx436_tgt) = self."!cursor_start"()
+    rx436_cur."!cursor_debug"("START ", "term:sym<variable>")
+    .lex unicode:"$\x{a2}", rx436_cur
     .local pmc match
     .lex "$/", match
-    length rx428_eos, rx428_tgt
-    set rx428_off, 0
-    lt rx428_pos, 2, rx428_start
-    sub rx428_off, rx428_pos, 1
-    substr rx428_tgt, rx428_tgt, rx428_off
-  rx428_start:
+    length rx436_eos, rx436_tgt
+    gt rx436_pos, rx436_eos, rx436_done
+    set rx436_off, 0
+    lt rx436_pos, 2, rx436_start
+    sub rx436_off, rx436_pos, 1
+    substr rx436_tgt, rx436_tgt, rx436_off
+  rx436_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan432_done
-    goto rxscan432_scan
-  rxscan432_loop:
-    ($P10) = rx428_cur."from"()
+    ne $I10, -1, rxscan440_done
+    goto rxscan440_scan
+  rxscan440_loop:
+    ($P10) = rx436_cur."from"()
     inc $P10
-    set rx428_pos, $P10
-    ge rx428_pos, rx428_eos, rxscan432_done
-  rxscan432_scan:
-    set_addr $I10, rxscan432_loop
-    rx428_cur."!mark_push"(0, rx428_pos, $I10)
-  rxscan432_done:
-.annotate 'line', 225
+    set rx436_pos, $P10
+    ge rx436_pos, rx436_eos, rxscan440_done
+  rxscan440_scan:
+    set_addr $I10, rxscan440_loop
+    rx436_cur."!mark_push"(0, rx436_pos, $I10)
+  rxscan440_done:
+.annotate 'line', 226
   # rx subrule "variable" subtype=capture negate=
-    rx428_cur."!cursor_pos"(rx428_pos)
-    $P10 = rx428_cur."variable"()
-    unless $P10, rx428_fail
-    rx428_cur."!mark_push"(0, -1, 0, $P10)
+    rx436_cur."!cursor_pos"(rx436_pos)
+    $P10 = rx436_cur."variable"()
+    unless $P10, rx436_fail
+    rx436_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable")
-    rx428_pos = $P10."pos"()
+    rx436_pos = $P10."pos"()
   # rx pass
-    rx428_cur."!cursor_pass"(rx428_pos, "term:sym<variable>")
-    rx428_cur."!cursor_debug"("PASS  ", "term:sym<variable>", " at pos=", rx428_pos)
-    .return (rx428_cur)
-  rx428_fail:
+    rx436_cur."!cursor_pass"(rx436_pos, "term:sym<variable>")
+    rx436_cur."!cursor_debug"("PASS  ", "term:sym<variable>", " at pos=", rx436_pos)
+    .return (rx436_cur)
+  rx436_fail:
 .annotate 'line', 4
-    (rx428_rep, rx428_pos, $I10, $P10) = rx428_cur."!mark_fail"(0)
-    lt rx428_pos, -1, rx428_done
-    eq rx428_pos, -1, rx428_fail
+    (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
+    lt rx436_pos, -1, rx436_done
+    eq rx436_pos, -1, rx436_fail
     jump $I10
-  rx428_done:
-    rx428_cur."!cursor_fail"()
-    rx428_cur."!cursor_debug"("FAIL  ", "term:sym<variable>")
-    .return (rx428_cur)
+  rx436_done:
+    rx436_cur."!cursor_fail"()
+    rx436_cur."!cursor_debug"("FAIL  ", "term:sym<variable>")
+    .return (rx436_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("102_1274853038.58734") :method
+.sub "!PREFIX__term:sym<variable>"  :subid("102_1275811487.95429") :method
 .annotate 'line', 4
-    $P430 = self."!PREFIX__!subrule"("variable", "")
-    new $P431, "ResizablePMCArray"
-    push $P431, $P430
-    .return ($P431)
+    $P438 = self."!PREFIX__!subrule"("variable", "")
+    new $P439, "ResizablePMCArray"
+    push $P439, $P438
+    .return ($P439)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>"  :subid("103_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<package_declarator>"  :subid("103_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx434_tgt
-    .local int rx434_pos
-    .local int rx434_off
-    .local int rx434_eos
-    .local int rx434_rep
-    .local pmc rx434_cur
-    (rx434_cur, rx434_pos, rx434_tgt) = self."!cursor_start"()
-    rx434_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
-    .lex unicode:"$\x{a2}", rx434_cur
+    .local string rx442_tgt
+    .local int rx442_pos
+    .local int rx442_off
+    .local int rx442_eos
+    .local int rx442_rep
+    .local pmc rx442_cur
+    (rx442_cur, rx442_pos, rx442_tgt) = self."!cursor_start"()
+    rx442_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
+    .lex unicode:"$\x{a2}", rx442_cur
     .local pmc match
     .lex "$/", match
-    length rx434_eos, rx434_tgt
-    set rx434_off, 0
-    lt rx434_pos, 2, rx434_start
-    sub rx434_off, rx434_pos, 1
-    substr rx434_tgt, rx434_tgt, rx434_off
-  rx434_start:
+    length rx442_eos, rx442_tgt
+    gt rx442_pos, rx442_eos, rx442_done
+    set rx442_off, 0
+    lt rx442_pos, 2, rx442_start
+    sub rx442_off, rx442_pos, 1
+    substr rx442_tgt, rx442_tgt, rx442_off
+  rx442_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan438_done
-    goto rxscan438_scan
-  rxscan438_loop:
-    ($P10) = rx434_cur."from"()
+    ne $I10, -1, rxscan446_done
+    goto rxscan446_scan
+  rxscan446_loop:
+    ($P10) = rx442_cur."from"()
     inc $P10
-    set rx434_pos, $P10
-    ge rx434_pos, rx434_eos, rxscan438_done
-  rxscan438_scan:
-    set_addr $I10, rxscan438_loop
-    rx434_cur."!mark_push"(0, rx434_pos, $I10)
-  rxscan438_done:
-.annotate 'line', 226
+    set rx442_pos, $P10
+    ge rx442_pos, rx442_eos, rxscan446_done
+  rxscan446_scan:
+    set_addr $I10, rxscan446_loop
+    rx442_cur."!mark_push"(0, rx442_pos, $I10)
+  rxscan446_done:
+.annotate 'line', 227
   # rx subrule "package_declarator" subtype=capture negate=
-    rx434_cur."!cursor_pos"(rx434_pos)
-    $P10 = rx434_cur."package_declarator"()
-    unless $P10, rx434_fail
-    rx434_cur."!mark_push"(0, -1, 0, $P10)
+    rx442_cur."!cursor_pos"(rx442_pos)
+    $P10 = rx442_cur."package_declarator"()
+    unless $P10, rx442_fail
+    rx442_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_declarator")
-    rx434_pos = $P10."pos"()
+    rx442_pos = $P10."pos"()
   # rx pass
-    rx434_cur."!cursor_pass"(rx434_pos, "term:sym<package_declarator>")
-    rx434_cur."!cursor_debug"("PASS  ", "term:sym<package_declarator>", " at pos=", rx434_pos)
-    .return (rx434_cur)
-  rx434_fail:
+    rx442_cur."!cursor_pass"(rx442_pos, "term:sym<package_declarator>")
+    rx442_cur."!cursor_debug"("PASS  ", "term:sym<package_declarator>", " at pos=", rx442_pos)
+    .return (rx442_cur)
+  rx442_fail:
 .annotate 'line', 4
-    (rx434_rep, rx434_pos, $I10, $P10) = rx434_cur."!mark_fail"(0)
-    lt rx434_pos, -1, rx434_done
-    eq rx434_pos, -1, rx434_fail
+    (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
+    lt rx442_pos, -1, rx442_done
+    eq rx442_pos, -1, rx442_fail
     jump $I10
-  rx434_done:
-    rx434_cur."!cursor_fail"()
-    rx434_cur."!cursor_debug"("FAIL  ", "term:sym<package_declarator>")
-    .return (rx434_cur)
+  rx442_done:
+    rx442_cur."!cursor_fail"()
+    rx442_cur."!cursor_debug"("FAIL  ", "term:sym<package_declarator>")
+    .return (rx442_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("104_1274853038.58734") :method
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("104_1275811487.95429") :method
 .annotate 'line', 4
-    $P436 = self."!PREFIX__!subrule"("package_declarator", "")
-    new $P437, "ResizablePMCArray"
-    push $P437, $P436
-    .return ($P437)
+    $P444 = self."!PREFIX__!subrule"("package_declarator", "")
+    new $P445, "ResizablePMCArray"
+    push $P445, $P444
+    .return ($P445)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>"  :subid("105_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<scope_declarator>"  :subid("105_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx440_tgt
-    .local int rx440_pos
-    .local int rx440_off
-    .local int rx440_eos
-    .local int rx440_rep
-    .local pmc rx440_cur
-    (rx440_cur, rx440_pos, rx440_tgt) = self."!cursor_start"()
-    rx440_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
-    .lex unicode:"$\x{a2}", rx440_cur
+    .local string rx448_tgt
+    .local int rx448_pos
+    .local int rx448_off
+    .local int rx448_eos
+    .local int rx448_rep
+    .local pmc rx448_cur
+    (rx448_cur, rx448_pos, rx448_tgt) = self."!cursor_start"()
+    rx448_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
+    .lex unicode:"$\x{a2}", rx448_cur
     .local pmc match
     .lex "$/", match
-    length rx440_eos, rx440_tgt
-    set rx440_off, 0
-    lt rx440_pos, 2, rx440_start
-    sub rx440_off, rx440_pos, 1
-    substr rx440_tgt, rx440_tgt, rx440_off
-  rx440_start:
+    length rx448_eos, rx448_tgt
+    gt rx448_pos, rx448_eos, rx448_done
+    set rx448_off, 0
+    lt rx448_pos, 2, rx448_start
+    sub rx448_off, rx448_pos, 1
+    substr rx448_tgt, rx448_tgt, rx448_off
+  rx448_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan444_done
-    goto rxscan444_scan
-  rxscan444_loop:
-    ($P10) = rx440_cur."from"()
+    ne $I10, -1, rxscan452_done
+    goto rxscan452_scan
+  rxscan452_loop:
+    ($P10) = rx448_cur."from"()
     inc $P10
-    set rx440_pos, $P10
-    ge rx440_pos, rx440_eos, rxscan444_done
-  rxscan444_scan:
-    set_addr $I10, rxscan444_loop
-    rx440_cur."!mark_push"(0, rx440_pos, $I10)
-  rxscan444_done:
-.annotate 'line', 227
+    set rx448_pos, $P10
+    ge rx448_pos, rx448_eos, rxscan452_done
+  rxscan452_scan:
+    set_addr $I10, rxscan452_loop
+    rx448_cur."!mark_push"(0, rx448_pos, $I10)
+  rxscan452_done:
+.annotate 'line', 228
   # rx subrule "scope_declarator" subtype=capture negate=
-    rx440_cur."!cursor_pos"(rx440_pos)
-    $P10 = rx440_cur."scope_declarator"()
-    unless $P10, rx440_fail
-    rx440_cur."!mark_push"(0, -1, 0, $P10)
+    rx448_cur."!cursor_pos"(rx448_pos)
+    $P10 = rx448_cur."scope_declarator"()
+    unless $P10, rx448_fail
+    rx448_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scope_declarator")
-    rx440_pos = $P10."pos"()
+    rx448_pos = $P10."pos"()
   # rx pass
-    rx440_cur."!cursor_pass"(rx440_pos, "term:sym<scope_declarator>")
-    rx440_cur."!cursor_debug"("PASS  ", "term:sym<scope_declarator>", " at pos=", rx440_pos)
-    .return (rx440_cur)
-  rx440_fail:
+    rx448_cur."!cursor_pass"(rx448_pos, "term:sym<scope_declarator>")
+    rx448_cur."!cursor_debug"("PASS  ", "term:sym<scope_declarator>", " at pos=", rx448_pos)
+    .return (rx448_cur)
+  rx448_fail:
 .annotate 'line', 4
-    (rx440_rep, rx440_pos, $I10, $P10) = rx440_cur."!mark_fail"(0)
-    lt rx440_pos, -1, rx440_done
-    eq rx440_pos, -1, rx440_fail
+    (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
+    lt rx448_pos, -1, rx448_done
+    eq rx448_pos, -1, rx448_fail
     jump $I10
-  rx440_done:
-    rx440_cur."!cursor_fail"()
-    rx440_cur."!cursor_debug"("FAIL  ", "term:sym<scope_declarator>")
-    .return (rx440_cur)
+  rx448_done:
+    rx448_cur."!cursor_fail"()
+    rx448_cur."!cursor_debug"("FAIL  ", "term:sym<scope_declarator>")
+    .return (rx448_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("106_1274853038.58734") :method
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("106_1275811487.95429") :method
 .annotate 'line', 4
-    $P442 = self."!PREFIX__!subrule"("scope_declarator", "")
-    new $P443, "ResizablePMCArray"
-    push $P443, $P442
-    .return ($P443)
+    $P450 = self."!PREFIX__!subrule"("scope_declarator", "")
+    new $P451, "ResizablePMCArray"
+    push $P451, $P450
+    .return ($P451)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>"  :subid("107_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<routine_declarator>"  :subid("107_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx446_tgt
-    .local int rx446_pos
-    .local int rx446_off
-    .local int rx446_eos
-    .local int rx446_rep
-    .local pmc rx446_cur
-    (rx446_cur, rx446_pos, rx446_tgt) = self."!cursor_start"()
-    rx446_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
-    .lex unicode:"$\x{a2}", rx446_cur
+    .local string rx454_tgt
+    .local int rx454_pos
+    .local int rx454_off
+    .local int rx454_eos
+    .local int rx454_rep
+    .local pmc rx454_cur
+    (rx454_cur, rx454_pos, rx454_tgt) = self."!cursor_start"()
+    rx454_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
+    .lex unicode:"$\x{a2}", rx454_cur
     .local pmc match
     .lex "$/", match
-    length rx446_eos, rx446_tgt
-    set rx446_off, 0
-    lt rx446_pos, 2, rx446_start
-    sub rx446_off, rx446_pos, 1
-    substr rx446_tgt, rx446_tgt, rx446_off
-  rx446_start:
+    length rx454_eos, rx454_tgt
+    gt rx454_pos, rx454_eos, rx454_done
+    set rx454_off, 0
+    lt rx454_pos, 2, rx454_start
+    sub rx454_off, rx454_pos, 1
+    substr rx454_tgt, rx454_tgt, rx454_off
+  rx454_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan450_done
-    goto rxscan450_scan
-  rxscan450_loop:
-    ($P10) = rx446_cur."from"()
+    ne $I10, -1, rxscan458_done
+    goto rxscan458_scan
+  rxscan458_loop:
+    ($P10) = rx454_cur."from"()
     inc $P10
-    set rx446_pos, $P10
-    ge rx446_pos, rx446_eos, rxscan450_done
-  rxscan450_scan:
-    set_addr $I10, rxscan450_loop
-    rx446_cur."!mark_push"(0, rx446_pos, $I10)
-  rxscan450_done:
-.annotate 'line', 228
+    set rx454_pos, $P10
+    ge rx454_pos, rx454_eos, rxscan458_done
+  rxscan458_scan:
+    set_addr $I10, rxscan458_loop
+    rx454_cur."!mark_push"(0, rx454_pos, $I10)
+  rxscan458_done:
+.annotate 'line', 229
   # rx subrule "routine_declarator" subtype=capture negate=
-    rx446_cur."!cursor_pos"(rx446_pos)
-    $P10 = rx446_cur."routine_declarator"()
-    unless $P10, rx446_fail
-    rx446_cur."!mark_push"(0, -1, 0, $P10)
+    rx454_cur."!cursor_pos"(rx454_pos)
+    $P10 = rx454_cur."routine_declarator"()
+    unless $P10, rx454_fail
+    rx454_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_declarator")
-    rx446_pos = $P10."pos"()
+    rx454_pos = $P10."pos"()
   # rx pass
-    rx446_cur."!cursor_pass"(rx446_pos, "term:sym<routine_declarator>")
-    rx446_cur."!cursor_debug"("PASS  ", "term:sym<routine_declarator>", " at pos=", rx446_pos)
-    .return (rx446_cur)
-  rx446_fail:
+    rx454_cur."!cursor_pass"(rx454_pos, "term:sym<routine_declarator>")
+    rx454_cur."!cursor_debug"("PASS  ", "term:sym<routine_declarator>", " at pos=", rx454_pos)
+    .return (rx454_cur)
+  rx454_fail:
 .annotate 'line', 4
-    (rx446_rep, rx446_pos, $I10, $P10) = rx446_cur."!mark_fail"(0)
-    lt rx446_pos, -1, rx446_done
-    eq rx446_pos, -1, rx446_fail
+    (rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0)
+    lt rx454_pos, -1, rx454_done
+    eq rx454_pos, -1, rx454_fail
     jump $I10
-  rx446_done:
-    rx446_cur."!cursor_fail"()
-    rx446_cur."!cursor_debug"("FAIL  ", "term:sym<routine_declarator>")
-    .return (rx446_cur)
+  rx454_done:
+    rx454_cur."!cursor_fail"()
+    rx454_cur."!cursor_debug"("FAIL  ", "term:sym<routine_declarator>")
+    .return (rx454_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("108_1274853038.58734") :method
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("108_1275811487.95429") :method
 .annotate 'line', 4
-    $P448 = self."!PREFIX__!subrule"("routine_declarator", "")
-    new $P449, "ResizablePMCArray"
-    push $P449, $P448
-    .return ($P449)
+    $P456 = self."!PREFIX__!subrule"("routine_declarator", "")
+    new $P457, "ResizablePMCArray"
+    push $P457, $P456
+    .return ($P457)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("109_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<multi_declarator>"  :subid("109_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx452_tgt
-    .local int rx452_pos
-    .local int rx452_off
-    .local int rx452_eos
-    .local int rx452_rep
-    .local pmc rx452_cur
-    (rx452_cur, rx452_pos, rx452_tgt) = self."!cursor_start"()
-    rx452_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
-    .lex unicode:"$\x{a2}", rx452_cur
+    .const 'Sub' $P465 = "111_1275811487.95429" 
+    capture_lex $P465
+    .local string rx460_tgt
+    .local int rx460_pos
+    .local int rx460_off
+    .local int rx460_eos
+    .local int rx460_rep
+    .local pmc rx460_cur
+    (rx460_cur, rx460_pos, rx460_tgt) = self."!cursor_start"()
+    rx460_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
+    .lex unicode:"$\x{a2}", rx460_cur
     .local pmc match
     .lex "$/", match
-    length rx452_eos, rx452_tgt
-    set rx452_off, 0
-    lt rx452_pos, 2, rx452_start
-    sub rx452_off, rx452_pos, 1
-    substr rx452_tgt, rx452_tgt, rx452_off
-  rx452_start:
+    length rx460_eos, rx460_tgt
+    gt rx460_pos, rx460_eos, rx460_done
+    set rx460_off, 0
+    lt rx460_pos, 2, rx460_start
+    sub rx460_off, rx460_pos, 1
+    substr rx460_tgt, rx460_tgt, rx460_off
+  rx460_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan456_done
-    goto rxscan456_scan
-  rxscan456_loop:
-    ($P10) = rx452_cur."from"()
+    ne $I10, -1, rxscan463_done
+    goto rxscan463_scan
+  rxscan463_loop:
+    ($P10) = rx460_cur."from"()
     inc $P10
-    set rx452_pos, $P10
-    ge rx452_pos, rx452_eos, rxscan456_done
-  rxscan456_scan:
-    set_addr $I10, rxscan456_loop
-    rx452_cur."!mark_push"(0, rx452_pos, $I10)
-  rxscan456_done:
-.annotate 'line', 229
+    set rx460_pos, $P10
+    ge rx460_pos, rx460_eos, rxscan463_done
+  rxscan463_scan:
+    set_addr $I10, rxscan463_loop
+    rx460_cur."!mark_push"(0, rx460_pos, $I10)
+  rxscan463_done:
+.annotate 'line', 230
+  # rx subrule "before" subtype=zerowidth negate=
+    rx460_cur."!cursor_pos"(rx460_pos)
+    .const 'Sub' $P465 = "111_1275811487.95429" 
+    capture_lex $P465
+    $P10 = rx460_cur."before"($P465)
+    unless $P10, rx460_fail
+  # rx subrule "multi_declarator" subtype=capture negate=
+    rx460_cur."!cursor_pos"(rx460_pos)
+    $P10 = rx460_cur."multi_declarator"()
+    unless $P10, rx460_fail
+    rx460_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("multi_declarator")
+    rx460_pos = $P10."pos"()
+  # rx pass
+    rx460_cur."!cursor_pass"(rx460_pos, "term:sym<multi_declarator>")
+    rx460_cur."!cursor_debug"("PASS  ", "term:sym<multi_declarator>", " at pos=", rx460_pos)
+    .return (rx460_cur)
+  rx460_fail:
+.annotate 'line', 4
+    (rx460_rep, rx460_pos, $I10, $P10) = rx460_cur."!mark_fail"(0)
+    lt rx460_pos, -1, rx460_done
+    eq rx460_pos, -1, rx460_fail
+    jump $I10
+  rx460_done:
+    rx460_cur."!cursor_fail"()
+    rx460_cur."!cursor_debug"("FAIL  ", "term:sym<multi_declarator>")
+    .return (rx460_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<multi_declarator>"  :subid("110_1275811487.95429") :method
+.annotate 'line', 4
+    new $P462, "ResizablePMCArray"
+    push $P462, ""
+    .return ($P462)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "_block464"  :anon :subid("111_1275811487.95429") :method :outer("109_1275811487.95429")
+.annotate 'line', 230
+    .local string rx466_tgt
+    .local int rx466_pos
+    .local int rx466_off
+    .local int rx466_eos
+    .local int rx466_rep
+    .local pmc rx466_cur
+    (rx466_cur, rx466_pos, rx466_tgt) = self."!cursor_start"()
+    rx466_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx466_cur
+    .local pmc match
+    .lex "$/", match
+    length rx466_eos, rx466_tgt
+    gt rx466_pos, rx466_eos, rx466_done
+    set rx466_off, 0
+    lt rx466_pos, 2, rx466_start
+    sub rx466_off, rx466_pos, 1
+    substr rx466_tgt, rx466_tgt, rx466_off
+  rx466_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan467_done
+    goto rxscan467_scan
+  rxscan467_loop:
+    ($P10) = rx466_cur."from"()
+    inc $P10
+    set rx466_pos, $P10
+    ge rx466_pos, rx466_eos, rxscan467_done
+  rxscan467_scan:
+    set_addr $I10, rxscan467_loop
+    rx466_cur."!mark_push"(0, rx466_pos, $I10)
+  rxscan467_done:
+  alt468_0:
+    set_addr $I10, alt468_1
+    rx466_cur."!mark_push"(0, rx466_pos, $I10)
+  # rx literal  "multi"
+    add $I11, rx466_pos, 5
+    gt $I11, rx466_eos, rx466_fail
+    sub $I11, rx466_pos, rx466_off
+    substr $S10, rx466_tgt, $I11, 5
+    ne $S10, "multi", rx466_fail
+    add rx466_pos, 5
+    goto alt468_end
+  alt468_1:
+    set_addr $I10, alt468_2
+    rx466_cur."!mark_push"(0, rx466_pos, $I10)
+  # rx literal  "proto"
+    add $I11, rx466_pos, 5
+    gt $I11, rx466_eos, rx466_fail
+    sub $I11, rx466_pos, rx466_off
+    substr $S10, rx466_tgt, $I11, 5
+    ne $S10, "proto", rx466_fail
+    add rx466_pos, 5
+    goto alt468_end
+  alt468_2:
+  # rx literal  "only"
+    add $I11, rx466_pos, 4
+    gt $I11, rx466_eos, rx466_fail
+    sub $I11, rx466_pos, rx466_off
+    substr $S10, rx466_tgt, $I11, 4
+    ne $S10, "only", rx466_fail
+    add rx466_pos, 4
+  alt468_end:
+  # rx pass
+    rx466_cur."!cursor_pass"(rx466_pos, "")
+    rx466_cur."!cursor_debug"("PASS  ", "", " at pos=", rx466_pos)
+    .return (rx466_cur)
+  rx466_fail:
+    (rx466_rep, rx466_pos, $I10, $P10) = rx466_cur."!mark_fail"(0)
+    lt rx466_pos, -1, rx466_done
+    eq rx466_pos, -1, rx466_fail
+    jump $I10
+  rx466_done:
+    rx466_cur."!cursor_fail"()
+    rx466_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx466_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<regex_declarator>"  :subid("112_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx470_tgt
+    .local int rx470_pos
+    .local int rx470_off
+    .local int rx470_eos
+    .local int rx470_rep
+    .local pmc rx470_cur
+    (rx470_cur, rx470_pos, rx470_tgt) = self."!cursor_start"()
+    rx470_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+    .lex unicode:"$\x{a2}", rx470_cur
+    .local pmc match
+    .lex "$/", match
+    length rx470_eos, rx470_tgt
+    gt rx470_pos, rx470_eos, rx470_done
+    set rx470_off, 0
+    lt rx470_pos, 2, rx470_start
+    sub rx470_off, rx470_pos, 1
+    substr rx470_tgt, rx470_tgt, rx470_off
+  rx470_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan474_done
+    goto rxscan474_scan
+  rxscan474_loop:
+    ($P10) = rx470_cur."from"()
+    inc $P10
+    set rx470_pos, $P10
+    ge rx470_pos, rx470_eos, rxscan474_done
+  rxscan474_scan:
+    set_addr $I10, rxscan474_loop
+    rx470_cur."!mark_push"(0, rx470_pos, $I10)
+  rxscan474_done:
+.annotate 'line', 231
   # rx subrule "regex_declarator" subtype=capture negate=
-    rx452_cur."!cursor_pos"(rx452_pos)
-    $P10 = rx452_cur."regex_declarator"()
-    unless $P10, rx452_fail
-    rx452_cur."!mark_push"(0, -1, 0, $P10)
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."regex_declarator"()
+    unless $P10, rx470_fail
+    rx470_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("regex_declarator")
-    rx452_pos = $P10."pos"()
+    rx470_pos = $P10."pos"()
   # rx pass
-    rx452_cur."!cursor_pass"(rx452_pos, "term:sym<regex_declarator>")
-    rx452_cur."!cursor_debug"("PASS  ", "term:sym<regex_declarator>", " at pos=", rx452_pos)
-    .return (rx452_cur)
-  rx452_fail:
+    rx470_cur."!cursor_pass"(rx470_pos, "term:sym<regex_declarator>")
+    rx470_cur."!cursor_debug"("PASS  ", "term:sym<regex_declarator>", " at pos=", rx470_pos)
+    .return (rx470_cur)
+  rx470_fail:
 .annotate 'line', 4
-    (rx452_rep, rx452_pos, $I10, $P10) = rx452_cur."!mark_fail"(0)
-    lt rx452_pos, -1, rx452_done
-    eq rx452_pos, -1, rx452_fail
+    (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
+    lt rx470_pos, -1, rx470_done
+    eq rx470_pos, -1, rx470_fail
     jump $I10
-  rx452_done:
-    rx452_cur."!cursor_fail"()
-    rx452_cur."!cursor_debug"("FAIL  ", "term:sym<regex_declarator>")
-    .return (rx452_cur)
+  rx470_done:
+    rx470_cur."!cursor_fail"()
+    rx470_cur."!cursor_debug"("FAIL  ", "term:sym<regex_declarator>")
+    .return (rx470_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("110_1274853038.58734") :method
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("113_1275811487.95429") :method
 .annotate 'line', 4
-    $P454 = self."!PREFIX__!subrule"("regex_declarator", "")
-    new $P455, "ResizablePMCArray"
-    push $P455, $P454
-    .return ($P455)
+    $P472 = self."!PREFIX__!subrule"("regex_declarator", "")
+    new $P473, "ResizablePMCArray"
+    push $P473, $P472
+    .return ($P473)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>"  :subid("111_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<statement_prefix>"  :subid("114_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx458_tgt
-    .local int rx458_pos
-    .local int rx458_off
-    .local int rx458_eos
-    .local int rx458_rep
-    .local pmc rx458_cur
-    (rx458_cur, rx458_pos, rx458_tgt) = self."!cursor_start"()
-    rx458_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
-    .lex unicode:"$\x{a2}", rx458_cur
+    .local string rx476_tgt
+    .local int rx476_pos
+    .local int rx476_off
+    .local int rx476_eos
+    .local int rx476_rep
+    .local pmc rx476_cur
+    (rx476_cur, rx476_pos, rx476_tgt) = self."!cursor_start"()
+    rx476_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
+    .lex unicode:"$\x{a2}", rx476_cur
     .local pmc match
     .lex "$/", match
-    length rx458_eos, rx458_tgt
-    set rx458_off, 0
-    lt rx458_pos, 2, rx458_start
-    sub rx458_off, rx458_pos, 1
-    substr rx458_tgt, rx458_tgt, rx458_off
-  rx458_start:
+    length rx476_eos, rx476_tgt
+    gt rx476_pos, rx476_eos, rx476_done
+    set rx476_off, 0
+    lt rx476_pos, 2, rx476_start
+    sub rx476_off, rx476_pos, 1
+    substr rx476_tgt, rx476_tgt, rx476_off
+  rx476_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan462_done
-    goto rxscan462_scan
-  rxscan462_loop:
-    ($P10) = rx458_cur."from"()
+    ne $I10, -1, rxscan480_done
+    goto rxscan480_scan
+  rxscan480_loop:
+    ($P10) = rx476_cur."from"()
     inc $P10
-    set rx458_pos, $P10
-    ge rx458_pos, rx458_eos, rxscan462_done
-  rxscan462_scan:
-    set_addr $I10, rxscan462_loop
-    rx458_cur."!mark_push"(0, rx458_pos, $I10)
-  rxscan462_done:
-.annotate 'line', 230
+    set rx476_pos, $P10
+    ge rx476_pos, rx476_eos, rxscan480_done
+  rxscan480_scan:
+    set_addr $I10, rxscan480_loop
+    rx476_cur."!mark_push"(0, rx476_pos, $I10)
+  rxscan480_done:
+.annotate 'line', 232
   # rx subrule "statement_prefix" subtype=capture negate=
-    rx458_cur."!cursor_pos"(rx458_pos)
-    $P10 = rx458_cur."statement_prefix"()
-    unless $P10, rx458_fail
-    rx458_cur."!mark_push"(0, -1, 0, $P10)
+    rx476_cur."!cursor_pos"(rx476_pos)
+    $P10 = rx476_cur."statement_prefix"()
+    unless $P10, rx476_fail
+    rx476_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_prefix")
-    rx458_pos = $P10."pos"()
+    rx476_pos = $P10."pos"()
   # rx pass
-    rx458_cur."!cursor_pass"(rx458_pos, "term:sym<statement_prefix>")
-    rx458_cur."!cursor_debug"("PASS  ", "term:sym<statement_prefix>", " at pos=", rx458_pos)
-    .return (rx458_cur)
-  rx458_fail:
+    rx476_cur."!cursor_pass"(rx476_pos, "term:sym<statement_prefix>")
+    rx476_cur."!cursor_debug"("PASS  ", "term:sym<statement_prefix>", " at pos=", rx476_pos)
+    .return (rx476_cur)
+  rx476_fail:
 .annotate 'line', 4
-    (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0)
-    lt rx458_pos, -1, rx458_done
-    eq rx458_pos, -1, rx458_fail
+    (rx476_rep, rx476_pos, $I10, $P10) = rx476_cur."!mark_fail"(0)
+    lt rx476_pos, -1, rx476_done
+    eq rx476_pos, -1, rx476_fail
     jump $I10
-  rx458_done:
-    rx458_cur."!cursor_fail"()
-    rx458_cur."!cursor_debug"("FAIL  ", "term:sym<statement_prefix>")
-    .return (rx458_cur)
+  rx476_done:
+    rx476_cur."!cursor_fail"()
+    rx476_cur."!cursor_debug"("FAIL  ", "term:sym<statement_prefix>")
+    .return (rx476_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("112_1274853038.58734") :method
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("115_1275811487.95429") :method
 .annotate 'line', 4
-    $P460 = self."!PREFIX__!subrule"("statement_prefix", "")
-    new $P461, "ResizablePMCArray"
-    push $P461, $P460
-    .return ($P461)
+    $P478 = self."!PREFIX__!subrule"("statement_prefix", "")
+    new $P479, "ResizablePMCArray"
+    push $P479, $P478
+    .return ($P479)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("113_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<lambda>"  :subid("116_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx464_tgt
-    .local int rx464_pos
-    .local int rx464_off
-    .local int rx464_eos
-    .local int rx464_rep
-    .local pmc rx464_cur
-    (rx464_cur, rx464_pos, rx464_tgt) = self."!cursor_start"()
-    rx464_cur."!cursor_debug"("START ", "term:sym<lambda>")
-    .lex unicode:"$\x{a2}", rx464_cur
+    .local string rx482_tgt
+    .local int rx482_pos
+    .local int rx482_off
+    .local int rx482_eos
+    .local int rx482_rep
+    .local pmc rx482_cur
+    (rx482_cur, rx482_pos, rx482_tgt) = self."!cursor_start"()
+    rx482_cur."!cursor_debug"("START ", "term:sym<lambda>")
+    .lex unicode:"$\x{a2}", rx482_cur
     .local pmc match
     .lex "$/", match
-    length rx464_eos, rx464_tgt
-    set rx464_off, 0
-    lt rx464_pos, 2, rx464_start
-    sub rx464_off, rx464_pos, 1
-    substr rx464_tgt, rx464_tgt, rx464_off
-  rx464_start:
+    length rx482_eos, rx482_tgt
+    gt rx482_pos, rx482_eos, rx482_done
+    set rx482_off, 0
+    lt rx482_pos, 2, rx482_start
+    sub rx482_off, rx482_pos, 1
+    substr rx482_tgt, rx482_tgt, rx482_off
+  rx482_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan467_done
-    goto rxscan467_scan
-  rxscan467_loop:
-    ($P10) = rx464_cur."from"()
+    ne $I10, -1, rxscan485_done
+    goto rxscan485_scan
+  rxscan485_loop:
+    ($P10) = rx482_cur."from"()
     inc $P10
-    set rx464_pos, $P10
-    ge rx464_pos, rx464_eos, rxscan467_done
-  rxscan467_scan:
-    set_addr $I10, rxscan467_loop
-    rx464_cur."!mark_push"(0, rx464_pos, $I10)
-  rxscan467_done:
-.annotate 'line', 231
+    set rx482_pos, $P10
+    ge rx482_pos, rx482_eos, rxscan485_done
+  rxscan485_scan:
+    set_addr $I10, rxscan485_loop
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
+  rxscan485_done:
+.annotate 'line', 233
   # rx subrule "lambda" subtype=zerowidth negate=
-    rx464_cur."!cursor_pos"(rx464_pos)
-    $P10 = rx464_cur."lambda"()
-    unless $P10, rx464_fail
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."lambda"()
+    unless $P10, rx482_fail
   # rx subrule "pblock" subtype=capture negate=
-    rx464_cur."!cursor_pos"(rx464_pos)
-    $P10 = rx464_cur."pblock"()
-    unless $P10, rx464_fail
-    rx464_cur."!mark_push"(0, -1, 0, $P10)
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."pblock"()
+    unless $P10, rx482_fail
+    rx482_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx464_pos = $P10."pos"()
+    rx482_pos = $P10."pos"()
   # rx pass
-    rx464_cur."!cursor_pass"(rx464_pos, "term:sym<lambda>")
-    rx464_cur."!cursor_debug"("PASS  ", "term:sym<lambda>", " at pos=", rx464_pos)
-    .return (rx464_cur)
-  rx464_fail:
+    rx482_cur."!cursor_pass"(rx482_pos, "term:sym<lambda>")
+    rx482_cur."!cursor_debug"("PASS  ", "term:sym<lambda>", " at pos=", rx482_pos)
+    .return (rx482_cur)
+  rx482_fail:
 .annotate 'line', 4
-    (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
-    lt rx464_pos, -1, rx464_done
-    eq rx464_pos, -1, rx464_fail
+    (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
+    lt rx482_pos, -1, rx482_done
+    eq rx482_pos, -1, rx482_fail
     jump $I10
-  rx464_done:
-    rx464_cur."!cursor_fail"()
-    rx464_cur."!cursor_debug"("FAIL  ", "term:sym<lambda>")
-    .return (rx464_cur)
+  rx482_done:
+    rx482_cur."!cursor_fail"()
+    rx482_cur."!cursor_debug"("FAIL  ", "term:sym<lambda>")
+    .return (rx482_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("114_1274853038.58734") :method
+.sub "!PREFIX__term:sym<lambda>"  :subid("117_1275811487.95429") :method
 .annotate 'line', 4
-    new $P466, "ResizablePMCArray"
-    push $P466, ""
-    .return ($P466)
+    new $P484, "ResizablePMCArray"
+    push $P484, ""
+    .return ($P484)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("115_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "fatarrow"  :subid("118_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx469_tgt
-    .local int rx469_pos
-    .local int rx469_off
-    .local int rx469_eos
-    .local int rx469_rep
-    .local pmc rx469_cur
-    (rx469_cur, rx469_pos, rx469_tgt) = self."!cursor_start"()
-    rx469_cur."!cursor_debug"("START ", "fatarrow")
-    .lex unicode:"$\x{a2}", rx469_cur
+    .local string rx487_tgt
+    .local int rx487_pos
+    .local int rx487_off
+    .local int rx487_eos
+    .local int rx487_rep
+    .local pmc rx487_cur
+    (rx487_cur, rx487_pos, rx487_tgt) = self."!cursor_start"()
+    rx487_cur."!cursor_debug"("START ", "fatarrow")
+    .lex unicode:"$\x{a2}", rx487_cur
     .local pmc match
     .lex "$/", match
-    length rx469_eos, rx469_tgt
-    set rx469_off, 0
-    lt rx469_pos, 2, rx469_start
-    sub rx469_off, rx469_pos, 1
-    substr rx469_tgt, rx469_tgt, rx469_off
-  rx469_start:
+    length rx487_eos, rx487_tgt
+    gt rx487_pos, rx487_eos, rx487_done
+    set rx487_off, 0
+    lt rx487_pos, 2, rx487_start
+    sub rx487_off, rx487_pos, 1
+    substr rx487_tgt, rx487_tgt, rx487_off
+  rx487_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan473_done
-    goto rxscan473_scan
-  rxscan473_loop:
-    ($P10) = rx469_cur."from"()
+    ne $I10, -1, rxscan491_done
+    goto rxscan491_scan
+  rxscan491_loop:
+    ($P10) = rx487_cur."from"()
     inc $P10
-    set rx469_pos, $P10
-    ge rx469_pos, rx469_eos, rxscan473_done
-  rxscan473_scan:
-    set_addr $I10, rxscan473_loop
-    rx469_cur."!mark_push"(0, rx469_pos, $I10)
-  rxscan473_done:
-.annotate 'line', 234
+    set rx487_pos, $P10
+    ge rx487_pos, rx487_eos, rxscan491_done
+  rxscan491_scan:
+    set_addr $I10, rxscan491_loop
+    rx487_cur."!mark_push"(0, rx487_pos, $I10)
+  rxscan491_done:
+.annotate 'line', 236
   # rx subrule "identifier" subtype=capture negate=
-    rx469_cur."!cursor_pos"(rx469_pos)
-    $P10 = rx469_cur."identifier"()
-    unless $P10, rx469_fail
-    rx469_cur."!mark_push"(0, -1, 0, $P10)
+    rx487_cur."!cursor_pos"(rx487_pos)
+    $P10 = rx487_cur."identifier"()
+    unless $P10, rx487_fail
+    rx487_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("key")
-    rx469_pos = $P10."pos"()
-  # rx rxquantr474 ** 0..*
-    set_addr $I475, rxquantr474_done
-    rx469_cur."!mark_push"(0, rx469_pos, $I475)
-  rxquantr474_loop:
+    rx487_pos = $P10."pos"()
+  # rx rxquantr492 ** 0..*
+    set_addr $I493, rxquantr492_done
+    rx487_cur."!mark_push"(0, rx487_pos, $I493)
+  rxquantr492_loop:
   # rx enumcharlist negate=0 
-    ge rx469_pos, rx469_eos, rx469_fail
-    sub $I10, rx469_pos, rx469_off
-    substr $S10, rx469_tgt, $I10, 1
+    ge rx487_pos, rx487_eos, rx487_fail
+    sub $I10, rx487_pos, rx487_off
+    substr $S10, rx487_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, rx469_fail
-    inc rx469_pos
-    (rx469_rep) = rx469_cur."!mark_commit"($I475)
-    rx469_cur."!mark_push"(rx469_rep, rx469_pos, $I475)
-    goto rxquantr474_loop
-  rxquantr474_done:
+    lt $I11, 0, rx487_fail
+    inc rx487_pos
+    (rx487_rep) = rx487_cur."!mark_commit"($I493)
+    rx487_cur."!mark_push"(rx487_rep, rx487_pos, $I493)
+    goto rxquantr492_loop
+  rxquantr492_done:
   # rx literal  "=>"
-    add $I11, rx469_pos, 2
-    gt $I11, rx469_eos, rx469_fail
-    sub $I11, rx469_pos, rx469_off
-    substr $S10, rx469_tgt, $I11, 2
-    ne $S10, "=>", rx469_fail
-    add rx469_pos, 2
-  # rx subrule "ws" subtype=method negate=
-    rx469_cur."!cursor_pos"(rx469_pos)
-    $P10 = rx469_cur."ws"()
-    unless $P10, rx469_fail
-    rx469_pos = $P10."pos"()
+    add $I11, rx487_pos, 2
+    gt $I11, rx487_eos, rx487_fail
+    sub $I11, rx487_pos, rx487_off
+    substr $S10, rx487_tgt, $I11, 2
+    ne $S10, "=>", rx487_fail
+    add rx487_pos, 2
+  # rx subrule "ws" subtype=method negate=
+    rx487_cur."!cursor_pos"(rx487_pos)
+    $P10 = rx487_cur."ws"()
+    unless $P10, rx487_fail
+    rx487_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx469_cur."!cursor_pos"(rx469_pos)
-    $P10 = rx469_cur."EXPR"("i=")
-    unless $P10, rx469_fail
-    rx469_cur."!mark_push"(0, -1, 0, $P10)
+    rx487_cur."!cursor_pos"(rx487_pos)
+    $P10 = rx487_cur."EXPR"("i=")
+    unless $P10, rx487_fail
+    rx487_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("val")
-    rx469_pos = $P10."pos"()
-.annotate 'line', 233
+    rx487_pos = $P10."pos"()
+.annotate 'line', 235
   # rx pass
-    rx469_cur."!cursor_pass"(rx469_pos, "fatarrow")
-    rx469_cur."!cursor_debug"("PASS  ", "fatarrow", " at pos=", rx469_pos)
-    .return (rx469_cur)
-  rx469_fail:
+    rx487_cur."!cursor_pass"(rx487_pos, "fatarrow")
+    rx487_cur."!cursor_debug"("PASS  ", "fatarrow", " at pos=", rx487_pos)
+    .return (rx487_cur)
+  rx487_fail:
 .annotate 'line', 4
-    (rx469_rep, rx469_pos, $I10, $P10) = rx469_cur."!mark_fail"(0)
-    lt rx469_pos, -1, rx469_done
-    eq rx469_pos, -1, rx469_fail
+    (rx487_rep, rx487_pos, $I10, $P10) = rx487_cur."!mark_fail"(0)
+    lt rx487_pos, -1, rx487_done
+    eq rx487_pos, -1, rx487_fail
     jump $I10
-  rx469_done:
-    rx469_cur."!cursor_fail"()
-    rx469_cur."!cursor_debug"("FAIL  ", "fatarrow")
-    .return (rx469_cur)
+  rx487_done:
+    rx487_cur."!cursor_fail"()
+    rx487_cur."!cursor_debug"("FAIL  ", "fatarrow")
+    .return (rx487_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("116_1274853038.58734") :method
+.sub "!PREFIX__fatarrow"  :subid("119_1275811487.95429") :method
 .annotate 'line', 4
-    $P471 = self."!PREFIX__!subrule"("key", "")
-    new $P472, "ResizablePMCArray"
-    push $P472, $P471
-    .return ($P472)
+    $P489 = self."!PREFIX__!subrule"("identifier", "")
+    new $P490, "ResizablePMCArray"
+    push $P490, $P489
+    .return ($P490)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("117_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "colonpair"  :subid("120_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx477_tgt
-    .local int rx477_pos
-    .local int rx477_off
-    .local int rx477_eos
-    .local int rx477_rep
-    .local pmc rx477_cur
-    (rx477_cur, rx477_pos, rx477_tgt) = self."!cursor_start"()
-    rx477_cur."!cursor_debug"("START ", "colonpair")
-    rx477_cur."!cursor_caparray"("circumfix")
-    .lex unicode:"$\x{a2}", rx477_cur
+    .local string rx495_tgt
+    .local int rx495_pos
+    .local int rx495_off
+    .local int rx495_eos
+    .local int rx495_rep
+    .local pmc rx495_cur
+    (rx495_cur, rx495_pos, rx495_tgt) = self."!cursor_start"()
+    rx495_cur."!cursor_debug"("START ", "colonpair")
+    rx495_cur."!cursor_caparray"("circumfix")
+    .lex unicode:"$\x{a2}", rx495_cur
     .local pmc match
     .lex "$/", match
-    length rx477_eos, rx477_tgt
-    set rx477_off, 0
-    lt rx477_pos, 2, rx477_start
-    sub rx477_off, rx477_pos, 1
-    substr rx477_tgt, rx477_tgt, rx477_off
-  rx477_start:
+    length rx495_eos, rx495_tgt
+    gt rx495_pos, rx495_eos, rx495_done
+    set rx495_off, 0
+    lt rx495_pos, 2, rx495_start
+    sub rx495_off, rx495_pos, 1
+    substr rx495_tgt, rx495_tgt, rx495_off
+  rx495_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan483_done
-    goto rxscan483_scan
-  rxscan483_loop:
-    ($P10) = rx477_cur."from"()
+    ne $I10, -1, rxscan501_done
+    goto rxscan501_scan
+  rxscan501_loop:
+    ($P10) = rx495_cur."from"()
     inc $P10
-    set rx477_pos, $P10
-    ge rx477_pos, rx477_eos, rxscan483_done
-  rxscan483_scan:
-    set_addr $I10, rxscan483_loop
-    rx477_cur."!mark_push"(0, rx477_pos, $I10)
-  rxscan483_done:
-.annotate 'line', 238
-  # rx literal  ":"
-    add $I11, rx477_pos, 1
-    gt $I11, rx477_eos, rx477_fail
-    sub $I11, rx477_pos, rx477_off
-    substr $S10, rx477_tgt, $I11, 1
-    ne $S10, ":", rx477_fail
-    add rx477_pos, 1
-  alt484_0:
-.annotate 'line', 239
-    set_addr $I10, alt484_1
-    rx477_cur."!mark_push"(0, rx477_pos, $I10)
+    set rx495_pos, $P10
+    ge rx495_pos, rx495_eos, rxscan501_done
+  rxscan501_scan:
+    set_addr $I10, rxscan501_loop
+    rx495_cur."!mark_push"(0, rx495_pos, $I10)
+  rxscan501_done:
 .annotate 'line', 240
+  # rx literal  ":"
+    add $I11, rx495_pos, 1
+    gt $I11, rx495_eos, rx495_fail
+    sub $I11, rx495_pos, rx495_off
+    substr $S10, rx495_tgt, $I11, 1
+    ne $S10, ":", rx495_fail
+    add rx495_pos, 1
+  alt502_0:
+.annotate 'line', 241
+    set_addr $I10, alt502_1
+    rx495_cur."!mark_push"(0, rx495_pos, $I10)
+.annotate 'line', 242
   # rx subcapture "not"
-    set_addr $I10, rxcap_485_fail
-    rx477_cur."!mark_push"(0, rx477_pos, $I10)
+    set_addr $I10, rxcap_503_fail
+    rx495_cur."!mark_push"(0, rx495_pos, $I10)
   # rx literal  "!"
-    add $I11, rx477_pos, 1
-    gt $I11, rx477_eos, rx477_fail
-    sub $I11, rx477_pos, rx477_off
-    substr $S10, rx477_tgt, $I11, 1
-    ne $S10, "!", rx477_fail
-    add rx477_pos, 1
-    set_addr $I10, rxcap_485_fail
-    ($I12, $I11) = rx477_cur."!mark_peek"($I10)
-    rx477_cur."!cursor_pos"($I11)
-    ($P10) = rx477_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx477_pos, "")
-    rx477_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx495_pos, 1
+    gt $I11, rx495_eos, rx495_fail
+    sub $I11, rx495_pos, rx495_off
+    substr $S10, rx495_tgt, $I11, 1
+    ne $S10, "!", rx495_fail
+    add rx495_pos, 1
+    set_addr $I10, rxcap_503_fail
+    ($I12, $I11) = rx495_cur."!mark_peek"($I10)
+    rx495_cur."!cursor_pos"($I11)
+    ($P10) = rx495_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx495_pos, "")
+    rx495_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("not")
-    goto rxcap_485_done
-  rxcap_485_fail:
-    goto rx477_fail
-  rxcap_485_done:
+    goto rxcap_503_done
+  rxcap_503_fail:
+    goto rx495_fail
+  rxcap_503_done:
   # rx subrule "identifier" subtype=capture negate=
-    rx477_cur."!cursor_pos"(rx477_pos)
-    $P10 = rx477_cur."identifier"()
-    unless $P10, rx477_fail
-    rx477_cur."!mark_push"(0, -1, 0, $P10)
+    rx495_cur."!cursor_pos"(rx495_pos)
+    $P10 = rx495_cur."identifier"()
+    unless $P10, rx495_fail
+    rx495_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx477_pos = $P10."pos"()
-    goto alt484_end
-  alt484_1:
-    set_addr $I10, alt484_2
-    rx477_cur."!mark_push"(0, rx477_pos, $I10)
-.annotate 'line', 241
+    rx495_pos = $P10."pos"()
+    goto alt502_end
+  alt502_1:
+    set_addr $I10, alt502_2
+    rx495_cur."!mark_push"(0, rx495_pos, $I10)
+.annotate 'line', 243
   # rx subrule "identifier" subtype=capture negate=
-    rx477_cur."!cursor_pos"(rx477_pos)
-    $P10 = rx477_cur."identifier"()
-    unless $P10, rx477_fail
-    rx477_cur."!mark_push"(0, -1, 0, $P10)
+    rx495_cur."!cursor_pos"(rx495_pos)
+    $P10 = rx495_cur."identifier"()
+    unless $P10, rx495_fail
+    rx495_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx477_pos = $P10."pos"()
-  # rx rxquantr486 ** 0..1
-    set_addr $I487, rxquantr486_done
-    rx477_cur."!mark_push"(0, rx477_pos, $I487)
-  rxquantr486_loop:
+    rx495_pos = $P10."pos"()
+  # rx rxquantr504 ** 0..1
+    set_addr $I505, rxquantr504_done
+    rx495_cur."!mark_push"(0, rx495_pos, $I505)
+  rxquantr504_loop:
   # rx subrule "circumfix" subtype=capture negate=
-    rx477_cur."!cursor_pos"(rx477_pos)
-    $P10 = rx477_cur."circumfix"()
-    unless $P10, rx477_fail
-    rx477_cur."!mark_push"(0, -1, 0, $P10)
+    rx495_cur."!cursor_pos"(rx495_pos)
+    $P10 = rx495_cur."circumfix"()
+    unless $P10, rx495_fail
+    rx495_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("circumfix")
-    rx477_pos = $P10."pos"()
-    (rx477_rep) = rx477_cur."!mark_commit"($I487)
-  rxquantr486_done:
-    goto alt484_end
-  alt484_2:
-.annotate 'line', 242
+    rx495_pos = $P10."pos"()
+    (rx495_rep) = rx495_cur."!mark_commit"($I505)
+  rxquantr504_done:
+    goto alt502_end
+  alt502_2:
+.annotate 'line', 244
   # rx subrule "circumfix" subtype=capture negate=
-    rx477_cur."!cursor_pos"(rx477_pos)
-    $P10 = rx477_cur."circumfix"()
-    unless $P10, rx477_fail
-    rx477_cur."!mark_push"(0, -1, 0, $P10)
+    rx495_cur."!cursor_pos"(rx495_pos)
+    $P10 = rx495_cur."circumfix"()
+    unless $P10, rx495_fail
+    rx495_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("circumfix")
-    rx477_pos = $P10."pos"()
-  alt484_end:
-.annotate 'line', 237
-  # rx pass
-    rx477_cur."!cursor_pass"(rx477_pos, "colonpair")
-    rx477_cur."!cursor_debug"("PASS  ", "colonpair", " at pos=", rx477_pos)
-    .return (rx477_cur)
-  rx477_fail:
-.annotate 'line', 4
-    (rx477_rep, rx477_pos, $I10, $P10) = rx477_cur."!mark_fail"(0)
-    lt rx477_pos, -1, rx477_done
-    eq rx477_pos, -1, rx477_fail
-    jump $I10
-  rx477_done:
-    rx477_cur."!cursor_fail"()
-    rx477_cur."!cursor_debug"("FAIL  ", "colonpair")
-    .return (rx477_cur)
+    rx495_pos = $P10."pos"()
+  alt502_end:
+.annotate 'line', 239
+  # rx pass
+    rx495_cur."!cursor_pass"(rx495_pos, "colonpair")
+    rx495_cur."!cursor_debug"("PASS  ", "colonpair", " at pos=", rx495_pos)
+    .return (rx495_cur)
+  rx495_fail:
+.annotate 'line', 4
+    (rx495_rep, rx495_pos, $I10, $P10) = rx495_cur."!mark_fail"(0)
+    lt rx495_pos, -1, rx495_done
+    eq rx495_pos, -1, rx495_fail
+    jump $I10
+  rx495_done:
+    rx495_cur."!cursor_fail"()
+    rx495_cur."!cursor_debug"("FAIL  ", "colonpair")
+    .return (rx495_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("118_1274853038.58734") :method
-.annotate 'line', 4
-    $P479 = self."!PREFIX__!subrule"("circumfix", ":")
-    $P480 = self."!PREFIX__!subrule"("identifier", ":")
-    $P481 = self."!PREFIX__!subrule"("identifier", ":!")
-    new $P482, "ResizablePMCArray"
-    push $P482, $P479
-    push $P482, $P480
-    push $P482, $P481
-    .return ($P482)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("119_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 4
-    .local string rx489_tgt
-    .local int rx489_pos
-    .local int rx489_off
-    .local int rx489_eos
-    .local int rx489_rep
-    .local pmc rx489_cur
-    (rx489_cur, rx489_pos, rx489_tgt) = self."!cursor_start"()
-    rx489_cur."!cursor_debug"("START ", "variable")
-    rx489_cur."!cursor_caparray"("twigil")
-    .lex unicode:"$\x{a2}", rx489_cur
-    .local pmc match
-    .lex "$/", match
-    length rx489_eos, rx489_tgt
-    set rx489_off, 0
-    lt rx489_pos, 2, rx489_start
-    sub rx489_off, rx489_pos, 1
-    substr rx489_tgt, rx489_tgt, rx489_off
-  rx489_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan494_done
-    goto rxscan494_scan
-  rxscan494_loop:
-    ($P10) = rx489_cur."from"()
-    inc $P10
-    set rx489_pos, $P10
-    ge rx489_pos, rx489_eos, rxscan494_done
-  rxscan494_scan:
-    set_addr $I10, rxscan494_loop
-    rx489_cur."!mark_push"(0, rx489_pos, $I10)
-  rxscan494_done:
-  alt495_0:
-.annotate 'line', 246
-    set_addr $I10, alt495_1
-    rx489_cur."!mark_push"(0, rx489_pos, $I10)
-.annotate 'line', 247
+.sub "!PREFIX__colonpair"  :subid("121_1275811487.95429") :method
+.annotate 'line', 4
+    $P497 = self."!PREFIX__!subrule"("circumfix", ":")
+    $P498 = self."!PREFIX__!subrule"("identifier", ":")
+    $P499 = self."!PREFIX__!subrule"("identifier", ":!")
+    new $P500, "ResizablePMCArray"
+    push $P500, $P497
+    push $P500, $P498
+    push $P500, $P499
+    .return ($P500)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "variable"  :subid("122_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx507_tgt
+    .local int rx507_pos
+    .local int rx507_off
+    .local int rx507_eos
+    .local int rx507_rep
+    .local pmc rx507_cur
+    (rx507_cur, rx507_pos, rx507_tgt) = self."!cursor_start"()
+    rx507_cur."!cursor_debug"("START ", "variable")
+    rx507_cur."!cursor_caparray"("twigil")
+    .lex unicode:"$\x{a2}", rx507_cur
+    .local pmc match
+    .lex "$/", match
+    length rx507_eos, rx507_tgt
+    gt rx507_pos, rx507_eos, rx507_done
+    set rx507_off, 0
+    lt rx507_pos, 2, rx507_start
+    sub rx507_off, rx507_pos, 1
+    substr rx507_tgt, rx507_tgt, rx507_off
+  rx507_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan512_done
+    goto rxscan512_scan
+  rxscan512_loop:
+    ($P10) = rx507_cur."from"()
+    inc $P10
+    set rx507_pos, $P10
+    ge rx507_pos, rx507_eos, rxscan512_done
+  rxscan512_scan:
+    set_addr $I10, rxscan512_loop
+    rx507_cur."!mark_push"(0, rx507_pos, $I10)
+  rxscan512_done:
+  alt513_0:
+.annotate 'line', 248
+    set_addr $I10, alt513_1
+    rx507_cur."!mark_push"(0, rx507_pos, $I10)
+.annotate 'line', 249
   # rx subrule "sigil" subtype=capture negate=
-    rx489_cur."!cursor_pos"(rx489_pos)
-    $P10 = rx489_cur."sigil"()
-    unless $P10, rx489_fail
-    rx489_cur."!mark_push"(0, -1, 0, $P10)
+    rx507_cur."!cursor_pos"(rx507_pos)
+    $P10 = rx507_cur."sigil"()
+    unless $P10, rx507_fail
+    rx507_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx489_pos = $P10."pos"()
-  # rx rxquantr496 ** 0..1
-    set_addr $I497, rxquantr496_done
-    rx489_cur."!mark_push"(0, rx489_pos, $I497)
-  rxquantr496_loop:
+    rx507_pos = $P10."pos"()
+  # rx rxquantr514 ** 0..1
+    set_addr $I515, rxquantr514_done
+    rx507_cur."!mark_push"(0, rx507_pos, $I515)
+  rxquantr514_loop:
   # rx subrule "twigil" subtype=capture negate=
-    rx489_cur."!cursor_pos"(rx489_pos)
-    $P10 = rx489_cur."twigil"()
-    unless $P10, rx489_fail
-    rx489_cur."!mark_push"(0, -1, 0, $P10)
+    rx507_cur."!cursor_pos"(rx507_pos)
+    $P10 = rx507_cur."twigil"()
+    unless $P10, rx507_fail
+    rx507_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("twigil")
-    rx489_pos = $P10."pos"()
-    (rx489_rep) = rx489_cur."!mark_commit"($I497)
-  rxquantr496_done:
+    rx507_pos = $P10."pos"()
+    (rx507_rep) = rx507_cur."!mark_commit"($I515)
+  rxquantr514_done:
   # rx subrule "name" subtype=capture negate=
-    rx489_cur."!cursor_pos"(rx489_pos)
-    $P10 = rx489_cur."name"()
-    unless $P10, rx489_fail
-    rx489_cur."!mark_push"(0, -1, 0, $P10)
+    rx507_cur."!cursor_pos"(rx507_pos)
+    $P10 = rx507_cur."name"()
+    unless $P10, rx507_fail
+    rx507_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("desigilname")
-    rx489_pos = $P10."pos"()
-    goto alt495_end
-  alt495_1:
-    set_addr $I10, alt495_2
-    rx489_cur."!mark_push"(0, rx489_pos, $I10)
-.annotate 'line', 248
+    rx507_pos = $P10."pos"()
+    goto alt513_end
+  alt513_1:
+    set_addr $I10, alt513_2
+    rx507_cur."!mark_push"(0, rx507_pos, $I10)
+.annotate 'line', 250
   # rx subrule "sigil" subtype=capture negate=
-    rx489_cur."!cursor_pos"(rx489_pos)
-    $P10 = rx489_cur."sigil"()
-    unless $P10, rx489_fail
-    rx489_cur."!mark_push"(0, -1, 0, $P10)
+    rx507_cur."!cursor_pos"(rx507_pos)
+    $P10 = rx507_cur."sigil"()
+    unless $P10, rx507_fail
+    rx507_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx489_pos = $P10."pos"()
+    rx507_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx489_pos, rx489_eos, rx489_fail
-    sub $I10, rx489_pos, rx489_off
-    substr $S10, rx489_tgt, $I10, 1
+    ge rx507_pos, rx507_eos, rx507_fail
+    sub $I10, rx507_pos, rx507_off
+    substr $S10, rx507_tgt, $I10, 1
     index $I11, "<[", $S10
-    lt $I11, 0, rx489_fail
+    lt $I11, 0, rx507_fail
   # rx subrule "postcircumfix" subtype=capture negate=
-    rx489_cur."!cursor_pos"(rx489_pos)
-    $P10 = rx489_cur."postcircumfix"()
-    unless $P10, rx489_fail
-    rx489_cur."!mark_push"(0, -1, 0, $P10)
+    rx507_cur."!cursor_pos"(rx507_pos)
+    $P10 = rx507_cur."postcircumfix"()
+    unless $P10, rx507_fail
+    rx507_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("postcircumfix")
-    rx489_pos = $P10."pos"()
-    goto alt495_end
-  alt495_2:
-.annotate 'line', 249
+    rx507_pos = $P10."pos"()
+    goto alt513_end
+  alt513_2:
+.annotate 'line', 251
   # rx subcapture "sigil"
-    set_addr $I10, rxcap_498_fail
-    rx489_cur."!mark_push"(0, rx489_pos, $I10)
+    set_addr $I10, rxcap_516_fail
+    rx507_cur."!mark_push"(0, rx507_pos, $I10)
   # rx literal  "$"
-    add $I11, rx489_pos, 1
-    gt $I11, rx489_eos, rx489_fail
-    sub $I11, rx489_pos, rx489_off
-    substr $S10, rx489_tgt, $I11, 1
-    ne $S10, "$", rx489_fail
-    add rx489_pos, 1
-    set_addr $I10, rxcap_498_fail
-    ($I12, $I11) = rx489_cur."!mark_peek"($I10)
-    rx489_cur."!cursor_pos"($I11)
-    ($P10) = rx489_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx489_pos, "")
-    rx489_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx507_pos, 1
+    gt $I11, rx507_eos, rx507_fail
+    sub $I11, rx507_pos, rx507_off
+    substr $S10, rx507_tgt, $I11, 1
+    ne $S10, "$", rx507_fail
+    add rx507_pos, 1
+    set_addr $I10, rxcap_516_fail
+    ($I12, $I11) = rx507_cur."!mark_peek"($I10)
+    rx507_cur."!cursor_pos"($I11)
+    ($P10) = rx507_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx507_pos, "")
+    rx507_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    goto rxcap_498_done
-  rxcap_498_fail:
-    goto rx489_fail
-  rxcap_498_done:
+    goto rxcap_516_done
+  rxcap_516_fail:
+    goto rx507_fail
+  rxcap_516_done:
   # rx subcapture "desigilname"
-    set_addr $I10, rxcap_499_fail
-    rx489_cur."!mark_push"(0, rx489_pos, $I10)
+    set_addr $I10, rxcap_517_fail
+    rx507_cur."!mark_push"(0, rx507_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx489_pos, rx489_eos, rx489_fail
-    sub $I10, rx489_pos, rx489_off
-    substr $S10, rx489_tgt, $I10, 1
+    ge rx507_pos, rx507_eos, rx507_fail
+    sub $I10, rx507_pos, rx507_off
+    substr $S10, rx507_tgt, $I10, 1
     index $I11, "/_!", $S10
-    lt $I11, 0, rx489_fail
-    inc rx489_pos
-    set_addr $I10, rxcap_499_fail
-    ($I12, $I11) = rx489_cur."!mark_peek"($I10)
-    rx489_cur."!cursor_pos"($I11)
-    ($P10) = rx489_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx489_pos, "")
-    rx489_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx507_fail
+    inc rx507_pos
+    set_addr $I10, rxcap_517_fail
+    ($I12, $I11) = rx507_cur."!mark_peek"($I10)
+    rx507_cur."!cursor_pos"($I11)
+    ($P10) = rx507_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx507_pos, "")
+    rx507_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("desigilname")
-    goto rxcap_499_done
-  rxcap_499_fail:
-    goto rx489_fail
-  rxcap_499_done:
-  alt495_end:
-.annotate 'line', 246
+    goto rxcap_517_done
+  rxcap_517_fail:
+    goto rx507_fail
+  rxcap_517_done:
+  alt513_end:
+.annotate 'line', 248
   # rx pass
-    rx489_cur."!cursor_pass"(rx489_pos, "variable")
-    rx489_cur."!cursor_debug"("PASS  ", "variable", " at pos=", rx489_pos)
-    .return (rx489_cur)
-  rx489_fail:
+    rx507_cur."!cursor_pass"(rx507_pos, "variable")
+    rx507_cur."!cursor_debug"("PASS  ", "variable", " at pos=", rx507_pos)
+    .return (rx507_cur)
+  rx507_fail:
 .annotate 'line', 4
-    (rx489_rep, rx489_pos, $I10, $P10) = rx489_cur."!mark_fail"(0)
-    lt rx489_pos, -1, rx489_done
-    eq rx489_pos, -1, rx489_fail
+    (rx507_rep, rx507_pos, $I10, $P10) = rx507_cur."!mark_fail"(0)
+    lt rx507_pos, -1, rx507_done
+    eq rx507_pos, -1, rx507_fail
     jump $I10
-  rx489_done:
-    rx489_cur."!cursor_fail"()
-    rx489_cur."!cursor_debug"("FAIL  ", "variable")
-    .return (rx489_cur)
+  rx507_done:
+    rx507_cur."!cursor_fail"()
+    rx507_cur."!cursor_debug"("FAIL  ", "variable")
+    .return (rx507_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("120_1274853038.58734") :method
+.sub "!PREFIX__variable"  :subid("123_1275811487.95429") :method
 .annotate 'line', 4
-    $P491 = self."!PREFIX__!subrule"("sigil", "")
-    $P492 = self."!PREFIX__!subrule"("sigil", "")
-    new $P493, "ResizablePMCArray"
-    push $P493, "$!"
-    push $P493, "$_"
-    push $P493, "$/"
-    push $P493, $P491
-    push $P493, $P492
-    .return ($P493)
+    $P509 = self."!PREFIX__!subrule"("sigil", "")
+    $P510 = self."!PREFIX__!subrule"("sigil", "")
+    new $P511, "ResizablePMCArray"
+    push $P511, "$!"
+    push $P511, "$_"
+    push $P511, "$/"
+    push $P511, $P509
+    push $P511, $P510
+    .return ($P511)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("121_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "sigil"  :subid("124_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx501_tgt
-    .local int rx501_pos
-    .local int rx501_off
-    .local int rx501_eos
-    .local int rx501_rep
-    .local pmc rx501_cur
-    (rx501_cur, rx501_pos, rx501_tgt) = self."!cursor_start"()
-    rx501_cur."!cursor_debug"("START ", "sigil")
-    .lex unicode:"$\x{a2}", rx501_cur
-    .local pmc match
-    .lex "$/", match
-    length rx501_eos, rx501_tgt
-    set rx501_off, 0
-    lt rx501_pos, 2, rx501_start
-    sub rx501_off, rx501_pos, 1
-    substr rx501_tgt, rx501_tgt, rx501_off
-  rx501_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan504_done
-    goto rxscan504_scan
-  rxscan504_loop:
-    ($P10) = rx501_cur."from"()
-    inc $P10
-    set rx501_pos, $P10
-    ge rx501_pos, rx501_eos, rxscan504_done
-  rxscan504_scan:
-    set_addr $I10, rxscan504_loop
-    rx501_cur."!mark_push"(0, rx501_pos, $I10)
-  rxscan504_done:
-.annotate 'line', 252
+    .local string rx519_tgt
+    .local int rx519_pos
+    .local int rx519_off
+    .local int rx519_eos
+    .local int rx519_rep
+    .local pmc rx519_cur
+    (rx519_cur, rx519_pos, rx519_tgt) = self."!cursor_start"()
+    rx519_cur."!cursor_debug"("START ", "sigil")
+    .lex unicode:"$\x{a2}", rx519_cur
+    .local pmc match
+    .lex "$/", match
+    length rx519_eos, rx519_tgt
+    gt rx519_pos, rx519_eos, rx519_done
+    set rx519_off, 0
+    lt rx519_pos, 2, rx519_start
+    sub rx519_off, rx519_pos, 1
+    substr rx519_tgt, rx519_tgt, rx519_off
+  rx519_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan522_done
+    goto rxscan522_scan
+  rxscan522_loop:
+    ($P10) = rx519_cur."from"()
+    inc $P10
+    set rx519_pos, $P10
+    ge rx519_pos, rx519_eos, rxscan522_done
+  rxscan522_scan:
+    set_addr $I10, rxscan522_loop
+    rx519_cur."!mark_push"(0, rx519_pos, $I10)
+  rxscan522_done:
+.annotate 'line', 254
   # rx enumcharlist negate=0 
-    ge rx501_pos, rx501_eos, rx501_fail
-    sub $I10, rx501_pos, rx501_off
-    substr $S10, rx501_tgt, $I10, 1
+    ge rx519_pos, rx519_eos, rx519_fail
+    sub $I10, rx519_pos, rx519_off
+    substr $S10, rx519_tgt, $I10, 1
     index $I11, "$@%&", $S10
-    lt $I11, 0, rx501_fail
-    inc rx501_pos
+    lt $I11, 0, rx519_fail
+    inc rx519_pos
   # rx pass
-    rx501_cur."!cursor_pass"(rx501_pos, "sigil")
-    rx501_cur."!cursor_debug"("PASS  ", "sigil", " at pos=", rx501_pos)
-    .return (rx501_cur)
-  rx501_fail:
+    rx519_cur."!cursor_pass"(rx519_pos, "sigil")
+    rx519_cur."!cursor_debug"("PASS  ", "sigil", " at pos=", rx519_pos)
+    .return (rx519_cur)
+  rx519_fail:
 .annotate 'line', 4
-    (rx501_rep, rx501_pos, $I10, $P10) = rx501_cur."!mark_fail"(0)
-    lt rx501_pos, -1, rx501_done
-    eq rx501_pos, -1, rx501_fail
+    (rx519_rep, rx519_pos, $I10, $P10) = rx519_cur."!mark_fail"(0)
+    lt rx519_pos, -1, rx519_done
+    eq rx519_pos, -1, rx519_fail
     jump $I10
-  rx501_done:
-    rx501_cur."!cursor_fail"()
-    rx501_cur."!cursor_debug"("FAIL  ", "sigil")
-    .return (rx501_cur)
+  rx519_done:
+    rx519_cur."!cursor_fail"()
+    rx519_cur."!cursor_debug"("FAIL  ", "sigil")
+    .return (rx519_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("122_1274853038.58734") :method
+.sub "!PREFIX__sigil"  :subid("125_1275811487.95429") :method
 .annotate 'line', 4
-    new $P503, "ResizablePMCArray"
-    push $P503, "&"
-    push $P503, "%"
-    push $P503, "@"
-    push $P503, "$"
-    .return ($P503)
+    new $P521, "ResizablePMCArray"
+    push $P521, "&"
+    push $P521, "%"
+    push $P521, "@"
+    push $P521, "$"
+    .return ($P521)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("123_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "twigil"  :subid("126_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx506_tgt
-    .local int rx506_pos
-    .local int rx506_off
-    .local int rx506_eos
-    .local int rx506_rep
-    .local pmc rx506_cur
-    (rx506_cur, rx506_pos, rx506_tgt) = self."!cursor_start"()
-    rx506_cur."!cursor_debug"("START ", "twigil")
-    .lex unicode:"$\x{a2}", rx506_cur
+    .local string rx524_tgt
+    .local int rx524_pos
+    .local int rx524_off
+    .local int rx524_eos
+    .local int rx524_rep
+    .local pmc rx524_cur
+    (rx524_cur, rx524_pos, rx524_tgt) = self."!cursor_start"()
+    rx524_cur."!cursor_debug"("START ", "twigil")
+    .lex unicode:"$\x{a2}", rx524_cur
     .local pmc match
     .lex "$/", match
-    length rx506_eos, rx506_tgt
-    set rx506_off, 0
-    lt rx506_pos, 2, rx506_start
-    sub rx506_off, rx506_pos, 1
-    substr rx506_tgt, rx506_tgt, rx506_off
-  rx506_start:
+    length rx524_eos, rx524_tgt
+    gt rx524_pos, rx524_eos, rx524_done
+    set rx524_off, 0
+    lt rx524_pos, 2, rx524_start
+    sub rx524_off, rx524_pos, 1
+    substr rx524_tgt, rx524_tgt, rx524_off
+  rx524_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan509_done
-    goto rxscan509_scan
-  rxscan509_loop:
-    ($P10) = rx506_cur."from"()
+    ne $I10, -1, rxscan527_done
+    goto rxscan527_scan
+  rxscan527_loop:
+    ($P10) = rx524_cur."from"()
     inc $P10
-    set rx506_pos, $P10
-    ge rx506_pos, rx506_eos, rxscan509_done
-  rxscan509_scan:
-    set_addr $I10, rxscan509_loop
-    rx506_cur."!mark_push"(0, rx506_pos, $I10)
-  rxscan509_done:
-.annotate 'line', 254
+    set rx524_pos, $P10
+    ge rx524_pos, rx524_eos, rxscan527_done
+  rxscan527_scan:
+    set_addr $I10, rxscan527_loop
+    rx524_cur."!mark_push"(0, rx524_pos, $I10)
+  rxscan527_done:
+.annotate 'line', 256
   # rx enumcharlist negate=0 
-    ge rx506_pos, rx506_eos, rx506_fail
-    sub $I10, rx506_pos, rx506_off
-    substr $S10, rx506_tgt, $I10, 1
+    ge rx524_pos, rx524_eos, rx524_fail
+    sub $I10, rx524_pos, rx524_off
+    substr $S10, rx524_tgt, $I10, 1
     index $I11, "*!?", $S10
-    lt $I11, 0, rx506_fail
-    inc rx506_pos
+    lt $I11, 0, rx524_fail
+    inc rx524_pos
   # rx pass
-    rx506_cur."!cursor_pass"(rx506_pos, "twigil")
-    rx506_cur."!cursor_debug"("PASS  ", "twigil", " at pos=", rx506_pos)
-    .return (rx506_cur)
-  rx506_fail:
+    rx524_cur."!cursor_pass"(rx524_pos, "twigil")
+    rx524_cur."!cursor_debug"("PASS  ", "twigil", " at pos=", rx524_pos)
+    .return (rx524_cur)
+  rx524_fail:
 .annotate 'line', 4
-    (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
-    lt rx506_pos, -1, rx506_done
-    eq rx506_pos, -1, rx506_fail
+    (rx524_rep, rx524_pos, $I10, $P10) = rx524_cur."!mark_fail"(0)
+    lt rx524_pos, -1, rx524_done
+    eq rx524_pos, -1, rx524_fail
     jump $I10
-  rx506_done:
-    rx506_cur."!cursor_fail"()
-    rx506_cur."!cursor_debug"("FAIL  ", "twigil")
-    .return (rx506_cur)
+  rx524_done:
+    rx524_cur."!cursor_fail"()
+    rx524_cur."!cursor_debug"("FAIL  ", "twigil")
+    .return (rx524_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("124_1274853038.58734") :method
+.sub "!PREFIX__twigil"  :subid("127_1275811487.95429") :method
 .annotate 'line', 4
-    new $P508, "ResizablePMCArray"
-    push $P508, "?"
-    push $P508, "!"
-    push $P508, "*"
-    .return ($P508)
+    new $P526, "ResizablePMCArray"
+    push $P526, "?"
+    push $P526, "!"
+    push $P526, "*"
+    .return ($P526)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("125_1274853038.58734") :method
-.annotate 'line', 256
-    $P511 = self."!protoregex"("package_declarator")
-    .return ($P511)
+.sub "package_declarator"  :subid("128_1275811487.95429") :method
+.annotate 'line', 258
+    $P529 = self."!protoregex"("package_declarator")
+    .return ($P529)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("126_1274853038.58734") :method
-.annotate 'line', 256
-    $P513 = self."!PREFIX__!protoregex"("package_declarator")
-    .return ($P513)
+.sub "!PREFIX__package_declarator"  :subid("129_1275811487.95429") :method
+.annotate 'line', 258
+    $P531 = self."!PREFIX__!protoregex"("package_declarator")
+    .return ($P531)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>"  :subid("127_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "package_declarator:sym<module>"  :subid("130_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx515_tgt
-    .local int rx515_pos
-    .local int rx515_off
-    .local int rx515_eos
-    .local int rx515_rep
-    .local pmc rx515_cur
-    (rx515_cur, rx515_pos, rx515_tgt) = self."!cursor_start"()
-    rx515_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
-    .lex unicode:"$\x{a2}", rx515_cur
-    .local pmc match
-    .lex "$/", match
-    length rx515_eos, rx515_tgt
-    set rx515_off, 0
-    lt rx515_pos, 2, rx515_start
-    sub rx515_off, rx515_pos, 1
-    substr rx515_tgt, rx515_tgt, rx515_off
-  rx515_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan519_done
-    goto rxscan519_scan
-  rxscan519_loop:
-    ($P10) = rx515_cur."from"()
-    inc $P10
-    set rx515_pos, $P10
-    ge rx515_pos, rx515_eos, rxscan519_done
-  rxscan519_scan:
-    set_addr $I10, rxscan519_loop
-    rx515_cur."!mark_push"(0, rx515_pos, $I10)
-  rxscan519_done:
-.annotate 'line', 257
+    .local string rx533_tgt
+    .local int rx533_pos
+    .local int rx533_off
+    .local int rx533_eos
+    .local int rx533_rep
+    .local pmc rx533_cur
+    (rx533_cur, rx533_pos, rx533_tgt) = self."!cursor_start"()
+    rx533_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
+    .lex unicode:"$\x{a2}", rx533_cur
+    .local pmc match
+    .lex "$/", match
+    length rx533_eos, rx533_tgt
+    gt rx533_pos, rx533_eos, rx533_done
+    set rx533_off, 0
+    lt rx533_pos, 2, rx533_start
+    sub rx533_off, rx533_pos, 1
+    substr rx533_tgt, rx533_tgt, rx533_off
+  rx533_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan537_done
+    goto rxscan537_scan
+  rxscan537_loop:
+    ($P10) = rx533_cur."from"()
+    inc $P10
+    set rx533_pos, $P10
+    ge rx533_pos, rx533_eos, rxscan537_done
+  rxscan537_scan:
+    set_addr $I10, rxscan537_loop
+    rx533_cur."!mark_push"(0, rx533_pos, $I10)
+  rxscan537_done:
+.annotate 'line', 259
   # rx subcapture "sym"
-    set_addr $I10, rxcap_520_fail
-    rx515_cur."!mark_push"(0, rx515_pos, $I10)
+    set_addr $I10, rxcap_538_fail
+    rx533_cur."!mark_push"(0, rx533_pos, $I10)
   # rx literal  "module"
-    add $I11, rx515_pos, 6
-    gt $I11, rx515_eos, rx515_fail
-    sub $I11, rx515_pos, rx515_off
-    substr $S10, rx515_tgt, $I11, 6
-    ne $S10, "module", rx515_fail
-    add rx515_pos, 6
-    set_addr $I10, rxcap_520_fail
-    ($I12, $I11) = rx515_cur."!mark_peek"($I10)
-    rx515_cur."!cursor_pos"($I11)
-    ($P10) = rx515_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx515_pos, "")
-    rx515_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx533_pos, 6
+    gt $I11, rx533_eos, rx533_fail
+    sub $I11, rx533_pos, rx533_off
+    substr $S10, rx533_tgt, $I11, 6
+    ne $S10, "module", rx533_fail
+    add rx533_pos, 6
+    set_addr $I10, rxcap_538_fail
+    ($I12, $I11) = rx533_cur."!mark_peek"($I10)
+    rx533_cur."!cursor_pos"($I11)
+    ($P10) = rx533_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx533_pos, "")
+    rx533_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_520_done
-  rxcap_520_fail:
-    goto rx515_fail
-  rxcap_520_done:
+    goto rxcap_538_done
+  rxcap_538_fail:
+    goto rx533_fail
+  rxcap_538_done:
   # rx subrule "package_def" subtype=capture negate=
-    rx515_cur."!cursor_pos"(rx515_pos)
-    $P10 = rx515_cur."package_def"()
-    unless $P10, rx515_fail
-    rx515_cur."!mark_push"(0, -1, 0, $P10)
+    rx533_cur."!cursor_pos"(rx533_pos)
+    $P10 = rx533_cur."package_def"()
+    unless $P10, rx533_fail
+    rx533_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_def")
-    rx515_pos = $P10."pos"()
+    rx533_pos = $P10."pos"()
   # rx pass
-    rx515_cur."!cursor_pass"(rx515_pos, "package_declarator:sym<module>")
-    rx515_cur."!cursor_debug"("PASS  ", "package_declarator:sym<module>", " at pos=", rx515_pos)
-    .return (rx515_cur)
-  rx515_fail:
+    rx533_cur."!cursor_pass"(rx533_pos, "package_declarator:sym<module>")
+    rx533_cur."!cursor_debug"("PASS  ", "package_declarator:sym<module>", " at pos=", rx533_pos)
+    .return (rx533_cur)
+  rx533_fail:
 .annotate 'line', 4
-    (rx515_rep, rx515_pos, $I10, $P10) = rx515_cur."!mark_fail"(0)
-    lt rx515_pos, -1, rx515_done
-    eq rx515_pos, -1, rx515_fail
+    (rx533_rep, rx533_pos, $I10, $P10) = rx533_cur."!mark_fail"(0)
+    lt rx533_pos, -1, rx533_done
+    eq rx533_pos, -1, rx533_fail
     jump $I10
-  rx515_done:
-    rx515_cur."!cursor_fail"()
-    rx515_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<module>")
-    .return (rx515_cur)
+  rx533_done:
+    rx533_cur."!cursor_fail"()
+    rx533_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<module>")
+    .return (rx533_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("128_1274853038.58734") :method
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("131_1275811487.95429") :method
 .annotate 'line', 4
-    $P517 = self."!PREFIX__!subrule"("package_def", "module")
-    new $P518, "ResizablePMCArray"
-    push $P518, $P517
-    .return ($P518)
+    $P535 = self."!PREFIX__!subrule"("package_def", "module")
+    new $P536, "ResizablePMCArray"
+    push $P536, $P535
+    .return ($P536)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>"  :subid("129_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "package_declarator:sym<class>"  :subid("132_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx522_tgt
-    .local int rx522_pos
-    .local int rx522_off
-    .local int rx522_eos
-    .local int rx522_rep
-    .local pmc rx522_cur
-    (rx522_cur, rx522_pos, rx522_tgt) = self."!cursor_start"()
-    rx522_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
-    .lex unicode:"$\x{a2}", rx522_cur
+    .local string rx540_tgt
+    .local int rx540_pos
+    .local int rx540_off
+    .local int rx540_eos
+    .local int rx540_rep
+    .local pmc rx540_cur
+    (rx540_cur, rx540_pos, rx540_tgt) = self."!cursor_start"()
+    rx540_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
+    .lex unicode:"$\x{a2}", rx540_cur
     .local pmc match
     .lex "$/", match
-    length rx522_eos, rx522_tgt
-    set rx522_off, 0
-    lt rx522_pos, 2, rx522_start
-    sub rx522_off, rx522_pos, 1
-    substr rx522_tgt, rx522_tgt, rx522_off
-  rx522_start:
+    length rx540_eos, rx540_tgt
+    gt rx540_pos, rx540_eos, rx540_done
+    set rx540_off, 0
+    lt rx540_pos, 2, rx540_start
+    sub rx540_off, rx540_pos, 1
+    substr rx540_tgt, rx540_tgt, rx540_off
+  rx540_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan527_done
-    goto rxscan527_scan
-  rxscan527_loop:
-    ($P10) = rx522_cur."from"()
+    ne $I10, -1, rxscan545_done
+    goto rxscan545_scan
+  rxscan545_loop:
+    ($P10) = rx540_cur."from"()
     inc $P10
-    set rx522_pos, $P10
-    ge rx522_pos, rx522_eos, rxscan527_done
-  rxscan527_scan:
-    set_addr $I10, rxscan527_loop
-    rx522_cur."!mark_push"(0, rx522_pos, $I10)
-  rxscan527_done:
-.annotate 'line', 258
+    set rx540_pos, $P10
+    ge rx540_pos, rx540_eos, rxscan545_done
+  rxscan545_scan:
+    set_addr $I10, rxscan545_loop
+    rx540_cur."!mark_push"(0, rx540_pos, $I10)
+  rxscan545_done:
+.annotate 'line', 260
   # rx subcapture "sym"
-    set_addr $I10, rxcap_529_fail
-    rx522_cur."!mark_push"(0, rx522_pos, $I10)
-  alt528_0:
-    set_addr $I10, alt528_1
-    rx522_cur."!mark_push"(0, rx522_pos, $I10)
+    set_addr $I10, rxcap_547_fail
+    rx540_cur."!mark_push"(0, rx540_pos, $I10)
+  alt546_0:
+    set_addr $I10, alt546_1
+    rx540_cur."!mark_push"(0, rx540_pos, $I10)
   # rx literal  "class"
-    add $I11, rx522_pos, 5
-    gt $I11, rx522_eos, rx522_fail
-    sub $I11, rx522_pos, rx522_off
-    substr $S10, rx522_tgt, $I11, 5
-    ne $S10, "class", rx522_fail
-    add rx522_pos, 5
-    goto alt528_end
-  alt528_1:
+    add $I11, rx540_pos, 5
+    gt $I11, rx540_eos, rx540_fail
+    sub $I11, rx540_pos, rx540_off
+    substr $S10, rx540_tgt, $I11, 5
+    ne $S10, "class", rx540_fail
+    add rx540_pos, 5
+    goto alt546_end
+  alt546_1:
   # rx literal  "grammar"
-    add $I11, rx522_pos, 7
-    gt $I11, rx522_eos, rx522_fail
-    sub $I11, rx522_pos, rx522_off
-    substr $S10, rx522_tgt, $I11, 7
-    ne $S10, "grammar", rx522_fail
-    add rx522_pos, 7
-  alt528_end:
-    set_addr $I10, rxcap_529_fail
-    ($I12, $I11) = rx522_cur."!mark_peek"($I10)
-    rx522_cur."!cursor_pos"($I11)
-    ($P10) = rx522_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx522_pos, "")
-    rx522_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx540_pos, 7
+    gt $I11, rx540_eos, rx540_fail
+    sub $I11, rx540_pos, rx540_off
+    substr $S10, rx540_tgt, $I11, 7
+    ne $S10, "grammar", rx540_fail
+    add rx540_pos, 7
+  alt546_end:
+    set_addr $I10, rxcap_547_fail
+    ($I12, $I11) = rx540_cur."!mark_peek"($I10)
+    rx540_cur."!cursor_pos"($I11)
+    ($P10) = rx540_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx540_pos, "")
+    rx540_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_529_done
-  rxcap_529_fail:
-    goto rx522_fail
-  rxcap_529_done:
+    goto rxcap_547_done
+  rxcap_547_fail:
+    goto rx540_fail
+  rxcap_547_done:
   # rx subrule "package_def" subtype=capture negate=
-    rx522_cur."!cursor_pos"(rx522_pos)
-    $P10 = rx522_cur."package_def"()
-    unless $P10, rx522_fail
-    rx522_cur."!mark_push"(0, -1, 0, $P10)
+    rx540_cur."!cursor_pos"(rx540_pos)
+    $P10 = rx540_cur."package_def"()
+    unless $P10, rx540_fail
+    rx540_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_def")
-    rx522_pos = $P10."pos"()
+    rx540_pos = $P10."pos"()
   # rx pass
-    rx522_cur."!cursor_pass"(rx522_pos, "package_declarator:sym<class>")
-    rx522_cur."!cursor_debug"("PASS  ", "package_declarator:sym<class>", " at pos=", rx522_pos)
-    .return (rx522_cur)
-  rx522_fail:
+    rx540_cur."!cursor_pass"(rx540_pos, "package_declarator:sym<class>")
+    rx540_cur."!cursor_debug"("PASS  ", "package_declarator:sym<class>", " at pos=", rx540_pos)
+    .return (rx540_cur)
+  rx540_fail:
 .annotate 'line', 4
-    (rx522_rep, rx522_pos, $I10, $P10) = rx522_cur."!mark_fail"(0)
-    lt rx522_pos, -1, rx522_done
-    eq rx522_pos, -1, rx522_fail
+    (rx540_rep, rx540_pos, $I10, $P10) = rx540_cur."!mark_fail"(0)
+    lt rx540_pos, -1, rx540_done
+    eq rx540_pos, -1, rx540_fail
     jump $I10
-  rx522_done:
-    rx522_cur."!cursor_fail"()
-    rx522_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<class>")
-    .return (rx522_cur)
+  rx540_done:
+    rx540_cur."!cursor_fail"()
+    rx540_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<class>")
+    .return (rx540_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("130_1274853038.58734") :method
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("133_1275811487.95429") :method
 .annotate 'line', 4
-    $P524 = self."!PREFIX__!subrule"("package_def", "grammar")
-    $P525 = self."!PREFIX__!subrule"("package_def", "class")
-    new $P526, "ResizablePMCArray"
-    push $P526, $P524
-    push $P526, $P525
-    .return ($P526)
+    $P542 = self."!PREFIX__!subrule"("package_def", "grammar")
+    $P543 = self."!PREFIX__!subrule"("package_def", "class")
+    new $P544, "ResizablePMCArray"
+    push $P544, $P542
+    push $P544, $P543
+    .return ($P544)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("131_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "package_def"  :subid("134_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx531_tgt
-    .local int rx531_pos
-    .local int rx531_off
-    .local int rx531_eos
-    .local int rx531_rep
-    .local pmc rx531_cur
-    (rx531_cur, rx531_pos, rx531_tgt) = self."!cursor_start"()
-    rx531_cur."!cursor_debug"("START ", "package_def")
-    rx531_cur."!cursor_caparray"("parent")
-    .lex unicode:"$\x{a2}", rx531_cur
-    .local pmc match
-    .lex "$/", match
-    length rx531_eos, rx531_tgt
-    set rx531_off, 0
-    lt rx531_pos, 2, rx531_start
-    sub rx531_off, rx531_pos, 1
-    substr rx531_tgt, rx531_tgt, rx531_off
-  rx531_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan534_done
-    goto rxscan534_scan
-  rxscan534_loop:
-    ($P10) = rx531_cur."from"()
-    inc $P10
-    set rx531_pos, $P10
-    ge rx531_pos, rx531_eos, rxscan534_done
-  rxscan534_scan:
-    set_addr $I10, rxscan534_loop
-    rx531_cur."!mark_push"(0, rx531_pos, $I10)
-  rxscan534_done:
-.annotate 'line', 260
+    .local string rx549_tgt
+    .local int rx549_pos
+    .local int rx549_off
+    .local int rx549_eos
+    .local int rx549_rep
+    .local pmc rx549_cur
+    (rx549_cur, rx549_pos, rx549_tgt) = self."!cursor_start"()
+    rx549_cur."!cursor_debug"("START ", "package_def")
+    rx549_cur."!cursor_caparray"("parent")
+    .lex unicode:"$\x{a2}", rx549_cur
+    .local pmc match
+    .lex "$/", match
+    length rx549_eos, rx549_tgt
+    gt rx549_pos, rx549_eos, rx549_done
+    set rx549_off, 0
+    lt rx549_pos, 2, rx549_start
+    sub rx549_off, rx549_pos, 1
+    substr rx549_tgt, rx549_tgt, rx549_off
+  rx549_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan553_done
+    goto rxscan553_scan
+  rxscan553_loop:
+    ($P10) = rx549_cur."from"()
+    inc $P10
+    set rx549_pos, $P10
+    ge rx549_pos, rx549_eos, rxscan553_done
+  rxscan553_scan:
+    set_addr $I10, rxscan553_loop
+    rx549_cur."!mark_push"(0, rx549_pos, $I10)
+  rxscan553_done:
+.annotate 'line', 262
   # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
-.annotate 'line', 261
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
+.annotate 'line', 263
   # rx subrule "name" subtype=capture negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."name"()
-    unless $P10, rx531_fail
-    rx531_cur."!mark_push"(0, -1, 0, $P10)
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."name"()
+    unless $P10, rx549_fail
+    rx549_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx531_pos = $P10."pos"()
+    rx549_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
-.annotate 'line', 262
-  # rx rxquantr537 ** 0..1
-    set_addr $I541, rxquantr537_done
-    rx531_cur."!mark_push"(0, rx531_pos, $I541)
-  rxquantr537_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
+.annotate 'line', 264
+  # rx rxquantr556 ** 0..1
+    set_addr $I560, rxquantr556_done
+    rx549_cur."!mark_push"(0, rx549_pos, $I560)
+  rxquantr556_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
   # rx literal  "is"
-    add $I11, rx531_pos, 2
-    gt $I11, rx531_eos, rx531_fail
-    sub $I11, rx531_pos, rx531_off
-    substr $S10, rx531_tgt, $I11, 2
-    ne $S10, "is", rx531_fail
-    add rx531_pos, 2
-  # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
+    add $I11, rx549_pos, 2
+    gt $I11, rx549_eos, rx549_fail
+    sub $I11, rx549_pos, rx549_off
+    substr $S10, rx549_tgt, $I11, 2
+    ne $S10, "is", rx549_fail
+    add rx549_pos, 2
+  # rx subrule "ws" subtype=method negate=
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
   # rx subrule "name" subtype=capture negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."name"()
-    unless $P10, rx531_fail
-    rx531_cur."!mark_push"(0, -1, 0, $P10)
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."name"()
+    unless $P10, rx549_fail
+    rx549_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("parent")
-    rx531_pos = $P10."pos"()
+    rx549_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
-    (rx531_rep) = rx531_cur."!mark_commit"($I541)
-  rxquantr537_done:
-  # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
-  alt543_0:
-.annotate 'line', 263
-    set_addr $I10, alt543_1
-    rx531_cur."!mark_push"(0, rx531_pos, $I10)
-.annotate 'line', 264
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
+    (rx549_rep) = rx549_cur."!mark_commit"($I560)
+  rxquantr556_done:
+  # rx subrule "ws" subtype=method negate=
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
+  alt562_0:
+.annotate 'line', 265
+    set_addr $I10, alt562_1
+    rx549_cur."!mark_push"(0, rx549_pos, $I10)
+.annotate 'line', 266
   # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
   # rx literal  ";"
-    add $I11, rx531_pos, 1
-    gt $I11, rx531_eos, rx531_fail
-    sub $I11, rx531_pos, rx531_off
-    substr $S10, rx531_tgt, $I11, 1
-    ne $S10, ";", rx531_fail
-    add rx531_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
+    add $I11, rx549_pos, 1
+    gt $I11, rx549_eos, rx549_fail
+    sub $I11, rx549_pos, rx549_off
+    substr $S10, rx549_tgt, $I11, 1
+    ne $S10, ";", rx549_fail
+    add rx549_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
   # rx subrule "comp_unit" subtype=capture negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."comp_unit"()
-    unless $P10, rx531_fail
-    rx531_cur."!mark_push"(0, -1, 0, $P10)
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."comp_unit"()
+    unless $P10, rx549_fail
+    rx549_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("comp_unit")
-    rx531_pos = $P10."pos"()
+    rx549_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
-    goto alt543_end
-  alt543_1:
-    set_addr $I10, alt543_2
-    rx531_cur."!mark_push"(0, rx531_pos, $I10)
-.annotate 'line', 265
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
+    goto alt562_end
+  alt562_1:
+    set_addr $I10, alt562_2
+    rx549_cur."!mark_push"(0, rx549_pos, $I10)
+.annotate 'line', 267
   # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx531_pos, rx531_eos, rx531_fail
-    sub $I10, rx531_pos, rx531_off
-    substr $S10, rx531_tgt, $I10, 1
+    ge rx549_pos, rx549_eos, rx549_fail
+    sub $I10, rx549_pos, rx549_off
+    substr $S10, rx549_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx531_fail
+    lt $I11, 0, rx549_fail
   # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
   # rx subrule "block" subtype=capture negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."block"()
-    unless $P10, rx531_fail
-    rx531_cur."!mark_push"(0, -1, 0, $P10)
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."block"()
+    unless $P10, rx549_fail
+    rx549_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx531_pos = $P10."pos"()
+    rx549_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
-    goto alt543_end
-  alt543_2:
-.annotate 'line', 266
-  # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
+    goto alt562_end
+  alt562_2:
+.annotate 'line', 268
+  # rx subrule "ws" subtype=method negate=
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."panic"("Malformed package declaration")
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
-  alt543_end:
-.annotate 'line', 267
-  # rx subrule "ws" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."ws"()
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
-.annotate 'line', 260
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."panic"("Malformed package declaration")
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
+  alt562_end:
+.annotate 'line', 269
+  # rx subrule "ws" subtype=method negate=
+    rx549_cur."!cursor_pos"(rx549_pos)
+    $P10 = rx549_cur."ws"()
+    unless $P10, rx549_fail
+    rx549_pos = $P10."pos"()
+.annotate 'line', 262
   # rx pass
-    rx531_cur."!cursor_pass"(rx531_pos, "package_def")
-    rx531_cur."!cursor_debug"("PASS  ", "package_def", " at pos=", rx531_pos)
-    .return (rx531_cur)
-  rx531_fail:
+    rx549_cur."!cursor_pass"(rx549_pos, "package_def")
+    rx549_cur."!cursor_debug"("PASS  ", "package_def", " at pos=", rx549_pos)
+    .return (rx549_cur)
+  rx549_fail:
 .annotate 'line', 4
-    (rx531_rep, rx531_pos, $I10, $P10) = rx531_cur."!mark_fail"(0)
-    lt rx531_pos, -1, rx531_done
-    eq rx531_pos, -1, rx531_fail
+    (rx549_rep, rx549_pos, $I10, $P10) = rx549_cur."!mark_fail"(0)
+    lt rx549_pos, -1, rx549_done
+    eq rx549_pos, -1, rx549_fail
     jump $I10
-  rx531_done:
-    rx531_cur."!cursor_fail"()
-    rx531_cur."!cursor_debug"("FAIL  ", "package_def")
-    .return (rx531_cur)
+  rx549_done:
+    rx549_cur."!cursor_fail"()
+    rx549_cur."!cursor_debug"("FAIL  ", "package_def")
+    .return (rx549_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("132_1274853038.58734") :method
+.sub "!PREFIX__package_def"  :subid("135_1275811487.95429") :method
 .annotate 'line', 4
-    new $P533, "ResizablePMCArray"
-    push $P533, ""
-    .return ($P533)
+    $P551 = self."!PREFIX__!subrule"("ws", "")
+    new $P552, "ResizablePMCArray"
+    push $P552, $P551
+    .return ($P552)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("133_1274853038.58734") :method
-.annotate 'line', 270
-    $P554 = self."!protoregex"("scope_declarator")
-    .return ($P554)
+.sub "scope_declarator"  :subid("136_1275811487.95429") :method
+.annotate 'line', 272
+    $P573 = self."!protoregex"("scope_declarator")
+    .return ($P573)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("134_1274853038.58734") :method
-.annotate 'line', 270
-    $P556 = self."!PREFIX__!protoregex"("scope_declarator")
-    .return ($P556)
+.sub "!PREFIX__scope_declarator"  :subid("137_1275811487.95429") :method
+.annotate 'line', 272
+    $P575 = self."!PREFIX__!protoregex"("scope_declarator")
+    .return ($P575)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>"  :subid("135_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "scope_declarator:sym<my>"  :subid("138_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx558_tgt
-    .local int rx558_pos
-    .local int rx558_off
-    .local int rx558_eos
-    .local int rx558_rep
-    .local pmc rx558_cur
-    (rx558_cur, rx558_pos, rx558_tgt) = self."!cursor_start"()
-    rx558_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
-    .lex unicode:"$\x{a2}", rx558_cur
-    .local pmc match
-    .lex "$/", match
-    length rx558_eos, rx558_tgt
-    set rx558_off, 0
-    lt rx558_pos, 2, rx558_start
-    sub rx558_off, rx558_pos, 1
-    substr rx558_tgt, rx558_tgt, rx558_off
-  rx558_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan562_done
-    goto rxscan562_scan
-  rxscan562_loop:
-    ($P10) = rx558_cur."from"()
-    inc $P10
-    set rx558_pos, $P10
-    ge rx558_pos, rx558_eos, rxscan562_done
-  rxscan562_scan:
-    set_addr $I10, rxscan562_loop
-    rx558_cur."!mark_push"(0, rx558_pos, $I10)
-  rxscan562_done:
-.annotate 'line', 271
+    .local string rx577_tgt
+    .local int rx577_pos
+    .local int rx577_off
+    .local int rx577_eos
+    .local int rx577_rep
+    .local pmc rx577_cur
+    (rx577_cur, rx577_pos, rx577_tgt) = self."!cursor_start"()
+    rx577_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+    .lex unicode:"$\x{a2}", rx577_cur
+    .local pmc match
+    .lex "$/", match
+    length rx577_eos, rx577_tgt
+    gt rx577_pos, rx577_eos, rx577_done
+    set rx577_off, 0
+    lt rx577_pos, 2, rx577_start
+    sub rx577_off, rx577_pos, 1
+    substr rx577_tgt, rx577_tgt, rx577_off
+  rx577_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan581_done
+    goto rxscan581_scan
+  rxscan581_loop:
+    ($P10) = rx577_cur."from"()
+    inc $P10
+    set rx577_pos, $P10
+    ge rx577_pos, rx577_eos, rxscan581_done
+  rxscan581_scan:
+    set_addr $I10, rxscan581_loop
+    rx577_cur."!mark_push"(0, rx577_pos, $I10)
+  rxscan581_done:
+.annotate 'line', 273
   # rx subcapture "sym"
-    set_addr $I10, rxcap_563_fail
-    rx558_cur."!mark_push"(0, rx558_pos, $I10)
+    set_addr $I10, rxcap_582_fail
+    rx577_cur."!mark_push"(0, rx577_pos, $I10)
   # rx literal  "my"
-    add $I11, rx558_pos, 2
-    gt $I11, rx558_eos, rx558_fail
-    sub $I11, rx558_pos, rx558_off
-    substr $S10, rx558_tgt, $I11, 2
-    ne $S10, "my", rx558_fail
-    add rx558_pos, 2
-    set_addr $I10, rxcap_563_fail
-    ($I12, $I11) = rx558_cur."!mark_peek"($I10)
-    rx558_cur."!cursor_pos"($I11)
-    ($P10) = rx558_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx558_pos, "")
-    rx558_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx577_pos, 2
+    gt $I11, rx577_eos, rx577_fail
+    sub $I11, rx577_pos, rx577_off
+    substr $S10, rx577_tgt, $I11, 2
+    ne $S10, "my", rx577_fail
+    add rx577_pos, 2
+    set_addr $I10, rxcap_582_fail
+    ($I12, $I11) = rx577_cur."!mark_peek"($I10)
+    rx577_cur."!cursor_pos"($I11)
+    ($P10) = rx577_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx577_pos, "")
+    rx577_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_563_done
-  rxcap_563_fail:
-    goto rx558_fail
-  rxcap_563_done:
+    goto rxcap_582_done
+  rxcap_582_fail:
+    goto rx577_fail
+  rxcap_582_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx558_cur."!cursor_pos"(rx558_pos)
-    $P10 = rx558_cur."scoped"("my")
-    unless $P10, rx558_fail
-    rx558_cur."!mark_push"(0, -1, 0, $P10)
+    rx577_cur."!cursor_pos"(rx577_pos)
+    $P10 = rx577_cur."scoped"("my")
+    unless $P10, rx577_fail
+    rx577_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx558_pos = $P10."pos"()
+    rx577_pos = $P10."pos"()
   # rx pass
-    rx558_cur."!cursor_pass"(rx558_pos, "scope_declarator:sym<my>")
-    rx558_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<my>", " at pos=", rx558_pos)
-    .return (rx558_cur)
-  rx558_fail:
+    rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<my>")
+    rx577_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<my>", " at pos=", rx577_pos)
+    .return (rx577_cur)
+  rx577_fail:
 .annotate 'line', 4
-    (rx558_rep, rx558_pos, $I10, $P10) = rx558_cur."!mark_fail"(0)
-    lt rx558_pos, -1, rx558_done
-    eq rx558_pos, -1, rx558_fail
+    (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
+    lt rx577_pos, -1, rx577_done
+    eq rx577_pos, -1, rx577_fail
     jump $I10
-  rx558_done:
-    rx558_cur."!cursor_fail"()
-    rx558_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<my>")
-    .return (rx558_cur)
+  rx577_done:
+    rx577_cur."!cursor_fail"()
+    rx577_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<my>")
+    .return (rx577_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("136_1274853038.58734") :method
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("139_1275811487.95429") :method
 .annotate 'line', 4
-    $P560 = self."!PREFIX__!subrule"("scoped", "my")
-    new $P561, "ResizablePMCArray"
-    push $P561, $P560
-    .return ($P561)
+    $P579 = self."!PREFIX__!subrule"("scoped", "my")
+    new $P580, "ResizablePMCArray"
+    push $P580, $P579
+    .return ($P580)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>"  :subid("137_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "scope_declarator:sym<our>"  :subid("140_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx565_tgt
-    .local int rx565_pos
-    .local int rx565_off
-    .local int rx565_eos
-    .local int rx565_rep
-    .local pmc rx565_cur
-    (rx565_cur, rx565_pos, rx565_tgt) = self."!cursor_start"()
-    rx565_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
-    .lex unicode:"$\x{a2}", rx565_cur
+    .local string rx584_tgt
+    .local int rx584_pos
+    .local int rx584_off
+    .local int rx584_eos
+    .local int rx584_rep
+    .local pmc rx584_cur
+    (rx584_cur, rx584_pos, rx584_tgt) = self."!cursor_start"()
+    rx584_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
+    .lex unicode:"$\x{a2}", rx584_cur
     .local pmc match
     .lex "$/", match
-    length rx565_eos, rx565_tgt
-    set rx565_off, 0
-    lt rx565_pos, 2, rx565_start
-    sub rx565_off, rx565_pos, 1
-    substr rx565_tgt, rx565_tgt, rx565_off
-  rx565_start:
+    length rx584_eos, rx584_tgt
+    gt rx584_pos, rx584_eos, rx584_done
+    set rx584_off, 0
+    lt rx584_pos, 2, rx584_start
+    sub rx584_off, rx584_pos, 1
+    substr rx584_tgt, rx584_tgt, rx584_off
+  rx584_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan569_done
-    goto rxscan569_scan
-  rxscan569_loop:
-    ($P10) = rx565_cur."from"()
+    ne $I10, -1, rxscan588_done
+    goto rxscan588_scan
+  rxscan588_loop:
+    ($P10) = rx584_cur."from"()
     inc $P10
-    set rx565_pos, $P10
-    ge rx565_pos, rx565_eos, rxscan569_done
-  rxscan569_scan:
-    set_addr $I10, rxscan569_loop
-    rx565_cur."!mark_push"(0, rx565_pos, $I10)
-  rxscan569_done:
-.annotate 'line', 272
+    set rx584_pos, $P10
+    ge rx584_pos, rx584_eos, rxscan588_done
+  rxscan588_scan:
+    set_addr $I10, rxscan588_loop
+    rx584_cur."!mark_push"(0, rx584_pos, $I10)
+  rxscan588_done:
+.annotate 'line', 274
   # rx subcapture "sym"
-    set_addr $I10, rxcap_570_fail
-    rx565_cur."!mark_push"(0, rx565_pos, $I10)
+    set_addr $I10, rxcap_589_fail
+    rx584_cur."!mark_push"(0, rx584_pos, $I10)
   # rx literal  "our"
-    add $I11, rx565_pos, 3
-    gt $I11, rx565_eos, rx565_fail
-    sub $I11, rx565_pos, rx565_off
-    substr $S10, rx565_tgt, $I11, 3
-    ne $S10, "our", rx565_fail
-    add rx565_pos, 3
-    set_addr $I10, rxcap_570_fail
-    ($I12, $I11) = rx565_cur."!mark_peek"($I10)
-    rx565_cur."!cursor_pos"($I11)
-    ($P10) = rx565_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx565_pos, "")
-    rx565_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx584_pos, 3
+    gt $I11, rx584_eos, rx584_fail
+    sub $I11, rx584_pos, rx584_off
+    substr $S10, rx584_tgt, $I11, 3
+    ne $S10, "our", rx584_fail
+    add rx584_pos, 3
+    set_addr $I10, rxcap_589_fail
+    ($I12, $I11) = rx584_cur."!mark_peek"($I10)
+    rx584_cur."!cursor_pos"($I11)
+    ($P10) = rx584_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx584_pos, "")
+    rx584_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_570_done
-  rxcap_570_fail:
-    goto rx565_fail
-  rxcap_570_done:
+    goto rxcap_589_done
+  rxcap_589_fail:
+    goto rx584_fail
+  rxcap_589_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx565_cur."!cursor_pos"(rx565_pos)
-    $P10 = rx565_cur."scoped"("our")
-    unless $P10, rx565_fail
-    rx565_cur."!mark_push"(0, -1, 0, $P10)
+    rx584_cur."!cursor_pos"(rx584_pos)
+    $P10 = rx584_cur."scoped"("our")
+    unless $P10, rx584_fail
+    rx584_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx565_pos = $P10."pos"()
+    rx584_pos = $P10."pos"()
   # rx pass
-    rx565_cur."!cursor_pass"(rx565_pos, "scope_declarator:sym<our>")
-    rx565_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<our>", " at pos=", rx565_pos)
-    .return (rx565_cur)
-  rx565_fail:
+    rx584_cur."!cursor_pass"(rx584_pos, "scope_declarator:sym<our>")
+    rx584_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<our>", " at pos=", rx584_pos)
+    .return (rx584_cur)
+  rx584_fail:
 .annotate 'line', 4
-    (rx565_rep, rx565_pos, $I10, $P10) = rx565_cur."!mark_fail"(0)
-    lt rx565_pos, -1, rx565_done
-    eq rx565_pos, -1, rx565_fail
+    (rx584_rep, rx584_pos, $I10, $P10) = rx584_cur."!mark_fail"(0)
+    lt rx584_pos, -1, rx584_done
+    eq rx584_pos, -1, rx584_fail
     jump $I10
-  rx565_done:
-    rx565_cur."!cursor_fail"()
-    rx565_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<our>")
-    .return (rx565_cur)
+  rx584_done:
+    rx584_cur."!cursor_fail"()
+    rx584_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<our>")
+    .return (rx584_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("138_1274853038.58734") :method
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("141_1275811487.95429") :method
 .annotate 'line', 4
-    $P567 = self."!PREFIX__!subrule"("scoped", "our")
-    new $P568, "ResizablePMCArray"
-    push $P568, $P567
-    .return ($P568)
+    $P586 = self."!PREFIX__!subrule"("scoped", "our")
+    new $P587, "ResizablePMCArray"
+    push $P587, $P586
+    .return ($P587)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>"  :subid("139_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "scope_declarator:sym<has>"  :subid("142_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx572_tgt
-    .local int rx572_pos
-    .local int rx572_off
-    .local int rx572_eos
-    .local int rx572_rep
-    .local pmc rx572_cur
-    (rx572_cur, rx572_pos, rx572_tgt) = self."!cursor_start"()
-    rx572_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
-    .lex unicode:"$\x{a2}", rx572_cur
-    .local pmc match
-    .lex "$/", match
-    length rx572_eos, rx572_tgt
-    set rx572_off, 0
-    lt rx572_pos, 2, rx572_start
-    sub rx572_off, rx572_pos, 1
-    substr rx572_tgt, rx572_tgt, rx572_off
-  rx572_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan576_done
-    goto rxscan576_scan
-  rxscan576_loop:
-    ($P10) = rx572_cur."from"()
-    inc $P10
-    set rx572_pos, $P10
-    ge rx572_pos, rx572_eos, rxscan576_done
-  rxscan576_scan:
-    set_addr $I10, rxscan576_loop
-    rx572_cur."!mark_push"(0, rx572_pos, $I10)
-  rxscan576_done:
-.annotate 'line', 273
+    .local string rx591_tgt
+    .local int rx591_pos
+    .local int rx591_off
+    .local int rx591_eos
+    .local int rx591_rep
+    .local pmc rx591_cur
+    (rx591_cur, rx591_pos, rx591_tgt) = self."!cursor_start"()
+    rx591_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
+    .lex unicode:"$\x{a2}", rx591_cur
+    .local pmc match
+    .lex "$/", match
+    length rx591_eos, rx591_tgt
+    gt rx591_pos, rx591_eos, rx591_done
+    set rx591_off, 0
+    lt rx591_pos, 2, rx591_start
+    sub rx591_off, rx591_pos, 1
+    substr rx591_tgt, rx591_tgt, rx591_off
+  rx591_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan595_done
+    goto rxscan595_scan
+  rxscan595_loop:
+    ($P10) = rx591_cur."from"()
+    inc $P10
+    set rx591_pos, $P10
+    ge rx591_pos, rx591_eos, rxscan595_done
+  rxscan595_scan:
+    set_addr $I10, rxscan595_loop
+    rx591_cur."!mark_push"(0, rx591_pos, $I10)
+  rxscan595_done:
+.annotate 'line', 275
   # rx subcapture "sym"
-    set_addr $I10, rxcap_577_fail
-    rx572_cur."!mark_push"(0, rx572_pos, $I10)
+    set_addr $I10, rxcap_596_fail
+    rx591_cur."!mark_push"(0, rx591_pos, $I10)
   # rx literal  "has"
-    add $I11, rx572_pos, 3
-    gt $I11, rx572_eos, rx572_fail
-    sub $I11, rx572_pos, rx572_off
-    substr $S10, rx572_tgt, $I11, 3
-    ne $S10, "has", rx572_fail
-    add rx572_pos, 3
-    set_addr $I10, rxcap_577_fail
-    ($I12, $I11) = rx572_cur."!mark_peek"($I10)
-    rx572_cur."!cursor_pos"($I11)
-    ($P10) = rx572_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx572_pos, "")
-    rx572_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx591_pos, 3
+    gt $I11, rx591_eos, rx591_fail
+    sub $I11, rx591_pos, rx591_off
+    substr $S10, rx591_tgt, $I11, 3
+    ne $S10, "has", rx591_fail
+    add rx591_pos, 3
+    set_addr $I10, rxcap_596_fail
+    ($I12, $I11) = rx591_cur."!mark_peek"($I10)
+    rx591_cur."!cursor_pos"($I11)
+    ($P10) = rx591_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx591_pos, "")
+    rx591_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_577_done
-  rxcap_577_fail:
-    goto rx572_fail
-  rxcap_577_done:
+    goto rxcap_596_done
+  rxcap_596_fail:
+    goto rx591_fail
+  rxcap_596_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx572_cur."!cursor_pos"(rx572_pos)
-    $P10 = rx572_cur."scoped"("has")
-    unless $P10, rx572_fail
-    rx572_cur."!mark_push"(0, -1, 0, $P10)
+    rx591_cur."!cursor_pos"(rx591_pos)
+    $P10 = rx591_cur."scoped"("has")
+    unless $P10, rx591_fail
+    rx591_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx572_pos = $P10."pos"()
+    rx591_pos = $P10."pos"()
   # rx pass
-    rx572_cur."!cursor_pass"(rx572_pos, "scope_declarator:sym<has>")
-    rx572_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<has>", " at pos=", rx572_pos)
-    .return (rx572_cur)
-  rx572_fail:
+    rx591_cur."!cursor_pass"(rx591_pos, "scope_declarator:sym<has>")
+    rx591_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<has>", " at pos=", rx591_pos)
+    .return (rx591_cur)
+  rx591_fail:
 .annotate 'line', 4
-    (rx572_rep, rx572_pos, $I10, $P10) = rx572_cur."!mark_fail"(0)
-    lt rx572_pos, -1, rx572_done
-    eq rx572_pos, -1, rx572_fail
+    (rx591_rep, rx591_pos, $I10, $P10) = rx591_cur."!mark_fail"(0)
+    lt rx591_pos, -1, rx591_done
+    eq rx591_pos, -1, rx591_fail
     jump $I10
-  rx572_done:
-    rx572_cur."!cursor_fail"()
-    rx572_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<has>")
-    .return (rx572_cur)
+  rx591_done:
+    rx591_cur."!cursor_fail"()
+    rx591_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<has>")
+    .return (rx591_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("140_1274853038.58734") :method
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("143_1275811487.95429") :method
 .annotate 'line', 4
-    $P574 = self."!PREFIX__!subrule"("scoped", "has")
-    new $P575, "ResizablePMCArray"
-    push $P575, $P574
-    .return ($P575)
+    $P593 = self."!PREFIX__!subrule"("scoped", "has")
+    new $P594, "ResizablePMCArray"
+    push $P594, $P593
+    .return ($P594)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("141_1274853038.58734") :method :outer("11_1274853038.58734")
-    .param pmc param_579
-.annotate 'line', 275
-    .lex "$*SCOPE", param_579
-.annotate 'line', 4
-    .local string rx580_tgt
-    .local int rx580_pos
-    .local int rx580_off
-    .local int rx580_eos
-    .local int rx580_rep
-    .local pmc rx580_cur
-    (rx580_cur, rx580_pos, rx580_tgt) = self."!cursor_start"()
-    rx580_cur."!cursor_debug"("START ", "scoped")
-    rx580_cur."!cursor_caparray"("typename")
-    .lex unicode:"$\x{a2}", rx580_cur
-    .local pmc match
-    .lex "$/", match
-    length rx580_eos, rx580_tgt
-    set rx580_off, 0
-    lt rx580_pos, 2, rx580_start
-    sub rx580_off, rx580_pos, 1
-    substr rx580_tgt, rx580_tgt, rx580_off
-  rx580_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan583_done
-    goto rxscan583_scan
-  rxscan583_loop:
-    ($P10) = rx580_cur."from"()
-    inc $P10
-    set rx580_pos, $P10
-    ge rx580_pos, rx580_eos, rxscan583_done
-  rxscan583_scan:
-    set_addr $I10, rxscan583_loop
-    rx580_cur."!mark_push"(0, rx580_pos, $I10)
-  rxscan583_done:
-  alt584_0:
-.annotate 'line', 275
-    set_addr $I10, alt584_1
-    rx580_cur."!mark_push"(0, rx580_pos, $I10)
-.annotate 'line', 276
-  # rx subrule "ws" subtype=method negate=
-    rx580_cur."!cursor_pos"(rx580_pos)
-    $P10 = rx580_cur."ws"()
-    unless $P10, rx580_fail
-    rx580_pos = $P10."pos"()
-  # rx subrule "declarator" subtype=capture negate=
-    rx580_cur."!cursor_pos"(rx580_pos)
-    $P10 = rx580_cur."declarator"()
-    unless $P10, rx580_fail
-    rx580_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("declarator")
-    rx580_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx580_cur."!cursor_pos"(rx580_pos)
-    $P10 = rx580_cur."ws"()
-    unless $P10, rx580_fail
-    rx580_pos = $P10."pos"()
-    goto alt584_end
-  alt584_1:
+.sub "scoped"  :subid("144_1275811487.95429") :method :outer("11_1275811487.95429")
+    .param pmc param_598
 .annotate 'line', 277
-  # rx subrule "ws" subtype=method negate=
-    rx580_cur."!cursor_pos"(rx580_pos)
-    $P10 = rx580_cur."ws"()
-    unless $P10, rx580_fail
-    rx580_pos = $P10."pos"()
-  # rx rxquantr588 ** 1..*
-    set_addr $I589, rxquantr588_done
-    rx580_cur."!mark_push"(0, -1, $I589)
-  rxquantr588_loop:
-  # rx subrule "typename" subtype=capture negate=
-    rx580_cur."!cursor_pos"(rx580_pos)
-    $P10 = rx580_cur."typename"()
-    unless $P10, rx580_fail
-    rx580_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("typename")
-    rx580_pos = $P10."pos"()
-    (rx580_rep) = rx580_cur."!mark_commit"($I589)
-    rx580_cur."!mark_push"(rx580_rep, rx580_pos, $I589)
-    goto rxquantr588_loop
-  rxquantr588_done:
-  # rx subrule "ws" subtype=method negate=
-    rx580_cur."!cursor_pos"(rx580_pos)
-    $P10 = rx580_cur."ws"()
-    unless $P10, rx580_fail
-    rx580_pos = $P10."pos"()
-  # rx subrule "declarator" subtype=capture negate=
-    rx580_cur."!cursor_pos"(rx580_pos)
-    $P10 = rx580_cur."declarator"()
-    unless $P10, rx580_fail
-    rx580_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("declarator")
-    rx580_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx580_cur."!cursor_pos"(rx580_pos)
-    $P10 = rx580_cur."ws"()
-    unless $P10, rx580_fail
-    rx580_pos = $P10."pos"()
-  alt584_end:
-.annotate 'line', 275
-  # rx pass
-    rx580_cur."!cursor_pass"(rx580_pos, "scoped")
-    rx580_cur."!cursor_debug"("PASS  ", "scoped", " at pos=", rx580_pos)
-    .return (rx580_cur)
-  rx580_fail:
-.annotate 'line', 4
-    (rx580_rep, rx580_pos, $I10, $P10) = rx580_cur."!mark_fail"(0)
-    lt rx580_pos, -1, rx580_done
-    eq rx580_pos, -1, rx580_fail
-    jump $I10
-  rx580_done:
-    rx580_cur."!cursor_fail"()
-    rx580_cur."!cursor_debug"("FAIL  ", "scoped")
-    .return (rx580_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("142_1274853038.58734") :method
-.annotate 'line', 4
-    new $P582, "ResizablePMCArray"
-    push $P582, ""
-    push $P582, ""
-    .return ($P582)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "typename"  :subid("143_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 4
-    .local string rx593_tgt
-    .local int rx593_pos
-    .local int rx593_off
-    .local int rx593_eos
-    .local int rx593_rep
-    .local pmc rx593_cur
-    (rx593_cur, rx593_pos, rx593_tgt) = self."!cursor_start"()
-    rx593_cur."!cursor_debug"("START ", "typename")
-    .lex unicode:"$\x{a2}", rx593_cur
-    .local pmc match
-    .lex "$/", match
-    length rx593_eos, rx593_tgt
-    set rx593_off, 0
-    lt rx593_pos, 2, rx593_start
-    sub rx593_off, rx593_pos, 1
-    substr rx593_tgt, rx593_tgt, rx593_off
-  rx593_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan597_done
-    goto rxscan597_scan
-  rxscan597_loop:
-    ($P10) = rx593_cur."from"()
-    inc $P10
-    set rx593_pos, $P10
-    ge rx593_pos, rx593_eos, rxscan597_done
-  rxscan597_scan:
-    set_addr $I10, rxscan597_loop
-    rx593_cur."!mark_push"(0, rx593_pos, $I10)
-  rxscan597_done:
-.annotate 'line', 280
-  # rx subrule "name" subtype=capture negate=
-    rx593_cur."!cursor_pos"(rx593_pos)
-    $P10 = rx593_cur."name"()
-    unless $P10, rx593_fail
-    rx593_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("name")
-    rx593_pos = $P10."pos"()
-  # rx pass
-    rx593_cur."!cursor_pass"(rx593_pos, "typename")
-    rx593_cur."!cursor_debug"("PASS  ", "typename", " at pos=", rx593_pos)
-    .return (rx593_cur)
-  rx593_fail:
-.annotate 'line', 4
-    (rx593_rep, rx593_pos, $I10, $P10) = rx593_cur."!mark_fail"(0)
-    lt rx593_pos, -1, rx593_done
-    eq rx593_pos, -1, rx593_fail
-    jump $I10
-  rx593_done:
-    rx593_cur."!cursor_fail"()
-    rx593_cur."!cursor_debug"("FAIL  ", "typename")
-    .return (rx593_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename"  :subid("144_1274853038.58734") :method
-.annotate 'line', 4
-    $P595 = self."!PREFIX__!subrule"("name", "")
-    new $P596, "ResizablePMCArray"
-    push $P596, $P595
-    .return ($P596)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "declarator"  :subid("145_1274853038.58734") :method :outer("11_1274853038.58734")
+    .lex "$*SCOPE", param_598
 .annotate 'line', 4
     .local string rx599_tgt
     .local int rx599_pos
@@ -7198,11 +7242,12 @@
     .local int rx599_rep
     .local pmc rx599_cur
     (rx599_cur, rx599_pos, rx599_tgt) = self."!cursor_start"()
-    rx599_cur."!cursor_debug"("START ", "declarator")
+    rx599_cur."!cursor_debug"("START ", "scoped")
     .lex unicode:"$\x{a2}", rx599_cur
     .local pmc match
     .lex "$/", match
     length rx599_eos, rx599_tgt
+    gt rx599_pos, rx599_eos, rx599_done
     set rx599_off, 0
     lt rx599_pos, 2, rx599_start
     sub rx599_off, rx599_pos, 1
@@ -7221,32 +7266,52 @@
     rx599_cur."!mark_push"(0, rx599_pos, $I10)
   rxscan604_done:
   alt605_0:
-.annotate 'line', 282
+.annotate 'line', 277
     set_addr $I10, alt605_1
     rx599_cur."!mark_push"(0, rx599_pos, $I10)
-.annotate 'line', 283
-  # rx subrule "variable_declarator" subtype=capture negate=
+.annotate 'line', 278
+  # rx subrule "ws" subtype=method negate=
     rx599_cur."!cursor_pos"(rx599_pos)
-    $P10 = rx599_cur."variable_declarator"()
+    $P10 = rx599_cur."ws"()
+    unless $P10, rx599_fail
+    rx599_pos = $P10."pos"()
+  # rx subrule "declarator" subtype=capture negate=
+    rx599_cur."!cursor_pos"(rx599_pos)
+    $P10 = rx599_cur."declarator"()
     unless $P10, rx599_fail
     rx599_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("variable_declarator")
+    $P10."!cursor_names"("declarator")
+    rx599_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx599_cur."!cursor_pos"(rx599_pos)
+    $P10 = rx599_cur."ws"()
+    unless $P10, rx599_fail
     rx599_pos = $P10."pos"()
     goto alt605_end
   alt605_1:
-.annotate 'line', 284
-  # rx subrule "routine_declarator" subtype=capture negate=
+.annotate 'line', 279
+  # rx subrule "ws" subtype=method negate=
+    rx599_cur."!cursor_pos"(rx599_pos)
+    $P10 = rx599_cur."ws"()
+    unless $P10, rx599_fail
+    rx599_pos = $P10."pos"()
+  # rx subrule "multi_declarator" subtype=capture negate=
     rx599_cur."!cursor_pos"(rx599_pos)
-    $P10 = rx599_cur."routine_declarator"()
+    $P10 = rx599_cur."multi_declarator"()
     unless $P10, rx599_fail
     rx599_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("routine_declarator")
+    $P10."!cursor_names"("multi_declarator")
+    rx599_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx599_cur."!cursor_pos"(rx599_pos)
+    $P10 = rx599_cur."ws"()
+    unless $P10, rx599_fail
     rx599_pos = $P10."pos"()
   alt605_end:
-.annotate 'line', 282
+.annotate 'line', 277
   # rx pass
-    rx599_cur."!cursor_pass"(rx599_pos, "declarator")
-    rx599_cur."!cursor_debug"("PASS  ", "declarator", " at pos=", rx599_pos)
+    rx599_cur."!cursor_pass"(rx599_pos, "scoped")
+    rx599_cur."!cursor_debug"("PASS  ", "scoped", " at pos=", rx599_pos)
     .return (rx599_cur)
   rx599_fail:
 .annotate 'line', 4
@@ -7256,17 +7321,17 @@
     jump $I10
   rx599_done:
     rx599_cur."!cursor_fail"()
-    rx599_cur."!cursor_debug"("FAIL  ", "declarator")
+    rx599_cur."!cursor_debug"("FAIL  ", "scoped")
     .return (rx599_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator"  :subid("146_1274853038.58734") :method
+.sub "!PREFIX__scoped"  :subid("145_1275811487.95429") :method
 .annotate 'line', 4
-    $P601 = self."!PREFIX__!subrule"("routine_declarator", "")
-    $P602 = self."!PREFIX__!subrule"("variable_declarator", "")
+    $P601 = self."!PREFIX__!subrule"("ws", "")
+    $P602 = self."!PREFIX__!subrule"("ws", "")
     new $P603, "ResizablePMCArray"
     push $P603, $P601
     push $P603, $P602
@@ -7275,91 +7340,76 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("147_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "typename"  :subid("146_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx607_tgt
-    .local int rx607_pos
-    .local int rx607_off
-    .local int rx607_eos
-    .local int rx607_rep
-    .local pmc rx607_cur
-    (rx607_cur, rx607_pos, rx607_tgt) = self."!cursor_start"()
-    rx607_cur."!cursor_debug"("START ", "variable_declarator")
-    .lex unicode:"$\x{a2}", rx607_cur
-    .local pmc match
-    .lex "$/", match
-    length rx607_eos, rx607_tgt
-    set rx607_off, 0
-    lt rx607_pos, 2, rx607_start
-    sub rx607_off, rx607_pos, 1
-    substr rx607_tgt, rx607_tgt, rx607_off
-  rx607_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan611_done
-    goto rxscan611_scan
-  rxscan611_loop:
-    ($P10) = rx607_cur."from"()
-    inc $P10
-    set rx607_pos, $P10
-    ge rx607_pos, rx607_eos, rxscan611_done
-  rxscan611_scan:
-    set_addr $I10, rxscan611_loop
-    rx607_cur."!mark_push"(0, rx607_pos, $I10)
-  rxscan611_done:
-.annotate 'line', 287
-  # rx subrule "variable" subtype=capture negate=
-    rx607_cur."!cursor_pos"(rx607_pos)
-    $P10 = rx607_cur."variable"()
-    unless $P10, rx607_fail
-    rx607_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("variable")
-    rx607_pos = $P10."pos"()
+    .local string rx611_tgt
+    .local int rx611_pos
+    .local int rx611_off
+    .local int rx611_eos
+    .local int rx611_rep
+    .local pmc rx611_cur
+    (rx611_cur, rx611_pos, rx611_tgt) = self."!cursor_start"()
+    rx611_cur."!cursor_debug"("START ", "typename")
+    .lex unicode:"$\x{a2}", rx611_cur
+    .local pmc match
+    .lex "$/", match
+    length rx611_eos, rx611_tgt
+    gt rx611_pos, rx611_eos, rx611_done
+    set rx611_off, 0
+    lt rx611_pos, 2, rx611_start
+    sub rx611_off, rx611_pos, 1
+    substr rx611_tgt, rx611_tgt, rx611_off
+  rx611_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan615_done
+    goto rxscan615_scan
+  rxscan615_loop:
+    ($P10) = rx611_cur."from"()
+    inc $P10
+    set rx611_pos, $P10
+    ge rx611_pos, rx611_eos, rxscan615_done
+  rxscan615_scan:
+    set_addr $I10, rxscan615_loop
+    rx611_cur."!mark_push"(0, rx611_pos, $I10)
+  rxscan615_done:
+.annotate 'line', 282
+  # rx subrule "name" subtype=capture negate=
+    rx611_cur."!cursor_pos"(rx611_pos)
+    $P10 = rx611_cur."name"()
+    unless $P10, rx611_fail
+    rx611_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("name")
+    rx611_pos = $P10."pos"()
   # rx pass
-    rx607_cur."!cursor_pass"(rx607_pos, "variable_declarator")
-    rx607_cur."!cursor_debug"("PASS  ", "variable_declarator", " at pos=", rx607_pos)
-    .return (rx607_cur)
-  rx607_fail:
+    rx611_cur."!cursor_pass"(rx611_pos, "typename")
+    rx611_cur."!cursor_debug"("PASS  ", "typename", " at pos=", rx611_pos)
+    .return (rx611_cur)
+  rx611_fail:
 .annotate 'line', 4
-    (rx607_rep, rx607_pos, $I10, $P10) = rx607_cur."!mark_fail"(0)
-    lt rx607_pos, -1, rx607_done
-    eq rx607_pos, -1, rx607_fail
+    (rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0)
+    lt rx611_pos, -1, rx611_done
+    eq rx611_pos, -1, rx611_fail
     jump $I10
-  rx607_done:
-    rx607_cur."!cursor_fail"()
-    rx607_cur."!cursor_debug"("FAIL  ", "variable_declarator")
-    .return (rx607_cur)
+  rx611_done:
+    rx611_cur."!cursor_fail"()
+    rx611_cur."!cursor_debug"("FAIL  ", "typename")
+    .return (rx611_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("148_1274853038.58734") :method
+.sub "!PREFIX__typename"  :subid("147_1275811487.95429") :method
 .annotate 'line', 4
-    $P609 = self."!PREFIX__!subrule"("variable", "")
-    new $P610, "ResizablePMCArray"
-    push $P610, $P609
-    .return ($P610)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("149_1274853038.58734") :method
-.annotate 'line', 289
-    $P613 = self."!protoregex"("routine_declarator")
-    .return ($P613)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("150_1274853038.58734") :method
-.annotate 'line', 289
-    $P615 = self."!PREFIX__!protoregex"("routine_declarator")
-    .return ($P615)
+    $P613 = self."!PREFIX__!subrule"("name", "")
+    new $P614, "ResizablePMCArray"
+    push $P614, $P613
+    .return ($P614)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>"  :subid("151_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "declarator"  :subid("148_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
     .local string rx617_tgt
     .local int rx617_pos
@@ -7368,60 +7418,56 @@
     .local int rx617_rep
     .local pmc rx617_cur
     (rx617_cur, rx617_pos, rx617_tgt) = self."!cursor_start"()
-    rx617_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+    rx617_cur."!cursor_debug"("START ", "declarator")
     .lex unicode:"$\x{a2}", rx617_cur
     .local pmc match
     .lex "$/", match
     length rx617_eos, rx617_tgt
+    gt rx617_pos, rx617_eos, rx617_done
     set rx617_off, 0
     lt rx617_pos, 2, rx617_start
     sub rx617_off, rx617_pos, 1
     substr rx617_tgt, rx617_tgt, rx617_off
   rx617_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan621_done
-    goto rxscan621_scan
-  rxscan621_loop:
+    ne $I10, -1, rxscan622_done
+    goto rxscan622_scan
+  rxscan622_loop:
     ($P10) = rx617_cur."from"()
     inc $P10
     set rx617_pos, $P10
-    ge rx617_pos, rx617_eos, rxscan621_done
-  rxscan621_scan:
-    set_addr $I10, rxscan621_loop
+    ge rx617_pos, rx617_eos, rxscan622_done
+  rxscan622_scan:
+    set_addr $I10, rxscan622_loop
     rx617_cur."!mark_push"(0, rx617_pos, $I10)
-  rxscan621_done:
-.annotate 'line', 290
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_622_fail
+  rxscan622_done:
+  alt623_0:
+.annotate 'line', 284
+    set_addr $I10, alt623_1
     rx617_cur."!mark_push"(0, rx617_pos, $I10)
-  # rx literal  "sub"
-    add $I11, rx617_pos, 3
-    gt $I11, rx617_eos, rx617_fail
-    sub $I11, rx617_pos, rx617_off
-    substr $S10, rx617_tgt, $I11, 3
-    ne $S10, "sub", rx617_fail
-    add rx617_pos, 3
-    set_addr $I10, rxcap_622_fail
-    ($I12, $I11) = rx617_cur."!mark_peek"($I10)
-    rx617_cur."!cursor_pos"($I11)
-    ($P10) = rx617_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx617_pos, "")
+.annotate 'line', 285
+  # rx subrule "variable_declarator" subtype=capture negate=
+    rx617_cur."!cursor_pos"(rx617_pos)
+    $P10 = rx617_cur."variable_declarator"()
+    unless $P10, rx617_fail
     rx617_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_622_done
-  rxcap_622_fail:
-    goto rx617_fail
-  rxcap_622_done:
-  # rx subrule "routine_def" subtype=capture negate=
+    $P10."!cursor_names"("variable_declarator")
+    rx617_pos = $P10."pos"()
+    goto alt623_end
+  alt623_1:
+.annotate 'line', 286
+  # rx subrule "routine_declarator" subtype=capture negate=
     rx617_cur."!cursor_pos"(rx617_pos)
-    $P10 = rx617_cur."routine_def"()
+    $P10 = rx617_cur."routine_declarator"()
     unless $P10, rx617_fail
     rx617_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("routine_def")
+    $P10."!cursor_names"("routine_declarator")
     rx617_pos = $P10."pos"()
+  alt623_end:
+.annotate 'line', 284
   # rx pass
-    rx617_cur."!cursor_pass"(rx617_pos, "routine_declarator:sym<sub>")
-    rx617_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<sub>", " at pos=", rx617_pos)
+    rx617_cur."!cursor_pass"(rx617_pos, "declarator")
+    rx617_cur."!cursor_debug"("PASS  ", "declarator", " at pos=", rx617_pos)
     .return (rx617_cur)
   rx617_fail:
 .annotate 'line', 4
@@ -7431,508 +7477,509 @@
     jump $I10
   rx617_done:
     rx617_cur."!cursor_fail"()
-    rx617_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<sub>")
+    rx617_cur."!cursor_debug"("FAIL  ", "declarator")
     .return (rx617_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("152_1274853038.58734") :method
+.sub "!PREFIX__declarator"  :subid("149_1275811487.95429") :method
+.annotate 'line', 4
+    $P619 = self."!PREFIX__!subrule"("routine_declarator", "")
+    $P620 = self."!PREFIX__!subrule"("variable_declarator", "")
+    new $P621, "ResizablePMCArray"
+    push $P621, $P619
+    push $P621, $P620
+    .return ($P621)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "variable_declarator"  :subid("150_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx625_tgt
+    .local int rx625_pos
+    .local int rx625_off
+    .local int rx625_eos
+    .local int rx625_rep
+    .local pmc rx625_cur
+    (rx625_cur, rx625_pos, rx625_tgt) = self."!cursor_start"()
+    rx625_cur."!cursor_debug"("START ", "variable_declarator")
+    .lex unicode:"$\x{a2}", rx625_cur
+    .local pmc match
+    .lex "$/", match
+    length rx625_eos, rx625_tgt
+    gt rx625_pos, rx625_eos, rx625_done
+    set rx625_off, 0
+    lt rx625_pos, 2, rx625_start
+    sub rx625_off, rx625_pos, 1
+    substr rx625_tgt, rx625_tgt, rx625_off
+  rx625_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan629_done
+    goto rxscan629_scan
+  rxscan629_loop:
+    ($P10) = rx625_cur."from"()
+    inc $P10
+    set rx625_pos, $P10
+    ge rx625_pos, rx625_eos, rxscan629_done
+  rxscan629_scan:
+    set_addr $I10, rxscan629_loop
+    rx625_cur."!mark_push"(0, rx625_pos, $I10)
+  rxscan629_done:
+.annotate 'line', 289
+  # rx subrule "variable" subtype=capture negate=
+    rx625_cur."!cursor_pos"(rx625_pos)
+    $P10 = rx625_cur."variable"()
+    unless $P10, rx625_fail
+    rx625_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("variable")
+    rx625_pos = $P10."pos"()
+  # rx pass
+    rx625_cur."!cursor_pass"(rx625_pos, "variable_declarator")
+    rx625_cur."!cursor_debug"("PASS  ", "variable_declarator", " at pos=", rx625_pos)
+    .return (rx625_cur)
+  rx625_fail:
+.annotate 'line', 4
+    (rx625_rep, rx625_pos, $I10, $P10) = rx625_cur."!mark_fail"(0)
+    lt rx625_pos, -1, rx625_done
+    eq rx625_pos, -1, rx625_fail
+    jump $I10
+  rx625_done:
+    rx625_cur."!cursor_fail"()
+    rx625_cur."!cursor_debug"("FAIL  ", "variable_declarator")
+    .return (rx625_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__variable_declarator"  :subid("151_1275811487.95429") :method
 .annotate 'line', 4
-    $P619 = self."!PREFIX__!subrule"("routine_def", "sub")
-    new $P620, "ResizablePMCArray"
-    push $P620, $P619
-    .return ($P620)
+    $P627 = self."!PREFIX__!subrule"("variable", "")
+    new $P628, "ResizablePMCArray"
+    push $P628, $P627
+    .return ($P628)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>"  :subid("153_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 4
-    .local string rx624_tgt
-    .local int rx624_pos
-    .local int rx624_off
-    .local int rx624_eos
-    .local int rx624_rep
-    .local pmc rx624_cur
-    (rx624_cur, rx624_pos, rx624_tgt) = self."!cursor_start"()
-    rx624_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
-    .lex unicode:"$\x{a2}", rx624_cur
-    .local pmc match
-    .lex "$/", match
-    length rx624_eos, rx624_tgt
-    set rx624_off, 0
-    lt rx624_pos, 2, rx624_start
-    sub rx624_off, rx624_pos, 1
-    substr rx624_tgt, rx624_tgt, rx624_off
-  rx624_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan628_done
-    goto rxscan628_scan
-  rxscan628_loop:
-    ($P10) = rx624_cur."from"()
-    inc $P10
-    set rx624_pos, $P10
-    ge rx624_pos, rx624_eos, rxscan628_done
-  rxscan628_scan:
-    set_addr $I10, rxscan628_loop
-    rx624_cur."!mark_push"(0, rx624_pos, $I10)
-  rxscan628_done:
+.sub "routine_declarator"  :subid("152_1275811487.95429") :method
 .annotate 'line', 291
+    $P631 = self."!protoregex"("routine_declarator")
+    .return ($P631)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__routine_declarator"  :subid("153_1275811487.95429") :method
+.annotate 'line', 291
+    $P633 = self."!PREFIX__!protoregex"("routine_declarator")
+    .return ($P633)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "routine_declarator:sym<sub>"  :subid("154_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx635_tgt
+    .local int rx635_pos
+    .local int rx635_off
+    .local int rx635_eos
+    .local int rx635_rep
+    .local pmc rx635_cur
+    (rx635_cur, rx635_pos, rx635_tgt) = self."!cursor_start"()
+    rx635_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+    .lex unicode:"$\x{a2}", rx635_cur
+    .local pmc match
+    .lex "$/", match
+    length rx635_eos, rx635_tgt
+    gt rx635_pos, rx635_eos, rx635_done
+    set rx635_off, 0
+    lt rx635_pos, 2, rx635_start
+    sub rx635_off, rx635_pos, 1
+    substr rx635_tgt, rx635_tgt, rx635_off
+  rx635_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan639_done
+    goto rxscan639_scan
+  rxscan639_loop:
+    ($P10) = rx635_cur."from"()
+    inc $P10
+    set rx635_pos, $P10
+    ge rx635_pos, rx635_eos, rxscan639_done
+  rxscan639_scan:
+    set_addr $I10, rxscan639_loop
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+  rxscan639_done:
+.annotate 'line', 292
   # rx subcapture "sym"
-    set_addr $I10, rxcap_629_fail
-    rx624_cur."!mark_push"(0, rx624_pos, $I10)
-  # rx literal  "method"
-    add $I11, rx624_pos, 6
-    gt $I11, rx624_eos, rx624_fail
-    sub $I11, rx624_pos, rx624_off
-    substr $S10, rx624_tgt, $I11, 6
-    ne $S10, "method", rx624_fail
-    add rx624_pos, 6
-    set_addr $I10, rxcap_629_fail
-    ($I12, $I11) = rx624_cur."!mark_peek"($I10)
-    rx624_cur."!cursor_pos"($I11)
-    ($P10) = rx624_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx624_pos, "")
-    rx624_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_640_fail
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+  # rx literal  "sub"
+    add $I11, rx635_pos, 3
+    gt $I11, rx635_eos, rx635_fail
+    sub $I11, rx635_pos, rx635_off
+    substr $S10, rx635_tgt, $I11, 3
+    ne $S10, "sub", rx635_fail
+    add rx635_pos, 3
+    set_addr $I10, rxcap_640_fail
+    ($I12, $I11) = rx635_cur."!mark_peek"($I10)
+    rx635_cur."!cursor_pos"($I11)
+    ($P10) = rx635_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx635_pos, "")
+    rx635_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_629_done
-  rxcap_629_fail:
-    goto rx624_fail
-  rxcap_629_done:
-  # rx subrule "method_def" subtype=capture negate=
-    rx624_cur."!cursor_pos"(rx624_pos)
-    $P10 = rx624_cur."method_def"()
-    unless $P10, rx624_fail
-    rx624_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("method_def")
-    rx624_pos = $P10."pos"()
+    goto rxcap_640_done
+  rxcap_640_fail:
+    goto rx635_fail
+  rxcap_640_done:
+  # rx subrule "routine_def" subtype=capture negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."routine_def"()
+    unless $P10, rx635_fail
+    rx635_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("routine_def")
+    rx635_pos = $P10."pos"()
   # rx pass
-    rx624_cur."!cursor_pass"(rx624_pos, "routine_declarator:sym<method>")
-    rx624_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<method>", " at pos=", rx624_pos)
-    .return (rx624_cur)
-  rx624_fail:
+    rx635_cur."!cursor_pass"(rx635_pos, "routine_declarator:sym<sub>")
+    rx635_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<sub>", " at pos=", rx635_pos)
+    .return (rx635_cur)
+  rx635_fail:
 .annotate 'line', 4
-    (rx624_rep, rx624_pos, $I10, $P10) = rx624_cur."!mark_fail"(0)
-    lt rx624_pos, -1, rx624_done
-    eq rx624_pos, -1, rx624_fail
+    (rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0)
+    lt rx635_pos, -1, rx635_done
+    eq rx635_pos, -1, rx635_fail
     jump $I10
-  rx624_done:
-    rx624_cur."!cursor_fail"()
-    rx624_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<method>")
-    .return (rx624_cur)
+  rx635_done:
+    rx635_cur."!cursor_fail"()
+    rx635_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<sub>")
+    .return (rx635_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("154_1274853038.58734") :method
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("155_1275811487.95429") :method
 .annotate 'line', 4
-    $P626 = self."!PREFIX__!subrule"("method_def", "method")
-    new $P627, "ResizablePMCArray"
-    push $P627, $P626
-    .return ($P627)
+    $P637 = self."!PREFIX__!subrule"("routine_def", "sub")
+    new $P638, "ResizablePMCArray"
+    push $P638, $P637
+    .return ($P638)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("155_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "routine_declarator:sym<method>"  :subid("156_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx631_tgt
-    .local int rx631_pos
-    .local int rx631_off
-    .local int rx631_eos
-    .local int rx631_rep
-    .local pmc rx631_cur
-    (rx631_cur, rx631_pos, rx631_tgt) = self."!cursor_start"()
-    rx631_cur."!cursor_debug"("START ", "routine_def")
-    rx631_cur."!cursor_caparray"("sigil", "deflongname")
-    .lex unicode:"$\x{a2}", rx631_cur
+    .local string rx642_tgt
+    .local int rx642_pos
+    .local int rx642_off
+    .local int rx642_eos
+    .local int rx642_rep
+    .local pmc rx642_cur
+    (rx642_cur, rx642_pos, rx642_tgt) = self."!cursor_start"()
+    rx642_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
+    .lex unicode:"$\x{a2}", rx642_cur
     .local pmc match
     .lex "$/", match
-    length rx631_eos, rx631_tgt
-    set rx631_off, 0
-    lt rx631_pos, 2, rx631_start
-    sub rx631_off, rx631_pos, 1
-    substr rx631_tgt, rx631_tgt, rx631_off
-  rx631_start:
+    length rx642_eos, rx642_tgt
+    gt rx642_pos, rx642_eos, rx642_done
+    set rx642_off, 0
+    lt rx642_pos, 2, rx642_start
+    sub rx642_off, rx642_pos, 1
+    substr rx642_tgt, rx642_tgt, rx642_off
+  rx642_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan634_done
-    goto rxscan634_scan
-  rxscan634_loop:
-    ($P10) = rx631_cur."from"()
+    ne $I10, -1, rxscan646_done
+    goto rxscan646_scan
+  rxscan646_loop:
+    ($P10) = rx642_cur."from"()
     inc $P10
-    set rx631_pos, $P10
-    ge rx631_pos, rx631_eos, rxscan634_done
-  rxscan634_scan:
-    set_addr $I10, rxscan634_loop
-    rx631_cur."!mark_push"(0, rx631_pos, $I10)
-  rxscan634_done:
-.annotate 'line', 293
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-.annotate 'line', 294
-  # rx rxquantr636 ** 0..1
-    set_addr $I642, rxquantr636_done
-    rx631_cur."!mark_push"(0, rx631_pos, $I642)
-  rxquantr636_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-  # rx subcapture "sigil"
-    set_addr $I10, rxcap_640_fail
-    rx631_cur."!mark_push"(0, rx631_pos, $I10)
-  # rx rxquantr638 ** 0..1
-    set_addr $I639, rxquantr638_done
-    rx631_cur."!mark_push"(0, rx631_pos, $I639)
-  rxquantr638_loop:
-  # rx literal  "&"
-    add $I11, rx631_pos, 1
-    gt $I11, rx631_eos, rx631_fail
-    sub $I11, rx631_pos, rx631_off
-    substr $S10, rx631_tgt, $I11, 1
-    ne $S10, "&", rx631_fail
-    add rx631_pos, 1
-    (rx631_rep) = rx631_cur."!mark_commit"($I639)
-  rxquantr638_done:
-    set_addr $I10, rxcap_640_fail
-    ($I12, $I11) = rx631_cur."!mark_peek"($I10)
-    rx631_cur."!cursor_pos"($I11)
-    ($P10) = rx631_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx631_pos, "")
-    rx631_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sigil")
-    goto rxcap_640_done
-  rxcap_640_fail:
-    goto rx631_fail
-  rxcap_640_done:
-  # rx subrule "deflongname" subtype=capture negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."deflongname"()
-    unless $P10, rx631_fail
-    rx631_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("deflongname")
-    rx631_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-    (rx631_rep) = rx631_cur."!mark_commit"($I642)
-  rxquantr636_done:
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-.annotate 'line', 295
-  # rx subrule "newpad" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."newpad"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-  alt645_0:
-.annotate 'line', 296
-    set_addr $I10, alt645_1
-    rx631_cur."!mark_push"(0, rx631_pos, $I10)
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-  # rx literal  "("
-    add $I11, rx631_pos, 1
-    gt $I11, rx631_eos, rx631_fail
-    sub $I11, rx631_pos, rx631_off
-    substr $S10, rx631_tgt, $I11, 1
-    ne $S10, "(", rx631_fail
-    add rx631_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-  # rx subrule "signature" subtype=capture negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."signature"()
-    unless $P10, rx631_fail
-    rx631_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("signature")
-    rx631_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-  # rx literal  ")"
-    add $I11, rx631_pos, 1
-    gt $I11, rx631_eos, rx631_fail
-    sub $I11, rx631_pos, rx631_off
-    substr $S10, rx631_tgt, $I11, 1
-    ne $S10, ")", rx631_fail
-    add rx631_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-    goto alt645_end
-  alt645_1:
-.annotate 'line', 297
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-  # rx subrule "panic" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."panic"("Routine declaration requires a signature")
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-  alt645_end:
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
-.annotate 'line', 298
-  # rx subrule "blockoid" subtype=capture negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."blockoid"()
-    unless $P10, rx631_fail
-    rx631_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("blockoid")
-    rx631_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx631_cur."!cursor_pos"(rx631_pos)
-    $P10 = rx631_cur."ws"()
-    unless $P10, rx631_fail
-    rx631_pos = $P10."pos"()
+    set rx642_pos, $P10
+    ge rx642_pos, rx642_eos, rxscan646_done
+  rxscan646_scan:
+    set_addr $I10, rxscan646_loop
+    rx642_cur."!mark_push"(0, rx642_pos, $I10)
+  rxscan646_done:
 .annotate 'line', 293
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_647_fail
+    rx642_cur."!mark_push"(0, rx642_pos, $I10)
+  # rx literal  "method"
+    add $I11, rx642_pos, 6
+    gt $I11, rx642_eos, rx642_fail
+    sub $I11, rx642_pos, rx642_off
+    substr $S10, rx642_tgt, $I11, 6
+    ne $S10, "method", rx642_fail
+    add rx642_pos, 6
+    set_addr $I10, rxcap_647_fail
+    ($I12, $I11) = rx642_cur."!mark_peek"($I10)
+    rx642_cur."!cursor_pos"($I11)
+    ($P10) = rx642_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx642_pos, "")
+    rx642_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_647_done
+  rxcap_647_fail:
+    goto rx642_fail
+  rxcap_647_done:
+  # rx subrule "method_def" subtype=capture negate=
+    rx642_cur."!cursor_pos"(rx642_pos)
+    $P10 = rx642_cur."method_def"()
+    unless $P10, rx642_fail
+    rx642_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("method_def")
+    rx642_pos = $P10."pos"()
   # rx pass
-    rx631_cur."!cursor_pass"(rx631_pos, "routine_def")
-    rx631_cur."!cursor_debug"("PASS  ", "routine_def", " at pos=", rx631_pos)
-    .return (rx631_cur)
-  rx631_fail:
+    rx642_cur."!cursor_pass"(rx642_pos, "routine_declarator:sym<method>")
+    rx642_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<method>", " at pos=", rx642_pos)
+    .return (rx642_cur)
+  rx642_fail:
 .annotate 'line', 4
-    (rx631_rep, rx631_pos, $I10, $P10) = rx631_cur."!mark_fail"(0)
-    lt rx631_pos, -1, rx631_done
-    eq rx631_pos, -1, rx631_fail
+    (rx642_rep, rx642_pos, $I10, $P10) = rx642_cur."!mark_fail"(0)
+    lt rx642_pos, -1, rx642_done
+    eq rx642_pos, -1, rx642_fail
     jump $I10
-  rx631_done:
-    rx631_cur."!cursor_fail"()
-    rx631_cur."!cursor_debug"("FAIL  ", "routine_def")
-    .return (rx631_cur)
+  rx642_done:
+    rx642_cur."!cursor_fail"()
+    rx642_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<method>")
+    .return (rx642_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("156_1274853038.58734") :method
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("157_1275811487.95429") :method
 .annotate 'line', 4
-    new $P633, "ResizablePMCArray"
-    push $P633, ""
-    .return ($P633)
+    $P644 = self."!PREFIX__!subrule"("method_def", "method")
+    new $P645, "ResizablePMCArray"
+    push $P645, $P644
+    .return ($P645)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("157_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "routine_def"  :subid("158_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx655_tgt
-    .local int rx655_pos
-    .local int rx655_off
-    .local int rx655_eos
-    .local int rx655_rep
-    .local pmc rx655_cur
-    (rx655_cur, rx655_pos, rx655_tgt) = self."!cursor_start"()
-    rx655_cur."!cursor_debug"("START ", "method_def")
-    rx655_cur."!cursor_caparray"("deflongname")
-    .lex unicode:"$\x{a2}", rx655_cur
-    .local pmc match
-    .lex "$/", match
-    length rx655_eos, rx655_tgt
-    set rx655_off, 0
-    lt rx655_pos, 2, rx655_start
-    sub rx655_off, rx655_pos, 1
-    substr rx655_tgt, rx655_tgt, rx655_off
-  rx655_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan658_done
-    goto rxscan658_scan
-  rxscan658_loop:
-    ($P10) = rx655_cur."from"()
-    inc $P10
-    set rx655_pos, $P10
-    ge rx655_pos, rx655_eos, rxscan658_done
-  rxscan658_scan:
-    set_addr $I10, rxscan658_loop
-    rx655_cur."!mark_push"(0, rx655_pos, $I10)
-  rxscan658_done:
-.annotate 'line', 301
+    .local string rx649_tgt
+    .local int rx649_pos
+    .local int rx649_off
+    .local int rx649_eos
+    .local int rx649_rep
+    .local pmc rx649_cur
+    (rx649_cur, rx649_pos, rx649_tgt) = self."!cursor_start"()
+    rx649_cur."!cursor_debug"("START ", "routine_def")
+    rx649_cur."!cursor_caparray"("deflongname", "sigil")
+    .lex unicode:"$\x{a2}", rx649_cur
+    .local pmc match
+    .lex "$/", match
+    length rx649_eos, rx649_tgt
+    gt rx649_pos, rx649_eos, rx649_done
+    set rx649_off, 0
+    lt rx649_pos, 2, rx649_start
+    sub rx649_off, rx649_pos, 1
+    substr rx649_tgt, rx649_tgt, rx649_off
+  rx649_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan653_done
+    goto rxscan653_scan
+  rxscan653_loop:
+    ($P10) = rx649_cur."from"()
+    inc $P10
+    set rx649_pos, $P10
+    ge rx649_pos, rx649_eos, rxscan653_done
+  rxscan653_scan:
+    set_addr $I10, rxscan653_loop
+    rx649_cur."!mark_push"(0, rx649_pos, $I10)
+  rxscan653_done:
+.annotate 'line', 295
   # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
-.annotate 'line', 302
-  # rx rxquantr660 ** 0..1
-    set_addr $I661, rxquantr660_done
-    rx655_cur."!mark_push"(0, rx655_pos, $I661)
-  rxquantr660_loop:
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
+.annotate 'line', 296
+  # rx rxquantr655 ** 0..1
+    set_addr $I661, rxquantr655_done
+    rx649_cur."!mark_push"(0, rx649_pos, $I661)
+  rxquantr655_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
+  # rx subcapture "sigil"
+    set_addr $I10, rxcap_659_fail
+    rx649_cur."!mark_push"(0, rx649_pos, $I10)
+  # rx rxquantr657 ** 0..1
+    set_addr $I658, rxquantr657_done
+    rx649_cur."!mark_push"(0, rx649_pos, $I658)
+  rxquantr657_loop:
+  # rx literal  "&"
+    add $I11, rx649_pos, 1
+    gt $I11, rx649_eos, rx649_fail
+    sub $I11, rx649_pos, rx649_off
+    substr $S10, rx649_tgt, $I11, 1
+    ne $S10, "&", rx649_fail
+    add rx649_pos, 1
+    (rx649_rep) = rx649_cur."!mark_commit"($I658)
+  rxquantr657_done:
+    set_addr $I10, rxcap_659_fail
+    ($I12, $I11) = rx649_cur."!mark_peek"($I10)
+    rx649_cur."!cursor_pos"($I11)
+    ($P10) = rx649_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx649_pos, "")
+    rx649_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sigil")
+    goto rxcap_659_done
+  rxcap_659_fail:
+    goto rx649_fail
+  rxcap_659_done:
   # rx subrule "deflongname" subtype=capture negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."deflongname"()
-    unless $P10, rx655_fail
-    rx655_cur."!mark_push"(0, -1, 0, $P10)
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."deflongname"()
+    unless $P10, rx649_fail
+    rx649_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx655_pos = $P10."pos"()
-    (rx655_rep) = rx655_cur."!mark_commit"($I661)
-  rxquantr660_done:
-  # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
-.annotate 'line', 303
+    rx649_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
+    (rx649_rep) = rx649_cur."!mark_commit"($I661)
+  rxquantr655_done:
+  # rx subrule "ws" subtype=method negate=
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
+.annotate 'line', 297
   # rx subrule "newpad" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."newpad"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."newpad"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
   alt664_0:
-.annotate 'line', 304
+.annotate 'line', 298
     set_addr $I10, alt664_1
-    rx655_cur."!mark_push"(0, rx655_pos, $I10)
+    rx649_cur."!mark_push"(0, rx649_pos, $I10)
   # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx655_pos, 1
-    gt $I11, rx655_eos, rx655_fail
-    sub $I11, rx655_pos, rx655_off
-    substr $S10, rx655_tgt, $I11, 1
-    ne $S10, "(", rx655_fail
-    add rx655_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
+    add $I11, rx649_pos, 1
+    gt $I11, rx649_eos, rx649_fail
+    sub $I11, rx649_pos, rx649_off
+    substr $S10, rx649_tgt, $I11, 1
+    ne $S10, "(", rx649_fail
+    add rx649_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
   # rx subrule "signature" subtype=capture negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."signature"()
-    unless $P10, rx655_fail
-    rx655_cur."!mark_push"(0, -1, 0, $P10)
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."signature"()
+    unless $P10, rx649_fail
+    rx649_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx655_pos = $P10."pos"()
+    rx649_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx655_pos, 1
-    gt $I11, rx655_eos, rx655_fail
-    sub $I11, rx655_pos, rx655_off
-    substr $S10, rx655_tgt, $I11, 1
-    ne $S10, ")", rx655_fail
-    add rx655_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
+    add $I11, rx649_pos, 1
+    gt $I11, rx649_eos, rx649_fail
+    sub $I11, rx649_pos, rx649_off
+    substr $S10, rx649_tgt, $I11, 1
+    ne $S10, ")", rx649_fail
+    add rx649_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
     goto alt664_end
   alt664_1:
-.annotate 'line', 305
+.annotate 'line', 299
   # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."panic"("Routine declaration requires a signature")
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."panic"("Routine declaration requires a signature")
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
   alt664_end:
   # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
-.annotate 'line', 306
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
+.annotate 'line', 300
   # rx subrule "blockoid" subtype=capture negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."blockoid"()
-    unless $P10, rx655_fail
-    rx655_cur."!mark_push"(0, -1, 0, $P10)
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."blockoid"()
+    unless $P10, rx649_fail
+    rx649_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx655_pos = $P10."pos"()
+    rx649_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx655_cur."!cursor_pos"(rx655_pos)
-    $P10 = rx655_cur."ws"()
-    unless $P10, rx655_fail
-    rx655_pos = $P10."pos"()
-.annotate 'line', 301
+    rx649_cur."!cursor_pos"(rx649_pos)
+    $P10 = rx649_cur."ws"()
+    unless $P10, rx649_fail
+    rx649_pos = $P10."pos"()
+.annotate 'line', 295
   # rx pass
-    rx655_cur."!cursor_pass"(rx655_pos, "method_def")
-    rx655_cur."!cursor_debug"("PASS  ", "method_def", " at pos=", rx655_pos)
-    .return (rx655_cur)
-  rx655_fail:
+    rx649_cur."!cursor_pass"(rx649_pos, "routine_def")
+    rx649_cur."!cursor_debug"("PASS  ", "routine_def", " at pos=", rx649_pos)
+    .return (rx649_cur)
+  rx649_fail:
 .annotate 'line', 4
-    (rx655_rep, rx655_pos, $I10, $P10) = rx655_cur."!mark_fail"(0)
-    lt rx655_pos, -1, rx655_done
-    eq rx655_pos, -1, rx655_fail
+    (rx649_rep, rx649_pos, $I10, $P10) = rx649_cur."!mark_fail"(0)
+    lt rx649_pos, -1, rx649_done
+    eq rx649_pos, -1, rx649_fail
     jump $I10
-  rx655_done:
-    rx655_cur."!cursor_fail"()
-    rx655_cur."!cursor_debug"("FAIL  ", "method_def")
-    .return (rx655_cur)
+  rx649_done:
+    rx649_cur."!cursor_fail"()
+    rx649_cur."!cursor_debug"("FAIL  ", "routine_def")
+    .return (rx649_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("158_1274853038.58734") :method
+.sub "!PREFIX__routine_def"  :subid("159_1275811487.95429") :method
 .annotate 'line', 4
-    new $P657, "ResizablePMCArray"
-    push $P657, ""
-    .return ($P657)
+    $P651 = self."!PREFIX__!subrule"("ws", "")
+    new $P652, "ResizablePMCArray"
+    push $P652, $P651
+    .return ($P652)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("159_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "method_def"  :subid("160_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
     .local string rx674_tgt
     .local int rx674_pos
@@ -7941,71 +7988,152 @@
     .local int rx674_rep
     .local pmc rx674_cur
     (rx674_cur, rx674_pos, rx674_tgt) = self."!cursor_start"()
-    rx674_cur."!cursor_debug"("START ", "signature")
-    rx674_cur."!cursor_caparray"("parameter")
+    rx674_cur."!cursor_debug"("START ", "method_def")
+    rx674_cur."!cursor_caparray"("deflongname")
     .lex unicode:"$\x{a2}", rx674_cur
     .local pmc match
     .lex "$/", match
     length rx674_eos, rx674_tgt
+    gt rx674_pos, rx674_eos, rx674_done
     set rx674_off, 0
     lt rx674_pos, 2, rx674_start
     sub rx674_off, rx674_pos, 1
     substr rx674_tgt, rx674_tgt, rx674_off
   rx674_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan677_done
-    goto rxscan677_scan
-  rxscan677_loop:
+    ne $I10, -1, rxscan678_done
+    goto rxscan678_scan
+  rxscan678_loop:
     ($P10) = rx674_cur."from"()
     inc $P10
     set rx674_pos, $P10
-    ge rx674_pos, rx674_eos, rxscan677_done
-  rxscan677_scan:
-    set_addr $I10, rxscan677_loop
+    ge rx674_pos, rx674_eos, rxscan678_done
+  rxscan678_scan:
+    set_addr $I10, rxscan678_loop
     rx674_cur."!mark_push"(0, rx674_pos, $I10)
-  rxscan677_done:
-.annotate 'line', 309
-  # rx rxquantr678 ** 0..1
-    set_addr $I681, rxquantr678_done
+  rxscan678_done:
+.annotate 'line', 303
+  # rx subrule "ws" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."ws"()
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+.annotate 'line', 304
+  # rx rxquantr680 ** 0..1
+    set_addr $I681, rxquantr680_done
     rx674_cur."!mark_push"(0, rx674_pos, $I681)
-  rxquantr678_loop:
-  # rx rxquantr679 ** 1..*
-    set_addr $I680, rxquantr679_done
-    rx674_cur."!mark_push"(0, -1, $I680)
-  rxquantr679_loop:
+  rxquantr680_loop:
+  # rx subrule "deflongname" subtype=capture negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."deflongname"()
+    unless $P10, rx674_fail
+    rx674_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("deflongname")
+    rx674_pos = $P10."pos"()
+    (rx674_rep) = rx674_cur."!mark_commit"($I681)
+  rxquantr680_done:
   # rx subrule "ws" subtype=method negate=
     rx674_cur."!cursor_pos"(rx674_pos)
     $P10 = rx674_cur."ws"()
     unless $P10, rx674_fail
     rx674_pos = $P10."pos"()
-  # rx subrule "parameter" subtype=capture negate=
+.annotate 'line', 305
+  # rx subrule "newpad" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."newpad"()
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."ws"()
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+  alt684_0:
+.annotate 'line', 306
+    set_addr $I10, alt684_1
+    rx674_cur."!mark_push"(0, rx674_pos, $I10)
+  # rx subrule "ws" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."ws"()
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+  # rx literal  "("
+    add $I11, rx674_pos, 1
+    gt $I11, rx674_eos, rx674_fail
+    sub $I11, rx674_pos, rx674_off
+    substr $S10, rx674_tgt, $I11, 1
+    ne $S10, "(", rx674_fail
+    add rx674_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."ws"()
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+  # rx subrule "signature" subtype=capture negate=
     rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."parameter"()
+    $P10 = rx674_cur."signature"()
     unless $P10, rx674_fail
     rx674_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("parameter")
+    $P10."!cursor_names"("signature")
     rx674_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
     rx674_cur."!cursor_pos"(rx674_pos)
     $P10 = rx674_cur."ws"()
     unless $P10, rx674_fail
     rx674_pos = $P10."pos"()
-    (rx674_rep) = rx674_cur."!mark_commit"($I680)
-    rx674_cur."!mark_push"(rx674_rep, rx674_pos, $I680)
-  # rx literal  ","
+  # rx literal  ")"
     add $I11, rx674_pos, 1
     gt $I11, rx674_eos, rx674_fail
     sub $I11, rx674_pos, rx674_off
     substr $S10, rx674_tgt, $I11, 1
-    ne $S10, ",", rx674_fail
+    ne $S10, ")", rx674_fail
     add rx674_pos, 1
-    goto rxquantr679_loop
-  rxquantr679_done:
-    (rx674_rep) = rx674_cur."!mark_commit"($I681)
-  rxquantr678_done:
+  # rx subrule "ws" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."ws"()
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+    goto alt684_end
+  alt684_1:
+.annotate 'line', 307
+  # rx subrule "ws" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."ws"()
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+  # rx subrule "panic" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."panic"("Routine declaration requires a signature")
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."ws"()
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+  alt684_end:
+  # rx subrule "ws" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."ws"()
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+.annotate 'line', 308
+  # rx subrule "blockoid" subtype=capture negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."blockoid"()
+    unless $P10, rx674_fail
+    rx674_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("blockoid")
+    rx674_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx674_cur."!cursor_pos"(rx674_pos)
+    $P10 = rx674_cur."ws"()
+    unless $P10, rx674_fail
+    rx674_pos = $P10."pos"()
+.annotate 'line', 303
   # rx pass
-    rx674_cur."!cursor_pass"(rx674_pos, "signature")
-    rx674_cur."!cursor_debug"("PASS  ", "signature", " at pos=", rx674_pos)
+    rx674_cur."!cursor_pass"(rx674_pos, "method_def")
+    rx674_cur."!cursor_debug"("PASS  ", "method_def", " at pos=", rx674_pos)
     .return (rx674_cur)
   rx674_fail:
 .annotate 'line', 4
@@ -8015,8876 +8143,9297 @@
     jump $I10
   rx674_done:
     rx674_cur."!cursor_fail"()
-    rx674_cur."!cursor_debug"("FAIL  ", "signature")
+    rx674_cur."!cursor_debug"("FAIL  ", "method_def")
     .return (rx674_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("160_1274853038.58734") :method
+.sub "!PREFIX__method_def"  :subid("161_1275811487.95429") :method
 .annotate 'line', 4
-    new $P676, "ResizablePMCArray"
-    push $P676, ""
-    .return ($P676)
+    $P676 = self."!PREFIX__!subrule"("ws", "")
+    new $P677, "ResizablePMCArray"
+    push $P677, $P676
+    .return ($P677)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("161_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 4
-    .local string rx683_tgt
-    .local int rx683_pos
-    .local int rx683_off
-    .local int rx683_eos
-    .local int rx683_rep
-    .local pmc rx683_cur
-    (rx683_cur, rx683_pos, rx683_tgt) = self."!cursor_start"()
-    rx683_cur."!cursor_debug"("START ", "parameter")
-    rx683_cur."!cursor_caparray"("typename", "default_value")
-    .lex unicode:"$\x{a2}", rx683_cur
-    .local pmc match
-    .lex "$/", match
-    length rx683_eos, rx683_tgt
-    set rx683_off, 0
-    lt rx683_pos, 2, rx683_start
-    sub rx683_off, rx683_pos, 1
-    substr rx683_tgt, rx683_tgt, rx683_off
-  rx683_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan686_done
-    goto rxscan686_scan
-  rxscan686_loop:
-    ($P10) = rx683_cur."from"()
-    inc $P10
-    set rx683_pos, $P10
-    ge rx683_pos, rx683_eos, rxscan686_done
-  rxscan686_scan:
-    set_addr $I10, rxscan686_loop
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
-  rxscan686_done:
-.annotate 'line', 312
-  # rx rxquantr687 ** 0..*
-    set_addr $I688, rxquantr687_done
-    rx683_cur."!mark_push"(0, rx683_pos, $I688)
-  rxquantr687_loop:
-  # rx subrule "typename" subtype=capture negate=
-    rx683_cur."!cursor_pos"(rx683_pos)
-    $P10 = rx683_cur."typename"()
-    unless $P10, rx683_fail
-    rx683_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("typename")
-    rx683_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx683_cur."!cursor_pos"(rx683_pos)
-    $P10 = rx683_cur."ws"()
-    unless $P10, rx683_fail
-    rx683_pos = $P10."pos"()
-    (rx683_rep) = rx683_cur."!mark_commit"($I688)
-    rx683_cur."!mark_push"(rx683_rep, rx683_pos, $I688)
-    goto rxquantr687_loop
-  rxquantr687_done:
-  alt689_0:
+.sub "multi_declarator"  :subid("162_1275811487.95429") :method
+.annotate 'line', 311
+    $P694 = self."!protoregex"("multi_declarator")
+    .return ($P694)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__multi_declarator"  :subid("163_1275811487.95429") :method
+.annotate 'line', 311
+    $P696 = self."!PREFIX__!protoregex"("multi_declarator")
+    .return ($P696)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "multi_declarator:sym<multi>"  :subid("164_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 313
+    new $P698, "Undef"
+    .lex "$*MULTINESS", $P698
+.annotate 'line', 4
+    .local string rx699_tgt
+    .local int rx699_pos
+    .local int rx699_off
+    .local int rx699_eos
+    .local int rx699_rep
+    .local pmc rx699_cur
+    (rx699_cur, rx699_pos, rx699_tgt) = self."!cursor_start"()
+    rx699_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
+    .lex unicode:"$\x{a2}", rx699_cur
+    .local pmc match
+    .lex "$/", match
+    length rx699_eos, rx699_tgt
+    gt rx699_pos, rx699_eos, rx699_done
+    set rx699_off, 0
+    lt rx699_pos, 2, rx699_start
+    sub rx699_off, rx699_pos, 1
+    substr rx699_tgt, rx699_tgt, rx699_off
+  rx699_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan703_done
+    goto rxscan703_scan
+  rxscan703_loop:
+    ($P10) = rx699_cur."from"()
+    inc $P10
+    set rx699_pos, $P10
+    ge rx699_pos, rx699_eos, rxscan703_done
+  rxscan703_scan:
+    set_addr $I10, rxscan703_loop
+    rx699_cur."!mark_push"(0, rx699_pos, $I10)
+  rxscan703_done:
 .annotate 'line', 313
-    set_addr $I10, alt689_1
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
+    rx699_cur."!cursor_pos"(rx699_pos)
+    new $P704, "String"
+    assign $P704, "multi"
+    store_lex "$*MULTINESS", $P704
 .annotate 'line', 314
-  # rx subcapture "quant"
-    set_addr $I10, rxcap_690_fail
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
-  # rx literal  "*"
-    add $I11, rx683_pos, 1
-    gt $I11, rx683_eos, rx683_fail
-    sub $I11, rx683_pos, rx683_off
-    substr $S10, rx683_tgt, $I11, 1
-    ne $S10, "*", rx683_fail
-    add rx683_pos, 1
-    set_addr $I10, rxcap_690_fail
-    ($I12, $I11) = rx683_cur."!mark_peek"($I10)
-    rx683_cur."!cursor_pos"($I11)
-    ($P10) = rx683_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx683_pos, "")
-    rx683_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quant")
-    goto rxcap_690_done
-  rxcap_690_fail:
-    goto rx683_fail
-  rxcap_690_done:
-  # rx subrule "param_var" subtype=capture negate=
-    rx683_cur."!cursor_pos"(rx683_pos)
-    $P10 = rx683_cur."param_var"()
-    unless $P10, rx683_fail
-    rx683_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("param_var")
-    rx683_pos = $P10."pos"()
-    goto alt689_end
-  alt689_1:
-  alt691_0:
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_705_fail
+    rx699_cur."!mark_push"(0, rx699_pos, $I10)
+  # rx literal  "multi"
+    add $I11, rx699_pos, 5
+    gt $I11, rx699_eos, rx699_fail
+    sub $I11, rx699_pos, rx699_off
+    substr $S10, rx699_tgt, $I11, 5
+    ne $S10, "multi", rx699_fail
+    add rx699_pos, 5
+    set_addr $I10, rxcap_705_fail
+    ($I12, $I11) = rx699_cur."!mark_peek"($I10)
+    rx699_cur."!cursor_pos"($I11)
+    ($P10) = rx699_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx699_pos, "")
+    rx699_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_705_done
+  rxcap_705_fail:
+    goto rx699_fail
+  rxcap_705_done:
 .annotate 'line', 315
-    set_addr $I10, alt691_1
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
-  # rx subrule "param_var" subtype=capture negate=
-    rx683_cur."!cursor_pos"(rx683_pos)
-    $P10 = rx683_cur."param_var"()
-    unless $P10, rx683_fail
-    rx683_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("param_var")
-    rx683_pos = $P10."pos"()
-    goto alt691_end
-  alt691_1:
-  # rx subrule "named_param" subtype=capture negate=
-    rx683_cur."!cursor_pos"(rx683_pos)
-    $P10 = rx683_cur."named_param"()
-    unless $P10, rx683_fail
-    rx683_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("named_param")
-    rx683_pos = $P10."pos"()
-  alt691_end:
-  # rx subcapture "quant"
-    set_addr $I10, rxcap_693_fail
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
-  alt692_0:
-    set_addr $I10, alt692_1
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
-  # rx literal  "?"
-    add $I11, rx683_pos, 1
-    gt $I11, rx683_eos, rx683_fail
-    sub $I11, rx683_pos, rx683_off
-    substr $S10, rx683_tgt, $I11, 1
-    ne $S10, "?", rx683_fail
-    add rx683_pos, 1
-    goto alt692_end
-  alt692_1:
-    set_addr $I10, alt692_2
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
-  # rx literal  "!"
-    add $I11, rx683_pos, 1
-    gt $I11, rx683_eos, rx683_fail
-    sub $I11, rx683_pos, rx683_off
-    substr $S10, rx683_tgt, $I11, 1
-    ne $S10, "!", rx683_fail
-    add rx683_pos, 1
-    goto alt692_end
-  alt692_2:
-  alt692_end:
-    set_addr $I10, rxcap_693_fail
-    ($I12, $I11) = rx683_cur."!mark_peek"($I10)
-    rx683_cur."!cursor_pos"($I11)
-    ($P10) = rx683_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx683_pos, "")
-    rx683_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quant")
-    goto rxcap_693_done
-  rxcap_693_fail:
-    goto rx683_fail
-  rxcap_693_done:
-  alt689_end:
-.annotate 'line', 317
-  # rx rxquantr694 ** 0..1
-    set_addr $I695, rxquantr694_done
-    rx683_cur."!mark_push"(0, rx683_pos, $I695)
-  rxquantr694_loop:
-  # rx subrule "default_value" subtype=capture negate=
-    rx683_cur."!cursor_pos"(rx683_pos)
-    $P10 = rx683_cur."default_value"()
-    unless $P10, rx683_fail
-    rx683_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("default_value")
-    rx683_pos = $P10."pos"()
-    (rx683_rep) = rx683_cur."!mark_commit"($I695)
-  rxquantr694_done:
-.annotate 'line', 311
+  # rx subrule "ws" subtype=method negate=
+    rx699_cur."!cursor_pos"(rx699_pos)
+    $P10 = rx699_cur."ws"()
+    unless $P10, rx699_fail
+    rx699_pos = $P10."pos"()
+  alt706_0:
+    set_addr $I10, alt706_1
+    rx699_cur."!mark_push"(0, rx699_pos, $I10)
+  # rx subrule "declarator" subtype=capture negate=
+    rx699_cur."!cursor_pos"(rx699_pos)
+    $P10 = rx699_cur."declarator"()
+    unless $P10, rx699_fail
+    rx699_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("declarator")
+    rx699_pos = $P10."pos"()
+    goto alt706_end
+  alt706_1:
+    set_addr $I10, alt706_2
+    rx699_cur."!mark_push"(0, rx699_pos, $I10)
+  # rx subrule "routine_def" subtype=capture negate=
+    rx699_cur."!cursor_pos"(rx699_pos)
+    $P10 = rx699_cur."routine_def"()
+    unless $P10, rx699_fail
+    rx699_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("routine_def")
+    rx699_pos = $P10."pos"()
+    goto alt706_end
+  alt706_2:
+  # rx subrule "panic" subtype=method negate=
+    rx699_cur."!cursor_pos"(rx699_pos)
+    $P10 = rx699_cur."panic"("Malformed multi")
+    unless $P10, rx699_fail
+    rx699_pos = $P10."pos"()
+  alt706_end:
+.annotate 'line', 312
   # rx pass
-    rx683_cur."!cursor_pass"(rx683_pos, "parameter")
-    rx683_cur."!cursor_debug"("PASS  ", "parameter", " at pos=", rx683_pos)
-    .return (rx683_cur)
-  rx683_fail:
+    rx699_cur."!cursor_pass"(rx699_pos, "multi_declarator:sym<multi>")
+    rx699_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<multi>", " at pos=", rx699_pos)
+    .return (rx699_cur)
+  rx699_fail:
 .annotate 'line', 4
-    (rx683_rep, rx683_pos, $I10, $P10) = rx683_cur."!mark_fail"(0)
-    lt rx683_pos, -1, rx683_done
-    eq rx683_pos, -1, rx683_fail
+    (rx699_rep, rx699_pos, $I10, $P10) = rx699_cur."!mark_fail"(0)
+    lt rx699_pos, -1, rx699_done
+    eq rx699_pos, -1, rx699_fail
     jump $I10
-  rx683_done:
-    rx683_cur."!cursor_fail"()
-    rx683_cur."!cursor_debug"("FAIL  ", "parameter")
-    .return (rx683_cur)
+  rx699_done:
+    rx699_cur."!cursor_fail"()
+    rx699_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<multi>")
+    .return (rx699_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("162_1274853038.58734") :method
+.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("165_1275811487.95429") :method
 .annotate 'line', 4
-    new $P685, "ResizablePMCArray"
-    push $P685, ""
-    .return ($P685)
+    $P701 = self."!PREFIX__!subrule"("ws", "multi")
+    new $P702, "ResizablePMCArray"
+    push $P702, $P701
+    .return ($P702)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("163_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "multi_declarator:sym<null>"  :subid("166_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 318
+    new $P708, "Undef"
+    .lex "$*MULTINESS", $P708
 .annotate 'line', 4
-    .local string rx697_tgt
-    .local int rx697_pos
-    .local int rx697_off
-    .local int rx697_eos
-    .local int rx697_rep
-    .local pmc rx697_cur
-    (rx697_cur, rx697_pos, rx697_tgt) = self."!cursor_start"()
-    rx697_cur."!cursor_debug"("START ", "param_var")
-    rx697_cur."!cursor_caparray"("twigil")
-    .lex unicode:"$\x{a2}", rx697_cur
-    .local pmc match
-    .lex "$/", match
-    length rx697_eos, rx697_tgt
-    set rx697_off, 0
-    lt rx697_pos, 2, rx697_start
-    sub rx697_off, rx697_pos, 1
-    substr rx697_tgt, rx697_tgt, rx697_off
-  rx697_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan701_done
-    goto rxscan701_scan
-  rxscan701_loop:
-    ($P10) = rx697_cur."from"()
-    inc $P10
-    set rx697_pos, $P10
-    ge rx697_pos, rx697_eos, rxscan701_done
-  rxscan701_scan:
-    set_addr $I10, rxscan701_loop
-    rx697_cur."!mark_push"(0, rx697_pos, $I10)
-  rxscan701_done:
-.annotate 'line', 321
-  # rx subrule "sigil" subtype=capture negate=
-    rx697_cur."!cursor_pos"(rx697_pos)
-    $P10 = rx697_cur."sigil"()
-    unless $P10, rx697_fail
-    rx697_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sigil")
-    rx697_pos = $P10."pos"()
-  # rx rxquantr702 ** 0..1
-    set_addr $I703, rxquantr702_done
-    rx697_cur."!mark_push"(0, rx697_pos, $I703)
-  rxquantr702_loop:
-  # rx subrule "twigil" subtype=capture negate=
-    rx697_cur."!cursor_pos"(rx697_pos)
-    $P10 = rx697_cur."twigil"()
-    unless $P10, rx697_fail
-    rx697_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("twigil")
-    rx697_pos = $P10."pos"()
-    (rx697_rep) = rx697_cur."!mark_commit"($I703)
-  rxquantr702_done:
-  alt704_0:
-.annotate 'line', 322
-    set_addr $I10, alt704_1
-    rx697_cur."!mark_push"(0, rx697_pos, $I10)
-  # rx subrule "ident" subtype=capture negate=
-    rx697_cur."!cursor_pos"(rx697_pos)
-    $P10 = rx697_cur."ident"()
-    unless $P10, rx697_fail
-    rx697_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("name")
-    rx697_pos = $P10."pos"()
-    goto alt704_end
-  alt704_1:
-  # rx subcapture "name"
-    set_addr $I10, rxcap_705_fail
-    rx697_cur."!mark_push"(0, rx697_pos, $I10)
-  # rx enumcharlist negate=0 
-    ge rx697_pos, rx697_eos, rx697_fail
-    sub $I10, rx697_pos, rx697_off
-    substr $S10, rx697_tgt, $I10, 1
-    index $I11, "/!", $S10
-    lt $I11, 0, rx697_fail
-    inc rx697_pos
-    set_addr $I10, rxcap_705_fail
-    ($I12, $I11) = rx697_cur."!mark_peek"($I10)
-    rx697_cur."!cursor_pos"($I11)
-    ($P10) = rx697_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx697_pos, "")
-    rx697_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("name")
-    goto rxcap_705_done
-  rxcap_705_fail:
-    goto rx697_fail
-  rxcap_705_done:
-  alt704_end:
-.annotate 'line', 320
+    .local string rx709_tgt
+    .local int rx709_pos
+    .local int rx709_off
+    .local int rx709_eos
+    .local int rx709_rep
+    .local pmc rx709_cur
+    (rx709_cur, rx709_pos, rx709_tgt) = self."!cursor_start"()
+    rx709_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
+    .lex unicode:"$\x{a2}", rx709_cur
+    .local pmc match
+    .lex "$/", match
+    length rx709_eos, rx709_tgt
+    gt rx709_pos, rx709_eos, rx709_done
+    set rx709_off, 0
+    lt rx709_pos, 2, rx709_start
+    sub rx709_off, rx709_pos, 1
+    substr rx709_tgt, rx709_tgt, rx709_off
+  rx709_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan713_done
+    goto rxscan713_scan
+  rxscan713_loop:
+    ($P10) = rx709_cur."from"()
+    inc $P10
+    set rx709_pos, $P10
+    ge rx709_pos, rx709_eos, rxscan713_done
+  rxscan713_scan:
+    set_addr $I10, rxscan713_loop
+    rx709_cur."!mark_push"(0, rx709_pos, $I10)
+  rxscan713_done:
+.annotate 'line', 318
+    rx709_cur."!cursor_pos"(rx709_pos)
+    new $P714, "String"
+    assign $P714, ""
+    store_lex "$*MULTINESS", $P714
+.annotate 'line', 319
+  # rx subrule "declarator" subtype=capture negate=
+    rx709_cur."!cursor_pos"(rx709_pos)
+    $P10 = rx709_cur."declarator"()
+    unless $P10, rx709_fail
+    rx709_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("declarator")
+    rx709_pos = $P10."pos"()
+.annotate 'line', 317
   # rx pass
-    rx697_cur."!cursor_pass"(rx697_pos, "param_var")
-    rx697_cur."!cursor_debug"("PASS  ", "param_var", " at pos=", rx697_pos)
-    .return (rx697_cur)
-  rx697_fail:
+    rx709_cur."!cursor_pass"(rx709_pos, "multi_declarator:sym<null>")
+    rx709_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<null>", " at pos=", rx709_pos)
+    .return (rx709_cur)
+  rx709_fail:
 .annotate 'line', 4
-    (rx697_rep, rx697_pos, $I10, $P10) = rx697_cur."!mark_fail"(0)
-    lt rx697_pos, -1, rx697_done
-    eq rx697_pos, -1, rx697_fail
+    (rx709_rep, rx709_pos, $I10, $P10) = rx709_cur."!mark_fail"(0)
+    lt rx709_pos, -1, rx709_done
+    eq rx709_pos, -1, rx709_fail
     jump $I10
-  rx697_done:
-    rx697_cur."!cursor_fail"()
-    rx697_cur."!cursor_debug"("FAIL  ", "param_var")
-    .return (rx697_cur)
+  rx709_done:
+    rx709_cur."!cursor_fail"()
+    rx709_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<null>")
+    .return (rx709_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("164_1274853038.58734") :method
+.sub "!PREFIX__multi_declarator:sym<null>"  :subid("167_1275811487.95429") :method
 .annotate 'line', 4
-    $P699 = self."!PREFIX__!subrule"("sigil", "")
-    new $P700, "ResizablePMCArray"
-    push $P700, $P699
-    .return ($P700)
+    $P711 = self."!PREFIX__!subrule"("declarator", "")
+    new $P712, "ResizablePMCArray"
+    push $P712, $P711
+    .return ($P712)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("165_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "signature"  :subid("168_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx707_tgt
-    .local int rx707_pos
-    .local int rx707_off
-    .local int rx707_eos
-    .local int rx707_rep
-    .local pmc rx707_cur
-    (rx707_cur, rx707_pos, rx707_tgt) = self."!cursor_start"()
-    rx707_cur."!cursor_debug"("START ", "named_param")
-    .lex unicode:"$\x{a2}", rx707_cur
+    .local string rx716_tgt
+    .local int rx716_pos
+    .local int rx716_off
+    .local int rx716_eos
+    .local int rx716_rep
+    .local pmc rx716_cur
+    (rx716_cur, rx716_pos, rx716_tgt) = self."!cursor_start"()
+    rx716_cur."!cursor_debug"("START ", "signature")
+    rx716_cur."!cursor_caparray"("parameter")
+    .lex unicode:"$\x{a2}", rx716_cur
     .local pmc match
     .lex "$/", match
-    length rx707_eos, rx707_tgt
-    set rx707_off, 0
-    lt rx707_pos, 2, rx707_start
-    sub rx707_off, rx707_pos, 1
-    substr rx707_tgt, rx707_tgt, rx707_off
-  rx707_start:
+    length rx716_eos, rx716_tgt
+    gt rx716_pos, rx716_eos, rx716_done
+    set rx716_off, 0
+    lt rx716_pos, 2, rx716_start
+    sub rx716_off, rx716_pos, 1
+    substr rx716_tgt, rx716_tgt, rx716_off
+  rx716_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan711_done
-    goto rxscan711_scan
-  rxscan711_loop:
-    ($P10) = rx707_cur."from"()
+    ne $I10, -1, rxscan719_done
+    goto rxscan719_scan
+  rxscan719_loop:
+    ($P10) = rx716_cur."from"()
     inc $P10
-    set rx707_pos, $P10
-    ge rx707_pos, rx707_eos, rxscan711_done
-  rxscan711_scan:
-    set_addr $I10, rxscan711_loop
-    rx707_cur."!mark_push"(0, rx707_pos, $I10)
-  rxscan711_done:
-.annotate 'line', 326
-  # rx literal  ":"
-    add $I11, rx707_pos, 1
-    gt $I11, rx707_eos, rx707_fail
-    sub $I11, rx707_pos, rx707_off
-    substr $S10, rx707_tgt, $I11, 1
-    ne $S10, ":", rx707_fail
-    add rx707_pos, 1
-  # rx subrule "param_var" subtype=capture negate=
-    rx707_cur."!cursor_pos"(rx707_pos)
-    $P10 = rx707_cur."param_var"()
-    unless $P10, rx707_fail
-    rx707_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("param_var")
-    rx707_pos = $P10."pos"()
-.annotate 'line', 325
+    set rx716_pos, $P10
+    ge rx716_pos, rx716_eos, rxscan719_done
+  rxscan719_scan:
+    set_addr $I10, rxscan719_loop
+    rx716_cur."!mark_push"(0, rx716_pos, $I10)
+  rxscan719_done:
+.annotate 'line', 322
+  # rx rxquantr720 ** 0..1
+    set_addr $I723, rxquantr720_done
+    rx716_cur."!mark_push"(0, rx716_pos, $I723)
+  rxquantr720_loop:
+  # rx rxquantr721 ** 1..*
+    set_addr $I722, rxquantr721_done
+    rx716_cur."!mark_push"(0, -1, $I722)
+  rxquantr721_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx716_cur."!cursor_pos"(rx716_pos)
+    $P10 = rx716_cur."ws"()
+    unless $P10, rx716_fail
+    rx716_pos = $P10."pos"()
+  # rx subrule "parameter" subtype=capture negate=
+    rx716_cur."!cursor_pos"(rx716_pos)
+    $P10 = rx716_cur."parameter"()
+    unless $P10, rx716_fail
+    rx716_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("parameter")
+    rx716_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx716_cur."!cursor_pos"(rx716_pos)
+    $P10 = rx716_cur."ws"()
+    unless $P10, rx716_fail
+    rx716_pos = $P10."pos"()
+    (rx716_rep) = rx716_cur."!mark_commit"($I722)
+    rx716_cur."!mark_push"(rx716_rep, rx716_pos, $I722)
+  # rx literal  ","
+    add $I11, rx716_pos, 1
+    gt $I11, rx716_eos, rx716_fail
+    sub $I11, rx716_pos, rx716_off
+    substr $S10, rx716_tgt, $I11, 1
+    ne $S10, ",", rx716_fail
+    add rx716_pos, 1
+    goto rxquantr721_loop
+  rxquantr721_done:
+    (rx716_rep) = rx716_cur."!mark_commit"($I723)
+  rxquantr720_done:
   # rx pass
-    rx707_cur."!cursor_pass"(rx707_pos, "named_param")
-    rx707_cur."!cursor_debug"("PASS  ", "named_param", " at pos=", rx707_pos)
-    .return (rx707_cur)
-  rx707_fail:
+    rx716_cur."!cursor_pass"(rx716_pos, "signature")
+    rx716_cur."!cursor_debug"("PASS  ", "signature", " at pos=", rx716_pos)
+    .return (rx716_cur)
+  rx716_fail:
 .annotate 'line', 4
-    (rx707_rep, rx707_pos, $I10, $P10) = rx707_cur."!mark_fail"(0)
-    lt rx707_pos, -1, rx707_done
-    eq rx707_pos, -1, rx707_fail
+    (rx716_rep, rx716_pos, $I10, $P10) = rx716_cur."!mark_fail"(0)
+    lt rx716_pos, -1, rx716_done
+    eq rx716_pos, -1, rx716_fail
     jump $I10
-  rx707_done:
-    rx707_cur."!cursor_fail"()
-    rx707_cur."!cursor_debug"("FAIL  ", "named_param")
-    .return (rx707_cur)
+  rx716_done:
+    rx716_cur."!cursor_fail"()
+    rx716_cur."!cursor_debug"("FAIL  ", "signature")
+    .return (rx716_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("166_1274853038.58734") :method
+.sub "!PREFIX__signature"  :subid("169_1275811487.95429") :method
 .annotate 'line', 4
-    $P709 = self."!PREFIX__!subrule"("param_var", ":")
-    new $P710, "ResizablePMCArray"
-    push $P710, $P709
-    .return ($P710)
+    new $P718, "ResizablePMCArray"
+    push $P718, ""
+    .return ($P718)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("167_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "parameter"  :subid("170_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx713_tgt
-    .local int rx713_pos
-    .local int rx713_off
-    .local int rx713_eos
-    .local int rx713_rep
-    .local pmc rx713_cur
-    (rx713_cur, rx713_pos, rx713_tgt) = self."!cursor_start"()
-    rx713_cur."!cursor_debug"("START ", "default_value")
-    .lex unicode:"$\x{a2}", rx713_cur
+    .local string rx725_tgt
+    .local int rx725_pos
+    .local int rx725_off
+    .local int rx725_eos
+    .local int rx725_rep
+    .local pmc rx725_cur
+    (rx725_cur, rx725_pos, rx725_tgt) = self."!cursor_start"()
+    rx725_cur."!cursor_debug"("START ", "parameter")
+    rx725_cur."!cursor_caparray"("default_value", "typename")
+    .lex unicode:"$\x{a2}", rx725_cur
     .local pmc match
     .lex "$/", match
-    length rx713_eos, rx713_tgt
-    set rx713_off, 0
-    lt rx713_pos, 2, rx713_start
-    sub rx713_off, rx713_pos, 1
-    substr rx713_tgt, rx713_tgt, rx713_off
-  rx713_start:
+    length rx725_eos, rx725_tgt
+    gt rx725_pos, rx725_eos, rx725_done
+    set rx725_off, 0
+    lt rx725_pos, 2, rx725_start
+    sub rx725_off, rx725_pos, 1
+    substr rx725_tgt, rx725_tgt, rx725_off
+  rx725_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan716_done
-    goto rxscan716_scan
-  rxscan716_loop:
-    ($P10) = rx713_cur."from"()
+    ne $I10, -1, rxscan728_done
+    goto rxscan728_scan
+  rxscan728_loop:
+    ($P10) = rx725_cur."from"()
     inc $P10
-    set rx713_pos, $P10
-    ge rx713_pos, rx713_eos, rxscan716_done
-  rxscan716_scan:
-    set_addr $I10, rxscan716_loop
-    rx713_cur."!mark_push"(0, rx713_pos, $I10)
-  rxscan716_done:
-.annotate 'line', 329
-  # rx subrule "ws" subtype=method negate=
-    rx713_cur."!cursor_pos"(rx713_pos)
-    $P10 = rx713_cur."ws"()
-    unless $P10, rx713_fail
-    rx713_pos = $P10."pos"()
-  # rx literal  "="
-    add $I11, rx713_pos, 1
-    gt $I11, rx713_eos, rx713_fail
-    sub $I11, rx713_pos, rx713_off
-    substr $S10, rx713_tgt, $I11, 1
-    ne $S10, "=", rx713_fail
-    add rx713_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx713_cur."!cursor_pos"(rx713_pos)
-    $P10 = rx713_cur."ws"()
-    unless $P10, rx713_fail
-    rx713_pos = $P10."pos"()
-  # rx subrule "EXPR" subtype=capture negate=
-    rx713_cur."!cursor_pos"(rx713_pos)
-    $P10 = rx713_cur."EXPR"("i=")
-    unless $P10, rx713_fail
-    rx713_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx713_pos = $P10."pos"()
+    set rx725_pos, $P10
+    ge rx725_pos, rx725_eos, rxscan728_done
+  rxscan728_scan:
+    set_addr $I10, rxscan728_loop
+    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+  rxscan728_done:
+.annotate 'line', 325
+  # rx rxquantr729 ** 0..*
+    set_addr $I730, rxquantr729_done
+    rx725_cur."!mark_push"(0, rx725_pos, $I730)
+  rxquantr729_loop:
+  # rx subrule "typename" subtype=capture negate=
+    rx725_cur."!cursor_pos"(rx725_pos)
+    $P10 = rx725_cur."typename"()
+    unless $P10, rx725_fail
+    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("typename")
+    rx725_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx713_cur."!cursor_pos"(rx713_pos)
-    $P10 = rx713_cur."ws"()
-    unless $P10, rx713_fail
-    rx713_pos = $P10."pos"()
+    rx725_cur."!cursor_pos"(rx725_pos)
+    $P10 = rx725_cur."ws"()
+    unless $P10, rx725_fail
+    rx725_pos = $P10."pos"()
+    (rx725_rep) = rx725_cur."!mark_commit"($I730)
+    rx725_cur."!mark_push"(rx725_rep, rx725_pos, $I730)
+    goto rxquantr729_loop
+  rxquantr729_done:
+  alt731_0:
+.annotate 'line', 326
+    set_addr $I10, alt731_1
+    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+.annotate 'line', 327
+  # rx subcapture "quant"
+    set_addr $I10, rxcap_732_fail
+    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+  # rx literal  "*"
+    add $I11, rx725_pos, 1
+    gt $I11, rx725_eos, rx725_fail
+    sub $I11, rx725_pos, rx725_off
+    substr $S10, rx725_tgt, $I11, 1
+    ne $S10, "*", rx725_fail
+    add rx725_pos, 1
+    set_addr $I10, rxcap_732_fail
+    ($I12, $I11) = rx725_cur."!mark_peek"($I10)
+    rx725_cur."!cursor_pos"($I11)
+    ($P10) = rx725_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx725_pos, "")
+    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quant")
+    goto rxcap_732_done
+  rxcap_732_fail:
+    goto rx725_fail
+  rxcap_732_done:
+  # rx subrule "param_var" subtype=capture negate=
+    rx725_cur."!cursor_pos"(rx725_pos)
+    $P10 = rx725_cur."param_var"()
+    unless $P10, rx725_fail
+    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("param_var")
+    rx725_pos = $P10."pos"()
+    goto alt731_end
+  alt731_1:
+  alt733_0:
+.annotate 'line', 328
+    set_addr $I10, alt733_1
+    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+  # rx subrule "param_var" subtype=capture negate=
+    rx725_cur."!cursor_pos"(rx725_pos)
+    $P10 = rx725_cur."param_var"()
+    unless $P10, rx725_fail
+    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("param_var")
+    rx725_pos = $P10."pos"()
+    goto alt733_end
+  alt733_1:
+  # rx subrule "named_param" subtype=capture negate=
+    rx725_cur."!cursor_pos"(rx725_pos)
+    $P10 = rx725_cur."named_param"()
+    unless $P10, rx725_fail
+    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("named_param")
+    rx725_pos = $P10."pos"()
+  alt733_end:
+  # rx subcapture "quant"
+    set_addr $I10, rxcap_735_fail
+    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+  alt734_0:
+    set_addr $I10, alt734_1
+    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+  # rx literal  "?"
+    add $I11, rx725_pos, 1
+    gt $I11, rx725_eos, rx725_fail
+    sub $I11, rx725_pos, rx725_off
+    substr $S10, rx725_tgt, $I11, 1
+    ne $S10, "?", rx725_fail
+    add rx725_pos, 1
+    goto alt734_end
+  alt734_1:
+    set_addr $I10, alt734_2
+    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+  # rx literal  "!"
+    add $I11, rx725_pos, 1
+    gt $I11, rx725_eos, rx725_fail
+    sub $I11, rx725_pos, rx725_off
+    substr $S10, rx725_tgt, $I11, 1
+    ne $S10, "!", rx725_fail
+    add rx725_pos, 1
+    goto alt734_end
+  alt734_2:
+  alt734_end:
+    set_addr $I10, rxcap_735_fail
+    ($I12, $I11) = rx725_cur."!mark_peek"($I10)
+    rx725_cur."!cursor_pos"($I11)
+    ($P10) = rx725_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx725_pos, "")
+    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quant")
+    goto rxcap_735_done
+  rxcap_735_fail:
+    goto rx725_fail
+  rxcap_735_done:
+  alt731_end:
+.annotate 'line', 330
+  # rx rxquantr736 ** 0..1
+    set_addr $I737, rxquantr736_done
+    rx725_cur."!mark_push"(0, rx725_pos, $I737)
+  rxquantr736_loop:
+  # rx subrule "default_value" subtype=capture negate=
+    rx725_cur."!cursor_pos"(rx725_pos)
+    $P10 = rx725_cur."default_value"()
+    unless $P10, rx725_fail
+    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("default_value")
+    rx725_pos = $P10."pos"()
+    (rx725_rep) = rx725_cur."!mark_commit"($I737)
+  rxquantr736_done:
+.annotate 'line', 324
   # rx pass
-    rx713_cur."!cursor_pass"(rx713_pos, "default_value")
-    rx713_cur."!cursor_debug"("PASS  ", "default_value", " at pos=", rx713_pos)
-    .return (rx713_cur)
-  rx713_fail:
+    rx725_cur."!cursor_pass"(rx725_pos, "parameter")
+    rx725_cur."!cursor_debug"("PASS  ", "parameter", " at pos=", rx725_pos)
+    .return (rx725_cur)
+  rx725_fail:
 .annotate 'line', 4
-    (rx713_rep, rx713_pos, $I10, $P10) = rx713_cur."!mark_fail"(0)
-    lt rx713_pos, -1, rx713_done
-    eq rx713_pos, -1, rx713_fail
+    (rx725_rep, rx725_pos, $I10, $P10) = rx725_cur."!mark_fail"(0)
+    lt rx725_pos, -1, rx725_done
+    eq rx725_pos, -1, rx725_fail
     jump $I10
-  rx713_done:
-    rx713_cur."!cursor_fail"()
-    rx713_cur."!cursor_debug"("FAIL  ", "default_value")
-    .return (rx713_cur)
+  rx725_done:
+    rx725_cur."!cursor_fail"()
+    rx725_cur."!cursor_debug"("FAIL  ", "parameter")
+    .return (rx725_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("168_1274853038.58734") :method
+.sub "!PREFIX__parameter"  :subid("171_1275811487.95429") :method
 .annotate 'line', 4
-    new $P715, "ResizablePMCArray"
-    push $P715, ""
-    .return ($P715)
+    new $P727, "ResizablePMCArray"
+    push $P727, ""
+    .return ($P727)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("169_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "param_var"  :subid("172_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx721_tgt
-    .local int rx721_pos
-    .local int rx721_off
-    .local int rx721_eos
-    .local int rx721_rep
-    .local pmc rx721_cur
-    (rx721_cur, rx721_pos, rx721_tgt) = self."!cursor_start"()
-    rx721_cur."!cursor_debug"("START ", "regex_declarator")
-    rx721_cur."!cursor_caparray"("signature")
-    .lex unicode:"$\x{a2}", rx721_cur
-    .local pmc match
-    .lex "$/", match
-    length rx721_eos, rx721_tgt
-    set rx721_off, 0
-    lt rx721_pos, 2, rx721_start
-    sub rx721_off, rx721_pos, 1
-    substr rx721_tgt, rx721_tgt, rx721_off
-  rx721_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan724_done
-    goto rxscan724_scan
-  rxscan724_loop:
-    ($P10) = rx721_cur."from"()
-    inc $P10
-    set rx721_pos, $P10
-    ge rx721_pos, rx721_eos, rxscan724_done
-  rxscan724_scan:
-    set_addr $I10, rxscan724_loop
-    rx721_cur."!mark_push"(0, rx721_pos, $I10)
-  rxscan724_done:
-.annotate 'line', 331
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-  alt726_0:
-.annotate 'line', 332
-    set_addr $I10, alt726_1
-    rx721_cur."!mark_push"(0, rx721_pos, $I10)
+    .local string rx739_tgt
+    .local int rx739_pos
+    .local int rx739_off
+    .local int rx739_eos
+    .local int rx739_rep
+    .local pmc rx739_cur
+    (rx739_cur, rx739_pos, rx739_tgt) = self."!cursor_start"()
+    rx739_cur."!cursor_debug"("START ", "param_var")
+    rx739_cur."!cursor_caparray"("twigil")
+    .lex unicode:"$\x{a2}", rx739_cur
+    .local pmc match
+    .lex "$/", match
+    length rx739_eos, rx739_tgt
+    gt rx739_pos, rx739_eos, rx739_done
+    set rx739_off, 0
+    lt rx739_pos, 2, rx739_start
+    sub rx739_off, rx739_pos, 1
+    substr rx739_tgt, rx739_tgt, rx739_off
+  rx739_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan743_done
+    goto rxscan743_scan
+  rxscan743_loop:
+    ($P10) = rx739_cur."from"()
+    inc $P10
+    set rx739_pos, $P10
+    ge rx739_pos, rx739_eos, rxscan743_done
+  rxscan743_scan:
+    set_addr $I10, rxscan743_loop
+    rx739_cur."!mark_push"(0, rx739_pos, $I10)
+  rxscan743_done:
+.annotate 'line', 334
+  # rx subrule "sigil" subtype=capture negate=
+    rx739_cur."!cursor_pos"(rx739_pos)
+    $P10 = rx739_cur."sigil"()
+    unless $P10, rx739_fail
+    rx739_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sigil")
+    rx739_pos = $P10."pos"()
+  # rx rxquantr744 ** 0..1
+    set_addr $I745, rxquantr744_done
+    rx739_cur."!mark_push"(0, rx739_pos, $I745)
+  rxquantr744_loop:
+  # rx subrule "twigil" subtype=capture negate=
+    rx739_cur."!cursor_pos"(rx739_pos)
+    $P10 = rx739_cur."twigil"()
+    unless $P10, rx739_fail
+    rx739_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("twigil")
+    rx739_pos = $P10."pos"()
+    (rx739_rep) = rx739_cur."!mark_commit"($I745)
+  rxquantr744_done:
+  alt746_0:
+.annotate 'line', 335
+    set_addr $I10, alt746_1
+    rx739_cur."!mark_push"(0, rx739_pos, $I10)
+  # rx subrule "ident" subtype=capture negate=
+    rx739_cur."!cursor_pos"(rx739_pos)
+    $P10 = rx739_cur."ident"()
+    unless $P10, rx739_fail
+    rx739_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("name")
+    rx739_pos = $P10."pos"()
+    goto alt746_end
+  alt746_1:
+  # rx subcapture "name"
+    set_addr $I10, rxcap_747_fail
+    rx739_cur."!mark_push"(0, rx739_pos, $I10)
+  # rx enumcharlist negate=0 
+    ge rx739_pos, rx739_eos, rx739_fail
+    sub $I10, rx739_pos, rx739_off
+    substr $S10, rx739_tgt, $I10, 1
+    index $I11, "/!", $S10
+    lt $I11, 0, rx739_fail
+    inc rx739_pos
+    set_addr $I10, rxcap_747_fail
+    ($I12, $I11) = rx739_cur."!mark_peek"($I10)
+    rx739_cur."!cursor_pos"($I11)
+    ($P10) = rx739_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx739_pos, "")
+    rx739_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("name")
+    goto rxcap_747_done
+  rxcap_747_fail:
+    goto rx739_fail
+  rxcap_747_done:
+  alt746_end:
 .annotate 'line', 333
+  # rx pass
+    rx739_cur."!cursor_pass"(rx739_pos, "param_var")
+    rx739_cur."!cursor_debug"("PASS  ", "param_var", " at pos=", rx739_pos)
+    .return (rx739_cur)
+  rx739_fail:
+.annotate 'line', 4
+    (rx739_rep, rx739_pos, $I10, $P10) = rx739_cur."!mark_fail"(0)
+    lt rx739_pos, -1, rx739_done
+    eq rx739_pos, -1, rx739_fail
+    jump $I10
+  rx739_done:
+    rx739_cur."!cursor_fail"()
+    rx739_cur."!cursor_debug"("FAIL  ", "param_var")
+    .return (rx739_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__param_var"  :subid("173_1275811487.95429") :method
+.annotate 'line', 4
+    $P741 = self."!PREFIX__!subrule"("sigil", "")
+    new $P742, "ResizablePMCArray"
+    push $P742, $P741
+    .return ($P742)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "named_param"  :subid("174_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx749_tgt
+    .local int rx749_pos
+    .local int rx749_off
+    .local int rx749_eos
+    .local int rx749_rep
+    .local pmc rx749_cur
+    (rx749_cur, rx749_pos, rx749_tgt) = self."!cursor_start"()
+    rx749_cur."!cursor_debug"("START ", "named_param")
+    .lex unicode:"$\x{a2}", rx749_cur
+    .local pmc match
+    .lex "$/", match
+    length rx749_eos, rx749_tgt
+    gt rx749_pos, rx749_eos, rx749_done
+    set rx749_off, 0
+    lt rx749_pos, 2, rx749_start
+    sub rx749_off, rx749_pos, 1
+    substr rx749_tgt, rx749_tgt, rx749_off
+  rx749_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan753_done
+    goto rxscan753_scan
+  rxscan753_loop:
+    ($P10) = rx749_cur."from"()
+    inc $P10
+    set rx749_pos, $P10
+    ge rx749_pos, rx749_eos, rxscan753_done
+  rxscan753_scan:
+    set_addr $I10, rxscan753_loop
+    rx749_cur."!mark_push"(0, rx749_pos, $I10)
+  rxscan753_done:
+.annotate 'line', 339
+  # rx literal  ":"
+    add $I11, rx749_pos, 1
+    gt $I11, rx749_eos, rx749_fail
+    sub $I11, rx749_pos, rx749_off
+    substr $S10, rx749_tgt, $I11, 1
+    ne $S10, ":", rx749_fail
+    add rx749_pos, 1
+  # rx subrule "param_var" subtype=capture negate=
+    rx749_cur."!cursor_pos"(rx749_pos)
+    $P10 = rx749_cur."param_var"()
+    unless $P10, rx749_fail
+    rx749_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("param_var")
+    rx749_pos = $P10."pos"()
+.annotate 'line', 338
+  # rx pass
+    rx749_cur."!cursor_pass"(rx749_pos, "named_param")
+    rx749_cur."!cursor_debug"("PASS  ", "named_param", " at pos=", rx749_pos)
+    .return (rx749_cur)
+  rx749_fail:
+.annotate 'line', 4
+    (rx749_rep, rx749_pos, $I10, $P10) = rx749_cur."!mark_fail"(0)
+    lt rx749_pos, -1, rx749_done
+    eq rx749_pos, -1, rx749_fail
+    jump $I10
+  rx749_done:
+    rx749_cur."!cursor_fail"()
+    rx749_cur."!cursor_debug"("FAIL  ", "named_param")
+    .return (rx749_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__named_param"  :subid("175_1275811487.95429") :method
+.annotate 'line', 4
+    $P751 = self."!PREFIX__!subrule"("param_var", ":")
+    new $P752, "ResizablePMCArray"
+    push $P752, $P751
+    .return ($P752)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "default_value"  :subid("176_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx755_tgt
+    .local int rx755_pos
+    .local int rx755_off
+    .local int rx755_eos
+    .local int rx755_rep
+    .local pmc rx755_cur
+    (rx755_cur, rx755_pos, rx755_tgt) = self."!cursor_start"()
+    rx755_cur."!cursor_debug"("START ", "default_value")
+    .lex unicode:"$\x{a2}", rx755_cur
+    .local pmc match
+    .lex "$/", match
+    length rx755_eos, rx755_tgt
+    gt rx755_pos, rx755_eos, rx755_done
+    set rx755_off, 0
+    lt rx755_pos, 2, rx755_start
+    sub rx755_off, rx755_pos, 1
+    substr rx755_tgt, rx755_tgt, rx755_off
+  rx755_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan759_done
+    goto rxscan759_scan
+  rxscan759_loop:
+    ($P10) = rx755_cur."from"()
+    inc $P10
+    set rx755_pos, $P10
+    ge rx755_pos, rx755_eos, rxscan759_done
+  rxscan759_scan:
+    set_addr $I10, rxscan759_loop
+    rx755_cur."!mark_push"(0, rx755_pos, $I10)
+  rxscan759_done:
+.annotate 'line', 342
+  # rx subrule "ws" subtype=method negate=
+    rx755_cur."!cursor_pos"(rx755_pos)
+    $P10 = rx755_cur."ws"()
+    unless $P10, rx755_fail
+    rx755_pos = $P10."pos"()
+  # rx literal  "="
+    add $I11, rx755_pos, 1
+    gt $I11, rx755_eos, rx755_fail
+    sub $I11, rx755_pos, rx755_off
+    substr $S10, rx755_tgt, $I11, 1
+    ne $S10, "=", rx755_fail
+    add rx755_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx755_cur."!cursor_pos"(rx755_pos)
+    $P10 = rx755_cur."ws"()
+    unless $P10, rx755_fail
+    rx755_pos = $P10."pos"()
+  # rx subrule "EXPR" subtype=capture negate=
+    rx755_cur."!cursor_pos"(rx755_pos)
+    $P10 = rx755_cur."EXPR"("i=")
+    unless $P10, rx755_fail
+    rx755_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("EXPR")
+    rx755_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx755_cur."!cursor_pos"(rx755_pos)
+    $P10 = rx755_cur."ws"()
+    unless $P10, rx755_fail
+    rx755_pos = $P10."pos"()
+  # rx pass
+    rx755_cur."!cursor_pass"(rx755_pos, "default_value")
+    rx755_cur."!cursor_debug"("PASS  ", "default_value", " at pos=", rx755_pos)
+    .return (rx755_cur)
+  rx755_fail:
+.annotate 'line', 4
+    (rx755_rep, rx755_pos, $I10, $P10) = rx755_cur."!mark_fail"(0)
+    lt rx755_pos, -1, rx755_done
+    eq rx755_pos, -1, rx755_fail
+    jump $I10
+  rx755_done:
+    rx755_cur."!cursor_fail"()
+    rx755_cur."!cursor_debug"("FAIL  ", "default_value")
+    .return (rx755_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__default_value"  :subid("177_1275811487.95429") :method
+.annotate 'line', 4
+    $P757 = self."!PREFIX__!subrule"("ws", "")
+    new $P758, "ResizablePMCArray"
+    push $P758, $P757
+    .return ($P758)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "regex_declarator"  :subid("178_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+    .local string rx764_tgt
+    .local int rx764_pos
+    .local int rx764_off
+    .local int rx764_eos
+    .local int rx764_rep
+    .local pmc rx764_cur
+    (rx764_cur, rx764_pos, rx764_tgt) = self."!cursor_start"()
+    rx764_cur."!cursor_debug"("START ", "regex_declarator")
+    rx764_cur."!cursor_caparray"("signature")
+    .lex unicode:"$\x{a2}", rx764_cur
+    .local pmc match
+    .lex "$/", match
+    length rx764_eos, rx764_tgt
+    gt rx764_pos, rx764_eos, rx764_done
+    set rx764_off, 0
+    lt rx764_pos, 2, rx764_start
+    sub rx764_off, rx764_pos, 1
+    substr rx764_tgt, rx764_tgt, rx764_off
+  rx764_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan768_done
+    goto rxscan768_scan
+  rxscan768_loop:
+    ($P10) = rx764_cur."from"()
+    inc $P10
+    set rx764_pos, $P10
+    ge rx764_pos, rx764_eos, rxscan768_done
+  rxscan768_scan:
+    set_addr $I10, rxscan768_loop
+    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+  rxscan768_done:
+.annotate 'line', 344
   # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+  alt770_0:
+.annotate 'line', 345
+    set_addr $I10, alt770_1
+    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+.annotate 'line', 346
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
   # rx subcapture "proto"
-    set_addr $I10, rxcap_728_fail
-    rx721_cur."!mark_push"(0, rx721_pos, $I10)
+    set_addr $I10, rxcap_772_fail
+    rx764_cur."!mark_push"(0, rx764_pos, $I10)
   # rx literal  "proto"
-    add $I11, rx721_pos, 5
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 5
-    ne $S10, "proto", rx721_fail
-    add rx721_pos, 5
-    set_addr $I10, rxcap_728_fail
-    ($I12, $I11) = rx721_cur."!mark_peek"($I10)
-    rx721_cur."!cursor_pos"($I11)
-    ($P10) = rx721_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx721_pos, "")
-    rx721_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx764_pos, 5
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 5
+    ne $S10, "proto", rx764_fail
+    add rx764_pos, 5
+    set_addr $I10, rxcap_772_fail
+    ($I12, $I11) = rx764_cur."!mark_peek"($I10)
+    rx764_cur."!cursor_pos"($I11)
+    ($P10) = rx764_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx764_pos, "")
+    rx764_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("proto")
-    goto rxcap_728_done
-  rxcap_728_fail:
-    goto rx721_fail
-  rxcap_728_done:
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-  alt730_0:
-    set_addr $I10, alt730_1
-    rx721_cur."!mark_push"(0, rx721_pos, $I10)
+    goto rxcap_772_done
+  rxcap_772_fail:
+    goto rx764_fail
+  rxcap_772_done:
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+  alt774_0:
+    set_addr $I10, alt774_1
+    rx764_cur."!mark_push"(0, rx764_pos, $I10)
   # rx literal  "regex"
-    add $I11, rx721_pos, 5
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 5
-    ne $S10, "regex", rx721_fail
-    add rx721_pos, 5
-    goto alt730_end
-  alt730_1:
-    set_addr $I10, alt730_2
-    rx721_cur."!mark_push"(0, rx721_pos, $I10)
+    add $I11, rx764_pos, 5
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 5
+    ne $S10, "regex", rx764_fail
+    add rx764_pos, 5
+    goto alt774_end
+  alt774_1:
+    set_addr $I10, alt774_2
+    rx764_cur."!mark_push"(0, rx764_pos, $I10)
   # rx literal  "token"
-    add $I11, rx721_pos, 5
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 5
-    ne $S10, "token", rx721_fail
-    add rx721_pos, 5
-    goto alt730_end
-  alt730_2:
+    add $I11, rx764_pos, 5
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 5
+    ne $S10, "token", rx764_fail
+    add rx764_pos, 5
+    goto alt774_end
+  alt774_2:
   # rx literal  "rule"
-    add $I11, rx721_pos, 4
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 4
-    ne $S10, "rule", rx721_fail
-    add rx721_pos, 4
-  alt730_end:
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-.annotate 'line', 334
+    add $I11, rx764_pos, 4
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 4
+    ne $S10, "rule", rx764_fail
+    add rx764_pos, 4
+  alt774_end:
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+.annotate 'line', 347
   # rx subrule "deflongname" subtype=capture negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."deflongname"()
-    unless $P10, rx721_fail
-    rx721_cur."!mark_push"(0, -1, 0, $P10)
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."deflongname"()
+    unless $P10, rx764_fail
+    rx764_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx721_pos = $P10."pos"()
+    rx764_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-  alt733_0:
-.annotate 'line', 335
-    set_addr $I10, alt733_1
-    rx721_cur."!mark_push"(0, rx721_pos, $I10)
-.annotate 'line', 336
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+  alt777_0:
+.annotate 'line', 348
+    set_addr $I10, alt777_1
+    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+.annotate 'line', 349
   # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
   # rx literal  "{"
-    add $I11, rx721_pos, 1
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 1
-    ne $S10, "{", rx721_fail
-    add rx721_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
+    add $I11, rx764_pos, 1
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 1
+    ne $S10, "{", rx764_fail
+    add rx764_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
   # rx literal  "<...>"
-    add $I11, rx721_pos, 5
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 5
-    ne $S10, "<...>", rx721_fail
-    add rx721_pos, 5
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
+    add $I11, rx764_pos, 5
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 5
+    ne $S10, "<...>", rx764_fail
+    add rx764_pos, 5
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
   # rx literal  "}"
-    add $I11, rx721_pos, 1
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 1
-    ne $S10, "}", rx721_fail
-    add rx721_pos, 1
+    add $I11, rx764_pos, 1
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 1
+    ne $S10, "}", rx764_fail
+    add rx764_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ENDSTMT"()
-    unless $P10, rx721_fail
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-    goto alt733_end
-  alt733_1:
-.annotate 'line', 337
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ENDSTMT"()
+    unless $P10, rx764_fail
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+    goto alt777_end
+  alt777_1:
+.annotate 'line', 350
   # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."panic"("Proto regex body must be <...>")
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-  alt733_end:
-.annotate 'line', 338
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."panic"("Proto regex body must be <...>")
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+  alt777_end:
+.annotate 'line', 351
   # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-.annotate 'line', 333
-    goto alt726_end
-  alt726_1:
-.annotate 'line', 339
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+.annotate 'line', 346
+    goto alt770_end
+  alt770_1:
+.annotate 'line', 352
   # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
   # rx subcapture "sym"
-    set_addr $I10, rxcap_743_fail
-    rx721_cur."!mark_push"(0, rx721_pos, $I10)
-  alt742_0:
-    set_addr $I10, alt742_1
-    rx721_cur."!mark_push"(0, rx721_pos, $I10)
+    set_addr $I10, rxcap_787_fail
+    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+  alt786_0:
+    set_addr $I10, alt786_1
+    rx764_cur."!mark_push"(0, rx764_pos, $I10)
   # rx literal  "regex"
-    add $I11, rx721_pos, 5
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 5
-    ne $S10, "regex", rx721_fail
-    add rx721_pos, 5
-    goto alt742_end
-  alt742_1:
-    set_addr $I10, alt742_2
-    rx721_cur."!mark_push"(0, rx721_pos, $I10)
+    add $I11, rx764_pos, 5
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 5
+    ne $S10, "regex", rx764_fail
+    add rx764_pos, 5
+    goto alt786_end
+  alt786_1:
+    set_addr $I10, alt786_2
+    rx764_cur."!mark_push"(0, rx764_pos, $I10)
   # rx literal  "token"
-    add $I11, rx721_pos, 5
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 5
-    ne $S10, "token", rx721_fail
-    add rx721_pos, 5
-    goto alt742_end
-  alt742_2:
+    add $I11, rx764_pos, 5
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 5
+    ne $S10, "token", rx764_fail
+    add rx764_pos, 5
+    goto alt786_end
+  alt786_2:
   # rx literal  "rule"
-    add $I11, rx721_pos, 4
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 4
-    ne $S10, "rule", rx721_fail
-    add rx721_pos, 4
-  alt742_end:
-    set_addr $I10, rxcap_743_fail
-    ($I12, $I11) = rx721_cur."!mark_peek"($I10)
-    rx721_cur."!cursor_pos"($I11)
-    ($P10) = rx721_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx721_pos, "")
-    rx721_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx764_pos, 4
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 4
+    ne $S10, "rule", rx764_fail
+    add rx764_pos, 4
+  alt786_end:
+    set_addr $I10, rxcap_787_fail
+    ($I12, $I11) = rx764_cur."!mark_peek"($I10)
+    rx764_cur."!cursor_pos"($I11)
+    ($P10) = rx764_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx764_pos, "")
+    rx764_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_743_done
-  rxcap_743_fail:
-    goto rx721_fail
-  rxcap_743_done:
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-.annotate 'line', 340
+    goto rxcap_787_done
+  rxcap_787_fail:
+    goto rx764_fail
+  rxcap_787_done:
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+.annotate 'line', 353
   # rx subrule "deflongname" subtype=capture negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."deflongname"()
-    unless $P10, rx721_fail
-    rx721_cur."!mark_push"(0, -1, 0, $P10)
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."deflongname"()
+    unless $P10, rx764_fail
+    rx764_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx721_pos = $P10."pos"()
+    rx764_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-.annotate 'line', 341
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+.annotate 'line', 354
   # rx subrule "newpad" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."newpad"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-.annotate 'line', 342
-  # rx rxquantr747 ** 0..1
-    set_addr $I752, rxquantr747_done
-    rx721_cur."!mark_push"(0, rx721_pos, $I752)
-  rxquantr747_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."newpad"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+.annotate 'line', 355
+  # rx rxquantr791 ** 0..1
+    set_addr $I796, rxquantr791_done
+    rx764_cur."!mark_push"(0, rx764_pos, $I796)
+  rxquantr791_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx721_pos, 1
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 1
-    ne $S10, "(", rx721_fail
-    add rx721_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
+    add $I11, rx764_pos, 1
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 1
+    ne $S10, "(", rx764_fail
+    add rx764_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
   # rx subrule "signature" subtype=capture negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."signature"()
-    unless $P10, rx721_fail
-    rx721_cur."!mark_push"(0, -1, 0, $P10)
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."signature"()
+    unless $P10, rx764_fail
+    rx764_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx721_pos = $P10."pos"()
+    rx764_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx721_pos, 1
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 1
-    ne $S10, ")", rx721_fail
-    add rx721_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-    (rx721_rep) = rx721_cur."!mark_commit"($I752)
-  rxquantr747_done:
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-.annotate 'line', 343
+    add $I11, rx764_pos, 1
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 1
+    ne $S10, ")", rx764_fail
+    add rx764_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+    (rx764_rep) = rx764_cur."!mark_commit"($I796)
+  rxquantr791_done:
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+.annotate 'line', 356
   # rx reduce name="regex_declarator" key="open"
-    rx721_cur."!cursor_pos"(rx721_pos)
-    rx721_cur."!reduce"("regex_declarator", "open")
+    rx764_cur."!cursor_pos"(rx764_pos)
+    rx764_cur."!reduce"("regex_declarator", "open")
   # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-.annotate 'line', 344
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+.annotate 'line', 357
   # rx literal  "{"
-    add $I11, rx721_pos, 1
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 1
-    ne $S10, "{", rx721_fail
-    add rx721_pos, 1
+    add $I11, rx764_pos, 1
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 1
+    ne $S10, "{", rx764_fail
+    add rx764_pos, 1
   # rx subrule "LANG" subtype=capture negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."LANG"("Regex", "nibbler")
-    unless $P10, rx721_fail
-    rx721_cur."!mark_push"(0, -1, 0, $P10)
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."LANG"("Regex", "nibbler")
+    unless $P10, rx764_fail
+    rx764_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("p6regex")
-    rx721_pos = $P10."pos"()
+    rx764_pos = $P10."pos"()
   # rx literal  "}"
-    add $I11, rx721_pos, 1
-    gt $I11, rx721_eos, rx721_fail
-    sub $I11, rx721_pos, rx721_off
-    substr $S10, rx721_tgt, $I11, 1
-    ne $S10, "}", rx721_fail
-    add rx721_pos, 1
+    add $I11, rx764_pos, 1
+    gt $I11, rx764_eos, rx764_fail
+    sub $I11, rx764_pos, rx764_off
+    substr $S10, rx764_tgt, $I11, 1
+    ne $S10, "}", rx764_fail
+    add rx764_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ENDSTMT"()
-    unless $P10, rx721_fail
-  # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-  alt726_end:
-.annotate 'line', 345
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ENDSTMT"()
+    unless $P10, rx764_fail
+  # rx subrule "ws" subtype=method negate=
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+  alt770_end:
+.annotate 'line', 358
   # rx subrule "ws" subtype=method negate=
-    rx721_cur."!cursor_pos"(rx721_pos)
-    $P10 = rx721_cur."ws"()
-    unless $P10, rx721_fail
-    rx721_pos = $P10."pos"()
-.annotate 'line', 331
+    rx764_cur."!cursor_pos"(rx764_pos)
+    $P10 = rx764_cur."ws"()
+    unless $P10, rx764_fail
+    rx764_pos = $P10."pos"()
+.annotate 'line', 344
   # rx pass
-    rx721_cur."!cursor_pass"(rx721_pos, "regex_declarator")
-    rx721_cur."!cursor_debug"("PASS  ", "regex_declarator", " at pos=", rx721_pos)
-    .return (rx721_cur)
-  rx721_fail:
+    rx764_cur."!cursor_pass"(rx764_pos, "regex_declarator")
+    rx764_cur."!cursor_debug"("PASS  ", "regex_declarator", " at pos=", rx764_pos)
+    .return (rx764_cur)
+  rx764_fail:
 .annotate 'line', 4
-    (rx721_rep, rx721_pos, $I10, $P10) = rx721_cur."!mark_fail"(0)
-    lt rx721_pos, -1, rx721_done
-    eq rx721_pos, -1, rx721_fail
+    (rx764_rep, rx764_pos, $I10, $P10) = rx764_cur."!mark_fail"(0)
+    lt rx764_pos, -1, rx764_done
+    eq rx764_pos, -1, rx764_fail
     jump $I10
-  rx721_done:
-    rx721_cur."!cursor_fail"()
-    rx721_cur."!cursor_debug"("FAIL  ", "regex_declarator")
-    .return (rx721_cur)
+  rx764_done:
+    rx764_cur."!cursor_fail"()
+    rx764_cur."!cursor_debug"("FAIL  ", "regex_declarator")
+    .return (rx764_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("170_1274853038.58734") :method
+.sub "!PREFIX__regex_declarator"  :subid("179_1275811487.95429") :method
 .annotate 'line', 4
-    new $P723, "ResizablePMCArray"
-    push $P723, ""
-    .return ($P723)
+    $P766 = self."!PREFIX__!subrule"("ws", "")
+    new $P767, "ResizablePMCArray"
+    push $P767, $P766
+    .return ($P767)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("171_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "dotty"  :subid("180_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx758_tgt
-    .local int rx758_pos
-    .local int rx758_off
-    .local int rx758_eos
-    .local int rx758_rep
-    .local pmc rx758_cur
-    (rx758_cur, rx758_pos, rx758_tgt) = self."!cursor_start"()
-    rx758_cur."!cursor_debug"("START ", "dotty")
-    rx758_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx758_cur
-    .local pmc match
-    .lex "$/", match
-    length rx758_eos, rx758_tgt
-    set rx758_off, 0
-    lt rx758_pos, 2, rx758_start
-    sub rx758_off, rx758_pos, 1
-    substr rx758_tgt, rx758_tgt, rx758_off
-  rx758_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan762_done
-    goto rxscan762_scan
-  rxscan762_loop:
-    ($P10) = rx758_cur."from"()
-    inc $P10
-    set rx758_pos, $P10
-    ge rx758_pos, rx758_eos, rxscan762_done
-  rxscan762_scan:
-    set_addr $I10, rxscan762_loop
-    rx758_cur."!mark_push"(0, rx758_pos, $I10)
-  rxscan762_done:
-.annotate 'line', 349
+    .local string rx802_tgt
+    .local int rx802_pos
+    .local int rx802_off
+    .local int rx802_eos
+    .local int rx802_rep
+    .local pmc rx802_cur
+    (rx802_cur, rx802_pos, rx802_tgt) = self."!cursor_start"()
+    rx802_cur."!cursor_debug"("START ", "dotty")
+    rx802_cur."!cursor_caparray"("args")
+    .lex unicode:"$\x{a2}", rx802_cur
+    .local pmc match
+    .lex "$/", match
+    length rx802_eos, rx802_tgt
+    gt rx802_pos, rx802_eos, rx802_done
+    set rx802_off, 0
+    lt rx802_pos, 2, rx802_start
+    sub rx802_off, rx802_pos, 1
+    substr rx802_tgt, rx802_tgt, rx802_off
+  rx802_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan806_done
+    goto rxscan806_scan
+  rxscan806_loop:
+    ($P10) = rx802_cur."from"()
+    inc $P10
+    set rx802_pos, $P10
+    ge rx802_pos, rx802_eos, rxscan806_done
+  rxscan806_scan:
+    set_addr $I10, rxscan806_loop
+    rx802_cur."!mark_push"(0, rx802_pos, $I10)
+  rxscan806_done:
+.annotate 'line', 362
   # rx literal  "."
-    add $I11, rx758_pos, 1
-    gt $I11, rx758_eos, rx758_fail
-    sub $I11, rx758_pos, rx758_off
-    substr $S10, rx758_tgt, $I11, 1
-    ne $S10, ".", rx758_fail
-    add rx758_pos, 1
-  alt763_0:
-.annotate 'line', 350
-    set_addr $I10, alt763_1
-    rx758_cur."!mark_push"(0, rx758_pos, $I10)
+    add $I11, rx802_pos, 1
+    gt $I11, rx802_eos, rx802_fail
+    sub $I11, rx802_pos, rx802_off
+    substr $S10, rx802_tgt, $I11, 1
+    ne $S10, ".", rx802_fail
+    add rx802_pos, 1
+  alt807_0:
+.annotate 'line', 363
+    set_addr $I10, alt807_1
+    rx802_cur."!mark_push"(0, rx802_pos, $I10)
   # rx subrule "identifier" subtype=capture negate=
-    rx758_cur."!cursor_pos"(rx758_pos)
-    $P10 = rx758_cur."identifier"()
-    unless $P10, rx758_fail
-    rx758_cur."!mark_push"(0, -1, 0, $P10)
+    rx802_cur."!cursor_pos"(rx802_pos)
+    $P10 = rx802_cur."identifier"()
+    unless $P10, rx802_fail
+    rx802_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("longname=identifier")
-    rx758_pos = $P10."pos"()
-    goto alt763_end
-  alt763_1:
-.annotate 'line', 351
+    rx802_pos = $P10."pos"()
+    goto alt807_end
+  alt807_1:
+.annotate 'line', 364
   # rx enumcharlist negate=0 zerowidth
-    ge rx758_pos, rx758_eos, rx758_fail
-    sub $I10, rx758_pos, rx758_off
-    substr $S10, rx758_tgt, $I10, 1
+    ge rx802_pos, rx802_eos, rx802_fail
+    sub $I10, rx802_pos, rx802_off
+    substr $S10, rx802_tgt, $I10, 1
     index $I11, "'\"", $S10
-    lt $I11, 0, rx758_fail
+    lt $I11, 0, rx802_fail
   # rx subrule "quote" subtype=capture negate=
-    rx758_cur."!cursor_pos"(rx758_pos)
-    $P10 = rx758_cur."quote"()
-    unless $P10, rx758_fail
-    rx758_cur."!mark_push"(0, -1, 0, $P10)
+    rx802_cur."!cursor_pos"(rx802_pos)
+    $P10 = rx802_cur."quote"()
+    unless $P10, rx802_fail
+    rx802_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote")
-    rx758_pos = $P10."pos"()
-  alt764_0:
-.annotate 'line', 352
-    set_addr $I10, alt764_1
-    rx758_cur."!mark_push"(0, rx758_pos, $I10)
+    rx802_pos = $P10."pos"()
+  alt808_0:
+.annotate 'line', 365
+    set_addr $I10, alt808_1
+    rx802_cur."!mark_push"(0, rx802_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx758_pos, rx758_eos, rx758_fail
-    sub $I10, rx758_pos, rx758_off
-    substr $S10, rx758_tgt, $I10, 1
+    ge rx802_pos, rx802_eos, rx802_fail
+    sub $I10, rx802_pos, rx802_off
+    substr $S10, rx802_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx758_fail
-    goto alt764_end
-  alt764_1:
+    lt $I11, 0, rx802_fail
+    goto alt808_end
+  alt808_1:
   # rx subrule "panic" subtype=method negate=
-    rx758_cur."!cursor_pos"(rx758_pos)
-    $P10 = rx758_cur."panic"("Quoted method name requires parenthesized arguments")
-    unless $P10, rx758_fail
-    rx758_pos = $P10."pos"()
-  alt764_end:
-  alt763_end:
-.annotate 'line', 358
-  # rx rxquantr765 ** 0..1
-    set_addr $I767, rxquantr765_done
-    rx758_cur."!mark_push"(0, rx758_pos, $I767)
-  rxquantr765_loop:
-  alt766_0:
-.annotate 'line', 355
-    set_addr $I10, alt766_1
-    rx758_cur."!mark_push"(0, rx758_pos, $I10)
-.annotate 'line', 356
+    rx802_cur."!cursor_pos"(rx802_pos)
+    $P10 = rx802_cur."panic"("Quoted method name requires parenthesized arguments")
+    unless $P10, rx802_fail
+    rx802_pos = $P10."pos"()
+  alt808_end:
+  alt807_end:
+.annotate 'line', 371
+  # rx rxquantr809 ** 0..1
+    set_addr $I811, rxquantr809_done
+    rx802_cur."!mark_push"(0, rx802_pos, $I811)
+  rxquantr809_loop:
+  alt810_0:
+.annotate 'line', 368
+    set_addr $I10, alt810_1
+    rx802_cur."!mark_push"(0, rx802_pos, $I10)
+.annotate 'line', 369
   # rx enumcharlist negate=0 zerowidth
-    ge rx758_pos, rx758_eos, rx758_fail
-    sub $I10, rx758_pos, rx758_off
-    substr $S10, rx758_tgt, $I10, 1
+    ge rx802_pos, rx802_eos, rx802_fail
+    sub $I10, rx802_pos, rx802_off
+    substr $S10, rx802_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx758_fail
+    lt $I11, 0, rx802_fail
   # rx subrule "args" subtype=capture negate=
-    rx758_cur."!cursor_pos"(rx758_pos)
-    $P10 = rx758_cur."args"()
-    unless $P10, rx758_fail
-    rx758_cur."!mark_push"(0, -1, 0, $P10)
+    rx802_cur."!cursor_pos"(rx802_pos)
+    $P10 = rx802_cur."args"()
+    unless $P10, rx802_fail
+    rx802_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx758_pos = $P10."pos"()
-    goto alt766_end
-  alt766_1:
-.annotate 'line', 357
+    rx802_pos = $P10."pos"()
+    goto alt810_end
+  alt810_1:
+.annotate 'line', 370
   # rx literal  ":"
-    add $I11, rx758_pos, 1
-    gt $I11, rx758_eos, rx758_fail
-    sub $I11, rx758_pos, rx758_off
-    substr $S10, rx758_tgt, $I11, 1
-    ne $S10, ":", rx758_fail
-    add rx758_pos, 1
+    add $I11, rx802_pos, 1
+    gt $I11, rx802_eos, rx802_fail
+    sub $I11, rx802_pos, rx802_off
+    substr $S10, rx802_tgt, $I11, 1
+    ne $S10, ":", rx802_fail
+    add rx802_pos, 1
   # rx charclass s
-    ge rx758_pos, rx758_eos, rx758_fail
-    sub $I10, rx758_pos, rx758_off
-    is_cclass $I11, 32, rx758_tgt, $I10
-    unless $I11, rx758_fail
-    inc rx758_pos
+    ge rx802_pos, rx802_eos, rx802_fail
+    sub $I10, rx802_pos, rx802_off
+    is_cclass $I11, 32, rx802_tgt, $I10
+    unless $I11, rx802_fail
+    inc rx802_pos
   # rx subrule "arglist" subtype=capture negate=
-    rx758_cur."!cursor_pos"(rx758_pos)
-    $P10 = rx758_cur."arglist"()
-    unless $P10, rx758_fail
-    rx758_cur."!mark_push"(0, -1, 0, $P10)
+    rx802_cur."!cursor_pos"(rx802_pos)
+    $P10 = rx802_cur."arglist"()
+    unless $P10, rx802_fail
+    rx802_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx758_pos = $P10."pos"()
-  alt766_end:
-.annotate 'line', 358
-    (rx758_rep) = rx758_cur."!mark_commit"($I767)
-  rxquantr765_done:
-.annotate 'line', 348
+    rx802_pos = $P10."pos"()
+  alt810_end:
+.annotate 'line', 371
+    (rx802_rep) = rx802_cur."!mark_commit"($I811)
+  rxquantr809_done:
+.annotate 'line', 361
   # rx pass
-    rx758_cur."!cursor_pass"(rx758_pos, "dotty")
-    rx758_cur."!cursor_debug"("PASS  ", "dotty", " at pos=", rx758_pos)
-    .return (rx758_cur)
-  rx758_fail:
+    rx802_cur."!cursor_pass"(rx802_pos, "dotty")
+    rx802_cur."!cursor_debug"("PASS  ", "dotty", " at pos=", rx802_pos)
+    .return (rx802_cur)
+  rx802_fail:
 .annotate 'line', 4
-    (rx758_rep, rx758_pos, $I10, $P10) = rx758_cur."!mark_fail"(0)
-    lt rx758_pos, -1, rx758_done
-    eq rx758_pos, -1, rx758_fail
+    (rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0)
+    lt rx802_pos, -1, rx802_done
+    eq rx802_pos, -1, rx802_fail
     jump $I10
-  rx758_done:
-    rx758_cur."!cursor_fail"()
-    rx758_cur."!cursor_debug"("FAIL  ", "dotty")
-    .return (rx758_cur)
+  rx802_done:
+    rx802_cur."!cursor_fail"()
+    rx802_cur."!cursor_debug"("FAIL  ", "dotty")
+    .return (rx802_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("172_1274853038.58734") :method
+.sub "!PREFIX__dotty"  :subid("181_1275811487.95429") :method
 .annotate 'line', 4
-    $P760 = self."!PREFIX__!subrule"("longname=identifier", ".")
-    new $P761, "ResizablePMCArray"
-    push $P761, "'"
-    push $P761, "\""
-    push $P761, $P760
-    .return ($P761)
+    $P804 = self."!PREFIX__!subrule"("identifier", ".")
+    new $P805, "ResizablePMCArray"
+    push $P805, "'"
+    push $P805, "\""
+    push $P805, $P804
+    .return ($P805)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("173_1274853038.58734") :method
-.annotate 'line', 362
-    $P769 = self."!protoregex"("term")
-    .return ($P769)
+.sub "term"  :subid("182_1275811487.95429") :method
+.annotate 'line', 375
+    $P813 = self."!protoregex"("term")
+    .return ($P813)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("174_1274853038.58734") :method
-.annotate 'line', 362
-    $P771 = self."!PREFIX__!protoregex"("term")
-    .return ($P771)
+.sub "!PREFIX__term"  :subid("183_1275811487.95429") :method
+.annotate 'line', 375
+    $P815 = self."!PREFIX__!protoregex"("term")
+    .return ($P815)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("175_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<self>"  :subid("184_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx773_tgt
-    .local int rx773_pos
-    .local int rx773_off
-    .local int rx773_eos
-    .local int rx773_rep
-    .local pmc rx773_cur
-    (rx773_cur, rx773_pos, rx773_tgt) = self."!cursor_start"()
-    rx773_cur."!cursor_debug"("START ", "term:sym<self>")
-    .lex unicode:"$\x{a2}", rx773_cur
-    .local pmc match
-    .lex "$/", match
-    length rx773_eos, rx773_tgt
-    set rx773_off, 0
-    lt rx773_pos, 2, rx773_start
-    sub rx773_off, rx773_pos, 1
-    substr rx773_tgt, rx773_tgt, rx773_off
-  rx773_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan776_done
-    goto rxscan776_scan
-  rxscan776_loop:
-    ($P10) = rx773_cur."from"()
-    inc $P10
-    set rx773_pos, $P10
-    ge rx773_pos, rx773_eos, rxscan776_done
-  rxscan776_scan:
-    set_addr $I10, rxscan776_loop
-    rx773_cur."!mark_push"(0, rx773_pos, $I10)
-  rxscan776_done:
-.annotate 'line', 364
+    .local string rx817_tgt
+    .local int rx817_pos
+    .local int rx817_off
+    .local int rx817_eos
+    .local int rx817_rep
+    .local pmc rx817_cur
+    (rx817_cur, rx817_pos, rx817_tgt) = self."!cursor_start"()
+    rx817_cur."!cursor_debug"("START ", "term:sym<self>")
+    .lex unicode:"$\x{a2}", rx817_cur
+    .local pmc match
+    .lex "$/", match
+    length rx817_eos, rx817_tgt
+    gt rx817_pos, rx817_eos, rx817_done
+    set rx817_off, 0
+    lt rx817_pos, 2, rx817_start
+    sub rx817_off, rx817_pos, 1
+    substr rx817_tgt, rx817_tgt, rx817_off
+  rx817_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan820_done
+    goto rxscan820_scan
+  rxscan820_loop:
+    ($P10) = rx817_cur."from"()
+    inc $P10
+    set rx817_pos, $P10
+    ge rx817_pos, rx817_eos, rxscan820_done
+  rxscan820_scan:
+    set_addr $I10, rxscan820_loop
+    rx817_cur."!mark_push"(0, rx817_pos, $I10)
+  rxscan820_done:
+.annotate 'line', 377
   # rx subcapture "sym"
-    set_addr $I10, rxcap_777_fail
-    rx773_cur."!mark_push"(0, rx773_pos, $I10)
+    set_addr $I10, rxcap_821_fail
+    rx817_cur."!mark_push"(0, rx817_pos, $I10)
   # rx literal  "self"
-    add $I11, rx773_pos, 4
-    gt $I11, rx773_eos, rx773_fail
-    sub $I11, rx773_pos, rx773_off
-    substr $S10, rx773_tgt, $I11, 4
-    ne $S10, "self", rx773_fail
-    add rx773_pos, 4
-    set_addr $I10, rxcap_777_fail
-    ($I12, $I11) = rx773_cur."!mark_peek"($I10)
-    rx773_cur."!cursor_pos"($I11)
-    ($P10) = rx773_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx773_pos, "")
-    rx773_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx817_pos, 4
+    gt $I11, rx817_eos, rx817_fail
+    sub $I11, rx817_pos, rx817_off
+    substr $S10, rx817_tgt, $I11, 4
+    ne $S10, "self", rx817_fail
+    add rx817_pos, 4
+    set_addr $I10, rxcap_821_fail
+    ($I12, $I11) = rx817_cur."!mark_peek"($I10)
+    rx817_cur."!cursor_pos"($I11)
+    ($P10) = rx817_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx817_pos, "")
+    rx817_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_777_done
-  rxcap_777_fail:
-    goto rx773_fail
-  rxcap_777_done:
+    goto rxcap_821_done
+  rxcap_821_fail:
+    goto rx817_fail
+  rxcap_821_done:
   # rxanchor rwb
-    le rx773_pos, 0, rx773_fail
-    sub $I10, rx773_pos, rx773_off
-    is_cclass $I11, 8192, rx773_tgt, $I10
-    if $I11, rx773_fail
+    le rx817_pos, 0, rx817_fail
+    sub $I10, rx817_pos, rx817_off
+    is_cclass $I11, 8192, rx817_tgt, $I10
+    if $I11, rx817_fail
     dec $I10
-    is_cclass $I11, 8192, rx773_tgt, $I10
-    unless $I11, rx773_fail
+    is_cclass $I11, 8192, rx817_tgt, $I10
+    unless $I11, rx817_fail
   # rx pass
-    rx773_cur."!cursor_pass"(rx773_pos, "term:sym<self>")
-    rx773_cur."!cursor_debug"("PASS  ", "term:sym<self>", " at pos=", rx773_pos)
-    .return (rx773_cur)
-  rx773_fail:
+    rx817_cur."!cursor_pass"(rx817_pos, "term:sym<self>")
+    rx817_cur."!cursor_debug"("PASS  ", "term:sym<self>", " at pos=", rx817_pos)
+    .return (rx817_cur)
+  rx817_fail:
 .annotate 'line', 4
-    (rx773_rep, rx773_pos, $I10, $P10) = rx773_cur."!mark_fail"(0)
-    lt rx773_pos, -1, rx773_done
-    eq rx773_pos, -1, rx773_fail
+    (rx817_rep, rx817_pos, $I10, $P10) = rx817_cur."!mark_fail"(0)
+    lt rx817_pos, -1, rx817_done
+    eq rx817_pos, -1, rx817_fail
     jump $I10
-  rx773_done:
-    rx773_cur."!cursor_fail"()
-    rx773_cur."!cursor_debug"("FAIL  ", "term:sym<self>")
-    .return (rx773_cur)
+  rx817_done:
+    rx817_cur."!cursor_fail"()
+    rx817_cur."!cursor_debug"("FAIL  ", "term:sym<self>")
+    .return (rx817_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("176_1274853038.58734") :method
+.sub "!PREFIX__term:sym<self>"  :subid("185_1275811487.95429") :method
 .annotate 'line', 4
-    new $P775, "ResizablePMCArray"
-    push $P775, "self"
-    .return ($P775)
+    new $P819, "ResizablePMCArray"
+    push $P819, "self"
+    .return ($P819)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("177_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<identifier>"  :subid("186_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx779_tgt
-    .local int rx779_pos
-    .local int rx779_off
-    .local int rx779_eos
-    .local int rx779_rep
-    .local pmc rx779_cur
-    (rx779_cur, rx779_pos, rx779_tgt) = self."!cursor_start"()
-    rx779_cur."!cursor_debug"("START ", "term:sym<identifier>")
-    .lex unicode:"$\x{a2}", rx779_cur
-    .local pmc match
-    .lex "$/", match
-    length rx779_eos, rx779_tgt
-    set rx779_off, 0
-    lt rx779_pos, 2, rx779_start
-    sub rx779_off, rx779_pos, 1
-    substr rx779_tgt, rx779_tgt, rx779_off
-  rx779_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan783_done
-    goto rxscan783_scan
-  rxscan783_loop:
-    ($P10) = rx779_cur."from"()
-    inc $P10
-    set rx779_pos, $P10
-    ge rx779_pos, rx779_eos, rxscan783_done
-  rxscan783_scan:
-    set_addr $I10, rxscan783_loop
-    rx779_cur."!mark_push"(0, rx779_pos, $I10)
-  rxscan783_done:
-.annotate 'line', 367
+    .local string rx823_tgt
+    .local int rx823_pos
+    .local int rx823_off
+    .local int rx823_eos
+    .local int rx823_rep
+    .local pmc rx823_cur
+    (rx823_cur, rx823_pos, rx823_tgt) = self."!cursor_start"()
+    rx823_cur."!cursor_debug"("START ", "term:sym<identifier>")
+    .lex unicode:"$\x{a2}", rx823_cur
+    .local pmc match
+    .lex "$/", match
+    length rx823_eos, rx823_tgt
+    gt rx823_pos, rx823_eos, rx823_done
+    set rx823_off, 0
+    lt rx823_pos, 2, rx823_start
+    sub rx823_off, rx823_pos, 1
+    substr rx823_tgt, rx823_tgt, rx823_off
+  rx823_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan827_done
+    goto rxscan827_scan
+  rxscan827_loop:
+    ($P10) = rx823_cur."from"()
+    inc $P10
+    set rx823_pos, $P10
+    ge rx823_pos, rx823_eos, rxscan827_done
+  rxscan827_scan:
+    set_addr $I10, rxscan827_loop
+    rx823_cur."!mark_push"(0, rx823_pos, $I10)
+  rxscan827_done:
+.annotate 'line', 380
   # rx subrule "identifier" subtype=capture negate=
-    rx779_cur."!cursor_pos"(rx779_pos)
-    $P10 = rx779_cur."identifier"()
-    unless $P10, rx779_fail
-    rx779_cur."!mark_push"(0, -1, 0, $P10)
+    rx823_cur."!cursor_pos"(rx823_pos)
+    $P10 = rx823_cur."identifier"()
+    unless $P10, rx823_fail
+    rx823_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx779_pos = $P10."pos"()
+    rx823_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx779_pos, rx779_eos, rx779_fail
-    sub $I10, rx779_pos, rx779_off
-    substr $S10, rx779_tgt, $I10, 1
+    ge rx823_pos, rx823_eos, rx823_fail
+    sub $I10, rx823_pos, rx823_off
+    substr $S10, rx823_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx779_fail
+    lt $I11, 0, rx823_fail
   # rx subrule "args" subtype=capture negate=
-    rx779_cur."!cursor_pos"(rx779_pos)
-    $P10 = rx779_cur."args"()
-    unless $P10, rx779_fail
-    rx779_cur."!mark_push"(0, -1, 0, $P10)
+    rx823_cur."!cursor_pos"(rx823_pos)
+    $P10 = rx823_cur."args"()
+    unless $P10, rx823_fail
+    rx823_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx779_pos = $P10."pos"()
-.annotate 'line', 366
+    rx823_pos = $P10."pos"()
+.annotate 'line', 379
   # rx pass
-    rx779_cur."!cursor_pass"(rx779_pos, "term:sym<identifier>")
-    rx779_cur."!cursor_debug"("PASS  ", "term:sym<identifier>", " at pos=", rx779_pos)
-    .return (rx779_cur)
-  rx779_fail:
+    rx823_cur."!cursor_pass"(rx823_pos, "term:sym<identifier>")
+    rx823_cur."!cursor_debug"("PASS  ", "term:sym<identifier>", " at pos=", rx823_pos)
+    .return (rx823_cur)
+  rx823_fail:
 .annotate 'line', 4
-    (rx779_rep, rx779_pos, $I10, $P10) = rx779_cur."!mark_fail"(0)
-    lt rx779_pos, -1, rx779_done
-    eq rx779_pos, -1, rx779_fail
+    (rx823_rep, rx823_pos, $I10, $P10) = rx823_cur."!mark_fail"(0)
+    lt rx823_pos, -1, rx823_done
+    eq rx823_pos, -1, rx823_fail
     jump $I10
-  rx779_done:
-    rx779_cur."!cursor_fail"()
-    rx779_cur."!cursor_debug"("FAIL  ", "term:sym<identifier>")
-    .return (rx779_cur)
+  rx823_done:
+    rx823_cur."!cursor_fail"()
+    rx823_cur."!cursor_debug"("FAIL  ", "term:sym<identifier>")
+    .return (rx823_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("178_1274853038.58734") :method
+.sub "!PREFIX__term:sym<identifier>"  :subid("187_1275811487.95429") :method
 .annotate 'line', 4
-    $P781 = self."!PREFIX__!subrule"("identifier", "")
-    new $P782, "ResizablePMCArray"
-    push $P782, $P781
-    .return ($P782)
+    $P825 = self."!PREFIX__!subrule"("identifier", "")
+    new $P826, "ResizablePMCArray"
+    push $P826, $P825
+    .return ($P826)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("179_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<name>"  :subid("188_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx785_tgt
-    .local int rx785_pos
-    .local int rx785_off
-    .local int rx785_eos
-    .local int rx785_rep
-    .local pmc rx785_cur
-    (rx785_cur, rx785_pos, rx785_tgt) = self."!cursor_start"()
-    rx785_cur."!cursor_debug"("START ", "term:sym<name>")
-    rx785_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx785_cur
-    .local pmc match
-    .lex "$/", match
-    length rx785_eos, rx785_tgt
-    set rx785_off, 0
-    lt rx785_pos, 2, rx785_start
-    sub rx785_off, rx785_pos, 1
-    substr rx785_tgt, rx785_tgt, rx785_off
-  rx785_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan789_done
-    goto rxscan789_scan
-  rxscan789_loop:
-    ($P10) = rx785_cur."from"()
-    inc $P10
-    set rx785_pos, $P10
-    ge rx785_pos, rx785_eos, rxscan789_done
-  rxscan789_scan:
-    set_addr $I10, rxscan789_loop
-    rx785_cur."!mark_push"(0, rx785_pos, $I10)
-  rxscan789_done:
-.annotate 'line', 371
+    .local string rx829_tgt
+    .local int rx829_pos
+    .local int rx829_off
+    .local int rx829_eos
+    .local int rx829_rep
+    .local pmc rx829_cur
+    (rx829_cur, rx829_pos, rx829_tgt) = self."!cursor_start"()
+    rx829_cur."!cursor_debug"("START ", "term:sym<name>")
+    rx829_cur."!cursor_caparray"("args")
+    .lex unicode:"$\x{a2}", rx829_cur
+    .local pmc match
+    .lex "$/", match
+    length rx829_eos, rx829_tgt
+    gt rx829_pos, rx829_eos, rx829_done
+    set rx829_off, 0
+    lt rx829_pos, 2, rx829_start
+    sub rx829_off, rx829_pos, 1
+    substr rx829_tgt, rx829_tgt, rx829_off
+  rx829_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan833_done
+    goto rxscan833_scan
+  rxscan833_loop:
+    ($P10) = rx829_cur."from"()
+    inc $P10
+    set rx829_pos, $P10
+    ge rx829_pos, rx829_eos, rxscan833_done
+  rxscan833_scan:
+    set_addr $I10, rxscan833_loop
+    rx829_cur."!mark_push"(0, rx829_pos, $I10)
+  rxscan833_done:
+.annotate 'line', 384
   # rx subrule "name" subtype=capture negate=
-    rx785_cur."!cursor_pos"(rx785_pos)
-    $P10 = rx785_cur."name"()
-    unless $P10, rx785_fail
-    rx785_cur."!mark_push"(0, -1, 0, $P10)
+    rx829_cur."!cursor_pos"(rx829_pos)
+    $P10 = rx829_cur."name"()
+    unless $P10, rx829_fail
+    rx829_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx785_pos = $P10."pos"()
-  # rx rxquantr790 ** 0..1
-    set_addr $I791, rxquantr790_done
-    rx785_cur."!mark_push"(0, rx785_pos, $I791)
-  rxquantr790_loop:
+    rx829_pos = $P10."pos"()
+  # rx rxquantr834 ** 0..1
+    set_addr $I835, rxquantr834_done
+    rx829_cur."!mark_push"(0, rx829_pos, $I835)
+  rxquantr834_loop:
   # rx subrule "args" subtype=capture negate=
-    rx785_cur."!cursor_pos"(rx785_pos)
-    $P10 = rx785_cur."args"()
-    unless $P10, rx785_fail
-    rx785_cur."!mark_push"(0, -1, 0, $P10)
+    rx829_cur."!cursor_pos"(rx829_pos)
+    $P10 = rx829_cur."args"()
+    unless $P10, rx829_fail
+    rx829_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx785_pos = $P10."pos"()
-    (rx785_rep) = rx785_cur."!mark_commit"($I791)
-  rxquantr790_done:
-.annotate 'line', 370
+    rx829_pos = $P10."pos"()
+    (rx829_rep) = rx829_cur."!mark_commit"($I835)
+  rxquantr834_done:
+.annotate 'line', 383
   # rx pass
-    rx785_cur."!cursor_pass"(rx785_pos, "term:sym<name>")
-    rx785_cur."!cursor_debug"("PASS  ", "term:sym<name>", " at pos=", rx785_pos)
-    .return (rx785_cur)
-  rx785_fail:
+    rx829_cur."!cursor_pass"(rx829_pos, "term:sym<name>")
+    rx829_cur."!cursor_debug"("PASS  ", "term:sym<name>", " at pos=", rx829_pos)
+    .return (rx829_cur)
+  rx829_fail:
 .annotate 'line', 4
-    (rx785_rep, rx785_pos, $I10, $P10) = rx785_cur."!mark_fail"(0)
-    lt rx785_pos, -1, rx785_done
-    eq rx785_pos, -1, rx785_fail
+    (rx829_rep, rx829_pos, $I10, $P10) = rx829_cur."!mark_fail"(0)
+    lt rx829_pos, -1, rx829_done
+    eq rx829_pos, -1, rx829_fail
     jump $I10
-  rx785_done:
-    rx785_cur."!cursor_fail"()
-    rx785_cur."!cursor_debug"("FAIL  ", "term:sym<name>")
-    .return (rx785_cur)
+  rx829_done:
+    rx829_cur."!cursor_fail"()
+    rx829_cur."!cursor_debug"("FAIL  ", "term:sym<name>")
+    .return (rx829_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("180_1274853038.58734") :method
+.sub "!PREFIX__term:sym<name>"  :subid("189_1275811487.95429") :method
 .annotate 'line', 4
-    $P787 = self."!PREFIX__!subrule"("name", "")
-    new $P788, "ResizablePMCArray"
-    push $P788, $P787
-    .return ($P788)
+    $P831 = self."!PREFIX__!subrule"("name", "")
+    new $P832, "ResizablePMCArray"
+    push $P832, $P831
+    .return ($P832)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>"  :subid("181_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<pir::op>"  :subid("190_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx793_tgt
-    .local int rx793_pos
-    .local int rx793_off
-    .local int rx793_eos
-    .local int rx793_rep
-    .local pmc rx793_cur
-    (rx793_cur, rx793_pos, rx793_tgt) = self."!cursor_start"()
-    rx793_cur."!cursor_debug"("START ", "term:sym<pir::op>")
-    rx793_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx793_cur
+    .local string rx837_tgt
+    .local int rx837_pos
+    .local int rx837_off
+    .local int rx837_eos
+    .local int rx837_rep
+    .local pmc rx837_cur
+    (rx837_cur, rx837_pos, rx837_tgt) = self."!cursor_start"()
+    rx837_cur."!cursor_debug"("START ", "term:sym<pir::op>")
+    rx837_cur."!cursor_caparray"("args")
+    .lex unicode:"$\x{a2}", rx837_cur
     .local pmc match
     .lex "$/", match
-    length rx793_eos, rx793_tgt
-    set rx793_off, 0
-    lt rx793_pos, 2, rx793_start
-    sub rx793_off, rx793_pos, 1
-    substr rx793_tgt, rx793_tgt, rx793_off
-  rx793_start:
+    length rx837_eos, rx837_tgt
+    gt rx837_pos, rx837_eos, rx837_done
+    set rx837_off, 0
+    lt rx837_pos, 2, rx837_start
+    sub rx837_off, rx837_pos, 1
+    substr rx837_tgt, rx837_tgt, rx837_off
+  rx837_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan796_done
-    goto rxscan796_scan
-  rxscan796_loop:
-    ($P10) = rx793_cur."from"()
+    ne $I10, -1, rxscan840_done
+    goto rxscan840_scan
+  rxscan840_loop:
+    ($P10) = rx837_cur."from"()
     inc $P10
-    set rx793_pos, $P10
-    ge rx793_pos, rx793_eos, rxscan796_done
-  rxscan796_scan:
-    set_addr $I10, rxscan796_loop
-    rx793_cur."!mark_push"(0, rx793_pos, $I10)
-  rxscan796_done:
-.annotate 'line', 375
+    set rx837_pos, $P10
+    ge rx837_pos, rx837_eos, rxscan840_done
+  rxscan840_scan:
+    set_addr $I10, rxscan840_loop
+    rx837_cur."!mark_push"(0, rx837_pos, $I10)
+  rxscan840_done:
+.annotate 'line', 388
   # rx literal  "pir::"
-    add $I11, rx793_pos, 5
-    gt $I11, rx793_eos, rx793_fail
-    sub $I11, rx793_pos, rx793_off
-    substr $S10, rx793_tgt, $I11, 5
-    ne $S10, "pir::", rx793_fail
-    add rx793_pos, 5
+    add $I11, rx837_pos, 5
+    gt $I11, rx837_eos, rx837_fail
+    sub $I11, rx837_pos, rx837_off
+    substr $S10, rx837_tgt, $I11, 5
+    ne $S10, "pir::", rx837_fail
+    add rx837_pos, 5
   # rx subcapture "op"
-    set_addr $I10, rxcap_797_fail
-    rx793_cur."!mark_push"(0, rx793_pos, $I10)
+    set_addr $I10, rxcap_841_fail
+    rx837_cur."!mark_push"(0, rx837_pos, $I10)
   # rx charclass_q w r 1..-1
-    sub $I10, rx793_pos, rx793_off
-    find_not_cclass $I11, 8192, rx793_tgt, $I10, rx793_eos
+    sub $I10, rx837_pos, rx837_off
+    find_not_cclass $I11, 8192, rx837_tgt, $I10, rx837_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx793_fail
-    add rx793_pos, rx793_off, $I11
-    set_addr $I10, rxcap_797_fail
-    ($I12, $I11) = rx793_cur."!mark_peek"($I10)
-    rx793_cur."!cursor_pos"($I11)
-    ($P10) = rx793_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx793_pos, "")
-    rx793_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx837_fail
+    add rx837_pos, rx837_off, $I11
+    set_addr $I10, rxcap_841_fail
+    ($I12, $I11) = rx837_cur."!mark_peek"($I10)
+    rx837_cur."!cursor_pos"($I11)
+    ($P10) = rx837_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx837_pos, "")
+    rx837_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("op")
-    goto rxcap_797_done
-  rxcap_797_fail:
-    goto rx793_fail
-  rxcap_797_done:
-  # rx rxquantr798 ** 0..1
-    set_addr $I799, rxquantr798_done
-    rx793_cur."!mark_push"(0, rx793_pos, $I799)
-  rxquantr798_loop:
+    goto rxcap_841_done
+  rxcap_841_fail:
+    goto rx837_fail
+  rxcap_841_done:
+  # rx rxquantr842 ** 0..1
+    set_addr $I843, rxquantr842_done
+    rx837_cur."!mark_push"(0, rx837_pos, $I843)
+  rxquantr842_loop:
   # rx subrule "args" subtype=capture negate=
-    rx793_cur."!cursor_pos"(rx793_pos)
-    $P10 = rx793_cur."args"()
-    unless $P10, rx793_fail
-    rx793_cur."!mark_push"(0, -1, 0, $P10)
+    rx837_cur."!cursor_pos"(rx837_pos)
+    $P10 = rx837_cur."args"()
+    unless $P10, rx837_fail
+    rx837_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx793_pos = $P10."pos"()
-    (rx793_rep) = rx793_cur."!mark_commit"($I799)
-  rxquantr798_done:
-.annotate 'line', 374
+    rx837_pos = $P10."pos"()
+    (rx837_rep) = rx837_cur."!mark_commit"($I843)
+  rxquantr842_done:
+.annotate 'line', 387
   # rx pass
-    rx793_cur."!cursor_pass"(rx793_pos, "term:sym<pir::op>")
-    rx793_cur."!cursor_debug"("PASS  ", "term:sym<pir::op>", " at pos=", rx793_pos)
-    .return (rx793_cur)
-  rx793_fail:
+    rx837_cur."!cursor_pass"(rx837_pos, "term:sym<pir::op>")
+    rx837_cur."!cursor_debug"("PASS  ", "term:sym<pir::op>", " at pos=", rx837_pos)
+    .return (rx837_cur)
+  rx837_fail:
 .annotate 'line', 4
-    (rx793_rep, rx793_pos, $I10, $P10) = rx793_cur."!mark_fail"(0)
-    lt rx793_pos, -1, rx793_done
-    eq rx793_pos, -1, rx793_fail
+    (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
+    lt rx837_pos, -1, rx837_done
+    eq rx837_pos, -1, rx837_fail
     jump $I10
-  rx793_done:
-    rx793_cur."!cursor_fail"()
-    rx793_cur."!cursor_debug"("FAIL  ", "term:sym<pir::op>")
-    .return (rx793_cur)
+  rx837_done:
+    rx837_cur."!cursor_fail"()
+    rx837_cur."!cursor_debug"("FAIL  ", "term:sym<pir::op>")
+    .return (rx837_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("182_1274853038.58734") :method
+.sub "!PREFIX__term:sym<pir::op>"  :subid("191_1275811487.95429") :method
 .annotate 'line', 4
-    new $P795, "ResizablePMCArray"
-    push $P795, "pir::"
-    .return ($P795)
+    new $P839, "ResizablePMCArray"
+    push $P839, "pir::"
+    .return ($P839)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "args"  :subid("183_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "args"  :subid("192_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx801_tgt
-    .local int rx801_pos
-    .local int rx801_off
-    .local int rx801_eos
-    .local int rx801_rep
-    .local pmc rx801_cur
-    (rx801_cur, rx801_pos, rx801_tgt) = self."!cursor_start"()
-    rx801_cur."!cursor_debug"("START ", "args")
-    .lex unicode:"$\x{a2}", rx801_cur
-    .local pmc match
-    .lex "$/", match
-    length rx801_eos, rx801_tgt
-    set rx801_off, 0
-    lt rx801_pos, 2, rx801_start
-    sub rx801_off, rx801_pos, 1
-    substr rx801_tgt, rx801_tgt, rx801_off
-  rx801_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan805_done
-    goto rxscan805_scan
-  rxscan805_loop:
-    ($P10) = rx801_cur."from"()
-    inc $P10
-    set rx801_pos, $P10
-    ge rx801_pos, rx801_eos, rxscan805_done
-  rxscan805_scan:
-    set_addr $I10, rxscan805_loop
-    rx801_cur."!mark_push"(0, rx801_pos, $I10)
-  rxscan805_done:
-.annotate 'line', 379
+    .local string rx845_tgt
+    .local int rx845_pos
+    .local int rx845_off
+    .local int rx845_eos
+    .local int rx845_rep
+    .local pmc rx845_cur
+    (rx845_cur, rx845_pos, rx845_tgt) = self."!cursor_start"()
+    rx845_cur."!cursor_debug"("START ", "args")
+    .lex unicode:"$\x{a2}", rx845_cur
+    .local pmc match
+    .lex "$/", match
+    length rx845_eos, rx845_tgt
+    gt rx845_pos, rx845_eos, rx845_done
+    set rx845_off, 0
+    lt rx845_pos, 2, rx845_start
+    sub rx845_off, rx845_pos, 1
+    substr rx845_tgt, rx845_tgt, rx845_off
+  rx845_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan849_done
+    goto rxscan849_scan
+  rxscan849_loop:
+    ($P10) = rx845_cur."from"()
+    inc $P10
+    set rx845_pos, $P10
+    ge rx845_pos, rx845_eos, rxscan849_done
+  rxscan849_scan:
+    set_addr $I10, rxscan849_loop
+    rx845_cur."!mark_push"(0, rx845_pos, $I10)
+  rxscan849_done:
+.annotate 'line', 392
   # rx literal  "("
-    add $I11, rx801_pos, 1
-    gt $I11, rx801_eos, rx801_fail
-    sub $I11, rx801_pos, rx801_off
-    substr $S10, rx801_tgt, $I11, 1
-    ne $S10, "(", rx801_fail
-    add rx801_pos, 1
+    add $I11, rx845_pos, 1
+    gt $I11, rx845_eos, rx845_fail
+    sub $I11, rx845_pos, rx845_off
+    substr $S10, rx845_tgt, $I11, 1
+    ne $S10, "(", rx845_fail
+    add rx845_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx801_cur."!cursor_pos"(rx801_pos)
-    $P10 = rx801_cur."arglist"()
-    unless $P10, rx801_fail
-    rx801_cur."!mark_push"(0, -1, 0, $P10)
+    rx845_cur."!cursor_pos"(rx845_pos)
+    $P10 = rx845_cur."arglist"()
+    unless $P10, rx845_fail
+    rx845_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx801_pos = $P10."pos"()
+    rx845_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx801_pos, 1
-    gt $I11, rx801_eos, rx801_fail
-    sub $I11, rx801_pos, rx801_off
-    substr $S10, rx801_tgt, $I11, 1
-    ne $S10, ")", rx801_fail
-    add rx801_pos, 1
+    add $I11, rx845_pos, 1
+    gt $I11, rx845_eos, rx845_fail
+    sub $I11, rx845_pos, rx845_off
+    substr $S10, rx845_tgt, $I11, 1
+    ne $S10, ")", rx845_fail
+    add rx845_pos, 1
   # rx pass
-    rx801_cur."!cursor_pass"(rx801_pos, "args")
-    rx801_cur."!cursor_debug"("PASS  ", "args", " at pos=", rx801_pos)
-    .return (rx801_cur)
-  rx801_fail:
+    rx845_cur."!cursor_pass"(rx845_pos, "args")
+    rx845_cur."!cursor_debug"("PASS  ", "args", " at pos=", rx845_pos)
+    .return (rx845_cur)
+  rx845_fail:
 .annotate 'line', 4
-    (rx801_rep, rx801_pos, $I10, $P10) = rx801_cur."!mark_fail"(0)
-    lt rx801_pos, -1, rx801_done
-    eq rx801_pos, -1, rx801_fail
+    (rx845_rep, rx845_pos, $I10, $P10) = rx845_cur."!mark_fail"(0)
+    lt rx845_pos, -1, rx845_done
+    eq rx845_pos, -1, rx845_fail
     jump $I10
-  rx801_done:
-    rx801_cur."!cursor_fail"()
-    rx801_cur."!cursor_debug"("FAIL  ", "args")
-    .return (rx801_cur)
+  rx845_done:
+    rx845_cur."!cursor_fail"()
+    rx845_cur."!cursor_debug"("FAIL  ", "args")
+    .return (rx845_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("184_1274853038.58734") :method
+.sub "!PREFIX__args"  :subid("193_1275811487.95429") :method
 .annotate 'line', 4
-    $P803 = self."!PREFIX__!subrule"("arglist", "(")
-    new $P804, "ResizablePMCArray"
-    push $P804, $P803
-    .return ($P804)
+    $P847 = self."!PREFIX__!subrule"("arglist", "(")
+    new $P848, "ResizablePMCArray"
+    push $P848, $P847
+    .return ($P848)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("185_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "arglist"  :subid("194_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx807_tgt
-    .local int rx807_pos
-    .local int rx807_off
-    .local int rx807_eos
-    .local int rx807_rep
-    .local pmc rx807_cur
-    (rx807_cur, rx807_pos, rx807_tgt) = self."!cursor_start"()
-    rx807_cur."!cursor_debug"("START ", "arglist")
-    .lex unicode:"$\x{a2}", rx807_cur
+    .local string rx851_tgt
+    .local int rx851_pos
+    .local int rx851_off
+    .local int rx851_eos
+    .local int rx851_rep
+    .local pmc rx851_cur
+    (rx851_cur, rx851_pos, rx851_tgt) = self."!cursor_start"()
+    rx851_cur."!cursor_debug"("START ", "arglist")
+    .lex unicode:"$\x{a2}", rx851_cur
     .local pmc match
     .lex "$/", match
-    length rx807_eos, rx807_tgt
-    set rx807_off, 0
-    lt rx807_pos, 2, rx807_start
-    sub rx807_off, rx807_pos, 1
-    substr rx807_tgt, rx807_tgt, rx807_off
-  rx807_start:
+    length rx851_eos, rx851_tgt
+    gt rx851_pos, rx851_eos, rx851_done
+    set rx851_off, 0
+    lt rx851_pos, 2, rx851_start
+    sub rx851_off, rx851_pos, 1
+    substr rx851_tgt, rx851_tgt, rx851_off
+  rx851_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan811_done
-    goto rxscan811_scan
-  rxscan811_loop:
-    ($P10) = rx807_cur."from"()
+    ne $I10, -1, rxscan855_done
+    goto rxscan855_scan
+  rxscan855_loop:
+    ($P10) = rx851_cur."from"()
     inc $P10
-    set rx807_pos, $P10
-    ge rx807_pos, rx807_eos, rxscan811_done
-  rxscan811_scan:
-    set_addr $I10, rxscan811_loop
-    rx807_cur."!mark_push"(0, rx807_pos, $I10)
-  rxscan811_done:
-.annotate 'line', 383
+    set rx851_pos, $P10
+    ge rx851_pos, rx851_eos, rxscan855_done
+  rxscan855_scan:
+    set_addr $I10, rxscan855_loop
+    rx851_cur."!mark_push"(0, rx851_pos, $I10)
+  rxscan855_done:
+.annotate 'line', 396
   # rx subrule "ws" subtype=method negate=
-    rx807_cur."!cursor_pos"(rx807_pos)
-    $P10 = rx807_cur."ws"()
-    unless $P10, rx807_fail
-    rx807_pos = $P10."pos"()
-  alt812_0:
-.annotate 'line', 384
-    set_addr $I10, alt812_1
-    rx807_cur."!mark_push"(0, rx807_pos, $I10)
-.annotate 'line', 385
+    rx851_cur."!cursor_pos"(rx851_pos)
+    $P10 = rx851_cur."ws"()
+    unless $P10, rx851_fail
+    rx851_pos = $P10."pos"()
+  alt856_0:
+.annotate 'line', 397
+    set_addr $I10, alt856_1
+    rx851_cur."!mark_push"(0, rx851_pos, $I10)
+.annotate 'line', 398
   # rx subrule "EXPR" subtype=capture negate=
-    rx807_cur."!cursor_pos"(rx807_pos)
-    $P10 = rx807_cur."EXPR"("f=")
-    unless $P10, rx807_fail
-    rx807_cur."!mark_push"(0, -1, 0, $P10)
+    rx851_cur."!cursor_pos"(rx851_pos)
+    $P10 = rx851_cur."EXPR"("f=")
+    unless $P10, rx851_fail
+    rx851_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx807_pos = $P10."pos"()
-    goto alt812_end
-  alt812_1:
-  alt812_end:
-.annotate 'line', 382
+    rx851_pos = $P10."pos"()
+    goto alt856_end
+  alt856_1:
+  alt856_end:
+.annotate 'line', 395
   # rx pass
-    rx807_cur."!cursor_pass"(rx807_pos, "arglist")
-    rx807_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx807_pos)
-    .return (rx807_cur)
-  rx807_fail:
+    rx851_cur."!cursor_pass"(rx851_pos, "arglist")
+    rx851_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx851_pos)
+    .return (rx851_cur)
+  rx851_fail:
 .annotate 'line', 4
-    (rx807_rep, rx807_pos, $I10, $P10) = rx807_cur."!mark_fail"(0)
-    lt rx807_pos, -1, rx807_done
-    eq rx807_pos, -1, rx807_fail
+    (rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0)
+    lt rx851_pos, -1, rx851_done
+    eq rx851_pos, -1, rx851_fail
     jump $I10
-  rx807_done:
-    rx807_cur."!cursor_fail"()
-    rx807_cur."!cursor_debug"("FAIL  ", "arglist")
-    .return (rx807_cur)
+  rx851_done:
+    rx851_cur."!cursor_fail"()
+    rx851_cur."!cursor_debug"("FAIL  ", "arglist")
+    .return (rx851_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("186_1274853038.58734") :method
+.sub "!PREFIX__arglist"  :subid("195_1275811487.95429") :method
 .annotate 'line', 4
-    $P809 = self."!PREFIX__!subrule"("", "")
-    new $P810, "ResizablePMCArray"
-    push $P810, $P809
-    .return ($P810)
+    $P853 = self."!PREFIX__!subrule"("ws", "")
+    new $P854, "ResizablePMCArray"
+    push $P854, $P853
+    .return ($P854)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("187_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "term:sym<value>"  :subid("196_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx814_tgt
-    .local int rx814_pos
-    .local int rx814_off
-    .local int rx814_eos
-    .local int rx814_rep
-    .local pmc rx814_cur
-    (rx814_cur, rx814_pos, rx814_tgt) = self."!cursor_start"()
-    rx814_cur."!cursor_debug"("START ", "term:sym<value>")
-    .lex unicode:"$\x{a2}", rx814_cur
-    .local pmc match
-    .lex "$/", match
-    length rx814_eos, rx814_tgt
-    set rx814_off, 0
-    lt rx814_pos, 2, rx814_start
-    sub rx814_off, rx814_pos, 1
-    substr rx814_tgt, rx814_tgt, rx814_off
-  rx814_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan818_done
-    goto rxscan818_scan
-  rxscan818_loop:
-    ($P10) = rx814_cur."from"()
-    inc $P10
-    set rx814_pos, $P10
-    ge rx814_pos, rx814_eos, rxscan818_done
-  rxscan818_scan:
-    set_addr $I10, rxscan818_loop
-    rx814_cur."!mark_push"(0, rx814_pos, $I10)
-  rxscan818_done:
-.annotate 'line', 391
+    .local string rx858_tgt
+    .local int rx858_pos
+    .local int rx858_off
+    .local int rx858_eos
+    .local int rx858_rep
+    .local pmc rx858_cur
+    (rx858_cur, rx858_pos, rx858_tgt) = self."!cursor_start"()
+    rx858_cur."!cursor_debug"("START ", "term:sym<value>")
+    .lex unicode:"$\x{a2}", rx858_cur
+    .local pmc match
+    .lex "$/", match
+    length rx858_eos, rx858_tgt
+    gt rx858_pos, rx858_eos, rx858_done
+    set rx858_off, 0
+    lt rx858_pos, 2, rx858_start
+    sub rx858_off, rx858_pos, 1
+    substr rx858_tgt, rx858_tgt, rx858_off
+  rx858_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan862_done
+    goto rxscan862_scan
+  rxscan862_loop:
+    ($P10) = rx858_cur."from"()
+    inc $P10
+    set rx858_pos, $P10
+    ge rx858_pos, rx858_eos, rxscan862_done
+  rxscan862_scan:
+    set_addr $I10, rxscan862_loop
+    rx858_cur."!mark_push"(0, rx858_pos, $I10)
+  rxscan862_done:
+.annotate 'line', 404
   # rx subrule "value" subtype=capture negate=
-    rx814_cur."!cursor_pos"(rx814_pos)
-    $P10 = rx814_cur."value"()
-    unless $P10, rx814_fail
-    rx814_cur."!mark_push"(0, -1, 0, $P10)
+    rx858_cur."!cursor_pos"(rx858_pos)
+    $P10 = rx858_cur."value"()
+    unless $P10, rx858_fail
+    rx858_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("value")
-    rx814_pos = $P10."pos"()
+    rx858_pos = $P10."pos"()
   # rx pass
-    rx814_cur."!cursor_pass"(rx814_pos, "term:sym<value>")
-    rx814_cur."!cursor_debug"("PASS  ", "term:sym<value>", " at pos=", rx814_pos)
-    .return (rx814_cur)
-  rx814_fail:
+    rx858_cur."!cursor_pass"(rx858_pos, "term:sym<value>")
+    rx858_cur."!cursor_debug"("PASS  ", "term:sym<value>", " at pos=", rx858_pos)
+    .return (rx858_cur)
+  rx858_fail:
 .annotate 'line', 4
-    (rx814_rep, rx814_pos, $I10, $P10) = rx814_cur."!mark_fail"(0)
-    lt rx814_pos, -1, rx814_done
-    eq rx814_pos, -1, rx814_fail
+    (rx858_rep, rx858_pos, $I10, $P10) = rx858_cur."!mark_fail"(0)
+    lt rx858_pos, -1, rx858_done
+    eq rx858_pos, -1, rx858_fail
     jump $I10
-  rx814_done:
-    rx814_cur."!cursor_fail"()
-    rx814_cur."!cursor_debug"("FAIL  ", "term:sym<value>")
-    .return (rx814_cur)
+  rx858_done:
+    rx858_cur."!cursor_fail"()
+    rx858_cur."!cursor_debug"("FAIL  ", "term:sym<value>")
+    .return (rx858_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("188_1274853038.58734") :method
+.sub "!PREFIX__term:sym<value>"  :subid("197_1275811487.95429") :method
 .annotate 'line', 4
-    $P816 = self."!PREFIX__!subrule"("value", "")
-    new $P817, "ResizablePMCArray"
-    push $P817, $P816
-    .return ($P817)
+    $P860 = self."!PREFIX__!subrule"("value", "")
+    new $P861, "ResizablePMCArray"
+    push $P861, $P860
+    .return ($P861)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("189_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "value"  :subid("198_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx820_tgt
-    .local int rx820_pos
-    .local int rx820_off
-    .local int rx820_eos
-    .local int rx820_rep
-    .local pmc rx820_cur
-    (rx820_cur, rx820_pos, rx820_tgt) = self."!cursor_start"()
-    rx820_cur."!cursor_debug"("START ", "value")
-    .lex unicode:"$\x{a2}", rx820_cur
+    .local string rx864_tgt
+    .local int rx864_pos
+    .local int rx864_off
+    .local int rx864_eos
+    .local int rx864_rep
+    .local pmc rx864_cur
+    (rx864_cur, rx864_pos, rx864_tgt) = self."!cursor_start"()
+    rx864_cur."!cursor_debug"("START ", "value")
+    .lex unicode:"$\x{a2}", rx864_cur
     .local pmc match
     .lex "$/", match
-    length rx820_eos, rx820_tgt
-    set rx820_off, 0
-    lt rx820_pos, 2, rx820_start
-    sub rx820_off, rx820_pos, 1
-    substr rx820_tgt, rx820_tgt, rx820_off
-  rx820_start:
+    length rx864_eos, rx864_tgt
+    gt rx864_pos, rx864_eos, rx864_done
+    set rx864_off, 0
+    lt rx864_pos, 2, rx864_start
+    sub rx864_off, rx864_pos, 1
+    substr rx864_tgt, rx864_tgt, rx864_off
+  rx864_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan825_done
-    goto rxscan825_scan
-  rxscan825_loop:
-    ($P10) = rx820_cur."from"()
+    ne $I10, -1, rxscan869_done
+    goto rxscan869_scan
+  rxscan869_loop:
+    ($P10) = rx864_cur."from"()
     inc $P10
-    set rx820_pos, $P10
-    ge rx820_pos, rx820_eos, rxscan825_done
-  rxscan825_scan:
-    set_addr $I10, rxscan825_loop
-    rx820_cur."!mark_push"(0, rx820_pos, $I10)
-  rxscan825_done:
-  alt826_0:
-.annotate 'line', 393
-    set_addr $I10, alt826_1
-    rx820_cur."!mark_push"(0, rx820_pos, $I10)
-.annotate 'line', 394
+    set rx864_pos, $P10
+    ge rx864_pos, rx864_eos, rxscan869_done
+  rxscan869_scan:
+    set_addr $I10, rxscan869_loop
+    rx864_cur."!mark_push"(0, rx864_pos, $I10)
+  rxscan869_done:
+  alt870_0:
+.annotate 'line', 406
+    set_addr $I10, alt870_1
+    rx864_cur."!mark_push"(0, rx864_pos, $I10)
+.annotate 'line', 407
   # rx subrule "quote" subtype=capture negate=
-    rx820_cur."!cursor_pos"(rx820_pos)
-    $P10 = rx820_cur."quote"()
-    unless $P10, rx820_fail
-    rx820_cur."!mark_push"(0, -1, 0, $P10)
+    rx864_cur."!cursor_pos"(rx864_pos)
+    $P10 = rx864_cur."quote"()
+    unless $P10, rx864_fail
+    rx864_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote")
-    rx820_pos = $P10."pos"()
-    goto alt826_end
-  alt826_1:
-.annotate 'line', 395
+    rx864_pos = $P10."pos"()
+    goto alt870_end
+  alt870_1:
+.annotate 'line', 408
   # rx subrule "number" subtype=capture negate=
-    rx820_cur."!cursor_pos"(rx820_pos)
-    $P10 = rx820_cur."number"()
-    unless $P10, rx820_fail
-    rx820_cur."!mark_push"(0, -1, 0, $P10)
+    rx864_cur."!cursor_pos"(rx864_pos)
+    $P10 = rx864_cur."number"()
+    unless $P10, rx864_fail
+    rx864_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("number")
-    rx820_pos = $P10."pos"()
-  alt826_end:
-.annotate 'line', 393
+    rx864_pos = $P10."pos"()
+  alt870_end:
+.annotate 'line', 406
   # rx pass
-    rx820_cur."!cursor_pass"(rx820_pos, "value")
-    rx820_cur."!cursor_debug"("PASS  ", "value", " at pos=", rx820_pos)
-    .return (rx820_cur)
-  rx820_fail:
+    rx864_cur."!cursor_pass"(rx864_pos, "value")
+    rx864_cur."!cursor_debug"("PASS  ", "value", " at pos=", rx864_pos)
+    .return (rx864_cur)
+  rx864_fail:
 .annotate 'line', 4
-    (rx820_rep, rx820_pos, $I10, $P10) = rx820_cur."!mark_fail"(0)
-    lt rx820_pos, -1, rx820_done
-    eq rx820_pos, -1, rx820_fail
+    (rx864_rep, rx864_pos, $I10, $P10) = rx864_cur."!mark_fail"(0)
+    lt rx864_pos, -1, rx864_done
+    eq rx864_pos, -1, rx864_fail
     jump $I10
-  rx820_done:
-    rx820_cur."!cursor_fail"()
-    rx820_cur."!cursor_debug"("FAIL  ", "value")
-    .return (rx820_cur)
+  rx864_done:
+    rx864_cur."!cursor_fail"()
+    rx864_cur."!cursor_debug"("FAIL  ", "value")
+    .return (rx864_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("190_1274853038.58734") :method
+.sub "!PREFIX__value"  :subid("199_1275811487.95429") :method
 .annotate 'line', 4
-    $P822 = self."!PREFIX__!subrule"("number", "")
-    $P823 = self."!PREFIX__!subrule"("quote", "")
-    new $P824, "ResizablePMCArray"
-    push $P824, $P822
-    push $P824, $P823
-    .return ($P824)
+    $P866 = self."!PREFIX__!subrule"("number", "")
+    $P867 = self."!PREFIX__!subrule"("quote", "")
+    new $P868, "ResizablePMCArray"
+    push $P868, $P866
+    push $P868, $P867
+    .return ($P868)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("191_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "number"  :subid("200_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx828_tgt
-    .local int rx828_pos
-    .local int rx828_off
-    .local int rx828_eos
-    .local int rx828_rep
-    .local pmc rx828_cur
-    (rx828_cur, rx828_pos, rx828_tgt) = self."!cursor_start"()
-    rx828_cur."!cursor_debug"("START ", "number")
-    .lex unicode:"$\x{a2}", rx828_cur
-    .local pmc match
-    .lex "$/", match
-    length rx828_eos, rx828_tgt
-    set rx828_off, 0
-    lt rx828_pos, 2, rx828_start
-    sub rx828_off, rx828_pos, 1
-    substr rx828_tgt, rx828_tgt, rx828_off
-  rx828_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan831_done
-    goto rxscan831_scan
-  rxscan831_loop:
-    ($P10) = rx828_cur."from"()
-    inc $P10
-    set rx828_pos, $P10
-    ge rx828_pos, rx828_eos, rxscan831_done
-  rxscan831_scan:
-    set_addr $I10, rxscan831_loop
-    rx828_cur."!mark_push"(0, rx828_pos, $I10)
-  rxscan831_done:
-.annotate 'line', 399
+    .local string rx872_tgt
+    .local int rx872_pos
+    .local int rx872_off
+    .local int rx872_eos
+    .local int rx872_rep
+    .local pmc rx872_cur
+    (rx872_cur, rx872_pos, rx872_tgt) = self."!cursor_start"()
+    rx872_cur."!cursor_debug"("START ", "number")
+    .lex unicode:"$\x{a2}", rx872_cur
+    .local pmc match
+    .lex "$/", match
+    length rx872_eos, rx872_tgt
+    gt rx872_pos, rx872_eos, rx872_done
+    set rx872_off, 0
+    lt rx872_pos, 2, rx872_start
+    sub rx872_off, rx872_pos, 1
+    substr rx872_tgt, rx872_tgt, rx872_off
+  rx872_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan875_done
+    goto rxscan875_scan
+  rxscan875_loop:
+    ($P10) = rx872_cur."from"()
+    inc $P10
+    set rx872_pos, $P10
+    ge rx872_pos, rx872_eos, rxscan875_done
+  rxscan875_scan:
+    set_addr $I10, rxscan875_loop
+    rx872_cur."!mark_push"(0, rx872_pos, $I10)
+  rxscan875_done:
+.annotate 'line', 412
   # rx subcapture "sign"
-    set_addr $I10, rxcap_834_fail
-    rx828_cur."!mark_push"(0, rx828_pos, $I10)
-  # rx rxquantr832 ** 0..1
-    set_addr $I833, rxquantr832_done
-    rx828_cur."!mark_push"(0, rx828_pos, $I833)
-  rxquantr832_loop:
+    set_addr $I10, rxcap_878_fail
+    rx872_cur."!mark_push"(0, rx872_pos, $I10)
+  # rx rxquantr876 ** 0..1
+    set_addr $I877, rxquantr876_done
+    rx872_cur."!mark_push"(0, rx872_pos, $I877)
+  rxquantr876_loop:
   # rx enumcharlist negate=0 
-    ge rx828_pos, rx828_eos, rx828_fail
-    sub $I10, rx828_pos, rx828_off
-    substr $S10, rx828_tgt, $I10, 1
+    ge rx872_pos, rx872_eos, rx872_fail
+    sub $I10, rx872_pos, rx872_off
+    substr $S10, rx872_tgt, $I10, 1
     index $I11, "+-", $S10
-    lt $I11, 0, rx828_fail
-    inc rx828_pos
-    (rx828_rep) = rx828_cur."!mark_commit"($I833)
-  rxquantr832_done:
-    set_addr $I10, rxcap_834_fail
-    ($I12, $I11) = rx828_cur."!mark_peek"($I10)
-    rx828_cur."!cursor_pos"($I11)
-    ($P10) = rx828_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx828_pos, "")
-    rx828_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx872_fail
+    inc rx872_pos
+    (rx872_rep) = rx872_cur."!mark_commit"($I877)
+  rxquantr876_done:
+    set_addr $I10, rxcap_878_fail
+    ($I12, $I11) = rx872_cur."!mark_peek"($I10)
+    rx872_cur."!cursor_pos"($I11)
+    ($P10) = rx872_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx872_pos, "")
+    rx872_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sign")
-    goto rxcap_834_done
-  rxcap_834_fail:
-    goto rx828_fail
-  rxcap_834_done:
-  alt835_0:
-.annotate 'line', 400
-    set_addr $I10, alt835_1
-    rx828_cur."!mark_push"(0, rx828_pos, $I10)
+    goto rxcap_878_done
+  rxcap_878_fail:
+    goto rx872_fail
+  rxcap_878_done:
+  alt879_0:
+.annotate 'line', 413
+    set_addr $I10, alt879_1
+    rx872_cur."!mark_push"(0, rx872_pos, $I10)
   # rx subrule "dec_number" subtype=capture negate=
-    rx828_cur."!cursor_pos"(rx828_pos)
-    $P10 = rx828_cur."dec_number"()
-    unless $P10, rx828_fail
-    rx828_cur."!mark_push"(0, -1, 0, $P10)
+    rx872_cur."!cursor_pos"(rx872_pos)
+    $P10 = rx872_cur."dec_number"()
+    unless $P10, rx872_fail
+    rx872_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("dec_number")
-    rx828_pos = $P10."pos"()
-    goto alt835_end
-  alt835_1:
+    rx872_pos = $P10."pos"()
+    goto alt879_end
+  alt879_1:
   # rx subrule "integer" subtype=capture negate=
-    rx828_cur."!cursor_pos"(rx828_pos)
-    $P10 = rx828_cur."integer"()
-    unless $P10, rx828_fail
-    rx828_cur."!mark_push"(0, -1, 0, $P10)
+    rx872_cur."!cursor_pos"(rx872_pos)
+    $P10 = rx872_cur."integer"()
+    unless $P10, rx872_fail
+    rx872_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("integer")
-    rx828_pos = $P10."pos"()
-  alt835_end:
-.annotate 'line', 398
+    rx872_pos = $P10."pos"()
+  alt879_end:
+.annotate 'line', 411
   # rx pass
-    rx828_cur."!cursor_pass"(rx828_pos, "number")
-    rx828_cur."!cursor_debug"("PASS  ", "number", " at pos=", rx828_pos)
-    .return (rx828_cur)
-  rx828_fail:
+    rx872_cur."!cursor_pass"(rx872_pos, "number")
+    rx872_cur."!cursor_debug"("PASS  ", "number", " at pos=", rx872_pos)
+    .return (rx872_cur)
+  rx872_fail:
 .annotate 'line', 4
-    (rx828_rep, rx828_pos, $I10, $P10) = rx828_cur."!mark_fail"(0)
-    lt rx828_pos, -1, rx828_done
-    eq rx828_pos, -1, rx828_fail
+    (rx872_rep, rx872_pos, $I10, $P10) = rx872_cur."!mark_fail"(0)
+    lt rx872_pos, -1, rx872_done
+    eq rx872_pos, -1, rx872_fail
     jump $I10
-  rx828_done:
-    rx828_cur."!cursor_fail"()
-    rx828_cur."!cursor_debug"("FAIL  ", "number")
-    .return (rx828_cur)
+  rx872_done:
+    rx872_cur."!cursor_fail"()
+    rx872_cur."!cursor_debug"("FAIL  ", "number")
+    .return (rx872_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("192_1274853038.58734") :method
+.sub "!PREFIX__number"  :subid("201_1275811487.95429") :method
 .annotate 'line', 4
-    new $P830, "ResizablePMCArray"
-    push $P830, ""
-    .return ($P830)
+    new $P874, "ResizablePMCArray"
+    push $P874, ""
+    .return ($P874)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("193_1274853038.58734") :method
-.annotate 'line', 403
-    $P837 = self."!protoregex"("quote")
-    .return ($P837)
+.sub "quote"  :subid("202_1275811487.95429") :method
+.annotate 'line', 416
+    $P881 = self."!protoregex"("quote")
+    .return ($P881)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("194_1274853038.58734") :method
-.annotate 'line', 403
-    $P839 = self."!PREFIX__!protoregex"("quote")
-    .return ($P839)
+.sub "!PREFIX__quote"  :subid("203_1275811487.95429") :method
+.annotate 'line', 416
+    $P883 = self."!PREFIX__!protoregex"("quote")
+    .return ($P883)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("195_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "quote:sym<apos>"  :subid("204_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx841_tgt
-    .local int rx841_pos
-    .local int rx841_off
-    .local int rx841_eos
-    .local int rx841_rep
-    .local pmc rx841_cur
-    (rx841_cur, rx841_pos, rx841_tgt) = self."!cursor_start"()
-    rx841_cur."!cursor_debug"("START ", "quote:sym<apos>")
-    .lex unicode:"$\x{a2}", rx841_cur
-    .local pmc match
-    .lex "$/", match
-    length rx841_eos, rx841_tgt
-    set rx841_off, 0
-    lt rx841_pos, 2, rx841_start
-    sub rx841_off, rx841_pos, 1
-    substr rx841_tgt, rx841_tgt, rx841_off
-  rx841_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan844_done
-    goto rxscan844_scan
-  rxscan844_loop:
-    ($P10) = rx841_cur."from"()
-    inc $P10
-    set rx841_pos, $P10
-    ge rx841_pos, rx841_eos, rxscan844_done
-  rxscan844_scan:
-    set_addr $I10, rxscan844_loop
-    rx841_cur."!mark_push"(0, rx841_pos, $I10)
-  rxscan844_done:
-.annotate 'line', 404
+    .local string rx885_tgt
+    .local int rx885_pos
+    .local int rx885_off
+    .local int rx885_eos
+    .local int rx885_rep
+    .local pmc rx885_cur
+    (rx885_cur, rx885_pos, rx885_tgt) = self."!cursor_start"()
+    rx885_cur."!cursor_debug"("START ", "quote:sym<apos>")
+    .lex unicode:"$\x{a2}", rx885_cur
+    .local pmc match
+    .lex "$/", match
+    length rx885_eos, rx885_tgt
+    gt rx885_pos, rx885_eos, rx885_done
+    set rx885_off, 0
+    lt rx885_pos, 2, rx885_start
+    sub rx885_off, rx885_pos, 1
+    substr rx885_tgt, rx885_tgt, rx885_off
+  rx885_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan888_done
+    goto rxscan888_scan
+  rxscan888_loop:
+    ($P10) = rx885_cur."from"()
+    inc $P10
+    set rx885_pos, $P10
+    ge rx885_pos, rx885_eos, rxscan888_done
+  rxscan888_scan:
+    set_addr $I10, rxscan888_loop
+    rx885_cur."!mark_push"(0, rx885_pos, $I10)
+  rxscan888_done:
+.annotate 'line', 417
   # rx enumcharlist negate=0 zerowidth
-    ge rx841_pos, rx841_eos, rx841_fail
-    sub $I10, rx841_pos, rx841_off
-    substr $S10, rx841_tgt, $I10, 1
+    ge rx885_pos, rx885_eos, rx885_fail
+    sub $I10, rx885_pos, rx885_off
+    substr $S10, rx885_tgt, $I10, 1
     index $I11, "'", $S10
-    lt $I11, 0, rx841_fail
+    lt $I11, 0, rx885_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx841_cur."!cursor_pos"(rx841_pos)
-    $P10 = rx841_cur."quote_EXPR"(":q")
-    unless $P10, rx841_fail
-    rx841_cur."!mark_push"(0, -1, 0, $P10)
+    rx885_cur."!cursor_pos"(rx885_pos)
+    $P10 = rx885_cur."quote_EXPR"(":q")
+    unless $P10, rx885_fail
+    rx885_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx841_pos = $P10."pos"()
+    rx885_pos = $P10."pos"()
   # rx pass
-    rx841_cur."!cursor_pass"(rx841_pos, "quote:sym<apos>")
-    rx841_cur."!cursor_debug"("PASS  ", "quote:sym<apos>", " at pos=", rx841_pos)
-    .return (rx841_cur)
-  rx841_fail:
+    rx885_cur."!cursor_pass"(rx885_pos, "quote:sym<apos>")
+    rx885_cur."!cursor_debug"("PASS  ", "quote:sym<apos>", " at pos=", rx885_pos)
+    .return (rx885_cur)
+  rx885_fail:
 .annotate 'line', 4
-    (rx841_rep, rx841_pos, $I10, $P10) = rx841_cur."!mark_fail"(0)
-    lt rx841_pos, -1, rx841_done
-    eq rx841_pos, -1, rx841_fail
+    (rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0)
+    lt rx885_pos, -1, rx885_done
+    eq rx885_pos, -1, rx885_fail
     jump $I10
-  rx841_done:
-    rx841_cur."!cursor_fail"()
-    rx841_cur."!cursor_debug"("FAIL  ", "quote:sym<apos>")
-    .return (rx841_cur)
+  rx885_done:
+    rx885_cur."!cursor_fail"()
+    rx885_cur."!cursor_debug"("FAIL  ", "quote:sym<apos>")
+    .return (rx885_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("196_1274853038.58734") :method
+.sub "!PREFIX__quote:sym<apos>"  :subid("205_1275811487.95429") :method
 .annotate 'line', 4
-    new $P843, "ResizablePMCArray"
-    push $P843, "'"
-    .return ($P843)
+    new $P887, "ResizablePMCArray"
+    push $P887, "'"
+    .return ($P887)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("197_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "quote:sym<dblq>"  :subid("206_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx846_tgt
-    .local int rx846_pos
-    .local int rx846_off
-    .local int rx846_eos
-    .local int rx846_rep
-    .local pmc rx846_cur
-    (rx846_cur, rx846_pos, rx846_tgt) = self."!cursor_start"()
-    rx846_cur."!cursor_debug"("START ", "quote:sym<dblq>")
-    .lex unicode:"$\x{a2}", rx846_cur
+    .local string rx890_tgt
+    .local int rx890_pos
+    .local int rx890_off
+    .local int rx890_eos
+    .local int rx890_rep
+    .local pmc rx890_cur
+    (rx890_cur, rx890_pos, rx890_tgt) = self."!cursor_start"()
+    rx890_cur."!cursor_debug"("START ", "quote:sym<dblq>")
+    .lex unicode:"$\x{a2}", rx890_cur
     .local pmc match
     .lex "$/", match
-    length rx846_eos, rx846_tgt
-    set rx846_off, 0
-    lt rx846_pos, 2, rx846_start
-    sub rx846_off, rx846_pos, 1
-    substr rx846_tgt, rx846_tgt, rx846_off
-  rx846_start:
+    length rx890_eos, rx890_tgt
+    gt rx890_pos, rx890_eos, rx890_done
+    set rx890_off, 0
+    lt rx890_pos, 2, rx890_start
+    sub rx890_off, rx890_pos, 1
+    substr rx890_tgt, rx890_tgt, rx890_off
+  rx890_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan849_done
-    goto rxscan849_scan
-  rxscan849_loop:
-    ($P10) = rx846_cur."from"()
+    ne $I10, -1, rxscan893_done
+    goto rxscan893_scan
+  rxscan893_loop:
+    ($P10) = rx890_cur."from"()
     inc $P10
-    set rx846_pos, $P10
-    ge rx846_pos, rx846_eos, rxscan849_done
-  rxscan849_scan:
-    set_addr $I10, rxscan849_loop
-    rx846_cur."!mark_push"(0, rx846_pos, $I10)
-  rxscan849_done:
-.annotate 'line', 405
+    set rx890_pos, $P10
+    ge rx890_pos, rx890_eos, rxscan893_done
+  rxscan893_scan:
+    set_addr $I10, rxscan893_loop
+    rx890_cur."!mark_push"(0, rx890_pos, $I10)
+  rxscan893_done:
+.annotate 'line', 418
   # rx enumcharlist negate=0 zerowidth
-    ge rx846_pos, rx846_eos, rx846_fail
-    sub $I10, rx846_pos, rx846_off
-    substr $S10, rx846_tgt, $I10, 1
+    ge rx890_pos, rx890_eos, rx890_fail
+    sub $I10, rx890_pos, rx890_off
+    substr $S10, rx890_tgt, $I10, 1
     index $I11, "\"", $S10
-    lt $I11, 0, rx846_fail
+    lt $I11, 0, rx890_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx846_cur."!cursor_pos"(rx846_pos)
-    $P10 = rx846_cur."quote_EXPR"(":qq")
-    unless $P10, rx846_fail
-    rx846_cur."!mark_push"(0, -1, 0, $P10)
+    rx890_cur."!cursor_pos"(rx890_pos)
+    $P10 = rx890_cur."quote_EXPR"(":qq")
+    unless $P10, rx890_fail
+    rx890_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx846_pos = $P10."pos"()
+    rx890_pos = $P10."pos"()
   # rx pass
-    rx846_cur."!cursor_pass"(rx846_pos, "quote:sym<dblq>")
-    rx846_cur."!cursor_debug"("PASS  ", "quote:sym<dblq>", " at pos=", rx846_pos)
-    .return (rx846_cur)
-  rx846_fail:
+    rx890_cur."!cursor_pass"(rx890_pos, "quote:sym<dblq>")
+    rx890_cur."!cursor_debug"("PASS  ", "quote:sym<dblq>", " at pos=", rx890_pos)
+    .return (rx890_cur)
+  rx890_fail:
 .annotate 'line', 4
-    (rx846_rep, rx846_pos, $I10, $P10) = rx846_cur."!mark_fail"(0)
-    lt rx846_pos, -1, rx846_done
-    eq rx846_pos, -1, rx846_fail
+    (rx890_rep, rx890_pos, $I10, $P10) = rx890_cur."!mark_fail"(0)
+    lt rx890_pos, -1, rx890_done
+    eq rx890_pos, -1, rx890_fail
     jump $I10
-  rx846_done:
-    rx846_cur."!cursor_fail"()
-    rx846_cur."!cursor_debug"("FAIL  ", "quote:sym<dblq>")
-    .return (rx846_cur)
+  rx890_done:
+    rx890_cur."!cursor_fail"()
+    rx890_cur."!cursor_debug"("FAIL  ", "quote:sym<dblq>")
+    .return (rx890_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>"  :subid("198_1274853038.58734") :method
+.sub "!PREFIX__quote:sym<dblq>"  :subid("207_1275811487.95429") :method
 .annotate 'line', 4
-    new $P848, "ResizablePMCArray"
-    push $P848, "\""
-    .return ($P848)
+    new $P892, "ResizablePMCArray"
+    push $P892, "\""
+    .return ($P892)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>"  :subid("199_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "quote:sym<q>"  :subid("208_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx851_tgt
-    .local int rx851_pos
-    .local int rx851_off
-    .local int rx851_eos
-    .local int rx851_rep
-    .local pmc rx851_cur
-    (rx851_cur, rx851_pos, rx851_tgt) = self."!cursor_start"()
-    rx851_cur."!cursor_debug"("START ", "quote:sym<q>")
-    .lex unicode:"$\x{a2}", rx851_cur
+    .local string rx895_tgt
+    .local int rx895_pos
+    .local int rx895_off
+    .local int rx895_eos
+    .local int rx895_rep
+    .local pmc rx895_cur
+    (rx895_cur, rx895_pos, rx895_tgt) = self."!cursor_start"()
+    rx895_cur."!cursor_debug"("START ", "quote:sym<q>")
+    .lex unicode:"$\x{a2}", rx895_cur
     .local pmc match
     .lex "$/", match
-    length rx851_eos, rx851_tgt
-    set rx851_off, 0
-    lt rx851_pos, 2, rx851_start
-    sub rx851_off, rx851_pos, 1
-    substr rx851_tgt, rx851_tgt, rx851_off
-  rx851_start:
+    length rx895_eos, rx895_tgt
+    gt rx895_pos, rx895_eos, rx895_done
+    set rx895_off, 0
+    lt rx895_pos, 2, rx895_start
+    sub rx895_off, rx895_pos, 1
+    substr rx895_tgt, rx895_tgt, rx895_off
+  rx895_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan855_done
-    goto rxscan855_scan
-  rxscan855_loop:
-    ($P10) = rx851_cur."from"()
+    ne $I10, -1, rxscan899_done
+    goto rxscan899_scan
+  rxscan899_loop:
+    ($P10) = rx895_cur."from"()
     inc $P10
-    set rx851_pos, $P10
-    ge rx851_pos, rx851_eos, rxscan855_done
-  rxscan855_scan:
-    set_addr $I10, rxscan855_loop
-    rx851_cur."!mark_push"(0, rx851_pos, $I10)
-  rxscan855_done:
-.annotate 'line', 406
+    set rx895_pos, $P10
+    ge rx895_pos, rx895_eos, rxscan899_done
+  rxscan899_scan:
+    set_addr $I10, rxscan899_loop
+    rx895_cur."!mark_push"(0, rx895_pos, $I10)
+  rxscan899_done:
+.annotate 'line', 419
   # rx literal  "q"
-    add $I11, rx851_pos, 1
-    gt $I11, rx851_eos, rx851_fail
-    sub $I11, rx851_pos, rx851_off
-    substr $S10, rx851_tgt, $I11, 1
-    ne $S10, "q", rx851_fail
-    add rx851_pos, 1
+    add $I11, rx895_pos, 1
+    gt $I11, rx895_eos, rx895_fail
+    sub $I11, rx895_pos, rx895_off
+    substr $S10, rx895_tgt, $I11, 1
+    ne $S10, "q", rx895_fail
+    add rx895_pos, 1
   # rxanchor rwb
-    le rx851_pos, 0, rx851_fail
-    sub $I10, rx851_pos, rx851_off
-    is_cclass $I11, 8192, rx851_tgt, $I10
-    if $I11, rx851_fail
+    le rx895_pos, 0, rx895_fail
+    sub $I10, rx895_pos, rx895_off
+    is_cclass $I11, 8192, rx895_tgt, $I10
+    if $I11, rx895_fail
     dec $I10
-    is_cclass $I11, 8192, rx851_tgt, $I10
-    unless $I11, rx851_fail
+    is_cclass $I11, 8192, rx895_tgt, $I10
+    unless $I11, rx895_fail
   # rx enumcharlist negate=1 zerowidth
-    ge rx851_pos, rx851_eos, rx851_fail
-    sub $I10, rx851_pos, rx851_off
-    substr $S10, rx851_tgt, $I10, 1
+    ge rx895_pos, rx895_eos, rx895_fail
+    sub $I10, rx895_pos, rx895_off
+    substr $S10, rx895_tgt, $I10, 1
     index $I11, "(", $S10
-    ge $I11, 0, rx851_fail
+    ge $I11, 0, rx895_fail
   # rx subrule "ws" subtype=method negate=
-    rx851_cur."!cursor_pos"(rx851_pos)
-    $P10 = rx851_cur."ws"()
-    unless $P10, rx851_fail
-    rx851_pos = $P10."pos"()
+    rx895_cur."!cursor_pos"(rx895_pos)
+    $P10 = rx895_cur."ws"()
+    unless $P10, rx895_fail
+    rx895_pos = $P10."pos"()
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx851_cur."!cursor_pos"(rx851_pos)
-    $P10 = rx851_cur."quote_EXPR"(":q")
-    unless $P10, rx851_fail
-    rx851_cur."!mark_push"(0, -1, 0, $P10)
+    rx895_cur."!cursor_pos"(rx895_pos)
+    $P10 = rx895_cur."quote_EXPR"(":q")
+    unless $P10, rx895_fail
+    rx895_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx851_pos = $P10."pos"()
+    rx895_pos = $P10."pos"()
   # rx pass
-    rx851_cur."!cursor_pass"(rx851_pos, "quote:sym<q>")
-    rx851_cur."!cursor_debug"("PASS  ", "quote:sym<q>", " at pos=", rx851_pos)
-    .return (rx851_cur)
-  rx851_fail:
+    rx895_cur."!cursor_pass"(rx895_pos, "quote:sym<q>")
+    rx895_cur."!cursor_debug"("PASS  ", "quote:sym<q>", " at pos=", rx895_pos)
+    .return (rx895_cur)
+  rx895_fail:
 .annotate 'line', 4
-    (rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0)
-    lt rx851_pos, -1, rx851_done
-    eq rx851_pos, -1, rx851_fail
+    (rx895_rep, rx895_pos, $I10, $P10) = rx895_cur."!mark_fail"(0)
+    lt rx895_pos, -1, rx895_done
+    eq rx895_pos, -1, rx895_fail
     jump $I10
-  rx851_done:
-    rx851_cur."!cursor_fail"()
-    rx851_cur."!cursor_debug"("FAIL  ", "quote:sym<q>")
-    .return (rx851_cur)
+  rx895_done:
+    rx895_cur."!cursor_fail"()
+    rx895_cur."!cursor_debug"("FAIL  ", "quote:sym<q>")
+    .return (rx895_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>"  :subid("200_1274853038.58734") :method
+.sub "!PREFIX__quote:sym<q>"  :subid("209_1275811487.95429") :method
 .annotate 'line', 4
-    $P853 = self."!PREFIX__!subrule"("", "q")
-    new $P854, "ResizablePMCArray"
-    push $P854, $P853
-    .return ($P854)
+    $P897 = self."!PREFIX__!subrule"("ws", "q")
+    new $P898, "ResizablePMCArray"
+    push $P898, $P897
+    .return ($P898)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>"  :subid("201_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "quote:sym<qq>"  :subid("210_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx857_tgt
-    .local int rx857_pos
-    .local int rx857_off
-    .local int rx857_eos
-    .local int rx857_rep
-    .local pmc rx857_cur
-    (rx857_cur, rx857_pos, rx857_tgt) = self."!cursor_start"()
-    rx857_cur."!cursor_debug"("START ", "quote:sym<qq>")
-    .lex unicode:"$\x{a2}", rx857_cur
-    .local pmc match
-    .lex "$/", match
-    length rx857_eos, rx857_tgt
-    set rx857_off, 0
-    lt rx857_pos, 2, rx857_start
-    sub rx857_off, rx857_pos, 1
-    substr rx857_tgt, rx857_tgt, rx857_off
-  rx857_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan861_done
-    goto rxscan861_scan
-  rxscan861_loop:
-    ($P10) = rx857_cur."from"()
-    inc $P10
-    set rx857_pos, $P10
-    ge rx857_pos, rx857_eos, rxscan861_done
-  rxscan861_scan:
-    set_addr $I10, rxscan861_loop
-    rx857_cur."!mark_push"(0, rx857_pos, $I10)
-  rxscan861_done:
-.annotate 'line', 407
+    .local string rx901_tgt
+    .local int rx901_pos
+    .local int rx901_off
+    .local int rx901_eos
+    .local int rx901_rep
+    .local pmc rx901_cur
+    (rx901_cur, rx901_pos, rx901_tgt) = self."!cursor_start"()
+    rx901_cur."!cursor_debug"("START ", "quote:sym<qq>")
+    .lex unicode:"$\x{a2}", rx901_cur
+    .local pmc match
+    .lex "$/", match
+    length rx901_eos, rx901_tgt
+    gt rx901_pos, rx901_eos, rx901_done
+    set rx901_off, 0
+    lt rx901_pos, 2, rx901_start
+    sub rx901_off, rx901_pos, 1
+    substr rx901_tgt, rx901_tgt, rx901_off
+  rx901_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan905_done
+    goto rxscan905_scan
+  rxscan905_loop:
+    ($P10) = rx901_cur."from"()
+    inc $P10
+    set rx901_pos, $P10
+    ge rx901_pos, rx901_eos, rxscan905_done
+  rxscan905_scan:
+    set_addr $I10, rxscan905_loop
+    rx901_cur."!mark_push"(0, rx901_pos, $I10)
+  rxscan905_done:
+.annotate 'line', 420
   # rx literal  "qq"
-    add $I11, rx857_pos, 2
-    gt $I11, rx857_eos, rx857_fail
-    sub $I11, rx857_pos, rx857_off
-    substr $S10, rx857_tgt, $I11, 2
-    ne $S10, "qq", rx857_fail
-    add rx857_pos, 2
+    add $I11, rx901_pos, 2
+    gt $I11, rx901_eos, rx901_fail
+    sub $I11, rx901_pos, rx901_off
+    substr $S10, rx901_tgt, $I11, 2
+    ne $S10, "qq", rx901_fail
+    add rx901_pos, 2
   # rxanchor rwb
-    le rx857_pos, 0, rx857_fail
-    sub $I10, rx857_pos, rx857_off
-    is_cclass $I11, 8192, rx857_tgt, $I10
-    if $I11, rx857_fail
+    le rx901_pos, 0, rx901_fail
+    sub $I10, rx901_pos, rx901_off
+    is_cclass $I11, 8192, rx901_tgt, $I10
+    if $I11, rx901_fail
     dec $I10
-    is_cclass $I11, 8192, rx857_tgt, $I10
-    unless $I11, rx857_fail
+    is_cclass $I11, 8192, rx901_tgt, $I10
+    unless $I11, rx901_fail
   # rx enumcharlist negate=1 zerowidth
-    ge rx857_pos, rx857_eos, rx857_fail
-    sub $I10, rx857_pos, rx857_off
-    substr $S10, rx857_tgt, $I10, 1
+    ge rx901_pos, rx901_eos, rx901_fail
+    sub $I10, rx901_pos, rx901_off
+    substr $S10, rx901_tgt, $I10, 1
     index $I11, "(", $S10
-    ge $I11, 0, rx857_fail
+    ge $I11, 0, rx901_fail
   # rx subrule "ws" subtype=method negate=
-    rx857_cur."!cursor_pos"(rx857_pos)
-    $P10 = rx857_cur."ws"()
-    unless $P10, rx857_fail
-    rx857_pos = $P10."pos"()
+    rx901_cur."!cursor_pos"(rx901_pos)
+    $P10 = rx901_cur."ws"()
+    unless $P10, rx901_fail
+    rx901_pos = $P10."pos"()
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx857_cur."!cursor_pos"(rx857_pos)
-    $P10 = rx857_cur."quote_EXPR"(":qq")
-    unless $P10, rx857_fail
-    rx857_cur."!mark_push"(0, -1, 0, $P10)
+    rx901_cur."!cursor_pos"(rx901_pos)
+    $P10 = rx901_cur."quote_EXPR"(":qq")
+    unless $P10, rx901_fail
+    rx901_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx857_pos = $P10."pos"()
+    rx901_pos = $P10."pos"()
   # rx pass
-    rx857_cur."!cursor_pass"(rx857_pos, "quote:sym<qq>")
-    rx857_cur."!cursor_debug"("PASS  ", "quote:sym<qq>", " at pos=", rx857_pos)
-    .return (rx857_cur)
-  rx857_fail:
+    rx901_cur."!cursor_pass"(rx901_pos, "quote:sym<qq>")
+    rx901_cur."!cursor_debug"("PASS  ", "quote:sym<qq>", " at pos=", rx901_pos)
+    .return (rx901_cur)
+  rx901_fail:
 .annotate 'line', 4
-    (rx857_rep, rx857_pos, $I10, $P10) = rx857_cur."!mark_fail"(0)
-    lt rx857_pos, -1, rx857_done
-    eq rx857_pos, -1, rx857_fail
+    (rx901_rep, rx901_pos, $I10, $P10) = rx901_cur."!mark_fail"(0)
+    lt rx901_pos, -1, rx901_done
+    eq rx901_pos, -1, rx901_fail
     jump $I10
-  rx857_done:
-    rx857_cur."!cursor_fail"()
-    rx857_cur."!cursor_debug"("FAIL  ", "quote:sym<qq>")
-    .return (rx857_cur)
+  rx901_done:
+    rx901_cur."!cursor_fail"()
+    rx901_cur."!cursor_debug"("FAIL  ", "quote:sym<qq>")
+    .return (rx901_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>"  :subid("202_1274853038.58734") :method
+.sub "!PREFIX__quote:sym<qq>"  :subid("211_1275811487.95429") :method
 .annotate 'line', 4
-    $P859 = self."!PREFIX__!subrule"("", "qq")
-    new $P860, "ResizablePMCArray"
-    push $P860, $P859
-    .return ($P860)
+    $P903 = self."!PREFIX__!subrule"("ws", "qq")
+    new $P904, "ResizablePMCArray"
+    push $P904, $P903
+    .return ($P904)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>"  :subid("203_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "quote:sym<Q>"  :subid("212_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx863_tgt
-    .local int rx863_pos
-    .local int rx863_off
-    .local int rx863_eos
-    .local int rx863_rep
-    .local pmc rx863_cur
-    (rx863_cur, rx863_pos, rx863_tgt) = self."!cursor_start"()
-    rx863_cur."!cursor_debug"("START ", "quote:sym<Q>")
-    .lex unicode:"$\x{a2}", rx863_cur
+    .local string rx907_tgt
+    .local int rx907_pos
+    .local int rx907_off
+    .local int rx907_eos
+    .local int rx907_rep
+    .local pmc rx907_cur
+    (rx907_cur, rx907_pos, rx907_tgt) = self."!cursor_start"()
+    rx907_cur."!cursor_debug"("START ", "quote:sym<Q>")
+    .lex unicode:"$\x{a2}", rx907_cur
     .local pmc match
     .lex "$/", match
-    length rx863_eos, rx863_tgt
-    set rx863_off, 0
-    lt rx863_pos, 2, rx863_start
-    sub rx863_off, rx863_pos, 1
-    substr rx863_tgt, rx863_tgt, rx863_off
-  rx863_start:
+    length rx907_eos, rx907_tgt
+    gt rx907_pos, rx907_eos, rx907_done
+    set rx907_off, 0
+    lt rx907_pos, 2, rx907_start
+    sub rx907_off, rx907_pos, 1
+    substr rx907_tgt, rx907_tgt, rx907_off
+  rx907_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan867_done
-    goto rxscan867_scan
-  rxscan867_loop:
-    ($P10) = rx863_cur."from"()
+    ne $I10, -1, rxscan911_done
+    goto rxscan911_scan
+  rxscan911_loop:
+    ($P10) = rx907_cur."from"()
     inc $P10
-    set rx863_pos, $P10
-    ge rx863_pos, rx863_eos, rxscan867_done
-  rxscan867_scan:
-    set_addr $I10, rxscan867_loop
-    rx863_cur."!mark_push"(0, rx863_pos, $I10)
-  rxscan867_done:
-.annotate 'line', 408
+    set rx907_pos, $P10
+    ge rx907_pos, rx907_eos, rxscan911_done
+  rxscan911_scan:
+    set_addr $I10, rxscan911_loop
+    rx907_cur."!mark_push"(0, rx907_pos, $I10)
+  rxscan911_done:
+.annotate 'line', 421
   # rx literal  "Q"
-    add $I11, rx863_pos, 1
-    gt $I11, rx863_eos, rx863_fail
-    sub $I11, rx863_pos, rx863_off
-    substr $S10, rx863_tgt, $I11, 1
-    ne $S10, "Q", rx863_fail
-    add rx863_pos, 1
+    add $I11, rx907_pos, 1
+    gt $I11, rx907_eos, rx907_fail
+    sub $I11, rx907_pos, rx907_off
+    substr $S10, rx907_tgt, $I11, 1
+    ne $S10, "Q", rx907_fail
+    add rx907_pos, 1
   # rxanchor rwb
-    le rx863_pos, 0, rx863_fail
-    sub $I10, rx863_pos, rx863_off
-    is_cclass $I11, 8192, rx863_tgt, $I10
-    if $I11, rx863_fail
+    le rx907_pos, 0, rx907_fail
+    sub $I10, rx907_pos, rx907_off
+    is_cclass $I11, 8192, rx907_tgt, $I10
+    if $I11, rx907_fail
     dec $I10
-    is_cclass $I11, 8192, rx863_tgt, $I10
-    unless $I11, rx863_fail
+    is_cclass $I11, 8192, rx907_tgt, $I10
+    unless $I11, rx907_fail
   # rx enumcharlist negate=1 zerowidth
-    ge rx863_pos, rx863_eos, rx863_fail
-    sub $I10, rx863_pos, rx863_off
-    substr $S10, rx863_tgt, $I10, 1
+    ge rx907_pos, rx907_eos, rx907_fail
+    sub $I10, rx907_pos, rx907_off
+    substr $S10, rx907_tgt, $I10, 1
     index $I11, "(", $S10
-    ge $I11, 0, rx863_fail
+    ge $I11, 0, rx907_fail
   # rx subrule "ws" subtype=method negate=
-    rx863_cur."!cursor_pos"(rx863_pos)
-    $P10 = rx863_cur."ws"()
-    unless $P10, rx863_fail
-    rx863_pos = $P10."pos"()
+    rx907_cur."!cursor_pos"(rx907_pos)
+    $P10 = rx907_cur."ws"()
+    unless $P10, rx907_fail
+    rx907_pos = $P10."pos"()
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx863_cur."!cursor_pos"(rx863_pos)
-    $P10 = rx863_cur."quote_EXPR"()
-    unless $P10, rx863_fail
-    rx863_cur."!mark_push"(0, -1, 0, $P10)
+    rx907_cur."!cursor_pos"(rx907_pos)
+    $P10 = rx907_cur."quote_EXPR"()
+    unless $P10, rx907_fail
+    rx907_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx863_pos = $P10."pos"()
+    rx907_pos = $P10."pos"()
   # rx pass
-    rx863_cur."!cursor_pass"(rx863_pos, "quote:sym<Q>")
-    rx863_cur."!cursor_debug"("PASS  ", "quote:sym<Q>", " at pos=", rx863_pos)
-    .return (rx863_cur)
-  rx863_fail:
+    rx907_cur."!cursor_pass"(rx907_pos, "quote:sym<Q>")
+    rx907_cur."!cursor_debug"("PASS  ", "quote:sym<Q>", " at pos=", rx907_pos)
+    .return (rx907_cur)
+  rx907_fail:
 .annotate 'line', 4
-    (rx863_rep, rx863_pos, $I10, $P10) = rx863_cur."!mark_fail"(0)
-    lt rx863_pos, -1, rx863_done
-    eq rx863_pos, -1, rx863_fail
+    (rx907_rep, rx907_pos, $I10, $P10) = rx907_cur."!mark_fail"(0)
+    lt rx907_pos, -1, rx907_done
+    eq rx907_pos, -1, rx907_fail
     jump $I10
-  rx863_done:
-    rx863_cur."!cursor_fail"()
-    rx863_cur."!cursor_debug"("FAIL  ", "quote:sym<Q>")
-    .return (rx863_cur)
+  rx907_done:
+    rx907_cur."!cursor_fail"()
+    rx907_cur."!cursor_debug"("FAIL  ", "quote:sym<Q>")
+    .return (rx907_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>"  :subid("204_1274853038.58734") :method
+.sub "!PREFIX__quote:sym<Q>"  :subid("213_1275811487.95429") :method
 .annotate 'line', 4
-    $P865 = self."!PREFIX__!subrule"("", "Q")
-    new $P866, "ResizablePMCArray"
-    push $P866, $P865
-    .return ($P866)
+    $P909 = self."!PREFIX__!subrule"("ws", "Q")
+    new $P910, "ResizablePMCArray"
+    push $P910, $P909
+    .return ($P910)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>"  :subid("205_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "quote:sym<Q:PIR>"  :subid("214_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx869_tgt
-    .local int rx869_pos
-    .local int rx869_off
-    .local int rx869_eos
-    .local int rx869_rep
-    .local pmc rx869_cur
-    (rx869_cur, rx869_pos, rx869_tgt) = self."!cursor_start"()
-    rx869_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
-    .lex unicode:"$\x{a2}", rx869_cur
+    .local string rx913_tgt
+    .local int rx913_pos
+    .local int rx913_off
+    .local int rx913_eos
+    .local int rx913_rep
+    .local pmc rx913_cur
+    (rx913_cur, rx913_pos, rx913_tgt) = self."!cursor_start"()
+    rx913_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+    .lex unicode:"$\x{a2}", rx913_cur
     .local pmc match
     .lex "$/", match
-    length rx869_eos, rx869_tgt
-    set rx869_off, 0
-    lt rx869_pos, 2, rx869_start
-    sub rx869_off, rx869_pos, 1
-    substr rx869_tgt, rx869_tgt, rx869_off
-  rx869_start:
+    length rx913_eos, rx913_tgt
+    gt rx913_pos, rx913_eos, rx913_done
+    set rx913_off, 0
+    lt rx913_pos, 2, rx913_start
+    sub rx913_off, rx913_pos, 1
+    substr rx913_tgt, rx913_tgt, rx913_off
+  rx913_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan873_done
-    goto rxscan873_scan
-  rxscan873_loop:
-    ($P10) = rx869_cur."from"()
+    ne $I10, -1, rxscan917_done
+    goto rxscan917_scan
+  rxscan917_loop:
+    ($P10) = rx913_cur."from"()
     inc $P10
-    set rx869_pos, $P10
-    ge rx869_pos, rx869_eos, rxscan873_done
-  rxscan873_scan:
-    set_addr $I10, rxscan873_loop
-    rx869_cur."!mark_push"(0, rx869_pos, $I10)
-  rxscan873_done:
-.annotate 'line', 409
+    set rx913_pos, $P10
+    ge rx913_pos, rx913_eos, rxscan917_done
+  rxscan917_scan:
+    set_addr $I10, rxscan917_loop
+    rx913_cur."!mark_push"(0, rx913_pos, $I10)
+  rxscan917_done:
+.annotate 'line', 422
   # rx literal  "Q:PIR"
-    add $I11, rx869_pos, 5
-    gt $I11, rx869_eos, rx869_fail
-    sub $I11, rx869_pos, rx869_off
-    substr $S10, rx869_tgt, $I11, 5
-    ne $S10, "Q:PIR", rx869_fail
-    add rx869_pos, 5
-  # rx subrule "ws" subtype=method negate=
-    rx869_cur."!cursor_pos"(rx869_pos)
-    $P10 = rx869_cur."ws"()
-    unless $P10, rx869_fail
-    rx869_pos = $P10."pos"()
+    add $I11, rx913_pos, 5
+    gt $I11, rx913_eos, rx913_fail
+    sub $I11, rx913_pos, rx913_off
+    substr $S10, rx913_tgt, $I11, 5
+    ne $S10, "Q:PIR", rx913_fail
+    add rx913_pos, 5
+  # rx subrule "ws" subtype=method negate=
+    rx913_cur."!cursor_pos"(rx913_pos)
+    $P10 = rx913_cur."ws"()
+    unless $P10, rx913_fail
+    rx913_pos = $P10."pos"()
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx869_cur."!cursor_pos"(rx869_pos)
-    $P10 = rx869_cur."quote_EXPR"()
-    unless $P10, rx869_fail
-    rx869_cur."!mark_push"(0, -1, 0, $P10)
+    rx913_cur."!cursor_pos"(rx913_pos)
+    $P10 = rx913_cur."quote_EXPR"()
+    unless $P10, rx913_fail
+    rx913_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx869_pos = $P10."pos"()
+    rx913_pos = $P10."pos"()
   # rx pass
-    rx869_cur."!cursor_pass"(rx869_pos, "quote:sym<Q:PIR>")
-    rx869_cur."!cursor_debug"("PASS  ", "quote:sym<Q:PIR>", " at pos=", rx869_pos)
-    .return (rx869_cur)
-  rx869_fail:
+    rx913_cur."!cursor_pass"(rx913_pos, "quote:sym<Q:PIR>")
+    rx913_cur."!cursor_debug"("PASS  ", "quote:sym<Q:PIR>", " at pos=", rx913_pos)
+    .return (rx913_cur)
+  rx913_fail:
 .annotate 'line', 4
-    (rx869_rep, rx869_pos, $I10, $P10) = rx869_cur."!mark_fail"(0)
-    lt rx869_pos, -1, rx869_done
-    eq rx869_pos, -1, rx869_fail
+    (rx913_rep, rx913_pos, $I10, $P10) = rx913_cur."!mark_fail"(0)
+    lt rx913_pos, -1, rx913_done
+    eq rx913_pos, -1, rx913_fail
     jump $I10
-  rx869_done:
-    rx869_cur."!cursor_fail"()
-    rx869_cur."!cursor_debug"("FAIL  ", "quote:sym<Q:PIR>")
-    .return (rx869_cur)
+  rx913_done:
+    rx913_cur."!cursor_fail"()
+    rx913_cur."!cursor_debug"("FAIL  ", "quote:sym<Q:PIR>")
+    .return (rx913_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("206_1274853038.58734") :method
+.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("215_1275811487.95429") :method
 .annotate 'line', 4
-    $P871 = self."!PREFIX__!subrule"("", "Q:PIR")
-    new $P872, "ResizablePMCArray"
-    push $P872, $P871
-    .return ($P872)
+    $P915 = self."!PREFIX__!subrule"("ws", "Q:PIR")
+    new $P916, "ResizablePMCArray"
+    push $P916, $P915
+    .return ($P916)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />"  :subid("207_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "quote:sym</ />"  :subid("216_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx875_tgt
-    .local int rx875_pos
-    .local int rx875_off
-    .local int rx875_eos
-    .local int rx875_rep
-    .local pmc rx875_cur
-    (rx875_cur, rx875_pos, rx875_tgt) = self."!cursor_start"()
-    rx875_cur."!cursor_debug"("START ", "quote:sym</ />")
-    .lex unicode:"$\x{a2}", rx875_cur
+    .local string rx919_tgt
+    .local int rx919_pos
+    .local int rx919_off
+    .local int rx919_eos
+    .local int rx919_rep
+    .local pmc rx919_cur
+    (rx919_cur, rx919_pos, rx919_tgt) = self."!cursor_start"()
+    rx919_cur."!cursor_debug"("START ", "quote:sym</ />")
+    .lex unicode:"$\x{a2}", rx919_cur
     .local pmc match
     .lex "$/", match
-    length rx875_eos, rx875_tgt
-    set rx875_off, 0
-    lt rx875_pos, 2, rx875_start
-    sub rx875_off, rx875_pos, 1
-    substr rx875_tgt, rx875_tgt, rx875_off
-  rx875_start:
+    length rx919_eos, rx919_tgt
+    gt rx919_pos, rx919_eos, rx919_done
+    set rx919_off, 0
+    lt rx919_pos, 2, rx919_start
+    sub rx919_off, rx919_pos, 1
+    substr rx919_tgt, rx919_tgt, rx919_off
+  rx919_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan879_done
-    goto rxscan879_scan
-  rxscan879_loop:
-    ($P10) = rx875_cur."from"()
+    ne $I10, -1, rxscan923_done
+    goto rxscan923_scan
+  rxscan923_loop:
+    ($P10) = rx919_cur."from"()
     inc $P10
-    set rx875_pos, $P10
-    ge rx875_pos, rx875_eos, rxscan879_done
-  rxscan879_scan:
-    set_addr $I10, rxscan879_loop
-    rx875_cur."!mark_push"(0, rx875_pos, $I10)
-  rxscan879_done:
-.annotate 'line', 411
+    set rx919_pos, $P10
+    ge rx919_pos, rx919_eos, rxscan923_done
+  rxscan923_scan:
+    set_addr $I10, rxscan923_loop
+    rx919_cur."!mark_push"(0, rx919_pos, $I10)
+  rxscan923_done:
+.annotate 'line', 424
   # rx literal  "/"
-    add $I11, rx875_pos, 1
-    gt $I11, rx875_eos, rx875_fail
-    sub $I11, rx875_pos, rx875_off
-    substr $S10, rx875_tgt, $I11, 1
-    ne $S10, "/", rx875_fail
-    add rx875_pos, 1
-.annotate 'line', 412
+    add $I11, rx919_pos, 1
+    gt $I11, rx919_eos, rx919_fail
+    sub $I11, rx919_pos, rx919_off
+    substr $S10, rx919_tgt, $I11, 1
+    ne $S10, "/", rx919_fail
+    add rx919_pos, 1
+.annotate 'line', 425
   # rx subrule "newpad" subtype=method negate=
-    rx875_cur."!cursor_pos"(rx875_pos)
-    $P10 = rx875_cur."newpad"()
-    unless $P10, rx875_fail
-    rx875_pos = $P10."pos"()
-.annotate 'line', 413
+    rx919_cur."!cursor_pos"(rx919_pos)
+    $P10 = rx919_cur."newpad"()
+    unless $P10, rx919_fail
+    rx919_pos = $P10."pos"()
+.annotate 'line', 426
   # rx reduce name="quote:sym</ />" key="open"
-    rx875_cur."!cursor_pos"(rx875_pos)
-    rx875_cur."!reduce"("quote:sym</ />", "open")
-.annotate 'line', 414
+    rx919_cur."!cursor_pos"(rx919_pos)
+    rx919_cur."!reduce"("quote:sym</ />", "open")
+.annotate 'line', 427
   # rx subrule "LANG" subtype=capture negate=
-    rx875_cur."!cursor_pos"(rx875_pos)
-    $P10 = rx875_cur."LANG"("Regex", "nibbler")
-    unless $P10, rx875_fail
-    rx875_cur."!mark_push"(0, -1, 0, $P10)
+    rx919_cur."!cursor_pos"(rx919_pos)
+    $P10 = rx919_cur."LANG"("Regex", "nibbler")
+    unless $P10, rx919_fail
+    rx919_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("p6regex")
-    rx875_pos = $P10."pos"()
-.annotate 'line', 415
+    rx919_pos = $P10."pos"()
+.annotate 'line', 428
   # rx literal  "/"
-    add $I11, rx875_pos, 1
-    gt $I11, rx875_eos, rx875_fail
-    sub $I11, rx875_pos, rx875_off
-    substr $S10, rx875_tgt, $I11, 1
-    ne $S10, "/", rx875_fail
-    add rx875_pos, 1
-.annotate 'line', 410
+    add $I11, rx919_pos, 1
+    gt $I11, rx919_eos, rx919_fail
+    sub $I11, rx919_pos, rx919_off
+    substr $S10, rx919_tgt, $I11, 1
+    ne $S10, "/", rx919_fail
+    add rx919_pos, 1
+.annotate 'line', 423
   # rx pass
-    rx875_cur."!cursor_pass"(rx875_pos, "quote:sym</ />")
-    rx875_cur."!cursor_debug"("PASS  ", "quote:sym</ />", " at pos=", rx875_pos)
-    .return (rx875_cur)
-  rx875_fail:
+    rx919_cur."!cursor_pass"(rx919_pos, "quote:sym</ />")
+    rx919_cur."!cursor_debug"("PASS  ", "quote:sym</ />", " at pos=", rx919_pos)
+    .return (rx919_cur)
+  rx919_fail:
 .annotate 'line', 4
-    (rx875_rep, rx875_pos, $I10, $P10) = rx875_cur."!mark_fail"(0)
-    lt rx875_pos, -1, rx875_done
-    eq rx875_pos, -1, rx875_fail
+    (rx919_rep, rx919_pos, $I10, $P10) = rx919_cur."!mark_fail"(0)
+    lt rx919_pos, -1, rx919_done
+    eq rx919_pos, -1, rx919_fail
     jump $I10
-  rx875_done:
-    rx875_cur."!cursor_fail"()
-    rx875_cur."!cursor_debug"("FAIL  ", "quote:sym</ />")
-    .return (rx875_cur)
+  rx919_done:
+    rx919_cur."!cursor_fail"()
+    rx919_cur."!cursor_debug"("FAIL  ", "quote:sym</ />")
+    .return (rx919_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />"  :subid("208_1274853038.58734") :method
+.sub "!PREFIX__quote:sym</ />"  :subid("217_1275811487.95429") :method
 .annotate 'line', 4
-    $P877 = self."!PREFIX__!subrule"("", "/")
-    new $P878, "ResizablePMCArray"
-    push $P878, $P877
-    .return ($P878)
+    $P921 = self."!PREFIX__!subrule"("newpad", "/")
+    new $P922, "ResizablePMCArray"
+    push $P922, $P921
+    .return ($P922)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>"  :subid("209_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "quote_escape:sym<$>"  :subid("218_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx881_tgt
-    .local int rx881_pos
-    .local int rx881_off
-    .local int rx881_eos
-    .local int rx881_rep
-    .local pmc rx881_cur
-    (rx881_cur, rx881_pos, rx881_tgt) = self."!cursor_start"()
-    rx881_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
-    .lex unicode:"$\x{a2}", rx881_cur
+    .local string rx925_tgt
+    .local int rx925_pos
+    .local int rx925_off
+    .local int rx925_eos
+    .local int rx925_rep
+    .local pmc rx925_cur
+    (rx925_cur, rx925_pos, rx925_tgt) = self."!cursor_start"()
+    rx925_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
+    .lex unicode:"$\x{a2}", rx925_cur
     .local pmc match
     .lex "$/", match
-    length rx881_eos, rx881_tgt
-    set rx881_off, 0
-    lt rx881_pos, 2, rx881_start
-    sub rx881_off, rx881_pos, 1
-    substr rx881_tgt, rx881_tgt, rx881_off
-  rx881_start:
+    length rx925_eos, rx925_tgt
+    gt rx925_pos, rx925_eos, rx925_done
+    set rx925_off, 0
+    lt rx925_pos, 2, rx925_start
+    sub rx925_off, rx925_pos, 1
+    substr rx925_tgt, rx925_tgt, rx925_off
+  rx925_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan884_done
-    goto rxscan884_scan
-  rxscan884_loop:
-    ($P10) = rx881_cur."from"()
+    ne $I10, -1, rxscan928_done
+    goto rxscan928_scan
+  rxscan928_loop:
+    ($P10) = rx925_cur."from"()
     inc $P10
-    set rx881_pos, $P10
-    ge rx881_pos, rx881_eos, rxscan884_done
-  rxscan884_scan:
-    set_addr $I10, rxscan884_loop
-    rx881_cur."!mark_push"(0, rx881_pos, $I10)
-  rxscan884_done:
-.annotate 'line', 418
+    set rx925_pos, $P10
+    ge rx925_pos, rx925_eos, rxscan928_done
+  rxscan928_scan:
+    set_addr $I10, rxscan928_loop
+    rx925_cur."!mark_push"(0, rx925_pos, $I10)
+  rxscan928_done:
+.annotate 'line', 431
   # rx enumcharlist negate=0 zerowidth
-    ge rx881_pos, rx881_eos, rx881_fail
-    sub $I10, rx881_pos, rx881_off
-    substr $S10, rx881_tgt, $I10, 1
+    ge rx925_pos, rx925_eos, rx925_fail
+    sub $I10, rx925_pos, rx925_off
+    substr $S10, rx925_tgt, $I10, 1
     index $I11, "$", $S10
-    lt $I11, 0, rx881_fail
+    lt $I11, 0, rx925_fail
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx881_cur."!cursor_pos"(rx881_pos)
-    $P10 = rx881_cur."quotemod_check"("s")
-    unless $P10, rx881_fail
+    rx925_cur."!cursor_pos"(rx925_pos)
+    $P10 = rx925_cur."quotemod_check"("s")
+    unless $P10, rx925_fail
   # rx subrule "variable" subtype=capture negate=
-    rx881_cur."!cursor_pos"(rx881_pos)
-    $P10 = rx881_cur."variable"()
-    unless $P10, rx881_fail
-    rx881_cur."!mark_push"(0, -1, 0, $P10)
+    rx925_cur."!cursor_pos"(rx925_pos)
+    $P10 = rx925_cur."variable"()
+    unless $P10, rx925_fail
+    rx925_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable")
-    rx881_pos = $P10."pos"()
+    rx925_pos = $P10."pos"()
   # rx pass
-    rx881_cur."!cursor_pass"(rx881_pos, "quote_escape:sym<$>")
-    rx881_cur."!cursor_debug"("PASS  ", "quote_escape:sym<$>", " at pos=", rx881_pos)
-    .return (rx881_cur)
-  rx881_fail:
+    rx925_cur."!cursor_pass"(rx925_pos, "quote_escape:sym<$>")
+    rx925_cur."!cursor_debug"("PASS  ", "quote_escape:sym<$>", " at pos=", rx925_pos)
+    .return (rx925_cur)
+  rx925_fail:
 .annotate 'line', 4
-    (rx881_rep, rx881_pos, $I10, $P10) = rx881_cur."!mark_fail"(0)
-    lt rx881_pos, -1, rx881_done
-    eq rx881_pos, -1, rx881_fail
+    (rx925_rep, rx925_pos, $I10, $P10) = rx925_cur."!mark_fail"(0)
+    lt rx925_pos, -1, rx925_done
+    eq rx925_pos, -1, rx925_fail
     jump $I10
-  rx881_done:
-    rx881_cur."!cursor_fail"()
-    rx881_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<$>")
-    .return (rx881_cur)
+  rx925_done:
+    rx925_cur."!cursor_fail"()
+    rx925_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<$>")
+    .return (rx925_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>"  :subid("210_1274853038.58734") :method
+.sub "!PREFIX__quote_escape:sym<$>"  :subid("219_1275811487.95429") :method
 .annotate 'line', 4
-    new $P883, "ResizablePMCArray"
-    push $P883, "$"
-    .return ($P883)
+    new $P927, "ResizablePMCArray"
+    push $P927, "$"
+    .return ($P927)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>"  :subid("211_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "quote_escape:sym<{ }>"  :subid("220_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx886_tgt
-    .local int rx886_pos
-    .local int rx886_off
-    .local int rx886_eos
-    .local int rx886_rep
-    .local pmc rx886_cur
-    (rx886_cur, rx886_pos, rx886_tgt) = self."!cursor_start"()
-    rx886_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx886_cur
-    .local pmc match
-    .lex "$/", match
-    length rx886_eos, rx886_tgt
-    set rx886_off, 0
-    lt rx886_pos, 2, rx886_start
-    sub rx886_off, rx886_pos, 1
-    substr rx886_tgt, rx886_tgt, rx886_off
-  rx886_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan889_done
-    goto rxscan889_scan
-  rxscan889_loop:
-    ($P10) = rx886_cur."from"()
-    inc $P10
-    set rx886_pos, $P10
-    ge rx886_pos, rx886_eos, rxscan889_done
-  rxscan889_scan:
-    set_addr $I10, rxscan889_loop
-    rx886_cur."!mark_push"(0, rx886_pos, $I10)
-  rxscan889_done:
-.annotate 'line', 419
+    .local string rx930_tgt
+    .local int rx930_pos
+    .local int rx930_off
+    .local int rx930_eos
+    .local int rx930_rep
+    .local pmc rx930_cur
+    (rx930_cur, rx930_pos, rx930_tgt) = self."!cursor_start"()
+    rx930_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx930_cur
+    .local pmc match
+    .lex "$/", match
+    length rx930_eos, rx930_tgt
+    gt rx930_pos, rx930_eos, rx930_done
+    set rx930_off, 0
+    lt rx930_pos, 2, rx930_start
+    sub rx930_off, rx930_pos, 1
+    substr rx930_tgt, rx930_tgt, rx930_off
+  rx930_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan933_done
+    goto rxscan933_scan
+  rxscan933_loop:
+    ($P10) = rx930_cur."from"()
+    inc $P10
+    set rx930_pos, $P10
+    ge rx930_pos, rx930_eos, rxscan933_done
+  rxscan933_scan:
+    set_addr $I10, rxscan933_loop
+    rx930_cur."!mark_push"(0, rx930_pos, $I10)
+  rxscan933_done:
+.annotate 'line', 432
   # rx enumcharlist negate=0 zerowidth
-    ge rx886_pos, rx886_eos, rx886_fail
-    sub $I10, rx886_pos, rx886_off
-    substr $S10, rx886_tgt, $I10, 1
+    ge rx930_pos, rx930_eos, rx930_fail
+    sub $I10, rx930_pos, rx930_off
+    substr $S10, rx930_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx886_fail
+    lt $I11, 0, rx930_fail
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx886_cur."!cursor_pos"(rx886_pos)
-    $P10 = rx886_cur."quotemod_check"("c")
-    unless $P10, rx886_fail
+    rx930_cur."!cursor_pos"(rx930_pos)
+    $P10 = rx930_cur."quotemod_check"("c")
+    unless $P10, rx930_fail
   # rx subrule "block" subtype=capture negate=
-    rx886_cur."!cursor_pos"(rx886_pos)
-    $P10 = rx886_cur."block"()
-    unless $P10, rx886_fail
-    rx886_cur."!mark_push"(0, -1, 0, $P10)
+    rx930_cur."!cursor_pos"(rx930_pos)
+    $P10 = rx930_cur."block"()
+    unless $P10, rx930_fail
+    rx930_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx886_pos = $P10."pos"()
+    rx930_pos = $P10."pos"()
   # rx pass
-    rx886_cur."!cursor_pass"(rx886_pos, "quote_escape:sym<{ }>")
-    rx886_cur."!cursor_debug"("PASS  ", "quote_escape:sym<{ }>", " at pos=", rx886_pos)
-    .return (rx886_cur)
-  rx886_fail:
+    rx930_cur."!cursor_pass"(rx930_pos, "quote_escape:sym<{ }>")
+    rx930_cur."!cursor_debug"("PASS  ", "quote_escape:sym<{ }>", " at pos=", rx930_pos)
+    .return (rx930_cur)
+  rx930_fail:
 .annotate 'line', 4
-    (rx886_rep, rx886_pos, $I10, $P10) = rx886_cur."!mark_fail"(0)
-    lt rx886_pos, -1, rx886_done
-    eq rx886_pos, -1, rx886_fail
+    (rx930_rep, rx930_pos, $I10, $P10) = rx930_cur."!mark_fail"(0)
+    lt rx930_pos, -1, rx930_done
+    eq rx930_pos, -1, rx930_fail
     jump $I10
-  rx886_done:
-    rx886_cur."!cursor_fail"()
-    rx886_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<{ }>")
-    .return (rx886_cur)
+  rx930_done:
+    rx930_cur."!cursor_fail"()
+    rx930_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<{ }>")
+    .return (rx930_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("212_1274853038.58734") :method
+.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("221_1275811487.95429") :method
 .annotate 'line', 4
-    new $P888, "ResizablePMCArray"
-    push $P888, "{"
-    .return ($P888)
+    new $P932, "ResizablePMCArray"
+    push $P932, "{"
+    .return ($P932)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("213_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "quote_escape:sym<esc>"  :subid("222_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx891_tgt
-    .local int rx891_pos
-    .local int rx891_off
-    .local int rx891_eos
-    .local int rx891_rep
-    .local pmc rx891_cur
-    (rx891_cur, rx891_pos, rx891_tgt) = self."!cursor_start"()
-    rx891_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
-    .lex unicode:"$\x{a2}", rx891_cur
+    .local string rx935_tgt
+    .local int rx935_pos
+    .local int rx935_off
+    .local int rx935_eos
+    .local int rx935_rep
+    .local pmc rx935_cur
+    (rx935_cur, rx935_pos, rx935_tgt) = self."!cursor_start"()
+    rx935_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
+    .lex unicode:"$\x{a2}", rx935_cur
     .local pmc match
     .lex "$/", match
-    length rx891_eos, rx891_tgt
-    set rx891_off, 0
-    lt rx891_pos, 2, rx891_start
-    sub rx891_off, rx891_pos, 1
-    substr rx891_tgt, rx891_tgt, rx891_off
-  rx891_start:
+    length rx935_eos, rx935_tgt
+    gt rx935_pos, rx935_eos, rx935_done
+    set rx935_off, 0
+    lt rx935_pos, 2, rx935_start
+    sub rx935_off, rx935_pos, 1
+    substr rx935_tgt, rx935_tgt, rx935_off
+  rx935_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan894_done
-    goto rxscan894_scan
-  rxscan894_loop:
-    ($P10) = rx891_cur."from"()
+    ne $I10, -1, rxscan938_done
+    goto rxscan938_scan
+  rxscan938_loop:
+    ($P10) = rx935_cur."from"()
     inc $P10
-    set rx891_pos, $P10
-    ge rx891_pos, rx891_eos, rxscan894_done
-  rxscan894_scan:
-    set_addr $I10, rxscan894_loop
-    rx891_cur."!mark_push"(0, rx891_pos, $I10)
-  rxscan894_done:
-.annotate 'line', 420
+    set rx935_pos, $P10
+    ge rx935_pos, rx935_eos, rxscan938_done
+  rxscan938_scan:
+    set_addr $I10, rxscan938_loop
+    rx935_cur."!mark_push"(0, rx935_pos, $I10)
+  rxscan938_done:
+.annotate 'line', 433
   # rx literal  "\\e"
-    add $I11, rx891_pos, 2
-    gt $I11, rx891_eos, rx891_fail
-    sub $I11, rx891_pos, rx891_off
-    substr $S10, rx891_tgt, $I11, 2
-    ne $S10, "\\e", rx891_fail
-    add rx891_pos, 2
+    add $I11, rx935_pos, 2
+    gt $I11, rx935_eos, rx935_fail
+    sub $I11, rx935_pos, rx935_off
+    substr $S10, rx935_tgt, $I11, 2
+    ne $S10, "\\e", rx935_fail
+    add rx935_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx891_cur."!cursor_pos"(rx891_pos)
-    $P10 = rx891_cur."quotemod_check"("b")
-    unless $P10, rx891_fail
+    rx935_cur."!cursor_pos"(rx935_pos)
+    $P10 = rx935_cur."quotemod_check"("b")
+    unless $P10, rx935_fail
   # rx pass
-    rx891_cur."!cursor_pass"(rx891_pos, "quote_escape:sym<esc>")
-    rx891_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx891_pos)
-    .return (rx891_cur)
-  rx891_fail:
+    rx935_cur."!cursor_pass"(rx935_pos, "quote_escape:sym<esc>")
+    rx935_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx935_pos)
+    .return (rx935_cur)
+  rx935_fail:
 .annotate 'line', 4
-    (rx891_rep, rx891_pos, $I10, $P10) = rx891_cur."!mark_fail"(0)
-    lt rx891_pos, -1, rx891_done
-    eq rx891_pos, -1, rx891_fail
+    (rx935_rep, rx935_pos, $I10, $P10) = rx935_cur."!mark_fail"(0)
+    lt rx935_pos, -1, rx935_done
+    eq rx935_pos, -1, rx935_fail
     jump $I10
-  rx891_done:
-    rx891_cur."!cursor_fail"()
-    rx891_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
-    .return (rx891_cur)
+  rx935_done:
+    rx935_cur."!cursor_fail"()
+    rx935_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
+    .return (rx935_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("214_1274853038.58734") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("223_1275811487.95429") :method
 .annotate 'line', 4
-    new $P893, "ResizablePMCArray"
-    push $P893, "\\e"
-    .return ($P893)
+    new $P937, "ResizablePMCArray"
+    push $P937, "\\e"
+    .return ($P937)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>"  :subid("215_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "circumfix:sym<( )>"  :subid("224_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx896_tgt
-    .local int rx896_pos
-    .local int rx896_off
-    .local int rx896_eos
-    .local int rx896_rep
-    .local pmc rx896_cur
-    (rx896_cur, rx896_pos, rx896_tgt) = self."!cursor_start"()
-    rx896_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
-    rx896_cur."!cursor_caparray"("EXPR")
-    .lex unicode:"$\x{a2}", rx896_cur
-    .local pmc match
-    .lex "$/", match
-    length rx896_eos, rx896_tgt
-    set rx896_off, 0
-    lt rx896_pos, 2, rx896_start
-    sub rx896_off, rx896_pos, 1
-    substr rx896_tgt, rx896_tgt, rx896_off
-  rx896_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan900_done
-    goto rxscan900_scan
-  rxscan900_loop:
-    ($P10) = rx896_cur."from"()
-    inc $P10
-    set rx896_pos, $P10
-    ge rx896_pos, rx896_eos, rxscan900_done
-  rxscan900_scan:
-    set_addr $I10, rxscan900_loop
-    rx896_cur."!mark_push"(0, rx896_pos, $I10)
-  rxscan900_done:
-.annotate 'line', 422
+    .local string rx940_tgt
+    .local int rx940_pos
+    .local int rx940_off
+    .local int rx940_eos
+    .local int rx940_rep
+    .local pmc rx940_cur
+    (rx940_cur, rx940_pos, rx940_tgt) = self."!cursor_start"()
+    rx940_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
+    rx940_cur."!cursor_caparray"("EXPR")
+    .lex unicode:"$\x{a2}", rx940_cur
+    .local pmc match
+    .lex "$/", match
+    length rx940_eos, rx940_tgt
+    gt rx940_pos, rx940_eos, rx940_done
+    set rx940_off, 0
+    lt rx940_pos, 2, rx940_start
+    sub rx940_off, rx940_pos, 1
+    substr rx940_tgt, rx940_tgt, rx940_off
+  rx940_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan944_done
+    goto rxscan944_scan
+  rxscan944_loop:
+    ($P10) = rx940_cur."from"()
+    inc $P10
+    set rx940_pos, $P10
+    ge rx940_pos, rx940_eos, rxscan944_done
+  rxscan944_scan:
+    set_addr $I10, rxscan944_loop
+    rx940_cur."!mark_push"(0, rx940_pos, $I10)
+  rxscan944_done:
+.annotate 'line', 435
   # rx literal  "("
-    add $I11, rx896_pos, 1
-    gt $I11, rx896_eos, rx896_fail
-    sub $I11, rx896_pos, rx896_off
-    substr $S10, rx896_tgt, $I11, 1
-    ne $S10, "(", rx896_fail
-    add rx896_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx896_cur."!cursor_pos"(rx896_pos)
-    $P10 = rx896_cur."ws"()
-    unless $P10, rx896_fail
-    rx896_pos = $P10."pos"()
-  # rx rxquantr901 ** 0..1
-    set_addr $I902, rxquantr901_done
-    rx896_cur."!mark_push"(0, rx896_pos, $I902)
-  rxquantr901_loop:
+    add $I11, rx940_pos, 1
+    gt $I11, rx940_eos, rx940_fail
+    sub $I11, rx940_pos, rx940_off
+    substr $S10, rx940_tgt, $I11, 1
+    ne $S10, "(", rx940_fail
+    add rx940_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx940_cur."!cursor_pos"(rx940_pos)
+    $P10 = rx940_cur."ws"()
+    unless $P10, rx940_fail
+    rx940_pos = $P10."pos"()
+  # rx rxquantr945 ** 0..1
+    set_addr $I946, rxquantr945_done
+    rx940_cur."!mark_push"(0, rx940_pos, $I946)
+  rxquantr945_loop:
   # rx subrule "EXPR" subtype=capture negate=
-    rx896_cur."!cursor_pos"(rx896_pos)
-    $P10 = rx896_cur."EXPR"()
-    unless $P10, rx896_fail
-    rx896_cur."!mark_push"(0, -1, 0, $P10)
+    rx940_cur."!cursor_pos"(rx940_pos)
+    $P10 = rx940_cur."EXPR"()
+    unless $P10, rx940_fail
+    rx940_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx896_pos = $P10."pos"()
-    (rx896_rep) = rx896_cur."!mark_commit"($I902)
-  rxquantr901_done:
+    rx940_pos = $P10."pos"()
+    (rx940_rep) = rx940_cur."!mark_commit"($I946)
+  rxquantr945_done:
   # rx literal  ")"
-    add $I11, rx896_pos, 1
-    gt $I11, rx896_eos, rx896_fail
-    sub $I11, rx896_pos, rx896_off
-    substr $S10, rx896_tgt, $I11, 1
-    ne $S10, ")", rx896_fail
-    add rx896_pos, 1
+    add $I11, rx940_pos, 1
+    gt $I11, rx940_eos, rx940_fail
+    sub $I11, rx940_pos, rx940_off
+    substr $S10, rx940_tgt, $I11, 1
+    ne $S10, ")", rx940_fail
+    add rx940_pos, 1
   # rx pass
-    rx896_cur."!cursor_pass"(rx896_pos, "circumfix:sym<( )>")
-    rx896_cur."!cursor_debug"("PASS  ", "circumfix:sym<( )>", " at pos=", rx896_pos)
-    .return (rx896_cur)
-  rx896_fail:
+    rx940_cur."!cursor_pass"(rx940_pos, "circumfix:sym<( )>")
+    rx940_cur."!cursor_debug"("PASS  ", "circumfix:sym<( )>", " at pos=", rx940_pos)
+    .return (rx940_cur)
+  rx940_fail:
 .annotate 'line', 4
-    (rx896_rep, rx896_pos, $I10, $P10) = rx896_cur."!mark_fail"(0)
-    lt rx896_pos, -1, rx896_done
-    eq rx896_pos, -1, rx896_fail
+    (rx940_rep, rx940_pos, $I10, $P10) = rx940_cur."!mark_fail"(0)
+    lt rx940_pos, -1, rx940_done
+    eq rx940_pos, -1, rx940_fail
     jump $I10
-  rx896_done:
-    rx896_cur."!cursor_fail"()
-    rx896_cur."!cursor_debug"("FAIL  ", "circumfix:sym<( )>")
-    .return (rx896_cur)
+  rx940_done:
+    rx940_cur."!cursor_fail"()
+    rx940_cur."!cursor_debug"("FAIL  ", "circumfix:sym<( )>")
+    .return (rx940_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>"  :subid("216_1274853038.58734") :method
+.sub "!PREFIX__circumfix:sym<( )>"  :subid("225_1275811487.95429") :method
 .annotate 'line', 4
-    $P898 = self."!PREFIX__!subrule"("", "(")
-    new $P899, "ResizablePMCArray"
-    push $P899, $P898
-    .return ($P899)
+    $P942 = self."!PREFIX__!subrule"("ws", "(")
+    new $P943, "ResizablePMCArray"
+    push $P943, $P942
+    .return ($P943)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>"  :subid("217_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "circumfix:sym<[ ]>"  :subid("226_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx904_tgt
-    .local int rx904_pos
-    .local int rx904_off
-    .local int rx904_eos
-    .local int rx904_rep
-    .local pmc rx904_cur
-    (rx904_cur, rx904_pos, rx904_tgt) = self."!cursor_start"()
-    rx904_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
-    rx904_cur."!cursor_caparray"("EXPR")
-    .lex unicode:"$\x{a2}", rx904_cur
+    .local string rx948_tgt
+    .local int rx948_pos
+    .local int rx948_off
+    .local int rx948_eos
+    .local int rx948_rep
+    .local pmc rx948_cur
+    (rx948_cur, rx948_pos, rx948_tgt) = self."!cursor_start"()
+    rx948_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
+    rx948_cur."!cursor_caparray"("EXPR")
+    .lex unicode:"$\x{a2}", rx948_cur
     .local pmc match
     .lex "$/", match
-    length rx904_eos, rx904_tgt
-    set rx904_off, 0
-    lt rx904_pos, 2, rx904_start
-    sub rx904_off, rx904_pos, 1
-    substr rx904_tgt, rx904_tgt, rx904_off
-  rx904_start:
+    length rx948_eos, rx948_tgt
+    gt rx948_pos, rx948_eos, rx948_done
+    set rx948_off, 0
+    lt rx948_pos, 2, rx948_start
+    sub rx948_off, rx948_pos, 1
+    substr rx948_tgt, rx948_tgt, rx948_off
+  rx948_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan908_done
-    goto rxscan908_scan
-  rxscan908_loop:
-    ($P10) = rx904_cur."from"()
+    ne $I10, -1, rxscan952_done
+    goto rxscan952_scan
+  rxscan952_loop:
+    ($P10) = rx948_cur."from"()
     inc $P10
-    set rx904_pos, $P10
-    ge rx904_pos, rx904_eos, rxscan908_done
-  rxscan908_scan:
-    set_addr $I10, rxscan908_loop
-    rx904_cur."!mark_push"(0, rx904_pos, $I10)
-  rxscan908_done:
-.annotate 'line', 423
+    set rx948_pos, $P10
+    ge rx948_pos, rx948_eos, rxscan952_done
+  rxscan952_scan:
+    set_addr $I10, rxscan952_loop
+    rx948_cur."!mark_push"(0, rx948_pos, $I10)
+  rxscan952_done:
+.annotate 'line', 436
   # rx literal  "["
-    add $I11, rx904_pos, 1
-    gt $I11, rx904_eos, rx904_fail
-    sub $I11, rx904_pos, rx904_off
-    substr $S10, rx904_tgt, $I11, 1
-    ne $S10, "[", rx904_fail
-    add rx904_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx904_cur."!cursor_pos"(rx904_pos)
-    $P10 = rx904_cur."ws"()
-    unless $P10, rx904_fail
-    rx904_pos = $P10."pos"()
-  # rx rxquantr909 ** 0..1
-    set_addr $I910, rxquantr909_done
-    rx904_cur."!mark_push"(0, rx904_pos, $I910)
-  rxquantr909_loop:
+    add $I11, rx948_pos, 1
+    gt $I11, rx948_eos, rx948_fail
+    sub $I11, rx948_pos, rx948_off
+    substr $S10, rx948_tgt, $I11, 1
+    ne $S10, "[", rx948_fail
+    add rx948_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx948_cur."!cursor_pos"(rx948_pos)
+    $P10 = rx948_cur."ws"()
+    unless $P10, rx948_fail
+    rx948_pos = $P10."pos"()
+  # rx rxquantr953 ** 0..1
+    set_addr $I954, rxquantr953_done
+    rx948_cur."!mark_push"(0, rx948_pos, $I954)
+  rxquantr953_loop:
   # rx subrule "EXPR" subtype=capture negate=
-    rx904_cur."!cursor_pos"(rx904_pos)
-    $P10 = rx904_cur."EXPR"()
-    unless $P10, rx904_fail
-    rx904_cur."!mark_push"(0, -1, 0, $P10)
+    rx948_cur."!cursor_pos"(rx948_pos)
+    $P10 = rx948_cur."EXPR"()
+    unless $P10, rx948_fail
+    rx948_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx904_pos = $P10."pos"()
-    (rx904_rep) = rx904_cur."!mark_commit"($I910)
-  rxquantr909_done:
+    rx948_pos = $P10."pos"()
+    (rx948_rep) = rx948_cur."!mark_commit"($I954)
+  rxquantr953_done:
   # rx literal  "]"
-    add $I11, rx904_pos, 1
-    gt $I11, rx904_eos, rx904_fail
-    sub $I11, rx904_pos, rx904_off
-    substr $S10, rx904_tgt, $I11, 1
-    ne $S10, "]", rx904_fail
-    add rx904_pos, 1
+    add $I11, rx948_pos, 1
+    gt $I11, rx948_eos, rx948_fail
+    sub $I11, rx948_pos, rx948_off
+    substr $S10, rx948_tgt, $I11, 1
+    ne $S10, "]", rx948_fail
+    add rx948_pos, 1
   # rx pass
-    rx904_cur."!cursor_pass"(rx904_pos, "circumfix:sym<[ ]>")
-    rx904_cur."!cursor_debug"("PASS  ", "circumfix:sym<[ ]>", " at pos=", rx904_pos)
-    .return (rx904_cur)
-  rx904_fail:
+    rx948_cur."!cursor_pass"(rx948_pos, "circumfix:sym<[ ]>")
+    rx948_cur."!cursor_debug"("PASS  ", "circumfix:sym<[ ]>", " at pos=", rx948_pos)
+    .return (rx948_cur)
+  rx948_fail:
 .annotate 'line', 4
-    (rx904_rep, rx904_pos, $I10, $P10) = rx904_cur."!mark_fail"(0)
-    lt rx904_pos, -1, rx904_done
-    eq rx904_pos, -1, rx904_fail
+    (rx948_rep, rx948_pos, $I10, $P10) = rx948_cur."!mark_fail"(0)
+    lt rx948_pos, -1, rx948_done
+    eq rx948_pos, -1, rx948_fail
     jump $I10
-  rx904_done:
-    rx904_cur."!cursor_fail"()
-    rx904_cur."!cursor_debug"("FAIL  ", "circumfix:sym<[ ]>")
-    .return (rx904_cur)
+  rx948_done:
+    rx948_cur."!cursor_fail"()
+    rx948_cur."!cursor_debug"("FAIL  ", "circumfix:sym<[ ]>")
+    .return (rx948_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("218_1274853038.58734") :method
+.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("227_1275811487.95429") :method
 .annotate 'line', 4
-    $P906 = self."!PREFIX__!subrule"("", "[")
-    new $P907, "ResizablePMCArray"
-    push $P907, $P906
-    .return ($P907)
+    $P950 = self."!PREFIX__!subrule"("ws", "[")
+    new $P951, "ResizablePMCArray"
+    push $P951, $P950
+    .return ($P951)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>"  :subid("219_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "circumfix:sym<ang>"  :subid("228_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx912_tgt
-    .local int rx912_pos
-    .local int rx912_off
-    .local int rx912_eos
-    .local int rx912_rep
-    .local pmc rx912_cur
-    (rx912_cur, rx912_pos, rx912_tgt) = self."!cursor_start"()
-    rx912_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
-    .lex unicode:"$\x{a2}", rx912_cur
+    .local string rx956_tgt
+    .local int rx956_pos
+    .local int rx956_off
+    .local int rx956_eos
+    .local int rx956_rep
+    .local pmc rx956_cur
+    (rx956_cur, rx956_pos, rx956_tgt) = self."!cursor_start"()
+    rx956_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
+    .lex unicode:"$\x{a2}", rx956_cur
     .local pmc match
     .lex "$/", match
-    length rx912_eos, rx912_tgt
-    set rx912_off, 0
-    lt rx912_pos, 2, rx912_start
-    sub rx912_off, rx912_pos, 1
-    substr rx912_tgt, rx912_tgt, rx912_off
-  rx912_start:
+    length rx956_eos, rx956_tgt
+    gt rx956_pos, rx956_eos, rx956_done
+    set rx956_off, 0
+    lt rx956_pos, 2, rx956_start
+    sub rx956_off, rx956_pos, 1
+    substr rx956_tgt, rx956_tgt, rx956_off
+  rx956_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan915_done
-    goto rxscan915_scan
-  rxscan915_loop:
-    ($P10) = rx912_cur."from"()
+    ne $I10, -1, rxscan959_done
+    goto rxscan959_scan
+  rxscan959_loop:
+    ($P10) = rx956_cur."from"()
     inc $P10
-    set rx912_pos, $P10
-    ge rx912_pos, rx912_eos, rxscan915_done
-  rxscan915_scan:
-    set_addr $I10, rxscan915_loop
-    rx912_cur."!mark_push"(0, rx912_pos, $I10)
-  rxscan915_done:
-.annotate 'line', 424
+    set rx956_pos, $P10
+    ge rx956_pos, rx956_eos, rxscan959_done
+  rxscan959_scan:
+    set_addr $I10, rxscan959_loop
+    rx956_cur."!mark_push"(0, rx956_pos, $I10)
+  rxscan959_done:
+.annotate 'line', 437
   # rx enumcharlist negate=0 zerowidth
-    ge rx912_pos, rx912_eos, rx912_fail
-    sub $I10, rx912_pos, rx912_off
-    substr $S10, rx912_tgt, $I10, 1
+    ge rx956_pos, rx956_eos, rx956_fail
+    sub $I10, rx956_pos, rx956_off
+    substr $S10, rx956_tgt, $I10, 1
     index $I11, "<", $S10
-    lt $I11, 0, rx912_fail
+    lt $I11, 0, rx956_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx912_cur."!cursor_pos"(rx912_pos)
-    $P10 = rx912_cur."quote_EXPR"(":q", ":w")
-    unless $P10, rx912_fail
-    rx912_cur."!mark_push"(0, -1, 0, $P10)
+    rx956_cur."!cursor_pos"(rx956_pos)
+    $P10 = rx956_cur."quote_EXPR"(":q", ":w")
+    unless $P10, rx956_fail
+    rx956_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx912_pos = $P10."pos"()
+    rx956_pos = $P10."pos"()
   # rx pass
-    rx912_cur."!cursor_pass"(rx912_pos, "circumfix:sym<ang>")
-    rx912_cur."!cursor_debug"("PASS  ", "circumfix:sym<ang>", " at pos=", rx912_pos)
-    .return (rx912_cur)
-  rx912_fail:
+    rx956_cur."!cursor_pass"(rx956_pos, "circumfix:sym<ang>")
+    rx956_cur."!cursor_debug"("PASS  ", "circumfix:sym<ang>", " at pos=", rx956_pos)
+    .return (rx956_cur)
+  rx956_fail:
 .annotate 'line', 4
-    (rx912_rep, rx912_pos, $I10, $P10) = rx912_cur."!mark_fail"(0)
-    lt rx912_pos, -1, rx912_done
-    eq rx912_pos, -1, rx912_fail
+    (rx956_rep, rx956_pos, $I10, $P10) = rx956_cur."!mark_fail"(0)
+    lt rx956_pos, -1, rx956_done
+    eq rx956_pos, -1, rx956_fail
     jump $I10
-  rx912_done:
-    rx912_cur."!cursor_fail"()
-    rx912_cur."!cursor_debug"("FAIL  ", "circumfix:sym<ang>")
-    .return (rx912_cur)
+  rx956_done:
+    rx956_cur."!cursor_fail"()
+    rx956_cur."!cursor_debug"("FAIL  ", "circumfix:sym<ang>")
+    .return (rx956_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>"  :subid("220_1274853038.58734") :method
+.sub "!PREFIX__circumfix:sym<ang>"  :subid("229_1275811487.95429") :method
 .annotate 'line', 4
-    new $P914, "ResizablePMCArray"
-    push $P914, "<"
-    .return ($P914)
+    new $P958, "ResizablePMCArray"
+    push $P958, "<"
+    .return ($P958)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("221_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("230_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx917_tgt
-    .local int rx917_pos
-    .local int rx917_off
-    .local int rx917_eos
-    .local int rx917_rep
-    .local pmc rx917_cur
-    (rx917_cur, rx917_pos, rx917_tgt) = self."!cursor_start"()
-    rx917_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    .lex unicode:"$\x{a2}", rx917_cur
-    .local pmc match
-    .lex "$/", match
-    length rx917_eos, rx917_tgt
-    set rx917_off, 0
-    lt rx917_pos, 2, rx917_start
-    sub rx917_off, rx917_pos, 1
-    substr rx917_tgt, rx917_tgt, rx917_off
-  rx917_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan920_done
-    goto rxscan920_scan
-  rxscan920_loop:
-    ($P10) = rx917_cur."from"()
-    inc $P10
-    set rx917_pos, $P10
-    ge rx917_pos, rx917_eos, rxscan920_done
-  rxscan920_scan:
-    set_addr $I10, rxscan920_loop
-    rx917_cur."!mark_push"(0, rx917_pos, $I10)
-  rxscan920_done:
-.annotate 'line', 425
+    .local string rx961_tgt
+    .local int rx961_pos
+    .local int rx961_off
+    .local int rx961_eos
+    .local int rx961_rep
+    .local pmc rx961_cur
+    (rx961_cur, rx961_pos, rx961_tgt) = self."!cursor_start"()
+    rx961_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    .lex unicode:"$\x{a2}", rx961_cur
+    .local pmc match
+    .lex "$/", match
+    length rx961_eos, rx961_tgt
+    gt rx961_pos, rx961_eos, rx961_done
+    set rx961_off, 0
+    lt rx961_pos, 2, rx961_start
+    sub rx961_off, rx961_pos, 1
+    substr rx961_tgt, rx961_tgt, rx961_off
+  rx961_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan964_done
+    goto rxscan964_scan
+  rxscan964_loop:
+    ($P10) = rx961_cur."from"()
+    inc $P10
+    set rx961_pos, $P10
+    ge rx961_pos, rx961_eos, rxscan964_done
+  rxscan964_scan:
+    set_addr $I10, rxscan964_loop
+    rx961_cur."!mark_push"(0, rx961_pos, $I10)
+  rxscan964_done:
+.annotate 'line', 438
   # rx enumcharlist negate=0 zerowidth
-    ge rx917_pos, rx917_eos, rx917_fail
-    sub $I10, rx917_pos, rx917_off
-    substr $S10, rx917_tgt, $I10, 1
+    ge rx961_pos, rx961_eos, rx961_fail
+    sub $I10, rx961_pos, rx961_off
+    substr $S10, rx961_tgt, $I10, 1
     index $I11, unicode:"\x{ab}", $S10
-    lt $I11, 0, rx917_fail
+    lt $I11, 0, rx961_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx917_cur."!cursor_pos"(rx917_pos)
-    $P10 = rx917_cur."quote_EXPR"(":qq", ":w")
-    unless $P10, rx917_fail
-    rx917_cur."!mark_push"(0, -1, 0, $P10)
+    rx961_cur."!cursor_pos"(rx961_pos)
+    $P10 = rx961_cur."quote_EXPR"(":qq", ":w")
+    unless $P10, rx961_fail
+    rx961_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx917_pos = $P10."pos"()
+    rx961_pos = $P10."pos"()
   # rx pass
-    rx917_cur."!cursor_pass"(rx917_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    rx917_cur."!cursor_debug"("PASS  ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx917_pos)
-    .return (rx917_cur)
-  rx917_fail:
+    rx961_cur."!cursor_pass"(rx961_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    rx961_cur."!cursor_debug"("PASS  ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx961_pos)
+    .return (rx961_cur)
+  rx961_fail:
 .annotate 'line', 4
-    (rx917_rep, rx917_pos, $I10, $P10) = rx917_cur."!mark_fail"(0)
-    lt rx917_pos, -1, rx917_done
-    eq rx917_pos, -1, rx917_fail
+    (rx961_rep, rx961_pos, $I10, $P10) = rx961_cur."!mark_fail"(0)
+    lt rx961_pos, -1, rx961_done
+    eq rx961_pos, -1, rx961_fail
     jump $I10
-  rx917_done:
-    rx917_cur."!cursor_fail"()
-    rx917_cur."!cursor_debug"("FAIL  ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    .return (rx917_cur)
+  rx961_done:
+    rx961_cur."!cursor_fail"()
+    rx961_cur."!cursor_debug"("FAIL  ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    .return (rx961_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("222_1274853038.58734") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("231_1275811487.95429") :method
 .annotate 'line', 4
-    new $P919, "ResizablePMCArray"
-    push $P919, unicode:"\x{ab}"
-    .return ($P919)
+    new $P963, "ResizablePMCArray"
+    push $P963, unicode:"\x{ab}"
+    .return ($P963)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>"  :subid("223_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "circumfix:sym<{ }>"  :subid("232_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx922_tgt
-    .local int rx922_pos
-    .local int rx922_off
-    .local int rx922_eos
-    .local int rx922_rep
-    .local pmc rx922_cur
-    (rx922_cur, rx922_pos, rx922_tgt) = self."!cursor_start"()
-    rx922_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx922_cur
+    .local string rx966_tgt
+    .local int rx966_pos
+    .local int rx966_off
+    .local int rx966_eos
+    .local int rx966_rep
+    .local pmc rx966_cur
+    (rx966_cur, rx966_pos, rx966_tgt) = self."!cursor_start"()
+    rx966_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx966_cur
     .local pmc match
     .lex "$/", match
-    length rx922_eos, rx922_tgt
-    set rx922_off, 0
-    lt rx922_pos, 2, rx922_start
-    sub rx922_off, rx922_pos, 1
-    substr rx922_tgt, rx922_tgt, rx922_off
-  rx922_start:
+    length rx966_eos, rx966_tgt
+    gt rx966_pos, rx966_eos, rx966_done
+    set rx966_off, 0
+    lt rx966_pos, 2, rx966_start
+    sub rx966_off, rx966_pos, 1
+    substr rx966_tgt, rx966_tgt, rx966_off
+  rx966_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan925_done
-    goto rxscan925_scan
-  rxscan925_loop:
-    ($P10) = rx922_cur."from"()
+    ne $I10, -1, rxscan969_done
+    goto rxscan969_scan
+  rxscan969_loop:
+    ($P10) = rx966_cur."from"()
     inc $P10
-    set rx922_pos, $P10
-    ge rx922_pos, rx922_eos, rxscan925_done
-  rxscan925_scan:
-    set_addr $I10, rxscan925_loop
-    rx922_cur."!mark_push"(0, rx922_pos, $I10)
-  rxscan925_done:
-.annotate 'line', 426
+    set rx966_pos, $P10
+    ge rx966_pos, rx966_eos, rxscan969_done
+  rxscan969_scan:
+    set_addr $I10, rxscan969_loop
+    rx966_cur."!mark_push"(0, rx966_pos, $I10)
+  rxscan969_done:
+.annotate 'line', 439
   # rx enumcharlist negate=0 zerowidth
-    ge rx922_pos, rx922_eos, rx922_fail
-    sub $I10, rx922_pos, rx922_off
-    substr $S10, rx922_tgt, $I10, 1
+    ge rx966_pos, rx966_eos, rx966_fail
+    sub $I10, rx966_pos, rx966_off
+    substr $S10, rx966_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx922_fail
+    lt $I11, 0, rx966_fail
   # rx subrule "pblock" subtype=capture negate=
-    rx922_cur."!cursor_pos"(rx922_pos)
-    $P10 = rx922_cur."pblock"()
-    unless $P10, rx922_fail
-    rx922_cur."!mark_push"(0, -1, 0, $P10)
+    rx966_cur."!cursor_pos"(rx966_pos)
+    $P10 = rx966_cur."pblock"()
+    unless $P10, rx966_fail
+    rx966_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx922_pos = $P10."pos"()
+    rx966_pos = $P10."pos"()
   # rx pass
-    rx922_cur."!cursor_pass"(rx922_pos, "circumfix:sym<{ }>")
-    rx922_cur."!cursor_debug"("PASS  ", "circumfix:sym<{ }>", " at pos=", rx922_pos)
-    .return (rx922_cur)
-  rx922_fail:
+    rx966_cur."!cursor_pass"(rx966_pos, "circumfix:sym<{ }>")
+    rx966_cur."!cursor_debug"("PASS  ", "circumfix:sym<{ }>", " at pos=", rx966_pos)
+    .return (rx966_cur)
+  rx966_fail:
 .annotate 'line', 4
-    (rx922_rep, rx922_pos, $I10, $P10) = rx922_cur."!mark_fail"(0)
-    lt rx922_pos, -1, rx922_done
-    eq rx922_pos, -1, rx922_fail
+    (rx966_rep, rx966_pos, $I10, $P10) = rx966_cur."!mark_fail"(0)
+    lt rx966_pos, -1, rx966_done
+    eq rx966_pos, -1, rx966_fail
     jump $I10
-  rx922_done:
-    rx922_cur."!cursor_fail"()
-    rx922_cur."!cursor_debug"("FAIL  ", "circumfix:sym<{ }>")
-    .return (rx922_cur)
+  rx966_done:
+    rx966_cur."!cursor_fail"()
+    rx966_cur."!cursor_debug"("FAIL  ", "circumfix:sym<{ }>")
+    .return (rx966_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>"  :subid("224_1274853038.58734") :method
+.sub "!PREFIX__circumfix:sym<{ }>"  :subid("233_1275811487.95429") :method
 .annotate 'line', 4
-    new $P924, "ResizablePMCArray"
-    push $P924, "{"
-    .return ($P924)
+    new $P968, "ResizablePMCArray"
+    push $P968, "{"
+    .return ($P968)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>"  :subid("225_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "circumfix:sym<sigil>"  :subid("234_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx927_tgt
-    .local int rx927_pos
-    .local int rx927_off
-    .local int rx927_eos
-    .local int rx927_rep
-    .local pmc rx927_cur
-    (rx927_cur, rx927_pos, rx927_tgt) = self."!cursor_start"()
-    rx927_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
-    .lex unicode:"$\x{a2}", rx927_cur
-    .local pmc match
-    .lex "$/", match
-    length rx927_eos, rx927_tgt
-    set rx927_off, 0
-    lt rx927_pos, 2, rx927_start
-    sub rx927_off, rx927_pos, 1
-    substr rx927_tgt, rx927_tgt, rx927_off
-  rx927_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan931_done
-    goto rxscan931_scan
-  rxscan931_loop:
-    ($P10) = rx927_cur."from"()
-    inc $P10
-    set rx927_pos, $P10
-    ge rx927_pos, rx927_eos, rxscan931_done
-  rxscan931_scan:
-    set_addr $I10, rxscan931_loop
-    rx927_cur."!mark_push"(0, rx927_pos, $I10)
-  rxscan931_done:
-.annotate 'line', 427
+    .local string rx971_tgt
+    .local int rx971_pos
+    .local int rx971_off
+    .local int rx971_eos
+    .local int rx971_rep
+    .local pmc rx971_cur
+    (rx971_cur, rx971_pos, rx971_tgt) = self."!cursor_start"()
+    rx971_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
+    .lex unicode:"$\x{a2}", rx971_cur
+    .local pmc match
+    .lex "$/", match
+    length rx971_eos, rx971_tgt
+    gt rx971_pos, rx971_eos, rx971_done
+    set rx971_off, 0
+    lt rx971_pos, 2, rx971_start
+    sub rx971_off, rx971_pos, 1
+    substr rx971_tgt, rx971_tgt, rx971_off
+  rx971_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan975_done
+    goto rxscan975_scan
+  rxscan975_loop:
+    ($P10) = rx971_cur."from"()
+    inc $P10
+    set rx971_pos, $P10
+    ge rx971_pos, rx971_eos, rxscan975_done
+  rxscan975_scan:
+    set_addr $I10, rxscan975_loop
+    rx971_cur."!mark_push"(0, rx971_pos, $I10)
+  rxscan975_done:
+.annotate 'line', 440
   # rx subrule "sigil" subtype=capture negate=
-    rx927_cur."!cursor_pos"(rx927_pos)
-    $P10 = rx927_cur."sigil"()
-    unless $P10, rx927_fail
-    rx927_cur."!mark_push"(0, -1, 0, $P10)
+    rx971_cur."!cursor_pos"(rx971_pos)
+    $P10 = rx971_cur."sigil"()
+    unless $P10, rx971_fail
+    rx971_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx927_pos = $P10."pos"()
+    rx971_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx927_pos, 1
-    gt $I11, rx927_eos, rx927_fail
-    sub $I11, rx927_pos, rx927_off
-    substr $S10, rx927_tgt, $I11, 1
-    ne $S10, "(", rx927_fail
-    add rx927_pos, 1
+    add $I11, rx971_pos, 1
+    gt $I11, rx971_eos, rx971_fail
+    sub $I11, rx971_pos, rx971_off
+    substr $S10, rx971_tgt, $I11, 1
+    ne $S10, "(", rx971_fail
+    add rx971_pos, 1
   # rx subrule "semilist" subtype=capture negate=
-    rx927_cur."!cursor_pos"(rx927_pos)
-    $P10 = rx927_cur."semilist"()
-    unless $P10, rx927_fail
-    rx927_cur."!mark_push"(0, -1, 0, $P10)
+    rx971_cur."!cursor_pos"(rx971_pos)
+    $P10 = rx971_cur."semilist"()
+    unless $P10, rx971_fail
+    rx971_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("semilist")
-    rx927_pos = $P10."pos"()
-  alt932_0:
-    set_addr $I10, alt932_1
-    rx927_cur."!mark_push"(0, rx927_pos, $I10)
+    rx971_pos = $P10."pos"()
+  alt976_0:
+    set_addr $I10, alt976_1
+    rx971_cur."!mark_push"(0, rx971_pos, $I10)
   # rx literal  ")"
-    add $I11, rx927_pos, 1
-    gt $I11, rx927_eos, rx927_fail
-    sub $I11, rx927_pos, rx927_off
-    substr $S10, rx927_tgt, $I11, 1
-    ne $S10, ")", rx927_fail
-    add rx927_pos, 1
-    goto alt932_end
-  alt932_1:
+    add $I11, rx971_pos, 1
+    gt $I11, rx971_eos, rx971_fail
+    sub $I11, rx971_pos, rx971_off
+    substr $S10, rx971_tgt, $I11, 1
+    ne $S10, ")", rx971_fail
+    add rx971_pos, 1
+    goto alt976_end
+  alt976_1:
   # rx subrule "FAILGOAL" subtype=method negate=
-    rx927_cur."!cursor_pos"(rx927_pos)
-    $P10 = rx927_cur."FAILGOAL"("')'")
-    unless $P10, rx927_fail
-    rx927_pos = $P10."pos"()
-  alt932_end:
+    rx971_cur."!cursor_pos"(rx971_pos)
+    $P10 = rx971_cur."FAILGOAL"("')'")
+    unless $P10, rx971_fail
+    rx971_pos = $P10."pos"()
+  alt976_end:
   # rx pass
-    rx927_cur."!cursor_pass"(rx927_pos, "circumfix:sym<sigil>")
-    rx927_cur."!cursor_debug"("PASS  ", "circumfix:sym<sigil>", " at pos=", rx927_pos)
-    .return (rx927_cur)
-  rx927_fail:
+    rx971_cur."!cursor_pass"(rx971_pos, "circumfix:sym<sigil>")
+    rx971_cur."!cursor_debug"("PASS  ", "circumfix:sym<sigil>", " at pos=", rx971_pos)
+    .return (rx971_cur)
+  rx971_fail:
 .annotate 'line', 4
-    (rx927_rep, rx927_pos, $I10, $P10) = rx927_cur."!mark_fail"(0)
-    lt rx927_pos, -1, rx927_done
-    eq rx927_pos, -1, rx927_fail
+    (rx971_rep, rx971_pos, $I10, $P10) = rx971_cur."!mark_fail"(0)
+    lt rx971_pos, -1, rx971_done
+    eq rx971_pos, -1, rx971_fail
     jump $I10
-  rx927_done:
-    rx927_cur."!cursor_fail"()
-    rx927_cur."!cursor_debug"("FAIL  ", "circumfix:sym<sigil>")
-    .return (rx927_cur)
+  rx971_done:
+    rx971_cur."!cursor_fail"()
+    rx971_cur."!cursor_debug"("FAIL  ", "circumfix:sym<sigil>")
+    .return (rx971_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>"  :subid("226_1274853038.58734") :method
+.sub "!PREFIX__circumfix:sym<sigil>"  :subid("235_1275811487.95429") :method
 .annotate 'line', 4
-    $P929 = self."!PREFIX__!subrule"("sigil", "")
-    new $P930, "ResizablePMCArray"
-    push $P930, $P929
-    .return ($P930)
+    $P973 = self."!PREFIX__!subrule"("sigil", "")
+    new $P974, "ResizablePMCArray"
+    push $P974, $P973
+    .return ($P974)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "semilist"  :subid("227_1274853038.58734") :method :outer("11_1274853038.58734")
+.sub "semilist"  :subid("236_1275811487.95429") :method :outer("11_1275811487.95429")
 .annotate 'line', 4
-    .local string rx935_tgt
-    .local int rx935_pos
-    .local int rx935_off
-    .local int rx935_eos
-    .local int rx935_rep
-    .local pmc rx935_cur
-    (rx935_cur, rx935_pos, rx935_tgt) = self."!cursor_start"()
-    rx935_cur."!cursor_debug"("START ", "semilist")
-    .lex unicode:"$\x{a2}", rx935_cur
+    .local string rx979_tgt
+    .local int rx979_pos
+    .local int rx979_off
+    .local int rx979_eos
+    .local int rx979_rep
+    .local pmc rx979_cur
+    (rx979_cur, rx979_pos, rx979_tgt) = self."!cursor_start"()
+    rx979_cur."!cursor_debug"("START ", "semilist")
+    .lex unicode:"$\x{a2}", rx979_cur
     .local pmc match
     .lex "$/", match
-    length rx935_eos, rx935_tgt
-    set rx935_off, 0
-    lt rx935_pos, 2, rx935_start
-    sub rx935_off, rx935_pos, 1
-    substr rx935_tgt, rx935_tgt, rx935_off
-  rx935_start:
+    length rx979_eos, rx979_tgt
+    gt rx979_pos, rx979_eos, rx979_done
+    set rx979_off, 0
+    lt rx979_pos, 2, rx979_start
+    sub rx979_off, rx979_pos, 1
+    substr rx979_tgt, rx979_tgt, rx979_off
+  rx979_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan938_done
-    goto rxscan938_scan
-  rxscan938_loop:
-    ($P10) = rx935_cur."from"()
+    ne $I10, -1, rxscan983_done
+    goto rxscan983_scan
+  rxscan983_loop:
+    ($P10) = rx979_cur."from"()
     inc $P10
-    set rx935_pos, $P10
-    ge rx935_pos, rx935_eos, rxscan938_done
-  rxscan938_scan:
-    set_addr $I10, rxscan938_loop
-    rx935_cur."!mark_push"(0, rx935_pos, $I10)
-  rxscan938_done:
-.annotate 'line', 429
+    set rx979_pos, $P10
+    ge rx979_pos, rx979_eos, rxscan983_done
+  rxscan983_scan:
+    set_addr $I10, rxscan983_loop
+    rx979_cur."!mark_push"(0, rx979_pos, $I10)
+  rxscan983_done:
+.annotate 'line', 442
   # rx subrule "ws" subtype=method negate=
-    rx935_cur."!cursor_pos"(rx935_pos)
-    $P10 = rx935_cur."ws"()
-    unless $P10, rx935_fail
-    rx935_pos = $P10."pos"()
+    rx979_cur."!cursor_pos"(rx979_pos)
+    $P10 = rx979_cur."ws"()
+    unless $P10, rx979_fail
+    rx979_pos = $P10."pos"()
   # rx subrule "statement" subtype=capture negate=
-    rx935_cur."!cursor_pos"(rx935_pos)
-    $P10 = rx935_cur."statement"()
-    unless $P10, rx935_fail
-    rx935_cur."!mark_push"(0, -1, 0, $P10)
+    rx979_cur."!cursor_pos"(rx979_pos)
+    $P10 = rx979_cur."statement"()
+    unless $P10, rx979_fail
+    rx979_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx935_pos = $P10."pos"()
+    rx979_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx935_cur."!cursor_pos"(rx935_pos)
-    $P10 = rx935_cur."ws"()
-    unless $P10, rx935_fail
-    rx935_pos = $P10."pos"()
+    rx979_cur."!cursor_pos"(rx979_pos)
+    $P10 = rx979_cur."ws"()
+    unless $P10, rx979_fail
+    rx979_pos = $P10."pos"()
   # rx pass
-    rx935_cur."!cursor_pass"(rx935_pos, "semilist")
-    rx935_cur."!cursor_debug"("PASS  ", "semilist", " at pos=", rx935_pos)
-    .return (rx935_cur)
-  rx935_fail:
+    rx979_cur."!cursor_pass"(rx979_pos, "semilist")
+    rx979_cur."!cursor_debug"("PASS  ", "semilist", " at pos=", rx979_pos)
+    .return (rx979_cur)
+  rx979_fail:
 .annotate 'line', 4
-    (rx935_rep, rx935_pos, $I10, $P10) = rx935_cur."!mark_fail"(0)
-    lt rx935_pos, -1, rx935_done
-    eq rx935_pos, -1, rx935_fail
+    (rx979_rep, rx979_pos, $I10, $P10) = rx979_cur."!mark_fail"(0)
+    lt rx979_pos, -1, rx979_done
+    eq rx979_pos, -1, rx979_fail
     jump $I10
-  rx935_done:
-    rx935_cur."!cursor_fail"()
-    rx935_cur."!cursor_debug"("FAIL  ", "semilist")
-    .return (rx935_cur)
+  rx979_done:
+    rx979_cur."!cursor_fail"()
+    rx979_cur."!cursor_debug"("FAIL  ", "semilist")
+    .return (rx979_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist"  :subid("228_1274853038.58734") :method
+.sub "!PREFIX__semilist"  :subid("237_1275811487.95429") :method
 .annotate 'line', 4
-    new $P937, "ResizablePMCArray"
-    push $P937, ""
-    .return ($P937)
+    $P981 = self."!PREFIX__!subrule"("ws", "")
+    new $P982, "ResizablePMCArray"
+    push $P982, $P981
+    .return ($P982)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixish"  :subid("229_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx942_tgt
-    .local int rx942_pos
-    .local int rx942_off
-    .local int rx942_eos
-    .local int rx942_rep
-    .local pmc rx942_cur
-    (rx942_cur, rx942_pos, rx942_tgt) = self."!cursor_start"()
-    rx942_cur."!cursor_debug"("START ", "infixish")
-    .lex unicode:"$\x{a2}", rx942_cur
-    .local pmc match
-    .lex "$/", match
-    length rx942_eos, rx942_tgt
-    set rx942_off, 0
-    lt rx942_pos, 2, rx942_start
-    sub rx942_off, rx942_pos, 1
-    substr rx942_tgt, rx942_tgt, rx942_off
-  rx942_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan945_done
-    goto rxscan945_scan
-  rxscan945_loop:
-    ($P10) = rx942_cur."from"()
-    inc $P10
-    set rx942_pos, $P10
-    ge rx942_pos, rx942_eos, rxscan945_done
-  rxscan945_scan:
-    set_addr $I10, rxscan945_loop
-    rx942_cur."!mark_push"(0, rx942_pos, $I10)
-  rxscan945_done:
-.annotate 'line', 452
+.sub "infixish"  :subid("238_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx987_tgt
+    .local int rx987_pos
+    .local int rx987_off
+    .local int rx987_eos
+    .local int rx987_rep
+    .local pmc rx987_cur
+    (rx987_cur, rx987_pos, rx987_tgt) = self."!cursor_start"()
+    rx987_cur."!cursor_debug"("START ", "infixish")
+    .lex unicode:"$\x{a2}", rx987_cur
+    .local pmc match
+    .lex "$/", match
+    length rx987_eos, rx987_tgt
+    gt rx987_pos, rx987_eos, rx987_done
+    set rx987_off, 0
+    lt rx987_pos, 2, rx987_start
+    sub rx987_off, rx987_pos, 1
+    substr rx987_tgt, rx987_tgt, rx987_off
+  rx987_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan990_done
+    goto rxscan990_scan
+  rxscan990_loop:
+    ($P10) = rx987_cur."from"()
+    inc $P10
+    set rx987_pos, $P10
+    ge rx987_pos, rx987_eos, rxscan990_done
+  rxscan990_scan:
+    set_addr $I10, rxscan990_loop
+    rx987_cur."!mark_push"(0, rx987_pos, $I10)
+  rxscan990_done:
+.annotate 'line', 465
   # rx subrule "infixstopper" subtype=zerowidth negate=1
-    rx942_cur."!cursor_pos"(rx942_pos)
-    $P10 = rx942_cur."infixstopper"()
-    if $P10, rx942_fail
+    rx987_cur."!cursor_pos"(rx987_pos)
+    $P10 = rx987_cur."infixstopper"()
+    if $P10, rx987_fail
   # rx subrule "infix" subtype=capture negate=
-    rx942_cur."!cursor_pos"(rx942_pos)
-    $P10 = rx942_cur."infix"()
-    unless $P10, rx942_fail
-    rx942_cur."!mark_push"(0, -1, 0, $P10)
+    rx987_cur."!cursor_pos"(rx987_pos)
+    $P10 = rx987_cur."infix"()
+    unless $P10, rx987_fail
+    rx987_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("OPER=infix")
-    rx942_pos = $P10."pos"()
+    rx987_pos = $P10."pos"()
   # rx pass
-    rx942_cur."!cursor_pass"(rx942_pos, "infixish")
-    rx942_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx942_pos)
-    .return (rx942_cur)
-  rx942_fail:
-.annotate 'line', 433
-    (rx942_rep, rx942_pos, $I10, $P10) = rx942_cur."!mark_fail"(0)
-    lt rx942_pos, -1, rx942_done
-    eq rx942_pos, -1, rx942_fail
+    rx987_cur."!cursor_pass"(rx987_pos, "infixish")
+    rx987_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx987_pos)
+    .return (rx987_cur)
+  rx987_fail:
+.annotate 'line', 446
+    (rx987_rep, rx987_pos, $I10, $P10) = rx987_cur."!mark_fail"(0)
+    lt rx987_pos, -1, rx987_done
+    eq rx987_pos, -1, rx987_fail
     jump $I10
-  rx942_done:
-    rx942_cur."!cursor_fail"()
-    rx942_cur."!cursor_debug"("FAIL  ", "infixish")
-    .return (rx942_cur)
+  rx987_done:
+    rx987_cur."!cursor_fail"()
+    rx987_cur."!cursor_debug"("FAIL  ", "infixish")
+    .return (rx987_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("230_1274853038.58734") :method
-.annotate 'line', 433
-    new $P944, "ResizablePMCArray"
-    push $P944, ""
-    .return ($P944)
+.sub "!PREFIX__infixish"  :subid("239_1275811487.95429") :method
+.annotate 'line', 446
+    new $P989, "ResizablePMCArray"
+    push $P989, ""
+    .return ($P989)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixstopper"  :subid("231_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx947_tgt
-    .local int rx947_pos
-    .local int rx947_off
-    .local int rx947_eos
-    .local int rx947_rep
-    .local pmc rx947_cur
-    (rx947_cur, rx947_pos, rx947_tgt) = self."!cursor_start"()
-    rx947_cur."!cursor_debug"("START ", "infixstopper")
-    .lex unicode:"$\x{a2}", rx947_cur
-    .local pmc match
-    .lex "$/", match
-    length rx947_eos, rx947_tgt
-    set rx947_off, 0
-    lt rx947_pos, 2, rx947_start
-    sub rx947_off, rx947_pos, 1
-    substr rx947_tgt, rx947_tgt, rx947_off
-  rx947_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan950_done
-    goto rxscan950_scan
-  rxscan950_loop:
-    ($P10) = rx947_cur."from"()
-    inc $P10
-    set rx947_pos, $P10
-    ge rx947_pos, rx947_eos, rxscan950_done
-  rxscan950_scan:
-    set_addr $I10, rxscan950_loop
-    rx947_cur."!mark_push"(0, rx947_pos, $I10)
-  rxscan950_done:
-.annotate 'line', 453
+.sub "infixstopper"  :subid("240_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx992_tgt
+    .local int rx992_pos
+    .local int rx992_off
+    .local int rx992_eos
+    .local int rx992_rep
+    .local pmc rx992_cur
+    (rx992_cur, rx992_pos, rx992_tgt) = self."!cursor_start"()
+    rx992_cur."!cursor_debug"("START ", "infixstopper")
+    .lex unicode:"$\x{a2}", rx992_cur
+    .local pmc match
+    .lex "$/", match
+    length rx992_eos, rx992_tgt
+    gt rx992_pos, rx992_eos, rx992_done
+    set rx992_off, 0
+    lt rx992_pos, 2, rx992_start
+    sub rx992_off, rx992_pos, 1
+    substr rx992_tgt, rx992_tgt, rx992_off
+  rx992_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan995_done
+    goto rxscan995_scan
+  rxscan995_loop:
+    ($P10) = rx992_cur."from"()
+    inc $P10
+    set rx992_pos, $P10
+    ge rx992_pos, rx992_eos, rxscan995_done
+  rxscan995_scan:
+    set_addr $I10, rxscan995_loop
+    rx992_cur."!mark_push"(0, rx992_pos, $I10)
+  rxscan995_done:
+.annotate 'line', 466
   # rx subrule "lambda" subtype=zerowidth negate=
-    rx947_cur."!cursor_pos"(rx947_pos)
-    $P10 = rx947_cur."lambda"()
-    unless $P10, rx947_fail
-  # rx pass
-    rx947_cur."!cursor_pass"(rx947_pos, "infixstopper")
-    rx947_cur."!cursor_debug"("PASS  ", "infixstopper", " at pos=", rx947_pos)
-    .return (rx947_cur)
-  rx947_fail:
-.annotate 'line', 433
-    (rx947_rep, rx947_pos, $I10, $P10) = rx947_cur."!mark_fail"(0)
-    lt rx947_pos, -1, rx947_done
-    eq rx947_pos, -1, rx947_fail
+    rx992_cur."!cursor_pos"(rx992_pos)
+    $P10 = rx992_cur."lambda"()
+    unless $P10, rx992_fail
+  # rx pass
+    rx992_cur."!cursor_pass"(rx992_pos, "infixstopper")
+    rx992_cur."!cursor_debug"("PASS  ", "infixstopper", " at pos=", rx992_pos)
+    .return (rx992_cur)
+  rx992_fail:
+.annotate 'line', 446
+    (rx992_rep, rx992_pos, $I10, $P10) = rx992_cur."!mark_fail"(0)
+    lt rx992_pos, -1, rx992_done
+    eq rx992_pos, -1, rx992_fail
     jump $I10
-  rx947_done:
-    rx947_cur."!cursor_fail"()
-    rx947_cur."!cursor_debug"("FAIL  ", "infixstopper")
-    .return (rx947_cur)
+  rx992_done:
+    rx992_cur."!cursor_fail"()
+    rx992_cur."!cursor_debug"("FAIL  ", "infixstopper")
+    .return (rx992_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper"  :subid("232_1274853038.58734") :method
-.annotate 'line', 433
-    new $P949, "ResizablePMCArray"
-    push $P949, ""
-    .return ($P949)
+.sub "!PREFIX__infixstopper"  :subid("241_1275811487.95429") :method
+.annotate 'line', 446
+    new $P994, "ResizablePMCArray"
+    push $P994, ""
+    .return ($P994)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>"  :subid("233_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx952_tgt
-    .local int rx952_pos
-    .local int rx952_off
-    .local int rx952_eos
-    .local int rx952_rep
-    .local pmc rx952_cur
-    (rx952_cur, rx952_pos, rx952_tgt) = self."!cursor_start"()
-    rx952_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
-    .lex unicode:"$\x{a2}", rx952_cur
-    .local pmc match
-    .lex "$/", match
-    length rx952_eos, rx952_tgt
-    set rx952_off, 0
-    lt rx952_pos, 2, rx952_start
-    sub rx952_off, rx952_pos, 1
-    substr rx952_tgt, rx952_tgt, rx952_off
-  rx952_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan956_done
-    goto rxscan956_scan
-  rxscan956_loop:
-    ($P10) = rx952_cur."from"()
-    inc $P10
-    set rx952_pos, $P10
-    ge rx952_pos, rx952_eos, rxscan956_done
-  rxscan956_scan:
-    set_addr $I10, rxscan956_loop
-    rx952_cur."!mark_push"(0, rx952_pos, $I10)
-  rxscan956_done:
-.annotate 'line', 456
+.sub "postcircumfix:sym<[ ]>"  :subid("242_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx997_tgt
+    .local int rx997_pos
+    .local int rx997_off
+    .local int rx997_eos
+    .local int rx997_rep
+    .local pmc rx997_cur
+    (rx997_cur, rx997_pos, rx997_tgt) = self."!cursor_start"()
+    rx997_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+    .lex unicode:"$\x{a2}", rx997_cur
+    .local pmc match
+    .lex "$/", match
+    length rx997_eos, rx997_tgt
+    gt rx997_pos, rx997_eos, rx997_done
+    set rx997_off, 0
+    lt rx997_pos, 2, rx997_start
+    sub rx997_off, rx997_pos, 1
+    substr rx997_tgt, rx997_tgt, rx997_off
+  rx997_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1001_done
+    goto rxscan1001_scan
+  rxscan1001_loop:
+    ($P10) = rx997_cur."from"()
+    inc $P10
+    set rx997_pos, $P10
+    ge rx997_pos, rx997_eos, rxscan1001_done
+  rxscan1001_scan:
+    set_addr $I10, rxscan1001_loop
+    rx997_cur."!mark_push"(0, rx997_pos, $I10)
+  rxscan1001_done:
+.annotate 'line', 469
   # rx literal  "["
-    add $I11, rx952_pos, 1
-    gt $I11, rx952_eos, rx952_fail
-    sub $I11, rx952_pos, rx952_off
-    substr $S10, rx952_tgt, $I11, 1
-    ne $S10, "[", rx952_fail
-    add rx952_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx952_cur."!cursor_pos"(rx952_pos)
-    $P10 = rx952_cur."ws"()
-    unless $P10, rx952_fail
-    rx952_pos = $P10."pos"()
+    add $I11, rx997_pos, 1
+    gt $I11, rx997_eos, rx997_fail
+    sub $I11, rx997_pos, rx997_off
+    substr $S10, rx997_tgt, $I11, 1
+    ne $S10, "[", rx997_fail
+    add rx997_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx997_cur."!cursor_pos"(rx997_pos)
+    $P10 = rx997_cur."ws"()
+    unless $P10, rx997_fail
+    rx997_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx952_cur."!cursor_pos"(rx952_pos)
-    $P10 = rx952_cur."EXPR"()
-    unless $P10, rx952_fail
-    rx952_cur."!mark_push"(0, -1, 0, $P10)
+    rx997_cur."!cursor_pos"(rx997_pos)
+    $P10 = rx997_cur."EXPR"()
+    unless $P10, rx997_fail
+    rx997_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx952_pos = $P10."pos"()
+    rx997_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx952_pos, 1
-    gt $I11, rx952_eos, rx952_fail
-    sub $I11, rx952_pos, rx952_off
-    substr $S10, rx952_tgt, $I11, 1
-    ne $S10, "]", rx952_fail
-    add rx952_pos, 1
-.annotate 'line', 457
+    add $I11, rx997_pos, 1
+    gt $I11, rx997_eos, rx997_fail
+    sub $I11, rx997_pos, rx997_off
+    substr $S10, rx997_tgt, $I11, 1
+    ne $S10, "]", rx997_fail
+    add rx997_pos, 1
+.annotate 'line', 470
   # rx subrule "O" subtype=capture negate=
-    rx952_cur."!cursor_pos"(rx952_pos)
-    $P10 = rx952_cur."O"("%methodop")
-    unless $P10, rx952_fail
-    rx952_cur."!mark_push"(0, -1, 0, $P10)
+    rx997_cur."!cursor_pos"(rx997_pos)
+    $P10 = rx997_cur."O"("%methodop")
+    unless $P10, rx997_fail
+    rx997_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx952_pos = $P10."pos"()
-.annotate 'line', 455
+    rx997_pos = $P10."pos"()
+.annotate 'line', 468
   # rx pass
-    rx952_cur."!cursor_pass"(rx952_pos, "postcircumfix:sym<[ ]>")
-    rx952_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<[ ]>", " at pos=", rx952_pos)
-    .return (rx952_cur)
-  rx952_fail:
-.annotate 'line', 433
-    (rx952_rep, rx952_pos, $I10, $P10) = rx952_cur."!mark_fail"(0)
-    lt rx952_pos, -1, rx952_done
-    eq rx952_pos, -1, rx952_fail
+    rx997_cur."!cursor_pass"(rx997_pos, "postcircumfix:sym<[ ]>")
+    rx997_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<[ ]>", " at pos=", rx997_pos)
+    .return (rx997_cur)
+  rx997_fail:
+.annotate 'line', 446
+    (rx997_rep, rx997_pos, $I10, $P10) = rx997_cur."!mark_fail"(0)
+    lt rx997_pos, -1, rx997_done
+    eq rx997_pos, -1, rx997_fail
     jump $I10
-  rx952_done:
-    rx952_cur."!cursor_fail"()
-    rx952_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<[ ]>")
-    .return (rx952_cur)
+  rx997_done:
+    rx997_cur."!cursor_fail"()
+    rx997_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<[ ]>")
+    .return (rx997_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("234_1274853038.58734") :method
-.annotate 'line', 433
-    $P954 = self."!PREFIX__!subrule"("", "[")
-    new $P955, "ResizablePMCArray"
-    push $P955, $P954
-    .return ($P955)
+.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("243_1275811487.95429") :method
+.annotate 'line', 446
+    $P999 = self."!PREFIX__!subrule"("ws", "[")
+    new $P1000, "ResizablePMCArray"
+    push $P1000, $P999
+    .return ($P1000)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>"  :subid("235_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx958_tgt
-    .local int rx958_pos
-    .local int rx958_off
-    .local int rx958_eos
-    .local int rx958_rep
-    .local pmc rx958_cur
-    (rx958_cur, rx958_pos, rx958_tgt) = self."!cursor_start"()
-    rx958_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx958_cur
-    .local pmc match
-    .lex "$/", match
-    length rx958_eos, rx958_tgt
-    set rx958_off, 0
-    lt rx958_pos, 2, rx958_start
-    sub rx958_off, rx958_pos, 1
-    substr rx958_tgt, rx958_tgt, rx958_off
-  rx958_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan962_done
-    goto rxscan962_scan
-  rxscan962_loop:
-    ($P10) = rx958_cur."from"()
-    inc $P10
-    set rx958_pos, $P10
-    ge rx958_pos, rx958_eos, rxscan962_done
-  rxscan962_scan:
-    set_addr $I10, rxscan962_loop
-    rx958_cur."!mark_push"(0, rx958_pos, $I10)
-  rxscan962_done:
-.annotate 'line', 461
+.sub "postcircumfix:sym<{ }>"  :subid("244_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1003_tgt
+    .local int rx1003_pos
+    .local int rx1003_off
+    .local int rx1003_eos
+    .local int rx1003_rep
+    .local pmc rx1003_cur
+    (rx1003_cur, rx1003_pos, rx1003_tgt) = self."!cursor_start"()
+    rx1003_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx1003_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1003_eos, rx1003_tgt
+    gt rx1003_pos, rx1003_eos, rx1003_done
+    set rx1003_off, 0
+    lt rx1003_pos, 2, rx1003_start
+    sub rx1003_off, rx1003_pos, 1
+    substr rx1003_tgt, rx1003_tgt, rx1003_off
+  rx1003_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1007_done
+    goto rxscan1007_scan
+  rxscan1007_loop:
+    ($P10) = rx1003_cur."from"()
+    inc $P10
+    set rx1003_pos, $P10
+    ge rx1003_pos, rx1003_eos, rxscan1007_done
+  rxscan1007_scan:
+    set_addr $I10, rxscan1007_loop
+    rx1003_cur."!mark_push"(0, rx1003_pos, $I10)
+  rxscan1007_done:
+.annotate 'line', 474
   # rx literal  "{"
-    add $I11, rx958_pos, 1
-    gt $I11, rx958_eos, rx958_fail
-    sub $I11, rx958_pos, rx958_off
-    substr $S10, rx958_tgt, $I11, 1
-    ne $S10, "{", rx958_fail
-    add rx958_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx958_cur."!cursor_pos"(rx958_pos)
-    $P10 = rx958_cur."ws"()
-    unless $P10, rx958_fail
-    rx958_pos = $P10."pos"()
+    add $I11, rx1003_pos, 1
+    gt $I11, rx1003_eos, rx1003_fail
+    sub $I11, rx1003_pos, rx1003_off
+    substr $S10, rx1003_tgt, $I11, 1
+    ne $S10, "{", rx1003_fail
+    add rx1003_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx1003_cur."!cursor_pos"(rx1003_pos)
+    $P10 = rx1003_cur."ws"()
+    unless $P10, rx1003_fail
+    rx1003_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx958_cur."!cursor_pos"(rx958_pos)
-    $P10 = rx958_cur."EXPR"()
-    unless $P10, rx958_fail
-    rx958_cur."!mark_push"(0, -1, 0, $P10)
+    rx1003_cur."!cursor_pos"(rx1003_pos)
+    $P10 = rx1003_cur."EXPR"()
+    unless $P10, rx1003_fail
+    rx1003_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx958_pos = $P10."pos"()
+    rx1003_pos = $P10."pos"()
   # rx literal  "}"
-    add $I11, rx958_pos, 1
-    gt $I11, rx958_eos, rx958_fail
-    sub $I11, rx958_pos, rx958_off
-    substr $S10, rx958_tgt, $I11, 1
-    ne $S10, "}", rx958_fail
-    add rx958_pos, 1
-.annotate 'line', 462
+    add $I11, rx1003_pos, 1
+    gt $I11, rx1003_eos, rx1003_fail
+    sub $I11, rx1003_pos, rx1003_off
+    substr $S10, rx1003_tgt, $I11, 1
+    ne $S10, "}", rx1003_fail
+    add rx1003_pos, 1
+.annotate 'line', 475
   # rx subrule "O" subtype=capture negate=
-    rx958_cur."!cursor_pos"(rx958_pos)
-    $P10 = rx958_cur."O"("%methodop")
-    unless $P10, rx958_fail
-    rx958_cur."!mark_push"(0, -1, 0, $P10)
+    rx1003_cur."!cursor_pos"(rx1003_pos)
+    $P10 = rx1003_cur."O"("%methodop")
+    unless $P10, rx1003_fail
+    rx1003_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx958_pos = $P10."pos"()
-.annotate 'line', 460
+    rx1003_pos = $P10."pos"()
+.annotate 'line', 473
   # rx pass
-    rx958_cur."!cursor_pass"(rx958_pos, "postcircumfix:sym<{ }>")
-    rx958_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<{ }>", " at pos=", rx958_pos)
-    .return (rx958_cur)
-  rx958_fail:
-.annotate 'line', 433
-    (rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0)
-    lt rx958_pos, -1, rx958_done
-    eq rx958_pos, -1, rx958_fail
+    rx1003_cur."!cursor_pass"(rx1003_pos, "postcircumfix:sym<{ }>")
+    rx1003_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<{ }>", " at pos=", rx1003_pos)
+    .return (rx1003_cur)
+  rx1003_fail:
+.annotate 'line', 446
+    (rx1003_rep, rx1003_pos, $I10, $P10) = rx1003_cur."!mark_fail"(0)
+    lt rx1003_pos, -1, rx1003_done
+    eq rx1003_pos, -1, rx1003_fail
     jump $I10
-  rx958_done:
-    rx958_cur."!cursor_fail"()
-    rx958_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<{ }>")
-    .return (rx958_cur)
+  rx1003_done:
+    rx1003_cur."!cursor_fail"()
+    rx1003_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<{ }>")
+    .return (rx1003_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("236_1274853038.58734") :method
-.annotate 'line', 433
-    $P960 = self."!PREFIX__!subrule"("", "{")
-    new $P961, "ResizablePMCArray"
-    push $P961, $P960
-    .return ($P961)
+.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("245_1275811487.95429") :method
+.annotate 'line', 446
+    $P1005 = self."!PREFIX__!subrule"("ws", "{")
+    new $P1006, "ResizablePMCArray"
+    push $P1006, $P1005
+    .return ($P1006)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>"  :subid("237_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx964_tgt
-    .local int rx964_pos
-    .local int rx964_off
-    .local int rx964_eos
-    .local int rx964_rep
-    .local pmc rx964_cur
-    (rx964_cur, rx964_pos, rx964_tgt) = self."!cursor_start"()
-    rx964_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
-    .lex unicode:"$\x{a2}", rx964_cur
-    .local pmc match
-    .lex "$/", match
-    length rx964_eos, rx964_tgt
-    set rx964_off, 0
-    lt rx964_pos, 2, rx964_start
-    sub rx964_off, rx964_pos, 1
-    substr rx964_tgt, rx964_tgt, rx964_off
-  rx964_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan967_done
-    goto rxscan967_scan
-  rxscan967_loop:
-    ($P10) = rx964_cur."from"()
-    inc $P10
-    set rx964_pos, $P10
-    ge rx964_pos, rx964_eos, rxscan967_done
-  rxscan967_scan:
-    set_addr $I10, rxscan967_loop
-    rx964_cur."!mark_push"(0, rx964_pos, $I10)
-  rxscan967_done:
-.annotate 'line', 466
+.sub "postcircumfix:sym<ang>"  :subid("246_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1009_tgt
+    .local int rx1009_pos
+    .local int rx1009_off
+    .local int rx1009_eos
+    .local int rx1009_rep
+    .local pmc rx1009_cur
+    (rx1009_cur, rx1009_pos, rx1009_tgt) = self."!cursor_start"()
+    rx1009_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
+    .lex unicode:"$\x{a2}", rx1009_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1009_eos, rx1009_tgt
+    gt rx1009_pos, rx1009_eos, rx1009_done
+    set rx1009_off, 0
+    lt rx1009_pos, 2, rx1009_start
+    sub rx1009_off, rx1009_pos, 1
+    substr rx1009_tgt, rx1009_tgt, rx1009_off
+  rx1009_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1012_done
+    goto rxscan1012_scan
+  rxscan1012_loop:
+    ($P10) = rx1009_cur."from"()
+    inc $P10
+    set rx1009_pos, $P10
+    ge rx1009_pos, rx1009_eos, rxscan1012_done
+  rxscan1012_scan:
+    set_addr $I10, rxscan1012_loop
+    rx1009_cur."!mark_push"(0, rx1009_pos, $I10)
+  rxscan1012_done:
+.annotate 'line', 479
   # rx enumcharlist negate=0 zerowidth
-    ge rx964_pos, rx964_eos, rx964_fail
-    sub $I10, rx964_pos, rx964_off
-    substr $S10, rx964_tgt, $I10, 1
+    ge rx1009_pos, rx1009_eos, rx1009_fail
+    sub $I10, rx1009_pos, rx1009_off
+    substr $S10, rx1009_tgt, $I10, 1
     index $I11, "<", $S10
-    lt $I11, 0, rx964_fail
+    lt $I11, 0, rx1009_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx964_cur."!cursor_pos"(rx964_pos)
-    $P10 = rx964_cur."quote_EXPR"(":q")
-    unless $P10, rx964_fail
-    rx964_cur."!mark_push"(0, -1, 0, $P10)
+    rx1009_cur."!cursor_pos"(rx1009_pos)
+    $P10 = rx1009_cur."quote_EXPR"(":q")
+    unless $P10, rx1009_fail
+    rx1009_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx964_pos = $P10."pos"()
-.annotate 'line', 467
+    rx1009_pos = $P10."pos"()
+.annotate 'line', 480
   # rx subrule "O" subtype=capture negate=
-    rx964_cur."!cursor_pos"(rx964_pos)
-    $P10 = rx964_cur."O"("%methodop")
-    unless $P10, rx964_fail
-    rx964_cur."!mark_push"(0, -1, 0, $P10)
+    rx1009_cur."!cursor_pos"(rx1009_pos)
+    $P10 = rx1009_cur."O"("%methodop")
+    unless $P10, rx1009_fail
+    rx1009_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx964_pos = $P10."pos"()
-.annotate 'line', 465
+    rx1009_pos = $P10."pos"()
+.annotate 'line', 478
   # rx pass
-    rx964_cur."!cursor_pass"(rx964_pos, "postcircumfix:sym<ang>")
-    rx964_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<ang>", " at pos=", rx964_pos)
-    .return (rx964_cur)
-  rx964_fail:
-.annotate 'line', 433
-    (rx964_rep, rx964_pos, $I10, $P10) = rx964_cur."!mark_fail"(0)
-    lt rx964_pos, -1, rx964_done
-    eq rx964_pos, -1, rx964_fail
+    rx1009_cur."!cursor_pass"(rx1009_pos, "postcircumfix:sym<ang>")
+    rx1009_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<ang>", " at pos=", rx1009_pos)
+    .return (rx1009_cur)
+  rx1009_fail:
+.annotate 'line', 446
+    (rx1009_rep, rx1009_pos, $I10, $P10) = rx1009_cur."!mark_fail"(0)
+    lt rx1009_pos, -1, rx1009_done
+    eq rx1009_pos, -1, rx1009_fail
     jump $I10
-  rx964_done:
-    rx964_cur."!cursor_fail"()
-    rx964_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<ang>")
-    .return (rx964_cur)
+  rx1009_done:
+    rx1009_cur."!cursor_fail"()
+    rx1009_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<ang>")
+    .return (rx1009_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("238_1274853038.58734") :method
-.annotate 'line', 433
-    new $P966, "ResizablePMCArray"
-    push $P966, "<"
-    .return ($P966)
+.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("247_1275811487.95429") :method
+.annotate 'line', 446
+    new $P1011, "ResizablePMCArray"
+    push $P1011, "<"
+    .return ($P1011)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>"  :subid("239_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx969_tgt
-    .local int rx969_pos
-    .local int rx969_off
-    .local int rx969_eos
-    .local int rx969_rep
-    .local pmc rx969_cur
-    (rx969_cur, rx969_pos, rx969_tgt) = self."!cursor_start"()
-    rx969_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
-    .lex unicode:"$\x{a2}", rx969_cur
-    .local pmc match
-    .lex "$/", match
-    length rx969_eos, rx969_tgt
-    set rx969_off, 0
-    lt rx969_pos, 2, rx969_start
-    sub rx969_off, rx969_pos, 1
-    substr rx969_tgt, rx969_tgt, rx969_off
-  rx969_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan973_done
-    goto rxscan973_scan
-  rxscan973_loop:
-    ($P10) = rx969_cur."from"()
-    inc $P10
-    set rx969_pos, $P10
-    ge rx969_pos, rx969_eos, rxscan973_done
-  rxscan973_scan:
-    set_addr $I10, rxscan973_loop
-    rx969_cur."!mark_push"(0, rx969_pos, $I10)
-  rxscan973_done:
-.annotate 'line', 471
+.sub "postcircumfix:sym<( )>"  :subid("248_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1014_tgt
+    .local int rx1014_pos
+    .local int rx1014_off
+    .local int rx1014_eos
+    .local int rx1014_rep
+    .local pmc rx1014_cur
+    (rx1014_cur, rx1014_pos, rx1014_tgt) = self."!cursor_start"()
+    rx1014_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
+    .lex unicode:"$\x{a2}", rx1014_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1014_eos, rx1014_tgt
+    gt rx1014_pos, rx1014_eos, rx1014_done
+    set rx1014_off, 0
+    lt rx1014_pos, 2, rx1014_start
+    sub rx1014_off, rx1014_pos, 1
+    substr rx1014_tgt, rx1014_tgt, rx1014_off
+  rx1014_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1018_done
+    goto rxscan1018_scan
+  rxscan1018_loop:
+    ($P10) = rx1014_cur."from"()
+    inc $P10
+    set rx1014_pos, $P10
+    ge rx1014_pos, rx1014_eos, rxscan1018_done
+  rxscan1018_scan:
+    set_addr $I10, rxscan1018_loop
+    rx1014_cur."!mark_push"(0, rx1014_pos, $I10)
+  rxscan1018_done:
+.annotate 'line', 484
   # rx literal  "("
-    add $I11, rx969_pos, 1
-    gt $I11, rx969_eos, rx969_fail
-    sub $I11, rx969_pos, rx969_off
-    substr $S10, rx969_tgt, $I11, 1
-    ne $S10, "(", rx969_fail
-    add rx969_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx969_cur."!cursor_pos"(rx969_pos)
-    $P10 = rx969_cur."ws"()
-    unless $P10, rx969_fail
-    rx969_pos = $P10."pos"()
+    add $I11, rx1014_pos, 1
+    gt $I11, rx1014_eos, rx1014_fail
+    sub $I11, rx1014_pos, rx1014_off
+    substr $S10, rx1014_tgt, $I11, 1
+    ne $S10, "(", rx1014_fail
+    add rx1014_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx1014_cur."!cursor_pos"(rx1014_pos)
+    $P10 = rx1014_cur."ws"()
+    unless $P10, rx1014_fail
+    rx1014_pos = $P10."pos"()
   # rx subrule "arglist" subtype=capture negate=
-    rx969_cur."!cursor_pos"(rx969_pos)
-    $P10 = rx969_cur."arglist"()
-    unless $P10, rx969_fail
-    rx969_cur."!mark_push"(0, -1, 0, $P10)
+    rx1014_cur."!cursor_pos"(rx1014_pos)
+    $P10 = rx1014_cur."arglist"()
+    unless $P10, rx1014_fail
+    rx1014_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx969_pos = $P10."pos"()
+    rx1014_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx969_pos, 1
-    gt $I11, rx969_eos, rx969_fail
-    sub $I11, rx969_pos, rx969_off
-    substr $S10, rx969_tgt, $I11, 1
-    ne $S10, ")", rx969_fail
-    add rx969_pos, 1
-.annotate 'line', 472
+    add $I11, rx1014_pos, 1
+    gt $I11, rx1014_eos, rx1014_fail
+    sub $I11, rx1014_pos, rx1014_off
+    substr $S10, rx1014_tgt, $I11, 1
+    ne $S10, ")", rx1014_fail
+    add rx1014_pos, 1
+.annotate 'line', 485
   # rx subrule "O" subtype=capture negate=
-    rx969_cur."!cursor_pos"(rx969_pos)
-    $P10 = rx969_cur."O"("%methodop")
-    unless $P10, rx969_fail
-    rx969_cur."!mark_push"(0, -1, 0, $P10)
+    rx1014_cur."!cursor_pos"(rx1014_pos)
+    $P10 = rx1014_cur."O"("%methodop")
+    unless $P10, rx1014_fail
+    rx1014_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx969_pos = $P10."pos"()
-.annotate 'line', 470
+    rx1014_pos = $P10."pos"()
+.annotate 'line', 483
   # rx pass
-    rx969_cur."!cursor_pass"(rx969_pos, "postcircumfix:sym<( )>")
-    rx969_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<( )>", " at pos=", rx969_pos)
-    .return (rx969_cur)
-  rx969_fail:
-.annotate 'line', 433
-    (rx969_rep, rx969_pos, $I10, $P10) = rx969_cur."!mark_fail"(0)
-    lt rx969_pos, -1, rx969_done
-    eq rx969_pos, -1, rx969_fail
+    rx1014_cur."!cursor_pass"(rx1014_pos, "postcircumfix:sym<( )>")
+    rx1014_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<( )>", " at pos=", rx1014_pos)
+    .return (rx1014_cur)
+  rx1014_fail:
+.annotate 'line', 446
+    (rx1014_rep, rx1014_pos, $I10, $P10) = rx1014_cur."!mark_fail"(0)
+    lt rx1014_pos, -1, rx1014_done
+    eq rx1014_pos, -1, rx1014_fail
     jump $I10
-  rx969_done:
-    rx969_cur."!cursor_fail"()
-    rx969_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<( )>")
-    .return (rx969_cur)
+  rx1014_done:
+    rx1014_cur."!cursor_fail"()
+    rx1014_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<( )>")
+    .return (rx1014_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("240_1274853038.58734") :method
-.annotate 'line', 433
-    $P971 = self."!PREFIX__!subrule"("", "(")
-    new $P972, "ResizablePMCArray"
-    push $P972, $P971
-    .return ($P972)
+.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("249_1275811487.95429") :method
+.annotate 'line', 446
+    $P1016 = self."!PREFIX__!subrule"("ws", "(")
+    new $P1017, "ResizablePMCArray"
+    push $P1017, $P1016
+    .return ($P1017)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>"  :subid("241_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx975_tgt
-    .local int rx975_pos
-    .local int rx975_off
-    .local int rx975_eos
-    .local int rx975_rep
-    .local pmc rx975_cur
-    (rx975_cur, rx975_pos, rx975_tgt) = self."!cursor_start"()
-    rx975_cur."!cursor_debug"("START ", "postfix:sym<.>")
-    .lex unicode:"$\x{a2}", rx975_cur
-    .local pmc match
-    .lex "$/", match
-    length rx975_eos, rx975_tgt
-    set rx975_off, 0
-    lt rx975_pos, 2, rx975_start
-    sub rx975_off, rx975_pos, 1
-    substr rx975_tgt, rx975_tgt, rx975_off
-  rx975_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan979_done
-    goto rxscan979_scan
-  rxscan979_loop:
-    ($P10) = rx975_cur."from"()
-    inc $P10
-    set rx975_pos, $P10
-    ge rx975_pos, rx975_eos, rxscan979_done
-  rxscan979_scan:
-    set_addr $I10, rxscan979_loop
-    rx975_cur."!mark_push"(0, rx975_pos, $I10)
-  rxscan979_done:
-.annotate 'line', 475
+.sub "postfix:sym<.>"  :subid("250_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1020_tgt
+    .local int rx1020_pos
+    .local int rx1020_off
+    .local int rx1020_eos
+    .local int rx1020_rep
+    .local pmc rx1020_cur
+    (rx1020_cur, rx1020_pos, rx1020_tgt) = self."!cursor_start"()
+    rx1020_cur."!cursor_debug"("START ", "postfix:sym<.>")
+    .lex unicode:"$\x{a2}", rx1020_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1020_eos, rx1020_tgt
+    gt rx1020_pos, rx1020_eos, rx1020_done
+    set rx1020_off, 0
+    lt rx1020_pos, 2, rx1020_start
+    sub rx1020_off, rx1020_pos, 1
+    substr rx1020_tgt, rx1020_tgt, rx1020_off
+  rx1020_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1024_done
+    goto rxscan1024_scan
+  rxscan1024_loop:
+    ($P10) = rx1020_cur."from"()
+    inc $P10
+    set rx1020_pos, $P10
+    ge rx1020_pos, rx1020_eos, rxscan1024_done
+  rxscan1024_scan:
+    set_addr $I10, rxscan1024_loop
+    rx1020_cur."!mark_push"(0, rx1020_pos, $I10)
+  rxscan1024_done:
+.annotate 'line', 488
   # rx subrule "dotty" subtype=capture negate=
-    rx975_cur."!cursor_pos"(rx975_pos)
-    $P10 = rx975_cur."dotty"()
-    unless $P10, rx975_fail
-    rx975_cur."!mark_push"(0, -1, 0, $P10)
+    rx1020_cur."!cursor_pos"(rx1020_pos)
+    $P10 = rx1020_cur."dotty"()
+    unless $P10, rx1020_fail
+    rx1020_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("dotty")
-    rx975_pos = $P10."pos"()
+    rx1020_pos = $P10."pos"()
   # rx subrule "O" subtype=capture negate=
-    rx975_cur."!cursor_pos"(rx975_pos)
-    $P10 = rx975_cur."O"("%methodop")
-    unless $P10, rx975_fail
-    rx975_cur."!mark_push"(0, -1, 0, $P10)
+    rx1020_cur."!cursor_pos"(rx1020_pos)
+    $P10 = rx1020_cur."O"("%methodop")
+    unless $P10, rx1020_fail
+    rx1020_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx975_pos = $P10."pos"()
+    rx1020_pos = $P10."pos"()
   # rx pass
-    rx975_cur."!cursor_pass"(rx975_pos, "postfix:sym<.>")
-    rx975_cur."!cursor_debug"("PASS  ", "postfix:sym<.>", " at pos=", rx975_pos)
-    .return (rx975_cur)
-  rx975_fail:
-.annotate 'line', 433
-    (rx975_rep, rx975_pos, $I10, $P10) = rx975_cur."!mark_fail"(0)
-    lt rx975_pos, -1, rx975_done
-    eq rx975_pos, -1, rx975_fail
+    rx1020_cur."!cursor_pass"(rx1020_pos, "postfix:sym<.>")
+    rx1020_cur."!cursor_debug"("PASS  ", "postfix:sym<.>", " at pos=", rx1020_pos)
+    .return (rx1020_cur)
+  rx1020_fail:
+.annotate 'line', 446
+    (rx1020_rep, rx1020_pos, $I10, $P10) = rx1020_cur."!mark_fail"(0)
+    lt rx1020_pos, -1, rx1020_done
+    eq rx1020_pos, -1, rx1020_fail
     jump $I10
-  rx975_done:
-    rx975_cur."!cursor_fail"()
-    rx975_cur."!cursor_debug"("FAIL  ", "postfix:sym<.>")
-    .return (rx975_cur)
+  rx1020_done:
+    rx1020_cur."!cursor_fail"()
+    rx1020_cur."!cursor_debug"("FAIL  ", "postfix:sym<.>")
+    .return (rx1020_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>"  :subid("242_1274853038.58734") :method
-.annotate 'line', 433
-    $P977 = self."!PREFIX__!subrule"("dotty", "")
-    new $P978, "ResizablePMCArray"
-    push $P978, $P977
-    .return ($P978)
+.sub "!PREFIX__postfix:sym<.>"  :subid("251_1275811487.95429") :method
+.annotate 'line', 446
+    $P1022 = self."!PREFIX__!subrule"("dotty", "")
+    new $P1023, "ResizablePMCArray"
+    push $P1023, $P1022
+    .return ($P1023)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>"  :subid("243_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx981_tgt
-    .local int rx981_pos
-    .local int rx981_off
-    .local int rx981_eos
-    .local int rx981_rep
-    .local pmc rx981_cur
-    (rx981_cur, rx981_pos, rx981_tgt) = self."!cursor_start"()
-    rx981_cur."!cursor_debug"("START ", "prefix:sym<++>")
-    .lex unicode:"$\x{a2}", rx981_cur
-    .local pmc match
-    .lex "$/", match
-    length rx981_eos, rx981_tgt
-    set rx981_off, 0
-    lt rx981_pos, 2, rx981_start
-    sub rx981_off, rx981_pos, 1
-    substr rx981_tgt, rx981_tgt, rx981_off
-  rx981_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan985_done
-    goto rxscan985_scan
-  rxscan985_loop:
-    ($P10) = rx981_cur."from"()
-    inc $P10
-    set rx981_pos, $P10
-    ge rx981_pos, rx981_eos, rxscan985_done
-  rxscan985_scan:
-    set_addr $I10, rxscan985_loop
-    rx981_cur."!mark_push"(0, rx981_pos, $I10)
-  rxscan985_done:
-.annotate 'line', 477
+.sub "prefix:sym<++>"  :subid("252_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1026_tgt
+    .local int rx1026_pos
+    .local int rx1026_off
+    .local int rx1026_eos
+    .local int rx1026_rep
+    .local pmc rx1026_cur
+    (rx1026_cur, rx1026_pos, rx1026_tgt) = self."!cursor_start"()
+    rx1026_cur."!cursor_debug"("START ", "prefix:sym<++>")
+    .lex unicode:"$\x{a2}", rx1026_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1026_eos, rx1026_tgt
+    gt rx1026_pos, rx1026_eos, rx1026_done
+    set rx1026_off, 0
+    lt rx1026_pos, 2, rx1026_start
+    sub rx1026_off, rx1026_pos, 1
+    substr rx1026_tgt, rx1026_tgt, rx1026_off
+  rx1026_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1030_done
+    goto rxscan1030_scan
+  rxscan1030_loop:
+    ($P10) = rx1026_cur."from"()
+    inc $P10
+    set rx1026_pos, $P10
+    ge rx1026_pos, rx1026_eos, rxscan1030_done
+  rxscan1030_scan:
+    set_addr $I10, rxscan1030_loop
+    rx1026_cur."!mark_push"(0, rx1026_pos, $I10)
+  rxscan1030_done:
+.annotate 'line', 490
   # rx subcapture "sym"
-    set_addr $I10, rxcap_986_fail
-    rx981_cur."!mark_push"(0, rx981_pos, $I10)
+    set_addr $I10, rxcap_1031_fail
+    rx1026_cur."!mark_push"(0, rx1026_pos, $I10)
   # rx literal  "++"
-    add $I11, rx981_pos, 2
-    gt $I11, rx981_eos, rx981_fail
-    sub $I11, rx981_pos, rx981_off
-    substr $S10, rx981_tgt, $I11, 2
-    ne $S10, "++", rx981_fail
-    add rx981_pos, 2
-    set_addr $I10, rxcap_986_fail
-    ($I12, $I11) = rx981_cur."!mark_peek"($I10)
-    rx981_cur."!cursor_pos"($I11)
-    ($P10) = rx981_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx981_pos, "")
-    rx981_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1026_pos, 2
+    gt $I11, rx1026_eos, rx1026_fail
+    sub $I11, rx1026_pos, rx1026_off
+    substr $S10, rx1026_tgt, $I11, 2
+    ne $S10, "++", rx1026_fail
+    add rx1026_pos, 2
+    set_addr $I10, rxcap_1031_fail
+    ($I12, $I11) = rx1026_cur."!mark_peek"($I10)
+    rx1026_cur."!cursor_pos"($I11)
+    ($P10) = rx1026_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1026_pos, "")
+    rx1026_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_986_done
-  rxcap_986_fail:
-    goto rx981_fail
-  rxcap_986_done:
+    goto rxcap_1031_done
+  rxcap_1031_fail:
+    goto rx1026_fail
+  rxcap_1031_done:
   # rx subrule "O" subtype=capture negate=
-    rx981_cur."!cursor_pos"(rx981_pos)
-    $P10 = rx981_cur."O"("%autoincrement, :pirop<inc>")
-    unless $P10, rx981_fail
-    rx981_cur."!mark_push"(0, -1, 0, $P10)
+    rx1026_cur."!cursor_pos"(rx1026_pos)
+    $P10 = rx1026_cur."O"("%autoincrement, :pirop<inc>")
+    unless $P10, rx1026_fail
+    rx1026_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx981_pos = $P10."pos"()
+    rx1026_pos = $P10."pos"()
   # rx pass
-    rx981_cur."!cursor_pass"(rx981_pos, "prefix:sym<++>")
-    rx981_cur."!cursor_debug"("PASS  ", "prefix:sym<++>", " at pos=", rx981_pos)
-    .return (rx981_cur)
-  rx981_fail:
-.annotate 'line', 433
-    (rx981_rep, rx981_pos, $I10, $P10) = rx981_cur."!mark_fail"(0)
-    lt rx981_pos, -1, rx981_done
-    eq rx981_pos, -1, rx981_fail
+    rx1026_cur."!cursor_pass"(rx1026_pos, "prefix:sym<++>")
+    rx1026_cur."!cursor_debug"("PASS  ", "prefix:sym<++>", " at pos=", rx1026_pos)
+    .return (rx1026_cur)
+  rx1026_fail:
+.annotate 'line', 446
+    (rx1026_rep, rx1026_pos, $I10, $P10) = rx1026_cur."!mark_fail"(0)
+    lt rx1026_pos, -1, rx1026_done
+    eq rx1026_pos, -1, rx1026_fail
     jump $I10
-  rx981_done:
-    rx981_cur."!cursor_fail"()
-    rx981_cur."!cursor_debug"("FAIL  ", "prefix:sym<++>")
-    .return (rx981_cur)
+  rx1026_done:
+    rx1026_cur."!cursor_fail"()
+    rx1026_cur."!cursor_debug"("FAIL  ", "prefix:sym<++>")
+    .return (rx1026_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>"  :subid("244_1274853038.58734") :method
-.annotate 'line', 433
-    $P983 = self."!PREFIX__!subrule"("O", "++")
-    new $P984, "ResizablePMCArray"
-    push $P984, $P983
-    .return ($P984)
+.sub "!PREFIX__prefix:sym<++>"  :subid("253_1275811487.95429") :method
+.annotate 'line', 446
+    $P1028 = self."!PREFIX__!subrule"("O", "++")
+    new $P1029, "ResizablePMCArray"
+    push $P1029, $P1028
+    .return ($P1029)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->"  :subid("245_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx988_tgt
-    .local int rx988_pos
-    .local int rx988_off
-    .local int rx988_eos
-    .local int rx988_rep
-    .local pmc rx988_cur
-    (rx988_cur, rx988_pos, rx988_tgt) = self."!cursor_start"()
-    rx988_cur."!cursor_debug"("START ", "prefix:sym<-->")
-    .lex unicode:"$\x{a2}", rx988_cur
-    .local pmc match
-    .lex "$/", match
-    length rx988_eos, rx988_tgt
-    set rx988_off, 0
-    lt rx988_pos, 2, rx988_start
-    sub rx988_off, rx988_pos, 1
-    substr rx988_tgt, rx988_tgt, rx988_off
-  rx988_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan992_done
-    goto rxscan992_scan
-  rxscan992_loop:
-    ($P10) = rx988_cur."from"()
-    inc $P10
-    set rx988_pos, $P10
-    ge rx988_pos, rx988_eos, rxscan992_done
-  rxscan992_scan:
-    set_addr $I10, rxscan992_loop
-    rx988_cur."!mark_push"(0, rx988_pos, $I10)
-  rxscan992_done:
-.annotate 'line', 478
+.sub "prefix:sym<-->"  :subid("254_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1033_tgt
+    .local int rx1033_pos
+    .local int rx1033_off
+    .local int rx1033_eos
+    .local int rx1033_rep
+    .local pmc rx1033_cur
+    (rx1033_cur, rx1033_pos, rx1033_tgt) = self."!cursor_start"()
+    rx1033_cur."!cursor_debug"("START ", "prefix:sym<-->")
+    .lex unicode:"$\x{a2}", rx1033_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1033_eos, rx1033_tgt
+    gt rx1033_pos, rx1033_eos, rx1033_done
+    set rx1033_off, 0
+    lt rx1033_pos, 2, rx1033_start
+    sub rx1033_off, rx1033_pos, 1
+    substr rx1033_tgt, rx1033_tgt, rx1033_off
+  rx1033_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1037_done
+    goto rxscan1037_scan
+  rxscan1037_loop:
+    ($P10) = rx1033_cur."from"()
+    inc $P10
+    set rx1033_pos, $P10
+    ge rx1033_pos, rx1033_eos, rxscan1037_done
+  rxscan1037_scan:
+    set_addr $I10, rxscan1037_loop
+    rx1033_cur."!mark_push"(0, rx1033_pos, $I10)
+  rxscan1037_done:
+.annotate 'line', 491
   # rx subcapture "sym"
-    set_addr $I10, rxcap_993_fail
-    rx988_cur."!mark_push"(0, rx988_pos, $I10)
+    set_addr $I10, rxcap_1038_fail
+    rx1033_cur."!mark_push"(0, rx1033_pos, $I10)
   # rx literal  "--"
-    add $I11, rx988_pos, 2
-    gt $I11, rx988_eos, rx988_fail
-    sub $I11, rx988_pos, rx988_off
-    substr $S10, rx988_tgt, $I11, 2
-    ne $S10, "--", rx988_fail
-    add rx988_pos, 2
-    set_addr $I10, rxcap_993_fail
-    ($I12, $I11) = rx988_cur."!mark_peek"($I10)
-    rx988_cur."!cursor_pos"($I11)
-    ($P10) = rx988_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx988_pos, "")
-    rx988_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1033_pos, 2
+    gt $I11, rx1033_eos, rx1033_fail
+    sub $I11, rx1033_pos, rx1033_off
+    substr $S10, rx1033_tgt, $I11, 2
+    ne $S10, "--", rx1033_fail
+    add rx1033_pos, 2
+    set_addr $I10, rxcap_1038_fail
+    ($I12, $I11) = rx1033_cur."!mark_peek"($I10)
+    rx1033_cur."!cursor_pos"($I11)
+    ($P10) = rx1033_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1033_pos, "")
+    rx1033_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_993_done
-  rxcap_993_fail:
-    goto rx988_fail
-  rxcap_993_done:
+    goto rxcap_1038_done
+  rxcap_1038_fail:
+    goto rx1033_fail
+  rxcap_1038_done:
   # rx subrule "O" subtype=capture negate=
-    rx988_cur."!cursor_pos"(rx988_pos)
-    $P10 = rx988_cur."O"("%autoincrement, :pirop<dec>")
-    unless $P10, rx988_fail
-    rx988_cur."!mark_push"(0, -1, 0, $P10)
+    rx1033_cur."!cursor_pos"(rx1033_pos)
+    $P10 = rx1033_cur."O"("%autoincrement, :pirop<dec>")
+    unless $P10, rx1033_fail
+    rx1033_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx988_pos = $P10."pos"()
+    rx1033_pos = $P10."pos"()
   # rx pass
-    rx988_cur."!cursor_pass"(rx988_pos, "prefix:sym<-->")
-    rx988_cur."!cursor_debug"("PASS  ", "prefix:sym<-->", " at pos=", rx988_pos)
-    .return (rx988_cur)
-  rx988_fail:
-.annotate 'line', 433
-    (rx988_rep, rx988_pos, $I10, $P10) = rx988_cur."!mark_fail"(0)
-    lt rx988_pos, -1, rx988_done
-    eq rx988_pos, -1, rx988_fail
+    rx1033_cur."!cursor_pass"(rx1033_pos, "prefix:sym<-->")
+    rx1033_cur."!cursor_debug"("PASS  ", "prefix:sym<-->", " at pos=", rx1033_pos)
+    .return (rx1033_cur)
+  rx1033_fail:
+.annotate 'line', 446
+    (rx1033_rep, rx1033_pos, $I10, $P10) = rx1033_cur."!mark_fail"(0)
+    lt rx1033_pos, -1, rx1033_done
+    eq rx1033_pos, -1, rx1033_fail
     jump $I10
-  rx988_done:
-    rx988_cur."!cursor_fail"()
-    rx988_cur."!cursor_debug"("FAIL  ", "prefix:sym<-->")
-    .return (rx988_cur)
+  rx1033_done:
+    rx1033_cur."!cursor_fail"()
+    rx1033_cur."!cursor_debug"("FAIL  ", "prefix:sym<-->")
+    .return (rx1033_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->"  :subid("246_1274853038.58734") :method
-.annotate 'line', 433
-    $P990 = self."!PREFIX__!subrule"("O", "--")
-    new $P991, "ResizablePMCArray"
-    push $P991, $P990
-    .return ($P991)
+.sub "!PREFIX__prefix:sym<-->"  :subid("255_1275811487.95429") :method
+.annotate 'line', 446
+    $P1035 = self."!PREFIX__!subrule"("O", "--")
+    new $P1036, "ResizablePMCArray"
+    push $P1036, $P1035
+    .return ($P1036)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>"  :subid("247_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx995_tgt
-    .local int rx995_pos
-    .local int rx995_off
-    .local int rx995_eos
-    .local int rx995_rep
-    .local pmc rx995_cur
-    (rx995_cur, rx995_pos, rx995_tgt) = self."!cursor_start"()
-    rx995_cur."!cursor_debug"("START ", "postfix:sym<++>")
-    .lex unicode:"$\x{a2}", rx995_cur
-    .local pmc match
-    .lex "$/", match
-    length rx995_eos, rx995_tgt
-    set rx995_off, 0
-    lt rx995_pos, 2, rx995_start
-    sub rx995_off, rx995_pos, 1
-    substr rx995_tgt, rx995_tgt, rx995_off
-  rx995_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan999_done
-    goto rxscan999_scan
-  rxscan999_loop:
-    ($P10) = rx995_cur."from"()
-    inc $P10
-    set rx995_pos, $P10
-    ge rx995_pos, rx995_eos, rxscan999_done
-  rxscan999_scan:
-    set_addr $I10, rxscan999_loop
-    rx995_cur."!mark_push"(0, rx995_pos, $I10)
-  rxscan999_done:
-.annotate 'line', 481
+.sub "postfix:sym<++>"  :subid("256_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1040_tgt
+    .local int rx1040_pos
+    .local int rx1040_off
+    .local int rx1040_eos
+    .local int rx1040_rep
+    .local pmc rx1040_cur
+    (rx1040_cur, rx1040_pos, rx1040_tgt) = self."!cursor_start"()
+    rx1040_cur."!cursor_debug"("START ", "postfix:sym<++>")
+    .lex unicode:"$\x{a2}", rx1040_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1040_eos, rx1040_tgt
+    gt rx1040_pos, rx1040_eos, rx1040_done
+    set rx1040_off, 0
+    lt rx1040_pos, 2, rx1040_start
+    sub rx1040_off, rx1040_pos, 1
+    substr rx1040_tgt, rx1040_tgt, rx1040_off
+  rx1040_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1044_done
+    goto rxscan1044_scan
+  rxscan1044_loop:
+    ($P10) = rx1040_cur."from"()
+    inc $P10
+    set rx1040_pos, $P10
+    ge rx1040_pos, rx1040_eos, rxscan1044_done
+  rxscan1044_scan:
+    set_addr $I10, rxscan1044_loop
+    rx1040_cur."!mark_push"(0, rx1040_pos, $I10)
+  rxscan1044_done:
+.annotate 'line', 494
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1000_fail
-    rx995_cur."!mark_push"(0, rx995_pos, $I10)
+    set_addr $I10, rxcap_1045_fail
+    rx1040_cur."!mark_push"(0, rx1040_pos, $I10)
   # rx literal  "++"
-    add $I11, rx995_pos, 2
-    gt $I11, rx995_eos, rx995_fail
-    sub $I11, rx995_pos, rx995_off
-    substr $S10, rx995_tgt, $I11, 2
-    ne $S10, "++", rx995_fail
-    add rx995_pos, 2
-    set_addr $I10, rxcap_1000_fail
-    ($I12, $I11) = rx995_cur."!mark_peek"($I10)
-    rx995_cur."!cursor_pos"($I11)
-    ($P10) = rx995_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx995_pos, "")
-    rx995_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1040_pos, 2
+    gt $I11, rx1040_eos, rx1040_fail
+    sub $I11, rx1040_pos, rx1040_off
+    substr $S10, rx1040_tgt, $I11, 2
+    ne $S10, "++", rx1040_fail
+    add rx1040_pos, 2
+    set_addr $I10, rxcap_1045_fail
+    ($I12, $I11) = rx1040_cur."!mark_peek"($I10)
+    rx1040_cur."!cursor_pos"($I11)
+    ($P10) = rx1040_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1040_pos, "")
+    rx1040_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1000_done
-  rxcap_1000_fail:
-    goto rx995_fail
-  rxcap_1000_done:
+    goto rxcap_1045_done
+  rxcap_1045_fail:
+    goto rx1040_fail
+  rxcap_1045_done:
   # rx subrule "O" subtype=capture negate=
-    rx995_cur."!cursor_pos"(rx995_pos)
-    $P10 = rx995_cur."O"("%autoincrement")
-    unless $P10, rx995_fail
-    rx995_cur."!mark_push"(0, -1, 0, $P10)
+    rx1040_cur."!cursor_pos"(rx1040_pos)
+    $P10 = rx1040_cur."O"("%autoincrement")
+    unless $P10, rx1040_fail
+    rx1040_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx995_pos = $P10."pos"()
+    rx1040_pos = $P10."pos"()
   # rx pass
-    rx995_cur."!cursor_pass"(rx995_pos, "postfix:sym<++>")
-    rx995_cur."!cursor_debug"("PASS  ", "postfix:sym<++>", " at pos=", rx995_pos)
-    .return (rx995_cur)
-  rx995_fail:
-.annotate 'line', 433
-    (rx995_rep, rx995_pos, $I10, $P10) = rx995_cur."!mark_fail"(0)
-    lt rx995_pos, -1, rx995_done
-    eq rx995_pos, -1, rx995_fail
+    rx1040_cur."!cursor_pass"(rx1040_pos, "postfix:sym<++>")
+    rx1040_cur."!cursor_debug"("PASS  ", "postfix:sym<++>", " at pos=", rx1040_pos)
+    .return (rx1040_cur)
+  rx1040_fail:
+.annotate 'line', 446
+    (rx1040_rep, rx1040_pos, $I10, $P10) = rx1040_cur."!mark_fail"(0)
+    lt rx1040_pos, -1, rx1040_done
+    eq rx1040_pos, -1, rx1040_fail
     jump $I10
-  rx995_done:
-    rx995_cur."!cursor_fail"()
-    rx995_cur."!cursor_debug"("FAIL  ", "postfix:sym<++>")
-    .return (rx995_cur)
+  rx1040_done:
+    rx1040_cur."!cursor_fail"()
+    rx1040_cur."!cursor_debug"("FAIL  ", "postfix:sym<++>")
+    .return (rx1040_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>"  :subid("248_1274853038.58734") :method
-.annotate 'line', 433
-    $P997 = self."!PREFIX__!subrule"("O", "++")
-    new $P998, "ResizablePMCArray"
-    push $P998, $P997
-    .return ($P998)
+.sub "!PREFIX__postfix:sym<++>"  :subid("257_1275811487.95429") :method
+.annotate 'line', 446
+    $P1042 = self."!PREFIX__!subrule"("O", "++")
+    new $P1043, "ResizablePMCArray"
+    push $P1043, $P1042
+    .return ($P1043)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->"  :subid("249_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1002_tgt
-    .local int rx1002_pos
-    .local int rx1002_off
-    .local int rx1002_eos
-    .local int rx1002_rep
-    .local pmc rx1002_cur
-    (rx1002_cur, rx1002_pos, rx1002_tgt) = self."!cursor_start"()
-    rx1002_cur."!cursor_debug"("START ", "postfix:sym<-->")
-    .lex unicode:"$\x{a2}", rx1002_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1002_eos, rx1002_tgt
-    set rx1002_off, 0
-    lt rx1002_pos, 2, rx1002_start
-    sub rx1002_off, rx1002_pos, 1
-    substr rx1002_tgt, rx1002_tgt, rx1002_off
-  rx1002_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1006_done
-    goto rxscan1006_scan
-  rxscan1006_loop:
-    ($P10) = rx1002_cur."from"()
-    inc $P10
-    set rx1002_pos, $P10
-    ge rx1002_pos, rx1002_eos, rxscan1006_done
-  rxscan1006_scan:
-    set_addr $I10, rxscan1006_loop
-    rx1002_cur."!mark_push"(0, rx1002_pos, $I10)
-  rxscan1006_done:
-.annotate 'line', 482
+.sub "postfix:sym<-->"  :subid("258_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1047_tgt
+    .local int rx1047_pos
+    .local int rx1047_off
+    .local int rx1047_eos
+    .local int rx1047_rep
+    .local pmc rx1047_cur
+    (rx1047_cur, rx1047_pos, rx1047_tgt) = self."!cursor_start"()
+    rx1047_cur."!cursor_debug"("START ", "postfix:sym<-->")
+    .lex unicode:"$\x{a2}", rx1047_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1047_eos, rx1047_tgt
+    gt rx1047_pos, rx1047_eos, rx1047_done
+    set rx1047_off, 0
+    lt rx1047_pos, 2, rx1047_start
+    sub rx1047_off, rx1047_pos, 1
+    substr rx1047_tgt, rx1047_tgt, rx1047_off
+  rx1047_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1051_done
+    goto rxscan1051_scan
+  rxscan1051_loop:
+    ($P10) = rx1047_cur."from"()
+    inc $P10
+    set rx1047_pos, $P10
+    ge rx1047_pos, rx1047_eos, rxscan1051_done
+  rxscan1051_scan:
+    set_addr $I10, rxscan1051_loop
+    rx1047_cur."!mark_push"(0, rx1047_pos, $I10)
+  rxscan1051_done:
+.annotate 'line', 495
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1007_fail
-    rx1002_cur."!mark_push"(0, rx1002_pos, $I10)
+    set_addr $I10, rxcap_1052_fail
+    rx1047_cur."!mark_push"(0, rx1047_pos, $I10)
   # rx literal  "--"
-    add $I11, rx1002_pos, 2
-    gt $I11, rx1002_eos, rx1002_fail
-    sub $I11, rx1002_pos, rx1002_off
-    substr $S10, rx1002_tgt, $I11, 2
-    ne $S10, "--", rx1002_fail
-    add rx1002_pos, 2
-    set_addr $I10, rxcap_1007_fail
-    ($I12, $I11) = rx1002_cur."!mark_peek"($I10)
-    rx1002_cur."!cursor_pos"($I11)
-    ($P10) = rx1002_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1002_pos, "")
-    rx1002_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1047_pos, 2
+    gt $I11, rx1047_eos, rx1047_fail
+    sub $I11, rx1047_pos, rx1047_off
+    substr $S10, rx1047_tgt, $I11, 2
+    ne $S10, "--", rx1047_fail
+    add rx1047_pos, 2
+    set_addr $I10, rxcap_1052_fail
+    ($I12, $I11) = rx1047_cur."!mark_peek"($I10)
+    rx1047_cur."!cursor_pos"($I11)
+    ($P10) = rx1047_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1047_pos, "")
+    rx1047_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1007_done
-  rxcap_1007_fail:
-    goto rx1002_fail
-  rxcap_1007_done:
+    goto rxcap_1052_done
+  rxcap_1052_fail:
+    goto rx1047_fail
+  rxcap_1052_done:
   # rx subrule "O" subtype=capture negate=
-    rx1002_cur."!cursor_pos"(rx1002_pos)
-    $P10 = rx1002_cur."O"("%autoincrement")
-    unless $P10, rx1002_fail
-    rx1002_cur."!mark_push"(0, -1, 0, $P10)
+    rx1047_cur."!cursor_pos"(rx1047_pos)
+    $P10 = rx1047_cur."O"("%autoincrement")
+    unless $P10, rx1047_fail
+    rx1047_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1002_pos = $P10."pos"()
+    rx1047_pos = $P10."pos"()
   # rx pass
-    rx1002_cur."!cursor_pass"(rx1002_pos, "postfix:sym<-->")
-    rx1002_cur."!cursor_debug"("PASS  ", "postfix:sym<-->", " at pos=", rx1002_pos)
-    .return (rx1002_cur)
-  rx1002_fail:
-.annotate 'line', 433
-    (rx1002_rep, rx1002_pos, $I10, $P10) = rx1002_cur."!mark_fail"(0)
-    lt rx1002_pos, -1, rx1002_done
-    eq rx1002_pos, -1, rx1002_fail
+    rx1047_cur."!cursor_pass"(rx1047_pos, "postfix:sym<-->")
+    rx1047_cur."!cursor_debug"("PASS  ", "postfix:sym<-->", " at pos=", rx1047_pos)
+    .return (rx1047_cur)
+  rx1047_fail:
+.annotate 'line', 446
+    (rx1047_rep, rx1047_pos, $I10, $P10) = rx1047_cur."!mark_fail"(0)
+    lt rx1047_pos, -1, rx1047_done
+    eq rx1047_pos, -1, rx1047_fail
     jump $I10
-  rx1002_done:
-    rx1002_cur."!cursor_fail"()
-    rx1002_cur."!cursor_debug"("FAIL  ", "postfix:sym<-->")
-    .return (rx1002_cur)
+  rx1047_done:
+    rx1047_cur."!cursor_fail"()
+    rx1047_cur."!cursor_debug"("FAIL  ", "postfix:sym<-->")
+    .return (rx1047_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->"  :subid("250_1274853038.58734") :method
-.annotate 'line', 433
-    $P1004 = self."!PREFIX__!subrule"("O", "--")
-    new $P1005, "ResizablePMCArray"
-    push $P1005, $P1004
-    .return ($P1005)
+.sub "!PREFIX__postfix:sym<-->"  :subid("259_1275811487.95429") :method
+.annotate 'line', 446
+    $P1049 = self."!PREFIX__!subrule"("O", "--")
+    new $P1050, "ResizablePMCArray"
+    push $P1050, $P1049
+    .return ($P1050)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>"  :subid("251_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1009_tgt
-    .local int rx1009_pos
-    .local int rx1009_off
-    .local int rx1009_eos
-    .local int rx1009_rep
-    .local pmc rx1009_cur
-    (rx1009_cur, rx1009_pos, rx1009_tgt) = self."!cursor_start"()
-    rx1009_cur."!cursor_debug"("START ", "infix:sym<**>")
-    .lex unicode:"$\x{a2}", rx1009_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1009_eos, rx1009_tgt
-    set rx1009_off, 0
-    lt rx1009_pos, 2, rx1009_start
-    sub rx1009_off, rx1009_pos, 1
-    substr rx1009_tgt, rx1009_tgt, rx1009_off
-  rx1009_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1013_done
-    goto rxscan1013_scan
-  rxscan1013_loop:
-    ($P10) = rx1009_cur."from"()
-    inc $P10
-    set rx1009_pos, $P10
-    ge rx1009_pos, rx1009_eos, rxscan1013_done
-  rxscan1013_scan:
-    set_addr $I10, rxscan1013_loop
-    rx1009_cur."!mark_push"(0, rx1009_pos, $I10)
-  rxscan1013_done:
-.annotate 'line', 484
+.sub "infix:sym<**>"  :subid("260_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1054_tgt
+    .local int rx1054_pos
+    .local int rx1054_off
+    .local int rx1054_eos
+    .local int rx1054_rep
+    .local pmc rx1054_cur
+    (rx1054_cur, rx1054_pos, rx1054_tgt) = self."!cursor_start"()
+    rx1054_cur."!cursor_debug"("START ", "infix:sym<**>")
+    .lex unicode:"$\x{a2}", rx1054_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1054_eos, rx1054_tgt
+    gt rx1054_pos, rx1054_eos, rx1054_done
+    set rx1054_off, 0
+    lt rx1054_pos, 2, rx1054_start
+    sub rx1054_off, rx1054_pos, 1
+    substr rx1054_tgt, rx1054_tgt, rx1054_off
+  rx1054_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1058_done
+    goto rxscan1058_scan
+  rxscan1058_loop:
+    ($P10) = rx1054_cur."from"()
+    inc $P10
+    set rx1054_pos, $P10
+    ge rx1054_pos, rx1054_eos, rxscan1058_done
+  rxscan1058_scan:
+    set_addr $I10, rxscan1058_loop
+    rx1054_cur."!mark_push"(0, rx1054_pos, $I10)
+  rxscan1058_done:
+.annotate 'line', 497
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1014_fail
-    rx1009_cur."!mark_push"(0, rx1009_pos, $I10)
+    set_addr $I10, rxcap_1059_fail
+    rx1054_cur."!mark_push"(0, rx1054_pos, $I10)
   # rx literal  "**"
-    add $I11, rx1009_pos, 2
-    gt $I11, rx1009_eos, rx1009_fail
-    sub $I11, rx1009_pos, rx1009_off
-    substr $S10, rx1009_tgt, $I11, 2
-    ne $S10, "**", rx1009_fail
-    add rx1009_pos, 2
-    set_addr $I10, rxcap_1014_fail
-    ($I12, $I11) = rx1009_cur."!mark_peek"($I10)
-    rx1009_cur."!cursor_pos"($I11)
-    ($P10) = rx1009_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1009_pos, "")
-    rx1009_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1054_pos, 2
+    gt $I11, rx1054_eos, rx1054_fail
+    sub $I11, rx1054_pos, rx1054_off
+    substr $S10, rx1054_tgt, $I11, 2
+    ne $S10, "**", rx1054_fail
+    add rx1054_pos, 2
+    set_addr $I10, rxcap_1059_fail
+    ($I12, $I11) = rx1054_cur."!mark_peek"($I10)
+    rx1054_cur."!cursor_pos"($I11)
+    ($P10) = rx1054_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1054_pos, "")
+    rx1054_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1014_done
-  rxcap_1014_fail:
-    goto rx1009_fail
-  rxcap_1014_done:
+    goto rxcap_1059_done
+  rxcap_1059_fail:
+    goto rx1054_fail
+  rxcap_1059_done:
   # rx subrule "O" subtype=capture negate=
-    rx1009_cur."!cursor_pos"(rx1009_pos)
-    $P10 = rx1009_cur."O"("%exponentiation, :pirop<pow>")
-    unless $P10, rx1009_fail
-    rx1009_cur."!mark_push"(0, -1, 0, $P10)
+    rx1054_cur."!cursor_pos"(rx1054_pos)
+    $P10 = rx1054_cur."O"("%exponentiation, :pirop<pow>")
+    unless $P10, rx1054_fail
+    rx1054_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1009_pos = $P10."pos"()
+    rx1054_pos = $P10."pos"()
   # rx pass
-    rx1009_cur."!cursor_pass"(rx1009_pos, "infix:sym<**>")
-    rx1009_cur."!cursor_debug"("PASS  ", "infix:sym<**>", " at pos=", rx1009_pos)
-    .return (rx1009_cur)
-  rx1009_fail:
-.annotate 'line', 433
-    (rx1009_rep, rx1009_pos, $I10, $P10) = rx1009_cur."!mark_fail"(0)
-    lt rx1009_pos, -1, rx1009_done
-    eq rx1009_pos, -1, rx1009_fail
+    rx1054_cur."!cursor_pass"(rx1054_pos, "infix:sym<**>")
+    rx1054_cur."!cursor_debug"("PASS  ", "infix:sym<**>", " at pos=", rx1054_pos)
+    .return (rx1054_cur)
+  rx1054_fail:
+.annotate 'line', 446
+    (rx1054_rep, rx1054_pos, $I10, $P10) = rx1054_cur."!mark_fail"(0)
+    lt rx1054_pos, -1, rx1054_done
+    eq rx1054_pos, -1, rx1054_fail
     jump $I10
-  rx1009_done:
-    rx1009_cur."!cursor_fail"()
-    rx1009_cur."!cursor_debug"("FAIL  ", "infix:sym<**>")
-    .return (rx1009_cur)
+  rx1054_done:
+    rx1054_cur."!cursor_fail"()
+    rx1054_cur."!cursor_debug"("FAIL  ", "infix:sym<**>")
+    .return (rx1054_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>"  :subid("252_1274853038.58734") :method
-.annotate 'line', 433
-    $P1011 = self."!PREFIX__!subrule"("O", "**")
-    new $P1012, "ResizablePMCArray"
-    push $P1012, $P1011
-    .return ($P1012)
+.sub "!PREFIX__infix:sym<**>"  :subid("261_1275811487.95429") :method
+.annotate 'line', 446
+    $P1056 = self."!PREFIX__!subrule"("O", "**")
+    new $P1057, "ResizablePMCArray"
+    push $P1057, $P1056
+    .return ($P1057)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>"  :subid("253_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1016_tgt
-    .local int rx1016_pos
-    .local int rx1016_off
-    .local int rx1016_eos
-    .local int rx1016_rep
-    .local pmc rx1016_cur
-    (rx1016_cur, rx1016_pos, rx1016_tgt) = self."!cursor_start"()
-    rx1016_cur."!cursor_debug"("START ", "prefix:sym<+>")
-    .lex unicode:"$\x{a2}", rx1016_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1016_eos, rx1016_tgt
-    set rx1016_off, 0
-    lt rx1016_pos, 2, rx1016_start
-    sub rx1016_off, rx1016_pos, 1
-    substr rx1016_tgt, rx1016_tgt, rx1016_off
-  rx1016_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1020_done
-    goto rxscan1020_scan
-  rxscan1020_loop:
-    ($P10) = rx1016_cur."from"()
-    inc $P10
-    set rx1016_pos, $P10
-    ge rx1016_pos, rx1016_eos, rxscan1020_done
-  rxscan1020_scan:
-    set_addr $I10, rxscan1020_loop
-    rx1016_cur."!mark_push"(0, rx1016_pos, $I10)
-  rxscan1020_done:
-.annotate 'line', 486
+.sub "prefix:sym<+>"  :subid("262_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1061_tgt
+    .local int rx1061_pos
+    .local int rx1061_off
+    .local int rx1061_eos
+    .local int rx1061_rep
+    .local pmc rx1061_cur
+    (rx1061_cur, rx1061_pos, rx1061_tgt) = self."!cursor_start"()
+    rx1061_cur."!cursor_debug"("START ", "prefix:sym<+>")
+    .lex unicode:"$\x{a2}", rx1061_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1061_eos, rx1061_tgt
+    gt rx1061_pos, rx1061_eos, rx1061_done
+    set rx1061_off, 0
+    lt rx1061_pos, 2, rx1061_start
+    sub rx1061_off, rx1061_pos, 1
+    substr rx1061_tgt, rx1061_tgt, rx1061_off
+  rx1061_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1065_done
+    goto rxscan1065_scan
+  rxscan1065_loop:
+    ($P10) = rx1061_cur."from"()
+    inc $P10
+    set rx1061_pos, $P10
+    ge rx1061_pos, rx1061_eos, rxscan1065_done
+  rxscan1065_scan:
+    set_addr $I10, rxscan1065_loop
+    rx1061_cur."!mark_push"(0, rx1061_pos, $I10)
+  rxscan1065_done:
+.annotate 'line', 499
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1021_fail
-    rx1016_cur."!mark_push"(0, rx1016_pos, $I10)
+    set_addr $I10, rxcap_1066_fail
+    rx1061_cur."!mark_push"(0, rx1061_pos, $I10)
   # rx literal  "+"
-    add $I11, rx1016_pos, 1
-    gt $I11, rx1016_eos, rx1016_fail
-    sub $I11, rx1016_pos, rx1016_off
-    substr $S10, rx1016_tgt, $I11, 1
-    ne $S10, "+", rx1016_fail
-    add rx1016_pos, 1
-    set_addr $I10, rxcap_1021_fail
-    ($I12, $I11) = rx1016_cur."!mark_peek"($I10)
-    rx1016_cur."!cursor_pos"($I11)
-    ($P10) = rx1016_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1016_pos, "")
-    rx1016_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1061_pos, 1
+    gt $I11, rx1061_eos, rx1061_fail
+    sub $I11, rx1061_pos, rx1061_off
+    substr $S10, rx1061_tgt, $I11, 1
+    ne $S10, "+", rx1061_fail
+    add rx1061_pos, 1
+    set_addr $I10, rxcap_1066_fail
+    ($I12, $I11) = rx1061_cur."!mark_peek"($I10)
+    rx1061_cur."!cursor_pos"($I11)
+    ($P10) = rx1061_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1061_pos, "")
+    rx1061_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1021_done
-  rxcap_1021_fail:
-    goto rx1016_fail
-  rxcap_1021_done:
+    goto rxcap_1066_done
+  rxcap_1066_fail:
+    goto rx1061_fail
+  rxcap_1066_done:
   # rx subrule "O" subtype=capture negate=
-    rx1016_cur."!cursor_pos"(rx1016_pos)
-    $P10 = rx1016_cur."O"("%symbolic_unary, :pirop<set N*>")
-    unless $P10, rx1016_fail
-    rx1016_cur."!mark_push"(0, -1, 0, $P10)
+    rx1061_cur."!cursor_pos"(rx1061_pos)
+    $P10 = rx1061_cur."O"("%symbolic_unary, :pirop<set N*>")
+    unless $P10, rx1061_fail
+    rx1061_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1016_pos = $P10."pos"()
+    rx1061_pos = $P10."pos"()
   # rx pass
-    rx1016_cur."!cursor_pass"(rx1016_pos, "prefix:sym<+>")
-    rx1016_cur."!cursor_debug"("PASS  ", "prefix:sym<+>", " at pos=", rx1016_pos)
-    .return (rx1016_cur)
-  rx1016_fail:
-.annotate 'line', 433
-    (rx1016_rep, rx1016_pos, $I10, $P10) = rx1016_cur."!mark_fail"(0)
-    lt rx1016_pos, -1, rx1016_done
-    eq rx1016_pos, -1, rx1016_fail
+    rx1061_cur."!cursor_pass"(rx1061_pos, "prefix:sym<+>")
+    rx1061_cur."!cursor_debug"("PASS  ", "prefix:sym<+>", " at pos=", rx1061_pos)
+    .return (rx1061_cur)
+  rx1061_fail:
+.annotate 'line', 446
+    (rx1061_rep, rx1061_pos, $I10, $P10) = rx1061_cur."!mark_fail"(0)
+    lt rx1061_pos, -1, rx1061_done
+    eq rx1061_pos, -1, rx1061_fail
     jump $I10
-  rx1016_done:
-    rx1016_cur."!cursor_fail"()
-    rx1016_cur."!cursor_debug"("FAIL  ", "prefix:sym<+>")
-    .return (rx1016_cur)
+  rx1061_done:
+    rx1061_cur."!cursor_fail"()
+    rx1061_cur."!cursor_debug"("FAIL  ", "prefix:sym<+>")
+    .return (rx1061_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>"  :subid("254_1274853038.58734") :method
-.annotate 'line', 433
-    $P1018 = self."!PREFIX__!subrule"("O", "+")
-    new $P1019, "ResizablePMCArray"
-    push $P1019, $P1018
-    .return ($P1019)
+.sub "!PREFIX__prefix:sym<+>"  :subid("263_1275811487.95429") :method
+.annotate 'line', 446
+    $P1063 = self."!PREFIX__!subrule"("O", "+")
+    new $P1064, "ResizablePMCArray"
+    push $P1064, $P1063
+    .return ($P1064)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>"  :subid("255_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1023_tgt
-    .local int rx1023_pos
-    .local int rx1023_off
-    .local int rx1023_eos
-    .local int rx1023_rep
-    .local pmc rx1023_cur
-    (rx1023_cur, rx1023_pos, rx1023_tgt) = self."!cursor_start"()
-    rx1023_cur."!cursor_debug"("START ", "prefix:sym<~>")
-    .lex unicode:"$\x{a2}", rx1023_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1023_eos, rx1023_tgt
-    set rx1023_off, 0
-    lt rx1023_pos, 2, rx1023_start
-    sub rx1023_off, rx1023_pos, 1
-    substr rx1023_tgt, rx1023_tgt, rx1023_off
-  rx1023_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1027_done
-    goto rxscan1027_scan
-  rxscan1027_loop:
-    ($P10) = rx1023_cur."from"()
-    inc $P10
-    set rx1023_pos, $P10
-    ge rx1023_pos, rx1023_eos, rxscan1027_done
-  rxscan1027_scan:
-    set_addr $I10, rxscan1027_loop
-    rx1023_cur."!mark_push"(0, rx1023_pos, $I10)
-  rxscan1027_done:
-.annotate 'line', 487
+.sub "prefix:sym<~>"  :subid("264_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1068_tgt
+    .local int rx1068_pos
+    .local int rx1068_off
+    .local int rx1068_eos
+    .local int rx1068_rep
+    .local pmc rx1068_cur
+    (rx1068_cur, rx1068_pos, rx1068_tgt) = self."!cursor_start"()
+    rx1068_cur."!cursor_debug"("START ", "prefix:sym<~>")
+    .lex unicode:"$\x{a2}", rx1068_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1068_eos, rx1068_tgt
+    gt rx1068_pos, rx1068_eos, rx1068_done
+    set rx1068_off, 0
+    lt rx1068_pos, 2, rx1068_start
+    sub rx1068_off, rx1068_pos, 1
+    substr rx1068_tgt, rx1068_tgt, rx1068_off
+  rx1068_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1072_done
+    goto rxscan1072_scan
+  rxscan1072_loop:
+    ($P10) = rx1068_cur."from"()
+    inc $P10
+    set rx1068_pos, $P10
+    ge rx1068_pos, rx1068_eos, rxscan1072_done
+  rxscan1072_scan:
+    set_addr $I10, rxscan1072_loop
+    rx1068_cur."!mark_push"(0, rx1068_pos, $I10)
+  rxscan1072_done:
+.annotate 'line', 500
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1028_fail
-    rx1023_cur."!mark_push"(0, rx1023_pos, $I10)
+    set_addr $I10, rxcap_1073_fail
+    rx1068_cur."!mark_push"(0, rx1068_pos, $I10)
   # rx literal  "~"
-    add $I11, rx1023_pos, 1
-    gt $I11, rx1023_eos, rx1023_fail
-    sub $I11, rx1023_pos, rx1023_off
-    substr $S10, rx1023_tgt, $I11, 1
-    ne $S10, "~", rx1023_fail
-    add rx1023_pos, 1
-    set_addr $I10, rxcap_1028_fail
-    ($I12, $I11) = rx1023_cur."!mark_peek"($I10)
-    rx1023_cur."!cursor_pos"($I11)
-    ($P10) = rx1023_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1023_pos, "")
-    rx1023_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1068_pos, 1
+    gt $I11, rx1068_eos, rx1068_fail
+    sub $I11, rx1068_pos, rx1068_off
+    substr $S10, rx1068_tgt, $I11, 1
+    ne $S10, "~", rx1068_fail
+    add rx1068_pos, 1
+    set_addr $I10, rxcap_1073_fail
+    ($I12, $I11) = rx1068_cur."!mark_peek"($I10)
+    rx1068_cur."!cursor_pos"($I11)
+    ($P10) = rx1068_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1068_pos, "")
+    rx1068_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1028_done
-  rxcap_1028_fail:
-    goto rx1023_fail
-  rxcap_1028_done:
+    goto rxcap_1073_done
+  rxcap_1073_fail:
+    goto rx1068_fail
+  rxcap_1073_done:
   # rx subrule "O" subtype=capture negate=
-    rx1023_cur."!cursor_pos"(rx1023_pos)
-    $P10 = rx1023_cur."O"("%symbolic_unary, :pirop<set S*>")
-    unless $P10, rx1023_fail
-    rx1023_cur."!mark_push"(0, -1, 0, $P10)
+    rx1068_cur."!cursor_pos"(rx1068_pos)
+    $P10 = rx1068_cur."O"("%symbolic_unary, :pirop<set S*>")
+    unless $P10, rx1068_fail
+    rx1068_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1023_pos = $P10."pos"()
+    rx1068_pos = $P10."pos"()
   # rx pass
-    rx1023_cur."!cursor_pass"(rx1023_pos, "prefix:sym<~>")
-    rx1023_cur."!cursor_debug"("PASS  ", "prefix:sym<~>", " at pos=", rx1023_pos)
-    .return (rx1023_cur)
-  rx1023_fail:
-.annotate 'line', 433
-    (rx1023_rep, rx1023_pos, $I10, $P10) = rx1023_cur."!mark_fail"(0)
-    lt rx1023_pos, -1, rx1023_done
-    eq rx1023_pos, -1, rx1023_fail
+    rx1068_cur."!cursor_pass"(rx1068_pos, "prefix:sym<~>")
+    rx1068_cur."!cursor_debug"("PASS  ", "prefix:sym<~>", " at pos=", rx1068_pos)
+    .return (rx1068_cur)
+  rx1068_fail:
+.annotate 'line', 446
+    (rx1068_rep, rx1068_pos, $I10, $P10) = rx1068_cur."!mark_fail"(0)
+    lt rx1068_pos, -1, rx1068_done
+    eq rx1068_pos, -1, rx1068_fail
     jump $I10
-  rx1023_done:
-    rx1023_cur."!cursor_fail"()
-    rx1023_cur."!cursor_debug"("FAIL  ", "prefix:sym<~>")
-    .return (rx1023_cur)
+  rx1068_done:
+    rx1068_cur."!cursor_fail"()
+    rx1068_cur."!cursor_debug"("FAIL  ", "prefix:sym<~>")
+    .return (rx1068_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>"  :subid("256_1274853038.58734") :method
-.annotate 'line', 433
-    $P1025 = self."!PREFIX__!subrule"("O", "~")
-    new $P1026, "ResizablePMCArray"
-    push $P1026, $P1025
-    .return ($P1026)
+.sub "!PREFIX__prefix:sym<~>"  :subid("265_1275811487.95429") :method
+.annotate 'line', 446
+    $P1070 = self."!PREFIX__!subrule"("O", "~")
+    new $P1071, "ResizablePMCArray"
+    push $P1071, $P1070
+    .return ($P1071)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->"  :subid("257_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1030_tgt
-    .local int rx1030_pos
-    .local int rx1030_off
-    .local int rx1030_eos
-    .local int rx1030_rep
-    .local pmc rx1030_cur
-    (rx1030_cur, rx1030_pos, rx1030_tgt) = self."!cursor_start"()
-    rx1030_cur."!cursor_debug"("START ", "prefix:sym<->")
-    .lex unicode:"$\x{a2}", rx1030_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1030_eos, rx1030_tgt
-    set rx1030_off, 0
-    lt rx1030_pos, 2, rx1030_start
-    sub rx1030_off, rx1030_pos, 1
-    substr rx1030_tgt, rx1030_tgt, rx1030_off
-  rx1030_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1033_done
-    goto rxscan1033_scan
-  rxscan1033_loop:
-    ($P10) = rx1030_cur."from"()
-    inc $P10
-    set rx1030_pos, $P10
-    ge rx1030_pos, rx1030_eos, rxscan1033_done
-  rxscan1033_scan:
-    set_addr $I10, rxscan1033_loop
-    rx1030_cur."!mark_push"(0, rx1030_pos, $I10)
-  rxscan1033_done:
-.annotate 'line', 488
+.sub "prefix:sym<->"  :subid("266_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1075_tgt
+    .local int rx1075_pos
+    .local int rx1075_off
+    .local int rx1075_eos
+    .local int rx1075_rep
+    .local pmc rx1075_cur
+    (rx1075_cur, rx1075_pos, rx1075_tgt) = self."!cursor_start"()
+    rx1075_cur."!cursor_debug"("START ", "prefix:sym<->")
+    .lex unicode:"$\x{a2}", rx1075_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1075_eos, rx1075_tgt
+    gt rx1075_pos, rx1075_eos, rx1075_done
+    set rx1075_off, 0
+    lt rx1075_pos, 2, rx1075_start
+    sub rx1075_off, rx1075_pos, 1
+    substr rx1075_tgt, rx1075_tgt, rx1075_off
+  rx1075_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1078_done
+    goto rxscan1078_scan
+  rxscan1078_loop:
+    ($P10) = rx1075_cur."from"()
+    inc $P10
+    set rx1075_pos, $P10
+    ge rx1075_pos, rx1075_eos, rxscan1078_done
+  rxscan1078_scan:
+    set_addr $I10, rxscan1078_loop
+    rx1075_cur."!mark_push"(0, rx1075_pos, $I10)
+  rxscan1078_done:
+.annotate 'line', 501
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1034_fail
-    rx1030_cur."!mark_push"(0, rx1030_pos, $I10)
+    set_addr $I10, rxcap_1079_fail
+    rx1075_cur."!mark_push"(0, rx1075_pos, $I10)
   # rx literal  "-"
-    add $I11, rx1030_pos, 1
-    gt $I11, rx1030_eos, rx1030_fail
-    sub $I11, rx1030_pos, rx1030_off
-    substr $S10, rx1030_tgt, $I11, 1
-    ne $S10, "-", rx1030_fail
-    add rx1030_pos, 1
-    set_addr $I10, rxcap_1034_fail
-    ($I12, $I11) = rx1030_cur."!mark_peek"($I10)
-    rx1030_cur."!cursor_pos"($I11)
-    ($P10) = rx1030_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1030_pos, "")
-    rx1030_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1075_pos, 1
+    gt $I11, rx1075_eos, rx1075_fail
+    sub $I11, rx1075_pos, rx1075_off
+    substr $S10, rx1075_tgt, $I11, 1
+    ne $S10, "-", rx1075_fail
+    add rx1075_pos, 1
+    set_addr $I10, rxcap_1079_fail
+    ($I12, $I11) = rx1075_cur."!mark_peek"($I10)
+    rx1075_cur."!cursor_pos"($I11)
+    ($P10) = rx1075_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1075_pos, "")
+    rx1075_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1034_done
-  rxcap_1034_fail:
-    goto rx1030_fail
-  rxcap_1034_done:
+    goto rxcap_1079_done
+  rxcap_1079_fail:
+    goto rx1075_fail
+  rxcap_1079_done:
   # rx enumcharlist negate=1 zerowidth
-    ge rx1030_pos, rx1030_eos, rx1030_fail
-    sub $I10, rx1030_pos, rx1030_off
-    substr $S10, rx1030_tgt, $I10, 1
+    ge rx1075_pos, rx1075_eos, rx1075_fail
+    sub $I10, rx1075_pos, rx1075_off
+    substr $S10, rx1075_tgt, $I10, 1
     index $I11, ">", $S10
-    ge $I11, 0, rx1030_fail
+    ge $I11, 0, rx1075_fail
   # rx subrule "number" subtype=zerowidth negate=1
-    rx1030_cur."!cursor_pos"(rx1030_pos)
-    $P10 = rx1030_cur."number"()
-    if $P10, rx1030_fail
+    rx1075_cur."!cursor_pos"(rx1075_pos)
+    $P10 = rx1075_cur."number"()
+    if $P10, rx1075_fail
   # rx subrule "O" subtype=capture negate=
-    rx1030_cur."!cursor_pos"(rx1030_pos)
-    $P10 = rx1030_cur."O"("%symbolic_unary, :pirop<neg>")
-    unless $P10, rx1030_fail
-    rx1030_cur."!mark_push"(0, -1, 0, $P10)
+    rx1075_cur."!cursor_pos"(rx1075_pos)
+    $P10 = rx1075_cur."O"("%symbolic_unary, :pirop<neg>")
+    unless $P10, rx1075_fail
+    rx1075_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1030_pos = $P10."pos"()
+    rx1075_pos = $P10."pos"()
   # rx pass
-    rx1030_cur."!cursor_pass"(rx1030_pos, "prefix:sym<->")
-    rx1030_cur."!cursor_debug"("PASS  ", "prefix:sym<->", " at pos=", rx1030_pos)
-    .return (rx1030_cur)
-  rx1030_fail:
-.annotate 'line', 433
-    (rx1030_rep, rx1030_pos, $I10, $P10) = rx1030_cur."!mark_fail"(0)
-    lt rx1030_pos, -1, rx1030_done
-    eq rx1030_pos, -1, rx1030_fail
+    rx1075_cur."!cursor_pass"(rx1075_pos, "prefix:sym<->")
+    rx1075_cur."!cursor_debug"("PASS  ", "prefix:sym<->", " at pos=", rx1075_pos)
+    .return (rx1075_cur)
+  rx1075_fail:
+.annotate 'line', 446
+    (rx1075_rep, rx1075_pos, $I10, $P10) = rx1075_cur."!mark_fail"(0)
+    lt rx1075_pos, -1, rx1075_done
+    eq rx1075_pos, -1, rx1075_fail
     jump $I10
-  rx1030_done:
-    rx1030_cur."!cursor_fail"()
-    rx1030_cur."!cursor_debug"("FAIL  ", "prefix:sym<->")
-    .return (rx1030_cur)
+  rx1075_done:
+    rx1075_cur."!cursor_fail"()
+    rx1075_cur."!cursor_debug"("FAIL  ", "prefix:sym<->")
+    .return (rx1075_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->"  :subid("258_1274853038.58734") :method
-.annotate 'line', 433
-    new $P1032, "ResizablePMCArray"
-    push $P1032, "-"
-    .return ($P1032)
+.sub "!PREFIX__prefix:sym<->"  :subid("267_1275811487.95429") :method
+.annotate 'line', 446
+    new $P1077, "ResizablePMCArray"
+    push $P1077, "-"
+    .return ($P1077)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>"  :subid("259_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1036_tgt
-    .local int rx1036_pos
-    .local int rx1036_off
-    .local int rx1036_eos
-    .local int rx1036_rep
-    .local pmc rx1036_cur
-    (rx1036_cur, rx1036_pos, rx1036_tgt) = self."!cursor_start"()
-    rx1036_cur."!cursor_debug"("START ", "prefix:sym<?>")
-    .lex unicode:"$\x{a2}", rx1036_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1036_eos, rx1036_tgt
-    set rx1036_off, 0
-    lt rx1036_pos, 2, rx1036_start
-    sub rx1036_off, rx1036_pos, 1
-    substr rx1036_tgt, rx1036_tgt, rx1036_off
-  rx1036_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1040_done
-    goto rxscan1040_scan
-  rxscan1040_loop:
-    ($P10) = rx1036_cur."from"()
-    inc $P10
-    set rx1036_pos, $P10
-    ge rx1036_pos, rx1036_eos, rxscan1040_done
-  rxscan1040_scan:
-    set_addr $I10, rxscan1040_loop
-    rx1036_cur."!mark_push"(0, rx1036_pos, $I10)
-  rxscan1040_done:
-.annotate 'line', 489
+.sub "prefix:sym<?>"  :subid("268_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1081_tgt
+    .local int rx1081_pos
+    .local int rx1081_off
+    .local int rx1081_eos
+    .local int rx1081_rep
+    .local pmc rx1081_cur
+    (rx1081_cur, rx1081_pos, rx1081_tgt) = self."!cursor_start"()
+    rx1081_cur."!cursor_debug"("START ", "prefix:sym<?>")
+    .lex unicode:"$\x{a2}", rx1081_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1081_eos, rx1081_tgt
+    gt rx1081_pos, rx1081_eos, rx1081_done
+    set rx1081_off, 0
+    lt rx1081_pos, 2, rx1081_start
+    sub rx1081_off, rx1081_pos, 1
+    substr rx1081_tgt, rx1081_tgt, rx1081_off
+  rx1081_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1085_done
+    goto rxscan1085_scan
+  rxscan1085_loop:
+    ($P10) = rx1081_cur."from"()
+    inc $P10
+    set rx1081_pos, $P10
+    ge rx1081_pos, rx1081_eos, rxscan1085_done
+  rxscan1085_scan:
+    set_addr $I10, rxscan1085_loop
+    rx1081_cur."!mark_push"(0, rx1081_pos, $I10)
+  rxscan1085_done:
+.annotate 'line', 502
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1041_fail
-    rx1036_cur."!mark_push"(0, rx1036_pos, $I10)
+    set_addr $I10, rxcap_1086_fail
+    rx1081_cur."!mark_push"(0, rx1081_pos, $I10)
   # rx literal  "?"
-    add $I11, rx1036_pos, 1
-    gt $I11, rx1036_eos, rx1036_fail
-    sub $I11, rx1036_pos, rx1036_off
-    substr $S10, rx1036_tgt, $I11, 1
-    ne $S10, "?", rx1036_fail
-    add rx1036_pos, 1
-    set_addr $I10, rxcap_1041_fail
-    ($I12, $I11) = rx1036_cur."!mark_peek"($I10)
-    rx1036_cur."!cursor_pos"($I11)
-    ($P10) = rx1036_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1036_pos, "")
-    rx1036_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1081_pos, 1
+    gt $I11, rx1081_eos, rx1081_fail
+    sub $I11, rx1081_pos, rx1081_off
+    substr $S10, rx1081_tgt, $I11, 1
+    ne $S10, "?", rx1081_fail
+    add rx1081_pos, 1
+    set_addr $I10, rxcap_1086_fail
+    ($I12, $I11) = rx1081_cur."!mark_peek"($I10)
+    rx1081_cur."!cursor_pos"($I11)
+    ($P10) = rx1081_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1081_pos, "")
+    rx1081_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1041_done
-  rxcap_1041_fail:
-    goto rx1036_fail
-  rxcap_1041_done:
+    goto rxcap_1086_done
+  rxcap_1086_fail:
+    goto rx1081_fail
+  rxcap_1086_done:
   # rx subrule "O" subtype=capture negate=
-    rx1036_cur."!cursor_pos"(rx1036_pos)
-    $P10 = rx1036_cur."O"("%symbolic_unary, :pirop<istrue>")
-    unless $P10, rx1036_fail
-    rx1036_cur."!mark_push"(0, -1, 0, $P10)
+    rx1081_cur."!cursor_pos"(rx1081_pos)
+    $P10 = rx1081_cur."O"("%symbolic_unary, :pirop<istrue>")
+    unless $P10, rx1081_fail
+    rx1081_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1036_pos = $P10."pos"()
+    rx1081_pos = $P10."pos"()
   # rx pass
-    rx1036_cur."!cursor_pass"(rx1036_pos, "prefix:sym<?>")
-    rx1036_cur."!cursor_debug"("PASS  ", "prefix:sym<?>", " at pos=", rx1036_pos)
-    .return (rx1036_cur)
-  rx1036_fail:
-.annotate 'line', 433
-    (rx1036_rep, rx1036_pos, $I10, $P10) = rx1036_cur."!mark_fail"(0)
-    lt rx1036_pos, -1, rx1036_done
-    eq rx1036_pos, -1, rx1036_fail
+    rx1081_cur."!cursor_pass"(rx1081_pos, "prefix:sym<?>")
+    rx1081_cur."!cursor_debug"("PASS  ", "prefix:sym<?>", " at pos=", rx1081_pos)
+    .return (rx1081_cur)
+  rx1081_fail:
+.annotate 'line', 446
+    (rx1081_rep, rx1081_pos, $I10, $P10) = rx1081_cur."!mark_fail"(0)
+    lt rx1081_pos, -1, rx1081_done
+    eq rx1081_pos, -1, rx1081_fail
     jump $I10
-  rx1036_done:
-    rx1036_cur."!cursor_fail"()
-    rx1036_cur."!cursor_debug"("FAIL  ", "prefix:sym<?>")
-    .return (rx1036_cur)
+  rx1081_done:
+    rx1081_cur."!cursor_fail"()
+    rx1081_cur."!cursor_debug"("FAIL  ", "prefix:sym<?>")
+    .return (rx1081_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>"  :subid("260_1274853038.58734") :method
-.annotate 'line', 433
-    $P1038 = self."!PREFIX__!subrule"("O", "?")
-    new $P1039, "ResizablePMCArray"
-    push $P1039, $P1038
-    .return ($P1039)
+.sub "!PREFIX__prefix:sym<?>"  :subid("269_1275811487.95429") :method
+.annotate 'line', 446
+    $P1083 = self."!PREFIX__!subrule"("O", "?")
+    new $P1084, "ResizablePMCArray"
+    push $P1084, $P1083
+    .return ($P1084)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>"  :subid("261_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1043_tgt
-    .local int rx1043_pos
-    .local int rx1043_off
-    .local int rx1043_eos
-    .local int rx1043_rep
-    .local pmc rx1043_cur
-    (rx1043_cur, rx1043_pos, rx1043_tgt) = self."!cursor_start"()
-    rx1043_cur."!cursor_debug"("START ", "prefix:sym<!>")
-    .lex unicode:"$\x{a2}", rx1043_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1043_eos, rx1043_tgt
-    set rx1043_off, 0
-    lt rx1043_pos, 2, rx1043_start
-    sub rx1043_off, rx1043_pos, 1
-    substr rx1043_tgt, rx1043_tgt, rx1043_off
-  rx1043_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1047_done
-    goto rxscan1047_scan
-  rxscan1047_loop:
-    ($P10) = rx1043_cur."from"()
-    inc $P10
-    set rx1043_pos, $P10
-    ge rx1043_pos, rx1043_eos, rxscan1047_done
-  rxscan1047_scan:
-    set_addr $I10, rxscan1047_loop
-    rx1043_cur."!mark_push"(0, rx1043_pos, $I10)
-  rxscan1047_done:
-.annotate 'line', 490
+.sub "prefix:sym<!>"  :subid("270_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1088_tgt
+    .local int rx1088_pos
+    .local int rx1088_off
+    .local int rx1088_eos
+    .local int rx1088_rep
+    .local pmc rx1088_cur
+    (rx1088_cur, rx1088_pos, rx1088_tgt) = self."!cursor_start"()
+    rx1088_cur."!cursor_debug"("START ", "prefix:sym<!>")
+    .lex unicode:"$\x{a2}", rx1088_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1088_eos, rx1088_tgt
+    gt rx1088_pos, rx1088_eos, rx1088_done
+    set rx1088_off, 0
+    lt rx1088_pos, 2, rx1088_start
+    sub rx1088_off, rx1088_pos, 1
+    substr rx1088_tgt, rx1088_tgt, rx1088_off
+  rx1088_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1092_done
+    goto rxscan1092_scan
+  rxscan1092_loop:
+    ($P10) = rx1088_cur."from"()
+    inc $P10
+    set rx1088_pos, $P10
+    ge rx1088_pos, rx1088_eos, rxscan1092_done
+  rxscan1092_scan:
+    set_addr $I10, rxscan1092_loop
+    rx1088_cur."!mark_push"(0, rx1088_pos, $I10)
+  rxscan1092_done:
+.annotate 'line', 503
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1048_fail
-    rx1043_cur."!mark_push"(0, rx1043_pos, $I10)
+    set_addr $I10, rxcap_1093_fail
+    rx1088_cur."!mark_push"(0, rx1088_pos, $I10)
   # rx literal  "!"
-    add $I11, rx1043_pos, 1
-    gt $I11, rx1043_eos, rx1043_fail
-    sub $I11, rx1043_pos, rx1043_off
-    substr $S10, rx1043_tgt, $I11, 1
-    ne $S10, "!", rx1043_fail
-    add rx1043_pos, 1
-    set_addr $I10, rxcap_1048_fail
-    ($I12, $I11) = rx1043_cur."!mark_peek"($I10)
-    rx1043_cur."!cursor_pos"($I11)
-    ($P10) = rx1043_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1043_pos, "")
-    rx1043_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1088_pos, 1
+    gt $I11, rx1088_eos, rx1088_fail
+    sub $I11, rx1088_pos, rx1088_off
+    substr $S10, rx1088_tgt, $I11, 1
+    ne $S10, "!", rx1088_fail
+    add rx1088_pos, 1
+    set_addr $I10, rxcap_1093_fail
+    ($I12, $I11) = rx1088_cur."!mark_peek"($I10)
+    rx1088_cur."!cursor_pos"($I11)
+    ($P10) = rx1088_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1088_pos, "")
+    rx1088_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1048_done
-  rxcap_1048_fail:
-    goto rx1043_fail
-  rxcap_1048_done:
+    goto rxcap_1093_done
+  rxcap_1093_fail:
+    goto rx1088_fail
+  rxcap_1093_done:
   # rx subrule "O" subtype=capture negate=
-    rx1043_cur."!cursor_pos"(rx1043_pos)
-    $P10 = rx1043_cur."O"("%symbolic_unary, :pirop<isfalse>")
-    unless $P10, rx1043_fail
-    rx1043_cur."!mark_push"(0, -1, 0, $P10)
+    rx1088_cur."!cursor_pos"(rx1088_pos)
+    $P10 = rx1088_cur."O"("%symbolic_unary, :pirop<isfalse>")
+    unless $P10, rx1088_fail
+    rx1088_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1043_pos = $P10."pos"()
+    rx1088_pos = $P10."pos"()
   # rx pass
-    rx1043_cur."!cursor_pass"(rx1043_pos, "prefix:sym<!>")
-    rx1043_cur."!cursor_debug"("PASS  ", "prefix:sym<!>", " at pos=", rx1043_pos)
-    .return (rx1043_cur)
-  rx1043_fail:
-.annotate 'line', 433
-    (rx1043_rep, rx1043_pos, $I10, $P10) = rx1043_cur."!mark_fail"(0)
-    lt rx1043_pos, -1, rx1043_done
-    eq rx1043_pos, -1, rx1043_fail
+    rx1088_cur."!cursor_pass"(rx1088_pos, "prefix:sym<!>")
+    rx1088_cur."!cursor_debug"("PASS  ", "prefix:sym<!>", " at pos=", rx1088_pos)
+    .return (rx1088_cur)
+  rx1088_fail:
+.annotate 'line', 446
+    (rx1088_rep, rx1088_pos, $I10, $P10) = rx1088_cur."!mark_fail"(0)
+    lt rx1088_pos, -1, rx1088_done
+    eq rx1088_pos, -1, rx1088_fail
     jump $I10
-  rx1043_done:
-    rx1043_cur."!cursor_fail"()
-    rx1043_cur."!cursor_debug"("FAIL  ", "prefix:sym<!>")
-    .return (rx1043_cur)
+  rx1088_done:
+    rx1088_cur."!cursor_fail"()
+    rx1088_cur."!cursor_debug"("FAIL  ", "prefix:sym<!>")
+    .return (rx1088_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>"  :subid("262_1274853038.58734") :method
-.annotate 'line', 433
-    $P1045 = self."!PREFIX__!subrule"("O", "!")
-    new $P1046, "ResizablePMCArray"
-    push $P1046, $P1045
-    .return ($P1046)
+.sub "!PREFIX__prefix:sym<!>"  :subid("271_1275811487.95429") :method
+.annotate 'line', 446
+    $P1090 = self."!PREFIX__!subrule"("O", "!")
+    new $P1091, "ResizablePMCArray"
+    push $P1091, $P1090
+    .return ($P1091)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>"  :subid("263_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1050_tgt
-    .local int rx1050_pos
-    .local int rx1050_off
-    .local int rx1050_eos
-    .local int rx1050_rep
-    .local pmc rx1050_cur
-    (rx1050_cur, rx1050_pos, rx1050_tgt) = self."!cursor_start"()
-    rx1050_cur."!cursor_debug"("START ", "prefix:sym<|>")
-    .lex unicode:"$\x{a2}", rx1050_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1050_eos, rx1050_tgt
-    set rx1050_off, 0
-    lt rx1050_pos, 2, rx1050_start
-    sub rx1050_off, rx1050_pos, 1
-    substr rx1050_tgt, rx1050_tgt, rx1050_off
-  rx1050_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1054_done
-    goto rxscan1054_scan
-  rxscan1054_loop:
-    ($P10) = rx1050_cur."from"()
-    inc $P10
-    set rx1050_pos, $P10
-    ge rx1050_pos, rx1050_eos, rxscan1054_done
-  rxscan1054_scan:
-    set_addr $I10, rxscan1054_loop
-    rx1050_cur."!mark_push"(0, rx1050_pos, $I10)
-  rxscan1054_done:
-.annotate 'line', 491
+.sub "prefix:sym<|>"  :subid("272_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1095_tgt
+    .local int rx1095_pos
+    .local int rx1095_off
+    .local int rx1095_eos
+    .local int rx1095_rep
+    .local pmc rx1095_cur
+    (rx1095_cur, rx1095_pos, rx1095_tgt) = self."!cursor_start"()
+    rx1095_cur."!cursor_debug"("START ", "prefix:sym<|>")
+    .lex unicode:"$\x{a2}", rx1095_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1095_eos, rx1095_tgt
+    gt rx1095_pos, rx1095_eos, rx1095_done
+    set rx1095_off, 0
+    lt rx1095_pos, 2, rx1095_start
+    sub rx1095_off, rx1095_pos, 1
+    substr rx1095_tgt, rx1095_tgt, rx1095_off
+  rx1095_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1099_done
+    goto rxscan1099_scan
+  rxscan1099_loop:
+    ($P10) = rx1095_cur."from"()
+    inc $P10
+    set rx1095_pos, $P10
+    ge rx1095_pos, rx1095_eos, rxscan1099_done
+  rxscan1099_scan:
+    set_addr $I10, rxscan1099_loop
+    rx1095_cur."!mark_push"(0, rx1095_pos, $I10)
+  rxscan1099_done:
+.annotate 'line', 504
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1055_fail
-    rx1050_cur."!mark_push"(0, rx1050_pos, $I10)
+    set_addr $I10, rxcap_1100_fail
+    rx1095_cur."!mark_push"(0, rx1095_pos, $I10)
   # rx literal  "|"
-    add $I11, rx1050_pos, 1
-    gt $I11, rx1050_eos, rx1050_fail
-    sub $I11, rx1050_pos, rx1050_off
-    substr $S10, rx1050_tgt, $I11, 1
-    ne $S10, "|", rx1050_fail
-    add rx1050_pos, 1
-    set_addr $I10, rxcap_1055_fail
-    ($I12, $I11) = rx1050_cur."!mark_peek"($I10)
-    rx1050_cur."!cursor_pos"($I11)
-    ($P10) = rx1050_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1050_pos, "")
-    rx1050_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1095_pos, 1
+    gt $I11, rx1095_eos, rx1095_fail
+    sub $I11, rx1095_pos, rx1095_off
+    substr $S10, rx1095_tgt, $I11, 1
+    ne $S10, "|", rx1095_fail
+    add rx1095_pos, 1
+    set_addr $I10, rxcap_1100_fail
+    ($I12, $I11) = rx1095_cur."!mark_peek"($I10)
+    rx1095_cur."!cursor_pos"($I11)
+    ($P10) = rx1095_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1095_pos, "")
+    rx1095_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1055_done
-  rxcap_1055_fail:
-    goto rx1050_fail
-  rxcap_1055_done:
+    goto rxcap_1100_done
+  rxcap_1100_fail:
+    goto rx1095_fail
+  rxcap_1100_done:
   # rx subrule "O" subtype=capture negate=
-    rx1050_cur."!cursor_pos"(rx1050_pos)
-    $P10 = rx1050_cur."O"("%symbolic_unary")
-    unless $P10, rx1050_fail
-    rx1050_cur."!mark_push"(0, -1, 0, $P10)
+    rx1095_cur."!cursor_pos"(rx1095_pos)
+    $P10 = rx1095_cur."O"("%symbolic_unary")
+    unless $P10, rx1095_fail
+    rx1095_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1050_pos = $P10."pos"()
+    rx1095_pos = $P10."pos"()
   # rx pass
-    rx1050_cur."!cursor_pass"(rx1050_pos, "prefix:sym<|>")
-    rx1050_cur."!cursor_debug"("PASS  ", "prefix:sym<|>", " at pos=", rx1050_pos)
-    .return (rx1050_cur)
-  rx1050_fail:
-.annotate 'line', 433
-    (rx1050_rep, rx1050_pos, $I10, $P10) = rx1050_cur."!mark_fail"(0)
-    lt rx1050_pos, -1, rx1050_done
-    eq rx1050_pos, -1, rx1050_fail
+    rx1095_cur."!cursor_pass"(rx1095_pos, "prefix:sym<|>")
+    rx1095_cur."!cursor_debug"("PASS  ", "prefix:sym<|>", " at pos=", rx1095_pos)
+    .return (rx1095_cur)
+  rx1095_fail:
+.annotate 'line', 446
+    (rx1095_rep, rx1095_pos, $I10, $P10) = rx1095_cur."!mark_fail"(0)
+    lt rx1095_pos, -1, rx1095_done
+    eq rx1095_pos, -1, rx1095_fail
     jump $I10
-  rx1050_done:
-    rx1050_cur."!cursor_fail"()
-    rx1050_cur."!cursor_debug"("FAIL  ", "prefix:sym<|>")
-    .return (rx1050_cur)
+  rx1095_done:
+    rx1095_cur."!cursor_fail"()
+    rx1095_cur."!cursor_debug"("FAIL  ", "prefix:sym<|>")
+    .return (rx1095_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>"  :subid("264_1274853038.58734") :method
-.annotate 'line', 433
-    $P1052 = self."!PREFIX__!subrule"("O", "|")
-    new $P1053, "ResizablePMCArray"
-    push $P1053, $P1052
-    .return ($P1053)
+.sub "!PREFIX__prefix:sym<|>"  :subid("273_1275811487.95429") :method
+.annotate 'line', 446
+    $P1097 = self."!PREFIX__!subrule"("O", "|")
+    new $P1098, "ResizablePMCArray"
+    push $P1098, $P1097
+    .return ($P1098)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>"  :subid("265_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1057_tgt
-    .local int rx1057_pos
-    .local int rx1057_off
-    .local int rx1057_eos
-    .local int rx1057_rep
-    .local pmc rx1057_cur
-    (rx1057_cur, rx1057_pos, rx1057_tgt) = self."!cursor_start"()
-    rx1057_cur."!cursor_debug"("START ", "infix:sym<*>")
-    .lex unicode:"$\x{a2}", rx1057_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1057_eos, rx1057_tgt
-    set rx1057_off, 0
-    lt rx1057_pos, 2, rx1057_start
-    sub rx1057_off, rx1057_pos, 1
-    substr rx1057_tgt, rx1057_tgt, rx1057_off
-  rx1057_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1061_done
-    goto rxscan1061_scan
-  rxscan1061_loop:
-    ($P10) = rx1057_cur."from"()
-    inc $P10
-    set rx1057_pos, $P10
-    ge rx1057_pos, rx1057_eos, rxscan1061_done
-  rxscan1061_scan:
-    set_addr $I10, rxscan1061_loop
-    rx1057_cur."!mark_push"(0, rx1057_pos, $I10)
-  rxscan1061_done:
-.annotate 'line', 493
+.sub "infix:sym<*>"  :subid("274_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1102_tgt
+    .local int rx1102_pos
+    .local int rx1102_off
+    .local int rx1102_eos
+    .local int rx1102_rep
+    .local pmc rx1102_cur
+    (rx1102_cur, rx1102_pos, rx1102_tgt) = self."!cursor_start"()
+    rx1102_cur."!cursor_debug"("START ", "infix:sym<*>")
+    .lex unicode:"$\x{a2}", rx1102_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1102_eos, rx1102_tgt
+    gt rx1102_pos, rx1102_eos, rx1102_done
+    set rx1102_off, 0
+    lt rx1102_pos, 2, rx1102_start
+    sub rx1102_off, rx1102_pos, 1
+    substr rx1102_tgt, rx1102_tgt, rx1102_off
+  rx1102_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1106_done
+    goto rxscan1106_scan
+  rxscan1106_loop:
+    ($P10) = rx1102_cur."from"()
+    inc $P10
+    set rx1102_pos, $P10
+    ge rx1102_pos, rx1102_eos, rxscan1106_done
+  rxscan1106_scan:
+    set_addr $I10, rxscan1106_loop
+    rx1102_cur."!mark_push"(0, rx1102_pos, $I10)
+  rxscan1106_done:
+.annotate 'line', 506
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1062_fail
-    rx1057_cur."!mark_push"(0, rx1057_pos, $I10)
+    set_addr $I10, rxcap_1107_fail
+    rx1102_cur."!mark_push"(0, rx1102_pos, $I10)
   # rx literal  "*"
-    add $I11, rx1057_pos, 1
-    gt $I11, rx1057_eos, rx1057_fail
-    sub $I11, rx1057_pos, rx1057_off
-    substr $S10, rx1057_tgt, $I11, 1
-    ne $S10, "*", rx1057_fail
-    add rx1057_pos, 1
-    set_addr $I10, rxcap_1062_fail
-    ($I12, $I11) = rx1057_cur."!mark_peek"($I10)
-    rx1057_cur."!cursor_pos"($I11)
-    ($P10) = rx1057_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1057_pos, "")
-    rx1057_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1102_pos, 1
+    gt $I11, rx1102_eos, rx1102_fail
+    sub $I11, rx1102_pos, rx1102_off
+    substr $S10, rx1102_tgt, $I11, 1
+    ne $S10, "*", rx1102_fail
+    add rx1102_pos, 1
+    set_addr $I10, rxcap_1107_fail
+    ($I12, $I11) = rx1102_cur."!mark_peek"($I10)
+    rx1102_cur."!cursor_pos"($I11)
+    ($P10) = rx1102_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1102_pos, "")
+    rx1102_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1062_done
-  rxcap_1062_fail:
-    goto rx1057_fail
-  rxcap_1062_done:
+    goto rxcap_1107_done
+  rxcap_1107_fail:
+    goto rx1102_fail
+  rxcap_1107_done:
   # rx subrule "O" subtype=capture negate=
-    rx1057_cur."!cursor_pos"(rx1057_pos)
-    $P10 = rx1057_cur."O"("%multiplicative, :pirop<mul>")
-    unless $P10, rx1057_fail
-    rx1057_cur."!mark_push"(0, -1, 0, $P10)
+    rx1102_cur."!cursor_pos"(rx1102_pos)
+    $P10 = rx1102_cur."O"("%multiplicative, :pirop<mul>")
+    unless $P10, rx1102_fail
+    rx1102_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1057_pos = $P10."pos"()
+    rx1102_pos = $P10."pos"()
   # rx pass
-    rx1057_cur."!cursor_pass"(rx1057_pos, "infix:sym<*>")
-    rx1057_cur."!cursor_debug"("PASS  ", "infix:sym<*>", " at pos=", rx1057_pos)
-    .return (rx1057_cur)
-  rx1057_fail:
-.annotate 'line', 433
-    (rx1057_rep, rx1057_pos, $I10, $P10) = rx1057_cur."!mark_fail"(0)
-    lt rx1057_pos, -1, rx1057_done
-    eq rx1057_pos, -1, rx1057_fail
+    rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<*>")
+    rx1102_cur."!cursor_debug"("PASS  ", "infix:sym<*>", " at pos=", rx1102_pos)
+    .return (rx1102_cur)
+  rx1102_fail:
+.annotate 'line', 446
+    (rx1102_rep, rx1102_pos, $I10, $P10) = rx1102_cur."!mark_fail"(0)
+    lt rx1102_pos, -1, rx1102_done
+    eq rx1102_pos, -1, rx1102_fail
     jump $I10
-  rx1057_done:
-    rx1057_cur."!cursor_fail"()
-    rx1057_cur."!cursor_debug"("FAIL  ", "infix:sym<*>")
-    .return (rx1057_cur)
+  rx1102_done:
+    rx1102_cur."!cursor_fail"()
+    rx1102_cur."!cursor_debug"("FAIL  ", "infix:sym<*>")
+    .return (rx1102_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>"  :subid("266_1274853038.58734") :method
-.annotate 'line', 433
-    $P1059 = self."!PREFIX__!subrule"("O", "*")
-    new $P1060, "ResizablePMCArray"
-    push $P1060, $P1059
-    .return ($P1060)
+.sub "!PREFIX__infix:sym<*>"  :subid("275_1275811487.95429") :method
+.annotate 'line', 446
+    $P1104 = self."!PREFIX__!subrule"("O", "*")
+    new $P1105, "ResizablePMCArray"
+    push $P1105, $P1104
+    .return ($P1105)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym</>"  :subid("267_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1064_tgt
-    .local int rx1064_pos
-    .local int rx1064_off
-    .local int rx1064_eos
-    .local int rx1064_rep
-    .local pmc rx1064_cur
-    (rx1064_cur, rx1064_pos, rx1064_tgt) = self."!cursor_start"()
-    rx1064_cur."!cursor_debug"("START ", "infix:sym</>")
-    .lex unicode:"$\x{a2}", rx1064_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1064_eos, rx1064_tgt
-    set rx1064_off, 0
-    lt rx1064_pos, 2, rx1064_start
-    sub rx1064_off, rx1064_pos, 1
-    substr rx1064_tgt, rx1064_tgt, rx1064_off
-  rx1064_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1068_done
-    goto rxscan1068_scan
-  rxscan1068_loop:
-    ($P10) = rx1064_cur."from"()
-    inc $P10
-    set rx1064_pos, $P10
-    ge rx1064_pos, rx1064_eos, rxscan1068_done
-  rxscan1068_scan:
-    set_addr $I10, rxscan1068_loop
-    rx1064_cur."!mark_push"(0, rx1064_pos, $I10)
-  rxscan1068_done:
-.annotate 'line', 494
+.sub "infix:sym</>"  :subid("276_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1109_tgt
+    .local int rx1109_pos
+    .local int rx1109_off
+    .local int rx1109_eos
+    .local int rx1109_rep
+    .local pmc rx1109_cur
+    (rx1109_cur, rx1109_pos, rx1109_tgt) = self."!cursor_start"()
+    rx1109_cur."!cursor_debug"("START ", "infix:sym</>")
+    .lex unicode:"$\x{a2}", rx1109_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1109_eos, rx1109_tgt
+    gt rx1109_pos, rx1109_eos, rx1109_done
+    set rx1109_off, 0
+    lt rx1109_pos, 2, rx1109_start
+    sub rx1109_off, rx1109_pos, 1
+    substr rx1109_tgt, rx1109_tgt, rx1109_off
+  rx1109_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1113_done
+    goto rxscan1113_scan
+  rxscan1113_loop:
+    ($P10) = rx1109_cur."from"()
+    inc $P10
+    set rx1109_pos, $P10
+    ge rx1109_pos, rx1109_eos, rxscan1113_done
+  rxscan1113_scan:
+    set_addr $I10, rxscan1113_loop
+    rx1109_cur."!mark_push"(0, rx1109_pos, $I10)
+  rxscan1113_done:
+.annotate 'line', 507
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1069_fail
-    rx1064_cur."!mark_push"(0, rx1064_pos, $I10)
+    set_addr $I10, rxcap_1114_fail
+    rx1109_cur."!mark_push"(0, rx1109_pos, $I10)
   # rx literal  "/"
-    add $I11, rx1064_pos, 1
-    gt $I11, rx1064_eos, rx1064_fail
-    sub $I11, rx1064_pos, rx1064_off
-    substr $S10, rx1064_tgt, $I11, 1
-    ne $S10, "/", rx1064_fail
-    add rx1064_pos, 1
-    set_addr $I10, rxcap_1069_fail
-    ($I12, $I11) = rx1064_cur."!mark_peek"($I10)
-    rx1064_cur."!cursor_pos"($I11)
-    ($P10) = rx1064_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1064_pos, "")
-    rx1064_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1109_pos, 1
+    gt $I11, rx1109_eos, rx1109_fail
+    sub $I11, rx1109_pos, rx1109_off
+    substr $S10, rx1109_tgt, $I11, 1
+    ne $S10, "/", rx1109_fail
+    add rx1109_pos, 1
+    set_addr $I10, rxcap_1114_fail
+    ($I12, $I11) = rx1109_cur."!mark_peek"($I10)
+    rx1109_cur."!cursor_pos"($I11)
+    ($P10) = rx1109_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1109_pos, "")
+    rx1109_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1069_done
-  rxcap_1069_fail:
-    goto rx1064_fail
-  rxcap_1069_done:
+    goto rxcap_1114_done
+  rxcap_1114_fail:
+    goto rx1109_fail
+  rxcap_1114_done:
   # rx subrule "O" subtype=capture negate=
-    rx1064_cur."!cursor_pos"(rx1064_pos)
-    $P10 = rx1064_cur."O"("%multiplicative, :pirop<div>")
-    unless $P10, rx1064_fail
-    rx1064_cur."!mark_push"(0, -1, 0, $P10)
+    rx1109_cur."!cursor_pos"(rx1109_pos)
+    $P10 = rx1109_cur."O"("%multiplicative, :pirop<div>")
+    unless $P10, rx1109_fail
+    rx1109_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1064_pos = $P10."pos"()
+    rx1109_pos = $P10."pos"()
   # rx pass
-    rx1064_cur."!cursor_pass"(rx1064_pos, "infix:sym</>")
-    rx1064_cur."!cursor_debug"("PASS  ", "infix:sym</>", " at pos=", rx1064_pos)
-    .return (rx1064_cur)
-  rx1064_fail:
-.annotate 'line', 433
-    (rx1064_rep, rx1064_pos, $I10, $P10) = rx1064_cur."!mark_fail"(0)
-    lt rx1064_pos, -1, rx1064_done
-    eq rx1064_pos, -1, rx1064_fail
+    rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym</>")
+    rx1109_cur."!cursor_debug"("PASS  ", "infix:sym</>", " at pos=", rx1109_pos)
+    .return (rx1109_cur)
+  rx1109_fail:
+.annotate 'line', 446
+    (rx1109_rep, rx1109_pos, $I10, $P10) = rx1109_cur."!mark_fail"(0)
+    lt rx1109_pos, -1, rx1109_done
+    eq rx1109_pos, -1, rx1109_fail
     jump $I10
-  rx1064_done:
-    rx1064_cur."!cursor_fail"()
-    rx1064_cur."!cursor_debug"("FAIL  ", "infix:sym</>")
-    .return (rx1064_cur)
+  rx1109_done:
+    rx1109_cur."!cursor_fail"()
+    rx1109_cur."!cursor_debug"("FAIL  ", "infix:sym</>")
+    .return (rx1109_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>"  :subid("268_1274853038.58734") :method
-.annotate 'line', 433
-    $P1066 = self."!PREFIX__!subrule"("O", "/")
-    new $P1067, "ResizablePMCArray"
-    push $P1067, $P1066
-    .return ($P1067)
+.sub "!PREFIX__infix:sym</>"  :subid("277_1275811487.95429") :method
+.annotate 'line', 446
+    $P1111 = self."!PREFIX__!subrule"("O", "/")
+    new $P1112, "ResizablePMCArray"
+    push $P1112, $P1111
+    .return ($P1112)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>"  :subid("269_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1071_tgt
-    .local int rx1071_pos
-    .local int rx1071_off
-    .local int rx1071_eos
-    .local int rx1071_rep
-    .local pmc rx1071_cur
-    (rx1071_cur, rx1071_pos, rx1071_tgt) = self."!cursor_start"()
-    rx1071_cur."!cursor_debug"("START ", "infix:sym<%>")
-    .lex unicode:"$\x{a2}", rx1071_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1071_eos, rx1071_tgt
-    set rx1071_off, 0
-    lt rx1071_pos, 2, rx1071_start
-    sub rx1071_off, rx1071_pos, 1
-    substr rx1071_tgt, rx1071_tgt, rx1071_off
-  rx1071_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1075_done
-    goto rxscan1075_scan
-  rxscan1075_loop:
-    ($P10) = rx1071_cur."from"()
-    inc $P10
-    set rx1071_pos, $P10
-    ge rx1071_pos, rx1071_eos, rxscan1075_done
-  rxscan1075_scan:
-    set_addr $I10, rxscan1075_loop
-    rx1071_cur."!mark_push"(0, rx1071_pos, $I10)
-  rxscan1075_done:
-.annotate 'line', 495
+.sub "infix:sym<%>"  :subid("278_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1116_tgt
+    .local int rx1116_pos
+    .local int rx1116_off
+    .local int rx1116_eos
+    .local int rx1116_rep
+    .local pmc rx1116_cur
+    (rx1116_cur, rx1116_pos, rx1116_tgt) = self."!cursor_start"()
+    rx1116_cur."!cursor_debug"("START ", "infix:sym<%>")
+    .lex unicode:"$\x{a2}", rx1116_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1116_eos, rx1116_tgt
+    gt rx1116_pos, rx1116_eos, rx1116_done
+    set rx1116_off, 0
+    lt rx1116_pos, 2, rx1116_start
+    sub rx1116_off, rx1116_pos, 1
+    substr rx1116_tgt, rx1116_tgt, rx1116_off
+  rx1116_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1120_done
+    goto rxscan1120_scan
+  rxscan1120_loop:
+    ($P10) = rx1116_cur."from"()
+    inc $P10
+    set rx1116_pos, $P10
+    ge rx1116_pos, rx1116_eos, rxscan1120_done
+  rxscan1120_scan:
+    set_addr $I10, rxscan1120_loop
+    rx1116_cur."!mark_push"(0, rx1116_pos, $I10)
+  rxscan1120_done:
+.annotate 'line', 508
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1076_fail
-    rx1071_cur."!mark_push"(0, rx1071_pos, $I10)
+    set_addr $I10, rxcap_1121_fail
+    rx1116_cur."!mark_push"(0, rx1116_pos, $I10)
   # rx literal  "%"
-    add $I11, rx1071_pos, 1
-    gt $I11, rx1071_eos, rx1071_fail
-    sub $I11, rx1071_pos, rx1071_off
-    substr $S10, rx1071_tgt, $I11, 1
-    ne $S10, "%", rx1071_fail
-    add rx1071_pos, 1
-    set_addr $I10, rxcap_1076_fail
-    ($I12, $I11) = rx1071_cur."!mark_peek"($I10)
-    rx1071_cur."!cursor_pos"($I11)
-    ($P10) = rx1071_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1071_pos, "")
-    rx1071_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1116_pos, 1
+    gt $I11, rx1116_eos, rx1116_fail
+    sub $I11, rx1116_pos, rx1116_off
+    substr $S10, rx1116_tgt, $I11, 1
+    ne $S10, "%", rx1116_fail
+    add rx1116_pos, 1
+    set_addr $I10, rxcap_1121_fail
+    ($I12, $I11) = rx1116_cur."!mark_peek"($I10)
+    rx1116_cur."!cursor_pos"($I11)
+    ($P10) = rx1116_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1116_pos, "")
+    rx1116_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1076_done
-  rxcap_1076_fail:
-    goto rx1071_fail
-  rxcap_1076_done:
+    goto rxcap_1121_done
+  rxcap_1121_fail:
+    goto rx1116_fail
+  rxcap_1121_done:
   # rx subrule "O" subtype=capture negate=
-    rx1071_cur."!cursor_pos"(rx1071_pos)
-    $P10 = rx1071_cur."O"("%multiplicative, :pirop<mod>")
-    unless $P10, rx1071_fail
-    rx1071_cur."!mark_push"(0, -1, 0, $P10)
+    rx1116_cur."!cursor_pos"(rx1116_pos)
+    $P10 = rx1116_cur."O"("%multiplicative, :pirop<mod>")
+    unless $P10, rx1116_fail
+    rx1116_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1071_pos = $P10."pos"()
+    rx1116_pos = $P10."pos"()
   # rx pass
-    rx1071_cur."!cursor_pass"(rx1071_pos, "infix:sym<%>")
-    rx1071_cur."!cursor_debug"("PASS  ", "infix:sym<%>", " at pos=", rx1071_pos)
-    .return (rx1071_cur)
-  rx1071_fail:
-.annotate 'line', 433
-    (rx1071_rep, rx1071_pos, $I10, $P10) = rx1071_cur."!mark_fail"(0)
-    lt rx1071_pos, -1, rx1071_done
-    eq rx1071_pos, -1, rx1071_fail
+    rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<%>")
+    rx1116_cur."!cursor_debug"("PASS  ", "infix:sym<%>", " at pos=", rx1116_pos)
+    .return (rx1116_cur)
+  rx1116_fail:
+.annotate 'line', 446
+    (rx1116_rep, rx1116_pos, $I10, $P10) = rx1116_cur."!mark_fail"(0)
+    lt rx1116_pos, -1, rx1116_done
+    eq rx1116_pos, -1, rx1116_fail
     jump $I10
-  rx1071_done:
-    rx1071_cur."!cursor_fail"()
-    rx1071_cur."!cursor_debug"("FAIL  ", "infix:sym<%>")
-    .return (rx1071_cur)
+  rx1116_done:
+    rx1116_cur."!cursor_fail"()
+    rx1116_cur."!cursor_debug"("FAIL  ", "infix:sym<%>")
+    .return (rx1116_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>"  :subid("270_1274853038.58734") :method
-.annotate 'line', 433
-    $P1073 = self."!PREFIX__!subrule"("O", "%")
-    new $P1074, "ResizablePMCArray"
-    push $P1074, $P1073
-    .return ($P1074)
+.sub "!PREFIX__infix:sym<%>"  :subid("279_1275811487.95429") :method
+.annotate 'line', 446
+    $P1118 = self."!PREFIX__!subrule"("O", "%")
+    new $P1119, "ResizablePMCArray"
+    push $P1119, $P1118
+    .return ($P1119)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>"  :subid("271_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1078_tgt
-    .local int rx1078_pos
-    .local int rx1078_off
-    .local int rx1078_eos
-    .local int rx1078_rep
-    .local pmc rx1078_cur
-    (rx1078_cur, rx1078_pos, rx1078_tgt) = self."!cursor_start"()
-    rx1078_cur."!cursor_debug"("START ", "infix:sym<+>")
-    .lex unicode:"$\x{a2}", rx1078_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1078_eos, rx1078_tgt
-    set rx1078_off, 0
-    lt rx1078_pos, 2, rx1078_start
-    sub rx1078_off, rx1078_pos, 1
-    substr rx1078_tgt, rx1078_tgt, rx1078_off
-  rx1078_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1082_done
-    goto rxscan1082_scan
-  rxscan1082_loop:
-    ($P10) = rx1078_cur."from"()
-    inc $P10
-    set rx1078_pos, $P10
-    ge rx1078_pos, rx1078_eos, rxscan1082_done
-  rxscan1082_scan:
-    set_addr $I10, rxscan1082_loop
-    rx1078_cur."!mark_push"(0, rx1078_pos, $I10)
-  rxscan1082_done:
-.annotate 'line', 497
+.sub "infix:sym<+>"  :subid("280_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1123_tgt
+    .local int rx1123_pos
+    .local int rx1123_off
+    .local int rx1123_eos
+    .local int rx1123_rep
+    .local pmc rx1123_cur
+    (rx1123_cur, rx1123_pos, rx1123_tgt) = self."!cursor_start"()
+    rx1123_cur."!cursor_debug"("START ", "infix:sym<+>")
+    .lex unicode:"$\x{a2}", rx1123_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1123_eos, rx1123_tgt
+    gt rx1123_pos, rx1123_eos, rx1123_done
+    set rx1123_off, 0
+    lt rx1123_pos, 2, rx1123_start
+    sub rx1123_off, rx1123_pos, 1
+    substr rx1123_tgt, rx1123_tgt, rx1123_off
+  rx1123_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1127_done
+    goto rxscan1127_scan
+  rxscan1127_loop:
+    ($P10) = rx1123_cur."from"()
+    inc $P10
+    set rx1123_pos, $P10
+    ge rx1123_pos, rx1123_eos, rxscan1127_done
+  rxscan1127_scan:
+    set_addr $I10, rxscan1127_loop
+    rx1123_cur."!mark_push"(0, rx1123_pos, $I10)
+  rxscan1127_done:
+.annotate 'line', 510
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1083_fail
-    rx1078_cur."!mark_push"(0, rx1078_pos, $I10)
+    set_addr $I10, rxcap_1128_fail
+    rx1123_cur."!mark_push"(0, rx1123_pos, $I10)
   # rx literal  "+"
-    add $I11, rx1078_pos, 1
-    gt $I11, rx1078_eos, rx1078_fail
-    sub $I11, rx1078_pos, rx1078_off
-    substr $S10, rx1078_tgt, $I11, 1
-    ne $S10, "+", rx1078_fail
-    add rx1078_pos, 1
-    set_addr $I10, rxcap_1083_fail
-    ($I12, $I11) = rx1078_cur."!mark_peek"($I10)
-    rx1078_cur."!cursor_pos"($I11)
-    ($P10) = rx1078_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1078_pos, "")
-    rx1078_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1123_pos, 1
+    gt $I11, rx1123_eos, rx1123_fail
+    sub $I11, rx1123_pos, rx1123_off
+    substr $S10, rx1123_tgt, $I11, 1
+    ne $S10, "+", rx1123_fail
+    add rx1123_pos, 1
+    set_addr $I10, rxcap_1128_fail
+    ($I12, $I11) = rx1123_cur."!mark_peek"($I10)
+    rx1123_cur."!cursor_pos"($I11)
+    ($P10) = rx1123_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1123_pos, "")
+    rx1123_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1083_done
-  rxcap_1083_fail:
-    goto rx1078_fail
-  rxcap_1083_done:
+    goto rxcap_1128_done
+  rxcap_1128_fail:
+    goto rx1123_fail
+  rxcap_1128_done:
   # rx subrule "O" subtype=capture negate=
-    rx1078_cur."!cursor_pos"(rx1078_pos)
-    $P10 = rx1078_cur."O"("%additive, :pirop<add>")
-    unless $P10, rx1078_fail
-    rx1078_cur."!mark_push"(0, -1, 0, $P10)
+    rx1123_cur."!cursor_pos"(rx1123_pos)
+    $P10 = rx1123_cur."O"("%additive, :pirop<add>")
+    unless $P10, rx1123_fail
+    rx1123_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1078_pos = $P10."pos"()
+    rx1123_pos = $P10."pos"()
   # rx pass
-    rx1078_cur."!cursor_pass"(rx1078_pos, "infix:sym<+>")
-    rx1078_cur."!cursor_debug"("PASS  ", "infix:sym<+>", " at pos=", rx1078_pos)
-    .return (rx1078_cur)
-  rx1078_fail:
-.annotate 'line', 433
-    (rx1078_rep, rx1078_pos, $I10, $P10) = rx1078_cur."!mark_fail"(0)
-    lt rx1078_pos, -1, rx1078_done
-    eq rx1078_pos, -1, rx1078_fail
+    rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+>")
+    rx1123_cur."!cursor_debug"("PASS  ", "infix:sym<+>", " at pos=", rx1123_pos)
+    .return (rx1123_cur)
+  rx1123_fail:
+.annotate 'line', 446
+    (rx1123_rep, rx1123_pos, $I10, $P10) = rx1123_cur."!mark_fail"(0)
+    lt rx1123_pos, -1, rx1123_done
+    eq rx1123_pos, -1, rx1123_fail
     jump $I10
-  rx1078_done:
-    rx1078_cur."!cursor_fail"()
-    rx1078_cur."!cursor_debug"("FAIL  ", "infix:sym<+>")
-    .return (rx1078_cur)
+  rx1123_done:
+    rx1123_cur."!cursor_fail"()
+    rx1123_cur."!cursor_debug"("FAIL  ", "infix:sym<+>")
+    .return (rx1123_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>"  :subid("272_1274853038.58734") :method
-.annotate 'line', 433
-    $P1080 = self."!PREFIX__!subrule"("O", "+")
-    new $P1081, "ResizablePMCArray"
-    push $P1081, $P1080
-    .return ($P1081)
+.sub "!PREFIX__infix:sym<+>"  :subid("281_1275811487.95429") :method
+.annotate 'line', 446
+    $P1125 = self."!PREFIX__!subrule"("O", "+")
+    new $P1126, "ResizablePMCArray"
+    push $P1126, $P1125
+    .return ($P1126)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<->"  :subid("273_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1085_tgt
-    .local int rx1085_pos
-    .local int rx1085_off
-    .local int rx1085_eos
-    .local int rx1085_rep
-    .local pmc rx1085_cur
-    (rx1085_cur, rx1085_pos, rx1085_tgt) = self."!cursor_start"()
-    rx1085_cur."!cursor_debug"("START ", "infix:sym<->")
-    .lex unicode:"$\x{a2}", rx1085_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1085_eos, rx1085_tgt
-    set rx1085_off, 0
-    lt rx1085_pos, 2, rx1085_start
-    sub rx1085_off, rx1085_pos, 1
-    substr rx1085_tgt, rx1085_tgt, rx1085_off
-  rx1085_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1089_done
-    goto rxscan1089_scan
-  rxscan1089_loop:
-    ($P10) = rx1085_cur."from"()
-    inc $P10
-    set rx1085_pos, $P10
-    ge rx1085_pos, rx1085_eos, rxscan1089_done
-  rxscan1089_scan:
-    set_addr $I10, rxscan1089_loop
-    rx1085_cur."!mark_push"(0, rx1085_pos, $I10)
-  rxscan1089_done:
-.annotate 'line', 498
+.sub "infix:sym<->"  :subid("282_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1130_tgt
+    .local int rx1130_pos
+    .local int rx1130_off
+    .local int rx1130_eos
+    .local int rx1130_rep
+    .local pmc rx1130_cur
+    (rx1130_cur, rx1130_pos, rx1130_tgt) = self."!cursor_start"()
+    rx1130_cur."!cursor_debug"("START ", "infix:sym<->")
+    .lex unicode:"$\x{a2}", rx1130_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1130_eos, rx1130_tgt
+    gt rx1130_pos, rx1130_eos, rx1130_done
+    set rx1130_off, 0
+    lt rx1130_pos, 2, rx1130_start
+    sub rx1130_off, rx1130_pos, 1
+    substr rx1130_tgt, rx1130_tgt, rx1130_off
+  rx1130_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1134_done
+    goto rxscan1134_scan
+  rxscan1134_loop:
+    ($P10) = rx1130_cur."from"()
+    inc $P10
+    set rx1130_pos, $P10
+    ge rx1130_pos, rx1130_eos, rxscan1134_done
+  rxscan1134_scan:
+    set_addr $I10, rxscan1134_loop
+    rx1130_cur."!mark_push"(0, rx1130_pos, $I10)
+  rxscan1134_done:
+.annotate 'line', 511
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1090_fail
-    rx1085_cur."!mark_push"(0, rx1085_pos, $I10)
+    set_addr $I10, rxcap_1135_fail
+    rx1130_cur."!mark_push"(0, rx1130_pos, $I10)
   # rx literal  "-"
-    add $I11, rx1085_pos, 1
-    gt $I11, rx1085_eos, rx1085_fail
-    sub $I11, rx1085_pos, rx1085_off
-    substr $S10, rx1085_tgt, $I11, 1
-    ne $S10, "-", rx1085_fail
-    add rx1085_pos, 1
-    set_addr $I10, rxcap_1090_fail
-    ($I12, $I11) = rx1085_cur."!mark_peek"($I10)
-    rx1085_cur."!cursor_pos"($I11)
-    ($P10) = rx1085_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1085_pos, "")
-    rx1085_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1130_pos, 1
+    gt $I11, rx1130_eos, rx1130_fail
+    sub $I11, rx1130_pos, rx1130_off
+    substr $S10, rx1130_tgt, $I11, 1
+    ne $S10, "-", rx1130_fail
+    add rx1130_pos, 1
+    set_addr $I10, rxcap_1135_fail
+    ($I12, $I11) = rx1130_cur."!mark_peek"($I10)
+    rx1130_cur."!cursor_pos"($I11)
+    ($P10) = rx1130_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1130_pos, "")
+    rx1130_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1090_done
-  rxcap_1090_fail:
-    goto rx1085_fail
-  rxcap_1090_done:
+    goto rxcap_1135_done
+  rxcap_1135_fail:
+    goto rx1130_fail
+  rxcap_1135_done:
   # rx subrule "O" subtype=capture negate=
-    rx1085_cur."!cursor_pos"(rx1085_pos)
-    $P10 = rx1085_cur."O"("%additive, :pirop<sub>")
-    unless $P10, rx1085_fail
-    rx1085_cur."!mark_push"(0, -1, 0, $P10)
+    rx1130_cur."!cursor_pos"(rx1130_pos)
+    $P10 = rx1130_cur."O"("%additive, :pirop<sub>")
+    unless $P10, rx1130_fail
+    rx1130_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1085_pos = $P10."pos"()
+    rx1130_pos = $P10."pos"()
   # rx pass
-    rx1085_cur."!cursor_pass"(rx1085_pos, "infix:sym<->")
-    rx1085_cur."!cursor_debug"("PASS  ", "infix:sym<->", " at pos=", rx1085_pos)
-    .return (rx1085_cur)
-  rx1085_fail:
-.annotate 'line', 433
-    (rx1085_rep, rx1085_pos, $I10, $P10) = rx1085_cur."!mark_fail"(0)
-    lt rx1085_pos, -1, rx1085_done
-    eq rx1085_pos, -1, rx1085_fail
+    rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<->")
+    rx1130_cur."!cursor_debug"("PASS  ", "infix:sym<->", " at pos=", rx1130_pos)
+    .return (rx1130_cur)
+  rx1130_fail:
+.annotate 'line', 446
+    (rx1130_rep, rx1130_pos, $I10, $P10) = rx1130_cur."!mark_fail"(0)
+    lt rx1130_pos, -1, rx1130_done
+    eq rx1130_pos, -1, rx1130_fail
     jump $I10
-  rx1085_done:
-    rx1085_cur."!cursor_fail"()
-    rx1085_cur."!cursor_debug"("FAIL  ", "infix:sym<->")
-    .return (rx1085_cur)
+  rx1130_done:
+    rx1130_cur."!cursor_fail"()
+    rx1130_cur."!cursor_debug"("FAIL  ", "infix:sym<->")
+    .return (rx1130_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->"  :subid("274_1274853038.58734") :method
-.annotate 'line', 433
-    $P1087 = self."!PREFIX__!subrule"("O", "-")
-    new $P1088, "ResizablePMCArray"
-    push $P1088, $P1087
-    .return ($P1088)
+.sub "!PREFIX__infix:sym<->"  :subid("283_1275811487.95429") :method
+.annotate 'line', 446
+    $P1132 = self."!PREFIX__!subrule"("O", "-")
+    new $P1133, "ResizablePMCArray"
+    push $P1133, $P1132
+    .return ($P1133)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>"  :subid("275_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1092_tgt
-    .local int rx1092_pos
-    .local int rx1092_off
-    .local int rx1092_eos
-    .local int rx1092_rep
-    .local pmc rx1092_cur
-    (rx1092_cur, rx1092_pos, rx1092_tgt) = self."!cursor_start"()
-    rx1092_cur."!cursor_debug"("START ", "infix:sym<~>")
-    .lex unicode:"$\x{a2}", rx1092_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1092_eos, rx1092_tgt
-    set rx1092_off, 0
-    lt rx1092_pos, 2, rx1092_start
-    sub rx1092_off, rx1092_pos, 1
-    substr rx1092_tgt, rx1092_tgt, rx1092_off
-  rx1092_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1096_done
-    goto rxscan1096_scan
-  rxscan1096_loop:
-    ($P10) = rx1092_cur."from"()
-    inc $P10
-    set rx1092_pos, $P10
-    ge rx1092_pos, rx1092_eos, rxscan1096_done
-  rxscan1096_scan:
-    set_addr $I10, rxscan1096_loop
-    rx1092_cur."!mark_push"(0, rx1092_pos, $I10)
-  rxscan1096_done:
-.annotate 'line', 500
+.sub "infix:sym<~>"  :subid("284_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1137_tgt
+    .local int rx1137_pos
+    .local int rx1137_off
+    .local int rx1137_eos
+    .local int rx1137_rep
+    .local pmc rx1137_cur
+    (rx1137_cur, rx1137_pos, rx1137_tgt) = self."!cursor_start"()
+    rx1137_cur."!cursor_debug"("START ", "infix:sym<~>")
+    .lex unicode:"$\x{a2}", rx1137_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1137_eos, rx1137_tgt
+    gt rx1137_pos, rx1137_eos, rx1137_done
+    set rx1137_off, 0
+    lt rx1137_pos, 2, rx1137_start
+    sub rx1137_off, rx1137_pos, 1
+    substr rx1137_tgt, rx1137_tgt, rx1137_off
+  rx1137_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1141_done
+    goto rxscan1141_scan
+  rxscan1141_loop:
+    ($P10) = rx1137_cur."from"()
+    inc $P10
+    set rx1137_pos, $P10
+    ge rx1137_pos, rx1137_eos, rxscan1141_done
+  rxscan1141_scan:
+    set_addr $I10, rxscan1141_loop
+    rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
+  rxscan1141_done:
+.annotate 'line', 513
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1097_fail
-    rx1092_cur."!mark_push"(0, rx1092_pos, $I10)
+    set_addr $I10, rxcap_1142_fail
+    rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
   # rx literal  "~"
-    add $I11, rx1092_pos, 1
-    gt $I11, rx1092_eos, rx1092_fail
-    sub $I11, rx1092_pos, rx1092_off
-    substr $S10, rx1092_tgt, $I11, 1
-    ne $S10, "~", rx1092_fail
-    add rx1092_pos, 1
-    set_addr $I10, rxcap_1097_fail
-    ($I12, $I11) = rx1092_cur."!mark_peek"($I10)
-    rx1092_cur."!cursor_pos"($I11)
-    ($P10) = rx1092_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1092_pos, "")
-    rx1092_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1137_pos, 1
+    gt $I11, rx1137_eos, rx1137_fail
+    sub $I11, rx1137_pos, rx1137_off
+    substr $S10, rx1137_tgt, $I11, 1
+    ne $S10, "~", rx1137_fail
+    add rx1137_pos, 1
+    set_addr $I10, rxcap_1142_fail
+    ($I12, $I11) = rx1137_cur."!mark_peek"($I10)
+    rx1137_cur."!cursor_pos"($I11)
+    ($P10) = rx1137_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1137_pos, "")
+    rx1137_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1097_done
-  rxcap_1097_fail:
-    goto rx1092_fail
-  rxcap_1097_done:
+    goto rxcap_1142_done
+  rxcap_1142_fail:
+    goto rx1137_fail
+  rxcap_1142_done:
   # rx subrule "O" subtype=capture negate=
-    rx1092_cur."!cursor_pos"(rx1092_pos)
-    $P10 = rx1092_cur."O"("%concatenation , :pirop<concat>")
-    unless $P10, rx1092_fail
-    rx1092_cur."!mark_push"(0, -1, 0, $P10)
+    rx1137_cur."!cursor_pos"(rx1137_pos)
+    $P10 = rx1137_cur."O"("%concatenation , :pirop<concat>")
+    unless $P10, rx1137_fail
+    rx1137_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1092_pos = $P10."pos"()
+    rx1137_pos = $P10."pos"()
   # rx pass
-    rx1092_cur."!cursor_pass"(rx1092_pos, "infix:sym<~>")
-    rx1092_cur."!cursor_debug"("PASS  ", "infix:sym<~>", " at pos=", rx1092_pos)
-    .return (rx1092_cur)
-  rx1092_fail:
-.annotate 'line', 433
-    (rx1092_rep, rx1092_pos, $I10, $P10) = rx1092_cur."!mark_fail"(0)
-    lt rx1092_pos, -1, rx1092_done
-    eq rx1092_pos, -1, rx1092_fail
+    rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>")
+    rx1137_cur."!cursor_debug"("PASS  ", "infix:sym<~>", " at pos=", rx1137_pos)
+    .return (rx1137_cur)
+  rx1137_fail:
+.annotate 'line', 446
+    (rx1137_rep, rx1137_pos, $I10, $P10) = rx1137_cur."!mark_fail"(0)
+    lt rx1137_pos, -1, rx1137_done
+    eq rx1137_pos, -1, rx1137_fail
     jump $I10
-  rx1092_done:
-    rx1092_cur."!cursor_fail"()
-    rx1092_cur."!cursor_debug"("FAIL  ", "infix:sym<~>")
-    .return (rx1092_cur)
+  rx1137_done:
+    rx1137_cur."!cursor_fail"()
+    rx1137_cur."!cursor_debug"("FAIL  ", "infix:sym<~>")
+    .return (rx1137_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>"  :subid("276_1274853038.58734") :method
-.annotate 'line', 433
-    $P1094 = self."!PREFIX__!subrule"("O", "~")
-    new $P1095, "ResizablePMCArray"
-    push $P1095, $P1094
-    .return ($P1095)
+.sub "!PREFIX__infix:sym<~>"  :subid("285_1275811487.95429") :method
+.annotate 'line', 446
+    $P1139 = self."!PREFIX__!subrule"("O", "~")
+    new $P1140, "ResizablePMCArray"
+    push $P1140, $P1139
+    .return ($P1140)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>"  :subid("277_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1099_tgt
-    .local int rx1099_pos
-    .local int rx1099_off
-    .local int rx1099_eos
-    .local int rx1099_rep
-    .local pmc rx1099_cur
-    (rx1099_cur, rx1099_pos, rx1099_tgt) = self."!cursor_start"()
-    rx1099_cur."!cursor_debug"("START ", "infix:sym<==>")
-    .lex unicode:"$\x{a2}", rx1099_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1099_eos, rx1099_tgt
-    set rx1099_off, 0
-    lt rx1099_pos, 2, rx1099_start
-    sub rx1099_off, rx1099_pos, 1
-    substr rx1099_tgt, rx1099_tgt, rx1099_off
-  rx1099_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1103_done
-    goto rxscan1103_scan
-  rxscan1103_loop:
-    ($P10) = rx1099_cur."from"()
-    inc $P10
-    set rx1099_pos, $P10
-    ge rx1099_pos, rx1099_eos, rxscan1103_done
-  rxscan1103_scan:
-    set_addr $I10, rxscan1103_loop
-    rx1099_cur."!mark_push"(0, rx1099_pos, $I10)
-  rxscan1103_done:
-.annotate 'line', 502
+.sub "infix:sym<==>"  :subid("286_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1144_tgt
+    .local int rx1144_pos
+    .local int rx1144_off
+    .local int rx1144_eos
+    .local int rx1144_rep
+    .local pmc rx1144_cur
+    (rx1144_cur, rx1144_pos, rx1144_tgt) = self."!cursor_start"()
+    rx1144_cur."!cursor_debug"("START ", "infix:sym<==>")
+    .lex unicode:"$\x{a2}", rx1144_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1144_eos, rx1144_tgt
+    gt rx1144_pos, rx1144_eos, rx1144_done
+    set rx1144_off, 0
+    lt rx1144_pos, 2, rx1144_start
+    sub rx1144_off, rx1144_pos, 1
+    substr rx1144_tgt, rx1144_tgt, rx1144_off
+  rx1144_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1148_done
+    goto rxscan1148_scan
+  rxscan1148_loop:
+    ($P10) = rx1144_cur."from"()
+    inc $P10
+    set rx1144_pos, $P10
+    ge rx1144_pos, rx1144_eos, rxscan1148_done
+  rxscan1148_scan:
+    set_addr $I10, rxscan1148_loop
+    rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
+  rxscan1148_done:
+.annotate 'line', 515
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1104_fail
-    rx1099_cur."!mark_push"(0, rx1099_pos, $I10)
+    set_addr $I10, rxcap_1149_fail
+    rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
   # rx literal  "=="
-    add $I11, rx1099_pos, 2
-    gt $I11, rx1099_eos, rx1099_fail
-    sub $I11, rx1099_pos, rx1099_off
-    substr $S10, rx1099_tgt, $I11, 2
-    ne $S10, "==", rx1099_fail
-    add rx1099_pos, 2
-    set_addr $I10, rxcap_1104_fail
-    ($I12, $I11) = rx1099_cur."!mark_peek"($I10)
-    rx1099_cur."!cursor_pos"($I11)
-    ($P10) = rx1099_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1099_pos, "")
-    rx1099_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1144_pos, 2
+    gt $I11, rx1144_eos, rx1144_fail
+    sub $I11, rx1144_pos, rx1144_off
+    substr $S10, rx1144_tgt, $I11, 2
+    ne $S10, "==", rx1144_fail
+    add rx1144_pos, 2
+    set_addr $I10, rxcap_1149_fail
+    ($I12, $I11) = rx1144_cur."!mark_peek"($I10)
+    rx1144_cur."!cursor_pos"($I11)
+    ($P10) = rx1144_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1144_pos, "")
+    rx1144_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1104_done
-  rxcap_1104_fail:
-    goto rx1099_fail
-  rxcap_1104_done:
+    goto rxcap_1149_done
+  rxcap_1149_fail:
+    goto rx1144_fail
+  rxcap_1149_done:
   # rx subrule "O" subtype=capture negate=
-    rx1099_cur."!cursor_pos"(rx1099_pos)
-    $P10 = rx1099_cur."O"("%relational, :pirop<iseq INn>")
-    unless $P10, rx1099_fail
-    rx1099_cur."!mark_push"(0, -1, 0, $P10)
+    rx1144_cur."!cursor_pos"(rx1144_pos)
+    $P10 = rx1144_cur."O"("%relational, :pirop<iseq INn>")
+    unless $P10, rx1144_fail
+    rx1144_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1099_pos = $P10."pos"()
+    rx1144_pos = $P10."pos"()
   # rx pass
-    rx1099_cur."!cursor_pass"(rx1099_pos, "infix:sym<==>")
-    rx1099_cur."!cursor_debug"("PASS  ", "infix:sym<==>", " at pos=", rx1099_pos)
-    .return (rx1099_cur)
-  rx1099_fail:
-.annotate 'line', 433
-    (rx1099_rep, rx1099_pos, $I10, $P10) = rx1099_cur."!mark_fail"(0)
-    lt rx1099_pos, -1, rx1099_done
-    eq rx1099_pos, -1, rx1099_fail
+    rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>")
+    rx1144_cur."!cursor_debug"("PASS  ", "infix:sym<==>", " at pos=", rx1144_pos)
+    .return (rx1144_cur)
+  rx1144_fail:
+.annotate 'line', 446
+    (rx1144_rep, rx1144_pos, $I10, $P10) = rx1144_cur."!mark_fail"(0)
+    lt rx1144_pos, -1, rx1144_done
+    eq rx1144_pos, -1, rx1144_fail
     jump $I10
-  rx1099_done:
-    rx1099_cur."!cursor_fail"()
-    rx1099_cur."!cursor_debug"("FAIL  ", "infix:sym<==>")
-    .return (rx1099_cur)
+  rx1144_done:
+    rx1144_cur."!cursor_fail"()
+    rx1144_cur."!cursor_debug"("FAIL  ", "infix:sym<==>")
+    .return (rx1144_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>"  :subid("278_1274853038.58734") :method
-.annotate 'line', 433
-    $P1101 = self."!PREFIX__!subrule"("O", "==")
-    new $P1102, "ResizablePMCArray"
-    push $P1102, $P1101
-    .return ($P1102)
+.sub "!PREFIX__infix:sym<==>"  :subid("287_1275811487.95429") :method
+.annotate 'line', 446
+    $P1146 = self."!PREFIX__!subrule"("O", "==")
+    new $P1147, "ResizablePMCArray"
+    push $P1147, $P1146
+    .return ($P1147)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>"  :subid("279_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1106_tgt
-    .local int rx1106_pos
-    .local int rx1106_off
-    .local int rx1106_eos
-    .local int rx1106_rep
-    .local pmc rx1106_cur
-    (rx1106_cur, rx1106_pos, rx1106_tgt) = self."!cursor_start"()
-    rx1106_cur."!cursor_debug"("START ", "infix:sym<!=>")
-    .lex unicode:"$\x{a2}", rx1106_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1106_eos, rx1106_tgt
-    set rx1106_off, 0
-    lt rx1106_pos, 2, rx1106_start
-    sub rx1106_off, rx1106_pos, 1
-    substr rx1106_tgt, rx1106_tgt, rx1106_off
-  rx1106_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1110_done
-    goto rxscan1110_scan
-  rxscan1110_loop:
-    ($P10) = rx1106_cur."from"()
-    inc $P10
-    set rx1106_pos, $P10
-    ge rx1106_pos, rx1106_eos, rxscan1110_done
-  rxscan1110_scan:
-    set_addr $I10, rxscan1110_loop
-    rx1106_cur."!mark_push"(0, rx1106_pos, $I10)
-  rxscan1110_done:
-.annotate 'line', 503
+.sub "infix:sym<!=>"  :subid("288_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1151_tgt
+    .local int rx1151_pos
+    .local int rx1151_off
+    .local int rx1151_eos
+    .local int rx1151_rep
+    .local pmc rx1151_cur
+    (rx1151_cur, rx1151_pos, rx1151_tgt) = self."!cursor_start"()
+    rx1151_cur."!cursor_debug"("START ", "infix:sym<!=>")
+    .lex unicode:"$\x{a2}", rx1151_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1151_eos, rx1151_tgt
+    gt rx1151_pos, rx1151_eos, rx1151_done
+    set rx1151_off, 0
+    lt rx1151_pos, 2, rx1151_start
+    sub rx1151_off, rx1151_pos, 1
+    substr rx1151_tgt, rx1151_tgt, rx1151_off
+  rx1151_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1155_done
+    goto rxscan1155_scan
+  rxscan1155_loop:
+    ($P10) = rx1151_cur."from"()
+    inc $P10
+    set rx1151_pos, $P10
+    ge rx1151_pos, rx1151_eos, rxscan1155_done
+  rxscan1155_scan:
+    set_addr $I10, rxscan1155_loop
+    rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
+  rxscan1155_done:
+.annotate 'line', 516
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1111_fail
-    rx1106_cur."!mark_push"(0, rx1106_pos, $I10)
+    set_addr $I10, rxcap_1156_fail
+    rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
   # rx literal  "!="
-    add $I11, rx1106_pos, 2
-    gt $I11, rx1106_eos, rx1106_fail
-    sub $I11, rx1106_pos, rx1106_off
-    substr $S10, rx1106_tgt, $I11, 2
-    ne $S10, "!=", rx1106_fail
-    add rx1106_pos, 2
-    set_addr $I10, rxcap_1111_fail
-    ($I12, $I11) = rx1106_cur."!mark_peek"($I10)
-    rx1106_cur."!cursor_pos"($I11)
-    ($P10) = rx1106_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1106_pos, "")
-    rx1106_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1151_pos, 2
+    gt $I11, rx1151_eos, rx1151_fail
+    sub $I11, rx1151_pos, rx1151_off
+    substr $S10, rx1151_tgt, $I11, 2
+    ne $S10, "!=", rx1151_fail
+    add rx1151_pos, 2
+    set_addr $I10, rxcap_1156_fail
+    ($I12, $I11) = rx1151_cur."!mark_peek"($I10)
+    rx1151_cur."!cursor_pos"($I11)
+    ($P10) = rx1151_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1151_pos, "")
+    rx1151_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1111_done
-  rxcap_1111_fail:
-    goto rx1106_fail
-  rxcap_1111_done:
+    goto rxcap_1156_done
+  rxcap_1156_fail:
+    goto rx1151_fail
+  rxcap_1156_done:
   # rx subrule "O" subtype=capture negate=
-    rx1106_cur."!cursor_pos"(rx1106_pos)
-    $P10 = rx1106_cur."O"("%relational, :pirop<isne INn>")
-    unless $P10, rx1106_fail
-    rx1106_cur."!mark_push"(0, -1, 0, $P10)
+    rx1151_cur."!cursor_pos"(rx1151_pos)
+    $P10 = rx1151_cur."O"("%relational, :pirop<isne INn>")
+    unless $P10, rx1151_fail
+    rx1151_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1106_pos = $P10."pos"()
+    rx1151_pos = $P10."pos"()
   # rx pass
-    rx1106_cur."!cursor_pass"(rx1106_pos, "infix:sym<!=>")
-    rx1106_cur."!cursor_debug"("PASS  ", "infix:sym<!=>", " at pos=", rx1106_pos)
-    .return (rx1106_cur)
-  rx1106_fail:
-.annotate 'line', 433
-    (rx1106_rep, rx1106_pos, $I10, $P10) = rx1106_cur."!mark_fail"(0)
-    lt rx1106_pos, -1, rx1106_done
-    eq rx1106_pos, -1, rx1106_fail
+    rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym<!=>")
+    rx1151_cur."!cursor_debug"("PASS  ", "infix:sym<!=>", " at pos=", rx1151_pos)
+    .return (rx1151_cur)
+  rx1151_fail:
+.annotate 'line', 446
+    (rx1151_rep, rx1151_pos, $I10, $P10) = rx1151_cur."!mark_fail"(0)
+    lt rx1151_pos, -1, rx1151_done
+    eq rx1151_pos, -1, rx1151_fail
     jump $I10
-  rx1106_done:
-    rx1106_cur."!cursor_fail"()
-    rx1106_cur."!cursor_debug"("FAIL  ", "infix:sym<!=>")
-    .return (rx1106_cur)
+  rx1151_done:
+    rx1151_cur."!cursor_fail"()
+    rx1151_cur."!cursor_debug"("FAIL  ", "infix:sym<!=>")
+    .return (rx1151_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>"  :subid("280_1274853038.58734") :method
-.annotate 'line', 433
-    $P1108 = self."!PREFIX__!subrule"("O", "!=")
-    new $P1109, "ResizablePMCArray"
-    push $P1109, $P1108
-    .return ($P1109)
+.sub "!PREFIX__infix:sym<!=>"  :subid("289_1275811487.95429") :method
+.annotate 'line', 446
+    $P1153 = self."!PREFIX__!subrule"("O", "!=")
+    new $P1154, "ResizablePMCArray"
+    push $P1154, $P1153
+    .return ($P1154)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>"  :subid("281_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1113_tgt
-    .local int rx1113_pos
-    .local int rx1113_off
-    .local int rx1113_eos
-    .local int rx1113_rep
-    .local pmc rx1113_cur
-    (rx1113_cur, rx1113_pos, rx1113_tgt) = self."!cursor_start"()
-    rx1113_cur."!cursor_debug"("START ", "infix:sym<<=>")
-    .lex unicode:"$\x{a2}", rx1113_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1113_eos, rx1113_tgt
-    set rx1113_off, 0
-    lt rx1113_pos, 2, rx1113_start
-    sub rx1113_off, rx1113_pos, 1
-    substr rx1113_tgt, rx1113_tgt, rx1113_off
-  rx1113_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1117_done
-    goto rxscan1117_scan
-  rxscan1117_loop:
-    ($P10) = rx1113_cur."from"()
-    inc $P10
-    set rx1113_pos, $P10
-    ge rx1113_pos, rx1113_eos, rxscan1117_done
-  rxscan1117_scan:
-    set_addr $I10, rxscan1117_loop
-    rx1113_cur."!mark_push"(0, rx1113_pos, $I10)
-  rxscan1117_done:
-.annotate 'line', 504
+.sub "infix:sym<<=>"  :subid("290_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1158_tgt
+    .local int rx1158_pos
+    .local int rx1158_off
+    .local int rx1158_eos
+    .local int rx1158_rep
+    .local pmc rx1158_cur
+    (rx1158_cur, rx1158_pos, rx1158_tgt) = self."!cursor_start"()
+    rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>")
+    .lex unicode:"$\x{a2}", rx1158_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1158_eos, rx1158_tgt
+    gt rx1158_pos, rx1158_eos, rx1158_done
+    set rx1158_off, 0
+    lt rx1158_pos, 2, rx1158_start
+    sub rx1158_off, rx1158_pos, 1
+    substr rx1158_tgt, rx1158_tgt, rx1158_off
+  rx1158_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1162_done
+    goto rxscan1162_scan
+  rxscan1162_loop:
+    ($P10) = rx1158_cur."from"()
+    inc $P10
+    set rx1158_pos, $P10
+    ge rx1158_pos, rx1158_eos, rxscan1162_done
+  rxscan1162_scan:
+    set_addr $I10, rxscan1162_loop
+    rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
+  rxscan1162_done:
+.annotate 'line', 517
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1118_fail
-    rx1113_cur."!mark_push"(0, rx1113_pos, $I10)
+    set_addr $I10, rxcap_1163_fail
+    rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
   # rx literal  "<="
-    add $I11, rx1113_pos, 2
-    gt $I11, rx1113_eos, rx1113_fail
-    sub $I11, rx1113_pos, rx1113_off
-    substr $S10, rx1113_tgt, $I11, 2
-    ne $S10, "<=", rx1113_fail
-    add rx1113_pos, 2
-    set_addr $I10, rxcap_1118_fail
-    ($I12, $I11) = rx1113_cur."!mark_peek"($I10)
-    rx1113_cur."!cursor_pos"($I11)
-    ($P10) = rx1113_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1113_pos, "")
-    rx1113_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1158_pos, 2
+    gt $I11, rx1158_eos, rx1158_fail
+    sub $I11, rx1158_pos, rx1158_off
+    substr $S10, rx1158_tgt, $I11, 2
+    ne $S10, "<=", rx1158_fail
+    add rx1158_pos, 2
+    set_addr $I10, rxcap_1163_fail
+    ($I12, $I11) = rx1158_cur."!mark_peek"($I10)
+    rx1158_cur."!cursor_pos"($I11)
+    ($P10) = rx1158_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1158_pos, "")
+    rx1158_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1118_done
-  rxcap_1118_fail:
-    goto rx1113_fail
-  rxcap_1118_done:
+    goto rxcap_1163_done
+  rxcap_1163_fail:
+    goto rx1158_fail
+  rxcap_1163_done:
   # rx subrule "O" subtype=capture negate=
-    rx1113_cur."!cursor_pos"(rx1113_pos)
-    $P10 = rx1113_cur."O"("%relational, :pirop<isle INn>")
-    unless $P10, rx1113_fail
-    rx1113_cur."!mark_push"(0, -1, 0, $P10)
+    rx1158_cur."!cursor_pos"(rx1158_pos)
+    $P10 = rx1158_cur."O"("%relational, :pirop<isle INn>")
+    unless $P10, rx1158_fail
+    rx1158_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1113_pos = $P10."pos"()
+    rx1158_pos = $P10."pos"()
   # rx pass
-    rx1113_cur."!cursor_pass"(rx1113_pos, "infix:sym<<=>")
-    rx1113_cur."!cursor_debug"("PASS  ", "infix:sym<<=>", " at pos=", rx1113_pos)
-    .return (rx1113_cur)
-  rx1113_fail:
-.annotate 'line', 433
-    (rx1113_rep, rx1113_pos, $I10, $P10) = rx1113_cur."!mark_fail"(0)
-    lt rx1113_pos, -1, rx1113_done
-    eq rx1113_pos, -1, rx1113_fail
+    rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>")
+    rx1158_cur."!cursor_debug"("PASS  ", "infix:sym<<=>", " at pos=", rx1158_pos)
+    .return (rx1158_cur)
+  rx1158_fail:
+.annotate 'line', 446
+    (rx1158_rep, rx1158_pos, $I10, $P10) = rx1158_cur."!mark_fail"(0)
+    lt rx1158_pos, -1, rx1158_done
+    eq rx1158_pos, -1, rx1158_fail
     jump $I10
-  rx1113_done:
-    rx1113_cur."!cursor_fail"()
-    rx1113_cur."!cursor_debug"("FAIL  ", "infix:sym<<=>")
-    .return (rx1113_cur)
+  rx1158_done:
+    rx1158_cur."!cursor_fail"()
+    rx1158_cur."!cursor_debug"("FAIL  ", "infix:sym<<=>")
+    .return (rx1158_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>"  :subid("282_1274853038.58734") :method
-.annotate 'line', 433
-    $P1115 = self."!PREFIX__!subrule"("O", "<=")
-    new $P1116, "ResizablePMCArray"
-    push $P1116, $P1115
-    .return ($P1116)
+.sub "!PREFIX__infix:sym<<=>"  :subid("291_1275811487.95429") :method
+.annotate 'line', 446
+    $P1160 = self."!PREFIX__!subrule"("O", "<=")
+    new $P1161, "ResizablePMCArray"
+    push $P1161, $P1160
+    .return ($P1161)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>"  :subid("283_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1120_tgt
-    .local int rx1120_pos
-    .local int rx1120_off
-    .local int rx1120_eos
-    .local int rx1120_rep
-    .local pmc rx1120_cur
-    (rx1120_cur, rx1120_pos, rx1120_tgt) = self."!cursor_start"()
-    rx1120_cur."!cursor_debug"("START ", "infix:sym<>=>")
-    .lex unicode:"$\x{a2}", rx1120_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1120_eos, rx1120_tgt
-    set rx1120_off, 0
-    lt rx1120_pos, 2, rx1120_start
-    sub rx1120_off, rx1120_pos, 1
-    substr rx1120_tgt, rx1120_tgt, rx1120_off
-  rx1120_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1124_done
-    goto rxscan1124_scan
-  rxscan1124_loop:
-    ($P10) = rx1120_cur."from"()
-    inc $P10
-    set rx1120_pos, $P10
-    ge rx1120_pos, rx1120_eos, rxscan1124_done
-  rxscan1124_scan:
-    set_addr $I10, rxscan1124_loop
-    rx1120_cur."!mark_push"(0, rx1120_pos, $I10)
-  rxscan1124_done:
-.annotate 'line', 505
+.sub "infix:sym<>=>"  :subid("292_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1165_tgt
+    .local int rx1165_pos
+    .local int rx1165_off
+    .local int rx1165_eos
+    .local int rx1165_rep
+    .local pmc rx1165_cur
+    (rx1165_cur, rx1165_pos, rx1165_tgt) = self."!cursor_start"()
+    rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>")
+    .lex unicode:"$\x{a2}", rx1165_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1165_eos, rx1165_tgt
+    gt rx1165_pos, rx1165_eos, rx1165_done
+    set rx1165_off, 0
+    lt rx1165_pos, 2, rx1165_start
+    sub rx1165_off, rx1165_pos, 1
+    substr rx1165_tgt, rx1165_tgt, rx1165_off
+  rx1165_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1169_done
+    goto rxscan1169_scan
+  rxscan1169_loop:
+    ($P10) = rx1165_cur."from"()
+    inc $P10
+    set rx1165_pos, $P10
+    ge rx1165_pos, rx1165_eos, rxscan1169_done
+  rxscan1169_scan:
+    set_addr $I10, rxscan1169_loop
+    rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
+  rxscan1169_done:
+.annotate 'line', 518
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1125_fail
-    rx1120_cur."!mark_push"(0, rx1120_pos, $I10)
+    set_addr $I10, rxcap_1170_fail
+    rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
   # rx literal  ">="
-    add $I11, rx1120_pos, 2
-    gt $I11, rx1120_eos, rx1120_fail
-    sub $I11, rx1120_pos, rx1120_off
-    substr $S10, rx1120_tgt, $I11, 2
-    ne $S10, ">=", rx1120_fail
-    add rx1120_pos, 2
-    set_addr $I10, rxcap_1125_fail
-    ($I12, $I11) = rx1120_cur."!mark_peek"($I10)
-    rx1120_cur."!cursor_pos"($I11)
-    ($P10) = rx1120_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1120_pos, "")
-    rx1120_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1165_pos, 2
+    gt $I11, rx1165_eos, rx1165_fail
+    sub $I11, rx1165_pos, rx1165_off
+    substr $S10, rx1165_tgt, $I11, 2
+    ne $S10, ">=", rx1165_fail
+    add rx1165_pos, 2
+    set_addr $I10, rxcap_1170_fail
+    ($I12, $I11) = rx1165_cur."!mark_peek"($I10)
+    rx1165_cur."!cursor_pos"($I11)
+    ($P10) = rx1165_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1165_pos, "")
+    rx1165_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1125_done
-  rxcap_1125_fail:
-    goto rx1120_fail
-  rxcap_1125_done:
+    goto rxcap_1170_done
+  rxcap_1170_fail:
+    goto rx1165_fail
+  rxcap_1170_done:
   # rx subrule "O" subtype=capture negate=
-    rx1120_cur."!cursor_pos"(rx1120_pos)
-    $P10 = rx1120_cur."O"("%relational, :pirop<isge INn>")
-    unless $P10, rx1120_fail
-    rx1120_cur."!mark_push"(0, -1, 0, $P10)
+    rx1165_cur."!cursor_pos"(rx1165_pos)
+    $P10 = rx1165_cur."O"("%relational, :pirop<isge INn>")
+    unless $P10, rx1165_fail
+    rx1165_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1120_pos = $P10."pos"()
+    rx1165_pos = $P10."pos"()
   # rx pass
-    rx1120_cur."!cursor_pass"(rx1120_pos, "infix:sym<>=>")
-    rx1120_cur."!cursor_debug"("PASS  ", "infix:sym<>=>", " at pos=", rx1120_pos)
-    .return (rx1120_cur)
-  rx1120_fail:
-.annotate 'line', 433
-    (rx1120_rep, rx1120_pos, $I10, $P10) = rx1120_cur."!mark_fail"(0)
-    lt rx1120_pos, -1, rx1120_done
-    eq rx1120_pos, -1, rx1120_fail
+    rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>")
+    rx1165_cur."!cursor_debug"("PASS  ", "infix:sym<>=>", " at pos=", rx1165_pos)
+    .return (rx1165_cur)
+  rx1165_fail:
+.annotate 'line', 446
+    (rx1165_rep, rx1165_pos, $I10, $P10) = rx1165_cur."!mark_fail"(0)
+    lt rx1165_pos, -1, rx1165_done
+    eq rx1165_pos, -1, rx1165_fail
     jump $I10
-  rx1120_done:
-    rx1120_cur."!cursor_fail"()
-    rx1120_cur."!cursor_debug"("FAIL  ", "infix:sym<>=>")
-    .return (rx1120_cur)
+  rx1165_done:
+    rx1165_cur."!cursor_fail"()
+    rx1165_cur."!cursor_debug"("FAIL  ", "infix:sym<>=>")
+    .return (rx1165_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>"  :subid("284_1274853038.58734") :method
-.annotate 'line', 433
-    $P1122 = self."!PREFIX__!subrule"("O", ">=")
-    new $P1123, "ResizablePMCArray"
-    push $P1123, $P1122
-    .return ($P1123)
+.sub "!PREFIX__infix:sym<>=>"  :subid("293_1275811487.95429") :method
+.annotate 'line', 446
+    $P1167 = self."!PREFIX__!subrule"("O", ">=")
+    new $P1168, "ResizablePMCArray"
+    push $P1168, $P1167
+    .return ($P1168)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>"  :subid("285_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1127_tgt
-    .local int rx1127_pos
-    .local int rx1127_off
-    .local int rx1127_eos
-    .local int rx1127_rep
-    .local pmc rx1127_cur
-    (rx1127_cur, rx1127_pos, rx1127_tgt) = self."!cursor_start"()
-    rx1127_cur."!cursor_debug"("START ", "infix:sym<<>")
-    .lex unicode:"$\x{a2}", rx1127_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1127_eos, rx1127_tgt
-    set rx1127_off, 0
-    lt rx1127_pos, 2, rx1127_start
-    sub rx1127_off, rx1127_pos, 1
-    substr rx1127_tgt, rx1127_tgt, rx1127_off
-  rx1127_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1131_done
-    goto rxscan1131_scan
-  rxscan1131_loop:
-    ($P10) = rx1127_cur."from"()
-    inc $P10
-    set rx1127_pos, $P10
-    ge rx1127_pos, rx1127_eos, rxscan1131_done
-  rxscan1131_scan:
-    set_addr $I10, rxscan1131_loop
-    rx1127_cur."!mark_push"(0, rx1127_pos, $I10)
-  rxscan1131_done:
-.annotate 'line', 506
+.sub "infix:sym<<>"  :subid("294_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1172_tgt
+    .local int rx1172_pos
+    .local int rx1172_off
+    .local int rx1172_eos
+    .local int rx1172_rep
+    .local pmc rx1172_cur
+    (rx1172_cur, rx1172_pos, rx1172_tgt) = self."!cursor_start"()
+    rx1172_cur."!cursor_debug"("START ", "infix:sym<<>")
+    .lex unicode:"$\x{a2}", rx1172_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1172_eos, rx1172_tgt
+    gt rx1172_pos, rx1172_eos, rx1172_done
+    set rx1172_off, 0
+    lt rx1172_pos, 2, rx1172_start
+    sub rx1172_off, rx1172_pos, 1
+    substr rx1172_tgt, rx1172_tgt, rx1172_off
+  rx1172_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1176_done
+    goto rxscan1176_scan
+  rxscan1176_loop:
+    ($P10) = rx1172_cur."from"()
+    inc $P10
+    set rx1172_pos, $P10
+    ge rx1172_pos, rx1172_eos, rxscan1176_done
+  rxscan1176_scan:
+    set_addr $I10, rxscan1176_loop
+    rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
+  rxscan1176_done:
+.annotate 'line', 519
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1132_fail
-    rx1127_cur."!mark_push"(0, rx1127_pos, $I10)
+    set_addr $I10, rxcap_1177_fail
+    rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
   # rx literal  "<"
-    add $I11, rx1127_pos, 1
-    gt $I11, rx1127_eos, rx1127_fail
-    sub $I11, rx1127_pos, rx1127_off
-    substr $S10, rx1127_tgt, $I11, 1
-    ne $S10, "<", rx1127_fail
-    add rx1127_pos, 1
-    set_addr $I10, rxcap_1132_fail
-    ($I12, $I11) = rx1127_cur."!mark_peek"($I10)
-    rx1127_cur."!cursor_pos"($I11)
-    ($P10) = rx1127_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1127_pos, "")
-    rx1127_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1172_pos, 1
+    gt $I11, rx1172_eos, rx1172_fail
+    sub $I11, rx1172_pos, rx1172_off
+    substr $S10, rx1172_tgt, $I11, 1
+    ne $S10, "<", rx1172_fail
+    add rx1172_pos, 1
+    set_addr $I10, rxcap_1177_fail
+    ($I12, $I11) = rx1172_cur."!mark_peek"($I10)
+    rx1172_cur."!cursor_pos"($I11)
+    ($P10) = rx1172_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1172_pos, "")
+    rx1172_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1132_done
-  rxcap_1132_fail:
-    goto rx1127_fail
-  rxcap_1132_done:
+    goto rxcap_1177_done
+  rxcap_1177_fail:
+    goto rx1172_fail
+  rxcap_1177_done:
   # rx subrule "O" subtype=capture negate=
-    rx1127_cur."!cursor_pos"(rx1127_pos)
-    $P10 = rx1127_cur."O"("%relational, :pirop<islt INn>")
-    unless $P10, rx1127_fail
-    rx1127_cur."!mark_push"(0, -1, 0, $P10)
+    rx1172_cur."!cursor_pos"(rx1172_pos)
+    $P10 = rx1172_cur."O"("%relational, :pirop<islt INn>")
+    unless $P10, rx1172_fail
+    rx1172_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1127_pos = $P10."pos"()
+    rx1172_pos = $P10."pos"()
   # rx pass
-    rx1127_cur."!cursor_pass"(rx1127_pos, "infix:sym<<>")
-    rx1127_cur."!cursor_debug"("PASS  ", "infix:sym<<>", " at pos=", rx1127_pos)
-    .return (rx1127_cur)
-  rx1127_fail:
-.annotate 'line', 433
-    (rx1127_rep, rx1127_pos, $I10, $P10) = rx1127_cur."!mark_fail"(0)
-    lt rx1127_pos, -1, rx1127_done
-    eq rx1127_pos, -1, rx1127_fail
+    rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>")
+    rx1172_cur."!cursor_debug"("PASS  ", "infix:sym<<>", " at pos=", rx1172_pos)
+    .return (rx1172_cur)
+  rx1172_fail:
+.annotate 'line', 446
+    (rx1172_rep, rx1172_pos, $I10, $P10) = rx1172_cur."!mark_fail"(0)
+    lt rx1172_pos, -1, rx1172_done
+    eq rx1172_pos, -1, rx1172_fail
     jump $I10
-  rx1127_done:
-    rx1127_cur."!cursor_fail"()
-    rx1127_cur."!cursor_debug"("FAIL  ", "infix:sym<<>")
-    .return (rx1127_cur)
+  rx1172_done:
+    rx1172_cur."!cursor_fail"()
+    rx1172_cur."!cursor_debug"("FAIL  ", "infix:sym<<>")
+    .return (rx1172_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>"  :subid("286_1274853038.58734") :method
-.annotate 'line', 433
-    $P1129 = self."!PREFIX__!subrule"("O", "<")
-    new $P1130, "ResizablePMCArray"
-    push $P1130, $P1129
-    .return ($P1130)
+.sub "!PREFIX__infix:sym<<>"  :subid("295_1275811487.95429") :method
+.annotate 'line', 446
+    $P1174 = self."!PREFIX__!subrule"("O", "<")
+    new $P1175, "ResizablePMCArray"
+    push $P1175, $P1174
+    .return ($P1175)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>"  :subid("287_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1134_tgt
-    .local int rx1134_pos
-    .local int rx1134_off
-    .local int rx1134_eos
-    .local int rx1134_rep
-    .local pmc rx1134_cur
-    (rx1134_cur, rx1134_pos, rx1134_tgt) = self."!cursor_start"()
-    rx1134_cur."!cursor_debug"("START ", "infix:sym<>>")
-    .lex unicode:"$\x{a2}", rx1134_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1134_eos, rx1134_tgt
-    set rx1134_off, 0
-    lt rx1134_pos, 2, rx1134_start
-    sub rx1134_off, rx1134_pos, 1
-    substr rx1134_tgt, rx1134_tgt, rx1134_off
-  rx1134_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1138_done
-    goto rxscan1138_scan
-  rxscan1138_loop:
-    ($P10) = rx1134_cur."from"()
-    inc $P10
-    set rx1134_pos, $P10
-    ge rx1134_pos, rx1134_eos, rxscan1138_done
-  rxscan1138_scan:
-    set_addr $I10, rxscan1138_loop
-    rx1134_cur."!mark_push"(0, rx1134_pos, $I10)
-  rxscan1138_done:
-.annotate 'line', 507
+.sub "infix:sym<>>"  :subid("296_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1179_tgt
+    .local int rx1179_pos
+    .local int rx1179_off
+    .local int rx1179_eos
+    .local int rx1179_rep
+    .local pmc rx1179_cur
+    (rx1179_cur, rx1179_pos, rx1179_tgt) = self."!cursor_start"()
+    rx1179_cur."!cursor_debug"("START ", "infix:sym<>>")
+    .lex unicode:"$\x{a2}", rx1179_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1179_eos, rx1179_tgt
+    gt rx1179_pos, rx1179_eos, rx1179_done
+    set rx1179_off, 0
+    lt rx1179_pos, 2, rx1179_start
+    sub rx1179_off, rx1179_pos, 1
+    substr rx1179_tgt, rx1179_tgt, rx1179_off
+  rx1179_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1183_done
+    goto rxscan1183_scan
+  rxscan1183_loop:
+    ($P10) = rx1179_cur."from"()
+    inc $P10
+    set rx1179_pos, $P10
+    ge rx1179_pos, rx1179_eos, rxscan1183_done
+  rxscan1183_scan:
+    set_addr $I10, rxscan1183_loop
+    rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
+  rxscan1183_done:
+.annotate 'line', 520
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1139_fail
-    rx1134_cur."!mark_push"(0, rx1134_pos, $I10)
+    set_addr $I10, rxcap_1184_fail
+    rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
   # rx literal  ">"
-    add $I11, rx1134_pos, 1
-    gt $I11, rx1134_eos, rx1134_fail
-    sub $I11, rx1134_pos, rx1134_off
-    substr $S10, rx1134_tgt, $I11, 1
-    ne $S10, ">", rx1134_fail
-    add rx1134_pos, 1
-    set_addr $I10, rxcap_1139_fail
-    ($I12, $I11) = rx1134_cur."!mark_peek"($I10)
-    rx1134_cur."!cursor_pos"($I11)
-    ($P10) = rx1134_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1134_pos, "")
-    rx1134_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1179_pos, 1
+    gt $I11, rx1179_eos, rx1179_fail
+    sub $I11, rx1179_pos, rx1179_off
+    substr $S10, rx1179_tgt, $I11, 1
+    ne $S10, ">", rx1179_fail
+    add rx1179_pos, 1
+    set_addr $I10, rxcap_1184_fail
+    ($I12, $I11) = rx1179_cur."!mark_peek"($I10)
+    rx1179_cur."!cursor_pos"($I11)
+    ($P10) = rx1179_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1179_pos, "")
+    rx1179_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1139_done
-  rxcap_1139_fail:
-    goto rx1134_fail
-  rxcap_1139_done:
+    goto rxcap_1184_done
+  rxcap_1184_fail:
+    goto rx1179_fail
+  rxcap_1184_done:
   # rx subrule "O" subtype=capture negate=
-    rx1134_cur."!cursor_pos"(rx1134_pos)
-    $P10 = rx1134_cur."O"("%relational, :pirop<isgt INn>")
-    unless $P10, rx1134_fail
-    rx1134_cur."!mark_push"(0, -1, 0, $P10)
+    rx1179_cur."!cursor_pos"(rx1179_pos)
+    $P10 = rx1179_cur."O"("%relational, :pirop<isgt INn>")
+    unless $P10, rx1179_fail
+    rx1179_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1134_pos = $P10."pos"()
+    rx1179_pos = $P10."pos"()
   # rx pass
-    rx1134_cur."!cursor_pass"(rx1134_pos, "infix:sym<>>")
-    rx1134_cur."!cursor_debug"("PASS  ", "infix:sym<>>", " at pos=", rx1134_pos)
-    .return (rx1134_cur)
-  rx1134_fail:
-.annotate 'line', 433
-    (rx1134_rep, rx1134_pos, $I10, $P10) = rx1134_cur."!mark_fail"(0)
-    lt rx1134_pos, -1, rx1134_done
-    eq rx1134_pos, -1, rx1134_fail
+    rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>")
+    rx1179_cur."!cursor_debug"("PASS  ", "infix:sym<>>", " at pos=", rx1179_pos)
+    .return (rx1179_cur)
+  rx1179_fail:
+.annotate 'line', 446
+    (rx1179_rep, rx1179_pos, $I10, $P10) = rx1179_cur."!mark_fail"(0)
+    lt rx1179_pos, -1, rx1179_done
+    eq rx1179_pos, -1, rx1179_fail
     jump $I10
-  rx1134_done:
-    rx1134_cur."!cursor_fail"()
-    rx1134_cur."!cursor_debug"("FAIL  ", "infix:sym<>>")
-    .return (rx1134_cur)
+  rx1179_done:
+    rx1179_cur."!cursor_fail"()
+    rx1179_cur."!cursor_debug"("FAIL  ", "infix:sym<>>")
+    .return (rx1179_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>"  :subid("288_1274853038.58734") :method
-.annotate 'line', 433
-    $P1136 = self."!PREFIX__!subrule"("O", ">")
-    new $P1137, "ResizablePMCArray"
-    push $P1137, $P1136
-    .return ($P1137)
+.sub "!PREFIX__infix:sym<>>"  :subid("297_1275811487.95429") :method
+.annotate 'line', 446
+    $P1181 = self."!PREFIX__!subrule"("O", ">")
+    new $P1182, "ResizablePMCArray"
+    push $P1182, $P1181
+    .return ($P1182)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>"  :subid("289_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1141_tgt
-    .local int rx1141_pos
-    .local int rx1141_off
-    .local int rx1141_eos
-    .local int rx1141_rep
-    .local pmc rx1141_cur
-    (rx1141_cur, rx1141_pos, rx1141_tgt) = self."!cursor_start"()
-    rx1141_cur."!cursor_debug"("START ", "infix:sym<eq>")
-    .lex unicode:"$\x{a2}", rx1141_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1141_eos, rx1141_tgt
-    set rx1141_off, 0
-    lt rx1141_pos, 2, rx1141_start
-    sub rx1141_off, rx1141_pos, 1
-    substr rx1141_tgt, rx1141_tgt, rx1141_off
-  rx1141_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1145_done
-    goto rxscan1145_scan
-  rxscan1145_loop:
-    ($P10) = rx1141_cur."from"()
-    inc $P10
-    set rx1141_pos, $P10
-    ge rx1141_pos, rx1141_eos, rxscan1145_done
-  rxscan1145_scan:
-    set_addr $I10, rxscan1145_loop
-    rx1141_cur."!mark_push"(0, rx1141_pos, $I10)
-  rxscan1145_done:
-.annotate 'line', 508
+.sub "infix:sym<eq>"  :subid("298_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1186_tgt
+    .local int rx1186_pos
+    .local int rx1186_off
+    .local int rx1186_eos
+    .local int rx1186_rep
+    .local pmc rx1186_cur
+    (rx1186_cur, rx1186_pos, rx1186_tgt) = self."!cursor_start"()
+    rx1186_cur."!cursor_debug"("START ", "infix:sym<eq>")
+    .lex unicode:"$\x{a2}", rx1186_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1186_eos, rx1186_tgt
+    gt rx1186_pos, rx1186_eos, rx1186_done
+    set rx1186_off, 0
+    lt rx1186_pos, 2, rx1186_start
+    sub rx1186_off, rx1186_pos, 1
+    substr rx1186_tgt, rx1186_tgt, rx1186_off
+  rx1186_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1190_done
+    goto rxscan1190_scan
+  rxscan1190_loop:
+    ($P10) = rx1186_cur."from"()
+    inc $P10
+    set rx1186_pos, $P10
+    ge rx1186_pos, rx1186_eos, rxscan1190_done
+  rxscan1190_scan:
+    set_addr $I10, rxscan1190_loop
+    rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
+  rxscan1190_done:
+.annotate 'line', 521
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1146_fail
-    rx1141_cur."!mark_push"(0, rx1141_pos, $I10)
+    set_addr $I10, rxcap_1191_fail
+    rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
   # rx literal  "eq"
-    add $I11, rx1141_pos, 2
-    gt $I11, rx1141_eos, rx1141_fail
-    sub $I11, rx1141_pos, rx1141_off
-    substr $S10, rx1141_tgt, $I11, 2
-    ne $S10, "eq", rx1141_fail
-    add rx1141_pos, 2
-    set_addr $I10, rxcap_1146_fail
-    ($I12, $I11) = rx1141_cur."!mark_peek"($I10)
-    rx1141_cur."!cursor_pos"($I11)
-    ($P10) = rx1141_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1141_pos, "")
-    rx1141_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1186_pos, 2
+    gt $I11, rx1186_eos, rx1186_fail
+    sub $I11, rx1186_pos, rx1186_off
+    substr $S10, rx1186_tgt, $I11, 2
+    ne $S10, "eq", rx1186_fail
+    add rx1186_pos, 2
+    set_addr $I10, rxcap_1191_fail
+    ($I12, $I11) = rx1186_cur."!mark_peek"($I10)
+    rx1186_cur."!cursor_pos"($I11)
+    ($P10) = rx1186_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1186_pos, "")
+    rx1186_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1146_done
-  rxcap_1146_fail:
-    goto rx1141_fail
-  rxcap_1146_done:
+    goto rxcap_1191_done
+  rxcap_1191_fail:
+    goto rx1186_fail
+  rxcap_1191_done:
   # rx subrule "O" subtype=capture negate=
-    rx1141_cur."!cursor_pos"(rx1141_pos)
-    $P10 = rx1141_cur."O"("%relational, :pirop<iseq ISs>")
-    unless $P10, rx1141_fail
-    rx1141_cur."!mark_push"(0, -1, 0, $P10)
+    rx1186_cur."!cursor_pos"(rx1186_pos)
+    $P10 = rx1186_cur."O"("%relational, :pirop<iseq ISs>")
+    unless $P10, rx1186_fail
+    rx1186_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1141_pos = $P10."pos"()
+    rx1186_pos = $P10."pos"()
   # rx pass
-    rx1141_cur."!cursor_pass"(rx1141_pos, "infix:sym<eq>")
-    rx1141_cur."!cursor_debug"("PASS  ", "infix:sym<eq>", " at pos=", rx1141_pos)
-    .return (rx1141_cur)
-  rx1141_fail:
-.annotate 'line', 433
-    (rx1141_rep, rx1141_pos, $I10, $P10) = rx1141_cur."!mark_fail"(0)
-    lt rx1141_pos, -1, rx1141_done
-    eq rx1141_pos, -1, rx1141_fail
+    rx1186_cur."!cursor_pass"(rx1186_pos, "infix:sym<eq>")
+    rx1186_cur."!cursor_debug"("PASS  ", "infix:sym<eq>", " at pos=", rx1186_pos)
+    .return (rx1186_cur)
+  rx1186_fail:
+.annotate 'line', 446
+    (rx1186_rep, rx1186_pos, $I10, $P10) = rx1186_cur."!mark_fail"(0)
+    lt rx1186_pos, -1, rx1186_done
+    eq rx1186_pos, -1, rx1186_fail
     jump $I10
-  rx1141_done:
-    rx1141_cur."!cursor_fail"()
-    rx1141_cur."!cursor_debug"("FAIL  ", "infix:sym<eq>")
-    .return (rx1141_cur)
+  rx1186_done:
+    rx1186_cur."!cursor_fail"()
+    rx1186_cur."!cursor_debug"("FAIL  ", "infix:sym<eq>")
+    .return (rx1186_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>"  :subid("290_1274853038.58734") :method
-.annotate 'line', 433
-    $P1143 = self."!PREFIX__!subrule"("O", "eq")
-    new $P1144, "ResizablePMCArray"
-    push $P1144, $P1143
-    .return ($P1144)
+.sub "!PREFIX__infix:sym<eq>"  :subid("299_1275811487.95429") :method
+.annotate 'line', 446
+    $P1188 = self."!PREFIX__!subrule"("O", "eq")
+    new $P1189, "ResizablePMCArray"
+    push $P1189, $P1188
+    .return ($P1189)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>"  :subid("291_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1148_tgt
-    .local int rx1148_pos
-    .local int rx1148_off
-    .local int rx1148_eos
-    .local int rx1148_rep
-    .local pmc rx1148_cur
-    (rx1148_cur, rx1148_pos, rx1148_tgt) = self."!cursor_start"()
-    rx1148_cur."!cursor_debug"("START ", "infix:sym<ne>")
-    .lex unicode:"$\x{a2}", rx1148_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1148_eos, rx1148_tgt
-    set rx1148_off, 0
-    lt rx1148_pos, 2, rx1148_start
-    sub rx1148_off, rx1148_pos, 1
-    substr rx1148_tgt, rx1148_tgt, rx1148_off
-  rx1148_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1152_done
-    goto rxscan1152_scan
-  rxscan1152_loop:
-    ($P10) = rx1148_cur."from"()
-    inc $P10
-    set rx1148_pos, $P10
-    ge rx1148_pos, rx1148_eos, rxscan1152_done
-  rxscan1152_scan:
-    set_addr $I10, rxscan1152_loop
-    rx1148_cur."!mark_push"(0, rx1148_pos, $I10)
-  rxscan1152_done:
-.annotate 'line', 509
+.sub "infix:sym<ne>"  :subid("300_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1193_tgt
+    .local int rx1193_pos
+    .local int rx1193_off
+    .local int rx1193_eos
+    .local int rx1193_rep
+    .local pmc rx1193_cur
+    (rx1193_cur, rx1193_pos, rx1193_tgt) = self."!cursor_start"()
+    rx1193_cur."!cursor_debug"("START ", "infix:sym<ne>")
+    .lex unicode:"$\x{a2}", rx1193_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1193_eos, rx1193_tgt
+    gt rx1193_pos, rx1193_eos, rx1193_done
+    set rx1193_off, 0
+    lt rx1193_pos, 2, rx1193_start
+    sub rx1193_off, rx1193_pos, 1
+    substr rx1193_tgt, rx1193_tgt, rx1193_off
+  rx1193_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1197_done
+    goto rxscan1197_scan
+  rxscan1197_loop:
+    ($P10) = rx1193_cur."from"()
+    inc $P10
+    set rx1193_pos, $P10
+    ge rx1193_pos, rx1193_eos, rxscan1197_done
+  rxscan1197_scan:
+    set_addr $I10, rxscan1197_loop
+    rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
+  rxscan1197_done:
+.annotate 'line', 522
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1153_fail
-    rx1148_cur."!mark_push"(0, rx1148_pos, $I10)
+    set_addr $I10, rxcap_1198_fail
+    rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
   # rx literal  "ne"
-    add $I11, rx1148_pos, 2
-    gt $I11, rx1148_eos, rx1148_fail
-    sub $I11, rx1148_pos, rx1148_off
-    substr $S10, rx1148_tgt, $I11, 2
-    ne $S10, "ne", rx1148_fail
-    add rx1148_pos, 2
-    set_addr $I10, rxcap_1153_fail
-    ($I12, $I11) = rx1148_cur."!mark_peek"($I10)
-    rx1148_cur."!cursor_pos"($I11)
-    ($P10) = rx1148_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1148_pos, "")
-    rx1148_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1193_pos, 2
+    gt $I11, rx1193_eos, rx1193_fail
+    sub $I11, rx1193_pos, rx1193_off
+    substr $S10, rx1193_tgt, $I11, 2
+    ne $S10, "ne", rx1193_fail
+    add rx1193_pos, 2
+    set_addr $I10, rxcap_1198_fail
+    ($I12, $I11) = rx1193_cur."!mark_peek"($I10)
+    rx1193_cur."!cursor_pos"($I11)
+    ($P10) = rx1193_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1193_pos, "")
+    rx1193_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1153_done
-  rxcap_1153_fail:
-    goto rx1148_fail
-  rxcap_1153_done:
+    goto rxcap_1198_done
+  rxcap_1198_fail:
+    goto rx1193_fail
+  rxcap_1198_done:
   # rx subrule "O" subtype=capture negate=
-    rx1148_cur."!cursor_pos"(rx1148_pos)
-    $P10 = rx1148_cur."O"("%relational, :pirop<isne ISs>")
-    unless $P10, rx1148_fail
-    rx1148_cur."!mark_push"(0, -1, 0, $P10)
+    rx1193_cur."!cursor_pos"(rx1193_pos)
+    $P10 = rx1193_cur."O"("%relational, :pirop<isne ISs>")
+    unless $P10, rx1193_fail
+    rx1193_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1148_pos = $P10."pos"()
+    rx1193_pos = $P10."pos"()
   # rx pass
-    rx1148_cur."!cursor_pass"(rx1148_pos, "infix:sym<ne>")
-    rx1148_cur."!cursor_debug"("PASS  ", "infix:sym<ne>", " at pos=", rx1148_pos)
-    .return (rx1148_cur)
-  rx1148_fail:
-.annotate 'line', 433
-    (rx1148_rep, rx1148_pos, $I10, $P10) = rx1148_cur."!mark_fail"(0)
-    lt rx1148_pos, -1, rx1148_done
-    eq rx1148_pos, -1, rx1148_fail
+    rx1193_cur."!cursor_pass"(rx1193_pos, "infix:sym<ne>")
+    rx1193_cur."!cursor_debug"("PASS  ", "infix:sym<ne>", " at pos=", rx1193_pos)
+    .return (rx1193_cur)
+  rx1193_fail:
+.annotate 'line', 446
+    (rx1193_rep, rx1193_pos, $I10, $P10) = rx1193_cur."!mark_fail"(0)
+    lt rx1193_pos, -1, rx1193_done
+    eq rx1193_pos, -1, rx1193_fail
     jump $I10
-  rx1148_done:
-    rx1148_cur."!cursor_fail"()
-    rx1148_cur."!cursor_debug"("FAIL  ", "infix:sym<ne>")
-    .return (rx1148_cur)
+  rx1193_done:
+    rx1193_cur."!cursor_fail"()
+    rx1193_cur."!cursor_debug"("FAIL  ", "infix:sym<ne>")
+    .return (rx1193_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>"  :subid("292_1274853038.58734") :method
-.annotate 'line', 433
-    $P1150 = self."!PREFIX__!subrule"("O", "ne")
-    new $P1151, "ResizablePMCArray"
-    push $P1151, $P1150
-    .return ($P1151)
+.sub "!PREFIX__infix:sym<ne>"  :subid("301_1275811487.95429") :method
+.annotate 'line', 446
+    $P1195 = self."!PREFIX__!subrule"("O", "ne")
+    new $P1196, "ResizablePMCArray"
+    push $P1196, $P1195
+    .return ($P1196)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>"  :subid("293_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1155_tgt
-    .local int rx1155_pos
-    .local int rx1155_off
-    .local int rx1155_eos
-    .local int rx1155_rep
-    .local pmc rx1155_cur
-    (rx1155_cur, rx1155_pos, rx1155_tgt) = self."!cursor_start"()
-    rx1155_cur."!cursor_debug"("START ", "infix:sym<le>")
-    .lex unicode:"$\x{a2}", rx1155_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1155_eos, rx1155_tgt
-    set rx1155_off, 0
-    lt rx1155_pos, 2, rx1155_start
-    sub rx1155_off, rx1155_pos, 1
-    substr rx1155_tgt, rx1155_tgt, rx1155_off
-  rx1155_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1159_done
-    goto rxscan1159_scan
-  rxscan1159_loop:
-    ($P10) = rx1155_cur."from"()
-    inc $P10
-    set rx1155_pos, $P10
-    ge rx1155_pos, rx1155_eos, rxscan1159_done
-  rxscan1159_scan:
-    set_addr $I10, rxscan1159_loop
-    rx1155_cur."!mark_push"(0, rx1155_pos, $I10)
-  rxscan1159_done:
-.annotate 'line', 510
+.sub "infix:sym<le>"  :subid("302_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1200_tgt
+    .local int rx1200_pos
+    .local int rx1200_off
+    .local int rx1200_eos
+    .local int rx1200_rep
+    .local pmc rx1200_cur
+    (rx1200_cur, rx1200_pos, rx1200_tgt) = self."!cursor_start"()
+    rx1200_cur."!cursor_debug"("START ", "infix:sym<le>")
+    .lex unicode:"$\x{a2}", rx1200_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1200_eos, rx1200_tgt
+    gt rx1200_pos, rx1200_eos, rx1200_done
+    set rx1200_off, 0
+    lt rx1200_pos, 2, rx1200_start
+    sub rx1200_off, rx1200_pos, 1
+    substr rx1200_tgt, rx1200_tgt, rx1200_off
+  rx1200_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1204_done
+    goto rxscan1204_scan
+  rxscan1204_loop:
+    ($P10) = rx1200_cur."from"()
+    inc $P10
+    set rx1200_pos, $P10
+    ge rx1200_pos, rx1200_eos, rxscan1204_done
+  rxscan1204_scan:
+    set_addr $I10, rxscan1204_loop
+    rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
+  rxscan1204_done:
+.annotate 'line', 523
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1160_fail
-    rx1155_cur."!mark_push"(0, rx1155_pos, $I10)
+    set_addr $I10, rxcap_1205_fail
+    rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
   # rx literal  "le"
-    add $I11, rx1155_pos, 2
-    gt $I11, rx1155_eos, rx1155_fail
-    sub $I11, rx1155_pos, rx1155_off
-    substr $S10, rx1155_tgt, $I11, 2
-    ne $S10, "le", rx1155_fail
-    add rx1155_pos, 2
-    set_addr $I10, rxcap_1160_fail
-    ($I12, $I11) = rx1155_cur."!mark_peek"($I10)
-    rx1155_cur."!cursor_pos"($I11)
-    ($P10) = rx1155_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1155_pos, "")
-    rx1155_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1200_pos, 2
+    gt $I11, rx1200_eos, rx1200_fail
+    sub $I11, rx1200_pos, rx1200_off
+    substr $S10, rx1200_tgt, $I11, 2
+    ne $S10, "le", rx1200_fail
+    add rx1200_pos, 2
+    set_addr $I10, rxcap_1205_fail
+    ($I12, $I11) = rx1200_cur."!mark_peek"($I10)
+    rx1200_cur."!cursor_pos"($I11)
+    ($P10) = rx1200_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1200_pos, "")
+    rx1200_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1160_done
-  rxcap_1160_fail:
-    goto rx1155_fail
-  rxcap_1160_done:
+    goto rxcap_1205_done
+  rxcap_1205_fail:
+    goto rx1200_fail
+  rxcap_1205_done:
   # rx subrule "O" subtype=capture negate=
-    rx1155_cur."!cursor_pos"(rx1155_pos)
-    $P10 = rx1155_cur."O"("%relational, :pirop<isle ISs>")
-    unless $P10, rx1155_fail
-    rx1155_cur."!mark_push"(0, -1, 0, $P10)
+    rx1200_cur."!cursor_pos"(rx1200_pos)
+    $P10 = rx1200_cur."O"("%relational, :pirop<isle ISs>")
+    unless $P10, rx1200_fail
+    rx1200_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1155_pos = $P10."pos"()
+    rx1200_pos = $P10."pos"()
   # rx pass
-    rx1155_cur."!cursor_pass"(rx1155_pos, "infix:sym<le>")
-    rx1155_cur."!cursor_debug"("PASS  ", "infix:sym<le>", " at pos=", rx1155_pos)
-    .return (rx1155_cur)
-  rx1155_fail:
-.annotate 'line', 433
-    (rx1155_rep, rx1155_pos, $I10, $P10) = rx1155_cur."!mark_fail"(0)
-    lt rx1155_pos, -1, rx1155_done
-    eq rx1155_pos, -1, rx1155_fail
+    rx1200_cur."!cursor_pass"(rx1200_pos, "infix:sym<le>")
+    rx1200_cur."!cursor_debug"("PASS  ", "infix:sym<le>", " at pos=", rx1200_pos)
+    .return (rx1200_cur)
+  rx1200_fail:
+.annotate 'line', 446
+    (rx1200_rep, rx1200_pos, $I10, $P10) = rx1200_cur."!mark_fail"(0)
+    lt rx1200_pos, -1, rx1200_done
+    eq rx1200_pos, -1, rx1200_fail
     jump $I10
-  rx1155_done:
-    rx1155_cur."!cursor_fail"()
-    rx1155_cur."!cursor_debug"("FAIL  ", "infix:sym<le>")
-    .return (rx1155_cur)
+  rx1200_done:
+    rx1200_cur."!cursor_fail"()
+    rx1200_cur."!cursor_debug"("FAIL  ", "infix:sym<le>")
+    .return (rx1200_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>"  :subid("294_1274853038.58734") :method
-.annotate 'line', 433
-    $P1157 = self."!PREFIX__!subrule"("O", "le")
-    new $P1158, "ResizablePMCArray"
-    push $P1158, $P1157
-    .return ($P1158)
+.sub "!PREFIX__infix:sym<le>"  :subid("303_1275811487.95429") :method
+.annotate 'line', 446
+    $P1202 = self."!PREFIX__!subrule"("O", "le")
+    new $P1203, "ResizablePMCArray"
+    push $P1203, $P1202
+    .return ($P1203)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>"  :subid("295_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1162_tgt
-    .local int rx1162_pos
-    .local int rx1162_off
-    .local int rx1162_eos
-    .local int rx1162_rep
-    .local pmc rx1162_cur
-    (rx1162_cur, rx1162_pos, rx1162_tgt) = self."!cursor_start"()
-    rx1162_cur."!cursor_debug"("START ", "infix:sym<ge>")
-    .lex unicode:"$\x{a2}", rx1162_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1162_eos, rx1162_tgt
-    set rx1162_off, 0
-    lt rx1162_pos, 2, rx1162_start
-    sub rx1162_off, rx1162_pos, 1
-    substr rx1162_tgt, rx1162_tgt, rx1162_off
-  rx1162_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1166_done
-    goto rxscan1166_scan
-  rxscan1166_loop:
-    ($P10) = rx1162_cur."from"()
-    inc $P10
-    set rx1162_pos, $P10
-    ge rx1162_pos, rx1162_eos, rxscan1166_done
-  rxscan1166_scan:
-    set_addr $I10, rxscan1166_loop
-    rx1162_cur."!mark_push"(0, rx1162_pos, $I10)
-  rxscan1166_done:
-.annotate 'line', 511
+.sub "infix:sym<ge>"  :subid("304_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1207_tgt
+    .local int rx1207_pos
+    .local int rx1207_off
+    .local int rx1207_eos
+    .local int rx1207_rep
+    .local pmc rx1207_cur
+    (rx1207_cur, rx1207_pos, rx1207_tgt) = self."!cursor_start"()
+    rx1207_cur."!cursor_debug"("START ", "infix:sym<ge>")
+    .lex unicode:"$\x{a2}", rx1207_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1207_eos, rx1207_tgt
+    gt rx1207_pos, rx1207_eos, rx1207_done
+    set rx1207_off, 0
+    lt rx1207_pos, 2, rx1207_start
+    sub rx1207_off, rx1207_pos, 1
+    substr rx1207_tgt, rx1207_tgt, rx1207_off
+  rx1207_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1211_done
+    goto rxscan1211_scan
+  rxscan1211_loop:
+    ($P10) = rx1207_cur."from"()
+    inc $P10
+    set rx1207_pos, $P10
+    ge rx1207_pos, rx1207_eos, rxscan1211_done
+  rxscan1211_scan:
+    set_addr $I10, rxscan1211_loop
+    rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
+  rxscan1211_done:
+.annotate 'line', 524
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1167_fail
-    rx1162_cur."!mark_push"(0, rx1162_pos, $I10)
+    set_addr $I10, rxcap_1212_fail
+    rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
   # rx literal  "ge"
-    add $I11, rx1162_pos, 2
-    gt $I11, rx1162_eos, rx1162_fail
-    sub $I11, rx1162_pos, rx1162_off
-    substr $S10, rx1162_tgt, $I11, 2
-    ne $S10, "ge", rx1162_fail
-    add rx1162_pos, 2
-    set_addr $I10, rxcap_1167_fail
-    ($I12, $I11) = rx1162_cur."!mark_peek"($I10)
-    rx1162_cur."!cursor_pos"($I11)
-    ($P10) = rx1162_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1162_pos, "")
-    rx1162_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1207_pos, 2
+    gt $I11, rx1207_eos, rx1207_fail
+    sub $I11, rx1207_pos, rx1207_off
+    substr $S10, rx1207_tgt, $I11, 2
+    ne $S10, "ge", rx1207_fail
+    add rx1207_pos, 2
+    set_addr $I10, rxcap_1212_fail
+    ($I12, $I11) = rx1207_cur."!mark_peek"($I10)
+    rx1207_cur."!cursor_pos"($I11)
+    ($P10) = rx1207_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1207_pos, "")
+    rx1207_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1167_done
-  rxcap_1167_fail:
-    goto rx1162_fail
-  rxcap_1167_done:
+    goto rxcap_1212_done
+  rxcap_1212_fail:
+    goto rx1207_fail
+  rxcap_1212_done:
   # rx subrule "O" subtype=capture negate=
-    rx1162_cur."!cursor_pos"(rx1162_pos)
-    $P10 = rx1162_cur."O"("%relational, :pirop<isge ISs>")
-    unless $P10, rx1162_fail
-    rx1162_cur."!mark_push"(0, -1, 0, $P10)
+    rx1207_cur."!cursor_pos"(rx1207_pos)
+    $P10 = rx1207_cur."O"("%relational, :pirop<isge ISs>")
+    unless $P10, rx1207_fail
+    rx1207_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1162_pos = $P10."pos"()
+    rx1207_pos = $P10."pos"()
   # rx pass
-    rx1162_cur."!cursor_pass"(rx1162_pos, "infix:sym<ge>")
-    rx1162_cur."!cursor_debug"("PASS  ", "infix:sym<ge>", " at pos=", rx1162_pos)
-    .return (rx1162_cur)
-  rx1162_fail:
-.annotate 'line', 433
-    (rx1162_rep, rx1162_pos, $I10, $P10) = rx1162_cur."!mark_fail"(0)
-    lt rx1162_pos, -1, rx1162_done
-    eq rx1162_pos, -1, rx1162_fail
+    rx1207_cur."!cursor_pass"(rx1207_pos, "infix:sym<ge>")
+    rx1207_cur."!cursor_debug"("PASS  ", "infix:sym<ge>", " at pos=", rx1207_pos)
+    .return (rx1207_cur)
+  rx1207_fail:
+.annotate 'line', 446
+    (rx1207_rep, rx1207_pos, $I10, $P10) = rx1207_cur."!mark_fail"(0)
+    lt rx1207_pos, -1, rx1207_done
+    eq rx1207_pos, -1, rx1207_fail
     jump $I10
-  rx1162_done:
-    rx1162_cur."!cursor_fail"()
-    rx1162_cur."!cursor_debug"("FAIL  ", "infix:sym<ge>")
-    .return (rx1162_cur)
+  rx1207_done:
+    rx1207_cur."!cursor_fail"()
+    rx1207_cur."!cursor_debug"("FAIL  ", "infix:sym<ge>")
+    .return (rx1207_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>"  :subid("296_1274853038.58734") :method
-.annotate 'line', 433
-    $P1164 = self."!PREFIX__!subrule"("O", "ge")
-    new $P1165, "ResizablePMCArray"
-    push $P1165, $P1164
-    .return ($P1165)
+.sub "!PREFIX__infix:sym<ge>"  :subid("305_1275811487.95429") :method
+.annotate 'line', 446
+    $P1209 = self."!PREFIX__!subrule"("O", "ge")
+    new $P1210, "ResizablePMCArray"
+    push $P1210, $P1209
+    .return ($P1210)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>"  :subid("297_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1169_tgt
-    .local int rx1169_pos
-    .local int rx1169_off
-    .local int rx1169_eos
-    .local int rx1169_rep
-    .local pmc rx1169_cur
-    (rx1169_cur, rx1169_pos, rx1169_tgt) = self."!cursor_start"()
-    rx1169_cur."!cursor_debug"("START ", "infix:sym<lt>")
-    .lex unicode:"$\x{a2}", rx1169_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1169_eos, rx1169_tgt
-    set rx1169_off, 0
-    lt rx1169_pos, 2, rx1169_start
-    sub rx1169_off, rx1169_pos, 1
-    substr rx1169_tgt, rx1169_tgt, rx1169_off
-  rx1169_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1173_done
-    goto rxscan1173_scan
-  rxscan1173_loop:
-    ($P10) = rx1169_cur."from"()
-    inc $P10
-    set rx1169_pos, $P10
-    ge rx1169_pos, rx1169_eos, rxscan1173_done
-  rxscan1173_scan:
-    set_addr $I10, rxscan1173_loop
-    rx1169_cur."!mark_push"(0, rx1169_pos, $I10)
-  rxscan1173_done:
-.annotate 'line', 512
+.sub "infix:sym<lt>"  :subid("306_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1214_tgt
+    .local int rx1214_pos
+    .local int rx1214_off
+    .local int rx1214_eos
+    .local int rx1214_rep
+    .local pmc rx1214_cur
+    (rx1214_cur, rx1214_pos, rx1214_tgt) = self."!cursor_start"()
+    rx1214_cur."!cursor_debug"("START ", "infix:sym<lt>")
+    .lex unicode:"$\x{a2}", rx1214_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1214_eos, rx1214_tgt
+    gt rx1214_pos, rx1214_eos, rx1214_done
+    set rx1214_off, 0
+    lt rx1214_pos, 2, rx1214_start
+    sub rx1214_off, rx1214_pos, 1
+    substr rx1214_tgt, rx1214_tgt, rx1214_off
+  rx1214_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1218_done
+    goto rxscan1218_scan
+  rxscan1218_loop:
+    ($P10) = rx1214_cur."from"()
+    inc $P10
+    set rx1214_pos, $P10
+    ge rx1214_pos, rx1214_eos, rxscan1218_done
+  rxscan1218_scan:
+    set_addr $I10, rxscan1218_loop
+    rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
+  rxscan1218_done:
+.annotate 'line', 525
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1174_fail
-    rx1169_cur."!mark_push"(0, rx1169_pos, $I10)
+    set_addr $I10, rxcap_1219_fail
+    rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
   # rx literal  "lt"
-    add $I11, rx1169_pos, 2
-    gt $I11, rx1169_eos, rx1169_fail
-    sub $I11, rx1169_pos, rx1169_off
-    substr $S10, rx1169_tgt, $I11, 2
-    ne $S10, "lt", rx1169_fail
-    add rx1169_pos, 2
-    set_addr $I10, rxcap_1174_fail
-    ($I12, $I11) = rx1169_cur."!mark_peek"($I10)
-    rx1169_cur."!cursor_pos"($I11)
-    ($P10) = rx1169_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1169_pos, "")
-    rx1169_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1214_pos, 2
+    gt $I11, rx1214_eos, rx1214_fail
+    sub $I11, rx1214_pos, rx1214_off
+    substr $S10, rx1214_tgt, $I11, 2
+    ne $S10, "lt", rx1214_fail
+    add rx1214_pos, 2
+    set_addr $I10, rxcap_1219_fail
+    ($I12, $I11) = rx1214_cur."!mark_peek"($I10)
+    rx1214_cur."!cursor_pos"($I11)
+    ($P10) = rx1214_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1214_pos, "")
+    rx1214_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1174_done
-  rxcap_1174_fail:
-    goto rx1169_fail
-  rxcap_1174_done:
+    goto rxcap_1219_done
+  rxcap_1219_fail:
+    goto rx1214_fail
+  rxcap_1219_done:
   # rx subrule "O" subtype=capture negate=
-    rx1169_cur."!cursor_pos"(rx1169_pos)
-    $P10 = rx1169_cur."O"("%relational, :pirop<islt ISs>")
-    unless $P10, rx1169_fail
-    rx1169_cur."!mark_push"(0, -1, 0, $P10)
+    rx1214_cur."!cursor_pos"(rx1214_pos)
+    $P10 = rx1214_cur."O"("%relational, :pirop<islt ISs>")
+    unless $P10, rx1214_fail
+    rx1214_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1169_pos = $P10."pos"()
+    rx1214_pos = $P10."pos"()
   # rx pass
-    rx1169_cur."!cursor_pass"(rx1169_pos, "infix:sym<lt>")
-    rx1169_cur."!cursor_debug"("PASS  ", "infix:sym<lt>", " at pos=", rx1169_pos)
-    .return (rx1169_cur)
-  rx1169_fail:
-.annotate 'line', 433
-    (rx1169_rep, rx1169_pos, $I10, $P10) = rx1169_cur."!mark_fail"(0)
-    lt rx1169_pos, -1, rx1169_done
-    eq rx1169_pos, -1, rx1169_fail
+    rx1214_cur."!cursor_pass"(rx1214_pos, "infix:sym<lt>")
+    rx1214_cur."!cursor_debug"("PASS  ", "infix:sym<lt>", " at pos=", rx1214_pos)
+    .return (rx1214_cur)
+  rx1214_fail:
+.annotate 'line', 446
+    (rx1214_rep, rx1214_pos, $I10, $P10) = rx1214_cur."!mark_fail"(0)
+    lt rx1214_pos, -1, rx1214_done
+    eq rx1214_pos, -1, rx1214_fail
     jump $I10
-  rx1169_done:
-    rx1169_cur."!cursor_fail"()
-    rx1169_cur."!cursor_debug"("FAIL  ", "infix:sym<lt>")
-    .return (rx1169_cur)
+  rx1214_done:
+    rx1214_cur."!cursor_fail"()
+    rx1214_cur."!cursor_debug"("FAIL  ", "infix:sym<lt>")
+    .return (rx1214_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>"  :subid("298_1274853038.58734") :method
-.annotate 'line', 433
-    $P1171 = self."!PREFIX__!subrule"("O", "lt")
-    new $P1172, "ResizablePMCArray"
-    push $P1172, $P1171
-    .return ($P1172)
+.sub "!PREFIX__infix:sym<lt>"  :subid("307_1275811487.95429") :method
+.annotate 'line', 446
+    $P1216 = self."!PREFIX__!subrule"("O", "lt")
+    new $P1217, "ResizablePMCArray"
+    push $P1217, $P1216
+    .return ($P1217)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>"  :subid("299_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1176_tgt
-    .local int rx1176_pos
-    .local int rx1176_off
-    .local int rx1176_eos
-    .local int rx1176_rep
-    .local pmc rx1176_cur
-    (rx1176_cur, rx1176_pos, rx1176_tgt) = self."!cursor_start"()
-    rx1176_cur."!cursor_debug"("START ", "infix:sym<gt>")
-    .lex unicode:"$\x{a2}", rx1176_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1176_eos, rx1176_tgt
-    set rx1176_off, 0
-    lt rx1176_pos, 2, rx1176_start
-    sub rx1176_off, rx1176_pos, 1
-    substr rx1176_tgt, rx1176_tgt, rx1176_off
-  rx1176_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1180_done
-    goto rxscan1180_scan
-  rxscan1180_loop:
-    ($P10) = rx1176_cur."from"()
-    inc $P10
-    set rx1176_pos, $P10
-    ge rx1176_pos, rx1176_eos, rxscan1180_done
-  rxscan1180_scan:
-    set_addr $I10, rxscan1180_loop
-    rx1176_cur."!mark_push"(0, rx1176_pos, $I10)
-  rxscan1180_done:
-.annotate 'line', 513
+.sub "infix:sym<gt>"  :subid("308_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1221_tgt
+    .local int rx1221_pos
+    .local int rx1221_off
+    .local int rx1221_eos
+    .local int rx1221_rep
+    .local pmc rx1221_cur
+    (rx1221_cur, rx1221_pos, rx1221_tgt) = self."!cursor_start"()
+    rx1221_cur."!cursor_debug"("START ", "infix:sym<gt>")
+    .lex unicode:"$\x{a2}", rx1221_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1221_eos, rx1221_tgt
+    gt rx1221_pos, rx1221_eos, rx1221_done
+    set rx1221_off, 0
+    lt rx1221_pos, 2, rx1221_start
+    sub rx1221_off, rx1221_pos, 1
+    substr rx1221_tgt, rx1221_tgt, rx1221_off
+  rx1221_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1225_done
+    goto rxscan1225_scan
+  rxscan1225_loop:
+    ($P10) = rx1221_cur."from"()
+    inc $P10
+    set rx1221_pos, $P10
+    ge rx1221_pos, rx1221_eos, rxscan1225_done
+  rxscan1225_scan:
+    set_addr $I10, rxscan1225_loop
+    rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
+  rxscan1225_done:
+.annotate 'line', 526
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1181_fail
-    rx1176_cur."!mark_push"(0, rx1176_pos, $I10)
+    set_addr $I10, rxcap_1226_fail
+    rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
   # rx literal  "gt"
-    add $I11, rx1176_pos, 2
-    gt $I11, rx1176_eos, rx1176_fail
-    sub $I11, rx1176_pos, rx1176_off
-    substr $S10, rx1176_tgt, $I11, 2
-    ne $S10, "gt", rx1176_fail
-    add rx1176_pos, 2
-    set_addr $I10, rxcap_1181_fail
-    ($I12, $I11) = rx1176_cur."!mark_peek"($I10)
-    rx1176_cur."!cursor_pos"($I11)
-    ($P10) = rx1176_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1176_pos, "")
-    rx1176_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1221_pos, 2
+    gt $I11, rx1221_eos, rx1221_fail
+    sub $I11, rx1221_pos, rx1221_off
+    substr $S10, rx1221_tgt, $I11, 2
+    ne $S10, "gt", rx1221_fail
+    add rx1221_pos, 2
+    set_addr $I10, rxcap_1226_fail
+    ($I12, $I11) = rx1221_cur."!mark_peek"($I10)
+    rx1221_cur."!cursor_pos"($I11)
+    ($P10) = rx1221_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1221_pos, "")
+    rx1221_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1181_done
-  rxcap_1181_fail:
-    goto rx1176_fail
-  rxcap_1181_done:
+    goto rxcap_1226_done
+  rxcap_1226_fail:
+    goto rx1221_fail
+  rxcap_1226_done:
   # rx subrule "O" subtype=capture negate=
-    rx1176_cur."!cursor_pos"(rx1176_pos)
-    $P10 = rx1176_cur."O"("%relational, :pirop<isgt ISs>")
-    unless $P10, rx1176_fail
-    rx1176_cur."!mark_push"(0, -1, 0, $P10)
+    rx1221_cur."!cursor_pos"(rx1221_pos)
+    $P10 = rx1221_cur."O"("%relational, :pirop<isgt ISs>")
+    unless $P10, rx1221_fail
+    rx1221_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1176_pos = $P10."pos"()
+    rx1221_pos = $P10."pos"()
   # rx pass
-    rx1176_cur."!cursor_pass"(rx1176_pos, "infix:sym<gt>")
-    rx1176_cur."!cursor_debug"("PASS  ", "infix:sym<gt>", " at pos=", rx1176_pos)
-    .return (rx1176_cur)
-  rx1176_fail:
-.annotate 'line', 433
-    (rx1176_rep, rx1176_pos, $I10, $P10) = rx1176_cur."!mark_fail"(0)
-    lt rx1176_pos, -1, rx1176_done
-    eq rx1176_pos, -1, rx1176_fail
+    rx1221_cur."!cursor_pass"(rx1221_pos, "infix:sym<gt>")
+    rx1221_cur."!cursor_debug"("PASS  ", "infix:sym<gt>", " at pos=", rx1221_pos)
+    .return (rx1221_cur)
+  rx1221_fail:
+.annotate 'line', 446
+    (rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0)
+    lt rx1221_pos, -1, rx1221_done
+    eq rx1221_pos, -1, rx1221_fail
     jump $I10
-  rx1176_done:
-    rx1176_cur."!cursor_fail"()
-    rx1176_cur."!cursor_debug"("FAIL  ", "infix:sym<gt>")
-    .return (rx1176_cur)
+  rx1221_done:
+    rx1221_cur."!cursor_fail"()
+    rx1221_cur."!cursor_debug"("FAIL  ", "infix:sym<gt>")
+    .return (rx1221_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>"  :subid("300_1274853038.58734") :method
-.annotate 'line', 433
-    $P1178 = self."!PREFIX__!subrule"("O", "gt")
-    new $P1179, "ResizablePMCArray"
-    push $P1179, $P1178
-    .return ($P1179)
+.sub "!PREFIX__infix:sym<gt>"  :subid("309_1275811487.95429") :method
+.annotate 'line', 446
+    $P1223 = self."!PREFIX__!subrule"("O", "gt")
+    new $P1224, "ResizablePMCArray"
+    push $P1224, $P1223
+    .return ($P1224)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>"  :subid("301_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1183_tgt
-    .local int rx1183_pos
-    .local int rx1183_off
-    .local int rx1183_eos
-    .local int rx1183_rep
-    .local pmc rx1183_cur
-    (rx1183_cur, rx1183_pos, rx1183_tgt) = self."!cursor_start"()
-    rx1183_cur."!cursor_debug"("START ", "infix:sym<=:=>")
-    .lex unicode:"$\x{a2}", rx1183_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1183_eos, rx1183_tgt
-    set rx1183_off, 0
-    lt rx1183_pos, 2, rx1183_start
-    sub rx1183_off, rx1183_pos, 1
-    substr rx1183_tgt, rx1183_tgt, rx1183_off
-  rx1183_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1187_done
-    goto rxscan1187_scan
-  rxscan1187_loop:
-    ($P10) = rx1183_cur."from"()
-    inc $P10
-    set rx1183_pos, $P10
-    ge rx1183_pos, rx1183_eos, rxscan1187_done
-  rxscan1187_scan:
-    set_addr $I10, rxscan1187_loop
-    rx1183_cur."!mark_push"(0, rx1183_pos, $I10)
-  rxscan1187_done:
-.annotate 'line', 514
+.sub "infix:sym<=:=>"  :subid("310_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1228_tgt
+    .local int rx1228_pos
+    .local int rx1228_off
+    .local int rx1228_eos
+    .local int rx1228_rep
+    .local pmc rx1228_cur
+    (rx1228_cur, rx1228_pos, rx1228_tgt) = self."!cursor_start"()
+    rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>")
+    .lex unicode:"$\x{a2}", rx1228_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1228_eos, rx1228_tgt
+    gt rx1228_pos, rx1228_eos, rx1228_done
+    set rx1228_off, 0
+    lt rx1228_pos, 2, rx1228_start
+    sub rx1228_off, rx1228_pos, 1
+    substr rx1228_tgt, rx1228_tgt, rx1228_off
+  rx1228_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1232_done
+    goto rxscan1232_scan
+  rxscan1232_loop:
+    ($P10) = rx1228_cur."from"()
+    inc $P10
+    set rx1228_pos, $P10
+    ge rx1228_pos, rx1228_eos, rxscan1232_done
+  rxscan1232_scan:
+    set_addr $I10, rxscan1232_loop
+    rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
+  rxscan1232_done:
+.annotate 'line', 527
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1188_fail
-    rx1183_cur."!mark_push"(0, rx1183_pos, $I10)
+    set_addr $I10, rxcap_1233_fail
+    rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
   # rx literal  "=:="
-    add $I11, rx1183_pos, 3
-    gt $I11, rx1183_eos, rx1183_fail
-    sub $I11, rx1183_pos, rx1183_off
-    substr $S10, rx1183_tgt, $I11, 3
-    ne $S10, "=:=", rx1183_fail
-    add rx1183_pos, 3
-    set_addr $I10, rxcap_1188_fail
-    ($I12, $I11) = rx1183_cur."!mark_peek"($I10)
-    rx1183_cur."!cursor_pos"($I11)
-    ($P10) = rx1183_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1183_pos, "")
-    rx1183_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1228_pos, 3
+    gt $I11, rx1228_eos, rx1228_fail
+    sub $I11, rx1228_pos, rx1228_off
+    substr $S10, rx1228_tgt, $I11, 3
+    ne $S10, "=:=", rx1228_fail
+    add rx1228_pos, 3
+    set_addr $I10, rxcap_1233_fail
+    ($I12, $I11) = rx1228_cur."!mark_peek"($I10)
+    rx1228_cur."!cursor_pos"($I11)
+    ($P10) = rx1228_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1228_pos, "")
+    rx1228_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1188_done
-  rxcap_1188_fail:
-    goto rx1183_fail
-  rxcap_1188_done:
+    goto rxcap_1233_done
+  rxcap_1233_fail:
+    goto rx1228_fail
+  rxcap_1233_done:
   # rx subrule "O" subtype=capture negate=
-    rx1183_cur."!cursor_pos"(rx1183_pos)
-    $P10 = rx1183_cur."O"("%relational, :pirop<issame>")
-    unless $P10, rx1183_fail
-    rx1183_cur."!mark_push"(0, -1, 0, $P10)
+    rx1228_cur."!cursor_pos"(rx1228_pos)
+    $P10 = rx1228_cur."O"("%relational, :pirop<issame>")
+    unless $P10, rx1228_fail
+    rx1228_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1183_pos = $P10."pos"()
+    rx1228_pos = $P10."pos"()
   # rx pass
-    rx1183_cur."!cursor_pass"(rx1183_pos, "infix:sym<=:=>")
-    rx1183_cur."!cursor_debug"("PASS  ", "infix:sym<=:=>", " at pos=", rx1183_pos)
-    .return (rx1183_cur)
-  rx1183_fail:
-.annotate 'line', 433
-    (rx1183_rep, rx1183_pos, $I10, $P10) = rx1183_cur."!mark_fail"(0)
-    lt rx1183_pos, -1, rx1183_done
-    eq rx1183_pos, -1, rx1183_fail
+    rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>")
+    rx1228_cur."!cursor_debug"("PASS  ", "infix:sym<=:=>", " at pos=", rx1228_pos)
+    .return (rx1228_cur)
+  rx1228_fail:
+.annotate 'line', 446
+    (rx1228_rep, rx1228_pos, $I10, $P10) = rx1228_cur."!mark_fail"(0)
+    lt rx1228_pos, -1, rx1228_done
+    eq rx1228_pos, -1, rx1228_fail
     jump $I10
-  rx1183_done:
-    rx1183_cur."!cursor_fail"()
-    rx1183_cur."!cursor_debug"("FAIL  ", "infix:sym<=:=>")
-    .return (rx1183_cur)
+  rx1228_done:
+    rx1228_cur."!cursor_fail"()
+    rx1228_cur."!cursor_debug"("FAIL  ", "infix:sym<=:=>")
+    .return (rx1228_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>"  :subid("302_1274853038.58734") :method
-.annotate 'line', 433
-    $P1185 = self."!PREFIX__!subrule"("O", "=:=")
-    new $P1186, "ResizablePMCArray"
-    push $P1186, $P1185
-    .return ($P1186)
+.sub "!PREFIX__infix:sym<=:=>"  :subid("311_1275811487.95429") :method
+.annotate 'line', 446
+    $P1230 = self."!PREFIX__!subrule"("O", "=:=")
+    new $P1231, "ResizablePMCArray"
+    push $P1231, $P1230
+    .return ($P1231)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>"  :subid("303_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1190_tgt
-    .local int rx1190_pos
-    .local int rx1190_off
-    .local int rx1190_eos
-    .local int rx1190_rep
-    .local pmc rx1190_cur
-    (rx1190_cur, rx1190_pos, rx1190_tgt) = self."!cursor_start"()
-    rx1190_cur."!cursor_debug"("START ", "infix:sym<~~>")
-    .lex unicode:"$\x{a2}", rx1190_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1190_eos, rx1190_tgt
-    set rx1190_off, 0
-    lt rx1190_pos, 2, rx1190_start
-    sub rx1190_off, rx1190_pos, 1
-    substr rx1190_tgt, rx1190_tgt, rx1190_off
-  rx1190_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1194_done
-    goto rxscan1194_scan
-  rxscan1194_loop:
-    ($P10) = rx1190_cur."from"()
-    inc $P10
-    set rx1190_pos, $P10
-    ge rx1190_pos, rx1190_eos, rxscan1194_done
-  rxscan1194_scan:
-    set_addr $I10, rxscan1194_loop
-    rx1190_cur."!mark_push"(0, rx1190_pos, $I10)
-  rxscan1194_done:
-.annotate 'line', 515
+.sub "infix:sym<~~>"  :subid("312_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1235_tgt
+    .local int rx1235_pos
+    .local int rx1235_off
+    .local int rx1235_eos
+    .local int rx1235_rep
+    .local pmc rx1235_cur
+    (rx1235_cur, rx1235_pos, rx1235_tgt) = self."!cursor_start"()
+    rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>")
+    .lex unicode:"$\x{a2}", rx1235_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1235_eos, rx1235_tgt
+    gt rx1235_pos, rx1235_eos, rx1235_done
+    set rx1235_off, 0
+    lt rx1235_pos, 2, rx1235_start
+    sub rx1235_off, rx1235_pos, 1
+    substr rx1235_tgt, rx1235_tgt, rx1235_off
+  rx1235_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1239_done
+    goto rxscan1239_scan
+  rxscan1239_loop:
+    ($P10) = rx1235_cur."from"()
+    inc $P10
+    set rx1235_pos, $P10
+    ge rx1235_pos, rx1235_eos, rxscan1239_done
+  rxscan1239_scan:
+    set_addr $I10, rxscan1239_loop
+    rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
+  rxscan1239_done:
+.annotate 'line', 528
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1195_fail
-    rx1190_cur."!mark_push"(0, rx1190_pos, $I10)
+    set_addr $I10, rxcap_1240_fail
+    rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
   # rx literal  "~~"
-    add $I11, rx1190_pos, 2
-    gt $I11, rx1190_eos, rx1190_fail
-    sub $I11, rx1190_pos, rx1190_off
-    substr $S10, rx1190_tgt, $I11, 2
-    ne $S10, "~~", rx1190_fail
-    add rx1190_pos, 2
-    set_addr $I10, rxcap_1195_fail
-    ($I12, $I11) = rx1190_cur."!mark_peek"($I10)
-    rx1190_cur."!cursor_pos"($I11)
-    ($P10) = rx1190_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1190_pos, "")
-    rx1190_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1235_pos, 2
+    gt $I11, rx1235_eos, rx1235_fail
+    sub $I11, rx1235_pos, rx1235_off
+    substr $S10, rx1235_tgt, $I11, 2
+    ne $S10, "~~", rx1235_fail
+    add rx1235_pos, 2
+    set_addr $I10, rxcap_1240_fail
+    ($I12, $I11) = rx1235_cur."!mark_peek"($I10)
+    rx1235_cur."!cursor_pos"($I11)
+    ($P10) = rx1235_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1235_pos, "")
+    rx1235_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1195_done
-  rxcap_1195_fail:
-    goto rx1190_fail
-  rxcap_1195_done:
+    goto rxcap_1240_done
+  rxcap_1240_fail:
+    goto rx1235_fail
+  rxcap_1240_done:
   # rx subrule "O" subtype=capture negate=
-    rx1190_cur."!cursor_pos"(rx1190_pos)
-    $P10 = rx1190_cur."O"("%relational, :reducecheck<smartmatch>")
-    unless $P10, rx1190_fail
-    rx1190_cur."!mark_push"(0, -1, 0, $P10)
+    rx1235_cur."!cursor_pos"(rx1235_pos)
+    $P10 = rx1235_cur."O"("%relational, :reducecheck<smartmatch>")
+    unless $P10, rx1235_fail
+    rx1235_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1190_pos = $P10."pos"()
+    rx1235_pos = $P10."pos"()
   # rx pass
-    rx1190_cur."!cursor_pass"(rx1190_pos, "infix:sym<~~>")
-    rx1190_cur."!cursor_debug"("PASS  ", "infix:sym<~~>", " at pos=", rx1190_pos)
-    .return (rx1190_cur)
-  rx1190_fail:
-.annotate 'line', 433
-    (rx1190_rep, rx1190_pos, $I10, $P10) = rx1190_cur."!mark_fail"(0)
-    lt rx1190_pos, -1, rx1190_done
-    eq rx1190_pos, -1, rx1190_fail
+    rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>")
+    rx1235_cur."!cursor_debug"("PASS  ", "infix:sym<~~>", " at pos=", rx1235_pos)
+    .return (rx1235_cur)
+  rx1235_fail:
+.annotate 'line', 446
+    (rx1235_rep, rx1235_pos, $I10, $P10) = rx1235_cur."!mark_fail"(0)
+    lt rx1235_pos, -1, rx1235_done
+    eq rx1235_pos, -1, rx1235_fail
     jump $I10
-  rx1190_done:
-    rx1190_cur."!cursor_fail"()
-    rx1190_cur."!cursor_debug"("FAIL  ", "infix:sym<~~>")
-    .return (rx1190_cur)
+  rx1235_done:
+    rx1235_cur."!cursor_fail"()
+    rx1235_cur."!cursor_debug"("FAIL  ", "infix:sym<~~>")
+    .return (rx1235_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>"  :subid("304_1274853038.58734") :method
-.annotate 'line', 433
-    $P1192 = self."!PREFIX__!subrule"("O", "~~")
-    new $P1193, "ResizablePMCArray"
-    push $P1193, $P1192
-    .return ($P1193)
+.sub "!PREFIX__infix:sym<~~>"  :subid("313_1275811487.95429") :method
+.annotate 'line', 446
+    $P1237 = self."!PREFIX__!subrule"("O", "~~")
+    new $P1238, "ResizablePMCArray"
+    push $P1238, $P1237
+    .return ($P1238)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>"  :subid("305_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1197_tgt
-    .local int rx1197_pos
-    .local int rx1197_off
-    .local int rx1197_eos
-    .local int rx1197_rep
-    .local pmc rx1197_cur
-    (rx1197_cur, rx1197_pos, rx1197_tgt) = self."!cursor_start"()
-    rx1197_cur."!cursor_debug"("START ", "infix:sym<&&>")
-    .lex unicode:"$\x{a2}", rx1197_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1197_eos, rx1197_tgt
-    set rx1197_off, 0
-    lt rx1197_pos, 2, rx1197_start
-    sub rx1197_off, rx1197_pos, 1
-    substr rx1197_tgt, rx1197_tgt, rx1197_off
-  rx1197_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1201_done
-    goto rxscan1201_scan
-  rxscan1201_loop:
-    ($P10) = rx1197_cur."from"()
-    inc $P10
-    set rx1197_pos, $P10
-    ge rx1197_pos, rx1197_eos, rxscan1201_done
-  rxscan1201_scan:
-    set_addr $I10, rxscan1201_loop
-    rx1197_cur."!mark_push"(0, rx1197_pos, $I10)
-  rxscan1201_done:
-.annotate 'line', 517
+.sub "infix:sym<&&>"  :subid("314_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1242_tgt
+    .local int rx1242_pos
+    .local int rx1242_off
+    .local int rx1242_eos
+    .local int rx1242_rep
+    .local pmc rx1242_cur
+    (rx1242_cur, rx1242_pos, rx1242_tgt) = self."!cursor_start"()
+    rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>")
+    .lex unicode:"$\x{a2}", rx1242_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1242_eos, rx1242_tgt
+    gt rx1242_pos, rx1242_eos, rx1242_done
+    set rx1242_off, 0
+    lt rx1242_pos, 2, rx1242_start
+    sub rx1242_off, rx1242_pos, 1
+    substr rx1242_tgt, rx1242_tgt, rx1242_off
+  rx1242_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1246_done
+    goto rxscan1246_scan
+  rxscan1246_loop:
+    ($P10) = rx1242_cur."from"()
+    inc $P10
+    set rx1242_pos, $P10
+    ge rx1242_pos, rx1242_eos, rxscan1246_done
+  rxscan1246_scan:
+    set_addr $I10, rxscan1246_loop
+    rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
+  rxscan1246_done:
+.annotate 'line', 530
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1202_fail
-    rx1197_cur."!mark_push"(0, rx1197_pos, $I10)
+    set_addr $I10, rxcap_1247_fail
+    rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
   # rx literal  "&&"
-    add $I11, rx1197_pos, 2
-    gt $I11, rx1197_eos, rx1197_fail
-    sub $I11, rx1197_pos, rx1197_off
-    substr $S10, rx1197_tgt, $I11, 2
-    ne $S10, "&&", rx1197_fail
-    add rx1197_pos, 2
-    set_addr $I10, rxcap_1202_fail
-    ($I12, $I11) = rx1197_cur."!mark_peek"($I10)
-    rx1197_cur."!cursor_pos"($I11)
-    ($P10) = rx1197_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1197_pos, "")
-    rx1197_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1242_pos, 2
+    gt $I11, rx1242_eos, rx1242_fail
+    sub $I11, rx1242_pos, rx1242_off
+    substr $S10, rx1242_tgt, $I11, 2
+    ne $S10, "&&", rx1242_fail
+    add rx1242_pos, 2
+    set_addr $I10, rxcap_1247_fail
+    ($I12, $I11) = rx1242_cur."!mark_peek"($I10)
+    rx1242_cur."!cursor_pos"($I11)
+    ($P10) = rx1242_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1242_pos, "")
+    rx1242_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1202_done
-  rxcap_1202_fail:
-    goto rx1197_fail
-  rxcap_1202_done:
+    goto rxcap_1247_done
+  rxcap_1247_fail:
+    goto rx1242_fail
+  rxcap_1247_done:
   # rx subrule "O" subtype=capture negate=
-    rx1197_cur."!cursor_pos"(rx1197_pos)
-    $P10 = rx1197_cur."O"("%tight_and, :pasttype<if>")
-    unless $P10, rx1197_fail
-    rx1197_cur."!mark_push"(0, -1, 0, $P10)
+    rx1242_cur."!cursor_pos"(rx1242_pos)
+    $P10 = rx1242_cur."O"("%tight_and, :pasttype<if>")
+    unless $P10, rx1242_fail
+    rx1242_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1197_pos = $P10."pos"()
+    rx1242_pos = $P10."pos"()
   # rx pass
-    rx1197_cur."!cursor_pass"(rx1197_pos, "infix:sym<&&>")
-    rx1197_cur."!cursor_debug"("PASS  ", "infix:sym<&&>", " at pos=", rx1197_pos)
-    .return (rx1197_cur)
-  rx1197_fail:
-.annotate 'line', 433
-    (rx1197_rep, rx1197_pos, $I10, $P10) = rx1197_cur."!mark_fail"(0)
-    lt rx1197_pos, -1, rx1197_done
-    eq rx1197_pos, -1, rx1197_fail
+    rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>")
+    rx1242_cur."!cursor_debug"("PASS  ", "infix:sym<&&>", " at pos=", rx1242_pos)
+    .return (rx1242_cur)
+  rx1242_fail:
+.annotate 'line', 446
+    (rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0)
+    lt rx1242_pos, -1, rx1242_done
+    eq rx1242_pos, -1, rx1242_fail
     jump $I10
-  rx1197_done:
-    rx1197_cur."!cursor_fail"()
-    rx1197_cur."!cursor_debug"("FAIL  ", "infix:sym<&&>")
-    .return (rx1197_cur)
+  rx1242_done:
+    rx1242_cur."!cursor_fail"()
+    rx1242_cur."!cursor_debug"("FAIL  ", "infix:sym<&&>")
+    .return (rx1242_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>"  :subid("306_1274853038.58734") :method
-.annotate 'line', 433
-    $P1199 = self."!PREFIX__!subrule"("O", "&&")
-    new $P1200, "ResizablePMCArray"
-    push $P1200, $P1199
-    .return ($P1200)
+.sub "!PREFIX__infix:sym<&&>"  :subid("315_1275811487.95429") :method
+.annotate 'line', 446
+    $P1244 = self."!PREFIX__!subrule"("O", "&&")
+    new $P1245, "ResizablePMCArray"
+    push $P1245, $P1244
+    .return ($P1245)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>"  :subid("307_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1204_tgt
-    .local int rx1204_pos
-    .local int rx1204_off
-    .local int rx1204_eos
-    .local int rx1204_rep
-    .local pmc rx1204_cur
-    (rx1204_cur, rx1204_pos, rx1204_tgt) = self."!cursor_start"()
-    rx1204_cur."!cursor_debug"("START ", "infix:sym<||>")
-    .lex unicode:"$\x{a2}", rx1204_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1204_eos, rx1204_tgt
-    set rx1204_off, 0
-    lt rx1204_pos, 2, rx1204_start
-    sub rx1204_off, rx1204_pos, 1
-    substr rx1204_tgt, rx1204_tgt, rx1204_off
-  rx1204_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1208_done
-    goto rxscan1208_scan
-  rxscan1208_loop:
-    ($P10) = rx1204_cur."from"()
-    inc $P10
-    set rx1204_pos, $P10
-    ge rx1204_pos, rx1204_eos, rxscan1208_done
-  rxscan1208_scan:
-    set_addr $I10, rxscan1208_loop
-    rx1204_cur."!mark_push"(0, rx1204_pos, $I10)
-  rxscan1208_done:
-.annotate 'line', 519
+.sub "infix:sym<||>"  :subid("316_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1249_tgt
+    .local int rx1249_pos
+    .local int rx1249_off
+    .local int rx1249_eos
+    .local int rx1249_rep
+    .local pmc rx1249_cur
+    (rx1249_cur, rx1249_pos, rx1249_tgt) = self."!cursor_start"()
+    rx1249_cur."!cursor_debug"("START ", "infix:sym<||>")
+    .lex unicode:"$\x{a2}", rx1249_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1249_eos, rx1249_tgt
+    gt rx1249_pos, rx1249_eos, rx1249_done
+    set rx1249_off, 0
+    lt rx1249_pos, 2, rx1249_start
+    sub rx1249_off, rx1249_pos, 1
+    substr rx1249_tgt, rx1249_tgt, rx1249_off
+  rx1249_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1253_done
+    goto rxscan1253_scan
+  rxscan1253_loop:
+    ($P10) = rx1249_cur."from"()
+    inc $P10
+    set rx1249_pos, $P10
+    ge rx1249_pos, rx1249_eos, rxscan1253_done
+  rxscan1253_scan:
+    set_addr $I10, rxscan1253_loop
+    rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
+  rxscan1253_done:
+.annotate 'line', 532
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1209_fail
-    rx1204_cur."!mark_push"(0, rx1204_pos, $I10)
+    set_addr $I10, rxcap_1254_fail
+    rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
   # rx literal  "||"
-    add $I11, rx1204_pos, 2
-    gt $I11, rx1204_eos, rx1204_fail
-    sub $I11, rx1204_pos, rx1204_off
-    substr $S10, rx1204_tgt, $I11, 2
-    ne $S10, "||", rx1204_fail
-    add rx1204_pos, 2
-    set_addr $I10, rxcap_1209_fail
-    ($I12, $I11) = rx1204_cur."!mark_peek"($I10)
-    rx1204_cur."!cursor_pos"($I11)
-    ($P10) = rx1204_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1204_pos, "")
-    rx1204_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1249_pos, 2
+    gt $I11, rx1249_eos, rx1249_fail
+    sub $I11, rx1249_pos, rx1249_off
+    substr $S10, rx1249_tgt, $I11, 2
+    ne $S10, "||", rx1249_fail
+    add rx1249_pos, 2
+    set_addr $I10, rxcap_1254_fail
+    ($I12, $I11) = rx1249_cur."!mark_peek"($I10)
+    rx1249_cur."!cursor_pos"($I11)
+    ($P10) = rx1249_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1249_pos, "")
+    rx1249_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1209_done
-  rxcap_1209_fail:
-    goto rx1204_fail
-  rxcap_1209_done:
+    goto rxcap_1254_done
+  rxcap_1254_fail:
+    goto rx1249_fail
+  rxcap_1254_done:
   # rx subrule "O" subtype=capture negate=
-    rx1204_cur."!cursor_pos"(rx1204_pos)
-    $P10 = rx1204_cur."O"("%tight_or, :pasttype<unless>")
-    unless $P10, rx1204_fail
-    rx1204_cur."!mark_push"(0, -1, 0, $P10)
+    rx1249_cur."!cursor_pos"(rx1249_pos)
+    $P10 = rx1249_cur."O"("%tight_or, :pasttype<unless>")
+    unless $P10, rx1249_fail
+    rx1249_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1204_pos = $P10."pos"()
+    rx1249_pos = $P10."pos"()
   # rx pass
-    rx1204_cur."!cursor_pass"(rx1204_pos, "infix:sym<||>")
-    rx1204_cur."!cursor_debug"("PASS  ", "infix:sym<||>", " at pos=", rx1204_pos)
-    .return (rx1204_cur)
-  rx1204_fail:
-.annotate 'line', 433
-    (rx1204_rep, rx1204_pos, $I10, $P10) = rx1204_cur."!mark_fail"(0)
-    lt rx1204_pos, -1, rx1204_done
-    eq rx1204_pos, -1, rx1204_fail
+    rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>")
+    rx1249_cur."!cursor_debug"("PASS  ", "infix:sym<||>", " at pos=", rx1249_pos)
+    .return (rx1249_cur)
+  rx1249_fail:
+.annotate 'line', 446
+    (rx1249_rep, rx1249_pos, $I10, $P10) = rx1249_cur."!mark_fail"(0)
+    lt rx1249_pos, -1, rx1249_done
+    eq rx1249_pos, -1, rx1249_fail
     jump $I10
-  rx1204_done:
-    rx1204_cur."!cursor_fail"()
-    rx1204_cur."!cursor_debug"("FAIL  ", "infix:sym<||>")
-    .return (rx1204_cur)
+  rx1249_done:
+    rx1249_cur."!cursor_fail"()
+    rx1249_cur."!cursor_debug"("FAIL  ", "infix:sym<||>")
+    .return (rx1249_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>"  :subid("308_1274853038.58734") :method
-.annotate 'line', 433
-    $P1206 = self."!PREFIX__!subrule"("O", "||")
-    new $P1207, "ResizablePMCArray"
-    push $P1207, $P1206
-    .return ($P1207)
+.sub "!PREFIX__infix:sym<||>"  :subid("317_1275811487.95429") :method
+.annotate 'line', 446
+    $P1251 = self."!PREFIX__!subrule"("O", "||")
+    new $P1252, "ResizablePMCArray"
+    push $P1252, $P1251
+    .return ($P1252)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>"  :subid("309_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1211_tgt
-    .local int rx1211_pos
-    .local int rx1211_off
-    .local int rx1211_eos
-    .local int rx1211_rep
-    .local pmc rx1211_cur
-    (rx1211_cur, rx1211_pos, rx1211_tgt) = self."!cursor_start"()
-    rx1211_cur."!cursor_debug"("START ", "infix:sym<//>")
-    .lex unicode:"$\x{a2}", rx1211_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1211_eos, rx1211_tgt
-    set rx1211_off, 0
-    lt rx1211_pos, 2, rx1211_start
-    sub rx1211_off, rx1211_pos, 1
-    substr rx1211_tgt, rx1211_tgt, rx1211_off
-  rx1211_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1215_done
-    goto rxscan1215_scan
-  rxscan1215_loop:
-    ($P10) = rx1211_cur."from"()
-    inc $P10
-    set rx1211_pos, $P10
-    ge rx1211_pos, rx1211_eos, rxscan1215_done
-  rxscan1215_scan:
-    set_addr $I10, rxscan1215_loop
-    rx1211_cur."!mark_push"(0, rx1211_pos, $I10)
-  rxscan1215_done:
-.annotate 'line', 520
+.sub "infix:sym<//>"  :subid("318_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1256_tgt
+    .local int rx1256_pos
+    .local int rx1256_off
+    .local int rx1256_eos
+    .local int rx1256_rep
+    .local pmc rx1256_cur
+    (rx1256_cur, rx1256_pos, rx1256_tgt) = self."!cursor_start"()
+    rx1256_cur."!cursor_debug"("START ", "infix:sym<//>")
+    .lex unicode:"$\x{a2}", rx1256_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1256_eos, rx1256_tgt
+    gt rx1256_pos, rx1256_eos, rx1256_done
+    set rx1256_off, 0
+    lt rx1256_pos, 2, rx1256_start
+    sub rx1256_off, rx1256_pos, 1
+    substr rx1256_tgt, rx1256_tgt, rx1256_off
+  rx1256_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1260_done
+    goto rxscan1260_scan
+  rxscan1260_loop:
+    ($P10) = rx1256_cur."from"()
+    inc $P10
+    set rx1256_pos, $P10
+    ge rx1256_pos, rx1256_eos, rxscan1260_done
+  rxscan1260_scan:
+    set_addr $I10, rxscan1260_loop
+    rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
+  rxscan1260_done:
+.annotate 'line', 533
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1216_fail
-    rx1211_cur."!mark_push"(0, rx1211_pos, $I10)
+    set_addr $I10, rxcap_1261_fail
+    rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
   # rx literal  "//"
-    add $I11, rx1211_pos, 2
-    gt $I11, rx1211_eos, rx1211_fail
-    sub $I11, rx1211_pos, rx1211_off
-    substr $S10, rx1211_tgt, $I11, 2
-    ne $S10, "//", rx1211_fail
-    add rx1211_pos, 2
-    set_addr $I10, rxcap_1216_fail
-    ($I12, $I11) = rx1211_cur."!mark_peek"($I10)
-    rx1211_cur."!cursor_pos"($I11)
-    ($P10) = rx1211_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1211_pos, "")
-    rx1211_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1256_pos, 2
+    gt $I11, rx1256_eos, rx1256_fail
+    sub $I11, rx1256_pos, rx1256_off
+    substr $S10, rx1256_tgt, $I11, 2
+    ne $S10, "//", rx1256_fail
+    add rx1256_pos, 2
+    set_addr $I10, rxcap_1261_fail
+    ($I12, $I11) = rx1256_cur."!mark_peek"($I10)
+    rx1256_cur."!cursor_pos"($I11)
+    ($P10) = rx1256_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1256_pos, "")
+    rx1256_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1216_done
-  rxcap_1216_fail:
-    goto rx1211_fail
-  rxcap_1216_done:
+    goto rxcap_1261_done
+  rxcap_1261_fail:
+    goto rx1256_fail
+  rxcap_1261_done:
   # rx subrule "O" subtype=capture negate=
-    rx1211_cur."!cursor_pos"(rx1211_pos)
-    $P10 = rx1211_cur."O"("%tight_or, :pasttype<def_or>")
-    unless $P10, rx1211_fail
-    rx1211_cur."!mark_push"(0, -1, 0, $P10)
+    rx1256_cur."!cursor_pos"(rx1256_pos)
+    $P10 = rx1256_cur."O"("%tight_or, :pasttype<def_or>")
+    unless $P10, rx1256_fail
+    rx1256_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1211_pos = $P10."pos"()
+    rx1256_pos = $P10."pos"()
   # rx pass
-    rx1211_cur."!cursor_pass"(rx1211_pos, "infix:sym<//>")
-    rx1211_cur."!cursor_debug"("PASS  ", "infix:sym<//>", " at pos=", rx1211_pos)
-    .return (rx1211_cur)
-  rx1211_fail:
-.annotate 'line', 433
-    (rx1211_rep, rx1211_pos, $I10, $P10) = rx1211_cur."!mark_fail"(0)
-    lt rx1211_pos, -1, rx1211_done
-    eq rx1211_pos, -1, rx1211_fail
+    rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym<//>")
+    rx1256_cur."!cursor_debug"("PASS  ", "infix:sym<//>", " at pos=", rx1256_pos)
+    .return (rx1256_cur)
+  rx1256_fail:
+.annotate 'line', 446
+    (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
+    lt rx1256_pos, -1, rx1256_done
+    eq rx1256_pos, -1, rx1256_fail
     jump $I10
-  rx1211_done:
-    rx1211_cur."!cursor_fail"()
-    rx1211_cur."!cursor_debug"("FAIL  ", "infix:sym<//>")
-    .return (rx1211_cur)
+  rx1256_done:
+    rx1256_cur."!cursor_fail"()
+    rx1256_cur."!cursor_debug"("FAIL  ", "infix:sym<//>")
+    .return (rx1256_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>"  :subid("310_1274853038.58734") :method
-.annotate 'line', 433
-    $P1213 = self."!PREFIX__!subrule"("O", "//")
-    new $P1214, "ResizablePMCArray"
-    push $P1214, $P1213
-    .return ($P1214)
+.sub "!PREFIX__infix:sym<//>"  :subid("319_1275811487.95429") :method
+.annotate 'line', 446
+    $P1258 = self."!PREFIX__!subrule"("O", "//")
+    new $P1259, "ResizablePMCArray"
+    push $P1259, $P1258
+    .return ($P1259)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>"  :subid("311_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1218_tgt
-    .local int rx1218_pos
-    .local int rx1218_off
-    .local int rx1218_eos
-    .local int rx1218_rep
-    .local pmc rx1218_cur
-    (rx1218_cur, rx1218_pos, rx1218_tgt) = self."!cursor_start"()
-    rx1218_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
-    .lex unicode:"$\x{a2}", rx1218_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1218_eos, rx1218_tgt
-    set rx1218_off, 0
-    lt rx1218_pos, 2, rx1218_start
-    sub rx1218_off, rx1218_pos, 1
-    substr rx1218_tgt, rx1218_tgt, rx1218_off
-  rx1218_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1222_done
-    goto rxscan1222_scan
-  rxscan1222_loop:
-    ($P10) = rx1218_cur."from"()
-    inc $P10
-    set rx1218_pos, $P10
-    ge rx1218_pos, rx1218_eos, rxscan1222_done
-  rxscan1222_scan:
-    set_addr $I10, rxscan1222_loop
-    rx1218_cur."!mark_push"(0, rx1218_pos, $I10)
-  rxscan1222_done:
-.annotate 'line', 523
+.sub "infix:sym<?? !!>"  :subid("320_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1263_tgt
+    .local int rx1263_pos
+    .local int rx1263_off
+    .local int rx1263_eos
+    .local int rx1263_rep
+    .local pmc rx1263_cur
+    (rx1263_cur, rx1263_pos, rx1263_tgt) = self."!cursor_start"()
+    rx1263_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
+    .lex unicode:"$\x{a2}", rx1263_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1263_eos, rx1263_tgt
+    gt rx1263_pos, rx1263_eos, rx1263_done
+    set rx1263_off, 0
+    lt rx1263_pos, 2, rx1263_start
+    sub rx1263_off, rx1263_pos, 1
+    substr rx1263_tgt, rx1263_tgt, rx1263_off
+  rx1263_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1267_done
+    goto rxscan1267_scan
+  rxscan1267_loop:
+    ($P10) = rx1263_cur."from"()
+    inc $P10
+    set rx1263_pos, $P10
+    ge rx1263_pos, rx1263_eos, rxscan1267_done
+  rxscan1267_scan:
+    set_addr $I10, rxscan1267_loop
+    rx1263_cur."!mark_push"(0, rx1263_pos, $I10)
+  rxscan1267_done:
+.annotate 'line', 536
   # rx literal  "??"
-    add $I11, rx1218_pos, 2
-    gt $I11, rx1218_eos, rx1218_fail
-    sub $I11, rx1218_pos, rx1218_off
-    substr $S10, rx1218_tgt, $I11, 2
-    ne $S10, "??", rx1218_fail
-    add rx1218_pos, 2
-.annotate 'line', 524
+    add $I11, rx1263_pos, 2
+    gt $I11, rx1263_eos, rx1263_fail
+    sub $I11, rx1263_pos, rx1263_off
+    substr $S10, rx1263_tgt, $I11, 2
+    ne $S10, "??", rx1263_fail
+    add rx1263_pos, 2
+.annotate 'line', 537
   # rx subrule "ws" subtype=method negate=
-    rx1218_cur."!cursor_pos"(rx1218_pos)
-    $P10 = rx1218_cur."ws"()
-    unless $P10, rx1218_fail
-    rx1218_pos = $P10."pos"()
-.annotate 'line', 525
+    rx1263_cur."!cursor_pos"(rx1263_pos)
+    $P10 = rx1263_cur."ws"()
+    unless $P10, rx1263_fail
+    rx1263_pos = $P10."pos"()
+.annotate 'line', 538
   # rx subrule "EXPR" subtype=capture negate=
-    rx1218_cur."!cursor_pos"(rx1218_pos)
-    $P10 = rx1218_cur."EXPR"("i=")
-    unless $P10, rx1218_fail
-    rx1218_cur."!mark_push"(0, -1, 0, $P10)
+    rx1263_cur."!cursor_pos"(rx1263_pos)
+    $P10 = rx1263_cur."EXPR"("i=")
+    unless $P10, rx1263_fail
+    rx1263_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx1218_pos = $P10."pos"()
-.annotate 'line', 526
+    rx1263_pos = $P10."pos"()
+.annotate 'line', 539
   # rx literal  "!!"
-    add $I11, rx1218_pos, 2
-    gt $I11, rx1218_eos, rx1218_fail
-    sub $I11, rx1218_pos, rx1218_off
-    substr $S10, rx1218_tgt, $I11, 2
-    ne $S10, "!!", rx1218_fail
-    add rx1218_pos, 2
-.annotate 'line', 527
+    add $I11, rx1263_pos, 2
+    gt $I11, rx1263_eos, rx1263_fail
+    sub $I11, rx1263_pos, rx1263_off
+    substr $S10, rx1263_tgt, $I11, 2
+    ne $S10, "!!", rx1263_fail
+    add rx1263_pos, 2
+.annotate 'line', 540
   # rx subrule "O" subtype=capture negate=
-    rx1218_cur."!cursor_pos"(rx1218_pos)
-    $P10 = rx1218_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
-    unless $P10, rx1218_fail
-    rx1218_cur."!mark_push"(0, -1, 0, $P10)
+    rx1263_cur."!cursor_pos"(rx1263_pos)
+    $P10 = rx1263_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
+    unless $P10, rx1263_fail
+    rx1263_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1218_pos = $P10."pos"()
-.annotate 'line', 522
+    rx1263_pos = $P10."pos"()
+.annotate 'line', 535
   # rx pass
-    rx1218_cur."!cursor_pass"(rx1218_pos, "infix:sym<?? !!>")
-    rx1218_cur."!cursor_debug"("PASS  ", "infix:sym<?? !!>", " at pos=", rx1218_pos)
-    .return (rx1218_cur)
-  rx1218_fail:
-.annotate 'line', 433
-    (rx1218_rep, rx1218_pos, $I10, $P10) = rx1218_cur."!mark_fail"(0)
-    lt rx1218_pos, -1, rx1218_done
-    eq rx1218_pos, -1, rx1218_fail
+    rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym<?? !!>")
+    rx1263_cur."!cursor_debug"("PASS  ", "infix:sym<?? !!>", " at pos=", rx1263_pos)
+    .return (rx1263_cur)
+  rx1263_fail:
+.annotate 'line', 446
+    (rx1263_rep, rx1263_pos, $I10, $P10) = rx1263_cur."!mark_fail"(0)
+    lt rx1263_pos, -1, rx1263_done
+    eq rx1263_pos, -1, rx1263_fail
     jump $I10
-  rx1218_done:
-    rx1218_cur."!cursor_fail"()
-    rx1218_cur."!cursor_debug"("FAIL  ", "infix:sym<?? !!>")
-    .return (rx1218_cur)
+  rx1263_done:
+    rx1263_cur."!cursor_fail"()
+    rx1263_cur."!cursor_debug"("FAIL  ", "infix:sym<?? !!>")
+    .return (rx1263_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>"  :subid("312_1274853038.58734") :method
-.annotate 'line', 433
-    $P1220 = self."!PREFIX__!subrule"("", "??")
-    new $P1221, "ResizablePMCArray"
-    push $P1221, $P1220
-    .return ($P1221)
+.sub "!PREFIX__infix:sym<?? !!>"  :subid("321_1275811487.95429") :method
+.annotate 'line', 446
+    $P1265 = self."!PREFIX__!subrule"("ws", "??")
+    new $P1266, "ResizablePMCArray"
+    push $P1266, $P1265
+    .return ($P1266)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>"  :subid("313_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1224_tgt
-    .local int rx1224_pos
-    .local int rx1224_off
-    .local int rx1224_eos
-    .local int rx1224_rep
-    .local pmc rx1224_cur
-    (rx1224_cur, rx1224_pos, rx1224_tgt) = self."!cursor_start"()
-    rx1224_cur."!cursor_debug"("START ", "infix:sym<=>")
-    .lex unicode:"$\x{a2}", rx1224_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1224_eos, rx1224_tgt
-    set rx1224_off, 0
-    lt rx1224_pos, 2, rx1224_start
-    sub rx1224_off, rx1224_pos, 1
-    substr rx1224_tgt, rx1224_tgt, rx1224_off
-  rx1224_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1228_done
-    goto rxscan1228_scan
-  rxscan1228_loop:
-    ($P10) = rx1224_cur."from"()
-    inc $P10
-    set rx1224_pos, $P10
-    ge rx1224_pos, rx1224_eos, rxscan1228_done
-  rxscan1228_scan:
-    set_addr $I10, rxscan1228_loop
-    rx1224_cur."!mark_push"(0, rx1224_pos, $I10)
-  rxscan1228_done:
-.annotate 'line', 531
+.sub "infix:sym<=>"  :subid("322_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1269_tgt
+    .local int rx1269_pos
+    .local int rx1269_off
+    .local int rx1269_eos
+    .local int rx1269_rep
+    .local pmc rx1269_cur
+    (rx1269_cur, rx1269_pos, rx1269_tgt) = self."!cursor_start"()
+    rx1269_cur."!cursor_debug"("START ", "infix:sym<=>")
+    .lex unicode:"$\x{a2}", rx1269_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1269_eos, rx1269_tgt
+    gt rx1269_pos, rx1269_eos, rx1269_done
+    set rx1269_off, 0
+    lt rx1269_pos, 2, rx1269_start
+    sub rx1269_off, rx1269_pos, 1
+    substr rx1269_tgt, rx1269_tgt, rx1269_off
+  rx1269_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1273_done
+    goto rxscan1273_scan
+  rxscan1273_loop:
+    ($P10) = rx1269_cur."from"()
+    inc $P10
+    set rx1269_pos, $P10
+    ge rx1269_pos, rx1269_eos, rxscan1273_done
+  rxscan1273_scan:
+    set_addr $I10, rxscan1273_loop
+    rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
+  rxscan1273_done:
+.annotate 'line', 544
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1229_fail
-    rx1224_cur."!mark_push"(0, rx1224_pos, $I10)
+    set_addr $I10, rxcap_1274_fail
+    rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
   # rx literal  "="
-    add $I11, rx1224_pos, 1
-    gt $I11, rx1224_eos, rx1224_fail
-    sub $I11, rx1224_pos, rx1224_off
-    substr $S10, rx1224_tgt, $I11, 1
-    ne $S10, "=", rx1224_fail
-    add rx1224_pos, 1
-    set_addr $I10, rxcap_1229_fail
-    ($I12, $I11) = rx1224_cur."!mark_peek"($I10)
-    rx1224_cur."!cursor_pos"($I11)
-    ($P10) = rx1224_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1224_pos, "")
-    rx1224_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1269_pos, 1
+    gt $I11, rx1269_eos, rx1269_fail
+    sub $I11, rx1269_pos, rx1269_off
+    substr $S10, rx1269_tgt, $I11, 1
+    ne $S10, "=", rx1269_fail
+    add rx1269_pos, 1
+    set_addr $I10, rxcap_1274_fail
+    ($I12, $I11) = rx1269_cur."!mark_peek"($I10)
+    rx1269_cur."!cursor_pos"($I11)
+    ($P10) = rx1269_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1269_pos, "")
+    rx1269_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1229_done
-  rxcap_1229_fail:
-    goto rx1224_fail
-  rxcap_1229_done:
+    goto rxcap_1274_done
+  rxcap_1274_fail:
+    goto rx1269_fail
+  rxcap_1274_done:
   # rx subrule "panic" subtype=method negate=
-    rx1224_cur."!cursor_pos"(rx1224_pos)
-    $P10 = rx1224_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
-    unless $P10, rx1224_fail
-    rx1224_pos = $P10."pos"()
-.annotate 'line', 530
-  # rx pass
-    rx1224_cur."!cursor_pass"(rx1224_pos, "infix:sym<=>")
-    rx1224_cur."!cursor_debug"("PASS  ", "infix:sym<=>", " at pos=", rx1224_pos)
-    .return (rx1224_cur)
-  rx1224_fail:
-.annotate 'line', 433
-    (rx1224_rep, rx1224_pos, $I10, $P10) = rx1224_cur."!mark_fail"(0)
-    lt rx1224_pos, -1, rx1224_done
-    eq rx1224_pos, -1, rx1224_fail
+    rx1269_cur."!cursor_pos"(rx1269_pos)
+    $P10 = rx1269_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
+    unless $P10, rx1269_fail
+    rx1269_pos = $P10."pos"()
+.annotate 'line', 543
+  # rx pass
+    rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>")
+    rx1269_cur."!cursor_debug"("PASS  ", "infix:sym<=>", " at pos=", rx1269_pos)
+    .return (rx1269_cur)
+  rx1269_fail:
+.annotate 'line', 446
+    (rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0)
+    lt rx1269_pos, -1, rx1269_done
+    eq rx1269_pos, -1, rx1269_fail
     jump $I10
-  rx1224_done:
-    rx1224_cur."!cursor_fail"()
-    rx1224_cur."!cursor_debug"("FAIL  ", "infix:sym<=>")
-    .return (rx1224_cur)
+  rx1269_done:
+    rx1269_cur."!cursor_fail"()
+    rx1269_cur."!cursor_debug"("FAIL  ", "infix:sym<=>")
+    .return (rx1269_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>"  :subid("314_1274853038.58734") :method
-.annotate 'line', 433
-    $P1226 = self."!PREFIX__!subrule"("", "=")
-    new $P1227, "ResizablePMCArray"
-    push $P1227, $P1226
-    .return ($P1227)
+.sub "!PREFIX__infix:sym<=>"  :subid("323_1275811487.95429") :method
+.annotate 'line', 446
+    $P1271 = self."!PREFIX__!subrule"("panic", "=")
+    new $P1272, "ResizablePMCArray"
+    push $P1272, $P1271
+    .return ($P1272)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>"  :subid("315_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1231_tgt
-    .local int rx1231_pos
-    .local int rx1231_off
-    .local int rx1231_eos
-    .local int rx1231_rep
-    .local pmc rx1231_cur
-    (rx1231_cur, rx1231_pos, rx1231_tgt) = self."!cursor_start"()
-    rx1231_cur."!cursor_debug"("START ", "infix:sym<:=>")
-    .lex unicode:"$\x{a2}", rx1231_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1231_eos, rx1231_tgt
-    set rx1231_off, 0
-    lt rx1231_pos, 2, rx1231_start
-    sub rx1231_off, rx1231_pos, 1
-    substr rx1231_tgt, rx1231_tgt, rx1231_off
-  rx1231_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1235_done
-    goto rxscan1235_scan
-  rxscan1235_loop:
-    ($P10) = rx1231_cur."from"()
-    inc $P10
-    set rx1231_pos, $P10
-    ge rx1231_pos, rx1231_eos, rxscan1235_done
-  rxscan1235_scan:
-    set_addr $I10, rxscan1235_loop
-    rx1231_cur."!mark_push"(0, rx1231_pos, $I10)
-  rxscan1235_done:
-.annotate 'line', 533
+.sub "infix:sym<:=>"  :subid("324_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1276_tgt
+    .local int rx1276_pos
+    .local int rx1276_off
+    .local int rx1276_eos
+    .local int rx1276_rep
+    .local pmc rx1276_cur
+    (rx1276_cur, rx1276_pos, rx1276_tgt) = self."!cursor_start"()
+    rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>")
+    .lex unicode:"$\x{a2}", rx1276_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1276_eos, rx1276_tgt
+    gt rx1276_pos, rx1276_eos, rx1276_done
+    set rx1276_off, 0
+    lt rx1276_pos, 2, rx1276_start
+    sub rx1276_off, rx1276_pos, 1
+    substr rx1276_tgt, rx1276_tgt, rx1276_off
+  rx1276_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1280_done
+    goto rxscan1280_scan
+  rxscan1280_loop:
+    ($P10) = rx1276_cur."from"()
+    inc $P10
+    set rx1276_pos, $P10
+    ge rx1276_pos, rx1276_eos, rxscan1280_done
+  rxscan1280_scan:
+    set_addr $I10, rxscan1280_loop
+    rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
+  rxscan1280_done:
+.annotate 'line', 546
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1236_fail
-    rx1231_cur."!mark_push"(0, rx1231_pos, $I10)
+    set_addr $I10, rxcap_1281_fail
+    rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
   # rx literal  ":="
-    add $I11, rx1231_pos, 2
-    gt $I11, rx1231_eos, rx1231_fail
-    sub $I11, rx1231_pos, rx1231_off
-    substr $S10, rx1231_tgt, $I11, 2
-    ne $S10, ":=", rx1231_fail
-    add rx1231_pos, 2
-    set_addr $I10, rxcap_1236_fail
-    ($I12, $I11) = rx1231_cur."!mark_peek"($I10)
-    rx1231_cur."!cursor_pos"($I11)
-    ($P10) = rx1231_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1231_pos, "")
-    rx1231_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1276_pos, 2
+    gt $I11, rx1276_eos, rx1276_fail
+    sub $I11, rx1276_pos, rx1276_off
+    substr $S10, rx1276_tgt, $I11, 2
+    ne $S10, ":=", rx1276_fail
+    add rx1276_pos, 2
+    set_addr $I10, rxcap_1281_fail
+    ($I12, $I11) = rx1276_cur."!mark_peek"($I10)
+    rx1276_cur."!cursor_pos"($I11)
+    ($P10) = rx1276_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1276_pos, "")
+    rx1276_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1236_done
-  rxcap_1236_fail:
-    goto rx1231_fail
-  rxcap_1236_done:
+    goto rxcap_1281_done
+  rxcap_1281_fail:
+    goto rx1276_fail
+  rxcap_1281_done:
   # rx subrule "O" subtype=capture negate=
-    rx1231_cur."!cursor_pos"(rx1231_pos)
-    $P10 = rx1231_cur."O"("%assignment, :pasttype<bind>")
-    unless $P10, rx1231_fail
-    rx1231_cur."!mark_push"(0, -1, 0, $P10)
+    rx1276_cur."!cursor_pos"(rx1276_pos)
+    $P10 = rx1276_cur."O"("%assignment, :pasttype<bind>")
+    unless $P10, rx1276_fail
+    rx1276_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1231_pos = $P10."pos"()
+    rx1276_pos = $P10."pos"()
   # rx pass
-    rx1231_cur."!cursor_pass"(rx1231_pos, "infix:sym<:=>")
-    rx1231_cur."!cursor_debug"("PASS  ", "infix:sym<:=>", " at pos=", rx1231_pos)
-    .return (rx1231_cur)
-  rx1231_fail:
-.annotate 'line', 433
-    (rx1231_rep, rx1231_pos, $I10, $P10) = rx1231_cur."!mark_fail"(0)
-    lt rx1231_pos, -1, rx1231_done
-    eq rx1231_pos, -1, rx1231_fail
+    rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>")
+    rx1276_cur."!cursor_debug"("PASS  ", "infix:sym<:=>", " at pos=", rx1276_pos)
+    .return (rx1276_cur)
+  rx1276_fail:
+.annotate 'line', 446
+    (rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0)
+    lt rx1276_pos, -1, rx1276_done
+    eq rx1276_pos, -1, rx1276_fail
     jump $I10
-  rx1231_done:
-    rx1231_cur."!cursor_fail"()
-    rx1231_cur."!cursor_debug"("FAIL  ", "infix:sym<:=>")
-    .return (rx1231_cur)
+  rx1276_done:
+    rx1276_cur."!cursor_fail"()
+    rx1276_cur."!cursor_debug"("FAIL  ", "infix:sym<:=>")
+    .return (rx1276_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>"  :subid("316_1274853038.58734") :method
-.annotate 'line', 433
-    $P1233 = self."!PREFIX__!subrule"("O", ":=")
-    new $P1234, "ResizablePMCArray"
-    push $P1234, $P1233
-    .return ($P1234)
+.sub "!PREFIX__infix:sym<:=>"  :subid("325_1275811487.95429") :method
+.annotate 'line', 446
+    $P1278 = self."!PREFIX__!subrule"("O", ":=")
+    new $P1279, "ResizablePMCArray"
+    push $P1279, $P1278
+    .return ($P1279)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>"  :subid("317_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1238_tgt
-    .local int rx1238_pos
-    .local int rx1238_off
-    .local int rx1238_eos
-    .local int rx1238_rep
-    .local pmc rx1238_cur
-    (rx1238_cur, rx1238_pos, rx1238_tgt) = self."!cursor_start"()
-    rx1238_cur."!cursor_debug"("START ", "infix:sym<::=>")
-    .lex unicode:"$\x{a2}", rx1238_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1238_eos, rx1238_tgt
-    set rx1238_off, 0
-    lt rx1238_pos, 2, rx1238_start
-    sub rx1238_off, rx1238_pos, 1
-    substr rx1238_tgt, rx1238_tgt, rx1238_off
-  rx1238_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1242_done
-    goto rxscan1242_scan
-  rxscan1242_loop:
-    ($P10) = rx1238_cur."from"()
-    inc $P10
-    set rx1238_pos, $P10
-    ge rx1238_pos, rx1238_eos, rxscan1242_done
-  rxscan1242_scan:
-    set_addr $I10, rxscan1242_loop
-    rx1238_cur."!mark_push"(0, rx1238_pos, $I10)
-  rxscan1242_done:
-.annotate 'line', 534
+.sub "infix:sym<::=>"  :subid("326_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1283_tgt
+    .local int rx1283_pos
+    .local int rx1283_off
+    .local int rx1283_eos
+    .local int rx1283_rep
+    .local pmc rx1283_cur
+    (rx1283_cur, rx1283_pos, rx1283_tgt) = self."!cursor_start"()
+    rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>")
+    .lex unicode:"$\x{a2}", rx1283_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1283_eos, rx1283_tgt
+    gt rx1283_pos, rx1283_eos, rx1283_done
+    set rx1283_off, 0
+    lt rx1283_pos, 2, rx1283_start
+    sub rx1283_off, rx1283_pos, 1
+    substr rx1283_tgt, rx1283_tgt, rx1283_off
+  rx1283_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1287_done
+    goto rxscan1287_scan
+  rxscan1287_loop:
+    ($P10) = rx1283_cur."from"()
+    inc $P10
+    set rx1283_pos, $P10
+    ge rx1283_pos, rx1283_eos, rxscan1287_done
+  rxscan1287_scan:
+    set_addr $I10, rxscan1287_loop
+    rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
+  rxscan1287_done:
+.annotate 'line', 547
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1243_fail
-    rx1238_cur."!mark_push"(0, rx1238_pos, $I10)
+    set_addr $I10, rxcap_1288_fail
+    rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
   # rx literal  "::="
-    add $I11, rx1238_pos, 3
-    gt $I11, rx1238_eos, rx1238_fail
-    sub $I11, rx1238_pos, rx1238_off
-    substr $S10, rx1238_tgt, $I11, 3
-    ne $S10, "::=", rx1238_fail
-    add rx1238_pos, 3
-    set_addr $I10, rxcap_1243_fail
-    ($I12, $I11) = rx1238_cur."!mark_peek"($I10)
-    rx1238_cur."!cursor_pos"($I11)
-    ($P10) = rx1238_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1238_pos, "")
-    rx1238_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1283_pos, 3
+    gt $I11, rx1283_eos, rx1283_fail
+    sub $I11, rx1283_pos, rx1283_off
+    substr $S10, rx1283_tgt, $I11, 3
+    ne $S10, "::=", rx1283_fail
+    add rx1283_pos, 3
+    set_addr $I10, rxcap_1288_fail
+    ($I12, $I11) = rx1283_cur."!mark_peek"($I10)
+    rx1283_cur."!cursor_pos"($I11)
+    ($P10) = rx1283_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1283_pos, "")
+    rx1283_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1243_done
-  rxcap_1243_fail:
-    goto rx1238_fail
-  rxcap_1243_done:
+    goto rxcap_1288_done
+  rxcap_1288_fail:
+    goto rx1283_fail
+  rxcap_1288_done:
   # rx subrule "O" subtype=capture negate=
-    rx1238_cur."!cursor_pos"(rx1238_pos)
-    $P10 = rx1238_cur."O"("%assignment, :pasttype<bind>")
-    unless $P10, rx1238_fail
-    rx1238_cur."!mark_push"(0, -1, 0, $P10)
+    rx1283_cur."!cursor_pos"(rx1283_pos)
+    $P10 = rx1283_cur."O"("%assignment, :pasttype<bind>")
+    unless $P10, rx1283_fail
+    rx1283_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1238_pos = $P10."pos"()
+    rx1283_pos = $P10."pos"()
   # rx pass
-    rx1238_cur."!cursor_pass"(rx1238_pos, "infix:sym<::=>")
-    rx1238_cur."!cursor_debug"("PASS  ", "infix:sym<::=>", " at pos=", rx1238_pos)
-    .return (rx1238_cur)
-  rx1238_fail:
-.annotate 'line', 433
-    (rx1238_rep, rx1238_pos, $I10, $P10) = rx1238_cur."!mark_fail"(0)
-    lt rx1238_pos, -1, rx1238_done
-    eq rx1238_pos, -1, rx1238_fail
+    rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>")
+    rx1283_cur."!cursor_debug"("PASS  ", "infix:sym<::=>", " at pos=", rx1283_pos)
+    .return (rx1283_cur)
+  rx1283_fail:
+.annotate 'line', 446
+    (rx1283_rep, rx1283_pos, $I10, $P10) = rx1283_cur."!mark_fail"(0)
+    lt rx1283_pos, -1, rx1283_done
+    eq rx1283_pos, -1, rx1283_fail
     jump $I10
-  rx1238_done:
-    rx1238_cur."!cursor_fail"()
-    rx1238_cur."!cursor_debug"("FAIL  ", "infix:sym<::=>")
-    .return (rx1238_cur)
+  rx1283_done:
+    rx1283_cur."!cursor_fail"()
+    rx1283_cur."!cursor_debug"("FAIL  ", "infix:sym<::=>")
+    .return (rx1283_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>"  :subid("318_1274853038.58734") :method
-.annotate 'line', 433
-    $P1240 = self."!PREFIX__!subrule"("O", "::=")
-    new $P1241, "ResizablePMCArray"
-    push $P1241, $P1240
-    .return ($P1241)
+.sub "!PREFIX__infix:sym<::=>"  :subid("327_1275811487.95429") :method
+.annotate 'line', 446
+    $P1285 = self."!PREFIX__!subrule"("O", "::=")
+    new $P1286, "ResizablePMCArray"
+    push $P1286, $P1285
+    .return ($P1286)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>"  :subid("319_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1245_tgt
-    .local int rx1245_pos
-    .local int rx1245_off
-    .local int rx1245_eos
-    .local int rx1245_rep
-    .local pmc rx1245_cur
-    (rx1245_cur, rx1245_pos, rx1245_tgt) = self."!cursor_start"()
-    rx1245_cur."!cursor_debug"("START ", "infix:sym<,>")
-    .lex unicode:"$\x{a2}", rx1245_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1245_eos, rx1245_tgt
-    set rx1245_off, 0
-    lt rx1245_pos, 2, rx1245_start
-    sub rx1245_off, rx1245_pos, 1
-    substr rx1245_tgt, rx1245_tgt, rx1245_off
-  rx1245_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1249_done
-    goto rxscan1249_scan
-  rxscan1249_loop:
-    ($P10) = rx1245_cur."from"()
-    inc $P10
-    set rx1245_pos, $P10
-    ge rx1245_pos, rx1245_eos, rxscan1249_done
-  rxscan1249_scan:
-    set_addr $I10, rxscan1249_loop
-    rx1245_cur."!mark_push"(0, rx1245_pos, $I10)
-  rxscan1249_done:
-.annotate 'line', 536
+.sub "infix:sym<,>"  :subid("328_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1290_tgt
+    .local int rx1290_pos
+    .local int rx1290_off
+    .local int rx1290_eos
+    .local int rx1290_rep
+    .local pmc rx1290_cur
+    (rx1290_cur, rx1290_pos, rx1290_tgt) = self."!cursor_start"()
+    rx1290_cur."!cursor_debug"("START ", "infix:sym<,>")
+    .lex unicode:"$\x{a2}", rx1290_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1290_eos, rx1290_tgt
+    gt rx1290_pos, rx1290_eos, rx1290_done
+    set rx1290_off, 0
+    lt rx1290_pos, 2, rx1290_start
+    sub rx1290_off, rx1290_pos, 1
+    substr rx1290_tgt, rx1290_tgt, rx1290_off
+  rx1290_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1294_done
+    goto rxscan1294_scan
+  rxscan1294_loop:
+    ($P10) = rx1290_cur."from"()
+    inc $P10
+    set rx1290_pos, $P10
+    ge rx1290_pos, rx1290_eos, rxscan1294_done
+  rxscan1294_scan:
+    set_addr $I10, rxscan1294_loop
+    rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
+  rxscan1294_done:
+.annotate 'line', 549
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1250_fail
-    rx1245_cur."!mark_push"(0, rx1245_pos, $I10)
+    set_addr $I10, rxcap_1295_fail
+    rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
   # rx literal  ","
-    add $I11, rx1245_pos, 1
-    gt $I11, rx1245_eos, rx1245_fail
-    sub $I11, rx1245_pos, rx1245_off
-    substr $S10, rx1245_tgt, $I11, 1
-    ne $S10, ",", rx1245_fail
-    add rx1245_pos, 1
-    set_addr $I10, rxcap_1250_fail
-    ($I12, $I11) = rx1245_cur."!mark_peek"($I10)
-    rx1245_cur."!cursor_pos"($I11)
-    ($P10) = rx1245_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1245_pos, "")
-    rx1245_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1290_pos, 1
+    gt $I11, rx1290_eos, rx1290_fail
+    sub $I11, rx1290_pos, rx1290_off
+    substr $S10, rx1290_tgt, $I11, 1
+    ne $S10, ",", rx1290_fail
+    add rx1290_pos, 1
+    set_addr $I10, rxcap_1295_fail
+    ($I12, $I11) = rx1290_cur."!mark_peek"($I10)
+    rx1290_cur."!cursor_pos"($I11)
+    ($P10) = rx1290_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1290_pos, "")
+    rx1290_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1250_done
-  rxcap_1250_fail:
-    goto rx1245_fail
-  rxcap_1250_done:
+    goto rxcap_1295_done
+  rxcap_1295_fail:
+    goto rx1290_fail
+  rxcap_1295_done:
   # rx subrule "O" subtype=capture negate=
-    rx1245_cur."!cursor_pos"(rx1245_pos)
-    $P10 = rx1245_cur."O"("%comma, :pasttype<list>")
-    unless $P10, rx1245_fail
-    rx1245_cur."!mark_push"(0, -1, 0, $P10)
+    rx1290_cur."!cursor_pos"(rx1290_pos)
+    $P10 = rx1290_cur."O"("%comma, :pasttype<list>")
+    unless $P10, rx1290_fail
+    rx1290_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1245_pos = $P10."pos"()
+    rx1290_pos = $P10."pos"()
   # rx pass
-    rx1245_cur."!cursor_pass"(rx1245_pos, "infix:sym<,>")
-    rx1245_cur."!cursor_debug"("PASS  ", "infix:sym<,>", " at pos=", rx1245_pos)
-    .return (rx1245_cur)
-  rx1245_fail:
-.annotate 'line', 433
-    (rx1245_rep, rx1245_pos, $I10, $P10) = rx1245_cur."!mark_fail"(0)
-    lt rx1245_pos, -1, rx1245_done
-    eq rx1245_pos, -1, rx1245_fail
+    rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>")
+    rx1290_cur."!cursor_debug"("PASS  ", "infix:sym<,>", " at pos=", rx1290_pos)
+    .return (rx1290_cur)
+  rx1290_fail:
+.annotate 'line', 446
+    (rx1290_rep, rx1290_pos, $I10, $P10) = rx1290_cur."!mark_fail"(0)
+    lt rx1290_pos, -1, rx1290_done
+    eq rx1290_pos, -1, rx1290_fail
     jump $I10
-  rx1245_done:
-    rx1245_cur."!cursor_fail"()
-    rx1245_cur."!cursor_debug"("FAIL  ", "infix:sym<,>")
-    .return (rx1245_cur)
+  rx1290_done:
+    rx1290_cur."!cursor_fail"()
+    rx1290_cur."!cursor_debug"("FAIL  ", "infix:sym<,>")
+    .return (rx1290_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>"  :subid("320_1274853038.58734") :method
-.annotate 'line', 433
-    $P1247 = self."!PREFIX__!subrule"("O", ",")
-    new $P1248, "ResizablePMCArray"
-    push $P1248, $P1247
-    .return ($P1248)
+.sub "!PREFIX__infix:sym<,>"  :subid("329_1275811487.95429") :method
+.annotate 'line', 446
+    $P1292 = self."!PREFIX__!subrule"("O", ",")
+    new $P1293, "ResizablePMCArray"
+    push $P1293, $P1292
+    .return ($P1293)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>"  :subid("321_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1252_tgt
-    .local int rx1252_pos
-    .local int rx1252_off
-    .local int rx1252_eos
-    .local int rx1252_rep
-    .local pmc rx1252_cur
-    (rx1252_cur, rx1252_pos, rx1252_tgt) = self."!cursor_start"()
-    rx1252_cur."!cursor_debug"("START ", "prefix:sym<return>")
-    .lex unicode:"$\x{a2}", rx1252_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1252_eos, rx1252_tgt
-    set rx1252_off, 0
-    lt rx1252_pos, 2, rx1252_start
-    sub rx1252_off, rx1252_pos, 1
-    substr rx1252_tgt, rx1252_tgt, rx1252_off
-  rx1252_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1255_done
-    goto rxscan1255_scan
-  rxscan1255_loop:
-    ($P10) = rx1252_cur."from"()
-    inc $P10
-    set rx1252_pos, $P10
-    ge rx1252_pos, rx1252_eos, rxscan1255_done
-  rxscan1255_scan:
-    set_addr $I10, rxscan1255_loop
-    rx1252_cur."!mark_push"(0, rx1252_pos, $I10)
-  rxscan1255_done:
-.annotate 'line', 538
+.sub "prefix:sym<return>"  :subid("330_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1297_tgt
+    .local int rx1297_pos
+    .local int rx1297_off
+    .local int rx1297_eos
+    .local int rx1297_rep
+    .local pmc rx1297_cur
+    (rx1297_cur, rx1297_pos, rx1297_tgt) = self."!cursor_start"()
+    rx1297_cur."!cursor_debug"("START ", "prefix:sym<return>")
+    .lex unicode:"$\x{a2}", rx1297_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1297_eos, rx1297_tgt
+    gt rx1297_pos, rx1297_eos, rx1297_done
+    set rx1297_off, 0
+    lt rx1297_pos, 2, rx1297_start
+    sub rx1297_off, rx1297_pos, 1
+    substr rx1297_tgt, rx1297_tgt, rx1297_off
+  rx1297_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1300_done
+    goto rxscan1300_scan
+  rxscan1300_loop:
+    ($P10) = rx1297_cur."from"()
+    inc $P10
+    set rx1297_pos, $P10
+    ge rx1297_pos, rx1297_eos, rxscan1300_done
+  rxscan1300_scan:
+    set_addr $I10, rxscan1300_loop
+    rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
+  rxscan1300_done:
+.annotate 'line', 551
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1256_fail
-    rx1252_cur."!mark_push"(0, rx1252_pos, $I10)
+    set_addr $I10, rxcap_1301_fail
+    rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
   # rx literal  "return"
-    add $I11, rx1252_pos, 6
-    gt $I11, rx1252_eos, rx1252_fail
-    sub $I11, rx1252_pos, rx1252_off
-    substr $S10, rx1252_tgt, $I11, 6
-    ne $S10, "return", rx1252_fail
-    add rx1252_pos, 6
-    set_addr $I10, rxcap_1256_fail
-    ($I12, $I11) = rx1252_cur."!mark_peek"($I10)
-    rx1252_cur."!cursor_pos"($I11)
-    ($P10) = rx1252_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1252_pos, "")
-    rx1252_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1297_pos, 6
+    gt $I11, rx1297_eos, rx1297_fail
+    sub $I11, rx1297_pos, rx1297_off
+    substr $S10, rx1297_tgt, $I11, 6
+    ne $S10, "return", rx1297_fail
+    add rx1297_pos, 6
+    set_addr $I10, rxcap_1301_fail
+    ($I12, $I11) = rx1297_cur."!mark_peek"($I10)
+    rx1297_cur."!cursor_pos"($I11)
+    ($P10) = rx1297_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1297_pos, "")
+    rx1297_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1256_done
-  rxcap_1256_fail:
-    goto rx1252_fail
-  rxcap_1256_done:
+    goto rxcap_1301_done
+  rxcap_1301_fail:
+    goto rx1297_fail
+  rxcap_1301_done:
   # rx charclass s
-    ge rx1252_pos, rx1252_eos, rx1252_fail
-    sub $I10, rx1252_pos, rx1252_off
-    is_cclass $I11, 32, rx1252_tgt, $I10
-    unless $I11, rx1252_fail
-    inc rx1252_pos
+    ge rx1297_pos, rx1297_eos, rx1297_fail
+    sub $I10, rx1297_pos, rx1297_off
+    is_cclass $I11, 32, rx1297_tgt, $I10
+    unless $I11, rx1297_fail
+    inc rx1297_pos
   # rx subrule "O" subtype=capture negate=
-    rx1252_cur."!cursor_pos"(rx1252_pos)
-    $P10 = rx1252_cur."O"("%list_prefix, :pasttype<return>")
-    unless $P10, rx1252_fail
-    rx1252_cur."!mark_push"(0, -1, 0, $P10)
+    rx1297_cur."!cursor_pos"(rx1297_pos)
+    $P10 = rx1297_cur."O"("%list_prefix, :pasttype<return>")
+    unless $P10, rx1297_fail
+    rx1297_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1252_pos = $P10."pos"()
+    rx1297_pos = $P10."pos"()
   # rx pass
-    rx1252_cur."!cursor_pass"(rx1252_pos, "prefix:sym<return>")
-    rx1252_cur."!cursor_debug"("PASS  ", "prefix:sym<return>", " at pos=", rx1252_pos)
-    .return (rx1252_cur)
-  rx1252_fail:
-.annotate 'line', 433
-    (rx1252_rep, rx1252_pos, $I10, $P10) = rx1252_cur."!mark_fail"(0)
-    lt rx1252_pos, -1, rx1252_done
-    eq rx1252_pos, -1, rx1252_fail
+    rx1297_cur."!cursor_pass"(rx1297_pos, "prefix:sym<return>")
+    rx1297_cur."!cursor_debug"("PASS  ", "prefix:sym<return>", " at pos=", rx1297_pos)
+    .return (rx1297_cur)
+  rx1297_fail:
+.annotate 'line', 446
+    (rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0)
+    lt rx1297_pos, -1, rx1297_done
+    eq rx1297_pos, -1, rx1297_fail
     jump $I10
-  rx1252_done:
-    rx1252_cur."!cursor_fail"()
-    rx1252_cur."!cursor_debug"("FAIL  ", "prefix:sym<return>")
-    .return (rx1252_cur)
-    .return ()
+  rx1297_done:
+    rx1297_cur."!cursor_fail"()
+    rx1297_cur."!cursor_debug"("FAIL  ", "prefix:sym<return>")
+    .return (rx1297_cur)
+    .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>"  :subid("322_1274853038.58734") :method
-.annotate 'line', 433
-    new $P1254, "ResizablePMCArray"
-    push $P1254, "return"
-    .return ($P1254)
+.sub "!PREFIX__prefix:sym<return>"  :subid("331_1275811487.95429") :method
+.annotate 'line', 446
+    new $P1299, "ResizablePMCArray"
+    push $P1299, "return"
+    .return ($P1299)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>"  :subid("323_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1258_tgt
-    .local int rx1258_pos
-    .local int rx1258_off
-    .local int rx1258_eos
-    .local int rx1258_rep
-    .local pmc rx1258_cur
-    (rx1258_cur, rx1258_pos, rx1258_tgt) = self."!cursor_start"()
-    rx1258_cur."!cursor_debug"("START ", "prefix:sym<make>")
-    .lex unicode:"$\x{a2}", rx1258_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1258_eos, rx1258_tgt
-    set rx1258_off, 0
-    lt rx1258_pos, 2, rx1258_start
-    sub rx1258_off, rx1258_pos, 1
-    substr rx1258_tgt, rx1258_tgt, rx1258_off
-  rx1258_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1261_done
-    goto rxscan1261_scan
-  rxscan1261_loop:
-    ($P10) = rx1258_cur."from"()
-    inc $P10
-    set rx1258_pos, $P10
-    ge rx1258_pos, rx1258_eos, rxscan1261_done
-  rxscan1261_scan:
-    set_addr $I10, rxscan1261_loop
-    rx1258_cur."!mark_push"(0, rx1258_pos, $I10)
-  rxscan1261_done:
-.annotate 'line', 539
+.sub "prefix:sym<make>"  :subid("332_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1303_tgt
+    .local int rx1303_pos
+    .local int rx1303_off
+    .local int rx1303_eos
+    .local int rx1303_rep
+    .local pmc rx1303_cur
+    (rx1303_cur, rx1303_pos, rx1303_tgt) = self."!cursor_start"()
+    rx1303_cur."!cursor_debug"("START ", "prefix:sym<make>")
+    .lex unicode:"$\x{a2}", rx1303_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1303_eos, rx1303_tgt
+    gt rx1303_pos, rx1303_eos, rx1303_done
+    set rx1303_off, 0
+    lt rx1303_pos, 2, rx1303_start
+    sub rx1303_off, rx1303_pos, 1
+    substr rx1303_tgt, rx1303_tgt, rx1303_off
+  rx1303_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1306_done
+    goto rxscan1306_scan
+  rxscan1306_loop:
+    ($P10) = rx1303_cur."from"()
+    inc $P10
+    set rx1303_pos, $P10
+    ge rx1303_pos, rx1303_eos, rxscan1306_done
+  rxscan1306_scan:
+    set_addr $I10, rxscan1306_loop
+    rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
+  rxscan1306_done:
+.annotate 'line', 552
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1262_fail
-    rx1258_cur."!mark_push"(0, rx1258_pos, $I10)
+    set_addr $I10, rxcap_1307_fail
+    rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
   # rx literal  "make"
-    add $I11, rx1258_pos, 4
-    gt $I11, rx1258_eos, rx1258_fail
-    sub $I11, rx1258_pos, rx1258_off
-    substr $S10, rx1258_tgt, $I11, 4
-    ne $S10, "make", rx1258_fail
-    add rx1258_pos, 4
-    set_addr $I10, rxcap_1262_fail
-    ($I12, $I11) = rx1258_cur."!mark_peek"($I10)
-    rx1258_cur."!cursor_pos"($I11)
-    ($P10) = rx1258_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1258_pos, "")
-    rx1258_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1303_pos, 4
+    gt $I11, rx1303_eos, rx1303_fail
+    sub $I11, rx1303_pos, rx1303_off
+    substr $S10, rx1303_tgt, $I11, 4
+    ne $S10, "make", rx1303_fail
+    add rx1303_pos, 4
+    set_addr $I10, rxcap_1307_fail
+    ($I12, $I11) = rx1303_cur."!mark_peek"($I10)
+    rx1303_cur."!cursor_pos"($I11)
+    ($P10) = rx1303_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1303_pos, "")
+    rx1303_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1262_done
-  rxcap_1262_fail:
-    goto rx1258_fail
-  rxcap_1262_done:
+    goto rxcap_1307_done
+  rxcap_1307_fail:
+    goto rx1303_fail
+  rxcap_1307_done:
   # rx charclass s
-    ge rx1258_pos, rx1258_eos, rx1258_fail
-    sub $I10, rx1258_pos, rx1258_off
-    is_cclass $I11, 32, rx1258_tgt, $I10
-    unless $I11, rx1258_fail
-    inc rx1258_pos
+    ge rx1303_pos, rx1303_eos, rx1303_fail
+    sub $I10, rx1303_pos, rx1303_off
+    is_cclass $I11, 32, rx1303_tgt, $I10
+    unless $I11, rx1303_fail
+    inc rx1303_pos
   # rx subrule "O" subtype=capture negate=
-    rx1258_cur."!cursor_pos"(rx1258_pos)
-    $P10 = rx1258_cur."O"("%list_prefix")
-    unless $P10, rx1258_fail
-    rx1258_cur."!mark_push"(0, -1, 0, $P10)
+    rx1303_cur."!cursor_pos"(rx1303_pos)
+    $P10 = rx1303_cur."O"("%list_prefix")
+    unless $P10, rx1303_fail
+    rx1303_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1258_pos = $P10."pos"()
+    rx1303_pos = $P10."pos"()
   # rx pass
-    rx1258_cur."!cursor_pass"(rx1258_pos, "prefix:sym<make>")
-    rx1258_cur."!cursor_debug"("PASS  ", "prefix:sym<make>", " at pos=", rx1258_pos)
-    .return (rx1258_cur)
-  rx1258_fail:
-.annotate 'line', 433
-    (rx1258_rep, rx1258_pos, $I10, $P10) = rx1258_cur."!mark_fail"(0)
-    lt rx1258_pos, -1, rx1258_done
-    eq rx1258_pos, -1, rx1258_fail
+    rx1303_cur."!cursor_pass"(rx1303_pos, "prefix:sym<make>")
+    rx1303_cur."!cursor_debug"("PASS  ", "prefix:sym<make>", " at pos=", rx1303_pos)
+    .return (rx1303_cur)
+  rx1303_fail:
+.annotate 'line', 446
+    (rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0)
+    lt rx1303_pos, -1, rx1303_done
+    eq rx1303_pos, -1, rx1303_fail
     jump $I10
-  rx1258_done:
-    rx1258_cur."!cursor_fail"()
-    rx1258_cur."!cursor_debug"("FAIL  ", "prefix:sym<make>")
-    .return (rx1258_cur)
+  rx1303_done:
+    rx1303_cur."!cursor_fail"()
+    rx1303_cur."!cursor_debug"("FAIL  ", "prefix:sym<make>")
+    .return (rx1303_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>"  :subid("324_1274853038.58734") :method
-.annotate 'line', 433
-    new $P1260, "ResizablePMCArray"
-    push $P1260, "make"
-    .return ($P1260)
+.sub "!PREFIX__prefix:sym<make>"  :subid("333_1275811487.95429") :method
+.annotate 'line', 446
+    new $P1305, "ResizablePMCArray"
+    push $P1305, "make"
+    .return ($P1305)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<last>"  :subid("325_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1264_tgt
-    .local int rx1264_pos
-    .local int rx1264_off
-    .local int rx1264_eos
-    .local int rx1264_rep
-    .local pmc rx1264_cur
-    (rx1264_cur, rx1264_pos, rx1264_tgt) = self."!cursor_start"()
-    rx1264_cur."!cursor_debug"("START ", "term:sym<last>")
-    .lex unicode:"$\x{a2}", rx1264_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1264_eos, rx1264_tgt
-    set rx1264_off, 0
-    lt rx1264_pos, 2, rx1264_start
-    sub rx1264_off, rx1264_pos, 1
-    substr rx1264_tgt, rx1264_tgt, rx1264_off
-  rx1264_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1267_done
-    goto rxscan1267_scan
-  rxscan1267_loop:
-    ($P10) = rx1264_cur."from"()
-    inc $P10
-    set rx1264_pos, $P10
-    ge rx1264_pos, rx1264_eos, rxscan1267_done
-  rxscan1267_scan:
-    set_addr $I10, rxscan1267_loop
-    rx1264_cur."!mark_push"(0, rx1264_pos, $I10)
-  rxscan1267_done:
-.annotate 'line', 540
+.sub "term:sym<last>"  :subid("334_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1309_tgt
+    .local int rx1309_pos
+    .local int rx1309_off
+    .local int rx1309_eos
+    .local int rx1309_rep
+    .local pmc rx1309_cur
+    (rx1309_cur, rx1309_pos, rx1309_tgt) = self."!cursor_start"()
+    rx1309_cur."!cursor_debug"("START ", "term:sym<last>")
+    .lex unicode:"$\x{a2}", rx1309_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1309_eos, rx1309_tgt
+    gt rx1309_pos, rx1309_eos, rx1309_done
+    set rx1309_off, 0
+    lt rx1309_pos, 2, rx1309_start
+    sub rx1309_off, rx1309_pos, 1
+    substr rx1309_tgt, rx1309_tgt, rx1309_off
+  rx1309_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1312_done
+    goto rxscan1312_scan
+  rxscan1312_loop:
+    ($P10) = rx1309_cur."from"()
+    inc $P10
+    set rx1309_pos, $P10
+    ge rx1309_pos, rx1309_eos, rxscan1312_done
+  rxscan1312_scan:
+    set_addr $I10, rxscan1312_loop
+    rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
+  rxscan1312_done:
+.annotate 'line', 553
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1268_fail
-    rx1264_cur."!mark_push"(0, rx1264_pos, $I10)
+    set_addr $I10, rxcap_1313_fail
+    rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
   # rx literal  "last"
-    add $I11, rx1264_pos, 4
-    gt $I11, rx1264_eos, rx1264_fail
-    sub $I11, rx1264_pos, rx1264_off
-    substr $S10, rx1264_tgt, $I11, 4
-    ne $S10, "last", rx1264_fail
-    add rx1264_pos, 4
-    set_addr $I10, rxcap_1268_fail
-    ($I12, $I11) = rx1264_cur."!mark_peek"($I10)
-    rx1264_cur."!cursor_pos"($I11)
-    ($P10) = rx1264_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1264_pos, "")
-    rx1264_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1309_pos, 4
+    gt $I11, rx1309_eos, rx1309_fail
+    sub $I11, rx1309_pos, rx1309_off
+    substr $S10, rx1309_tgt, $I11, 4
+    ne $S10, "last", rx1309_fail
+    add rx1309_pos, 4
+    set_addr $I10, rxcap_1313_fail
+    ($I12, $I11) = rx1309_cur."!mark_peek"($I10)
+    rx1309_cur."!cursor_pos"($I11)
+    ($P10) = rx1309_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1309_pos, "")
+    rx1309_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1268_done
-  rxcap_1268_fail:
-    goto rx1264_fail
-  rxcap_1268_done:
-  # rx pass
-    rx1264_cur."!cursor_pass"(rx1264_pos, "term:sym<last>")
-    rx1264_cur."!cursor_debug"("PASS  ", "term:sym<last>", " at pos=", rx1264_pos)
-    .return (rx1264_cur)
-  rx1264_fail:
-.annotate 'line', 433
-    (rx1264_rep, rx1264_pos, $I10, $P10) = rx1264_cur."!mark_fail"(0)
-    lt rx1264_pos, -1, rx1264_done
-    eq rx1264_pos, -1, rx1264_fail
+    goto rxcap_1313_done
+  rxcap_1313_fail:
+    goto rx1309_fail
+  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)
+    .return (rx1309_cur)
+  rx1309_fail:
+.annotate 'line', 446
+    (rx1309_rep, rx1309_pos, $I10, $P10) = rx1309_cur."!mark_fail"(0)
+    lt rx1309_pos, -1, rx1309_done
+    eq rx1309_pos, -1, rx1309_fail
     jump $I10
-  rx1264_done:
-    rx1264_cur."!cursor_fail"()
-    rx1264_cur."!cursor_debug"("FAIL  ", "term:sym<last>")
-    .return (rx1264_cur)
+  rx1309_done:
+    rx1309_cur."!cursor_fail"()
+    rx1309_cur."!cursor_debug"("FAIL  ", "term:sym<last>")
+    .return (rx1309_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>"  :subid("326_1274853038.58734") :method
-.annotate 'line', 433
-    new $P1266, "ResizablePMCArray"
-    push $P1266, "last"
-    .return ($P1266)
+.sub "!PREFIX__term:sym<last>"  :subid("335_1275811487.95429") :method
+.annotate 'line', 446
+    new $P1311, "ResizablePMCArray"
+    push $P1311, "last"
+    .return ($P1311)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<next>"  :subid("327_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1270_tgt
-    .local int rx1270_pos
-    .local int rx1270_off
-    .local int rx1270_eos
-    .local int rx1270_rep
-    .local pmc rx1270_cur
-    (rx1270_cur, rx1270_pos, rx1270_tgt) = self."!cursor_start"()
-    rx1270_cur."!cursor_debug"("START ", "term:sym<next>")
-    .lex unicode:"$\x{a2}", rx1270_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1270_eos, rx1270_tgt
-    set rx1270_off, 0
-    lt rx1270_pos, 2, rx1270_start
-    sub rx1270_off, rx1270_pos, 1
-    substr rx1270_tgt, rx1270_tgt, rx1270_off
-  rx1270_start:
+.sub "term:sym<next>"  :subid("336_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1315_tgt
+    .local int rx1315_pos
+    .local int rx1315_off
+    .local int rx1315_eos
+    .local int rx1315_rep
+    .local pmc rx1315_cur
+    (rx1315_cur, rx1315_pos, rx1315_tgt) = self."!cursor_start"()
+    rx1315_cur."!cursor_debug"("START ", "term:sym<next>")
+    .lex unicode:"$\x{a2}", rx1315_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1315_eos, rx1315_tgt
+    gt rx1315_pos, rx1315_eos, rx1315_done
+    set rx1315_off, 0
+    lt rx1315_pos, 2, rx1315_start
+    sub rx1315_off, rx1315_pos, 1
+    substr rx1315_tgt, rx1315_tgt, rx1315_off
+  rx1315_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1273_done
-    goto rxscan1273_scan
-  rxscan1273_loop:
-    ($P10) = rx1270_cur."from"()
+    ne $I10, -1, rxscan1318_done
+    goto rxscan1318_scan
+  rxscan1318_loop:
+    ($P10) = rx1315_cur."from"()
     inc $P10
-    set rx1270_pos, $P10
-    ge rx1270_pos, rx1270_eos, rxscan1273_done
-  rxscan1273_scan:
-    set_addr $I10, rxscan1273_loop
-    rx1270_cur."!mark_push"(0, rx1270_pos, $I10)
-  rxscan1273_done:
-.annotate 'line', 541
+    set rx1315_pos, $P10
+    ge rx1315_pos, rx1315_eos, rxscan1318_done
+  rxscan1318_scan:
+    set_addr $I10, rxscan1318_loop
+    rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
+  rxscan1318_done:
+.annotate 'line', 554
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1274_fail
-    rx1270_cur."!mark_push"(0, rx1270_pos, $I10)
+    set_addr $I10, rxcap_1319_fail
+    rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
   # rx literal  "next"
-    add $I11, rx1270_pos, 4
-    gt $I11, rx1270_eos, rx1270_fail
-    sub $I11, rx1270_pos, rx1270_off
-    substr $S10, rx1270_tgt, $I11, 4
-    ne $S10, "next", rx1270_fail
-    add rx1270_pos, 4
-    set_addr $I10, rxcap_1274_fail
-    ($I12, $I11) = rx1270_cur."!mark_peek"($I10)
-    rx1270_cur."!cursor_pos"($I11)
-    ($P10) = rx1270_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1270_pos, "")
-    rx1270_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1315_pos, 4
+    gt $I11, rx1315_eos, rx1315_fail
+    sub $I11, rx1315_pos, rx1315_off
+    substr $S10, rx1315_tgt, $I11, 4
+    ne $S10, "next", rx1315_fail
+    add rx1315_pos, 4
+    set_addr $I10, rxcap_1319_fail
+    ($I12, $I11) = rx1315_cur."!mark_peek"($I10)
+    rx1315_cur."!cursor_pos"($I11)
+    ($P10) = rx1315_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1315_pos, "")
+    rx1315_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1274_done
-  rxcap_1274_fail:
-    goto rx1270_fail
-  rxcap_1274_done:
-  # rx pass
-    rx1270_cur."!cursor_pass"(rx1270_pos, "term:sym<next>")
-    rx1270_cur."!cursor_debug"("PASS  ", "term:sym<next>", " at pos=", rx1270_pos)
-    .return (rx1270_cur)
-  rx1270_fail:
-.annotate 'line', 433
-    (rx1270_rep, rx1270_pos, $I10, $P10) = rx1270_cur."!mark_fail"(0)
-    lt rx1270_pos, -1, rx1270_done
-    eq rx1270_pos, -1, rx1270_fail
+    goto rxcap_1319_done
+  rxcap_1319_fail:
+    goto rx1315_fail
+  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)
+    .return (rx1315_cur)
+  rx1315_fail:
+.annotate 'line', 446
+    (rx1315_rep, rx1315_pos, $I10, $P10) = rx1315_cur."!mark_fail"(0)
+    lt rx1315_pos, -1, rx1315_done
+    eq rx1315_pos, -1, rx1315_fail
     jump $I10
-  rx1270_done:
-    rx1270_cur."!cursor_fail"()
-    rx1270_cur."!cursor_debug"("FAIL  ", "term:sym<next>")
-    .return (rx1270_cur)
+  rx1315_done:
+    rx1315_cur."!cursor_fail"()
+    rx1315_cur."!cursor_debug"("FAIL  ", "term:sym<next>")
+    .return (rx1315_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>"  :subid("328_1274853038.58734") :method
-.annotate 'line', 433
-    new $P1272, "ResizablePMCArray"
-    push $P1272, "next"
-    .return ($P1272)
+.sub "!PREFIX__term:sym<next>"  :subid("337_1275811487.95429") :method
+.annotate 'line', 446
+    new $P1317, "ResizablePMCArray"
+    push $P1317, "next"
+    .return ($P1317)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>"  :subid("329_1274853038.58734") :method :outer("11_1274853038.58734")
-.annotate 'line', 433
-    .local string rx1276_tgt
-    .local int rx1276_pos
-    .local int rx1276_off
-    .local int rx1276_eos
-    .local int rx1276_rep
-    .local pmc rx1276_cur
-    (rx1276_cur, rx1276_pos, rx1276_tgt) = self."!cursor_start"()
-    rx1276_cur."!cursor_debug"("START ", "term:sym<redo>")
-    .lex unicode:"$\x{a2}", rx1276_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1276_eos, rx1276_tgt
-    set rx1276_off, 0
-    lt rx1276_pos, 2, rx1276_start
-    sub rx1276_off, rx1276_pos, 1
-    substr rx1276_tgt, rx1276_tgt, rx1276_off
-  rx1276_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1279_done
-    goto rxscan1279_scan
-  rxscan1279_loop:
-    ($P10) = rx1276_cur."from"()
-    inc $P10
-    set rx1276_pos, $P10
-    ge rx1276_pos, rx1276_eos, rxscan1279_done
-  rxscan1279_scan:
-    set_addr $I10, rxscan1279_loop
-    rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
-  rxscan1279_done:
-.annotate 'line', 542
+.sub "term:sym<redo>"  :subid("338_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+    .local string rx1321_tgt
+    .local int rx1321_pos
+    .local int rx1321_off
+    .local int rx1321_eos
+    .local int rx1321_rep
+    .local pmc rx1321_cur
+    (rx1321_cur, rx1321_pos, rx1321_tgt) = self."!cursor_start"()
+    rx1321_cur."!cursor_debug"("START ", "term:sym<redo>")
+    .lex unicode:"$\x{a2}", rx1321_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1321_eos, rx1321_tgt
+    gt rx1321_pos, rx1321_eos, rx1321_done
+    set rx1321_off, 0
+    lt rx1321_pos, 2, rx1321_start
+    sub rx1321_off, rx1321_pos, 1
+    substr rx1321_tgt, rx1321_tgt, rx1321_off
+  rx1321_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1324_done
+    goto rxscan1324_scan
+  rxscan1324_loop:
+    ($P10) = rx1321_cur."from"()
+    inc $P10
+    set rx1321_pos, $P10
+    ge rx1321_pos, rx1321_eos, rxscan1324_done
+  rxscan1324_scan:
+    set_addr $I10, rxscan1324_loop
+    rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
+  rxscan1324_done:
+.annotate 'line', 555
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1280_fail
-    rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
+    set_addr $I10, rxcap_1325_fail
+    rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
   # rx literal  "redo"
-    add $I11, rx1276_pos, 4
-    gt $I11, rx1276_eos, rx1276_fail
-    sub $I11, rx1276_pos, rx1276_off
-    substr $S10, rx1276_tgt, $I11, 4
-    ne $S10, "redo", rx1276_fail
-    add rx1276_pos, 4
-    set_addr $I10, rxcap_1280_fail
-    ($I12, $I11) = rx1276_cur."!mark_peek"($I10)
-    rx1276_cur."!cursor_pos"($I11)
-    ($P10) = rx1276_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1276_pos, "")
-    rx1276_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1321_pos, 4
+    gt $I11, rx1321_eos, rx1321_fail
+    sub $I11, rx1321_pos, rx1321_off
+    substr $S10, rx1321_tgt, $I11, 4
+    ne $S10, "redo", rx1321_fail
+    add rx1321_pos, 4
+    set_addr $I10, rxcap_1325_fail
+    ($I12, $I11) = rx1321_cur."!mark_peek"($I10)
+    rx1321_cur."!cursor_pos"($I11)
+    ($P10) = rx1321_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1321_pos, "")
+    rx1321_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1280_done
-  rxcap_1280_fail:
-    goto rx1276_fail
-  rxcap_1280_done:
-  # rx pass
-    rx1276_cur."!cursor_pass"(rx1276_pos, "term:sym<redo>")
-    rx1276_cur."!cursor_debug"("PASS  ", "term:sym<redo>", " at pos=", rx1276_pos)
-    .return (rx1276_cur)
-  rx1276_fail:
-.annotate 'line', 433
-    (rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0)
-    lt rx1276_pos, -1, rx1276_done
-    eq rx1276_pos, -1, rx1276_fail
+    goto rxcap_1325_done
+  rxcap_1325_fail:
+    goto rx1321_fail
+  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)
+    .return (rx1321_cur)
+  rx1321_fail:
+.annotate 'line', 446
+    (rx1321_rep, rx1321_pos, $I10, $P10) = rx1321_cur."!mark_fail"(0)
+    lt rx1321_pos, -1, rx1321_done
+    eq rx1321_pos, -1, rx1321_fail
     jump $I10
-  rx1276_done:
-    rx1276_cur."!cursor_fail"()
-    rx1276_cur."!cursor_debug"("FAIL  ", "term:sym<redo>")
-    .return (rx1276_cur)
+  rx1321_done:
+    rx1321_cur."!cursor_fail"()
+    rx1321_cur."!cursor_debug"("FAIL  ", "term:sym<redo>")
+    .return (rx1321_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>"  :subid("330_1274853038.58734") :method
-.annotate 'line', 433
-    new $P1278, "ResizablePMCArray"
-    push $P1278, "redo"
-    .return ($P1278)
+.sub "!PREFIX__term:sym<redo>"  :subid("339_1275811487.95429") :method
+.annotate 'line', 446
+    new $P1323, "ResizablePMCArray"
+    push $P1323, "redo"
+    .return ($P1323)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "smartmatch"  :subid("331_1274853038.58734") :method :outer("11_1274853038.58734")
-    .param pmc param_1284
-.annotate 'line', 544
-    new $P1283, 'ExceptionHandler'
-    set_addr $P1283, control_1282
-    $P1283."handle_types"(57)
-    push_eh $P1283
+.include "except_types.pasm"
+.sub "smartmatch"  :subid("340_1275811487.95429") :method :outer("11_1275811487.95429")
+    .param pmc param_1329
+.annotate 'line', 557
+    new $P1328, 'ExceptionHandler'
+    set_addr $P1328, control_1327
+    $P1328."handle_types"(.CONTROL_RETURN)
+    push_eh $P1328
     .lex "self", self
-    .lex "$/", param_1284
-.annotate 'line', 546
-    new $P1285, "Undef"
-    .lex "$t", $P1285
-    find_lex $P1286, "$/"
-    unless_null $P1286, vivify_367
-    $P1286 = root_new ['parrot';'ResizablePMCArray']
-  vivify_367:
-    set $P1287, $P1286[0]
-    unless_null $P1287, vivify_368
-    new $P1287, "Undef"
-  vivify_368:
-    store_lex "$t", $P1287
-    find_lex $P1288, "$/"
-    unless_null $P1288, vivify_369
-    $P1288 = root_new ['parrot';'ResizablePMCArray']
-  vivify_369:
-    set $P1289, $P1288[1]
-    unless_null $P1289, vivify_370
-    new $P1289, "Undef"
-  vivify_370:
-    find_lex $P1290, "$/"
-    unless_null $P1290, vivify_371
-    $P1290 = root_new ['parrot';'ResizablePMCArray']
-    store_lex "$/", $P1290
-  vivify_371:
-    set $P1290[0], $P1289
-    find_lex $P1291, "$t"
-    find_lex $P1292, "$/"
-    unless_null $P1292, vivify_372
-    $P1292 = root_new ['parrot';'ResizablePMCArray']
-    store_lex "$/", $P1292
-  vivify_372:
-    set $P1292[1], $P1291
-.annotate 'line', 544
-    .return ($P1291)
-  control_1282:
+    .lex "$/", param_1329
+.annotate 'line', 559
+    new $P1330, "Undef"
+    .lex "$t", $P1330
+    find_lex $P1331, "$/"
+    unless_null $P1331, vivify_376
+    $P1331 = root_new ['parrot';'ResizablePMCArray']
+  vivify_376:
+    set $P1332, $P1331[0]
+    unless_null $P1332, vivify_377
+    new $P1332, "Undef"
+  vivify_377:
+    store_lex "$t", $P1332
+    find_lex $P1333, "$/"
+    unless_null $P1333, vivify_378
+    $P1333 = root_new ['parrot';'ResizablePMCArray']
+  vivify_378:
+    set $P1334, $P1333[1]
+    unless_null $P1334, vivify_379
+    new $P1334, "Undef"
+  vivify_379:
+    find_lex $P1335, "$/"
+    unless_null $P1335, vivify_380
+    $P1335 = root_new ['parrot';'ResizablePMCArray']
+    store_lex "$/", $P1335
+  vivify_380:
+    set $P1335[0], $P1334
+    find_lex $P1336, "$t"
+    find_lex $P1337, "$/"
+    unless_null $P1337, vivify_381
+    $P1337 = root_new ['parrot';'ResizablePMCArray']
+    store_lex "$/", $P1337
+  vivify_381:
+    set $P1337[1], $P1336
+.annotate 'line', 557
+    .return ($P1336)
+  control_1327:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1293, exception, "payload"
-    .return ($P1293)
+    getattribute $P1338, exception, "payload"
+    .return ($P1338)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1294"  :subid("332_1274853038.58734") :outer("11_1274853038.58734")
-.annotate 'line', 550
-    .const 'Sub' $P1352 = "351_1274853038.58734" 
-    capture_lex $P1352
-    .const 'Sub' $P1347 = "349_1274853038.58734" 
-    capture_lex $P1347
-    .const 'Sub' $P1334 = "346_1274853038.58734" 
-    capture_lex $P1334
-    .const 'Sub' $P1324 = "343_1274853038.58734" 
-    capture_lex $P1324
-    .const 'Sub' $P1319 = "341_1274853038.58734" 
-    capture_lex $P1319
-    .const 'Sub' $P1310 = "338_1274853038.58734" 
-    capture_lex $P1310
-    .const 'Sub' $P1305 = "336_1274853038.58734" 
-    capture_lex $P1305
-    .const 'Sub' $P1296 = "333_1274853038.58734" 
-    capture_lex $P1296
-    .const 'Sub' $P1352 = "351_1274853038.58734" 
-    capture_lex $P1352
-    .return ($P1352)
+.sub "_block1339"  :subid("341_1275811487.95429") :outer("11_1275811487.95429")
+.annotate 'line', 563
+    .const 'Sub' $P1397 = "360_1275811487.95429" 
+    capture_lex $P1397
+    .const 'Sub' $P1392 = "358_1275811487.95429" 
+    capture_lex $P1392
+    .const 'Sub' $P1379 = "355_1275811487.95429" 
+    capture_lex $P1379
+    .const 'Sub' $P1369 = "352_1275811487.95429" 
+    capture_lex $P1369
+    .const 'Sub' $P1364 = "350_1275811487.95429" 
+    capture_lex $P1364
+    .const 'Sub' $P1355 = "347_1275811487.95429" 
+    capture_lex $P1355
+    .const 'Sub' $P1350 = "345_1275811487.95429" 
+    capture_lex $P1350
+    .const 'Sub' $P1341 = "342_1275811487.95429" 
+    capture_lex $P1341
+    .const 'Sub' $P1397 = "360_1275811487.95429" 
+    capture_lex $P1397
+    .return ($P1397)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>"  :subid("333_1274853038.58734") :method :outer("332_1274853038.58734")
-.annotate 'line', 550
-    .const 'Sub' $P1302 = "335_1274853038.58734" 
-    capture_lex $P1302
-    .local string rx1297_tgt
-    .local int rx1297_pos
-    .local int rx1297_off
-    .local int rx1297_eos
-    .local int rx1297_rep
-    .local pmc rx1297_cur
-    (rx1297_cur, rx1297_pos, rx1297_tgt) = self."!cursor_start"()
-    rx1297_cur."!cursor_debug"("START ", "metachar:sym<:my>")
-    .lex unicode:"$\x{a2}", rx1297_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1297_eos, rx1297_tgt
-    set rx1297_off, 0
-    lt rx1297_pos, 2, rx1297_start
-    sub rx1297_off, rx1297_pos, 1
-    substr rx1297_tgt, rx1297_tgt, rx1297_off
-  rx1297_start:
+.sub "metachar:sym<:my>"  :subid("342_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+    .const 'Sub' $P1347 = "344_1275811487.95429" 
+    capture_lex $P1347
+    .local string rx1342_tgt
+    .local int rx1342_pos
+    .local int rx1342_off
+    .local int rx1342_eos
+    .local int rx1342_rep
+    .local pmc rx1342_cur
+    (rx1342_cur, rx1342_pos, rx1342_tgt) = self."!cursor_start"()
+    rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>")
+    .lex unicode:"$\x{a2}", rx1342_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1342_eos, rx1342_tgt
+    gt rx1342_pos, rx1342_eos, rx1342_done
+    set rx1342_off, 0
+    lt rx1342_pos, 2, rx1342_start
+    sub rx1342_off, rx1342_pos, 1
+    substr rx1342_tgt, rx1342_tgt, rx1342_off
+  rx1342_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1300_done
-    goto rxscan1300_scan
-  rxscan1300_loop:
-    ($P10) = rx1297_cur."from"()
+    ne $I10, -1, rxscan1345_done
+    goto rxscan1345_scan
+  rxscan1345_loop:
+    ($P10) = rx1342_cur."from"()
     inc $P10
-    set rx1297_pos, $P10
-    ge rx1297_pos, rx1297_eos, rxscan1300_done
-  rxscan1300_scan:
-    set_addr $I10, rxscan1300_loop
-    rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
-  rxscan1300_done:
-.annotate 'line', 552
+    set rx1342_pos, $P10
+    ge rx1342_pos, rx1342_eos, rxscan1345_done
+  rxscan1345_scan:
+    set_addr $I10, rxscan1345_loop
+    rx1342_cur."!mark_push"(0, rx1342_pos, $I10)
+  rxscan1345_done:
+.annotate 'line', 565
   # rx literal  ":"
-    add $I11, rx1297_pos, 1
-    gt $I11, rx1297_eos, rx1297_fail
-    sub $I11, rx1297_pos, rx1297_off
-    substr $S10, rx1297_tgt, $I11, 1
-    ne $S10, ":", rx1297_fail
-    add rx1297_pos, 1
+    add $I11, rx1342_pos, 1
+    gt $I11, rx1342_eos, rx1342_fail
+    sub $I11, rx1342_pos, rx1342_off
+    substr $S10, rx1342_tgt, $I11, 1
+    ne $S10, ":", rx1342_fail
+    add rx1342_pos, 1
   # rx subrule "before" subtype=zerowidth negate=
-    rx1297_cur."!cursor_pos"(rx1297_pos)
-    .const 'Sub' $P1302 = "335_1274853038.58734" 
-    capture_lex $P1302
-    $P10 = rx1297_cur."before"($P1302)
-    unless $P10, rx1297_fail
+    rx1342_cur."!cursor_pos"(rx1342_pos)
+    .const 'Sub' $P1347 = "344_1275811487.95429" 
+    capture_lex $P1347
+    $P10 = rx1342_cur."before"($P1347)
+    unless $P10, rx1342_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1297_cur."!cursor_pos"(rx1297_pos)
-    $P10 = rx1297_cur."LANG"("MAIN", "statement")
-    unless $P10, rx1297_fail
-    rx1297_cur."!mark_push"(0, -1, 0, $P10)
+    rx1342_cur."!cursor_pos"(rx1342_pos)
+    $P10 = rx1342_cur."LANG"("MAIN", "statement")
+    unless $P10, rx1342_fail
+    rx1342_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx1297_pos = $P10."pos"()
+    rx1342_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx1297_cur."!cursor_pos"(rx1297_pos)
-    $P10 = rx1297_cur."ws"()
-    unless $P10, rx1297_fail
-    rx1297_pos = $P10."pos"()
+    rx1342_cur."!cursor_pos"(rx1342_pos)
+    $P10 = rx1342_cur."ws"()
+    unless $P10, rx1342_fail
+    rx1342_pos = $P10."pos"()
   # rx literal  ";"
-    add $I11, rx1297_pos, 1
-    gt $I11, rx1297_eos, rx1297_fail
-    sub $I11, rx1297_pos, rx1297_off
-    substr $S10, rx1297_tgt, $I11, 1
-    ne $S10, ";", rx1297_fail
-    add rx1297_pos, 1
-.annotate 'line', 551
+    add $I11, rx1342_pos, 1
+    gt $I11, rx1342_eos, rx1342_fail
+    sub $I11, rx1342_pos, rx1342_off
+    substr $S10, rx1342_tgt, $I11, 1
+    ne $S10, ";", rx1342_fail
+    add rx1342_pos, 1
+.annotate 'line', 564
   # rx pass
-    rx1297_cur."!cursor_pass"(rx1297_pos, "metachar:sym<:my>")
-    rx1297_cur."!cursor_debug"("PASS  ", "metachar:sym<:my>", " at pos=", rx1297_pos)
-    .return (rx1297_cur)
-  rx1297_fail:
-.annotate 'line', 550
-    (rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0)
-    lt rx1297_pos, -1, rx1297_done
-    eq rx1297_pos, -1, rx1297_fail
-    jump $I10
-  rx1297_done:
-    rx1297_cur."!cursor_fail"()
-    rx1297_cur."!cursor_debug"("FAIL  ", "metachar:sym<:my>")
-    .return (rx1297_cur)
+    rx1342_cur."!cursor_pass"(rx1342_pos, "metachar:sym<:my>")
+    rx1342_cur."!cursor_debug"("PASS  ", "metachar:sym<:my>", " at pos=", rx1342_pos)
+    .return (rx1342_cur)
+  rx1342_fail:
+.annotate 'line', 563
+    (rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0)
+    lt rx1342_pos, -1, rx1342_done
+    eq rx1342_pos, -1, rx1342_fail
+    jump $I10
+  rx1342_done:
+    rx1342_cur."!cursor_fail"()
+    rx1342_cur."!cursor_debug"("FAIL  ", "metachar:sym<:my>")
+    .return (rx1342_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>"  :subid("334_1274853038.58734") :method
-.annotate 'line', 550
-    new $P1299, "ResizablePMCArray"
-    push $P1299, ":"
-    .return ($P1299)
+.sub "!PREFIX__metachar:sym<:my>"  :subid("343_1275811487.95429") :method
+.annotate 'line', 563
+    new $P1344, "ResizablePMCArray"
+    push $P1344, ":"
+    .return ($P1344)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1301"  :anon :subid("335_1274853038.58734") :method :outer("333_1274853038.58734")
-.annotate 'line', 552
-    .local string rx1303_tgt
-    .local int rx1303_pos
-    .local int rx1303_off
-    .local int rx1303_eos
-    .local int rx1303_rep
-    .local pmc rx1303_cur
-    (rx1303_cur, rx1303_pos, rx1303_tgt) = self."!cursor_start"()
-    rx1303_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1303_cur
+.sub "_block1346"  :anon :subid("344_1275811487.95429") :method :outer("342_1275811487.95429")
+.annotate 'line', 565
+    .local string rx1348_tgt
+    .local int rx1348_pos
+    .local int rx1348_off
+    .local int rx1348_eos
+    .local int rx1348_rep
+    .local pmc rx1348_cur
+    (rx1348_cur, rx1348_pos, rx1348_tgt) = self."!cursor_start"()
+    rx1348_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1348_cur
     .local pmc match
     .lex "$/", match
-    length rx1303_eos, rx1303_tgt
-    set rx1303_off, 0
-    lt rx1303_pos, 2, rx1303_start
-    sub rx1303_off, rx1303_pos, 1
-    substr rx1303_tgt, rx1303_tgt, rx1303_off
-  rx1303_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1304_done
-    goto rxscan1304_scan
-  rxscan1304_loop:
-    ($P10) = rx1303_cur."from"()
+    length rx1348_eos, rx1348_tgt
+    gt rx1348_pos, rx1348_eos, rx1348_done
+    set rx1348_off, 0
+    lt rx1348_pos, 2, rx1348_start
+    sub rx1348_off, rx1348_pos, 1
+    substr rx1348_tgt, rx1348_tgt, rx1348_off
+  rx1348_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1349_done
+    goto rxscan1349_scan
+  rxscan1349_loop:
+    ($P10) = rx1348_cur."from"()
     inc $P10
-    set rx1303_pos, $P10
-    ge rx1303_pos, rx1303_eos, rxscan1304_done
-  rxscan1304_scan:
-    set_addr $I10, rxscan1304_loop
-    rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
-  rxscan1304_done:
+    set rx1348_pos, $P10
+    ge rx1348_pos, rx1348_eos, rxscan1349_done
+  rxscan1349_scan:
+    set_addr $I10, rxscan1349_loop
+    rx1348_cur."!mark_push"(0, rx1348_pos, $I10)
+  rxscan1349_done:
   # rx literal  "my"
-    add $I11, rx1303_pos, 2
-    gt $I11, rx1303_eos, rx1303_fail
-    sub $I11, rx1303_pos, rx1303_off
-    substr $S10, rx1303_tgt, $I11, 2
-    ne $S10, "my", rx1303_fail
-    add rx1303_pos, 2
+    add $I11, rx1348_pos, 2
+    gt $I11, rx1348_eos, rx1348_fail
+    sub $I11, rx1348_pos, rx1348_off
+    substr $S10, rx1348_tgt, $I11, 2
+    ne $S10, "my", rx1348_fail
+    add rx1348_pos, 2
   # rx pass
-    rx1303_cur."!cursor_pass"(rx1303_pos, "")
-    rx1303_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1303_pos)
-    .return (rx1303_cur)
-  rx1303_fail:
-    (rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0)
-    lt rx1303_pos, -1, rx1303_done
-    eq rx1303_pos, -1, rx1303_fail
+    rx1348_cur."!cursor_pass"(rx1348_pos, "")
+    rx1348_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1348_pos)
+    .return (rx1348_cur)
+  rx1348_fail:
+    (rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0)
+    lt rx1348_pos, -1, rx1348_done
+    eq rx1348_pos, -1, rx1348_fail
     jump $I10
-  rx1303_done:
-    rx1303_cur."!cursor_fail"()
-    rx1303_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1303_cur)
+  rx1348_done:
+    rx1348_cur."!cursor_fail"()
+    rx1348_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1348_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>"  :subid("336_1274853038.58734") :method :outer("332_1274853038.58734")
-.annotate 'line', 550
-    .local string rx1306_tgt
-    .local int rx1306_pos
-    .local int rx1306_off
-    .local int rx1306_eos
-    .local int rx1306_rep
-    .local pmc rx1306_cur
-    (rx1306_cur, rx1306_pos, rx1306_tgt) = self."!cursor_start"()
-    rx1306_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx1306_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1306_eos, rx1306_tgt
-    set rx1306_off, 0
-    lt rx1306_pos, 2, rx1306_start
-    sub rx1306_off, rx1306_pos, 1
-    substr rx1306_tgt, rx1306_tgt, rx1306_off
-  rx1306_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1309_done
-    goto rxscan1309_scan
-  rxscan1309_loop:
-    ($P10) = rx1306_cur."from"()
-    inc $P10
-    set rx1306_pos, $P10
-    ge rx1306_pos, rx1306_eos, rxscan1309_done
-  rxscan1309_scan:
-    set_addr $I10, rxscan1309_loop
-    rx1306_cur."!mark_push"(0, rx1306_pos, $I10)
-  rxscan1309_done:
-.annotate 'line', 556
+.sub "metachar:sym<{ }>"  :subid("345_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+    .local string rx1351_tgt
+    .local int rx1351_pos
+    .local int rx1351_off
+    .local int rx1351_eos
+    .local int rx1351_rep
+    .local pmc rx1351_cur
+    (rx1351_cur, rx1351_pos, rx1351_tgt) = self."!cursor_start"()
+    rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx1351_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1351_eos, rx1351_tgt
+    gt rx1351_pos, rx1351_eos, rx1351_done
+    set rx1351_off, 0
+    lt rx1351_pos, 2, rx1351_start
+    sub rx1351_off, rx1351_pos, 1
+    substr rx1351_tgt, rx1351_tgt, rx1351_off
+  rx1351_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1354_done
+    goto rxscan1354_scan
+  rxscan1354_loop:
+    ($P10) = rx1351_cur."from"()
+    inc $P10
+    set rx1351_pos, $P10
+    ge rx1351_pos, rx1351_eos, rxscan1354_done
+  rxscan1354_scan:
+    set_addr $I10, rxscan1354_loop
+    rx1351_cur."!mark_push"(0, rx1351_pos, $I10)
+  rxscan1354_done:
+.annotate 'line', 569
   # rx enumcharlist negate=0 zerowidth
-    ge rx1306_pos, rx1306_eos, rx1306_fail
-    sub $I10, rx1306_pos, rx1306_off
-    substr $S10, rx1306_tgt, $I10, 1
+    ge rx1351_pos, rx1351_eos, rx1351_fail
+    sub $I10, rx1351_pos, rx1351_off
+    substr $S10, rx1351_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx1306_fail
+    lt $I11, 0, rx1351_fail
   # rx subrule "codeblock" subtype=capture negate=
-    rx1306_cur."!cursor_pos"(rx1306_pos)
-    $P10 = rx1306_cur."codeblock"()
-    unless $P10, rx1306_fail
-    rx1306_cur."!mark_push"(0, -1, 0, $P10)
+    rx1351_cur."!cursor_pos"(rx1351_pos)
+    $P10 = rx1351_cur."codeblock"()
+    unless $P10, rx1351_fail
+    rx1351_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1306_pos = $P10."pos"()
-.annotate 'line', 555
+    rx1351_pos = $P10."pos"()
+.annotate 'line', 568
   # rx pass
-    rx1306_cur."!cursor_pass"(rx1306_pos, "metachar:sym<{ }>")
-    rx1306_cur."!cursor_debug"("PASS  ", "metachar:sym<{ }>", " at pos=", rx1306_pos)
-    .return (rx1306_cur)
-  rx1306_fail:
-.annotate 'line', 550
-    (rx1306_rep, rx1306_pos, $I10, $P10) = rx1306_cur."!mark_fail"(0)
-    lt rx1306_pos, -1, rx1306_done
-    eq rx1306_pos, -1, rx1306_fail
-    jump $I10
-  rx1306_done:
-    rx1306_cur."!cursor_fail"()
-    rx1306_cur."!cursor_debug"("FAIL  ", "metachar:sym<{ }>")
-    .return (rx1306_cur)
+    rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>")
+    rx1351_cur."!cursor_debug"("PASS  ", "metachar:sym<{ }>", " at pos=", rx1351_pos)
+    .return (rx1351_cur)
+  rx1351_fail:
+.annotate 'line', 563
+    (rx1351_rep, rx1351_pos, $I10, $P10) = rx1351_cur."!mark_fail"(0)
+    lt rx1351_pos, -1, rx1351_done
+    eq rx1351_pos, -1, rx1351_fail
+    jump $I10
+  rx1351_done:
+    rx1351_cur."!cursor_fail"()
+    rx1351_cur."!cursor_debug"("FAIL  ", "metachar:sym<{ }>")
+    .return (rx1351_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>"  :subid("337_1274853038.58734") :method
-.annotate 'line', 550
-    new $P1308, "ResizablePMCArray"
-    push $P1308, "{"
-    .return ($P1308)
+.sub "!PREFIX__metachar:sym<{ }>"  :subid("346_1275811487.95429") :method
+.annotate 'line', 563
+    new $P1353, "ResizablePMCArray"
+    push $P1353, "{"
+    .return ($P1353)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<nqpvar>"  :subid("338_1274853038.58734") :method :outer("332_1274853038.58734")
-.annotate 'line', 550
-    .const 'Sub' $P1316 = "340_1274853038.58734" 
-    capture_lex $P1316
-    .local string rx1311_tgt
-    .local int rx1311_pos
-    .local int rx1311_off
-    .local int rx1311_eos
-    .local int rx1311_rep
-    .local pmc rx1311_cur
-    (rx1311_cur, rx1311_pos, rx1311_tgt) = self."!cursor_start"()
-    rx1311_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
-    .lex unicode:"$\x{a2}", rx1311_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1311_eos, rx1311_tgt
-    set rx1311_off, 0
-    lt rx1311_pos, 2, rx1311_start
-    sub rx1311_off, rx1311_pos, 1
-    substr rx1311_tgt, rx1311_tgt, rx1311_off
-  rx1311_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1314_done
-    goto rxscan1314_scan
-  rxscan1314_loop:
-    ($P10) = rx1311_cur."from"()
-    inc $P10
-    set rx1311_pos, $P10
-    ge rx1311_pos, rx1311_eos, rxscan1314_done
-  rxscan1314_scan:
-    set_addr $I10, rxscan1314_loop
-    rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-  rxscan1314_done:
-.annotate 'line', 560
+.sub "metachar:sym<nqpvar>"  :subid("347_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+    .const 'Sub' $P1361 = "349_1275811487.95429" 
+    capture_lex $P1361
+    .local string rx1356_tgt
+    .local int rx1356_pos
+    .local int rx1356_off
+    .local int rx1356_eos
+    .local int rx1356_rep
+    .local pmc rx1356_cur
+    (rx1356_cur, rx1356_pos, rx1356_tgt) = self."!cursor_start"()
+    rx1356_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
+    .lex unicode:"$\x{a2}", rx1356_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1356_eos, rx1356_tgt
+    gt rx1356_pos, rx1356_eos, rx1356_done
+    set rx1356_off, 0
+    lt rx1356_pos, 2, rx1356_start
+    sub rx1356_off, rx1356_pos, 1
+    substr rx1356_tgt, rx1356_tgt, rx1356_off
+  rx1356_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1359_done
+    goto rxscan1359_scan
+  rxscan1359_loop:
+    ($P10) = rx1356_cur."from"()
+    inc $P10
+    set rx1356_pos, $P10
+    ge rx1356_pos, rx1356_eos, rxscan1359_done
+  rxscan1359_scan:
+    set_addr $I10, rxscan1359_loop
+    rx1356_cur."!mark_push"(0, rx1356_pos, $I10)
+  rxscan1359_done:
+.annotate 'line', 573
   # rx enumcharlist negate=0 zerowidth
-    ge rx1311_pos, rx1311_eos, rx1311_fail
-    sub $I10, rx1311_pos, rx1311_off
-    substr $S10, rx1311_tgt, $I10, 1
+    ge rx1356_pos, rx1356_eos, rx1356_fail
+    sub $I10, rx1356_pos, rx1356_off
+    substr $S10, rx1356_tgt, $I10, 1
     index $I11, "$@", $S10
-    lt $I11, 0, rx1311_fail
+    lt $I11, 0, rx1356_fail
   # rx subrule "before" subtype=zerowidth negate=
-    rx1311_cur."!cursor_pos"(rx1311_pos)
-    .const 'Sub' $P1316 = "340_1274853038.58734" 
-    capture_lex $P1316
-    $P10 = rx1311_cur."before"($P1316)
-    unless $P10, rx1311_fail
+    rx1356_cur."!cursor_pos"(rx1356_pos)
+    .const 'Sub' $P1361 = "349_1275811487.95429" 
+    capture_lex $P1361
+    $P10 = rx1356_cur."before"($P1361)
+    unless $P10, rx1356_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1311_cur."!cursor_pos"(rx1311_pos)
-    $P10 = rx1311_cur."LANG"("MAIN", "variable")
-    unless $P10, rx1311_fail
-    rx1311_cur."!mark_push"(0, -1, 0, $P10)
+    rx1356_cur."!cursor_pos"(rx1356_pos)
+    $P10 = rx1356_cur."LANG"("MAIN", "variable")
+    unless $P10, rx1356_fail
+    rx1356_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("var")
-    rx1311_pos = $P10."pos"()
-.annotate 'line', 559
+    rx1356_pos = $P10."pos"()
+.annotate 'line', 572
   # rx pass
-    rx1311_cur."!cursor_pass"(rx1311_pos, "metachar:sym<nqpvar>")
-    rx1311_cur."!cursor_debug"("PASS  ", "metachar:sym<nqpvar>", " at pos=", rx1311_pos)
-    .return (rx1311_cur)
-  rx1311_fail:
-.annotate 'line', 550
-    (rx1311_rep, rx1311_pos, $I10, $P10) = rx1311_cur."!mark_fail"(0)
-    lt rx1311_pos, -1, rx1311_done
-    eq rx1311_pos, -1, rx1311_fail
-    jump $I10
-  rx1311_done:
-    rx1311_cur."!cursor_fail"()
-    rx1311_cur."!cursor_debug"("FAIL  ", "metachar:sym<nqpvar>")
-    .return (rx1311_cur)
+    rx1356_cur."!cursor_pass"(rx1356_pos, "metachar:sym<nqpvar>")
+    rx1356_cur."!cursor_debug"("PASS  ", "metachar:sym<nqpvar>", " at pos=", rx1356_pos)
+    .return (rx1356_cur)
+  rx1356_fail:
+.annotate 'line', 563
+    (rx1356_rep, rx1356_pos, $I10, $P10) = rx1356_cur."!mark_fail"(0)
+    lt rx1356_pos, -1, rx1356_done
+    eq rx1356_pos, -1, rx1356_fail
+    jump $I10
+  rx1356_done:
+    rx1356_cur."!cursor_fail"()
+    rx1356_cur."!cursor_debug"("FAIL  ", "metachar:sym<nqpvar>")
+    .return (rx1356_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("339_1274853038.58734") :method
-.annotate 'line', 550
-    new $P1313, "ResizablePMCArray"
-    push $P1313, "$"
-    push $P1313, "@"
-    .return ($P1313)
+.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("348_1275811487.95429") :method
+.annotate 'line', 563
+    new $P1358, "ResizablePMCArray"
+    push $P1358, "$"
+    push $P1358, "@"
+    .return ($P1358)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1315"  :anon :subid("340_1274853038.58734") :method :outer("338_1274853038.58734")
-.annotate 'line', 560
-    .local string rx1317_tgt
-    .local int rx1317_pos
-    .local int rx1317_off
-    .local int rx1317_eos
-    .local int rx1317_rep
-    .local pmc rx1317_cur
-    (rx1317_cur, rx1317_pos, rx1317_tgt) = self."!cursor_start"()
-    rx1317_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1317_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1317_eos, rx1317_tgt
-    set rx1317_off, 0
-    lt rx1317_pos, 2, rx1317_start
-    sub rx1317_off, rx1317_pos, 1
-    substr rx1317_tgt, rx1317_tgt, rx1317_off
-  rx1317_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1318_done
-    goto rxscan1318_scan
-  rxscan1318_loop:
-    ($P10) = rx1317_cur."from"()
-    inc $P10
-    set rx1317_pos, $P10
-    ge rx1317_pos, rx1317_eos, rxscan1318_done
-  rxscan1318_scan:
-    set_addr $I10, rxscan1318_loop
-    rx1317_cur."!mark_push"(0, rx1317_pos, $I10)
-  rxscan1318_done:
+.sub "_block1360"  :anon :subid("349_1275811487.95429") :method :outer("347_1275811487.95429")
+.annotate 'line', 573
+    .local string rx1362_tgt
+    .local int rx1362_pos
+    .local int rx1362_off
+    .local int rx1362_eos
+    .local int rx1362_rep
+    .local pmc rx1362_cur
+    (rx1362_cur, rx1362_pos, rx1362_tgt) = self."!cursor_start"()
+    rx1362_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1362_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1362_eos, rx1362_tgt
+    gt rx1362_pos, rx1362_eos, rx1362_done
+    set rx1362_off, 0
+    lt rx1362_pos, 2, rx1362_start
+    sub rx1362_off, rx1362_pos, 1
+    substr rx1362_tgt, rx1362_tgt, rx1362_off
+  rx1362_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1363_done
+    goto rxscan1363_scan
+  rxscan1363_loop:
+    ($P10) = rx1362_cur."from"()
+    inc $P10
+    set rx1362_pos, $P10
+    ge rx1362_pos, rx1362_eos, rxscan1363_done
+  rxscan1363_scan:
+    set_addr $I10, rxscan1363_loop
+    rx1362_cur."!mark_push"(0, rx1362_pos, $I10)
+  rxscan1363_done:
   # rx charclass .
-    ge rx1317_pos, rx1317_eos, rx1317_fail
-    inc rx1317_pos
+    ge rx1362_pos, rx1362_eos, rx1362_fail
+    inc rx1362_pos
   # rx charclass w
-    ge rx1317_pos, rx1317_eos, rx1317_fail
-    sub $I10, rx1317_pos, rx1317_off
-    is_cclass $I11, 8192, rx1317_tgt, $I10
-    unless $I11, rx1317_fail
-    inc rx1317_pos
-  # rx pass
-    rx1317_cur."!cursor_pass"(rx1317_pos, "")
-    rx1317_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1317_pos)
-    .return (rx1317_cur)
-  rx1317_fail:
-    (rx1317_rep, rx1317_pos, $I10, $P10) = rx1317_cur."!mark_fail"(0)
-    lt rx1317_pos, -1, rx1317_done
-    eq rx1317_pos, -1, rx1317_fail
-    jump $I10
-  rx1317_done:
-    rx1317_cur."!cursor_fail"()
-    rx1317_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1317_cur)
+    ge rx1362_pos, rx1362_eos, rx1362_fail
+    sub $I10, rx1362_pos, rx1362_off
+    is_cclass $I11, 8192, rx1362_tgt, $I10
+    unless $I11, rx1362_fail
+    inc rx1362_pos
+  # rx pass
+    rx1362_cur."!cursor_pass"(rx1362_pos, "")
+    rx1362_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1362_pos)
+    .return (rx1362_cur)
+  rx1362_fail:
+    (rx1362_rep, rx1362_pos, $I10, $P10) = rx1362_cur."!mark_fail"(0)
+    lt rx1362_pos, -1, rx1362_done
+    eq rx1362_pos, -1, rx1362_fail
+    jump $I10
+  rx1362_done:
+    rx1362_cur."!cursor_fail"()
+    rx1362_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1362_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>"  :subid("341_1274853038.58734") :method :outer("332_1274853038.58734")
-.annotate 'line', 550
-    .local string rx1320_tgt
-    .local int rx1320_pos
-    .local int rx1320_off
-    .local int rx1320_eos
-    .local int rx1320_rep
-    .local pmc rx1320_cur
-    (rx1320_cur, rx1320_pos, rx1320_tgt) = self."!cursor_start"()
-    rx1320_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx1320_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1320_eos, rx1320_tgt
-    set rx1320_off, 0
-    lt rx1320_pos, 2, rx1320_start
-    sub rx1320_off, rx1320_pos, 1
-    substr rx1320_tgt, rx1320_tgt, rx1320_off
-  rx1320_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1323_done
-    goto rxscan1323_scan
-  rxscan1323_loop:
-    ($P10) = rx1320_cur."from"()
-    inc $P10
-    set rx1320_pos, $P10
-    ge rx1320_pos, rx1320_eos, rxscan1323_done
-  rxscan1323_scan:
-    set_addr $I10, rxscan1323_loop
-    rx1320_cur."!mark_push"(0, rx1320_pos, $I10)
-  rxscan1323_done:
-.annotate 'line', 564
+.sub "assertion:sym<{ }>"  :subid("350_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+    .local string rx1365_tgt
+    .local int rx1365_pos
+    .local int rx1365_off
+    .local int rx1365_eos
+    .local int rx1365_rep
+    .local pmc rx1365_cur
+    (rx1365_cur, rx1365_pos, rx1365_tgt) = self."!cursor_start"()
+    rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx1365_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1365_eos, rx1365_tgt
+    gt rx1365_pos, rx1365_eos, rx1365_done
+    set rx1365_off, 0
+    lt rx1365_pos, 2, rx1365_start
+    sub rx1365_off, rx1365_pos, 1
+    substr rx1365_tgt, rx1365_tgt, rx1365_off
+  rx1365_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1368_done
+    goto rxscan1368_scan
+  rxscan1368_loop:
+    ($P10) = rx1365_cur."from"()
+    inc $P10
+    set rx1365_pos, $P10
+    ge rx1365_pos, rx1365_eos, rxscan1368_done
+  rxscan1368_scan:
+    set_addr $I10, rxscan1368_loop
+    rx1365_cur."!mark_push"(0, rx1365_pos, $I10)
+  rxscan1368_done:
+.annotate 'line', 577
   # rx enumcharlist negate=0 zerowidth
-    ge rx1320_pos, rx1320_eos, rx1320_fail
-    sub $I10, rx1320_pos, rx1320_off
-    substr $S10, rx1320_tgt, $I10, 1
+    ge rx1365_pos, rx1365_eos, rx1365_fail
+    sub $I10, rx1365_pos, rx1365_off
+    substr $S10, rx1365_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx1320_fail
+    lt $I11, 0, rx1365_fail
   # rx subrule "codeblock" subtype=capture negate=
-    rx1320_cur."!cursor_pos"(rx1320_pos)
-    $P10 = rx1320_cur."codeblock"()
-    unless $P10, rx1320_fail
-    rx1320_cur."!mark_push"(0, -1, 0, $P10)
+    rx1365_cur."!cursor_pos"(rx1365_pos)
+    $P10 = rx1365_cur."codeblock"()
+    unless $P10, rx1365_fail
+    rx1365_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1320_pos = $P10."pos"()
-.annotate 'line', 563
+    rx1365_pos = $P10."pos"()
+.annotate 'line', 576
   # rx pass
-    rx1320_cur."!cursor_pass"(rx1320_pos, "assertion:sym<{ }>")
-    rx1320_cur."!cursor_debug"("PASS  ", "assertion:sym<{ }>", " at pos=", rx1320_pos)
-    .return (rx1320_cur)
-  rx1320_fail:
-.annotate 'line', 550
-    (rx1320_rep, rx1320_pos, $I10, $P10) = rx1320_cur."!mark_fail"(0)
-    lt rx1320_pos, -1, rx1320_done
-    eq rx1320_pos, -1, rx1320_fail
-    jump $I10
-  rx1320_done:
-    rx1320_cur."!cursor_fail"()
-    rx1320_cur."!cursor_debug"("FAIL  ", "assertion:sym<{ }>")
-    .return (rx1320_cur)
+    rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>")
+    rx1365_cur."!cursor_debug"("PASS  ", "assertion:sym<{ }>", " at pos=", rx1365_pos)
+    .return (rx1365_cur)
+  rx1365_fail:
+.annotate 'line', 563
+    (rx1365_rep, rx1365_pos, $I10, $P10) = rx1365_cur."!mark_fail"(0)
+    lt rx1365_pos, -1, rx1365_done
+    eq rx1365_pos, -1, rx1365_fail
+    jump $I10
+  rx1365_done:
+    rx1365_cur."!cursor_fail"()
+    rx1365_cur."!cursor_debug"("FAIL  ", "assertion:sym<{ }>")
+    .return (rx1365_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>"  :subid("342_1274853038.58734") :method
-.annotate 'line', 550
-    new $P1322, "ResizablePMCArray"
-    push $P1322, "{"
-    .return ($P1322)
+.sub "!PREFIX__assertion:sym<{ }>"  :subid("351_1275811487.95429") :method
+.annotate 'line', 563
+    new $P1367, "ResizablePMCArray"
+    push $P1367, "{"
+    .return ($P1367)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<?{ }>"  :subid("343_1274853038.58734") :method :outer("332_1274853038.58734")
-.annotate 'line', 550
-    .const 'Sub' $P1330 = "345_1274853038.58734" 
-    capture_lex $P1330
-    .local string rx1325_tgt
-    .local int rx1325_pos
-    .local int rx1325_off
-    .local int rx1325_eos
-    .local int rx1325_rep
-    .local pmc rx1325_cur
-    (rx1325_cur, rx1325_pos, rx1325_tgt) = self."!cursor_start"()
-    rx1325_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
-    .lex unicode:"$\x{a2}", rx1325_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1325_eos, rx1325_tgt
-    set rx1325_off, 0
-    lt rx1325_pos, 2, rx1325_start
-    sub rx1325_off, rx1325_pos, 1
-    substr rx1325_tgt, rx1325_tgt, rx1325_off
-  rx1325_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1328_done
-    goto rxscan1328_scan
-  rxscan1328_loop:
-    ($P10) = rx1325_cur."from"()
-    inc $P10
-    set rx1325_pos, $P10
-    ge rx1325_pos, rx1325_eos, rxscan1328_done
-  rxscan1328_scan:
-    set_addr $I10, rxscan1328_loop
-    rx1325_cur."!mark_push"(0, rx1325_pos, $I10)
-  rxscan1328_done:
-.annotate 'line', 568
+.sub "assertion:sym<?{ }>"  :subid("352_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+    .const 'Sub' $P1375 = "354_1275811487.95429" 
+    capture_lex $P1375
+    .local string rx1370_tgt
+    .local int rx1370_pos
+    .local int rx1370_off
+    .local int rx1370_eos
+    .local int rx1370_rep
+    .local pmc rx1370_cur
+    (rx1370_cur, rx1370_pos, rx1370_tgt) = self."!cursor_start"()
+    rx1370_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
+    .lex unicode:"$\x{a2}", rx1370_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1370_eos, rx1370_tgt
+    gt rx1370_pos, rx1370_eos, rx1370_done
+    set rx1370_off, 0
+    lt rx1370_pos, 2, rx1370_start
+    sub rx1370_off, rx1370_pos, 1
+    substr rx1370_tgt, rx1370_tgt, rx1370_off
+  rx1370_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1373_done
+    goto rxscan1373_scan
+  rxscan1373_loop:
+    ($P10) = rx1370_cur."from"()
+    inc $P10
+    set rx1370_pos, $P10
+    ge rx1370_pos, rx1370_eos, rxscan1373_done
+  rxscan1373_scan:
+    set_addr $I10, rxscan1373_loop
+    rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
+  rxscan1373_done:
+.annotate 'line', 581
   # rx subcapture "zw"
-    set_addr $I10, rxcap_1333_fail
-    rx1325_cur."!mark_push"(0, rx1325_pos, $I10)
+    set_addr $I10, rxcap_1378_fail
+    rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx1325_pos, rx1325_eos, rx1325_fail
-    sub $I10, rx1325_pos, rx1325_off
-    substr $S10, rx1325_tgt, $I10, 1
+    ge rx1370_pos, rx1370_eos, rx1370_fail
+    sub $I10, rx1370_pos, rx1370_off
+    substr $S10, rx1370_tgt, $I10, 1
     index $I11, "?!", $S10
-    lt $I11, 0, rx1325_fail
-    inc rx1325_pos
+    lt $I11, 0, rx1370_fail
+    inc rx1370_pos
   # rx subrule "before" subtype=zerowidth negate=
-    rx1325_cur."!cursor_pos"(rx1325_pos)
-    .const 'Sub' $P1330 = "345_1274853038.58734" 
-    capture_lex $P1330
-    $P10 = rx1325_cur."before"($P1330)
-    unless $P10, rx1325_fail
-    set_addr $I10, rxcap_1333_fail
-    ($I12, $I11) = rx1325_cur."!mark_peek"($I10)
-    rx1325_cur."!cursor_pos"($I11)
-    ($P10) = rx1325_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1325_pos, "")
-    rx1325_cur."!mark_push"(0, -1, 0, $P10)
+    rx1370_cur."!cursor_pos"(rx1370_pos)
+    .const 'Sub' $P1375 = "354_1275811487.95429" 
+    capture_lex $P1375
+    $P10 = rx1370_cur."before"($P1375)
+    unless $P10, rx1370_fail
+    set_addr $I10, rxcap_1378_fail
+    ($I12, $I11) = rx1370_cur."!mark_peek"($I10)
+    rx1370_cur."!cursor_pos"($I11)
+    ($P10) = rx1370_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1370_pos, "")
+    rx1370_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("zw")
-    goto rxcap_1333_done
-  rxcap_1333_fail:
-    goto rx1325_fail
-  rxcap_1333_done:
+    goto rxcap_1378_done
+  rxcap_1378_fail:
+    goto rx1370_fail
+  rxcap_1378_done:
   # rx subrule "codeblock" subtype=capture negate=
-    rx1325_cur."!cursor_pos"(rx1325_pos)
-    $P10 = rx1325_cur."codeblock"()
-    unless $P10, rx1325_fail
-    rx1325_cur."!mark_push"(0, -1, 0, $P10)
+    rx1370_cur."!cursor_pos"(rx1370_pos)
+    $P10 = rx1370_cur."codeblock"()
+    unless $P10, rx1370_fail
+    rx1370_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1325_pos = $P10."pos"()
-.annotate 'line', 567
+    rx1370_pos = $P10."pos"()
+.annotate 'line', 580
   # rx pass
-    rx1325_cur."!cursor_pass"(rx1325_pos, "assertion:sym<?{ }>")
-    rx1325_cur."!cursor_debug"("PASS  ", "assertion:sym<?{ }>", " at pos=", rx1325_pos)
-    .return (rx1325_cur)
-  rx1325_fail:
-.annotate 'line', 550
-    (rx1325_rep, rx1325_pos, $I10, $P10) = rx1325_cur."!mark_fail"(0)
-    lt rx1325_pos, -1, rx1325_done
-    eq rx1325_pos, -1, rx1325_fail
-    jump $I10
-  rx1325_done:
-    rx1325_cur."!cursor_fail"()
-    rx1325_cur."!cursor_debug"("FAIL  ", "assertion:sym<?{ }>")
-    .return (rx1325_cur)
+    rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym<?{ }>")
+    rx1370_cur."!cursor_debug"("PASS  ", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
+    .return (rx1370_cur)
+  rx1370_fail:
+.annotate 'line', 563
+    (rx1370_rep, rx1370_pos, $I10, $P10) = rx1370_cur."!mark_fail"(0)
+    lt rx1370_pos, -1, rx1370_done
+    eq rx1370_pos, -1, rx1370_fail
+    jump $I10
+  rx1370_done:
+    rx1370_cur."!cursor_fail"()
+    rx1370_cur."!cursor_debug"("FAIL  ", "assertion:sym<?{ }>")
+    .return (rx1370_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<?{ }>"  :subid("344_1274853038.58734") :method
-.annotate 'line', 550
-    new $P1327, "ResizablePMCArray"
-    push $P1327, "!"
-    push $P1327, "?"
-    .return ($P1327)
+.sub "!PREFIX__assertion:sym<?{ }>"  :subid("353_1275811487.95429") :method
+.annotate 'line', 563
+    new $P1372, "ResizablePMCArray"
+    push $P1372, "!"
+    push $P1372, "?"
+    .return ($P1372)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1329"  :anon :subid("345_1274853038.58734") :method :outer("343_1274853038.58734")
-.annotate 'line', 568
-    .local string rx1331_tgt
-    .local int rx1331_pos
-    .local int rx1331_off
-    .local int rx1331_eos
-    .local int rx1331_rep
-    .local pmc rx1331_cur
-    (rx1331_cur, rx1331_pos, rx1331_tgt) = self."!cursor_start"()
-    rx1331_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1331_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1331_eos, rx1331_tgt
-    set rx1331_off, 0
-    lt rx1331_pos, 2, rx1331_start
-    sub rx1331_off, rx1331_pos, 1
-    substr rx1331_tgt, rx1331_tgt, rx1331_off
-  rx1331_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1332_done
-    goto rxscan1332_scan
-  rxscan1332_loop:
-    ($P10) = rx1331_cur."from"()
-    inc $P10
-    set rx1331_pos, $P10
-    ge rx1331_pos, rx1331_eos, rxscan1332_done
-  rxscan1332_scan:
-    set_addr $I10, rxscan1332_loop
-    rx1331_cur."!mark_push"(0, rx1331_pos, $I10)
-  rxscan1332_done:
+.sub "_block1374"  :anon :subid("354_1275811487.95429") :method :outer("352_1275811487.95429")
+.annotate 'line', 581
+    .local string rx1376_tgt
+    .local int rx1376_pos
+    .local int rx1376_off
+    .local int rx1376_eos
+    .local int rx1376_rep
+    .local pmc rx1376_cur
+    (rx1376_cur, rx1376_pos, rx1376_tgt) = self."!cursor_start"()
+    rx1376_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1376_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1376_eos, rx1376_tgt
+    gt rx1376_pos, rx1376_eos, rx1376_done
+    set rx1376_off, 0
+    lt rx1376_pos, 2, rx1376_start
+    sub rx1376_off, rx1376_pos, 1
+    substr rx1376_tgt, rx1376_tgt, rx1376_off
+  rx1376_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1377_done
+    goto rxscan1377_scan
+  rxscan1377_loop:
+    ($P10) = rx1376_cur."from"()
+    inc $P10
+    set rx1376_pos, $P10
+    ge rx1376_pos, rx1376_eos, rxscan1377_done
+  rxscan1377_scan:
+    set_addr $I10, rxscan1377_loop
+    rx1376_cur."!mark_push"(0, rx1376_pos, $I10)
+  rxscan1377_done:
   # rx literal  "{"
-    add $I11, rx1331_pos, 1
-    gt $I11, rx1331_eos, rx1331_fail
-    sub $I11, rx1331_pos, rx1331_off
-    substr $S10, rx1331_tgt, $I11, 1
-    ne $S10, "{", rx1331_fail
-    add rx1331_pos, 1
-  # rx pass
-    rx1331_cur."!cursor_pass"(rx1331_pos, "")
-    rx1331_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1331_pos)
-    .return (rx1331_cur)
-  rx1331_fail:
-    (rx1331_rep, rx1331_pos, $I10, $P10) = rx1331_cur."!mark_fail"(0)
-    lt rx1331_pos, -1, rx1331_done
-    eq rx1331_pos, -1, rx1331_fail
-    jump $I10
-  rx1331_done:
-    rx1331_cur."!cursor_fail"()
-    rx1331_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1331_cur)
+    add $I11, rx1376_pos, 1
+    gt $I11, rx1376_eos, rx1376_fail
+    sub $I11, rx1376_pos, rx1376_off
+    substr $S10, rx1376_tgt, $I11, 1
+    ne $S10, "{", rx1376_fail
+    add rx1376_pos, 1
+  # rx pass
+    rx1376_cur."!cursor_pass"(rx1376_pos, "")
+    rx1376_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1376_pos)
+    .return (rx1376_cur)
+  rx1376_fail:
+    (rx1376_rep, rx1376_pos, $I10, $P10) = rx1376_cur."!mark_fail"(0)
+    lt rx1376_pos, -1, rx1376_done
+    eq rx1376_pos, -1, rx1376_fail
+    jump $I10
+  rx1376_done:
+    rx1376_cur."!cursor_fail"()
+    rx1376_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1376_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>"  :subid("346_1274853038.58734") :method :outer("332_1274853038.58734")
-.annotate 'line', 550
-    .const 'Sub' $P1343 = "348_1274853038.58734" 
-    capture_lex $P1343
-    .local string rx1335_tgt
-    .local int rx1335_pos
-    .local int rx1335_off
-    .local int rx1335_eos
-    .local int rx1335_rep
-    .local pmc rx1335_cur
-    (rx1335_cur, rx1335_pos, rx1335_tgt) = self."!cursor_start"()
-    rx1335_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx1335_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
-    .lex unicode:"$\x{a2}", rx1335_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1335_eos, rx1335_tgt
-    set rx1335_off, 0
-    lt rx1335_pos, 2, rx1335_start
-    sub rx1335_off, rx1335_pos, 1
-    substr rx1335_tgt, rx1335_tgt, rx1335_off
-  rx1335_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1338_done
-    goto rxscan1338_scan
-  rxscan1338_loop:
-    ($P10) = rx1335_cur."from"()
-    inc $P10
-    set rx1335_pos, $P10
-    ge rx1335_pos, rx1335_eos, rxscan1338_done
-  rxscan1338_scan:
-    set_addr $I10, rxscan1338_loop
-    rx1335_cur."!mark_push"(0, rx1335_pos, $I10)
-  rxscan1338_done:
-.annotate 'line', 572
+.sub "assertion:sym<name>"  :subid("355_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+    .const 'Sub' $P1388 = "357_1275811487.95429" 
+    capture_lex $P1388
+    .local string rx1380_tgt
+    .local int rx1380_pos
+    .local int rx1380_off
+    .local int rx1380_eos
+    .local int rx1380_rep
+    .local pmc rx1380_cur
+    (rx1380_cur, rx1380_pos, rx1380_tgt) = self."!cursor_start"()
+    rx1380_cur."!cursor_debug"("START ", "assertion:sym<name>")
+    rx1380_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    .lex unicode:"$\x{a2}", rx1380_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1380_eos, rx1380_tgt
+    gt rx1380_pos, rx1380_eos, rx1380_done
+    set rx1380_off, 0
+    lt rx1380_pos, 2, rx1380_start
+    sub rx1380_off, rx1380_pos, 1
+    substr rx1380_tgt, rx1380_tgt, rx1380_off
+  rx1380_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1383_done
+    goto rxscan1383_scan
+  rxscan1383_loop:
+    ($P10) = rx1380_cur."from"()
+    inc $P10
+    set rx1380_pos, $P10
+    ge rx1380_pos, rx1380_eos, rxscan1383_done
+  rxscan1383_scan:
+    set_addr $I10, rxscan1383_loop
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+  rxscan1383_done:
+.annotate 'line', 585
   # rx subcapture "longname"
-    set_addr $I10, rxcap_1339_fail
-    rx1335_cur."!mark_push"(0, rx1335_pos, $I10)
+    set_addr $I10, rxcap_1384_fail
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
   # rx charclass_q w r 1..-1
-    sub $I10, rx1335_pos, rx1335_off
-    find_not_cclass $I11, 8192, rx1335_tgt, $I10, rx1335_eos
+    sub $I10, rx1380_pos, rx1380_off
+    find_not_cclass $I11, 8192, rx1380_tgt, $I10, rx1380_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx1335_fail
-    add rx1335_pos, rx1335_off, $I11
-    set_addr $I10, rxcap_1339_fail
-    ($I12, $I11) = rx1335_cur."!mark_peek"($I10)
-    rx1335_cur."!cursor_pos"($I11)
-    ($P10) = rx1335_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1335_pos, "")
-    rx1335_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx1380_fail
+    add rx1380_pos, rx1380_off, $I11
+    set_addr $I10, rxcap_1384_fail
+    ($I12, $I11) = rx1380_cur."!mark_peek"($I10)
+    rx1380_cur."!cursor_pos"($I11)
+    ($P10) = rx1380_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1380_pos, "")
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("longname")
-    goto rxcap_1339_done
-  rxcap_1339_fail:
-    goto rx1335_fail
-  rxcap_1339_done:
-.annotate 'line', 579
-  # rx rxquantr1340 ** 0..1
-    set_addr $I1346, rxquantr1340_done
-    rx1335_cur."!mark_push"(0, rx1335_pos, $I1346)
-  rxquantr1340_loop:
-  alt1341_0:
-.annotate 'line', 573
-    set_addr $I10, alt1341_1
-    rx1335_cur."!mark_push"(0, rx1335_pos, $I10)
-.annotate 'line', 574
+    goto rxcap_1384_done
+  rxcap_1384_fail:
+    goto rx1380_fail
+  rxcap_1384_done:
+.annotate 'line', 592
+  # rx rxquantr1385 ** 0..1
+    set_addr $I1391, rxquantr1385_done
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I1391)
+  rxquantr1385_loop:
+  alt1386_0:
+.annotate 'line', 586
+    set_addr $I10, alt1386_1
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 587
   # rx subrule "before" subtype=zerowidth negate=
-    rx1335_cur."!cursor_pos"(rx1335_pos)
-    .const 'Sub' $P1343 = "348_1274853038.58734" 
-    capture_lex $P1343
-    $P10 = rx1335_cur."before"($P1343)
-    unless $P10, rx1335_fail
-    goto alt1341_end
-  alt1341_1:
-    set_addr $I10, alt1341_2
-    rx1335_cur."!mark_push"(0, rx1335_pos, $I10)
-.annotate 'line', 575
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    .const 'Sub' $P1388 = "357_1275811487.95429" 
+    capture_lex $P1388
+    $P10 = rx1380_cur."before"($P1388)
+    unless $P10, rx1380_fail
+    goto alt1386_end
+  alt1386_1:
+    set_addr $I10, alt1386_2
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 588
   # rx literal  "="
-    add $I11, rx1335_pos, 1
-    gt $I11, rx1335_eos, rx1335_fail
-    sub $I11, rx1335_pos, rx1335_off
-    substr $S10, rx1335_tgt, $I11, 1
-    ne $S10, "=", rx1335_fail
-    add rx1335_pos, 1
+    add $I11, rx1380_pos, 1
+    gt $I11, rx1380_eos, rx1380_fail
+    sub $I11, rx1380_pos, rx1380_off
+    substr $S10, rx1380_tgt, $I11, 1
+    ne $S10, "=", rx1380_fail
+    add rx1380_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx1335_cur."!cursor_pos"(rx1335_pos)
-    $P10 = rx1335_cur."assertion"()
-    unless $P10, rx1335_fail
-    rx1335_cur."!mark_push"(0, -1, 0, $P10)
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."assertion"()
+    unless $P10, rx1380_fail
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx1335_pos = $P10."pos"()
-    goto alt1341_end
-  alt1341_2:
-    set_addr $I10, alt1341_3
-    rx1335_cur."!mark_push"(0, rx1335_pos, $I10)
-.annotate 'line', 576
+    rx1380_pos = $P10."pos"()
+    goto alt1386_end
+  alt1386_2:
+    set_addr $I10, alt1386_3
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 589
   # rx literal  ":"
-    add $I11, rx1335_pos, 1
-    gt $I11, rx1335_eos, rx1335_fail
-    sub $I11, rx1335_pos, rx1335_off
-    substr $S10, rx1335_tgt, $I11, 1
-    ne $S10, ":", rx1335_fail
-    add rx1335_pos, 1
+    add $I11, rx1380_pos, 1
+    gt $I11, rx1380_eos, rx1380_fail
+    sub $I11, rx1380_pos, rx1380_off
+    substr $S10, rx1380_tgt, $I11, 1
+    ne $S10, ":", rx1380_fail
+    add rx1380_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx1335_cur."!cursor_pos"(rx1335_pos)
-    $P10 = rx1335_cur."arglist"()
-    unless $P10, rx1335_fail
-    rx1335_cur."!mark_push"(0, -1, 0, $P10)
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."arglist"()
+    unless $P10, rx1380_fail
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx1335_pos = $P10."pos"()
-    goto alt1341_end
-  alt1341_3:
-    set_addr $I10, alt1341_4
-    rx1335_cur."!mark_push"(0, rx1335_pos, $I10)
-.annotate 'line', 577
+    rx1380_pos = $P10."pos"()
+    goto alt1386_end
+  alt1386_3:
+    set_addr $I10, alt1386_4
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 590
   # rx literal  "("
-    add $I11, rx1335_pos, 1
-    gt $I11, rx1335_eos, rx1335_fail
-    sub $I11, rx1335_pos, rx1335_off
-    substr $S10, rx1335_tgt, $I11, 1
-    ne $S10, "(", rx1335_fail
-    add rx1335_pos, 1
+    add $I11, rx1380_pos, 1
+    gt $I11, rx1380_eos, rx1380_fail
+    sub $I11, rx1380_pos, rx1380_off
+    substr $S10, rx1380_tgt, $I11, 1
+    ne $S10, "(", rx1380_fail
+    add rx1380_pos, 1
   # rx subrule "LANG" subtype=capture negate=
-    rx1335_cur."!cursor_pos"(rx1335_pos)
-    $P10 = rx1335_cur."LANG"("MAIN", "arglist")
-    unless $P10, rx1335_fail
-    rx1335_cur."!mark_push"(0, -1, 0, $P10)
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."LANG"("MAIN", "arglist")
+    unless $P10, rx1380_fail
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx1335_pos = $P10."pos"()
+    rx1380_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx1335_pos, 1
-    gt $I11, rx1335_eos, rx1335_fail
-    sub $I11, rx1335_pos, rx1335_off
-    substr $S10, rx1335_tgt, $I11, 1
-    ne $S10, ")", rx1335_fail
-    add rx1335_pos, 1
-    goto alt1341_end
-  alt1341_4:
-.annotate 'line', 578
+    add $I11, rx1380_pos, 1
+    gt $I11, rx1380_eos, rx1380_fail
+    sub $I11, rx1380_pos, rx1380_off
+    substr $S10, rx1380_tgt, $I11, 1
+    ne $S10, ")", rx1380_fail
+    add rx1380_pos, 1
+    goto alt1386_end
+  alt1386_4:
+.annotate 'line', 591
   # rx subrule "normspace" subtype=method negate=
-    rx1335_cur."!cursor_pos"(rx1335_pos)
-    $P10 = rx1335_cur."normspace"()
-    unless $P10, rx1335_fail
-    rx1335_pos = $P10."pos"()
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."normspace"()
+    unless $P10, rx1380_fail
+    rx1380_pos = $P10."pos"()
   # rx subrule "nibbler" subtype=capture negate=
-    rx1335_cur."!cursor_pos"(rx1335_pos)
-    $P10 = rx1335_cur."nibbler"()
-    unless $P10, rx1335_fail
-    rx1335_cur."!mark_push"(0, -1, 0, $P10)
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."nibbler"()
+    unless $P10, rx1380_fail
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx1335_pos = $P10."pos"()
-  alt1341_end:
-.annotate 'line', 579
-    (rx1335_rep) = rx1335_cur."!mark_commit"($I1346)
-  rxquantr1340_done:
-.annotate 'line', 571
-  # rx pass
-    rx1335_cur."!cursor_pass"(rx1335_pos, "assertion:sym<name>")
-    rx1335_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx1335_pos)
-    .return (rx1335_cur)
-  rx1335_fail:
-.annotate 'line', 550
-    (rx1335_rep, rx1335_pos, $I10, $P10) = rx1335_cur."!mark_fail"(0)
-    lt rx1335_pos, -1, rx1335_done
-    eq rx1335_pos, -1, rx1335_fail
-    jump $I10
-  rx1335_done:
-    rx1335_cur."!cursor_fail"()
-    rx1335_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
-    .return (rx1335_cur)
+    rx1380_pos = $P10."pos"()
+  alt1386_end:
+.annotate 'line', 592
+    (rx1380_rep) = rx1380_cur."!mark_commit"($I1391)
+  rxquantr1385_done:
+.annotate 'line', 584
+  # rx pass
+    rx1380_cur."!cursor_pass"(rx1380_pos, "assertion:sym<name>")
+    rx1380_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx1380_pos)
+    .return (rx1380_cur)
+  rx1380_fail:
+.annotate 'line', 563
+    (rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0)
+    lt rx1380_pos, -1, rx1380_done
+    eq rx1380_pos, -1, rx1380_fail
+    jump $I10
+  rx1380_done:
+    rx1380_cur."!cursor_fail"()
+    rx1380_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+    .return (rx1380_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("347_1274853038.58734") :method
-.annotate 'line', 550
-    new $P1337, "ResizablePMCArray"
-    push $P1337, ""
-    .return ($P1337)
+.sub "!PREFIX__assertion:sym<name>"  :subid("356_1275811487.95429") :method
+.annotate 'line', 563
+    new $P1382, "ResizablePMCArray"
+    push $P1382, ""
+    .return ($P1382)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1342"  :anon :subid("348_1274853038.58734") :method :outer("346_1274853038.58734")
-.annotate 'line', 574
-    .local string rx1344_tgt
-    .local int rx1344_pos
-    .local int rx1344_off
-    .local int rx1344_eos
-    .local int rx1344_rep
-    .local pmc rx1344_cur
-    (rx1344_cur, rx1344_pos, rx1344_tgt) = self."!cursor_start"()
-    rx1344_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1344_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1344_eos, rx1344_tgt
-    set rx1344_off, 0
-    lt rx1344_pos, 2, rx1344_start
-    sub rx1344_off, rx1344_pos, 1
-    substr rx1344_tgt, rx1344_tgt, rx1344_off
-  rx1344_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1345_done
-    goto rxscan1345_scan
-  rxscan1345_loop:
-    ($P10) = rx1344_cur."from"()
-    inc $P10
-    set rx1344_pos, $P10
-    ge rx1344_pos, rx1344_eos, rxscan1345_done
-  rxscan1345_scan:
-    set_addr $I10, rxscan1345_loop
-    rx1344_cur."!mark_push"(0, rx1344_pos, $I10)
-  rxscan1345_done:
+.sub "_block1387"  :anon :subid("357_1275811487.95429") :method :outer("355_1275811487.95429")
+.annotate 'line', 587
+    .local string rx1389_tgt
+    .local int rx1389_pos
+    .local int rx1389_off
+    .local int rx1389_eos
+    .local int rx1389_rep
+    .local pmc rx1389_cur
+    (rx1389_cur, rx1389_pos, rx1389_tgt) = self."!cursor_start"()
+    rx1389_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1389_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1389_eos, rx1389_tgt
+    gt rx1389_pos, rx1389_eos, rx1389_done
+    set rx1389_off, 0
+    lt rx1389_pos, 2, rx1389_start
+    sub rx1389_off, rx1389_pos, 1
+    substr rx1389_tgt, rx1389_tgt, rx1389_off
+  rx1389_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1390_done
+    goto rxscan1390_scan
+  rxscan1390_loop:
+    ($P10) = rx1389_cur."from"()
+    inc $P10
+    set rx1389_pos, $P10
+    ge rx1389_pos, rx1389_eos, rxscan1390_done
+  rxscan1390_scan:
+    set_addr $I10, rxscan1390_loop
+    rx1389_cur."!mark_push"(0, rx1389_pos, $I10)
+  rxscan1390_done:
   # rx literal  ">"
-    add $I11, rx1344_pos, 1
-    gt $I11, rx1344_eos, rx1344_fail
-    sub $I11, rx1344_pos, rx1344_off
-    substr $S10, rx1344_tgt, $I11, 1
-    ne $S10, ">", rx1344_fail
-    add rx1344_pos, 1
-  # rx pass
-    rx1344_cur."!cursor_pass"(rx1344_pos, "")
-    rx1344_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1344_pos)
-    .return (rx1344_cur)
-  rx1344_fail:
-    (rx1344_rep, rx1344_pos, $I10, $P10) = rx1344_cur."!mark_fail"(0)
-    lt rx1344_pos, -1, rx1344_done
-    eq rx1344_pos, -1, rx1344_fail
-    jump $I10
-  rx1344_done:
-    rx1344_cur."!cursor_fail"()
-    rx1344_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1344_cur)
+    add $I11, rx1389_pos, 1
+    gt $I11, rx1389_eos, rx1389_fail
+    sub $I11, rx1389_pos, rx1389_off
+    substr $S10, rx1389_tgt, $I11, 1
+    ne $S10, ">", rx1389_fail
+    add rx1389_pos, 1
+  # rx pass
+    rx1389_cur."!cursor_pass"(rx1389_pos, "")
+    rx1389_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1389_pos)
+    .return (rx1389_cur)
+  rx1389_fail:
+    (rx1389_rep, rx1389_pos, $I10, $P10) = rx1389_cur."!mark_fail"(0)
+    lt rx1389_pos, -1, rx1389_done
+    eq rx1389_pos, -1, rx1389_fail
+    jump $I10
+  rx1389_done:
+    rx1389_cur."!cursor_fail"()
+    rx1389_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1389_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<var>"  :subid("349_1274853038.58734") :method :outer("332_1274853038.58734")
-.annotate 'line', 550
-    .local string rx1348_tgt
-    .local int rx1348_pos
-    .local int rx1348_off
-    .local int rx1348_eos
-    .local int rx1348_rep
-    .local pmc rx1348_cur
-    (rx1348_cur, rx1348_pos, rx1348_tgt) = self."!cursor_start"()
-    rx1348_cur."!cursor_debug"("START ", "assertion:sym<var>")
-    .lex unicode:"$\x{a2}", rx1348_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1348_eos, rx1348_tgt
-    set rx1348_off, 0
-    lt rx1348_pos, 2, rx1348_start
-    sub rx1348_off, rx1348_pos, 1
-    substr rx1348_tgt, rx1348_tgt, rx1348_off
-  rx1348_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1351_done
-    goto rxscan1351_scan
-  rxscan1351_loop:
-    ($P10) = rx1348_cur."from"()
-    inc $P10
-    set rx1348_pos, $P10
-    ge rx1348_pos, rx1348_eos, rxscan1351_done
-  rxscan1351_scan:
-    set_addr $I10, rxscan1351_loop
-    rx1348_cur."!mark_push"(0, rx1348_pos, $I10)
-  rxscan1351_done:
-.annotate 'line', 583
+.sub "assertion:sym<var>"  :subid("358_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+    .local string rx1393_tgt
+    .local int rx1393_pos
+    .local int rx1393_off
+    .local int rx1393_eos
+    .local int rx1393_rep
+    .local pmc rx1393_cur
+    (rx1393_cur, rx1393_pos, rx1393_tgt) = self."!cursor_start"()
+    rx1393_cur."!cursor_debug"("START ", "assertion:sym<var>")
+    .lex unicode:"$\x{a2}", rx1393_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1393_eos, rx1393_tgt
+    gt rx1393_pos, rx1393_eos, rx1393_done
+    set rx1393_off, 0
+    lt rx1393_pos, 2, rx1393_start
+    sub rx1393_off, rx1393_pos, 1
+    substr rx1393_tgt, rx1393_tgt, rx1393_off
+  rx1393_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1396_done
+    goto rxscan1396_scan
+  rxscan1396_loop:
+    ($P10) = rx1393_cur."from"()
+    inc $P10
+    set rx1393_pos, $P10
+    ge rx1393_pos, rx1393_eos, rxscan1396_done
+  rxscan1396_scan:
+    set_addr $I10, rxscan1396_loop
+    rx1393_cur."!mark_push"(0, rx1393_pos, $I10)
+  rxscan1396_done:
+.annotate 'line', 596
   # rx enumcharlist negate=0 zerowidth
-    ge rx1348_pos, rx1348_eos, rx1348_fail
-    sub $I10, rx1348_pos, rx1348_off
-    substr $S10, rx1348_tgt, $I10, 1
+    ge rx1393_pos, rx1393_eos, rx1393_fail
+    sub $I10, rx1393_pos, rx1393_off
+    substr $S10, rx1393_tgt, $I10, 1
     index $I11, "$@", $S10
-    lt $I11, 0, rx1348_fail
+    lt $I11, 0, rx1393_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1348_cur."!cursor_pos"(rx1348_pos)
-    $P10 = rx1348_cur."LANG"("MAIN", "variable")
-    unless $P10, rx1348_fail
-    rx1348_cur."!mark_push"(0, -1, 0, $P10)
+    rx1393_cur."!cursor_pos"(rx1393_pos)
+    $P10 = rx1393_cur."LANG"("MAIN", "variable")
+    unless $P10, rx1393_fail
+    rx1393_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("var")
-    rx1348_pos = $P10."pos"()
-.annotate 'line', 582
+    rx1393_pos = $P10."pos"()
+.annotate 'line', 595
   # rx pass
-    rx1348_cur."!cursor_pass"(rx1348_pos, "assertion:sym<var>")
-    rx1348_cur."!cursor_debug"("PASS  ", "assertion:sym<var>", " at pos=", rx1348_pos)
-    .return (rx1348_cur)
-  rx1348_fail:
-.annotate 'line', 550
-    (rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0)
-    lt rx1348_pos, -1, rx1348_done
-    eq rx1348_pos, -1, rx1348_fail
-    jump $I10
-  rx1348_done:
-    rx1348_cur."!cursor_fail"()
-    rx1348_cur."!cursor_debug"("FAIL  ", "assertion:sym<var>")
-    .return (rx1348_cur)
+    rx1393_cur."!cursor_pass"(rx1393_pos, "assertion:sym<var>")
+    rx1393_cur."!cursor_debug"("PASS  ", "assertion:sym<var>", " at pos=", rx1393_pos)
+    .return (rx1393_cur)
+  rx1393_fail:
+.annotate 'line', 563
+    (rx1393_rep, rx1393_pos, $I10, $P10) = rx1393_cur."!mark_fail"(0)
+    lt rx1393_pos, -1, rx1393_done
+    eq rx1393_pos, -1, rx1393_fail
+    jump $I10
+  rx1393_done:
+    rx1393_cur."!cursor_fail"()
+    rx1393_cur."!cursor_debug"("FAIL  ", "assertion:sym<var>")
+    .return (rx1393_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<var>"  :subid("350_1274853038.58734") :method
-.annotate 'line', 550
-    new $P1350, "ResizablePMCArray"
-    push $P1350, "$"
-    push $P1350, "@"
-    .return ($P1350)
+.sub "!PREFIX__assertion:sym<var>"  :subid("359_1275811487.95429") :method
+.annotate 'line', 563
+    new $P1395, "ResizablePMCArray"
+    push $P1395, "$"
+    push $P1395, "@"
+    .return ($P1395)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "codeblock"  :subid("351_1274853038.58734") :method :outer("332_1274853038.58734")
-.annotate 'line', 550
-    .local string rx1353_tgt
-    .local int rx1353_pos
-    .local int rx1353_off
-    .local int rx1353_eos
-    .local int rx1353_rep
-    .local pmc rx1353_cur
-    (rx1353_cur, rx1353_pos, rx1353_tgt) = self."!cursor_start"()
-    rx1353_cur."!cursor_debug"("START ", "codeblock")
-    .lex unicode:"$\x{a2}", rx1353_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1353_eos, rx1353_tgt
-    set rx1353_off, 0
-    lt rx1353_pos, 2, rx1353_start
-    sub rx1353_off, rx1353_pos, 1
-    substr rx1353_tgt, rx1353_tgt, rx1353_off
-  rx1353_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1357_done
-    goto rxscan1357_scan
-  rxscan1357_loop:
-    ($P10) = rx1353_cur."from"()
-    inc $P10
-    set rx1353_pos, $P10
-    ge rx1353_pos, rx1353_eos, rxscan1357_done
-  rxscan1357_scan:
-    set_addr $I10, rxscan1357_loop
-    rx1353_cur."!mark_push"(0, rx1353_pos, $I10)
-  rxscan1357_done:
-.annotate 'line', 587
+.sub "codeblock"  :subid("360_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+    .local string rx1398_tgt
+    .local int rx1398_pos
+    .local int rx1398_off
+    .local int rx1398_eos
+    .local int rx1398_rep
+    .local pmc rx1398_cur
+    (rx1398_cur, rx1398_pos, rx1398_tgt) = self."!cursor_start"()
+    rx1398_cur."!cursor_debug"("START ", "codeblock")
+    .lex unicode:"$\x{a2}", rx1398_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1398_eos, rx1398_tgt
+    gt rx1398_pos, rx1398_eos, rx1398_done
+    set rx1398_off, 0
+    lt rx1398_pos, 2, rx1398_start
+    sub rx1398_off, rx1398_pos, 1
+    substr rx1398_tgt, rx1398_tgt, rx1398_off
+  rx1398_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1402_done
+    goto rxscan1402_scan
+  rxscan1402_loop:
+    ($P10) = rx1398_cur."from"()
+    inc $P10
+    set rx1398_pos, $P10
+    ge rx1398_pos, rx1398_eos, rxscan1402_done
+  rxscan1402_scan:
+    set_addr $I10, rxscan1402_loop
+    rx1398_cur."!mark_push"(0, rx1398_pos, $I10)
+  rxscan1402_done:
+.annotate 'line', 600
   # rx subrule "LANG" subtype=capture negate=
-    rx1353_cur."!cursor_pos"(rx1353_pos)
-    $P10 = rx1353_cur."LANG"("MAIN", "pblock")
-    unless $P10, rx1353_fail
-    rx1353_cur."!mark_push"(0, -1, 0, $P10)
+    rx1398_cur."!cursor_pos"(rx1398_pos)
+    $P10 = rx1398_cur."LANG"("MAIN", "pblock")
+    unless $P10, rx1398_fail
+    rx1398_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx1353_pos = $P10."pos"()
-.annotate 'line', 586
+    rx1398_pos = $P10."pos"()
+.annotate 'line', 599
   # rx pass
-    rx1353_cur."!cursor_pass"(rx1353_pos, "codeblock")
-    rx1353_cur."!cursor_debug"("PASS  ", "codeblock", " at pos=", rx1353_pos)
-    .return (rx1353_cur)
-  rx1353_fail:
-.annotate 'line', 550
-    (rx1353_rep, rx1353_pos, $I10, $P10) = rx1353_cur."!mark_fail"(0)
-    lt rx1353_pos, -1, rx1353_done
-    eq rx1353_pos, -1, rx1353_fail
-    jump $I10
-  rx1353_done:
-    rx1353_cur."!cursor_fail"()
-    rx1353_cur."!cursor_debug"("FAIL  ", "codeblock")
-    .return (rx1353_cur)
+    rx1398_cur."!cursor_pass"(rx1398_pos, "codeblock")
+    rx1398_cur."!cursor_debug"("PASS  ", "codeblock", " at pos=", rx1398_pos)
+    .return (rx1398_cur)
+  rx1398_fail:
+.annotate 'line', 563
+    (rx1398_rep, rx1398_pos, $I10, $P10) = rx1398_cur."!mark_fail"(0)
+    lt rx1398_pos, -1, rx1398_done
+    eq rx1398_pos, -1, rx1398_fail
+    jump $I10
+  rx1398_done:
+    rx1398_cur."!cursor_fail"()
+    rx1398_cur."!cursor_debug"("FAIL  ", "codeblock")
+    .return (rx1398_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock"  :subid("352_1274853038.58734") :method
-.annotate 'line', 550
-    $P1355 = self."!PREFIX__!subrule"("block", "")
-    new $P1356, "ResizablePMCArray"
-    push $P1356, $P1355
-    .return ($P1356)
+.sub "!PREFIX__codeblock"  :subid("361_1275811487.95429") :method
+.annotate 'line', 563
+    $P1400 = self."!PREFIX__!subrule"("LANG", "")
+    new $P1401, "ResizablePMCArray"
+    push $P1401, $P1400
+    .return ($P1401)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block1359" :load :anon :subid("353_1274853038.58734")
+.sub "_block1404" :load :anon :subid("362_1275811487.95429")
 .annotate 'line', 4
-    .const 'Sub' $P1361 = "11_1274853038.58734" 
-    $P1362 = $P1361()
-    .return ($P1362)
+    .const 'Sub' $P1406 = "11_1275811487.95429" 
+    $P1407 = $P1406()
+    .return ($P1407)
 .end
 
 
 .namespace []
-.sub "_block1380" :load :anon :subid("354_1274853038.58734")
+.sub "_block1425" :load :anon :subid("363_1275811487.95429")
 .annotate 'line', 1
-    .const 'Sub' $P1382 = "10_1274853038.58734" 
-    $P1383 = $P1382()
-    .return ($P1383)
+    .const 'Sub' $P1427 = "10_1275811487.95429" 
+    $P1428 = $P1427()
+    .return ($P1428)
 .end
 
 ### .include 'gen/nqp-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274853047.92727")
+.sub "_block11"  :anon :subid("10_1275811497.55064")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
@@ -16898,263 +17447,267 @@
 .annotate 'line', 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
-    $P2323 = $P14()
+    $P2424 = $P14()
 .annotate 'line', 1
-    .return ($P2323)
-    .const 'Sub' $P2325 = "137_1274853047.92727" 
-    .return ($P2325)
+    .return ($P2424)
+    .const 'Sub' $P2426 = "143_1275811497.55064" 
+    .return ($P2426)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post138") :outer("10_1274853047.92727")
+.sub "" :load :init :subid("post144") :outer("10_1275811497.55064")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274853047.92727" 
+    .const 'Sub' $P12 = "10_1275811497.55064" 
     .local pmc block
     set block, $P12
-    $P2328 = get_root_global ["parrot"], "P6metaclass"
-    $P2328."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
+    $P2429 = get_root_global ["parrot"], "P6metaclass"
+    $P2429."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block13"  :subid("11_1274853047.92727") :outer("10_1274853047.92727")
+.sub "_block13"  :subid("11_1275811497.55064") :outer("10_1275811497.55064")
 .annotate 'line', 3
-    .const 'Sub' $P2319 = "136_1274853047.92727" 
-    capture_lex $P2319
-    get_hll_global $P2203, ["NQP";"RegexActions"], "_block2202" 
-    capture_lex $P2203
-    .const 'Sub' $P2192 = "126_1274853047.92727" 
-    capture_lex $P2192
-    .const 'Sub' $P2185 = "125_1274853047.92727" 
-    capture_lex $P2185
-    .const 'Sub' $P2178 = "124_1274853047.92727" 
-    capture_lex $P2178
-    .const 'Sub' $P2171 = "123_1274853047.92727" 
-    capture_lex $P2171
-    .const 'Sub' $P2158 = "122_1274853047.92727" 
-    capture_lex $P2158
-    .const 'Sub' $P2148 = "121_1274853047.92727" 
-    capture_lex $P2148
-    .const 'Sub' $P2138 = "120_1274853047.92727" 
-    capture_lex $P2138
-    .const 'Sub' $P2128 = "119_1274853047.92727" 
-    capture_lex $P2128
-    .const 'Sub' $P2121 = "118_1274853047.92727" 
-    capture_lex $P2121
-    .const 'Sub' $P2107 = "117_1274853047.92727" 
-    capture_lex $P2107
-    .const 'Sub' $P2097 = "116_1274853047.92727" 
-    capture_lex $P2097
-    .const 'Sub' $P2060 = "115_1274853047.92727" 
-    capture_lex $P2060
-    .const 'Sub' $P2046 = "114_1274853047.92727" 
-    capture_lex $P2046
-    .const 'Sub' $P2036 = "113_1274853047.92727" 
-    capture_lex $P2036
-    .const 'Sub' $P2026 = "112_1274853047.92727" 
-    capture_lex $P2026
-    .const 'Sub' $P2016 = "111_1274853047.92727" 
-    capture_lex $P2016
-    .const 'Sub' $P2006 = "110_1274853047.92727" 
-    capture_lex $P2006
-    .const 'Sub' $P1996 = "109_1274853047.92727" 
-    capture_lex $P1996
-    .const 'Sub' $P1968 = "108_1274853047.92727" 
-    capture_lex $P1968
-    .const 'Sub' $P1951 = "107_1274853047.92727" 
-    capture_lex $P1951
-    .const 'Sub' $P1941 = "106_1274853047.92727" 
-    capture_lex $P1941
-    .const 'Sub' $P1928 = "105_1274853047.92727" 
-    capture_lex $P1928
-    .const 'Sub' $P1915 = "104_1274853047.92727" 
-    capture_lex $P1915
-    .const 'Sub' $P1902 = "103_1274853047.92727" 
-    capture_lex $P1902
-    .const 'Sub' $P1892 = "102_1274853047.92727" 
+    .const 'Sub' $P2420 = "142_1275811497.55064" 
+    capture_lex $P2420
+    get_hll_global $P2303, ["NQP";"RegexActions"], "_block2302" 
+    capture_lex $P2303
+    .const 'Sub' $P2292 = "132_1275811497.55064" 
+    capture_lex $P2292
+    .const 'Sub' $P2285 = "131_1275811497.55064" 
+    capture_lex $P2285
+    .const 'Sub' $P2278 = "130_1275811497.55064" 
+    capture_lex $P2278
+    .const 'Sub' $P2271 = "129_1275811497.55064" 
+    capture_lex $P2271
+    .const 'Sub' $P2258 = "128_1275811497.55064" 
+    capture_lex $P2258
+    .const 'Sub' $P2248 = "127_1275811497.55064" 
+    capture_lex $P2248
+    .const 'Sub' $P2238 = "126_1275811497.55064" 
+    capture_lex $P2238
+    .const 'Sub' $P2228 = "125_1275811497.55064" 
+    capture_lex $P2228
+    .const 'Sub' $P2221 = "124_1275811497.55064" 
+    capture_lex $P2221
+    .const 'Sub' $P2207 = "123_1275811497.55064" 
+    capture_lex $P2207
+    .const 'Sub' $P2197 = "122_1275811497.55064" 
+    capture_lex $P2197
+    .const 'Sub' $P2160 = "121_1275811497.55064" 
+    capture_lex $P2160
+    .const 'Sub' $P2146 = "120_1275811497.55064" 
+    capture_lex $P2146
+    .const 'Sub' $P2136 = "119_1275811497.55064" 
+    capture_lex $P2136
+    .const 'Sub' $P2126 = "118_1275811497.55064" 
+    capture_lex $P2126
+    .const 'Sub' $P2116 = "117_1275811497.55064" 
+    capture_lex $P2116
+    .const 'Sub' $P2106 = "116_1275811497.55064" 
+    capture_lex $P2106
+    .const 'Sub' $P2096 = "115_1275811497.55064" 
+    capture_lex $P2096
+    .const 'Sub' $P2068 = "114_1275811497.55064" 
+    capture_lex $P2068
+    .const 'Sub' $P2051 = "113_1275811497.55064" 
+    capture_lex $P2051
+    .const 'Sub' $P2041 = "112_1275811497.55064" 
+    capture_lex $P2041
+    .const 'Sub' $P2028 = "111_1275811497.55064" 
+    capture_lex $P2028
+    .const 'Sub' $P2015 = "110_1275811497.55064" 
+    capture_lex $P2015
+    .const 'Sub' $P2002 = "109_1275811497.55064" 
+    capture_lex $P2002
+    .const 'Sub' $P1992 = "108_1275811497.55064" 
+    capture_lex $P1992
+    .const 'Sub' $P1963 = "107_1275811497.55064" 
+    capture_lex $P1963
+    .const 'Sub' $P1939 = "106_1275811497.55064" 
+    capture_lex $P1939
+    .const 'Sub' $P1929 = "105_1275811497.55064" 
+    capture_lex $P1929
+    .const 'Sub' $P1919 = "104_1275811497.55064" 
+    capture_lex $P1919
+    .const 'Sub' $P1892 = "103_1275811497.55064" 
     capture_lex $P1892
-    .const 'Sub' $P1863 = "101_1274853047.92727" 
-    capture_lex $P1863
-    .const 'Sub' $P1839 = "100_1274853047.92727" 
-    capture_lex $P1839
-    .const 'Sub' $P1829 = "99_1274853047.92727" 
-    capture_lex $P1829
-    .const 'Sub' $P1819 = "98_1274853047.92727" 
-    capture_lex $P1819
-    .const 'Sub' $P1792 = "97_1274853047.92727" 
-    capture_lex $P1792
-    .const 'Sub' $P1774 = "96_1274853047.92727" 
-    capture_lex $P1774
-    .const 'Sub' $P1764 = "95_1274853047.92727" 
-    capture_lex $P1764
-    .const 'Sub' $P1660 = "92_1274853047.92727" 
-    capture_lex $P1660
-    .const 'Sub' $P1650 = "91_1274853047.92727" 
-    capture_lex $P1650
-    .const 'Sub' $P1621 = "90_1274853047.92727" 
-    capture_lex $P1621
-    .const 'Sub' $P1579 = "89_1274853047.92727" 
-    capture_lex $P1579
-    .const 'Sub' $P1563 = "88_1274853047.92727" 
-    capture_lex $P1563
-    .const 'Sub' $P1554 = "87_1274853047.92727" 
-    capture_lex $P1554
-    .const 'Sub' $P1522 = "86_1274853047.92727" 
-    capture_lex $P1522
-    .const 'Sub' $P1423 = "83_1274853047.92727" 
-    capture_lex $P1423
-    .const 'Sub' $P1406 = "82_1274853047.92727" 
-    capture_lex $P1406
-    .const 'Sub' $P1386 = "81_1274853047.92727" 
-    capture_lex $P1386
-    .const 'Sub' $P1302 = "80_1274853047.92727" 
-    capture_lex $P1302
-    .const 'Sub' $P1278 = "78_1274853047.92727" 
-    capture_lex $P1278
-    .const 'Sub' $P1244 = "76_1274853047.92727" 
-    capture_lex $P1244
-    .const 'Sub' $P1194 = "74_1274853047.92727" 
-    capture_lex $P1194
-    .const 'Sub' $P1184 = "73_1274853047.92727" 
-    capture_lex $P1184
-    .const 'Sub' $P1174 = "72_1274853047.92727" 
-    capture_lex $P1174
-    .const 'Sub' $P1103 = "70_1274853047.92727" 
-    capture_lex $P1103
-    .const 'Sub' $P1086 = "69_1274853047.92727" 
-    capture_lex $P1086
-    .const 'Sub' $P1076 = "68_1274853047.92727" 
-    capture_lex $P1076
-    .const 'Sub' $P1066 = "67_1274853047.92727" 
-    capture_lex $P1066
-    .const 'Sub' $P1056 = "66_1274853047.92727" 
-    capture_lex $P1056
-    .const 'Sub' $P1046 = "65_1274853047.92727" 
-    capture_lex $P1046
-    .const 'Sub' $P1022 = "64_1274853047.92727" 
-    capture_lex $P1022
-    .const 'Sub' $P969 = "63_1274853047.92727" 
-    capture_lex $P969
-    .const 'Sub' $P959 = "62_1274853047.92727" 
-    capture_lex $P959
-    .const 'Sub' $P870 = "60_1274853047.92727" 
-    capture_lex $P870
-    .const 'Sub' $P844 = "59_1274853047.92727" 
-    capture_lex $P844
-    .const 'Sub' $P828 = "58_1274853047.92727" 
-    capture_lex $P828
-    .const 'Sub' $P818 = "57_1274853047.92727" 
-    capture_lex $P818
-    .const 'Sub' $P808 = "56_1274853047.92727" 
-    capture_lex $P808
-    .const 'Sub' $P798 = "55_1274853047.92727" 
-    capture_lex $P798
-    .const 'Sub' $P788 = "54_1274853047.92727" 
-    capture_lex $P788
-    .const 'Sub' $P778 = "53_1274853047.92727" 
-    capture_lex $P778
-    .const 'Sub' $P768 = "52_1274853047.92727" 
-    capture_lex $P768
-    .const 'Sub' $P758 = "51_1274853047.92727" 
-    capture_lex $P758
-    .const 'Sub' $P748 = "50_1274853047.92727" 
-    capture_lex $P748
-    .const 'Sub' $P738 = "49_1274853047.92727" 
-    capture_lex $P738
-    .const 'Sub' $P728 = "48_1274853047.92727" 
-    capture_lex $P728
-    .const 'Sub' $P718 = "47_1274853047.92727" 
-    capture_lex $P718
-    .const 'Sub' $P708 = "46_1274853047.92727" 
-    capture_lex $P708
-    .const 'Sub' $P698 = "45_1274853047.92727" 
-    capture_lex $P698
-    .const 'Sub' $P680 = "44_1274853047.92727" 
-    capture_lex $P680
-    .const 'Sub' $P645 = "43_1274853047.92727" 
-    capture_lex $P645
-    .const 'Sub' $P629 = "42_1274853047.92727" 
-    capture_lex $P629
-    .const 'Sub' $P608 = "41_1274853047.92727" 
-    capture_lex $P608
-    .const 'Sub' $P588 = "40_1274853047.92727" 
-    capture_lex $P588
-    .const 'Sub' $P575 = "39_1274853047.92727" 
-    capture_lex $P575
-    .const 'Sub' $P549 = "38_1274853047.92727" 
-    capture_lex $P549
-    .const 'Sub' $P513 = "37_1274853047.92727" 
-    capture_lex $P513
-    .const 'Sub' $P496 = "36_1274853047.92727" 
-    capture_lex $P496
-    .const 'Sub' $P482 = "35_1274853047.92727" 
-    capture_lex $P482
-    .const 'Sub' $P429 = "33_1274853047.92727" 
-    capture_lex $P429
-    .const 'Sub' $P418 = "32_1274853047.92727" 
-    capture_lex $P418
-    .const 'Sub' $P405 = "31_1274853047.92727" 
-    capture_lex $P405
-    .const 'Sub' $P385 = "30_1274853047.92727" 
-    capture_lex $P385
-    .const 'Sub' $P375 = "29_1274853047.92727" 
-    capture_lex $P375
-    .const 'Sub' $P365 = "28_1274853047.92727" 
-    capture_lex $P365
-    .const 'Sub' $P349 = "27_1274853047.92727" 
-    capture_lex $P349
-    .const 'Sub' $P289 = "25_1274853047.92727" 
-    capture_lex $P289
-    .const 'Sub' $P246 = "23_1274853047.92727" 
-    capture_lex $P246
-    .const 'Sub' $P214 = "22_1274853047.92727" 
-    capture_lex $P214
-    .const 'Sub' $P181 = "21_1274853047.92727" 
-    capture_lex $P181
-    .const 'Sub' $P171 = "20_1274853047.92727" 
-    capture_lex $P171
-    .const 'Sub' $P151 = "19_1274853047.92727" 
+    .const 'Sub' $P1874 = "102_1275811497.55064" 
+    capture_lex $P1874
+    .const 'Sub' $P1864 = "101_1275811497.55064" 
+    capture_lex $P1864
+    .const 'Sub' $P1760 = "98_1275811497.55064" 
+    capture_lex $P1760
+    .const 'Sub' $P1750 = "97_1275811497.55064" 
+    capture_lex $P1750
+    .const 'Sub' $P1721 = "96_1275811497.55064" 
+    capture_lex $P1721
+    .const 'Sub' $P1679 = "95_1275811497.55064" 
+    capture_lex $P1679
+    .const 'Sub' $P1663 = "94_1275811497.55064" 
+    capture_lex $P1663
+    .const 'Sub' $P1654 = "93_1275811497.55064" 
+    capture_lex $P1654
+    .const 'Sub' $P1622 = "92_1275811497.55064" 
+    capture_lex $P1622
+    .const 'Sub' $P1523 = "89_1275811497.55064" 
+    capture_lex $P1523
+    .const 'Sub' $P1506 = "88_1275811497.55064" 
+    capture_lex $P1506
+    .const 'Sub' $P1486 = "87_1275811497.55064" 
+    capture_lex $P1486
+    .const 'Sub' $P1374 = "84_1275811497.55064" 
+    capture_lex $P1374
+    .const 'Sub' $P1317 = "80_1275811497.55064" 
+    capture_lex $P1317
+    .const 'Sub' $P1277 = "78_1275811497.55064" 
+    capture_lex $P1277
+    .const 'Sub' $P1227 = "76_1275811497.55064" 
+    capture_lex $P1227
+    .const 'Sub' $P1217 = "75_1275811497.55064" 
+    capture_lex $P1217
+    .const 'Sub' $P1207 = "74_1275811497.55064" 
+    capture_lex $P1207
+    .const 'Sub' $P1136 = "72_1275811497.55064" 
+    capture_lex $P1136
+    .const 'Sub' $P1126 = "71_1275811497.55064" 
+    capture_lex $P1126
+    .const 'Sub' $P1109 = "70_1275811497.55064" 
+    capture_lex $P1109
+    .const 'Sub' $P1092 = "69_1275811497.55064" 
+    capture_lex $P1092
+    .const 'Sub' $P1075 = "68_1275811497.55064" 
+    capture_lex $P1075
+    .const 'Sub' $P1065 = "67_1275811497.55064" 
+    capture_lex $P1065
+    .const 'Sub' $P1055 = "66_1275811497.55064" 
+    capture_lex $P1055
+    .const 'Sub' $P1045 = "65_1275811497.55064" 
+    capture_lex $P1045
+    .const 'Sub' $P1021 = "64_1275811497.55064" 
+    capture_lex $P1021
+    .const 'Sub' $P968 = "63_1275811497.55064" 
+    capture_lex $P968
+    .const 'Sub' $P958 = "62_1275811497.55064" 
+    capture_lex $P958
+    .const 'Sub' $P869 = "60_1275811497.55064" 
+    capture_lex $P869
+    .const 'Sub' $P843 = "59_1275811497.55064" 
+    capture_lex $P843
+    .const 'Sub' $P827 = "58_1275811497.55064" 
+    capture_lex $P827
+    .const 'Sub' $P817 = "57_1275811497.55064" 
+    capture_lex $P817
+    .const 'Sub' $P807 = "56_1275811497.55064" 
+    capture_lex $P807
+    .const 'Sub' $P797 = "55_1275811497.55064" 
+    capture_lex $P797
+    .const 'Sub' $P787 = "54_1275811497.55064" 
+    capture_lex $P787
+    .const 'Sub' $P777 = "53_1275811497.55064" 
+    capture_lex $P777
+    .const 'Sub' $P767 = "52_1275811497.55064" 
+    capture_lex $P767
+    .const 'Sub' $P757 = "51_1275811497.55064" 
+    capture_lex $P757
+    .const 'Sub' $P747 = "50_1275811497.55064" 
+    capture_lex $P747
+    .const 'Sub' $P737 = "49_1275811497.55064" 
+    capture_lex $P737
+    .const 'Sub' $P727 = "48_1275811497.55064" 
+    capture_lex $P727
+    .const 'Sub' $P717 = "47_1275811497.55064" 
+    capture_lex $P717
+    .const 'Sub' $P707 = "46_1275811497.55064" 
+    capture_lex $P707
+    .const 'Sub' $P697 = "45_1275811497.55064" 
+    capture_lex $P697
+    .const 'Sub' $P679 = "44_1275811497.55064" 
+    capture_lex $P679
+    .const 'Sub' $P644 = "43_1275811497.55064" 
+    capture_lex $P644
+    .const 'Sub' $P628 = "42_1275811497.55064" 
+    capture_lex $P628
+    .const 'Sub' $P607 = "41_1275811497.55064" 
+    capture_lex $P607
+    .const 'Sub' $P587 = "40_1275811497.55064" 
+    capture_lex $P587
+    .const 'Sub' $P574 = "39_1275811497.55064" 
+    capture_lex $P574
+    .const 'Sub' $P548 = "38_1275811497.55064" 
+    capture_lex $P548
+    .const 'Sub' $P512 = "37_1275811497.55064" 
+    capture_lex $P512
+    .const 'Sub' $P495 = "36_1275811497.55064" 
+    capture_lex $P495
+    .const 'Sub' $P481 = "35_1275811497.55064" 
+    capture_lex $P481
+    .const 'Sub' $P428 = "33_1275811497.55064" 
+    capture_lex $P428
+    .const 'Sub' $P417 = "32_1275811497.55064" 
+    capture_lex $P417
+    .const 'Sub' $P404 = "31_1275811497.55064" 
+    capture_lex $P404
+    .const 'Sub' $P384 = "30_1275811497.55064" 
+    capture_lex $P384
+    .const 'Sub' $P374 = "29_1275811497.55064" 
+    capture_lex $P374
+    .const 'Sub' $P364 = "28_1275811497.55064" 
+    capture_lex $P364
+    .const 'Sub' $P348 = "27_1275811497.55064" 
+    capture_lex $P348
+    .const 'Sub' $P288 = "25_1275811497.55064" 
+    capture_lex $P288
+    .const 'Sub' $P245 = "23_1275811497.55064" 
+    capture_lex $P245
+    .const 'Sub' $P213 = "22_1275811497.55064" 
+    capture_lex $P213
+    .const 'Sub' $P180 = "21_1275811497.55064" 
+    capture_lex $P180
+    .const 'Sub' $P170 = "20_1275811497.55064" 
+    capture_lex $P170
+    .const 'Sub' $P151 = "19_1275811497.55064" 
     capture_lex $P151
-    .const 'Sub' $P100 = "18_1274853047.92727" 
+    .const 'Sub' $P100 = "18_1275811497.55064" 
     capture_lex $P100
-    .const 'Sub' $P84 = "17_1274853047.92727" 
+    .const 'Sub' $P84 = "17_1275811497.55064" 
     capture_lex $P84
-    .const 'Sub' $P63 = "16_1274853047.92727" 
+    .const 'Sub' $P63 = "16_1275811497.55064" 
     capture_lex $P63
-    .const 'Sub' $P27 = "13_1274853047.92727" 
+    .const 'Sub' $P27 = "13_1275811497.55064" 
     capture_lex $P27
-    .const 'Sub' $P16 = "12_1274853047.92727" 
+    .const 'Sub' $P16 = "12_1275811497.55064" 
     capture_lex $P16
     get_global $P15, "@BLOCK"
-    unless_null $P15, vivify_141
+    unless_null $P15, vivify_147
     $P15 = root_new ['parrot';'ResizablePMCArray']
     set_global "@BLOCK", $P15
-  vivify_141:
+  vivify_147:
 .annotate 'line', 9
-    .const 'Sub' $P16 = "12_1274853047.92727" 
+    .const 'Sub' $P16 = "12_1275811497.55064" 
     newclosure $P26, $P16
     .lex "xblock_immediate", $P26
 .annotate 'line', 14
-    .const 'Sub' $P27 = "13_1274853047.92727" 
+    .const 'Sub' $P27 = "13_1275811497.55064" 
     newclosure $P62, $P27
     .lex "block_immediate", $P62
 .annotate 'line', 24
-    .const 'Sub' $P63 = "16_1274853047.92727" 
+    .const 'Sub' $P63 = "16_1275811497.55064" 
     newclosure $P83, $P63
     .lex "vivitype", $P83
 .annotate 'line', 43
-    .const 'Sub' $P84 = "17_1274853047.92727" 
+    .const 'Sub' $P84 = "17_1275811497.55064" 
     newclosure $P99, $P84
     .lex "colonpair_str", $P99
 .annotate 'line', 213
-    .const 'Sub' $P100 = "18_1274853047.92727" 
+    .const 'Sub' $P100 = "18_1275811497.55064" 
     newclosure $P150, $P100
     .lex "push_block_handler", $P150
-.annotate 'line', 797
-    .const 'Sub' $P151 = "19_1274853047.92727" 
-    newclosure $P166, $P151
-    .lex "control", $P166
+.annotate 'line', 822
+    .const 'Sub' $P151 = "19_1275811497.55064" 
+    newclosure $P165, $P151
+    .lex "control", $P165
 .annotate 'line', 3
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -17162,82 +17715,83 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    get_global $P167, "@BLOCK"
+    get_global $P166, "@BLOCK"
 .annotate 'line', 5
-    find_lex $P168, "xblock_immediate"
-    find_lex $P169, "block_immediate"
-    find_lex $P170, "vivitype"
+    find_lex $P167, "xblock_immediate"
+    find_lex $P168, "block_immediate"
+    find_lex $P169, "vivitype"
 .annotate 'line', 35
-    find_lex $P213, "colonpair_str"
+    find_lex $P212, "colonpair_str"
 .annotate 'line', 206
-    find_lex $P628, "push_block_handler"
-.annotate 'line', 788
-    find_lex $P2170, "control"
-.annotate 'line', 819
-    get_hll_global $P2203, ["NQP";"RegexActions"], "_block2202" 
-    capture_lex $P2203
-    $P2313 = $P2203()
+    find_lex $P627, "push_block_handler"
+.annotate 'line', 813
+    find_lex $P2270, "control"
+.annotate 'line', 840
+    get_hll_global $P2303, ["NQP";"RegexActions"], "_block2302" 
+    capture_lex $P2303
+    $P2414 = $P2303()
 .annotate 'line', 3
-    .return ($P2313)
-    .const 'Sub' $P2315 = "135_1274853047.92727" 
-    .return ($P2315)
+    .return ($P2414)
+    .const 'Sub' $P2416 = "141_1275811497.55064" 
+    .return ($P2416)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post139") :outer("11_1274853047.92727")
+.sub "" :load :init :subid("post145") :outer("11_1275811497.55064")
 .annotate 'line', 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 5
-    .const 'Sub' $P2319 = "136_1274853047.92727" 
-    capture_lex $P2319
-    $P2319()
-    $P2322 = get_root_global ["parrot"], "P6metaclass"
-    $P2322."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
+    .const 'Sub' $P2420 = "142_1275811497.55064" 
+    capture_lex $P2420
+    $P2420()
+    $P2423 = get_root_global ["parrot"], "P6metaclass"
+    $P2423."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2318"  :anon :subid("136_1274853047.92727") :outer("11_1274853047.92727")
+.sub "_block2419"  :anon :subid("142_1275811497.55064") :outer("11_1275811497.55064")
 .annotate 'line', 6
-    get_global $P2320, "@BLOCK"
-    unless_null $P2320, vivify_140
-    $P2320 = root_new ['parrot';'ResizablePMCArray']
-    set_global "@BLOCK", $P2320
-  vivify_140:
- $P2321 = new ['ResizablePMCArray'] 
-    set_global "@BLOCK", $P2321
+    get_global $P2421, "@BLOCK"
+    unless_null $P2421, vivify_146
+    $P2421 = root_new ['parrot';'ResizablePMCArray']
+    set_global "@BLOCK", $P2421
+  vivify_146:
+ $P2422 = new ['ResizablePMCArray'] 
+    set_global "@BLOCK", $P2422
 .annotate 'line', 5
-    .return ($P2321)
+    .return ($P2422)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "xblock_immediate"  :subid("12_1274853047.92727") :outer("11_1274853047.92727")
+.include "except_types.pasm"
+.sub "xblock_immediate"  :subid("12_1275811497.55064") :outer("11_1275811497.55064")
     .param pmc param_19
 .annotate 'line', 9
     new $P18, 'ExceptionHandler'
     set_addr $P18, control_17
-    $P18."handle_types"(57)
+    $P18."handle_types"(.CONTROL_RETURN)
     push_eh $P18
     .lex "$xblock", param_19
 .annotate 'line', 10
     find_lex $P20, "$xblock"
-    unless_null $P20, vivify_142
+    unless_null $P20, vivify_148
     $P20 = root_new ['parrot';'ResizablePMCArray']
-  vivify_142:
+  vivify_148:
     set $P21, $P20[1]
-    unless_null $P21, vivify_143
+    unless_null $P21, vivify_149
     new $P21, "Undef"
-  vivify_143:
+  vivify_149:
     $P22 = "block_immediate"($P21)
     find_lex $P23, "$xblock"
-    unless_null $P23, vivify_144
+    unless_null $P23, vivify_150
     $P23 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$xblock", $P23
-  vivify_144:
+  vivify_150:
     set $P23[1], $P22
     find_lex $P24, "$xblock"
 .annotate 'line', 9
@@ -17251,14 +17805,15 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "block_immediate"  :subid("13_1274853047.92727") :outer("11_1274853047.92727")
+.include "except_types.pasm"
+.sub "block_immediate"  :subid("13_1275811497.55064") :outer("11_1275811497.55064")
     .param pmc param_30
 .annotate 'line', 14
-    .const 'Sub' $P40 = "14_1274853047.92727" 
+    .const 'Sub' $P40 = "14_1275811497.55064" 
     capture_lex $P40
     new $P29, 'ExceptionHandler'
     set_addr $P29, control_28
-    $P29."handle_types"(57)
+    $P29."handle_types"(.CONTROL_RETURN)
     push_eh $P29
     .lex "$block", param_30
 .annotate 'line', 15
@@ -17276,7 +17831,7 @@
     set $P33, $P38
   unless_34_end:
     if $P33, unless_32_end
-    .const 'Sub' $P40 = "14_1274853047.92727" 
+    .const 'Sub' $P40 = "14_1275811497.55064" 
     capture_lex $P40
     $P40()
   unless_32_end:
@@ -17292,9 +17847,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block39"  :anon :subid("14_1274853047.92727") :outer("13_1274853047.92727")
+.include "except_types.pasm"
+.sub "_block39"  :anon :subid("14_1275811497.55064") :outer("13_1275811497.55064")
 .annotate 'line', 16
-    .const 'Sub' $P51 = "15_1274853047.92727" 
+    .const 'Sub' $P51 = "15_1275811497.55064" 
     capture_lex $P51
 .annotate 'line', 17
     new $P41, "Undef"
@@ -17307,17 +17863,17 @@
     find_lex $P46, "$block"
     $P47 = $P46."list"()
     defined $I48, $P47
-    unless $I48, for_undef_145
+    unless $I48, for_undef_151
     iter $P45, $P47
     new $P57, 'ExceptionHandler'
     set_addr $P57, loop56_handler
-    $P57."handle_types"(64, 66, 65)
+    $P57."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P57
   loop56_test:
     unless $P45, loop56_done
     shift $P49, $P45
   loop56_redo:
-    .const 'Sub' $P51 = "15_1274853047.92727" 
+    .const 'Sub' $P51 = "15_1275811497.55064" 
     capture_lex $P51
     $P51($P49)
   loop56_next:
@@ -17326,11 +17882,11 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P58, exception, 'type'
-    eq $P58, 64, loop56_next
-    eq $P58, 66, loop56_redo
+    eq $P58, .CONTROL_LOOP_NEXT, loop56_next
+    eq $P58, .CONTROL_LOOP_REDO, loop56_redo
   loop56_done:
     pop_eh 
-  for_undef_145:
+  for_undef_151:
 .annotate 'line', 19
     find_lex $P59, "$stmts"
     store_lex "$block", $P59
@@ -17340,7 +17896,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block50"  :anon :subid("15_1274853047.92727") :outer("14_1274853047.92727")
+.sub "_block50"  :anon :subid("15_1275811497.55064") :outer("14_1275811497.55064")
     .param pmc param_52
 .annotate 'line', 18
     .lex "$_", param_52
@@ -17352,12 +17908,13 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "vivitype"  :subid("16_1274853047.92727") :outer("11_1274853047.92727")
+.include "except_types.pasm"
+.sub "vivitype"  :subid("16_1275811497.55064") :outer("11_1275811497.55064")
     .param pmc param_66
 .annotate 'line', 24
     new $P65, 'ExceptionHandler'
     set_addr $P65, control_64
-    $P65."handle_types"(57)
+    $P65."handle_types"(.CONTROL_RETURN)
     push_eh $P65
     .lex "$sigil", param_66
 .annotate 'line', 25
@@ -17400,12 +17957,13 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "colonpair_str"  :subid("17_1274853047.92727") :outer("11_1274853047.92727")
+.include "except_types.pasm"
+.sub "colonpair_str"  :subid("17_1275811497.55064") :outer("11_1275811497.55064")
     .param pmc param_87
 .annotate 'line', 43
     new $P86, 'ExceptionHandler'
     set_addr $P86, control_85
-    $P86."handle_types"(57)
+    $P86."handle_types"(.CONTROL_RETURN)
     push_eh $P86
     .lex "$ast", param_87
 .annotate 'line', 44
@@ -17438,36 +17996,37 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "push_block_handler"  :subid("18_1274853047.92727") :outer("11_1274853047.92727")
+.include "except_types.pasm"
+.sub "push_block_handler"  :subid("18_1275811497.55064") :outer("11_1275811497.55064")
     .param pmc param_103
     .param pmc param_104
 .annotate 'line', 213
     new $P102, 'ExceptionHandler'
     set_addr $P102, control_101
-    $P102."handle_types"(57)
+    $P102."handle_types"(.CONTROL_RETURN)
     push_eh $P102
     .lex "$/", param_103
     .lex "$block", param_104
 .annotate 'line', 214
     get_global $P106, "@BLOCK"
-    unless_null $P106, vivify_146
+    unless_null $P106, vivify_152
     $P106 = root_new ['parrot';'ResizablePMCArray']
-  vivify_146:
+  vivify_152:
     set $P107, $P106[0]
-    unless_null $P107, vivify_147
+    unless_null $P107, vivify_153
     new $P107, "Undef"
-  vivify_147:
+  vivify_153:
     $P108 = $P107."handlers"()
     if $P108, unless_105_end
 .annotate 'line', 215
     get_global $P109, "@BLOCK"
-    unless_null $P109, vivify_148
+    unless_null $P109, vivify_154
     $P109 = root_new ['parrot';'ResizablePMCArray']
-  vivify_148:
+  vivify_154:
     set $P110, $P109[0]
-    unless_null $P110, vivify_149
+    unless_null $P110, vivify_155
     new $P110, "Undef"
-  vivify_149:
+  vivify_155:
     new $P111, "ResizablePMCArray"
     $P110."handlers"($P111)
   unless_105_end:
@@ -17508,13 +18067,13 @@
     $P128."blocktype"("declaration")
 .annotate 'line', 230
     get_global $P129, "@BLOCK"
-    unless_null $P129, vivify_150
+    unless_null $P129, vivify_156
     $P129 = root_new ['parrot';'ResizablePMCArray']
-  vivify_150:
+  vivify_156:
     set $P130, $P129[0]
-    unless_null $P130, vivify_151
+    unless_null $P130, vivify_157
     new $P130, "Undef"
-  vivify_151:
+  vivify_157:
     $P131 = $P130."handlers"()
 .annotate 'line', 231
     get_hll_global $P132, ["PAST"], "Control"
@@ -17555,4299 +18114,4379 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "control"  :subid("19_1274853047.92727") :outer("11_1274853047.92727")
+.include "except_types.pasm"
+.sub "control"  :subid("19_1275811497.55064") :outer("11_1275811497.55064")
     .param pmc param_154
     .param pmc param_155
-.annotate 'line', 797
+.annotate 'line', 822
     new $P153, 'ExceptionHandler'
     set_addr $P153, control_152
-    $P153."handle_types"(57)
+    $P153."handle_types"(.CONTROL_RETURN)
     push_eh $P153
     .lex "$/", param_154
-    .lex "$id", param_155
-.annotate 'line', 798
+    .lex "$type", param_155
+.annotate 'line', 823
     find_lex $P156, "$/"
     get_hll_global $P157, ["PAST"], "Op"
     find_lex $P158, "$/"
-.annotate 'line', 804
-    new $P159, "String"
-    assign $P159, "    %r[\"type\"] = "
-    find_lex $P160, "$id"
-    concat $P161, $P159, $P160
-    new $P162, "ResizablePMCArray"
-    push $P162, ".include \"except_types.pasm\""
-    push $P162, "    %r = new \"Exception\""
-    push $P162, $P161
-    push $P162, "    throw %r"
-    $P163 = $P157."new"($P158 :named("node"), "inline" :named("pasttype"), $P162 :named("inline"))
-.annotate 'line', 798
-    $P164 = $P156."!make"($P163)
-.annotate 'line', 797
-    .return ($P164)
+.annotate 'line', 827
+    get_hll_global $P159, ["PAST"], "Val"
+    find_lex $P160, "$type"
+    $P161 = $P159."new"($P160 :named("value"), "!except_types" :named("returns"))
+    $P162 = $P157."new"(0, $P161, $P158 :named("node"), "die__vii" :named("pirop"))
+.annotate 'line', 823
+    $P163 = $P156."!make"($P162)
+.annotate 'line', 822
+    .return ($P163)
   control_152:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P165, exception, "payload"
-    .return ($P165)
+    getattribute $P164, exception, "payload"
+    .return ($P164)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "TOP"  :subid("20_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_174
+.include "except_types.pasm"
+.sub "TOP"  :subid("20_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_173
 .annotate 'line', 33
-    new $P173, 'ExceptionHandler'
-    set_addr $P173, control_172
-    $P173."handle_types"(57)
-    push_eh $P173
+    new $P172, 'ExceptionHandler'
+    set_addr $P172, control_171
+    $P172."handle_types"(.CONTROL_RETURN)
+    push_eh $P172
     .lex "self", self
-    .lex "$/", param_174
+    .lex "$/", param_173
+    find_lex $P174, "$/"
     find_lex $P175, "$/"
-    find_lex $P176, "$/"
-    unless_null $P176, vivify_152
-    $P176 = root_new ['parrot';'Hash']
-  vivify_152:
-    set $P177, $P176["comp_unit"]
-    unless_null $P177, vivify_153
-    new $P177, "Undef"
-  vivify_153:
-    $P178 = $P177."ast"()
-    $P179 = $P175."!make"($P178)
-    .return ($P179)
-  control_172:
+    unless_null $P175, vivify_158
+    $P175 = root_new ['parrot';'Hash']
+  vivify_158:
+    set $P176, $P175["comp_unit"]
+    unless_null $P176, vivify_159
+    new $P176, "Undef"
+  vivify_159:
+    $P177 = $P176."ast"()
+    $P178 = $P174."!make"($P177)
+    .return ($P178)
+  control_171:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P180, exception, "payload"
-    .return ($P180)
+    getattribute $P179, exception, "payload"
+    .return ($P179)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "deflongname"  :subid("21_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_184
+.include "except_types.pasm"
+.sub "deflongname"  :subid("21_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_183
 .annotate 'line', 35
-    new $P183, 'ExceptionHandler'
-    set_addr $P183, control_182
-    $P183."handle_types"(57)
-    push_eh $P183
+    new $P182, 'ExceptionHandler'
+    set_addr $P182, control_181
+    $P182."handle_types"(.CONTROL_RETURN)
+    push_eh $P182
     .lex "self", self
-    .lex "$/", param_184
+    .lex "$/", param_183
 .annotate 'line', 36
-    find_lex $P185, "$/"
-.annotate 'line', 37
-    find_lex $P188, "$/"
-    unless_null $P188, vivify_154
-    $P188 = root_new ['parrot';'Hash']
-  vivify_154:
-    set $P189, $P188["colonpair"]
-    unless_null $P189, vivify_155
-    new $P189, "Undef"
-  vivify_155:
-    if $P189, if_187
-.annotate 'line', 39
-    find_lex $P209, "$/"
-    set $S210, $P209
-    new $P186, 'String'
-    set $P186, $S210
+    find_lex $P184, "$/"
 .annotate 'line', 37
-    goto if_187_end
-  if_187:
-    find_lex $P190, "$/"
-    unless_null $P190, vivify_156
-    $P190 = root_new ['parrot';'Hash']
-  vivify_156:
-    set $P191, $P190["identifier"]
-    unless_null $P191, vivify_157
-    new $P191, "Undef"
-  vivify_157:
-    set $S192, $P191
-    new $P193, 'String'
-    set $P193, $S192
-    concat $P194, $P193, ":"
-    find_lex $P195, "$/"
-    unless_null $P195, vivify_158
-    $P195 = root_new ['parrot';'Hash']
-  vivify_158:
-    set $P196, $P195["colonpair"]
-    unless_null $P196, vivify_159
-    $P196 = root_new ['parrot';'ResizablePMCArray']
-  vivify_159:
-    set $P197, $P196[0]
-    unless_null $P197, vivify_160
-    new $P197, "Undef"
+    find_lex $P187, "$/"
+    unless_null $P187, vivify_160
+    $P187 = root_new ['parrot';'Hash']
   vivify_160:
-    $P198 = $P197."ast"()
-    $S199 = $P198."named"()
-    concat $P200, $P194, $S199
-    concat $P201, $P200, "<"
-.annotate 'line', 38
-    find_lex $P202, "$/"
-    unless_null $P202, vivify_161
-    $P202 = root_new ['parrot';'Hash']
+    set $P188, $P187["colonpair"]
+    unless_null $P188, vivify_161
+    new $P188, "Undef"
   vivify_161:
-    set $P203, $P202["colonpair"]
-    unless_null $P203, vivify_162
-    $P203 = root_new ['parrot';'ResizablePMCArray']
+    if $P188, if_186
+.annotate 'line', 39
+    find_lex $P208, "$/"
+    set $S209, $P208
+    new $P185, 'String'
+    set $P185, $S209
+.annotate 'line', 37
+    goto if_186_end
+  if_186:
+    find_lex $P189, "$/"
+    unless_null $P189, vivify_162
+    $P189 = root_new ['parrot';'Hash']
   vivify_162:
-    set $P204, $P203[0]
-    unless_null $P204, vivify_163
-    new $P204, "Undef"
+    set $P190, $P189["identifier"]
+    unless_null $P190, vivify_163
+    new $P190, "Undef"
   vivify_163:
-    $P205 = $P204."ast"()
-    $S206 = "colonpair_str"($P205)
-    concat $P207, $P201, $S206
-    concat $P208, $P207, ">"
-    set $P186, $P208
-  if_187_end:
+    set $S191, $P190
+    new $P192, 'String'
+    set $P192, $S191
+    concat $P193, $P192, ":"
+    find_lex $P194, "$/"
+    unless_null $P194, vivify_164
+    $P194 = root_new ['parrot';'Hash']
+  vivify_164:
+    set $P195, $P194["colonpair"]
+    unless_null $P195, vivify_165
+    $P195 = root_new ['parrot';'ResizablePMCArray']
+  vivify_165:
+    set $P196, $P195[0]
+    unless_null $P196, vivify_166
+    new $P196, "Undef"
+  vivify_166:
+    $P197 = $P196."ast"()
+    $S198 = $P197."named"()
+    concat $P199, $P193, $S198
+    concat $P200, $P199, "<"
+.annotate 'line', 38
+    find_lex $P201, "$/"
+    unless_null $P201, vivify_167
+    $P201 = root_new ['parrot';'Hash']
+  vivify_167:
+    set $P202, $P201["colonpair"]
+    unless_null $P202, vivify_168
+    $P202 = root_new ['parrot';'ResizablePMCArray']
+  vivify_168:
+    set $P203, $P202[0]
+    unless_null $P203, vivify_169
+    new $P203, "Undef"
+  vivify_169:
+    $P204 = $P203."ast"()
+    $S205 = "colonpair_str"($P204)
+    concat $P206, $P200, $S205
+    concat $P207, $P206, ">"
+    set $P185, $P207
+  if_186_end:
 .annotate 'line', 37
-    $P211 = $P185."!make"($P186)
+    $P210 = $P184."!make"($P185)
 .annotate 'line', 35
-    .return ($P211)
-  control_182:
+    .return ($P210)
+  control_181:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P212, exception, "payload"
-    .return ($P212)
+    getattribute $P211, exception, "payload"
+    .return ($P211)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "comp_unit"  :subid("22_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_217
+.include "except_types.pasm"
+.sub "comp_unit"  :subid("22_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_216
 .annotate 'line', 49
-    new $P216, 'ExceptionHandler'
-    set_addr $P216, control_215
-    $P216."handle_types"(57)
-    push_eh $P216
+    new $P215, 'ExceptionHandler'
+    set_addr $P215, control_214
+    $P215."handle_types"(.CONTROL_RETURN)
+    push_eh $P215
     .lex "self", self
-    .lex "$/", param_217
+    .lex "$/", param_216
 .annotate 'line', 50
-    new $P218, "Undef"
-    .lex "$mainline", $P218
+    new $P217, "Undef"
+    .lex "$mainline", $P217
 .annotate 'line', 51
-    new $P219, "Undef"
-    .lex "$unit", $P219
+    new $P218, "Undef"
+    .lex "$unit", $P218
 .annotate 'line', 50
-    find_lex $P220, "$/"
-    unless_null $P220, vivify_164
-    $P220 = root_new ['parrot';'Hash']
-  vivify_164:
-    set $P221, $P220["statementlist"]
-    unless_null $P221, vivify_165
-    new $P221, "Undef"
-  vivify_165:
-    $P222 = $P221."ast"()
-    store_lex "$mainline", $P222
+    find_lex $P219, "$/"
+    unless_null $P219, vivify_170
+    $P219 = root_new ['parrot';'Hash']
+  vivify_170:
+    set $P220, $P219["statementlist"]
+    unless_null $P220, vivify_171
+    new $P220, "Undef"
+  vivify_171:
+    $P221 = $P220."ast"()
+    store_lex "$mainline", $P221
 .annotate 'line', 51
-    get_global $P223, "@BLOCK"
-    $P224 = $P223."shift"()
-    store_lex "$unit", $P224
+    get_global $P222, "@BLOCK"
+    $P223 = $P222."shift"()
+    store_lex "$unit", $P223
 .annotate 'line', 55
-    find_lex $P225, "$unit"
-    find_lex $P226, "self"
-    $P227 = $P226."CTXSAVE"()
-    $P225."push"($P227)
+    find_lex $P224, "$unit"
+    find_lex $P225, "self"
+    $P226 = $P225."CTXSAVE"()
+    $P224."push"($P226)
 .annotate 'line', 60
-    find_lex $P228, "$unit"
+    find_lex $P227, "$unit"
 .annotate 'line', 61
-    get_hll_global $P229, ["PAST"], "Op"
-    find_lex $P230, "$mainline"
-    $P231 = $P229."new"($P230, "return" :named("pirop"))
-    $P228."push"($P231)
+    get_hll_global $P228, ["PAST"], "Op"
+    find_lex $P229, "$mainline"
+    $P230 = $P228."new"($P229, "return" :named("pirop"))
+    $P227."push"($P230)
 .annotate 'line', 66
-    find_lex $P232, "$unit"
+    find_lex $P231, "$unit"
 .annotate 'line', 67
-    get_hll_global $P233, ["PAST"], "Block"
+    get_hll_global $P232, ["PAST"], "Block"
 .annotate 'line', 69
-    get_hll_global $P234, ["PAST"], "Op"
-    get_hll_global $P235, ["PAST"], "Val"
-    find_lex $P236, "$unit"
-    $P237 = $P235."new"($P236 :named("value"))
-    $P238 = $P234."new"($P237, "call" :named("pasttype"))
-    $P239 = $P233."new"($P238, ":load" :named("pirflags"), 0 :named("lexical"), "" :named("namespace"))
+    get_hll_global $P233, ["PAST"], "Op"
+    get_hll_global $P234, ["PAST"], "Val"
+    find_lex $P235, "$unit"
+    $P236 = $P234."new"($P235 :named("value"))
+    $P237 = $P233."new"($P236, "call" :named("pasttype"))
+    $P238 = $P232."new"($P237, ":load" :named("pirflags"), 0 :named("lexical"), "" :named("namespace"))
 .annotate 'line', 67
-    $P232."push"($P239)
+    $P231."push"($P238)
 .annotate 'line', 72
-    find_lex $P240, "$unit"
-    find_lex $P241, "$/"
-    $P240."node"($P241)
+    find_lex $P239, "$unit"
+    find_lex $P240, "$/"
+    $P239."node"($P240)
 .annotate 'line', 73
-    find_lex $P242, "$/"
-    find_lex $P243, "$unit"
-    $P244 = $P242."!make"($P243)
+    find_lex $P241, "$/"
+    find_lex $P242, "$unit"
+    $P243 = $P241."!make"($P242)
 .annotate 'line', 49
-    .return ($P244)
-  control_215:
+    .return ($P243)
+  control_214:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P245, exception, "payload"
-    .return ($P245)
+    getattribute $P244, exception, "payload"
+    .return ($P244)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statementlist"  :subid("23_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_249
+.include "except_types.pasm"
+.sub "statementlist"  :subid("23_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_248
 .annotate 'line', 76
-    .const 'Sub' $P263 = "24_1274853047.92727" 
-    capture_lex $P263
-    new $P248, 'ExceptionHandler'
-    set_addr $P248, control_247
-    $P248."handle_types"(57)
-    push_eh $P248
+    .const 'Sub' $P262 = "24_1275811497.55064" 
+    capture_lex $P262
+    new $P247, 'ExceptionHandler'
+    set_addr $P247, control_246
+    $P247."handle_types"(.CONTROL_RETURN)
+    push_eh $P247
     .lex "self", self
-    .lex "$/", param_249
+    .lex "$/", param_248
 .annotate 'line', 77
-    new $P250, "Undef"
-    .lex "$past", $P250
-    get_hll_global $P251, ["PAST"], "Stmts"
-    find_lex $P252, "$/"
-    $P253 = $P251."new"($P252 :named("node"))
-    store_lex "$past", $P253
+    new $P249, "Undef"
+    .lex "$past", $P249
+    get_hll_global $P250, ["PAST"], "Stmts"
+    find_lex $P251, "$/"
+    $P252 = $P250."new"($P251 :named("node"))
+    store_lex "$past", $P252
 .annotate 'line', 78
-    find_lex $P255, "$/"
-    unless_null $P255, vivify_166
-    $P255 = root_new ['parrot';'Hash']
-  vivify_166:
-    set $P256, $P255["statement"]
-    unless_null $P256, vivify_167
-    new $P256, "Undef"
-  vivify_167:
-    unless $P256, if_254_end
+    find_lex $P254, "$/"
+    unless_null $P254, vivify_172
+    $P254 = root_new ['parrot';'Hash']
+  vivify_172:
+    set $P255, $P254["statement"]
+    unless_null $P255, vivify_173
+    new $P255, "Undef"
+  vivify_173:
+    unless $P255, if_253_end
 .annotate 'line', 79
-    find_lex $P258, "$/"
-    unless_null $P258, vivify_168
-    $P258 = root_new ['parrot';'Hash']
-  vivify_168:
-    set $P259, $P258["statement"]
-    unless_null $P259, vivify_169
-    new $P259, "Undef"
-  vivify_169:
-    defined $I260, $P259
-    unless $I260, for_undef_170
-    iter $P257, $P259
-    new $P283, 'ExceptionHandler'
-    set_addr $P283, loop282_handler
-    $P283."handle_types"(64, 66, 65)
-    push_eh $P283
-  loop282_test:
-    unless $P257, loop282_done
-    shift $P261, $P257
-  loop282_redo:
-    .const 'Sub' $P263 = "24_1274853047.92727" 
-    capture_lex $P263
-    $P263($P261)
-  loop282_next:
-    goto loop282_test
-  loop282_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P284, exception, 'type'
-    eq $P284, 64, loop282_next
-    eq $P284, 66, loop282_redo
-  loop282_done:
+    find_lex $P257, "$/"
+    unless_null $P257, vivify_174
+    $P257 = root_new ['parrot';'Hash']
+  vivify_174:
+    set $P258, $P257["statement"]
+    unless_null $P258, vivify_175
+    new $P258, "Undef"
+  vivify_175:
+    defined $I259, $P258
+    unless $I259, for_undef_176
+    iter $P256, $P258
+    new $P282, 'ExceptionHandler'
+    set_addr $P282, loop281_handler
+    $P282."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P282
+  loop281_test:
+    unless $P256, loop281_done
+    shift $P260, $P256
+  loop281_redo:
+    .const 'Sub' $P262 = "24_1275811497.55064" 
+    capture_lex $P262
+    $P262($P260)
+  loop281_next:
+    goto loop281_test
+  loop281_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P283, exception, 'type'
+    eq $P283, .CONTROL_LOOP_NEXT, loop281_next
+    eq $P283, .CONTROL_LOOP_REDO, loop281_redo
+  loop281_done:
     pop_eh 
-  for_undef_170:
-  if_254_end:
+  for_undef_176:
+  if_253_end:
 .annotate 'line', 86
-    find_lex $P285, "$/"
-    find_lex $P286, "$past"
-    $P287 = $P285."!make"($P286)
+    find_lex $P284, "$/"
+    find_lex $P285, "$past"
+    $P286 = $P284."!make"($P285)
 .annotate 'line', 76
-    .return ($P287)
-  control_247:
+    .return ($P286)
+  control_246:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P288, exception, "payload"
-    .return ($P288)
+    getattribute $P287, exception, "payload"
+    .return ($P287)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block262"  :anon :subid("24_1274853047.92727") :outer("23_1274853047.92727")
-    .param pmc param_265
+.sub "_block261"  :anon :subid("24_1275811497.55064") :outer("23_1275811497.55064")
+    .param pmc param_264
 .annotate 'line', 80
-    new $P264, "Undef"
-    .lex "$ast", $P264
-    .lex "$_", param_265
-    find_lex $P266, "$_"
-    $P267 = $P266."ast"()
-    store_lex "$ast", $P267
+    new $P263, "Undef"
+    .lex "$ast", $P263
+    .lex "$_", param_264
+    find_lex $P265, "$_"
+    $P266 = $P265."ast"()
+    store_lex "$ast", $P266
 .annotate 'line', 81
-    find_lex $P269, "$ast"
-    unless_null $P269, vivify_171
-    $P269 = root_new ['parrot';'Hash']
-  vivify_171:
-    set $P270, $P269["sink"]
-    unless_null $P270, vivify_172
-    new $P270, "Undef"
-  vivify_172:
-    defined $I271, $P270
-    unless $I271, if_268_end
-    find_lex $P272, "$ast"
-    unless_null $P272, vivify_173
-    $P272 = root_new ['parrot';'Hash']
-  vivify_173:
-    set $P273, $P272["sink"]
-    unless_null $P273, vivify_174
-    new $P273, "Undef"
-  vivify_174:
-    store_lex "$ast", $P273
-  if_268_end:
+    find_lex $P268, "$ast"
+    unless_null $P268, vivify_177
+    $P268 = root_new ['parrot';'Hash']
+  vivify_177:
+    set $P269, $P268["sink"]
+    unless_null $P269, vivify_178
+    new $P269, "Undef"
+  vivify_178:
+    defined $I270, $P269
+    unless $I270, if_267_end
+    find_lex $P271, "$ast"
+    unless_null $P271, vivify_179
+    $P271 = root_new ['parrot';'Hash']
+  vivify_179:
+    set $P272, $P271["sink"]
+    unless_null $P272, vivify_180
+    new $P272, "Undef"
+  vivify_180:
+    store_lex "$ast", $P272
+  if_267_end:
 .annotate 'line', 82
-    find_lex $P275, "$ast"
-    unless_null $P275, vivify_175
-    $P275 = root_new ['parrot';'Hash']
-  vivify_175:
-    set $P276, $P275["bareblock"]
-    unless_null $P276, vivify_176
-    new $P276, "Undef"
-  vivify_176:
-    unless $P276, if_274_end
-    find_lex $P277, "$ast"
-    $P278 = "block_immediate"($P277)
-    store_lex "$ast", $P278
-  if_274_end:
+    find_lex $P274, "$ast"
+    unless_null $P274, vivify_181
+    $P274 = root_new ['parrot';'Hash']
+  vivify_181:
+    set $P275, $P274["bareblock"]
+    unless_null $P275, vivify_182
+    new $P275, "Undef"
+  vivify_182:
+    unless $P275, if_273_end
+    find_lex $P276, "$ast"
+    $P277 = "block_immediate"($P276)
+    store_lex "$ast", $P277
+  if_273_end:
 .annotate 'line', 83
-    find_lex $P279, "$past"
-    find_lex $P280, "$ast"
-    $P281 = $P279."push"($P280)
+    find_lex $P278, "$past"
+    find_lex $P279, "$ast"
+    $P280 = $P278."push"($P279)
 .annotate 'line', 79
-    .return ($P281)
+    .return ($P280)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement"  :subid("25_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_292
-    .param pmc param_293 :optional
-    .param int has_param_293 :opt_flag
+.include "except_types.pasm"
+.sub "statement"  :subid("25_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_291
+    .param pmc param_292 :optional
+    .param int has_param_292 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P301 = "26_1274853047.92727" 
-    capture_lex $P301
-    new $P291, 'ExceptionHandler'
-    set_addr $P291, control_290
-    $P291."handle_types"(57)
-    push_eh $P291
-    .lex "self", self
-    .lex "$/", param_292
-    if has_param_293, optparam_177
-    new $P294, "Undef"
-    set param_293, $P294
-  optparam_177:
-    .lex "$key", param_293
+    .const 'Sub' $P300 = "26_1275811497.55064" 
+    capture_lex $P300
+    new $P290, 'ExceptionHandler'
+    set_addr $P290, control_289
+    $P290."handle_types"(.CONTROL_RETURN)
+    push_eh $P290
+    .lex "self", self
+    .lex "$/", param_291
+    if has_param_292, optparam_183
+    new $P293, "Undef"
+    set param_292, $P293
+  optparam_183:
+    .lex "$key", param_292
 .annotate 'line', 90
-    new $P295, "Undef"
-    .lex "$past", $P295
+    new $P294, "Undef"
+    .lex "$past", $P294
 .annotate 'line', 89
-    find_lex $P296, "$past"
+    find_lex $P295, "$past"
 .annotate 'line', 91
-    find_lex $P298, "$/"
-    unless_null $P298, vivify_178
-    $P298 = root_new ['parrot';'Hash']
-  vivify_178:
-    set $P299, $P298["EXPR"]
-    unless_null $P299, vivify_179
-    new $P299, "Undef"
-  vivify_179:
-    if $P299, if_297
+    find_lex $P297, "$/"
+    unless_null $P297, vivify_184
+    $P297 = root_new ['parrot';'Hash']
+  vivify_184:
+    set $P298, $P297["EXPR"]
+    unless_null $P298, vivify_185
+    new $P298, "Undef"
+  vivify_185:
+    if $P298, if_296
 .annotate 'line', 102
-    find_lex $P339, "$/"
-    unless_null $P339, vivify_180
-    $P339 = root_new ['parrot';'Hash']
-  vivify_180:
-    set $P340, $P339["statement_control"]
-    unless_null $P340, vivify_181
-    new $P340, "Undef"
-  vivify_181:
-    if $P340, if_338
+    find_lex $P338, "$/"
+    unless_null $P338, vivify_186
+    $P338 = root_new ['parrot';'Hash']
+  vivify_186:
+    set $P339, $P338["statement_control"]
+    unless_null $P339, vivify_187
+    new $P339, "Undef"
+  vivify_187:
+    if $P339, if_337
 .annotate 'line', 103
-    new $P344, "Integer"
-    assign $P344, 0
-    store_lex "$past", $P344
-    goto if_338_end
-  if_338:
-.annotate 'line', 102
-    find_lex $P341, "$/"
-    unless_null $P341, vivify_182
-    $P341 = root_new ['parrot';'Hash']
-  vivify_182:
-    set $P342, $P341["statement_control"]
-    unless_null $P342, vivify_183
-    new $P342, "Undef"
-  vivify_183:
-    $P343 = $P342."ast"()
+    new $P343, "Integer"
+    assign $P343, 0
     store_lex "$past", $P343
-  if_338_end:
-    goto if_297_end
-  if_297:
+    goto if_337_end
+  if_337:
+.annotate 'line', 102
+    find_lex $P340, "$/"
+    unless_null $P340, vivify_188
+    $P340 = root_new ['parrot';'Hash']
+  vivify_188:
+    set $P341, $P340["statement_control"]
+    unless_null $P341, vivify_189
+    new $P341, "Undef"
+  vivify_189:
+    $P342 = $P341."ast"()
+    store_lex "$past", $P342
+  if_337_end:
+    goto if_296_end
+  if_296:
 .annotate 'line', 91
-    .const 'Sub' $P301 = "26_1274853047.92727" 
-    capture_lex $P301
-    $P301()
-  if_297_end:
+    .const 'Sub' $P300 = "26_1275811497.55064" 
+    capture_lex $P300
+    $P300()
+  if_296_end:
 .annotate 'line', 104
-    find_lex $P345, "$/"
-    find_lex $P346, "$past"
-    $P347 = $P345."!make"($P346)
+    find_lex $P344, "$/"
+    find_lex $P345, "$past"
+    $P346 = $P344."!make"($P345)
 .annotate 'line', 89
-    .return ($P347)
-  control_290:
+    .return ($P346)
+  control_289:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P348, exception, "payload"
-    .return ($P348)
+    getattribute $P347, exception, "payload"
+    .return ($P347)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block300"  :anon :subid("26_1274853047.92727") :outer("25_1274853047.92727")
+.sub "_block299"  :anon :subid("26_1275811497.55064") :outer("25_1275811497.55064")
 .annotate 'line', 92
-    new $P302, "Undef"
-    .lex "$mc", $P302
+    new $P301, "Undef"
+    .lex "$mc", $P301
 .annotate 'line', 93
-    new $P303, "Undef"
-    .lex "$ml", $P303
+    new $P302, "Undef"
+    .lex "$ml", $P302
 .annotate 'line', 92
-    find_lex $P304, "$/"
-    unless_null $P304, vivify_184
-    $P304 = root_new ['parrot';'Hash']
-  vivify_184:
-    set $P305, $P304["statement_mod_cond"]
-    unless_null $P305, vivify_185
-    $P305 = root_new ['parrot';'ResizablePMCArray']
-  vivify_185:
-    set $P306, $P305[0]
-    unless_null $P306, vivify_186
-    new $P306, "Undef"
-  vivify_186:
-    store_lex "$mc", $P306
-.annotate 'line', 93
-    find_lex $P307, "$/"
-    unless_null $P307, vivify_187
-    $P307 = root_new ['parrot';'Hash']
-  vivify_187:
-    set $P308, $P307["statement_mod_loop"]
-    unless_null $P308, vivify_188
-    $P308 = root_new ['parrot';'ResizablePMCArray']
-  vivify_188:
-    set $P309, $P308[0]
-    unless_null $P309, vivify_189
-    new $P309, "Undef"
-  vivify_189:
-    store_lex "$ml", $P309
-.annotate 'line', 94
-    find_lex $P310, "$/"
-    unless_null $P310, vivify_190
-    $P310 = root_new ['parrot';'Hash']
+    find_lex $P303, "$/"
+    unless_null $P303, vivify_190
+    $P303 = root_new ['parrot';'Hash']
   vivify_190:
-    set $P311, $P310["EXPR"]
-    unless_null $P311, vivify_191
-    new $P311, "Undef"
+    set $P304, $P303["statement_mod_cond"]
+    unless_null $P304, vivify_191
+    $P304 = root_new ['parrot';'ResizablePMCArray']
   vivify_191:
-    $P312 = $P311."ast"()
-    store_lex "$past", $P312
-.annotate 'line', 95
-    find_lex $P314, "$mc"
-    unless $P314, if_313_end
-.annotate 'line', 96
-    get_hll_global $P315, ["PAST"], "Op"
-    find_lex $P316, "$mc"
-    unless_null $P316, vivify_192
-    $P316 = root_new ['parrot';'Hash']
+    set $P305, $P304[0]
+    unless_null $P305, vivify_192
+    new $P305, "Undef"
   vivify_192:
-    set $P317, $P316["cond"]
-    unless_null $P317, vivify_193
-    new $P317, "Undef"
+    store_lex "$mc", $P305
+.annotate 'line', 93
+    find_lex $P306, "$/"
+    unless_null $P306, vivify_193
+    $P306 = root_new ['parrot';'Hash']
   vivify_193:
-    $P318 = $P317."ast"()
-    find_lex $P319, "$past"
-    find_lex $P320, "$mc"
-    unless_null $P320, vivify_194
-    $P320 = root_new ['parrot';'Hash']
+    set $P307, $P306["statement_mod_loop"]
+    unless_null $P307, vivify_194
+    $P307 = root_new ['parrot';'ResizablePMCArray']
   vivify_194:
-    set $P321, $P320["sym"]
-    unless_null $P321, vivify_195
-    new $P321, "Undef"
+    set $P308, $P307[0]
+    unless_null $P308, vivify_195
+    new $P308, "Undef"
   vivify_195:
-    set $S322, $P321
-    find_lex $P323, "$/"
-    $P324 = $P315."new"($P318, $P319, $S322 :named("pasttype"), $P323 :named("node"))
-    store_lex "$past", $P324
-  if_313_end:
-.annotate 'line', 98
-    find_lex $P327, "$ml"
-    if $P327, if_326
-    set $P325, $P327
-    goto if_326_end
-  if_326:
-.annotate 'line', 99
-    get_hll_global $P328, ["PAST"], "Op"
-    find_lex $P329, "$ml"
-    unless_null $P329, vivify_196
-    $P329 = root_new ['parrot';'Hash']
+    store_lex "$ml", $P308
+.annotate 'line', 94
+    find_lex $P309, "$/"
+    unless_null $P309, vivify_196
+    $P309 = root_new ['parrot';'Hash']
   vivify_196:
-    set $P330, $P329["cond"]
-    unless_null $P330, vivify_197
-    new $P330, "Undef"
+    set $P310, $P309["EXPR"]
+    unless_null $P310, vivify_197
+    new $P310, "Undef"
   vivify_197:
-    $P331 = $P330."ast"()
-    find_lex $P332, "$past"
-    find_lex $P333, "$ml"
-    unless_null $P333, vivify_198
-    $P333 = root_new ['parrot';'Hash']
+    $P311 = $P310."ast"()
+    store_lex "$past", $P311
+.annotate 'line', 95
+    find_lex $P313, "$mc"
+    unless $P313, if_312_end
+.annotate 'line', 96
+    get_hll_global $P314, ["PAST"], "Op"
+    find_lex $P315, "$mc"
+    unless_null $P315, vivify_198
+    $P315 = root_new ['parrot';'Hash']
   vivify_198:
-    set $P334, $P333["sym"]
-    unless_null $P334, vivify_199
-    new $P334, "Undef"
+    set $P316, $P315["cond"]
+    unless_null $P316, vivify_199
+    new $P316, "Undef"
   vivify_199:
-    set $S335, $P334
-    find_lex $P336, "$/"
-    $P337 = $P328."new"($P331, $P332, $S335 :named("pasttype"), $P336 :named("node"))
-    store_lex "$past", $P337
+    $P317 = $P316."ast"()
+    find_lex $P318, "$past"
+    find_lex $P319, "$mc"
+    unless_null $P319, vivify_200
+    $P319 = root_new ['parrot';'Hash']
+  vivify_200:
+    set $P320, $P319["sym"]
+    unless_null $P320, vivify_201
+    new $P320, "Undef"
+  vivify_201:
+    set $S321, $P320
+    find_lex $P322, "$/"
+    $P323 = $P314."new"($P317, $P318, $S321 :named("pasttype"), $P322 :named("node"))
+    store_lex "$past", $P323
+  if_312_end:
+.annotate 'line', 98
+    find_lex $P326, "$ml"
+    if $P326, if_325
+    set $P324, $P326
+    goto if_325_end
+  if_325:
+.annotate 'line', 99
+    get_hll_global $P327, ["PAST"], "Op"
+    find_lex $P328, "$ml"
+    unless_null $P328, vivify_202
+    $P328 = root_new ['parrot';'Hash']
+  vivify_202:
+    set $P329, $P328["cond"]
+    unless_null $P329, vivify_203
+    new $P329, "Undef"
+  vivify_203:
+    $P330 = $P329."ast"()
+    find_lex $P331, "$past"
+    find_lex $P332, "$ml"
+    unless_null $P332, vivify_204
+    $P332 = root_new ['parrot';'Hash']
+  vivify_204:
+    set $P333, $P332["sym"]
+    unless_null $P333, vivify_205
+    new $P333, "Undef"
+  vivify_205:
+    set $S334, $P333
+    find_lex $P335, "$/"
+    $P336 = $P327."new"($P330, $P331, $S334 :named("pasttype"), $P335 :named("node"))
+    store_lex "$past", $P336
 .annotate 'line', 98
-    set $P325, $P337
-  if_326_end:
+    set $P324, $P336
+  if_325_end:
 .annotate 'line', 91
-    .return ($P325)
+    .return ($P324)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "xblock"  :subid("27_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_352
+.include "except_types.pasm"
+.sub "xblock"  :subid("27_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_351
 .annotate 'line', 107
-    new $P351, 'ExceptionHandler'
-    set_addr $P351, control_350
-    $P351."handle_types"(57)
-    push_eh $P351
+    new $P350, 'ExceptionHandler'
+    set_addr $P350, control_349
+    $P350."handle_types"(.CONTROL_RETURN)
+    push_eh $P350
     .lex "self", self
-    .lex "$/", param_352
+    .lex "$/", param_351
 .annotate 'line', 108
-    find_lex $P353, "$/"
-    get_hll_global $P354, ["PAST"], "Op"
-    find_lex $P355, "$/"
-    unless_null $P355, vivify_200
-    $P355 = root_new ['parrot';'Hash']
-  vivify_200:
-    set $P356, $P355["EXPR"]
-    unless_null $P356, vivify_201
-    new $P356, "Undef"
-  vivify_201:
-    $P357 = $P356."ast"()
-    find_lex $P358, "$/"
-    unless_null $P358, vivify_202
-    $P358 = root_new ['parrot';'Hash']
-  vivify_202:
-    set $P359, $P358["pblock"]
-    unless_null $P359, vivify_203
-    new $P359, "Undef"
-  vivify_203:
-    $P360 = $P359."ast"()
-    find_lex $P361, "$/"
-    $P362 = $P354."new"($P357, $P360, "if" :named("pasttype"), $P361 :named("node"))
-    $P363 = $P353."!make"($P362)
+    find_lex $P352, "$/"
+    get_hll_global $P353, ["PAST"], "Op"
+    find_lex $P354, "$/"
+    unless_null $P354, vivify_206
+    $P354 = root_new ['parrot';'Hash']
+  vivify_206:
+    set $P355, $P354["EXPR"]
+    unless_null $P355, vivify_207
+    new $P355, "Undef"
+  vivify_207:
+    $P356 = $P355."ast"()
+    find_lex $P357, "$/"
+    unless_null $P357, vivify_208
+    $P357 = root_new ['parrot';'Hash']
+  vivify_208:
+    set $P358, $P357["pblock"]
+    unless_null $P358, vivify_209
+    new $P358, "Undef"
+  vivify_209:
+    $P359 = $P358."ast"()
+    find_lex $P360, "$/"
+    $P361 = $P353."new"($P356, $P359, "if" :named("pasttype"), $P360 :named("node"))
+    $P362 = $P352."!make"($P361)
 .annotate 'line', 107
-    .return ($P363)
-  control_350:
+    .return ($P362)
+  control_349:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P364, exception, "payload"
-    .return ($P364)
+    getattribute $P363, exception, "payload"
+    .return ($P363)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "pblock"  :subid("28_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_368
+.include "except_types.pasm"
+.sub "pblock"  :subid("28_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_367
 .annotate 'line', 111
-    new $P367, 'ExceptionHandler'
-    set_addr $P367, control_366
-    $P367."handle_types"(57)
-    push_eh $P367
+    new $P366, 'ExceptionHandler'
+    set_addr $P366, control_365
+    $P366."handle_types"(.CONTROL_RETURN)
+    push_eh $P366
     .lex "self", self
-    .lex "$/", param_368
+    .lex "$/", param_367
 .annotate 'line', 112
+    find_lex $P368, "$/"
     find_lex $P369, "$/"
-    find_lex $P370, "$/"
-    unless_null $P370, vivify_204
-    $P370 = root_new ['parrot';'Hash']
-  vivify_204:
-    set $P371, $P370["blockoid"]
-    unless_null $P371, vivify_205
-    new $P371, "Undef"
-  vivify_205:
-    $P372 = $P371."ast"()
-    $P373 = $P369."!make"($P372)
+    unless_null $P369, vivify_210
+    $P369 = root_new ['parrot';'Hash']
+  vivify_210:
+    set $P370, $P369["blockoid"]
+    unless_null $P370, vivify_211
+    new $P370, "Undef"
+  vivify_211:
+    $P371 = $P370."ast"()
+    $P372 = $P368."!make"($P371)
 .annotate 'line', 111
-    .return ($P373)
-  control_366:
+    .return ($P372)
+  control_365:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P374, exception, "payload"
-    .return ($P374)
+    getattribute $P373, exception, "payload"
+    .return ($P373)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "block"  :subid("29_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_378
+.include "except_types.pasm"
+.sub "block"  :subid("29_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_377
 .annotate 'line', 115
-    new $P377, 'ExceptionHandler'
-    set_addr $P377, control_376
-    $P377."handle_types"(57)
-    push_eh $P377
+    new $P376, 'ExceptionHandler'
+    set_addr $P376, control_375
+    $P376."handle_types"(.CONTROL_RETURN)
+    push_eh $P376
     .lex "self", self
-    .lex "$/", param_378
+    .lex "$/", param_377
 .annotate 'line', 116
+    find_lex $P378, "$/"
     find_lex $P379, "$/"
-    find_lex $P380, "$/"
-    unless_null $P380, vivify_206
-    $P380 = root_new ['parrot';'Hash']
-  vivify_206:
-    set $P381, $P380["blockoid"]
-    unless_null $P381, vivify_207
-    new $P381, "Undef"
-  vivify_207:
-    $P382 = $P381."ast"()
-    $P383 = $P379."!make"($P382)
+    unless_null $P379, vivify_212
+    $P379 = root_new ['parrot';'Hash']
+  vivify_212:
+    set $P380, $P379["blockoid"]
+    unless_null $P380, vivify_213
+    new $P380, "Undef"
+  vivify_213:
+    $P381 = $P380."ast"()
+    $P382 = $P378."!make"($P381)
 .annotate 'line', 115
-    .return ($P383)
-  control_376:
+    .return ($P382)
+  control_375:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P384, exception, "payload"
-    .return ($P384)
+    getattribute $P383, exception, "payload"
+    .return ($P383)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "blockoid"  :subid("30_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_388
+.include "except_types.pasm"
+.sub "blockoid"  :subid("30_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_387
 .annotate 'line', 119
-    new $P387, 'ExceptionHandler'
-    set_addr $P387, control_386
-    $P387."handle_types"(57)
-    push_eh $P387
+    new $P386, 'ExceptionHandler'
+    set_addr $P386, control_385
+    $P386."handle_types"(.CONTROL_RETURN)
+    push_eh $P386
     .lex "self", self
-    .lex "$/", param_388
+    .lex "$/", param_387
 .annotate 'line', 120
-    new $P389, "Undef"
-    .lex "$past", $P389
+    new $P388, "Undef"
+    .lex "$past", $P388
 .annotate 'line', 121
-    new $P390, "Undef"
-    .lex "$BLOCK", $P390
+    new $P389, "Undef"
+    .lex "$BLOCK", $P389
 .annotate 'line', 120
-    find_lex $P391, "$/"
-    unless_null $P391, vivify_208
-    $P391 = root_new ['parrot';'Hash']
-  vivify_208:
-    set $P392, $P391["statementlist"]
-    unless_null $P392, vivify_209
-    new $P392, "Undef"
-  vivify_209:
-    $P393 = $P392."ast"()
-    store_lex "$past", $P393
+    find_lex $P390, "$/"
+    unless_null $P390, vivify_214
+    $P390 = root_new ['parrot';'Hash']
+  vivify_214:
+    set $P391, $P390["statementlist"]
+    unless_null $P391, vivify_215
+    new $P391, "Undef"
+  vivify_215:
+    $P392 = $P391."ast"()
+    store_lex "$past", $P392
 .annotate 'line', 121
-    get_global $P394, "@BLOCK"
-    $P395 = $P394."shift"()
-    store_lex "$BLOCK", $P395
+    get_global $P393, "@BLOCK"
+    $P394 = $P393."shift"()
+    store_lex "$BLOCK", $P394
 .annotate 'line', 122
-    find_lex $P396, "$BLOCK"
-    find_lex $P397, "$past"
-    $P396."push"($P397)
+    find_lex $P395, "$BLOCK"
+    find_lex $P396, "$past"
+    $P395."push"($P396)
 .annotate 'line', 123
-    find_lex $P398, "$BLOCK"
-    find_lex $P399, "$/"
-    $P398."node"($P399)
+    find_lex $P397, "$BLOCK"
+    find_lex $P398, "$/"
+    $P397."node"($P398)
 .annotate 'line', 124
-    find_lex $P400, "$BLOCK"
-    $P400."closure"(1)
+    find_lex $P399, "$BLOCK"
+    $P399."closure"(1)
 .annotate 'line', 125
-    find_lex $P401, "$/"
-    find_lex $P402, "$BLOCK"
-    $P403 = $P401."!make"($P402)
+    find_lex $P400, "$/"
+    find_lex $P401, "$BLOCK"
+    $P402 = $P400."!make"($P401)
 .annotate 'line', 119
-    .return ($P403)
-  control_386:
+    .return ($P402)
+  control_385:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P404, exception, "payload"
-    .return ($P404)
+    getattribute $P403, exception, "payload"
+    .return ($P403)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "newpad"  :subid("31_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_408
+.include "except_types.pasm"
+.sub "newpad"  :subid("31_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_407
 .annotate 'line', 128
-    new $P407, 'ExceptionHandler'
-    set_addr $P407, control_406
-    $P407."handle_types"(57)
-    push_eh $P407
+    new $P406, 'ExceptionHandler'
+    set_addr $P406, control_405
+    $P406."handle_types"(.CONTROL_RETURN)
+    push_eh $P406
     .lex "self", self
-    .lex "$/", param_408
+    .lex "$/", param_407
 .annotate 'line', 129
-    get_global $P409, "@BLOCK"
-    unless_null $P409, vivify_210
-    $P409 = root_new ['parrot';'ResizablePMCArray']
-    set_global "@BLOCK", $P409
-  vivify_210:
+    get_global $P408, "@BLOCK"
+    unless_null $P408, vivify_216
+    $P408 = root_new ['parrot';'ResizablePMCArray']
+    set_global "@BLOCK", $P408
+  vivify_216:
 .annotate 'line', 128
-    get_global $P410, "@BLOCK"
+    get_global $P409, "@BLOCK"
 .annotate 'line', 130
-    get_global $P411, "@BLOCK"
-    get_hll_global $P412, ["PAST"], "Block"
-    get_hll_global $P413, ["PAST"], "Stmts"
-    $P414 = $P413."new"()
-    $P415 = $P412."new"($P414)
-    $P416 = $P411."unshift"($P415)
+    get_global $P410, "@BLOCK"
+    get_hll_global $P411, ["PAST"], "Block"
+    get_hll_global $P412, ["PAST"], "Stmts"
+    $P413 = $P412."new"()
+    $P414 = $P411."new"($P413)
+    $P415 = $P410."unshift"($P414)
 .annotate 'line', 128
-    .return ($P416)
-  control_406:
+    .return ($P415)
+  control_405:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P417, exception, "payload"
-    .return ($P417)
+    getattribute $P416, exception, "payload"
+    .return ($P416)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "outerctx"  :subid("32_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_421
+.include "except_types.pasm"
+.sub "outerctx"  :subid("32_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_420
 .annotate 'line', 133
-    new $P420, 'ExceptionHandler'
-    set_addr $P420, control_419
-    $P420."handle_types"(57)
-    push_eh $P420
+    new $P419, 'ExceptionHandler'
+    set_addr $P419, control_418
+    $P419."handle_types"(.CONTROL_RETURN)
+    push_eh $P419
     .lex "self", self
-    .lex "$/", param_421
+    .lex "$/", param_420
 .annotate 'line', 134
-    get_global $P422, "@BLOCK"
-    unless_null $P422, vivify_211
-    $P422 = root_new ['parrot';'ResizablePMCArray']
-    set_global "@BLOCK", $P422
-  vivify_211:
+    get_global $P421, "@BLOCK"
+    unless_null $P421, vivify_217
+    $P421 = root_new ['parrot';'ResizablePMCArray']
+    set_global "@BLOCK", $P421
+  vivify_217:
 .annotate 'line', 133
-    get_global $P423, "@BLOCK"
+    get_global $P422, "@BLOCK"
 .annotate 'line', 135
-    find_lex $P424, "self"
-    get_global $P425, "@BLOCK"
-    unless_null $P425, vivify_212
-    $P425 = root_new ['parrot';'ResizablePMCArray']
-  vivify_212:
-    set $P426, $P425[0]
-    unless_null $P426, vivify_213
-    new $P426, "Undef"
-  vivify_213:
-    $P427 = $P424."SET_BLOCK_OUTER_CTX"($P426)
+    find_lex $P423, "self"
+    get_global $P424, "@BLOCK"
+    unless_null $P424, vivify_218
+    $P424 = root_new ['parrot';'ResizablePMCArray']
+  vivify_218:
+    set $P425, $P424[0]
+    unless_null $P425, vivify_219
+    new $P425, "Undef"
+  vivify_219:
+    $P426 = $P423."SET_BLOCK_OUTER_CTX"($P425)
 .annotate 'line', 133
-    .return ($P427)
-  control_419:
+    .return ($P426)
+  control_418:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P428, exception, "payload"
-    .return ($P428)
+    getattribute $P427, exception, "payload"
+    .return ($P427)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<if>"  :subid("33_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_432
+.include "except_types.pasm"
+.sub "statement_control:sym<if>"  :subid("33_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_431
 .annotate 'line', 140
-    .const 'Sub' $P460 = "34_1274853047.92727" 
-    capture_lex $P460
-    new $P431, 'ExceptionHandler'
-    set_addr $P431, control_430
-    $P431."handle_types"(57)
-    push_eh $P431
+    .const 'Sub' $P459 = "34_1275811497.55064" 
+    capture_lex $P459
+    new $P430, 'ExceptionHandler'
+    set_addr $P430, control_429
+    $P430."handle_types"(.CONTROL_RETURN)
+    push_eh $P430
     .lex "self", self
-    .lex "$/", param_432
+    .lex "$/", param_431
 .annotate 'line', 141
-    new $P433, "Undef"
-    .lex "$count", $P433
+    new $P432, "Undef"
+    .lex "$count", $P432
 .annotate 'line', 142
-    new $P434, "Undef"
-    .lex "$past", $P434
+    new $P433, "Undef"
+    .lex "$past", $P433
 .annotate 'line', 141
-    find_lex $P435, "$/"
-    unless_null $P435, vivify_214
-    $P435 = root_new ['parrot';'Hash']
-  vivify_214:
-    set $P436, $P435["xblock"]
-    unless_null $P436, vivify_215
-    new $P436, "Undef"
-  vivify_215:
-    set $N437, $P436
-    new $P438, 'Float'
-    set $P438, $N437
-    sub $P439, $P438, 1
-    store_lex "$count", $P439
-.annotate 'line', 142
-    find_lex $P440, "$count"
-    set $I441, $P440
-    find_lex $P442, "$/"
-    unless_null $P442, vivify_216
-    $P442 = root_new ['parrot';'Hash']
-  vivify_216:
-    set $P443, $P442["xblock"]
-    unless_null $P443, vivify_217
-    $P443 = root_new ['parrot';'ResizablePMCArray']
-  vivify_217:
-    set $P444, $P443[$I441]
-    unless_null $P444, vivify_218
-    new $P444, "Undef"
-  vivify_218:
-    $P445 = $P444."ast"()
-    $P446 = "xblock_immediate"($P445)
-    store_lex "$past", $P446
-.annotate 'line', 143
-    find_lex $P448, "$/"
-    unless_null $P448, vivify_219
-    $P448 = root_new ['parrot';'Hash']
-  vivify_219:
-    set $P449, $P448["else"]
-    unless_null $P449, vivify_220
-    new $P449, "Undef"
+    find_lex $P434, "$/"
+    unless_null $P434, vivify_220
+    $P434 = root_new ['parrot';'Hash']
   vivify_220:
-    unless $P449, if_447_end
-.annotate 'line', 144
-    find_lex $P450, "$past"
-    find_lex $P451, "$/"
-    unless_null $P451, vivify_221
-    $P451 = root_new ['parrot';'Hash']
+    set $P435, $P434["xblock"]
+    unless_null $P435, vivify_221
+    new $P435, "Undef"
   vivify_221:
-    set $P452, $P451["else"]
-    unless_null $P452, vivify_222
-    $P452 = root_new ['parrot';'ResizablePMCArray']
+    set $N436, $P435
+    new $P437, 'Float'
+    set $P437, $N436
+    sub $P438, $P437, 1
+    store_lex "$count", $P438
+.annotate 'line', 142
+    find_lex $P439, "$count"
+    set $I440, $P439
+    find_lex $P441, "$/"
+    unless_null $P441, vivify_222
+    $P441 = root_new ['parrot';'Hash']
   vivify_222:
-    set $P453, $P452[0]
-    unless_null $P453, vivify_223
-    new $P453, "Undef"
+    set $P442, $P441["xblock"]
+    unless_null $P442, vivify_223
+    $P442 = root_new ['parrot';'ResizablePMCArray']
   vivify_223:
-    $P454 = $P453."ast"()
-    $P455 = "block_immediate"($P454)
-    $P450."push"($P455)
-  if_447_end:
+    set $P443, $P442[$I440]
+    unless_null $P443, vivify_224
+    new $P443, "Undef"
+  vivify_224:
+    $P444 = $P443."ast"()
+    $P445 = "xblock_immediate"($P444)
+    store_lex "$past", $P445
+.annotate 'line', 143
+    find_lex $P447, "$/"
+    unless_null $P447, vivify_225
+    $P447 = root_new ['parrot';'Hash']
+  vivify_225:
+    set $P448, $P447["else"]
+    unless_null $P448, vivify_226
+    new $P448, "Undef"
+  vivify_226:
+    unless $P448, if_446_end
+.annotate 'line', 144
+    find_lex $P449, "$past"
+    find_lex $P450, "$/"
+    unless_null $P450, vivify_227
+    $P450 = root_new ['parrot';'Hash']
+  vivify_227:
+    set $P451, $P450["else"]
+    unless_null $P451, vivify_228
+    $P451 = root_new ['parrot';'ResizablePMCArray']
+  vivify_228:
+    set $P452, $P451[0]
+    unless_null $P452, vivify_229
+    new $P452, "Undef"
+  vivify_229:
+    $P453 = $P452."ast"()
+    $P454 = "block_immediate"($P453)
+    $P449."push"($P454)
+  if_446_end:
 .annotate 'line', 147
-    new $P476, 'ExceptionHandler'
-    set_addr $P476, loop475_handler
-    $P476."handle_types"(64, 66, 65)
-    push_eh $P476
-  loop475_test:
-    find_lex $P456, "$count"
-    set $N457, $P456
-    isgt $I458, $N457, 0.0
-    unless $I458, loop475_done
-  loop475_redo:
-    .const 'Sub' $P460 = "34_1274853047.92727" 
-    capture_lex $P460
-    $P460()
-  loop475_next:
-    goto loop475_test
-  loop475_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P477, exception, 'type'
-    eq $P477, 64, loop475_next
-    eq $P477, 66, loop475_redo
-  loop475_done:
+    new $P475, 'ExceptionHandler'
+    set_addr $P475, loop474_handler
+    $P475."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P475
+  loop474_test:
+    find_lex $P455, "$count"
+    set $N456, $P455
+    isgt $I457, $N456, 0.0
+    unless $I457, loop474_done
+  loop474_redo:
+    .const 'Sub' $P459 = "34_1275811497.55064" 
+    capture_lex $P459
+    $P459()
+  loop474_next:
+    goto loop474_test
+  loop474_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P476, exception, 'type'
+    eq $P476, .CONTROL_LOOP_NEXT, loop474_next
+    eq $P476, .CONTROL_LOOP_REDO, loop474_redo
+  loop474_done:
     pop_eh 
 .annotate 'line', 153
-    find_lex $P478, "$/"
-    find_lex $P479, "$past"
-    $P480 = $P478."!make"($P479)
+    find_lex $P477, "$/"
+    find_lex $P478, "$past"
+    $P479 = $P477."!make"($P478)
 .annotate 'line', 140
-    .return ($P480)
-  control_430:
+    .return ($P479)
+  control_429:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P481, exception, "payload"
-    .return ($P481)
+    getattribute $P480, exception, "payload"
+    .return ($P480)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block459"  :anon :subid("34_1274853047.92727") :outer("33_1274853047.92727")
+.sub "_block458"  :anon :subid("34_1275811497.55064") :outer("33_1275811497.55064")
 .annotate 'line', 149
-    new $P461, "Undef"
-    .lex "$else", $P461
+    new $P460, "Undef"
+    .lex "$else", $P460
 .annotate 'line', 147
-    find_lex $P462, "$count"
-    clone $P463, $P462
-    dec $P462
+    find_lex $P461, "$count"
+    clone $P462, $P461
+    dec $P461
 .annotate 'line', 149
-    find_lex $P464, "$past"
-    store_lex "$else", $P464
+    find_lex $P463, "$past"
+    store_lex "$else", $P463
 .annotate 'line', 150
-    find_lex $P465, "$count"
-    set $I466, $P465
-    find_lex $P467, "$/"
-    unless_null $P467, vivify_224
-    $P467 = root_new ['parrot';'Hash']
-  vivify_224:
-    set $P468, $P467["xblock"]
-    unless_null $P468, vivify_225
-    $P468 = root_new ['parrot';'ResizablePMCArray']
-  vivify_225:
-    set $P469, $P468[$I466]
-    unless_null $P469, vivify_226
-    new $P469, "Undef"
-  vivify_226:
-    $P470 = $P469."ast"()
-    $P471 = "xblock_immediate"($P470)
-    store_lex "$past", $P471
+    find_lex $P464, "$count"
+    set $I465, $P464
+    find_lex $P466, "$/"
+    unless_null $P466, vivify_230
+    $P466 = root_new ['parrot';'Hash']
+  vivify_230:
+    set $P467, $P466["xblock"]
+    unless_null $P467, vivify_231
+    $P467 = root_new ['parrot';'ResizablePMCArray']
+  vivify_231:
+    set $P468, $P467[$I465]
+    unless_null $P468, vivify_232
+    new $P468, "Undef"
+  vivify_232:
+    $P469 = $P468."ast"()
+    $P470 = "xblock_immediate"($P469)
+    store_lex "$past", $P470
 .annotate 'line', 151
-    find_lex $P472, "$past"
-    find_lex $P473, "$else"
-    $P474 = $P472."push"($P473)
+    find_lex $P471, "$past"
+    find_lex $P472, "$else"
+    $P473 = $P471."push"($P472)
 .annotate 'line', 147
-    .return ($P474)
+    .return ($P473)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<unless>"  :subid("35_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_485
+.include "except_types.pasm"
+.sub "statement_control:sym<unless>"  :subid("35_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_484
 .annotate 'line', 156
-    new $P484, 'ExceptionHandler'
-    set_addr $P484, control_483
-    $P484."handle_types"(57)
-    push_eh $P484
+    new $P483, 'ExceptionHandler'
+    set_addr $P483, control_482
+    $P483."handle_types"(.CONTROL_RETURN)
+    push_eh $P483
     .lex "self", self
-    .lex "$/", param_485
+    .lex "$/", param_484
 .annotate 'line', 157
-    new $P486, "Undef"
-    .lex "$past", $P486
-    find_lex $P487, "$/"
-    unless_null $P487, vivify_227
-    $P487 = root_new ['parrot';'Hash']
-  vivify_227:
-    set $P488, $P487["xblock"]
-    unless_null $P488, vivify_228
-    new $P488, "Undef"
-  vivify_228:
-    $P489 = $P488."ast"()
-    $P490 = "xblock_immediate"($P489)
-    store_lex "$past", $P490
+    new $P485, "Undef"
+    .lex "$past", $P485
+    find_lex $P486, "$/"
+    unless_null $P486, vivify_233
+    $P486 = root_new ['parrot';'Hash']
+  vivify_233:
+    set $P487, $P486["xblock"]
+    unless_null $P487, vivify_234
+    new $P487, "Undef"
+  vivify_234:
+    $P488 = $P487."ast"()
+    $P489 = "xblock_immediate"($P488)
+    store_lex "$past", $P489
 .annotate 'line', 158
-    find_lex $P491, "$past"
-    $P491."pasttype"("unless")
+    find_lex $P490, "$past"
+    $P490."pasttype"("unless")
 .annotate 'line', 159
-    find_lex $P492, "$/"
-    find_lex $P493, "$past"
-    $P494 = $P492."!make"($P493)
+    find_lex $P491, "$/"
+    find_lex $P492, "$past"
+    $P493 = $P491."!make"($P492)
 .annotate 'line', 156
-    .return ($P494)
-  control_483:
+    .return ($P493)
+  control_482:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P495, exception, "payload"
-    .return ($P495)
+    getattribute $P494, exception, "payload"
+    .return ($P494)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<while>"  :subid("36_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_499
+.include "except_types.pasm"
+.sub "statement_control:sym<while>"  :subid("36_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_498
 .annotate 'line', 162
-    new $P498, 'ExceptionHandler'
-    set_addr $P498, control_497
-    $P498."handle_types"(57)
-    push_eh $P498
+    new $P497, 'ExceptionHandler'
+    set_addr $P497, control_496
+    $P497."handle_types"(.CONTROL_RETURN)
+    push_eh $P497
     .lex "self", self
-    .lex "$/", param_499
+    .lex "$/", param_498
 .annotate 'line', 163
-    new $P500, "Undef"
-    .lex "$past", $P500
-    find_lex $P501, "$/"
-    unless_null $P501, vivify_229
-    $P501 = root_new ['parrot';'Hash']
-  vivify_229:
-    set $P502, $P501["xblock"]
-    unless_null $P502, vivify_230
-    new $P502, "Undef"
-  vivify_230:
-    $P503 = $P502."ast"()
-    $P504 = "xblock_immediate"($P503)
-    store_lex "$past", $P504
+    new $P499, "Undef"
+    .lex "$past", $P499
+    find_lex $P500, "$/"
+    unless_null $P500, vivify_235
+    $P500 = root_new ['parrot';'Hash']
+  vivify_235:
+    set $P501, $P500["xblock"]
+    unless_null $P501, vivify_236
+    new $P501, "Undef"
+  vivify_236:
+    $P502 = $P501."ast"()
+    $P503 = "xblock_immediate"($P502)
+    store_lex "$past", $P503
 .annotate 'line', 164
-    find_lex $P505, "$past"
-    find_lex $P506, "$/"
-    unless_null $P506, vivify_231
-    $P506 = root_new ['parrot';'Hash']
-  vivify_231:
-    set $P507, $P506["sym"]
-    unless_null $P507, vivify_232
-    new $P507, "Undef"
-  vivify_232:
-    set $S508, $P507
-    $P505."pasttype"($S508)
+    find_lex $P504, "$past"
+    find_lex $P505, "$/"
+    unless_null $P505, vivify_237
+    $P505 = root_new ['parrot';'Hash']
+  vivify_237:
+    set $P506, $P505["sym"]
+    unless_null $P506, vivify_238
+    new $P506, "Undef"
+  vivify_238:
+    set $S507, $P506
+    $P504."pasttype"($S507)
 .annotate 'line', 165
-    find_lex $P509, "$/"
-    find_lex $P510, "$past"
-    $P511 = $P509."!make"($P510)
+    find_lex $P508, "$/"
+    find_lex $P509, "$past"
+    $P510 = $P508."!make"($P509)
 .annotate 'line', 162
-    .return ($P511)
-  control_497:
+    .return ($P510)
+  control_496:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P512, exception, "payload"
-    .return ($P512)
+    getattribute $P511, exception, "payload"
+    .return ($P511)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<repeat>"  :subid("37_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_516
+.include "except_types.pasm"
+.sub "statement_control:sym<repeat>"  :subid("37_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_515
 .annotate 'line', 168
-    new $P515, 'ExceptionHandler'
-    set_addr $P515, control_514
-    $P515."handle_types"(57)
-    push_eh $P515
+    new $P514, 'ExceptionHandler'
+    set_addr $P514, control_513
+    $P514."handle_types"(.CONTROL_RETURN)
+    push_eh $P514
     .lex "self", self
-    .lex "$/", param_516
+    .lex "$/", param_515
 .annotate 'line', 169
-    new $P517, "Undef"
-    .lex "$pasttype", $P517
+    new $P516, "Undef"
+    .lex "$pasttype", $P516
 .annotate 'line', 170
-    new $P518, "Undef"
-    .lex "$past", $P518
+    new $P517, "Undef"
+    .lex "$past", $P517
 .annotate 'line', 169
-    new $P519, "String"
-    assign $P519, "repeat_"
-    find_lex $P520, "$/"
-    unless_null $P520, vivify_233
-    $P520 = root_new ['parrot';'Hash']
-  vivify_233:
-    set $P521, $P520["wu"]
-    unless_null $P521, vivify_234
-    new $P521, "Undef"
-  vivify_234:
-    set $S522, $P521
-    concat $P523, $P519, $S522
-    store_lex "$pasttype", $P523
-    find_lex $P524, "$past"
-.annotate 'line', 171
-    find_lex $P526, "$/"
-    unless_null $P526, vivify_235
-    $P526 = root_new ['parrot';'Hash']
-  vivify_235:
-    set $P527, $P526["xblock"]
-    unless_null $P527, vivify_236
-    new $P527, "Undef"
-  vivify_236:
-    if $P527, if_525
-.annotate 'line', 176
-    get_hll_global $P534, ["PAST"], "Op"
-    find_lex $P535, "$/"
-    unless_null $P535, vivify_237
-    $P535 = root_new ['parrot';'Hash']
-  vivify_237:
-    set $P536, $P535["EXPR"]
-    unless_null $P536, vivify_238
-    new $P536, "Undef"
-  vivify_238:
-    $P537 = $P536."ast"()
-    find_lex $P538, "$/"
-    unless_null $P538, vivify_239
-    $P538 = root_new ['parrot';'Hash']
+    new $P518, "String"
+    assign $P518, "repeat_"
+    find_lex $P519, "$/"
+    unless_null $P519, vivify_239
+    $P519 = root_new ['parrot';'Hash']
   vivify_239:
-    set $P539, $P538["pblock"]
-    unless_null $P539, vivify_240
-    new $P539, "Undef"
+    set $P520, $P519["wu"]
+    unless_null $P520, vivify_240
+    new $P520, "Undef"
   vivify_240:
-    $P540 = $P539."ast"()
-    $P541 = "block_immediate"($P540)
-    find_lex $P542, "$pasttype"
-    find_lex $P543, "$/"
-    $P544 = $P534."new"($P537, $P541, $P542 :named("pasttype"), $P543 :named("node"))
-    store_lex "$past", $P544
-.annotate 'line', 175
-    goto if_525_end
-  if_525:
-.annotate 'line', 172
-    find_lex $P528, "$/"
-    unless_null $P528, vivify_241
-    $P528 = root_new ['parrot';'Hash']
+    set $S521, $P520
+    concat $P522, $P518, $S521
+    store_lex "$pasttype", $P522
+    find_lex $P523, "$past"
+.annotate 'line', 171
+    find_lex $P525, "$/"
+    unless_null $P525, vivify_241
+    $P525 = root_new ['parrot';'Hash']
   vivify_241:
-    set $P529, $P528["xblock"]
-    unless_null $P529, vivify_242
-    new $P529, "Undef"
+    set $P526, $P525["xblock"]
+    unless_null $P526, vivify_242
+    new $P526, "Undef"
   vivify_242:
-    $P530 = $P529."ast"()
-    $P531 = "xblock_immediate"($P530)
-    store_lex "$past", $P531
+    if $P526, if_524
+.annotate 'line', 176
+    get_hll_global $P533, ["PAST"], "Op"
+    find_lex $P534, "$/"
+    unless_null $P534, vivify_243
+    $P534 = root_new ['parrot';'Hash']
+  vivify_243:
+    set $P535, $P534["EXPR"]
+    unless_null $P535, vivify_244
+    new $P535, "Undef"
+  vivify_244:
+    $P536 = $P535."ast"()
+    find_lex $P537, "$/"
+    unless_null $P537, vivify_245
+    $P537 = root_new ['parrot';'Hash']
+  vivify_245:
+    set $P538, $P537["pblock"]
+    unless_null $P538, vivify_246
+    new $P538, "Undef"
+  vivify_246:
+    $P539 = $P538."ast"()
+    $P540 = "block_immediate"($P539)
+    find_lex $P541, "$pasttype"
+    find_lex $P542, "$/"
+    $P543 = $P533."new"($P536, $P540, $P541 :named("pasttype"), $P542 :named("node"))
+    store_lex "$past", $P543
+.annotate 'line', 175
+    goto if_524_end
+  if_524:
+.annotate 'line', 172
+    find_lex $P527, "$/"
+    unless_null $P527, vivify_247
+    $P527 = root_new ['parrot';'Hash']
+  vivify_247:
+    set $P528, $P527["xblock"]
+    unless_null $P528, vivify_248
+    new $P528, "Undef"
+  vivify_248:
+    $P529 = $P528."ast"()
+    $P530 = "xblock_immediate"($P529)
+    store_lex "$past", $P530
 .annotate 'line', 173
-    find_lex $P532, "$past"
-    find_lex $P533, "$pasttype"
-    $P532."pasttype"($P533)
-  if_525_end:
+    find_lex $P531, "$past"
+    find_lex $P532, "$pasttype"
+    $P531."pasttype"($P532)
+  if_524_end:
 .annotate 'line', 179
-    find_lex $P545, "$/"
-    find_lex $P546, "$past"
-    $P547 = $P545."!make"($P546)
+    find_lex $P544, "$/"
+    find_lex $P545, "$past"
+    $P546 = $P544."!make"($P545)
 .annotate 'line', 168
-    .return ($P547)
-  control_514:
+    .return ($P546)
+  control_513:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P548, exception, "payload"
-    .return ($P548)
+    getattribute $P547, exception, "payload"
+    .return ($P547)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<for>"  :subid("38_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_552
+.include "except_types.pasm"
+.sub "statement_control:sym<for>"  :subid("38_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_551
 .annotate 'line', 182
-    new $P551, 'ExceptionHandler'
-    set_addr $P551, control_550
-    $P551."handle_types"(57)
-    push_eh $P551
+    new $P550, 'ExceptionHandler'
+    set_addr $P550, control_549
+    $P550."handle_types"(.CONTROL_RETURN)
+    push_eh $P550
     .lex "self", self
-    .lex "$/", param_552
+    .lex "$/", param_551
 .annotate 'line', 183
-    new $P553, "Undef"
-    .lex "$past", $P553
+    new $P552, "Undef"
+    .lex "$past", $P552
 .annotate 'line', 185
-    new $P554, "Undef"
-    .lex "$block", $P554
+    new $P553, "Undef"
+    .lex "$block", $P553
 .annotate 'line', 183
-    find_lex $P555, "$/"
-    unless_null $P555, vivify_243
-    $P555 = root_new ['parrot';'Hash']
-  vivify_243:
-    set $P556, $P555["xblock"]
-    unless_null $P556, vivify_244
-    new $P556, "Undef"
-  vivify_244:
-    $P557 = $P556."ast"()
-    store_lex "$past", $P557
+    find_lex $P554, "$/"
+    unless_null $P554, vivify_249
+    $P554 = root_new ['parrot';'Hash']
+  vivify_249:
+    set $P555, $P554["xblock"]
+    unless_null $P555, vivify_250
+    new $P555, "Undef"
+  vivify_250:
+    $P556 = $P555."ast"()
+    store_lex "$past", $P556
 .annotate 'line', 184
-    find_lex $P558, "$past"
-    $P558."pasttype"("for")
+    find_lex $P557, "$past"
+    $P557."pasttype"("for")
 .annotate 'line', 185
-    find_lex $P559, "$past"
-    unless_null $P559, vivify_245
-    $P559 = root_new ['parrot';'ResizablePMCArray']
-  vivify_245:
-    set $P560, $P559[1]
-    unless_null $P560, vivify_246
-    new $P560, "Undef"
-  vivify_246:
-    store_lex "$block", $P560
+    find_lex $P558, "$past"
+    unless_null $P558, vivify_251
+    $P558 = root_new ['parrot';'ResizablePMCArray']
+  vivify_251:
+    set $P559, $P558[1]
+    unless_null $P559, vivify_252
+    new $P559, "Undef"
+  vivify_252:
+    store_lex "$block", $P559
 .annotate 'line', 186
-    find_lex $P562, "$block"
-    $P563 = $P562."arity"()
-    if $P563, unless_561_end
+    find_lex $P561, "$block"
+    $P562 = $P561."arity"()
+    if $P562, unless_560_end
 .annotate 'line', 187
-    find_lex $P564, "$block"
-    unless_null $P564, vivify_247
-    $P564 = root_new ['parrot';'ResizablePMCArray']
-  vivify_247:
-    set $P565, $P564[0]
-    unless_null $P565, vivify_248
-    new $P565, "Undef"
-  vivify_248:
-    get_hll_global $P566, ["PAST"], "Var"
-    $P567 = $P566."new"("$_" :named("name"), "parameter" :named("scope"))
-    $P565."push"($P567)
+    find_lex $P563, "$block"
+    unless_null $P563, vivify_253
+    $P563 = root_new ['parrot';'ResizablePMCArray']
+  vivify_253:
+    set $P564, $P563[0]
+    unless_null $P564, vivify_254
+    new $P564, "Undef"
+  vivify_254:
+    get_hll_global $P565, ["PAST"], "Var"
+    $P566 = $P565."new"("$_" :named("name"), "parameter" :named("scope"))
+    $P564."push"($P566)
 .annotate 'line', 188
-    find_lex $P568, "$block"
-    $P568."symbol"("$_", "lexical" :named("scope"))
+    find_lex $P567, "$block"
+    $P567."symbol"("$_", "lexical" :named("scope"))
 .annotate 'line', 189
-    find_lex $P569, "$block"
-    $P569."arity"(1)
-  unless_561_end:
+    find_lex $P568, "$block"
+    $P568."arity"(1)
+  unless_560_end:
 .annotate 'line', 191
-    find_lex $P570, "$block"
-    $P570."blocktype"("immediate")
+    find_lex $P569, "$block"
+    $P569."blocktype"("immediate")
 .annotate 'line', 192
-    find_lex $P571, "$/"
-    find_lex $P572, "$past"
-    $P573 = $P571."!make"($P572)
+    find_lex $P570, "$/"
+    find_lex $P571, "$past"
+    $P572 = $P570."!make"($P571)
 .annotate 'line', 182
-    .return ($P573)
-  control_550:
+    .return ($P572)
+  control_549:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P574, exception, "payload"
-    .return ($P574)
+    getattribute $P573, exception, "payload"
+    .return ($P573)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<return>"  :subid("39_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_578
+.include "except_types.pasm"
+.sub "statement_control:sym<return>"  :subid("39_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_577
 .annotate 'line', 195
-    new $P577, 'ExceptionHandler'
-    set_addr $P577, control_576
-    $P577."handle_types"(57)
-    push_eh $P577
+    new $P576, 'ExceptionHandler'
+    set_addr $P576, control_575
+    $P576."handle_types"(.CONTROL_RETURN)
+    push_eh $P576
     .lex "self", self
-    .lex "$/", param_578
+    .lex "$/", param_577
 .annotate 'line', 196
-    find_lex $P579, "$/"
-    get_hll_global $P580, ["PAST"], "Op"
-    find_lex $P581, "$/"
-    unless_null $P581, vivify_249
-    $P581 = root_new ['parrot';'Hash']
-  vivify_249:
-    set $P582, $P581["EXPR"]
-    unless_null $P582, vivify_250
-    new $P582, "Undef"
-  vivify_250:
-    $P583 = $P582."ast"()
-    find_lex $P584, "$/"
-    $P585 = $P580."new"($P583, "return" :named("pasttype"), $P584 :named("node"))
-    $P586 = $P579."!make"($P585)
+    find_lex $P578, "$/"
+    get_hll_global $P579, ["PAST"], "Op"
+    find_lex $P580, "$/"
+    unless_null $P580, vivify_255
+    $P580 = root_new ['parrot';'Hash']
+  vivify_255:
+    set $P581, $P580["EXPR"]
+    unless_null $P581, vivify_256
+    new $P581, "Undef"
+  vivify_256:
+    $P582 = $P581."ast"()
+    find_lex $P583, "$/"
+    $P584 = $P579."new"($P582, "return" :named("pasttype"), $P583 :named("node"))
+    $P585 = $P578."!make"($P584)
 .annotate 'line', 195
-    .return ($P586)
-  control_576:
+    .return ($P585)
+  control_575:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P587, exception, "payload"
-    .return ($P587)
+    getattribute $P586, exception, "payload"
+    .return ($P586)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CATCH>"  :subid("40_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_591
+.include "except_types.pasm"
+.sub "statement_control:sym<CATCH>"  :subid("40_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_590
 .annotate 'line', 199
-    new $P590, 'ExceptionHandler'
-    set_addr $P590, control_589
-    $P590."handle_types"(57)
-    push_eh $P590
+    new $P589, 'ExceptionHandler'
+    set_addr $P589, control_588
+    $P589."handle_types"(.CONTROL_RETURN)
+    push_eh $P589
     .lex "self", self
-    .lex "$/", param_591
+    .lex "$/", param_590
 .annotate 'line', 200
-    new $P592, "Undef"
-    .lex "$block", $P592
-    find_lex $P593, "$/"
-    unless_null $P593, vivify_251
-    $P593 = root_new ['parrot';'Hash']
-  vivify_251:
-    set $P594, $P593["block"]
-    unless_null $P594, vivify_252
-    new $P594, "Undef"
-  vivify_252:
-    $P595 = $P594."ast"()
-    store_lex "$block", $P595
+    new $P591, "Undef"
+    .lex "$block", $P591
+    find_lex $P592, "$/"
+    unless_null $P592, vivify_257
+    $P592 = root_new ['parrot';'Hash']
+  vivify_257:
+    set $P593, $P592["block"]
+    unless_null $P593, vivify_258
+    new $P593, "Undef"
+  vivify_258:
+    $P594 = $P593."ast"()
+    store_lex "$block", $P594
 .annotate 'line', 201
-    find_lex $P596, "$/"
-    find_lex $P597, "$block"
-    "push_block_handler"($P596, $P597)
+    find_lex $P595, "$/"
+    find_lex $P596, "$block"
+    "push_block_handler"($P595, $P596)
 .annotate 'line', 202
-    get_global $P598, "@BLOCK"
-    unless_null $P598, vivify_253
-    $P598 = root_new ['parrot';'ResizablePMCArray']
-  vivify_253:
-    set $P599, $P598[0]
-    unless_null $P599, vivify_254
-    new $P599, "Undef"
-  vivify_254:
-    $P600 = $P599."handlers"()
-    set $P601, $P600[0]
-    unless_null $P601, vivify_255
-    new $P601, "Undef"
-  vivify_255:
-    $P601."handle_types_except"("CONTROL")
+    get_global $P597, "@BLOCK"
+    unless_null $P597, vivify_259
+    $P597 = root_new ['parrot';'ResizablePMCArray']
+  vivify_259:
+    set $P598, $P597[0]
+    unless_null $P598, vivify_260
+    new $P598, "Undef"
+  vivify_260:
+    $P599 = $P598."handlers"()
+    set $P600, $P599[0]
+    unless_null $P600, vivify_261
+    new $P600, "Undef"
+  vivify_261:
+    $P600."handle_types_except"("CONTROL")
 .annotate 'line', 203
-    find_lex $P602, "$/"
-    get_hll_global $P603, ["PAST"], "Stmts"
-    find_lex $P604, "$/"
-    $P605 = $P603."new"($P604 :named("node"))
-    $P606 = $P602."!make"($P605)
+    find_lex $P601, "$/"
+    get_hll_global $P602, ["PAST"], "Stmts"
+    find_lex $P603, "$/"
+    $P604 = $P602."new"($P603 :named("node"))
+    $P605 = $P601."!make"($P604)
 .annotate 'line', 199
-    .return ($P606)
-  control_589:
+    .return ($P605)
+  control_588:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P607, exception, "payload"
-    .return ($P607)
+    getattribute $P606, exception, "payload"
+    .return ($P606)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CONTROL>"  :subid("41_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_611
+.include "except_types.pasm"
+.sub "statement_control:sym<CONTROL>"  :subid("41_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_610
 .annotate 'line', 206
-    new $P610, 'ExceptionHandler'
-    set_addr $P610, control_609
-    $P610."handle_types"(57)
-    push_eh $P610
+    new $P609, 'ExceptionHandler'
+    set_addr $P609, control_608
+    $P609."handle_types"(.CONTROL_RETURN)
+    push_eh $P609
     .lex "self", self
-    .lex "$/", param_611
+    .lex "$/", param_610
 .annotate 'line', 207
-    new $P612, "Undef"
-    .lex "$block", $P612
-    find_lex $P613, "$/"
-    unless_null $P613, vivify_256
-    $P613 = root_new ['parrot';'Hash']
-  vivify_256:
-    set $P614, $P613["block"]
-    unless_null $P614, vivify_257
-    new $P614, "Undef"
-  vivify_257:
-    $P615 = $P614."ast"()
-    store_lex "$block", $P615
+    new $P611, "Undef"
+    .lex "$block", $P611
+    find_lex $P612, "$/"
+    unless_null $P612, vivify_262
+    $P612 = root_new ['parrot';'Hash']
+  vivify_262:
+    set $P613, $P612["block"]
+    unless_null $P613, vivify_263
+    new $P613, "Undef"
+  vivify_263:
+    $P614 = $P613."ast"()
+    store_lex "$block", $P614
 .annotate 'line', 208
-    find_lex $P616, "$/"
-    find_lex $P617, "$block"
-    "push_block_handler"($P616, $P617)
+    find_lex $P615, "$/"
+    find_lex $P616, "$block"
+    "push_block_handler"($P615, $P616)
 .annotate 'line', 209
-    get_global $P618, "@BLOCK"
-    unless_null $P618, vivify_258
-    $P618 = root_new ['parrot';'ResizablePMCArray']
-  vivify_258:
-    set $P619, $P618[0]
-    unless_null $P619, vivify_259
-    new $P619, "Undef"
-  vivify_259:
-    $P620 = $P619."handlers"()
-    set $P621, $P620[0]
-    unless_null $P621, vivify_260
-    new $P621, "Undef"
-  vivify_260:
-    $P621."handle_types"("CONTROL")
+    get_global $P617, "@BLOCK"
+    unless_null $P617, vivify_264
+    $P617 = root_new ['parrot';'ResizablePMCArray']
+  vivify_264:
+    set $P618, $P617[0]
+    unless_null $P618, vivify_265
+    new $P618, "Undef"
+  vivify_265:
+    $P619 = $P618."handlers"()
+    set $P620, $P619[0]
+    unless_null $P620, vivify_266
+    new $P620, "Undef"
+  vivify_266:
+    $P620."handle_types"("CONTROL")
 .annotate 'line', 210
-    find_lex $P622, "$/"
-    get_hll_global $P623, ["PAST"], "Stmts"
-    find_lex $P624, "$/"
-    $P625 = $P623."new"($P624 :named("node"))
-    $P626 = $P622."!make"($P625)
+    find_lex $P621, "$/"
+    get_hll_global $P622, ["PAST"], "Stmts"
+    find_lex $P623, "$/"
+    $P624 = $P622."new"($P623 :named("node"))
+    $P625 = $P621."!make"($P624)
 .annotate 'line', 206
-    .return ($P626)
-  control_609:
+    .return ($P625)
+  control_608:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P627, exception, "payload"
-    .return ($P627)
+    getattribute $P626, exception, "payload"
+    .return ($P626)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<INIT>"  :subid("42_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_632
+.include "except_types.pasm"
+.sub "statement_prefix:sym<INIT>"  :subid("42_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_631
 .annotate 'line', 250
-    new $P631, 'ExceptionHandler'
-    set_addr $P631, control_630
-    $P631."handle_types"(57)
-    push_eh $P631
+    new $P630, 'ExceptionHandler'
+    set_addr $P630, control_629
+    $P630."handle_types"(.CONTROL_RETURN)
+    push_eh $P630
     .lex "self", self
-    .lex "$/", param_632
+    .lex "$/", param_631
 .annotate 'line', 251
-    get_global $P633, "@BLOCK"
-    unless_null $P633, vivify_261
-    $P633 = root_new ['parrot';'ResizablePMCArray']
-  vivify_261:
-    set $P634, $P633[0]
-    unless_null $P634, vivify_262
-    new $P634, "Undef"
-  vivify_262:
-    $P635 = $P634."loadinit"()
-    find_lex $P636, "$/"
-    unless_null $P636, vivify_263
-    $P636 = root_new ['parrot';'Hash']
-  vivify_263:
-    set $P637, $P636["blorst"]
-    unless_null $P637, vivify_264
-    new $P637, "Undef"
-  vivify_264:
-    $P638 = $P637."ast"()
-    $P635."push"($P638)
+    get_global $P632, "@BLOCK"
+    unless_null $P632, vivify_267
+    $P632 = root_new ['parrot';'ResizablePMCArray']
+  vivify_267:
+    set $P633, $P632[0]
+    unless_null $P633, vivify_268
+    new $P633, "Undef"
+  vivify_268:
+    $P634 = $P633."loadinit"()
+    find_lex $P635, "$/"
+    unless_null $P635, vivify_269
+    $P635 = root_new ['parrot';'Hash']
+  vivify_269:
+    set $P636, $P635["blorst"]
+    unless_null $P636, vivify_270
+    new $P636, "Undef"
+  vivify_270:
+    $P637 = $P636."ast"()
+    $P634."push"($P637)
 .annotate 'line', 252
-    find_lex $P639, "$/"
-    get_hll_global $P640, ["PAST"], "Stmts"
-    find_lex $P641, "$/"
-    $P642 = $P640."new"($P641 :named("node"))
-    $P643 = $P639."!make"($P642)
+    find_lex $P638, "$/"
+    get_hll_global $P639, ["PAST"], "Stmts"
+    find_lex $P640, "$/"
+    $P641 = $P639."new"($P640 :named("node"))
+    $P642 = $P638."!make"($P641)
 .annotate 'line', 250
-    .return ($P643)
-  control_630:
+    .return ($P642)
+  control_629:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P644, exception, "payload"
-    .return ($P644)
+    getattribute $P643, exception, "payload"
+    .return ($P643)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<try>"  :subid("43_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_648
+.include "except_types.pasm"
+.sub "statement_prefix:sym<try>"  :subid("43_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_647
 .annotate 'line', 255
-    new $P647, 'ExceptionHandler'
-    set_addr $P647, control_646
-    $P647."handle_types"(57)
-    push_eh $P647
+    new $P646, 'ExceptionHandler'
+    set_addr $P646, control_645
+    $P646."handle_types"(.CONTROL_RETURN)
+    push_eh $P646
     .lex "self", self
-    .lex "$/", param_648
+    .lex "$/", param_647
 .annotate 'line', 256
-    new $P649, "Undef"
-    .lex "$past", $P649
-    find_lex $P650, "$/"
-    unless_null $P650, vivify_265
-    $P650 = root_new ['parrot';'Hash']
-  vivify_265:
-    set $P651, $P650["blorst"]
-    unless_null $P651, vivify_266
-    new $P651, "Undef"
-  vivify_266:
-    $P652 = $P651."ast"()
-    store_lex "$past", $P652
+    new $P648, "Undef"
+    .lex "$past", $P648
+    find_lex $P649, "$/"
+    unless_null $P649, vivify_271
+    $P649 = root_new ['parrot';'Hash']
+  vivify_271:
+    set $P650, $P649["blorst"]
+    unless_null $P650, vivify_272
+    new $P650, "Undef"
+  vivify_272:
+    $P651 = $P650."ast"()
+    store_lex "$past", $P651
 .annotate 'line', 257
-    find_lex $P654, "$past"
-    $S655 = $P654."WHAT"()
-    isne $I656, $S655, "PAST::Block()"
-    unless $I656, if_653_end
+    find_lex $P653, "$past"
+    $S654 = $P653."WHAT"()
+    isne $I655, $S654, "PAST::Block()"
+    unless $I655, if_652_end
 .annotate 'line', 258
-    get_hll_global $P657, ["PAST"], "Block"
-    find_lex $P658, "$past"
-    find_lex $P659, "$/"
-    $P660 = $P657."new"($P658, "immediate" :named("blocktype"), $P659 :named("node"))
-    store_lex "$past", $P660
-  if_653_end:
+    get_hll_global $P656, ["PAST"], "Block"
+    find_lex $P657, "$past"
+    find_lex $P658, "$/"
+    $P659 = $P656."new"($P657, "immediate" :named("blocktype"), $P658 :named("node"))
+    store_lex "$past", $P659
+  if_652_end:
 .annotate 'line', 260
-    find_lex $P662, "$past"
-    $P663 = $P662."handlers"()
-    if $P663, unless_661_end
+    find_lex $P661, "$past"
+    $P662 = $P661."handlers"()
+    if $P662, unless_660_end
 .annotate 'line', 261
-    find_lex $P664, "$past"
-    get_hll_global $P665, ["PAST"], "Control"
+    find_lex $P663, "$past"
+    get_hll_global $P664, ["PAST"], "Control"
 .annotate 'line', 263
-    get_hll_global $P666, ["PAST"], "Stmts"
+    get_hll_global $P665, ["PAST"], "Stmts"
 .annotate 'line', 264
-    get_hll_global $P667, ["PAST"], "Op"
+    get_hll_global $P666, ["PAST"], "Op"
 .annotate 'line', 265
-    get_hll_global $P668, ["PAST"], "Var"
+    get_hll_global $P667, ["PAST"], "Var"
 .annotate 'line', 266
-    get_hll_global $P669, ["PAST"], "Var"
-    $P670 = $P669."new"("register" :named("scope"), "exception" :named("name"))
-    $P671 = $P668."new"($P670, "handled", "keyed" :named("scope"))
+    get_hll_global $P668, ["PAST"], "Var"
+    $P669 = $P668."new"("register" :named("scope"), "exception" :named("name"))
+    $P670 = $P667."new"($P669, "handled", "keyed" :named("scope"))
 .annotate 'line', 265
-    $P672 = $P667."new"($P671, 1, "bind" :named("pasttype"))
+    $P671 = $P666."new"($P670, 1, "bind" :named("pasttype"))
 .annotate 'line', 264
-    $P673 = $P666."new"($P672)
+    $P672 = $P665."new"($P671)
 .annotate 'line', 263
-    $P674 = $P665."new"($P673, "CONTROL" :named("handle_types_except"))
+    $P673 = $P664."new"($P672, "CONTROL" :named("handle_types_except"))
 .annotate 'line', 261
-    new $P675, "ResizablePMCArray"
-    push $P675, $P674
-    $P664."handlers"($P675)
-  unless_661_end:
+    new $P674, "ResizablePMCArray"
+    push $P674, $P673
+    $P663."handlers"($P674)
+  unless_660_end:
 .annotate 'line', 275
-    find_lex $P676, "$/"
-    find_lex $P677, "$past"
-    $P678 = $P676."!make"($P677)
+    find_lex $P675, "$/"
+    find_lex $P676, "$past"
+    $P677 = $P675."!make"($P676)
 .annotate 'line', 255
-    .return ($P678)
-  control_646:
+    .return ($P677)
+  control_645:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P679, exception, "payload"
-    .return ($P679)
+    getattribute $P678, exception, "payload"
+    .return ($P678)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "blorst"  :subid("44_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_683
+.include "except_types.pasm"
+.sub "blorst"  :subid("44_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_682
 .annotate 'line', 278
-    new $P682, 'ExceptionHandler'
-    set_addr $P682, control_681
-    $P682."handle_types"(57)
-    push_eh $P682
+    new $P681, 'ExceptionHandler'
+    set_addr $P681, control_680
+    $P681."handle_types"(.CONTROL_RETURN)
+    push_eh $P681
     .lex "self", self
-    .lex "$/", param_683
+    .lex "$/", param_682
 .annotate 'line', 279
-    find_lex $P684, "$/"
+    find_lex $P683, "$/"
 .annotate 'line', 280
-    find_lex $P687, "$/"
-    unless_null $P687, vivify_267
-    $P687 = root_new ['parrot';'Hash']
-  vivify_267:
-    set $P688, $P687["block"]
-    unless_null $P688, vivify_268
-    new $P688, "Undef"
-  vivify_268:
-    if $P688, if_686
+    find_lex $P686, "$/"
+    unless_null $P686, vivify_273
+    $P686 = root_new ['parrot';'Hash']
+  vivify_273:
+    set $P687, $P686["block"]
+    unless_null $P687, vivify_274
+    new $P687, "Undef"
+  vivify_274:
+    if $P687, if_685
 .annotate 'line', 281
-    find_lex $P693, "$/"
-    unless_null $P693, vivify_269
-    $P693 = root_new ['parrot';'Hash']
-  vivify_269:
-    set $P694, $P693["statement"]
-    unless_null $P694, vivify_270
-    new $P694, "Undef"
-  vivify_270:
-    $P695 = $P694."ast"()
-    set $P685, $P695
+    find_lex $P692, "$/"
+    unless_null $P692, vivify_275
+    $P692 = root_new ['parrot';'Hash']
+  vivify_275:
+    set $P693, $P692["statement"]
+    unless_null $P693, vivify_276
+    new $P693, "Undef"
+  vivify_276:
+    $P694 = $P693."ast"()
+    set $P684, $P694
 .annotate 'line', 280
-    goto if_686_end
-  if_686:
-    find_lex $P689, "$/"
-    unless_null $P689, vivify_271
-    $P689 = root_new ['parrot';'Hash']
-  vivify_271:
-    set $P690, $P689["block"]
-    unless_null $P690, vivify_272
-    new $P690, "Undef"
-  vivify_272:
-    $P691 = $P690."ast"()
-    $P692 = "block_immediate"($P691)
-    set $P685, $P692
-  if_686_end:
-    $P696 = $P684."!make"($P685)
+    goto if_685_end
+  if_685:
+    find_lex $P688, "$/"
+    unless_null $P688, vivify_277
+    $P688 = root_new ['parrot';'Hash']
+  vivify_277:
+    set $P689, $P688["block"]
+    unless_null $P689, vivify_278
+    new $P689, "Undef"
+  vivify_278:
+    $P690 = $P689."ast"()
+    $P691 = "block_immediate"($P690)
+    set $P684, $P691
+  if_685_end:
+    $P695 = $P683."!make"($P684)
 .annotate 'line', 278
-    .return ($P696)
-  control_681:
+    .return ($P695)
+  control_680:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P697, exception, "payload"
-    .return ($P697)
+    getattribute $P696, exception, "payload"
+    .return ($P696)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<if>"  :subid("45_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_701
+.include "except_types.pasm"
+.sub "statement_mod_cond:sym<if>"  :subid("45_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_700
 .annotate 'line', 286
-    new $P700, 'ExceptionHandler'
-    set_addr $P700, control_699
-    $P700."handle_types"(57)
-    push_eh $P700
+    new $P699, 'ExceptionHandler'
+    set_addr $P699, control_698
+    $P699."handle_types"(.CONTROL_RETURN)
+    push_eh $P699
     .lex "self", self
-    .lex "$/", param_701
+    .lex "$/", param_700
+    find_lex $P701, "$/"
     find_lex $P702, "$/"
-    find_lex $P703, "$/"
-    unless_null $P703, vivify_273
-    $P703 = root_new ['parrot';'Hash']
-  vivify_273:
-    set $P704, $P703["cond"]
-    unless_null $P704, vivify_274
-    new $P704, "Undef"
-  vivify_274:
-    $P705 = $P704."ast"()
-    $P706 = $P702."!make"($P705)
-    .return ($P706)
-  control_699:
+    unless_null $P702, vivify_279
+    $P702 = root_new ['parrot';'Hash']
+  vivify_279:
+    set $P703, $P702["cond"]
+    unless_null $P703, vivify_280
+    new $P703, "Undef"
+  vivify_280:
+    $P704 = $P703."ast"()
+    $P705 = $P701."!make"($P704)
+    .return ($P705)
+  control_698:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P707, exception, "payload"
-    .return ($P707)
+    getattribute $P706, exception, "payload"
+    .return ($P706)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<unless>"  :subid("46_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_711
+.include "except_types.pasm"
+.sub "statement_mod_cond:sym<unless>"  :subid("46_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_710
 .annotate 'line', 287
-    new $P710, 'ExceptionHandler'
-    set_addr $P710, control_709
-    $P710."handle_types"(57)
-    push_eh $P710
+    new $P709, 'ExceptionHandler'
+    set_addr $P709, control_708
+    $P709."handle_types"(.CONTROL_RETURN)
+    push_eh $P709
     .lex "self", self
-    .lex "$/", param_711
+    .lex "$/", param_710
+    find_lex $P711, "$/"
     find_lex $P712, "$/"
-    find_lex $P713, "$/"
-    unless_null $P713, vivify_275
-    $P713 = root_new ['parrot';'Hash']
-  vivify_275:
-    set $P714, $P713["cond"]
-    unless_null $P714, vivify_276
-    new $P714, "Undef"
-  vivify_276:
-    $P715 = $P714."ast"()
-    $P716 = $P712."!make"($P715)
-    .return ($P716)
-  control_709:
+    unless_null $P712, vivify_281
+    $P712 = root_new ['parrot';'Hash']
+  vivify_281:
+    set $P713, $P712["cond"]
+    unless_null $P713, vivify_282
+    new $P713, "Undef"
+  vivify_282:
+    $P714 = $P713."ast"()
+    $P715 = $P711."!make"($P714)
+    .return ($P715)
+  control_708:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P717, exception, "payload"
-    .return ($P717)
+    getattribute $P716, exception, "payload"
+    .return ($P716)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<while>"  :subid("47_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_721
+.include "except_types.pasm"
+.sub "statement_mod_loop:sym<while>"  :subid("47_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_720
 .annotate 'line', 289
-    new $P720, 'ExceptionHandler'
-    set_addr $P720, control_719
-    $P720."handle_types"(57)
-    push_eh $P720
+    new $P719, 'ExceptionHandler'
+    set_addr $P719, control_718
+    $P719."handle_types"(.CONTROL_RETURN)
+    push_eh $P719
     .lex "self", self
-    .lex "$/", param_721
+    .lex "$/", param_720
+    find_lex $P721, "$/"
     find_lex $P722, "$/"
-    find_lex $P723, "$/"
-    unless_null $P723, vivify_277
-    $P723 = root_new ['parrot';'Hash']
-  vivify_277:
-    set $P724, $P723["cond"]
-    unless_null $P724, vivify_278
-    new $P724, "Undef"
-  vivify_278:
-    $P725 = $P724."ast"()
-    $P726 = $P722."!make"($P725)
-    .return ($P726)
-  control_719:
+    unless_null $P722, vivify_283
+    $P722 = root_new ['parrot';'Hash']
+  vivify_283:
+    set $P723, $P722["cond"]
+    unless_null $P723, vivify_284
+    new $P723, "Undef"
+  vivify_284:
+    $P724 = $P723."ast"()
+    $P725 = $P721."!make"($P724)
+    .return ($P725)
+  control_718:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P727, exception, "payload"
-    .return ($P727)
+    getattribute $P726, exception, "payload"
+    .return ($P726)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<until>"  :subid("48_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_731
+.include "except_types.pasm"
+.sub "statement_mod_loop:sym<until>"  :subid("48_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_730
 .annotate 'line', 290
-    new $P730, 'ExceptionHandler'
-    set_addr $P730, control_729
-    $P730."handle_types"(57)
-    push_eh $P730
+    new $P729, 'ExceptionHandler'
+    set_addr $P729, control_728
+    $P729."handle_types"(.CONTROL_RETURN)
+    push_eh $P729
     .lex "self", self
-    .lex "$/", param_731
+    .lex "$/", param_730
+    find_lex $P731, "$/"
     find_lex $P732, "$/"
-    find_lex $P733, "$/"
-    unless_null $P733, vivify_279
-    $P733 = root_new ['parrot';'Hash']
-  vivify_279:
-    set $P734, $P733["cond"]
-    unless_null $P734, vivify_280
-    new $P734, "Undef"
-  vivify_280:
-    $P735 = $P734."ast"()
-    $P736 = $P732."!make"($P735)
-    .return ($P736)
-  control_729:
+    unless_null $P732, vivify_285
+    $P732 = root_new ['parrot';'Hash']
+  vivify_285:
+    set $P733, $P732["cond"]
+    unless_null $P733, vivify_286
+    new $P733, "Undef"
+  vivify_286:
+    $P734 = $P733."ast"()
+    $P735 = $P731."!make"($P734)
+    .return ($P735)
+  control_728:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P737, exception, "payload"
-    .return ($P737)
+    getattribute $P736, exception, "payload"
+    .return ($P736)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<fatarrow>"  :subid("49_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_741
+.include "except_types.pasm"
+.sub "term:sym<fatarrow>"  :subid("49_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_740
 .annotate 'line', 294
-    new $P740, 'ExceptionHandler'
-    set_addr $P740, control_739
-    $P740."handle_types"(57)
-    push_eh $P740
+    new $P739, 'ExceptionHandler'
+    set_addr $P739, control_738
+    $P739."handle_types"(.CONTROL_RETURN)
+    push_eh $P739
     .lex "self", self
-    .lex "$/", param_741
+    .lex "$/", param_740
+    find_lex $P741, "$/"
     find_lex $P742, "$/"
-    find_lex $P743, "$/"
-    unless_null $P743, vivify_281
-    $P743 = root_new ['parrot';'Hash']
-  vivify_281:
-    set $P744, $P743["fatarrow"]
-    unless_null $P744, vivify_282
-    new $P744, "Undef"
-  vivify_282:
-    $P745 = $P744."ast"()
-    $P746 = $P742."!make"($P745)
-    .return ($P746)
-  control_739:
+    unless_null $P742, vivify_287
+    $P742 = root_new ['parrot';'Hash']
+  vivify_287:
+    set $P743, $P742["fatarrow"]
+    unless_null $P743, vivify_288
+    new $P743, "Undef"
+  vivify_288:
+    $P744 = $P743."ast"()
+    $P745 = $P741."!make"($P744)
+    .return ($P745)
+  control_738:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P747, exception, "payload"
-    .return ($P747)
+    getattribute $P746, exception, "payload"
+    .return ($P746)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<colonpair>"  :subid("50_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_751
+.include "except_types.pasm"
+.sub "term:sym<colonpair>"  :subid("50_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_750
 .annotate 'line', 295
-    new $P750, 'ExceptionHandler'
-    set_addr $P750, control_749
-    $P750."handle_types"(57)
-    push_eh $P750
+    new $P749, 'ExceptionHandler'
+    set_addr $P749, control_748
+    $P749."handle_types"(.CONTROL_RETURN)
+    push_eh $P749
     .lex "self", self
-    .lex "$/", param_751
+    .lex "$/", param_750
+    find_lex $P751, "$/"
     find_lex $P752, "$/"
-    find_lex $P753, "$/"
-    unless_null $P753, vivify_283
-    $P753 = root_new ['parrot';'Hash']
-  vivify_283:
-    set $P754, $P753["colonpair"]
-    unless_null $P754, vivify_284
-    new $P754, "Undef"
-  vivify_284:
-    $P755 = $P754."ast"()
-    $P756 = $P752."!make"($P755)
-    .return ($P756)
-  control_749:
+    unless_null $P752, vivify_289
+    $P752 = root_new ['parrot';'Hash']
+  vivify_289:
+    set $P753, $P752["colonpair"]
+    unless_null $P753, vivify_290
+    new $P753, "Undef"
+  vivify_290:
+    $P754 = $P753."ast"()
+    $P755 = $P751."!make"($P754)
+    .return ($P755)
+  control_748:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P757, exception, "payload"
-    .return ($P757)
+    getattribute $P756, exception, "payload"
+    .return ($P756)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<variable>"  :subid("51_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_761
+.include "except_types.pasm"
+.sub "term:sym<variable>"  :subid("51_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_760
 .annotate 'line', 296
-    new $P760, 'ExceptionHandler'
-    set_addr $P760, control_759
-    $P760."handle_types"(57)
-    push_eh $P760
+    new $P759, 'ExceptionHandler'
+    set_addr $P759, control_758
+    $P759."handle_types"(.CONTROL_RETURN)
+    push_eh $P759
     .lex "self", self
-    .lex "$/", param_761
+    .lex "$/", param_760
+    find_lex $P761, "$/"
     find_lex $P762, "$/"
-    find_lex $P763, "$/"
-    unless_null $P763, vivify_285
-    $P763 = root_new ['parrot';'Hash']
-  vivify_285:
-    set $P764, $P763["variable"]
-    unless_null $P764, vivify_286
-    new $P764, "Undef"
-  vivify_286:
-    $P765 = $P764."ast"()
-    $P766 = $P762."!make"($P765)
-    .return ($P766)
-  control_759:
+    unless_null $P762, vivify_291
+    $P762 = root_new ['parrot';'Hash']
+  vivify_291:
+    set $P763, $P762["variable"]
+    unless_null $P763, vivify_292
+    new $P763, "Undef"
+  vivify_292:
+    $P764 = $P763."ast"()
+    $P765 = $P761."!make"($P764)
+    .return ($P765)
+  control_758:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P767, exception, "payload"
-    .return ($P767)
+    getattribute $P766, exception, "payload"
+    .return ($P766)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<package_declarator>"  :subid("52_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_771
+.include "except_types.pasm"
+.sub "term:sym<package_declarator>"  :subid("52_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_770
 .annotate 'line', 297
-    new $P770, 'ExceptionHandler'
-    set_addr $P770, control_769
-    $P770."handle_types"(57)
-    push_eh $P770
+    new $P769, 'ExceptionHandler'
+    set_addr $P769, control_768
+    $P769."handle_types"(.CONTROL_RETURN)
+    push_eh $P769
     .lex "self", self
-    .lex "$/", param_771
+    .lex "$/", param_770
+    find_lex $P771, "$/"
     find_lex $P772, "$/"
-    find_lex $P773, "$/"
-    unless_null $P773, vivify_287
-    $P773 = root_new ['parrot';'Hash']
-  vivify_287:
-    set $P774, $P773["package_declarator"]
-    unless_null $P774, vivify_288
-    new $P774, "Undef"
-  vivify_288:
-    $P775 = $P774."ast"()
-    $P776 = $P772."!make"($P775)
-    .return ($P776)
-  control_769:
+    unless_null $P772, vivify_293
+    $P772 = root_new ['parrot';'Hash']
+  vivify_293:
+    set $P773, $P772["package_declarator"]
+    unless_null $P773, vivify_294
+    new $P773, "Undef"
+  vivify_294:
+    $P774 = $P773."ast"()
+    $P775 = $P771."!make"($P774)
+    .return ($P775)
+  control_768:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P777, exception, "payload"
-    .return ($P777)
+    getattribute $P776, exception, "payload"
+    .return ($P776)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<scope_declarator>"  :subid("53_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_781
+.include "except_types.pasm"
+.sub "term:sym<scope_declarator>"  :subid("53_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_780
 .annotate 'line', 298
-    new $P780, 'ExceptionHandler'
-    set_addr $P780, control_779
-    $P780."handle_types"(57)
-    push_eh $P780
+    new $P779, 'ExceptionHandler'
+    set_addr $P779, control_778
+    $P779."handle_types"(.CONTROL_RETURN)
+    push_eh $P779
     .lex "self", self
-    .lex "$/", param_781
+    .lex "$/", param_780
+    find_lex $P781, "$/"
     find_lex $P782, "$/"
-    find_lex $P783, "$/"
-    unless_null $P783, vivify_289
-    $P783 = root_new ['parrot';'Hash']
-  vivify_289:
-    set $P784, $P783["scope_declarator"]
-    unless_null $P784, vivify_290
-    new $P784, "Undef"
-  vivify_290:
-    $P785 = $P784."ast"()
-    $P786 = $P782."!make"($P785)
-    .return ($P786)
-  control_779:
+    unless_null $P782, vivify_295
+    $P782 = root_new ['parrot';'Hash']
+  vivify_295:
+    set $P783, $P782["scope_declarator"]
+    unless_null $P783, vivify_296
+    new $P783, "Undef"
+  vivify_296:
+    $P784 = $P783."ast"()
+    $P785 = $P781."!make"($P784)
+    .return ($P785)
+  control_778:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P787, exception, "payload"
-    .return ($P787)
+    getattribute $P786, exception, "payload"
+    .return ($P786)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<routine_declarator>"  :subid("54_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_791
+.include "except_types.pasm"
+.sub "term:sym<routine_declarator>"  :subid("54_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_790
 .annotate 'line', 299
-    new $P790, 'ExceptionHandler'
-    set_addr $P790, control_789
-    $P790."handle_types"(57)
-    push_eh $P790
+    new $P789, 'ExceptionHandler'
+    set_addr $P789, control_788
+    $P789."handle_types"(.CONTROL_RETURN)
+    push_eh $P789
     .lex "self", self
-    .lex "$/", param_791
+    .lex "$/", param_790
+    find_lex $P791, "$/"
     find_lex $P792, "$/"
-    find_lex $P793, "$/"
-    unless_null $P793, vivify_291
-    $P793 = root_new ['parrot';'Hash']
-  vivify_291:
-    set $P794, $P793["routine_declarator"]
-    unless_null $P794, vivify_292
-    new $P794, "Undef"
-  vivify_292:
-    $P795 = $P794."ast"()
-    $P796 = $P792."!make"($P795)
-    .return ($P796)
-  control_789:
+    unless_null $P792, vivify_297
+    $P792 = root_new ['parrot';'Hash']
+  vivify_297:
+    set $P793, $P792["routine_declarator"]
+    unless_null $P793, vivify_298
+    new $P793, "Undef"
+  vivify_298:
+    $P794 = $P793."ast"()
+    $P795 = $P791."!make"($P794)
+    .return ($P795)
+  control_788:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P797, exception, "payload"
-    .return ($P797)
+    getattribute $P796, exception, "payload"
+    .return ($P796)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<regex_declarator>"  :subid("55_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_801
+.include "except_types.pasm"
+.sub "term:sym<regex_declarator>"  :subid("55_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_800
 .annotate 'line', 300
-    new $P800, 'ExceptionHandler'
-    set_addr $P800, control_799
-    $P800."handle_types"(57)
-    push_eh $P800
+    new $P799, 'ExceptionHandler'
+    set_addr $P799, control_798
+    $P799."handle_types"(.CONTROL_RETURN)
+    push_eh $P799
     .lex "self", self
-    .lex "$/", param_801
+    .lex "$/", param_800
+    find_lex $P801, "$/"
     find_lex $P802, "$/"
-    find_lex $P803, "$/"
-    unless_null $P803, vivify_293
-    $P803 = root_new ['parrot';'Hash']
-  vivify_293:
-    set $P804, $P803["regex_declarator"]
-    unless_null $P804, vivify_294
-    new $P804, "Undef"
-  vivify_294:
-    $P805 = $P804."ast"()
-    $P806 = $P802."!make"($P805)
-    .return ($P806)
-  control_799:
+    unless_null $P802, vivify_299
+    $P802 = root_new ['parrot';'Hash']
+  vivify_299:
+    set $P803, $P802["regex_declarator"]
+    unless_null $P803, vivify_300
+    new $P803, "Undef"
+  vivify_300:
+    $P804 = $P803."ast"()
+    $P805 = $P801."!make"($P804)
+    .return ($P805)
+  control_798:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P807, exception, "payload"
-    .return ($P807)
+    getattribute $P806, exception, "payload"
+    .return ($P806)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<statement_prefix>"  :subid("56_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_811
+.include "except_types.pasm"
+.sub "term:sym<statement_prefix>"  :subid("56_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_810
 .annotate 'line', 301
-    new $P810, 'ExceptionHandler'
-    set_addr $P810, control_809
-    $P810."handle_types"(57)
-    push_eh $P810
+    new $P809, 'ExceptionHandler'
+    set_addr $P809, control_808
+    $P809."handle_types"(.CONTROL_RETURN)
+    push_eh $P809
     .lex "self", self
-    .lex "$/", param_811
+    .lex "$/", param_810
+    find_lex $P811, "$/"
     find_lex $P812, "$/"
-    find_lex $P813, "$/"
-    unless_null $P813, vivify_295
-    $P813 = root_new ['parrot';'Hash']
-  vivify_295:
-    set $P814, $P813["statement_prefix"]
-    unless_null $P814, vivify_296
-    new $P814, "Undef"
-  vivify_296:
-    $P815 = $P814."ast"()
-    $P816 = $P812."!make"($P815)
-    .return ($P816)
-  control_809:
+    unless_null $P812, vivify_301
+    $P812 = root_new ['parrot';'Hash']
+  vivify_301:
+    set $P813, $P812["statement_prefix"]
+    unless_null $P813, vivify_302
+    new $P813, "Undef"
+  vivify_302:
+    $P814 = $P813."ast"()
+    $P815 = $P811."!make"($P814)
+    .return ($P815)
+  control_808:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P817, exception, "payload"
-    .return ($P817)
+    getattribute $P816, exception, "payload"
+    .return ($P816)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<lambda>"  :subid("57_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_821
+.include "except_types.pasm"
+.sub "term:sym<lambda>"  :subid("57_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_820
 .annotate 'line', 302
-    new $P820, 'ExceptionHandler'
-    set_addr $P820, control_819
-    $P820."handle_types"(57)
-    push_eh $P820
+    new $P819, 'ExceptionHandler'
+    set_addr $P819, control_818
+    $P819."handle_types"(.CONTROL_RETURN)
+    push_eh $P819
     .lex "self", self
-    .lex "$/", param_821
+    .lex "$/", param_820
+    find_lex $P821, "$/"
     find_lex $P822, "$/"
-    find_lex $P823, "$/"
-    unless_null $P823, vivify_297
-    $P823 = root_new ['parrot';'Hash']
-  vivify_297:
-    set $P824, $P823["pblock"]
-    unless_null $P824, vivify_298
-    new $P824, "Undef"
-  vivify_298:
-    $P825 = $P824."ast"()
-    $P826 = $P822."!make"($P825)
-    .return ($P826)
-  control_819:
+    unless_null $P822, vivify_303
+    $P822 = root_new ['parrot';'Hash']
+  vivify_303:
+    set $P823, $P822["pblock"]
+    unless_null $P823, vivify_304
+    new $P823, "Undef"
+  vivify_304:
+    $P824 = $P823."ast"()
+    $P825 = $P821."!make"($P824)
+    .return ($P825)
+  control_818:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P827, exception, "payload"
-    .return ($P827)
+    getattribute $P826, exception, "payload"
+    .return ($P826)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "fatarrow"  :subid("58_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_831
+.include "except_types.pasm"
+.sub "fatarrow"  :subid("58_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_830
 .annotate 'line', 304
-    new $P830, 'ExceptionHandler'
-    set_addr $P830, control_829
-    $P830."handle_types"(57)
-    push_eh $P830
+    new $P829, 'ExceptionHandler'
+    set_addr $P829, control_828
+    $P829."handle_types"(.CONTROL_RETURN)
+    push_eh $P829
     .lex "self", self
-    .lex "$/", param_831
+    .lex "$/", param_830
 .annotate 'line', 305
-    new $P832, "Undef"
-    .lex "$past", $P832
-    find_lex $P833, "$/"
-    unless_null $P833, vivify_299
-    $P833 = root_new ['parrot';'Hash']
-  vivify_299:
-    set $P834, $P833["val"]
-    unless_null $P834, vivify_300
-    new $P834, "Undef"
-  vivify_300:
-    $P835 = $P834."ast"()
-    store_lex "$past", $P835
+    new $P831, "Undef"
+    .lex "$past", $P831
+    find_lex $P832, "$/"
+    unless_null $P832, vivify_305
+    $P832 = root_new ['parrot';'Hash']
+  vivify_305:
+    set $P833, $P832["val"]
+    unless_null $P833, vivify_306
+    new $P833, "Undef"
+  vivify_306:
+    $P834 = $P833."ast"()
+    store_lex "$past", $P834
 .annotate 'line', 306
-    find_lex $P836, "$past"
-    find_lex $P837, "$/"
-    unless_null $P837, vivify_301
-    $P837 = root_new ['parrot';'Hash']
-  vivify_301:
-    set $P838, $P837["key"]
-    unless_null $P838, vivify_302
-    new $P838, "Undef"
-  vivify_302:
-    $P839 = $P838."Str"()
-    $P836."named"($P839)
+    find_lex $P835, "$past"
+    find_lex $P836, "$/"
+    unless_null $P836, vivify_307
+    $P836 = root_new ['parrot';'Hash']
+  vivify_307:
+    set $P837, $P836["key"]
+    unless_null $P837, vivify_308
+    new $P837, "Undef"
+  vivify_308:
+    $P838 = $P837."Str"()
+    $P835."named"($P838)
 .annotate 'line', 307
-    find_lex $P840, "$/"
-    find_lex $P841, "$past"
-    $P842 = $P840."!make"($P841)
+    find_lex $P839, "$/"
+    find_lex $P840, "$past"
+    $P841 = $P839."!make"($P840)
 .annotate 'line', 304
-    .return ($P842)
-  control_829:
+    .return ($P841)
+  control_828:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P843, exception, "payload"
-    .return ($P843)
+    getattribute $P842, exception, "payload"
+    .return ($P842)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "colonpair"  :subid("59_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_847
+.include "except_types.pasm"
+.sub "colonpair"  :subid("59_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_846
 .annotate 'line', 310
-    new $P846, 'ExceptionHandler'
-    set_addr $P846, control_845
-    $P846."handle_types"(57)
-    push_eh $P846
+    new $P845, 'ExceptionHandler'
+    set_addr $P845, control_844
+    $P845."handle_types"(.CONTROL_RETURN)
+    push_eh $P845
     .lex "self", self
-    .lex "$/", param_847
+    .lex "$/", param_846
 .annotate 'line', 311
-    new $P848, "Undef"
-    .lex "$past", $P848
-.annotate 'line', 312
-    find_lex $P851, "$/"
-    unless_null $P851, vivify_303
-    $P851 = root_new ['parrot';'Hash']
-  vivify_303:
-    set $P852, $P851["circumfix"]
-    unless_null $P852, vivify_304
-    new $P852, "Undef"
-  vivify_304:
-    if $P852, if_850
-.annotate 'line', 313
-    get_hll_global $P857, ["PAST"], "Val"
-    find_lex $P858, "$/"
-    unless_null $P858, vivify_305
-    $P858 = root_new ['parrot';'Hash']
-  vivify_305:
-    set $P859, $P858["not"]
-    unless_null $P859, vivify_306
-    new $P859, "Undef"
-  vivify_306:
-    isfalse $I860, $P859
-    $P861 = $P857."new"($I860 :named("value"))
-    set $P849, $P861
+    new $P847, "Undef"
+    .lex "$past", $P847
 .annotate 'line', 312
-    goto if_850_end
-  if_850:
-    find_lex $P853, "$/"
-    unless_null $P853, vivify_307
-    $P853 = root_new ['parrot';'Hash']
-  vivify_307:
-    set $P854, $P853["circumfix"]
-    unless_null $P854, vivify_308
-    $P854 = root_new ['parrot';'ResizablePMCArray']
-  vivify_308:
-    set $P855, $P854[0]
-    unless_null $P855, vivify_309
-    new $P855, "Undef"
+    find_lex $P850, "$/"
+    unless_null $P850, vivify_309
+    $P850 = root_new ['parrot';'Hash']
   vivify_309:
-    $P856 = $P855."ast"()
-    set $P849, $P856
-  if_850_end:
-    store_lex "$past", $P849
-.annotate 'line', 314
-    find_lex $P862, "$past"
-    find_lex $P863, "$/"
-    unless_null $P863, vivify_310
-    $P863 = root_new ['parrot';'Hash']
+    set $P851, $P850["circumfix"]
+    unless_null $P851, vivify_310
+    new $P851, "Undef"
   vivify_310:
-    set $P864, $P863["identifier"]
-    unless_null $P864, vivify_311
-    new $P864, "Undef"
+    if $P851, if_849
+.annotate 'line', 313
+    get_hll_global $P856, ["PAST"], "Val"
+    find_lex $P857, "$/"
+    unless_null $P857, vivify_311
+    $P857 = root_new ['parrot';'Hash']
   vivify_311:
-    set $S865, $P864
-    $P862."named"($S865)
+    set $P858, $P857["not"]
+    unless_null $P858, vivify_312
+    new $P858, "Undef"
+  vivify_312:
+    isfalse $I859, $P858
+    $P860 = $P856."new"($I859 :named("value"))
+    set $P848, $P860
+.annotate 'line', 312
+    goto if_849_end
+  if_849:
+    find_lex $P852, "$/"
+    unless_null $P852, vivify_313
+    $P852 = root_new ['parrot';'Hash']
+  vivify_313:
+    set $P853, $P852["circumfix"]
+    unless_null $P853, vivify_314
+    $P853 = root_new ['parrot';'ResizablePMCArray']
+  vivify_314:
+    set $P854, $P853[0]
+    unless_null $P854, vivify_315
+    new $P854, "Undef"
+  vivify_315:
+    $P855 = $P854."ast"()
+    set $P848, $P855
+  if_849_end:
+    store_lex "$past", $P848
+.annotate 'line', 314
+    find_lex $P861, "$past"
+    find_lex $P862, "$/"
+    unless_null $P862, vivify_316
+    $P862 = root_new ['parrot';'Hash']
+  vivify_316:
+    set $P863, $P862["identifier"]
+    unless_null $P863, vivify_317
+    new $P863, "Undef"
+  vivify_317:
+    set $S864, $P863
+    $P861."named"($S864)
 .annotate 'line', 315
-    find_lex $P866, "$/"
-    find_lex $P867, "$past"
-    $P868 = $P866."!make"($P867)
+    find_lex $P865, "$/"
+    find_lex $P866, "$past"
+    $P867 = $P865."!make"($P866)
 .annotate 'line', 310
-    .return ($P868)
-  control_845:
+    .return ($P867)
+  control_844:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P869, exception, "payload"
-    .return ($P869)
+    getattribute $P868, exception, "payload"
+    .return ($P868)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "variable"  :subid("60_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_873
+.include "except_types.pasm"
+.sub "variable"  :subid("60_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_872
 .annotate 'line', 318
-    .const 'Sub' $P886 = "61_1274853047.92727" 
-    capture_lex $P886
-    new $P872, 'ExceptionHandler'
-    set_addr $P872, control_871
-    $P872."handle_types"(57)
-    push_eh $P872
+    .const 'Sub' $P885 = "61_1275811497.55064" 
+    capture_lex $P885
+    new $P871, 'ExceptionHandler'
+    set_addr $P871, control_870
+    $P871."handle_types"(.CONTROL_RETURN)
+    push_eh $P871
     .lex "self", self
-    .lex "$/", param_873
+    .lex "$/", param_872
 .annotate 'line', 319
-    new $P874, "Undef"
-    .lex "$past", $P874
+    new $P873, "Undef"
+    .lex "$past", $P873
 .annotate 'line', 318
-    find_lex $P875, "$past"
+    find_lex $P874, "$past"
 .annotate 'line', 320
-    find_lex $P877, "$/"
-    unless_null $P877, vivify_312
-    $P877 = root_new ['parrot';'Hash']
-  vivify_312:
-    set $P878, $P877["postcircumfix"]
-    unless_null $P878, vivify_313
-    new $P878, "Undef"
-  vivify_313:
-    if $P878, if_876
+    find_lex $P876, "$/"
+    unless_null $P876, vivify_318
+    $P876 = root_new ['parrot';'Hash']
+  vivify_318:
+    set $P877, $P876["postcircumfix"]
+    unless_null $P877, vivify_319
+    new $P877, "Undef"
+  vivify_319:
+    if $P877, if_875
 .annotate 'line', 324
-    .const 'Sub' $P886 = "61_1274853047.92727" 
-    capture_lex $P886
-    $P886()
-    goto if_876_end
-  if_876:
+    .const 'Sub' $P885 = "61_1275811497.55064" 
+    capture_lex $P885
+    $P885()
+    goto if_875_end
+  if_875:
 .annotate 'line', 321
-    find_lex $P879, "$/"
-    unless_null $P879, vivify_330
-    $P879 = root_new ['parrot';'Hash']
-  vivify_330:
-    set $P880, $P879["postcircumfix"]
-    unless_null $P880, vivify_331
-    new $P880, "Undef"
-  vivify_331:
-    $P881 = $P880."ast"()
-    store_lex "$past", $P881
+    find_lex $P878, "$/"
+    unless_null $P878, vivify_336
+    $P878 = root_new ['parrot';'Hash']
+  vivify_336:
+    set $P879, $P878["postcircumfix"]
+    unless_null $P879, vivify_337
+    new $P879, "Undef"
+  vivify_337:
+    $P880 = $P879."ast"()
+    store_lex "$past", $P880
 .annotate 'line', 322
-    find_lex $P882, "$past"
-    get_hll_global $P883, ["PAST"], "Var"
-    $P884 = $P883."new"("$/" :named("name"))
-    $P882."unshift"($P884)
-  if_876_end:
+    find_lex $P881, "$past"
+    get_hll_global $P882, ["PAST"], "Var"
+    $P883 = $P882."new"("$/" :named("name"))
+    $P881."unshift"($P883)
+  if_875_end:
 .annotate 'line', 353
-    find_lex $P955, "$/"
-    find_lex $P956, "$past"
-    $P957 = $P955."!make"($P956)
+    find_lex $P954, "$/"
+    find_lex $P955, "$past"
+    $P956 = $P954."!make"($P955)
 .annotate 'line', 318
-    .return ($P957)
-  control_871:
+    .return ($P956)
+  control_870:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P958, exception, "payload"
-    .return ($P958)
+    getattribute $P957, exception, "payload"
+    .return ($P957)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block885"  :anon :subid("61_1274853047.92727") :outer("60_1274853047.92727")
+.sub "_block884"  :anon :subid("61_1275811497.55064") :outer("60_1275811497.55064")
 .annotate 'line', 325
-    $P887 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@name", $P887
-    get_hll_global $P888, ["NQP"], "Compiler"
-    find_lex $P889, "$/"
-    set $S890, $P889
-    $P891 = $P888."parse_name"($S890)
-    store_lex "@name", $P891
+    $P886 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@name", $P886
+    get_hll_global $P887, ["NQP"], "Compiler"
+    find_lex $P888, "$/"
+    set $S889, $P888
+    $P890 = $P887."parse_name"($S889)
+    store_lex "@name", $P890
 .annotate 'line', 326
-    get_hll_global $P892, ["PAST"], "Var"
-    find_lex $P893, "@name"
-    $P894 = $P893."pop"()
-    set $S895, $P894
-    $P896 = $P892."new"($S895 :named("name"))
-    store_lex "$past", $P896
+    get_hll_global $P891, ["PAST"], "Var"
+    find_lex $P892, "@name"
+    $P893 = $P892."pop"()
+    set $S894, $P893
+    $P895 = $P891."new"($S894 :named("name"))
+    store_lex "$past", $P895
 .annotate 'line', 327
-    find_lex $P898, "@name"
-    unless $P898, if_897_end
+    find_lex $P897, "@name"
+    unless $P897, if_896_end
 .annotate 'line', 328
-    find_lex $P900, "@name"
-    unless_null $P900, vivify_314
-    $P900 = root_new ['parrot';'ResizablePMCArray']
-  vivify_314:
-    set $P901, $P900[0]
-    unless_null $P901, vivify_315
-    new $P901, "Undef"
-  vivify_315:
-    set $S902, $P901
-    iseq $I903, $S902, "GLOBAL"
-    unless $I903, if_899_end
-    find_lex $P904, "@name"
-    $P904."shift"()
-  if_899_end:
+    find_lex $P899, "@name"
+    unless_null $P899, vivify_320
+    $P899 = root_new ['parrot';'ResizablePMCArray']
+  vivify_320:
+    set $P900, $P899[0]
+    unless_null $P900, vivify_321
+    new $P900, "Undef"
+  vivify_321:
+    set $S901, $P900
+    iseq $I902, $S901, "GLOBAL"
+    unless $I902, if_898_end
+    find_lex $P903, "@name"
+    $P903."shift"()
+  if_898_end:
 .annotate 'line', 329
-    find_lex $P905, "$past"
-    find_lex $P906, "@name"
-    $P905."namespace"($P906)
+    find_lex $P904, "$past"
+    find_lex $P905, "@name"
+    $P904."namespace"($P905)
 .annotate 'line', 330
-    find_lex $P907, "$past"
-    $P907."scope"("package")
+    find_lex $P906, "$past"
+    $P906."scope"("package")
 .annotate 'line', 331
-    find_lex $P908, "$past"
-    find_lex $P909, "$/"
-    unless_null $P909, vivify_316
-    $P909 = root_new ['parrot';'Hash']
-  vivify_316:
-    set $P910, $P909["sigil"]
-    unless_null $P910, vivify_317
-    new $P910, "Undef"
-  vivify_317:
-    $P911 = "vivitype"($P910)
-    $P908."viviself"($P911)
+    find_lex $P907, "$past"
+    find_lex $P908, "$/"
+    unless_null $P908, vivify_322
+    $P908 = root_new ['parrot';'Hash']
+  vivify_322:
+    set $P909, $P908["sigil"]
+    unless_null $P909, vivify_323
+    new $P909, "Undef"
+  vivify_323:
+    $P910 = "vivitype"($P909)
+    $P907."viviself"($P910)
 .annotate 'line', 332
-    find_lex $P912, "$past"
-    $P912."lvalue"(1)
-  if_897_end:
+    find_lex $P911, "$past"
+    $P911."lvalue"(1)
+  if_896_end:
 .annotate 'line', 334
-    find_lex $P915, "$/"
-    unless_null $P915, vivify_318
-    $P915 = root_new ['parrot';'Hash']
-  vivify_318:
-    set $P916, $P915["twigil"]
-    unless_null $P916, vivify_319
-    $P916 = root_new ['parrot';'ResizablePMCArray']
-  vivify_319:
-    set $P917, $P916[0]
-    unless_null $P917, vivify_320
-    new $P917, "Undef"
-  vivify_320:
-    set $S918, $P917
-    iseq $I919, $S918, "*"
-    if $I919, if_914
+    find_lex $P914, "$/"
+    unless_null $P914, vivify_324
+    $P914 = root_new ['parrot';'Hash']
+  vivify_324:
+    set $P915, $P914["twigil"]
+    unless_null $P915, vivify_325
+    $P915 = root_new ['parrot';'ResizablePMCArray']
+  vivify_325:
+    set $P916, $P915[0]
+    unless_null $P916, vivify_326
+    new $P916, "Undef"
+  vivify_326:
+    set $S917, $P916
+    iseq $I918, $S917, "*"
+    if $I918, if_913
 .annotate 'line', 347
-    find_lex $P941, "$/"
-    unless_null $P941, vivify_321
-    $P941 = root_new ['parrot';'Hash']
-  vivify_321:
-    set $P942, $P941["twigil"]
-    unless_null $P942, vivify_322
-    $P942 = root_new ['parrot';'ResizablePMCArray']
-  vivify_322:
-    set $P943, $P942[0]
-    unless_null $P943, vivify_323
-    new $P943, "Undef"
-  vivify_323:
-    set $S944, $P943
-    iseq $I945, $S944, "!"
-    if $I945, if_940
-    new $P939, 'Integer'
-    set $P939, $I945
-    goto if_940_end
-  if_940:
+    find_lex $P940, "$/"
+    unless_null $P940, vivify_327
+    $P940 = root_new ['parrot';'Hash']
+  vivify_327:
+    set $P941, $P940["twigil"]
+    unless_null $P941, vivify_328
+    $P941 = root_new ['parrot';'ResizablePMCArray']
+  vivify_328:
+    set $P942, $P941[0]
+    unless_null $P942, vivify_329
+    new $P942, "Undef"
+  vivify_329:
+    set $S943, $P942
+    iseq $I944, $S943, "!"
+    if $I944, if_939
+    new $P938, 'Integer'
+    set $P938, $I944
+    goto if_939_end
+  if_939:
 .annotate 'line', 348
-    find_lex $P946, "$past"
-    get_hll_global $P947, ["PAST"], "Var"
-    $P948 = $P947."new"("self" :named("name"))
-    $P946."push"($P948)
+    find_lex $P945, "$past"
+    get_hll_global $P946, ["PAST"], "Var"
+    $P947 = $P946."new"("self" :named("name"))
+    $P945."push"($P947)
 .annotate 'line', 349
-    find_lex $P949, "$past"
-    $P949."scope"("attribute")
+    find_lex $P948, "$past"
+    $P948."scope"("attribute")
 .annotate 'line', 350
-    find_lex $P950, "$past"
-    find_lex $P951, "$/"
-    unless_null $P951, vivify_324
-    $P951 = root_new ['parrot';'Hash']
-  vivify_324:
-    set $P952, $P951["sigil"]
-    unless_null $P952, vivify_325
-    new $P952, "Undef"
-  vivify_325:
-    $P953 = "vivitype"($P952)
-    $P954 = $P950."viviself"($P953)
+    find_lex $P949, "$past"
+    find_lex $P950, "$/"
+    unless_null $P950, vivify_330
+    $P950 = root_new ['parrot';'Hash']
+  vivify_330:
+    set $P951, $P950["sigil"]
+    unless_null $P951, vivify_331
+    new $P951, "Undef"
+  vivify_331:
+    $P952 = "vivitype"($P951)
+    $P953 = $P949."viviself"($P952)
 .annotate 'line', 347
-    set $P939, $P954
-  if_940_end:
-    set $P913, $P939
+    set $P938, $P953
+  if_939_end:
+    set $P912, $P938
 .annotate 'line', 334
-    goto if_914_end
-  if_914:
+    goto if_913_end
+  if_913:
 .annotate 'line', 335
-    find_lex $P920, "$past"
-    $P920."scope"("contextual")
+    find_lex $P919, "$past"
+    $P919."scope"("contextual")
 .annotate 'line', 336
-    find_lex $P921, "$past"
+    find_lex $P920, "$past"
 .annotate 'line', 337
-    get_hll_global $P922, ["PAST"], "Var"
+    get_hll_global $P921, ["PAST"], "Var"
 .annotate 'line', 339
-    find_lex $P923, "$/"
-    unless_null $P923, vivify_326
-    $P923 = root_new ['parrot';'Hash']
-  vivify_326:
-    set $P924, $P923["sigil"]
-    unless_null $P924, vivify_327
-    new $P924, "Undef"
-  vivify_327:
-    set $S925, $P924
-    new $P926, 'String'
-    set $P926, $S925
-    find_lex $P927, "$/"
-    unless_null $P927, vivify_328
-    $P927 = root_new ['parrot';'Hash']
-  vivify_328:
-    set $P928, $P927["desigilname"]
-    unless_null $P928, vivify_329
-    new $P928, "Undef"
-  vivify_329:
-    concat $P929, $P926, $P928
+    find_lex $P922, "$/"
+    unless_null $P922, vivify_332
+    $P922 = root_new ['parrot';'Hash']
+  vivify_332:
+    set $P923, $P922["sigil"]
+    unless_null $P923, vivify_333
+    new $P923, "Undef"
+  vivify_333:
+    set $S924, $P923
+    new $P925, 'String'
+    set $P925, $S924
+    find_lex $P926, "$/"
+    unless_null $P926, vivify_334
+    $P926 = root_new ['parrot';'Hash']
+  vivify_334:
+    set $P927, $P926["desigilname"]
+    unless_null $P927, vivify_335
+    new $P927, "Undef"
+  vivify_335:
+    concat $P928, $P925, $P927
 .annotate 'line', 341
-    get_hll_global $P930, ["PAST"], "Op"
-    new $P931, "String"
-    assign $P931, "Contextual "
-    find_lex $P932, "$/"
-    set $S933, $P932
-    concat $P934, $P931, $S933
-    concat $P935, $P934, " not found"
-    $P936 = $P930."new"($P935, "die" :named("pirop"))
-    $P937 = $P922."new"("package" :named("scope"), "" :named("namespace"), $P929 :named("name"), $P936 :named("viviself"))
+    get_hll_global $P929, ["PAST"], "Op"
+    new $P930, "String"
+    assign $P930, "Contextual "
+    find_lex $P931, "$/"
+    set $S932, $P931
+    concat $P933, $P930, $S932
+    concat $P934, $P933, " not found"
+    $P935 = $P929."new"($P934, "die" :named("pirop"))
+    $P936 = $P921."new"("package" :named("scope"), "" :named("namespace"), $P928 :named("name"), $P935 :named("viviself"))
 .annotate 'line', 337
-    $P938 = $P921."viviself"($P937)
+    $P937 = $P920."viviself"($P936)
 .annotate 'line', 334
-    set $P913, $P938
-  if_914_end:
+    set $P912, $P937
+  if_913_end:
 .annotate 'line', 324
-    .return ($P913)
+    .return ($P912)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<module>"  :subid("62_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_962
+.include "except_types.pasm"
+.sub "package_declarator:sym<module>"  :subid("62_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_961
 .annotate 'line', 356
-    new $P961, 'ExceptionHandler'
-    set_addr $P961, control_960
-    $P961."handle_types"(57)
-    push_eh $P961
+    new $P960, 'ExceptionHandler'
+    set_addr $P960, control_959
+    $P960."handle_types"(.CONTROL_RETURN)
+    push_eh $P960
     .lex "self", self
-    .lex "$/", param_962
+    .lex "$/", param_961
+    find_lex $P962, "$/"
     find_lex $P963, "$/"
-    find_lex $P964, "$/"
-    unless_null $P964, vivify_332
-    $P964 = root_new ['parrot';'Hash']
-  vivify_332:
-    set $P965, $P964["package_def"]
-    unless_null $P965, vivify_333
-    new $P965, "Undef"
-  vivify_333:
-    $P966 = $P965."ast"()
-    $P967 = $P963."!make"($P966)
-    .return ($P967)
-  control_960:
+    unless_null $P963, vivify_338
+    $P963 = root_new ['parrot';'Hash']
+  vivify_338:
+    set $P964, $P963["package_def"]
+    unless_null $P964, vivify_339
+    new $P964, "Undef"
+  vivify_339:
+    $P965 = $P964."ast"()
+    $P966 = $P962."!make"($P965)
+    .return ($P966)
+  control_959:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P968, exception, "payload"
-    .return ($P968)
+    getattribute $P967, exception, "payload"
+    .return ($P967)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<class>"  :subid("63_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_972
+.include "except_types.pasm"
+.sub "package_declarator:sym<class>"  :subid("63_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_971
 .annotate 'line', 357
-    new $P971, 'ExceptionHandler'
-    set_addr $P971, control_970
-    $P971."handle_types"(57)
-    push_eh $P971
+    new $P970, 'ExceptionHandler'
+    set_addr $P970, control_969
+    $P970."handle_types"(.CONTROL_RETURN)
+    push_eh $P970
     .lex "self", self
-    .lex "$/", param_972
+    .lex "$/", param_971
 .annotate 'line', 358
-    new $P973, "Undef"
-    .lex "$past", $P973
+    new $P972, "Undef"
+    .lex "$past", $P972
 .annotate 'line', 359
-    new $P974, "Undef"
-    .lex "$classinit", $P974
+    new $P973, "Undef"
+    .lex "$classinit", $P973
 .annotate 'line', 368
-    new $P975, "Undef"
-    .lex "$parent", $P975
+    new $P974, "Undef"
+    .lex "$parent", $P974
 .annotate 'line', 358
-    find_lex $P976, "$/"
-    unless_null $P976, vivify_334
-    $P976 = root_new ['parrot';'Hash']
-  vivify_334:
-    set $P977, $P976["package_def"]
-    unless_null $P977, vivify_335
-    new $P977, "Undef"
-  vivify_335:
-    $P978 = $P977."ast"()
-    store_lex "$past", $P978
+    find_lex $P975, "$/"
+    unless_null $P975, vivify_340
+    $P975 = root_new ['parrot';'Hash']
+  vivify_340:
+    set $P976, $P975["package_def"]
+    unless_null $P976, vivify_341
+    new $P976, "Undef"
+  vivify_341:
+    $P977 = $P976."ast"()
+    store_lex "$past", $P977
 .annotate 'line', 360
-    get_hll_global $P979, ["PAST"], "Op"
+    get_hll_global $P978, ["PAST"], "Op"
 .annotate 'line', 361
-    get_hll_global $P980, ["PAST"], "Op"
-    $P981 = $P980."new"("    %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
+    get_hll_global $P979, ["PAST"], "Op"
+    $P980 = $P979."new"("    %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
 .annotate 'line', 364
-    find_lex $P982, "$/"
-    unless_null $P982, vivify_336
+    find_lex $P981, "$/"
+    unless_null $P981, vivify_342
+    $P981 = root_new ['parrot';'Hash']
+  vivify_342:
+    set $P982, $P981["package_def"]
+    unless_null $P982, vivify_343
     $P982 = root_new ['parrot';'Hash']
-  vivify_336:
-    set $P983, $P982["package_def"]
-    unless_null $P983, vivify_337
-    $P983 = root_new ['parrot';'Hash']
-  vivify_337:
-    set $P984, $P983["name"]
-    unless_null $P984, vivify_338
-    new $P984, "Undef"
-  vivify_338:
-    set $S985, $P984
-    $P986 = $P979."new"($P981, $S985, "new_class" :named("name"), "callmethod" :named("pasttype"))
+  vivify_343:
+    set $P983, $P982["name"]
+    unless_null $P983, vivify_344
+    new $P983, "Undef"
+  vivify_344:
+    set $S984, $P983
+    $P985 = $P978."new"($P980, $S984, "new_class" :named("name"), "callmethod" :named("pasttype"))
 .annotate 'line', 360
-    store_lex "$classinit", $P986
+    store_lex "$classinit", $P985
 .annotate 'line', 368
-    find_lex $P989, "$/"
-    unless_null $P989, vivify_339
+    find_lex $P988, "$/"
+    unless_null $P988, vivify_345
+    $P988 = root_new ['parrot';'Hash']
+  vivify_345:
+    set $P989, $P988["package_def"]
+    unless_null $P989, vivify_346
     $P989 = root_new ['parrot';'Hash']
-  vivify_339:
-    set $P990, $P989["package_def"]
-    unless_null $P990, vivify_340
-    $P990 = root_new ['parrot';'Hash']
-  vivify_340:
-    set $P991, $P990["parent"]
-    unless_null $P991, vivify_341
-    $P991 = root_new ['parrot';'ResizablePMCArray']
-  vivify_341:
-    set $P992, $P991[0]
-    unless_null $P992, vivify_342
-    new $P992, "Undef"
-  vivify_342:
-    set $S993, $P992
-    unless $S993, unless_988
-    new $P987, 'String'
-    set $P987, $S993
-    goto unless_988_end
-  unless_988:
+  vivify_346:
+    set $P990, $P989["parent"]
+    unless_null $P990, vivify_347
+    $P990 = root_new ['parrot';'ResizablePMCArray']
+  vivify_347:
+    set $P991, $P990[0]
+    unless_null $P991, vivify_348
+    new $P991, "Undef"
+  vivify_348:
+    set $S992, $P991
+    unless $S992, unless_987
+    new $P986, 'String'
+    set $P986, $S992
+    goto unless_987_end
+  unless_987:
 .annotate 'line', 369
-    find_lex $P996, "$/"
-    unless_null $P996, vivify_343
-    $P996 = root_new ['parrot';'Hash']
-  vivify_343:
-    set $P997, $P996["sym"]
-    unless_null $P997, vivify_344
-    new $P997, "Undef"
-  vivify_344:
-    set $S998, $P997
-    iseq $I999, $S998, "grammar"
-    if $I999, if_995
-    new $P1001, "String"
-    assign $P1001, ""
-    set $P994, $P1001
-    goto if_995_end
-  if_995:
+    find_lex $P995, "$/"
+    unless_null $P995, vivify_349
+    $P995 = root_new ['parrot';'Hash']
+  vivify_349:
+    set $P996, $P995["sym"]
+    unless_null $P996, vivify_350
+    new $P996, "Undef"
+  vivify_350:
+    set $S997, $P996
+    iseq $I998, $S997, "grammar"
+    if $I998, if_994
     new $P1000, "String"
-    assign $P1000, "Regex::Cursor"
-    set $P994, $P1000
-  if_995_end:
-    set $P987, $P994
-  unless_988_end:
-    store_lex "$parent", $P987
+    assign $P1000, ""
+    set $P993, $P1000
+    goto if_994_end
+  if_994:
+    new $P999, "String"
+    assign $P999, "Regex::Cursor"
+    set $P993, $P999
+  if_994_end:
+    set $P986, $P993
+  unless_987_end:
+    store_lex "$parent", $P986
 .annotate 'line', 370
-    find_lex $P1003, "$parent"
-    unless $P1003, if_1002_end
+    find_lex $P1002, "$parent"
+    unless $P1002, if_1001_end
 .annotate 'line', 371
-    find_lex $P1004, "$classinit"
-    get_hll_global $P1005, ["PAST"], "Val"
-    find_lex $P1006, "$parent"
-    $P1007 = $P1005."new"($P1006 :named("value"), "parent" :named("named"))
-    $P1004."push"($P1007)
-  if_1002_end:
+    find_lex $P1003, "$classinit"
+    get_hll_global $P1004, ["PAST"], "Val"
+    find_lex $P1005, "$parent"
+    $P1006 = $P1004."new"($P1005 :named("value"), "parent" :named("named"))
+    $P1003."push"($P1006)
+  if_1001_end:
 .annotate 'line', 373
-    find_lex $P1009, "$past"
-    unless_null $P1009, vivify_345
-    $P1009 = root_new ['parrot';'Hash']
-  vivify_345:
-    set $P1010, $P1009["attributes"]
-    unless_null $P1010, vivify_346
-    new $P1010, "Undef"
-  vivify_346:
-    unless $P1010, if_1008_end
+    find_lex $P1008, "$past"
+    unless_null $P1008, vivify_351
+    $P1008 = root_new ['parrot';'Hash']
+  vivify_351:
+    set $P1009, $P1008["attributes"]
+    unless_null $P1009, vivify_352
+    new $P1009, "Undef"
+  vivify_352:
+    unless $P1009, if_1007_end
 .annotate 'line', 374
-    find_lex $P1011, "$classinit"
-    find_lex $P1012, "$past"
-    unless_null $P1012, vivify_347
-    $P1012 = root_new ['parrot';'Hash']
-  vivify_347:
-    set $P1013, $P1012["attributes"]
-    unless_null $P1013, vivify_348
-    new $P1013, "Undef"
-  vivify_348:
-    $P1011."push"($P1013)
-  if_1008_end:
+    find_lex $P1010, "$classinit"
+    find_lex $P1011, "$past"
+    unless_null $P1011, vivify_353
+    $P1011 = root_new ['parrot';'Hash']
+  vivify_353:
+    set $P1012, $P1011["attributes"]
+    unless_null $P1012, vivify_354
+    new $P1012, "Undef"
+  vivify_354:
+    $P1010."push"($P1012)
+  if_1007_end:
 .annotate 'line', 376
-    get_global $P1014, "@BLOCK"
-    unless_null $P1014, vivify_349
-    $P1014 = root_new ['parrot';'ResizablePMCArray']
-  vivify_349:
-    set $P1015, $P1014[0]
-    unless_null $P1015, vivify_350
-    new $P1015, "Undef"
-  vivify_350:
-    $P1016 = $P1015."loadinit"()
-    find_lex $P1017, "$classinit"
-    $P1016."push"($P1017)
+    get_global $P1013, "@BLOCK"
+    unless_null $P1013, vivify_355
+    $P1013 = root_new ['parrot';'ResizablePMCArray']
+  vivify_355:
+    set $P1014, $P1013[0]
+    unless_null $P1014, vivify_356
+    new $P1014, "Undef"
+  vivify_356:
+    $P1015 = $P1014."loadinit"()
+    find_lex $P1016, "$classinit"
+    $P1015."push"($P1016)
 .annotate 'line', 377
-    find_lex $P1018, "$/"
-    find_lex $P1019, "$past"
-    $P1020 = $P1018."!make"($P1019)
+    find_lex $P1017, "$/"
+    find_lex $P1018, "$past"
+    $P1019 = $P1017."!make"($P1018)
 .annotate 'line', 357
-    .return ($P1020)
-  control_970:
+    .return ($P1019)
+  control_969:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1021, exception, "payload"
-    .return ($P1021)
+    getattribute $P1020, exception, "payload"
+    .return ($P1020)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_def"  :subid("64_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1025
+.include "except_types.pasm"
+.sub "package_def"  :subid("64_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1024
 .annotate 'line', 380
-    new $P1024, 'ExceptionHandler'
-    set_addr $P1024, control_1023
-    $P1024."handle_types"(57)
-    push_eh $P1024
+    new $P1023, 'ExceptionHandler'
+    set_addr $P1023, control_1022
+    $P1023."handle_types"(.CONTROL_RETURN)
+    push_eh $P1023
     .lex "self", self
-    .lex "$/", param_1025
+    .lex "$/", param_1024
 .annotate 'line', 381
-    new $P1026, "Undef"
-    .lex "$past", $P1026
-    find_lex $P1029, "$/"
-    unless_null $P1029, vivify_351
-    $P1029 = root_new ['parrot';'Hash']
-  vivify_351:
-    set $P1030, $P1029["block"]
-    unless_null $P1030, vivify_352
-    new $P1030, "Undef"
-  vivify_352:
-    if $P1030, if_1028
-    find_lex $P1034, "$/"
-    unless_null $P1034, vivify_353
-    $P1034 = root_new ['parrot';'Hash']
-  vivify_353:
-    set $P1035, $P1034["comp_unit"]
-    unless_null $P1035, vivify_354
-    new $P1035, "Undef"
-  vivify_354:
-    $P1036 = $P1035."ast"()
-    set $P1027, $P1036
-    goto if_1028_end
-  if_1028:
-    find_lex $P1031, "$/"
-    unless_null $P1031, vivify_355
-    $P1031 = root_new ['parrot';'Hash']
-  vivify_355:
-    set $P1032, $P1031["block"]
-    unless_null $P1032, vivify_356
-    new $P1032, "Undef"
-  vivify_356:
-    $P1033 = $P1032."ast"()
-    set $P1027, $P1033
-  if_1028_end:
-    store_lex "$past", $P1027
-.annotate 'line', 382
-    find_lex $P1037, "$past"
-    find_lex $P1038, "$/"
-    unless_null $P1038, vivify_357
-    $P1038 = root_new ['parrot';'Hash']
+    new $P1025, "Undef"
+    .lex "$past", $P1025
+    find_lex $P1028, "$/"
+    unless_null $P1028, vivify_357
+    $P1028 = root_new ['parrot';'Hash']
   vivify_357:
-    set $P1039, $P1038["name"]
-    unless_null $P1039, vivify_358
-    $P1039 = root_new ['parrot';'Hash']
+    set $P1029, $P1028["block"]
+    unless_null $P1029, vivify_358
+    new $P1029, "Undef"
   vivify_358:
-    set $P1040, $P1039["identifier"]
-    unless_null $P1040, vivify_359
-    new $P1040, "Undef"
+    if $P1029, if_1027
+    find_lex $P1033, "$/"
+    unless_null $P1033, vivify_359
+    $P1033 = root_new ['parrot';'Hash']
   vivify_359:
-    $P1037."namespace"($P1040)
+    set $P1034, $P1033["comp_unit"]
+    unless_null $P1034, vivify_360
+    new $P1034, "Undef"
+  vivify_360:
+    $P1035 = $P1034."ast"()
+    set $P1026, $P1035
+    goto if_1027_end
+  if_1027:
+    find_lex $P1030, "$/"
+    unless_null $P1030, vivify_361
+    $P1030 = root_new ['parrot';'Hash']
+  vivify_361:
+    set $P1031, $P1030["block"]
+    unless_null $P1031, vivify_362
+    new $P1031, "Undef"
+  vivify_362:
+    $P1032 = $P1031."ast"()
+    set $P1026, $P1032
+  if_1027_end:
+    store_lex "$past", $P1026
+.annotate 'line', 382
+    find_lex $P1036, "$past"
+    find_lex $P1037, "$/"
+    unless_null $P1037, vivify_363
+    $P1037 = root_new ['parrot';'Hash']
+  vivify_363:
+    set $P1038, $P1037["name"]
+    unless_null $P1038, vivify_364
+    $P1038 = root_new ['parrot';'Hash']
+  vivify_364:
+    set $P1039, $P1038["identifier"]
+    unless_null $P1039, vivify_365
+    new $P1039, "Undef"
+  vivify_365:
+    $P1036."namespace"($P1039)
 .annotate 'line', 383
-    find_lex $P1041, "$past"
-    $P1041."blocktype"("immediate")
+    find_lex $P1040, "$past"
+    $P1040."blocktype"("immediate")
 .annotate 'line', 384
-    find_lex $P1042, "$/"
-    find_lex $P1043, "$past"
-    $P1044 = $P1042."!make"($P1043)
+    find_lex $P1041, "$/"
+    find_lex $P1042, "$past"
+    $P1043 = $P1041."!make"($P1042)
 .annotate 'line', 380
-    .return ($P1044)
-  control_1023:
+    .return ($P1043)
+  control_1022:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1045, exception, "payload"
-    .return ($P1045)
+    getattribute $P1044, exception, "payload"
+    .return ($P1044)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<my>"  :subid("65_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1049
+.include "except_types.pasm"
+.sub "scope_declarator:sym<my>"  :subid("65_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1048
 .annotate 'line', 387
-    new $P1048, 'ExceptionHandler'
-    set_addr $P1048, control_1047
-    $P1048."handle_types"(57)
-    push_eh $P1048
+    new $P1047, 'ExceptionHandler'
+    set_addr $P1047, control_1046
+    $P1047."handle_types"(.CONTROL_RETURN)
+    push_eh $P1047
     .lex "self", self
-    .lex "$/", param_1049
+    .lex "$/", param_1048
+    find_lex $P1049, "$/"
     find_lex $P1050, "$/"
-    find_lex $P1051, "$/"
-    unless_null $P1051, vivify_360
-    $P1051 = root_new ['parrot';'Hash']
-  vivify_360:
-    set $P1052, $P1051["scoped"]
-    unless_null $P1052, vivify_361
-    new $P1052, "Undef"
-  vivify_361:
-    $P1053 = $P1052."ast"()
-    $P1054 = $P1050."!make"($P1053)
-    .return ($P1054)
-  control_1047:
+    unless_null $P1050, vivify_366
+    $P1050 = root_new ['parrot';'Hash']
+  vivify_366:
+    set $P1051, $P1050["scoped"]
+    unless_null $P1051, vivify_367
+    new $P1051, "Undef"
+  vivify_367:
+    $P1052 = $P1051."ast"()
+    $P1053 = $P1049."!make"($P1052)
+    .return ($P1053)
+  control_1046:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1055, exception, "payload"
-    .return ($P1055)
+    getattribute $P1054, exception, "payload"
+    .return ($P1054)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<our>"  :subid("66_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1059
+.include "except_types.pasm"
+.sub "scope_declarator:sym<our>"  :subid("66_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1058
 .annotate 'line', 388
-    new $P1058, 'ExceptionHandler'
-    set_addr $P1058, control_1057
-    $P1058."handle_types"(57)
-    push_eh $P1058
+    new $P1057, 'ExceptionHandler'
+    set_addr $P1057, control_1056
+    $P1057."handle_types"(.CONTROL_RETURN)
+    push_eh $P1057
     .lex "self", self
-    .lex "$/", param_1059
+    .lex "$/", param_1058
+    find_lex $P1059, "$/"
     find_lex $P1060, "$/"
-    find_lex $P1061, "$/"
-    unless_null $P1061, vivify_362
-    $P1061 = root_new ['parrot';'Hash']
-  vivify_362:
-    set $P1062, $P1061["scoped"]
-    unless_null $P1062, vivify_363
-    new $P1062, "Undef"
-  vivify_363:
-    $P1063 = $P1062."ast"()
-    $P1064 = $P1060."!make"($P1063)
-    .return ($P1064)
-  control_1057:
+    unless_null $P1060, vivify_368
+    $P1060 = root_new ['parrot';'Hash']
+  vivify_368:
+    set $P1061, $P1060["scoped"]
+    unless_null $P1061, vivify_369
+    new $P1061, "Undef"
+  vivify_369:
+    $P1062 = $P1061."ast"()
+    $P1063 = $P1059."!make"($P1062)
+    .return ($P1063)
+  control_1056:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1065, exception, "payload"
-    .return ($P1065)
+    getattribute $P1064, exception, "payload"
+    .return ($P1064)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<has>"  :subid("67_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1069
+.include "except_types.pasm"
+.sub "scope_declarator:sym<has>"  :subid("67_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1068
 .annotate 'line', 389
-    new $P1068, 'ExceptionHandler'
-    set_addr $P1068, control_1067
-    $P1068."handle_types"(57)
-    push_eh $P1068
+    new $P1067, 'ExceptionHandler'
+    set_addr $P1067, control_1066
+    $P1067."handle_types"(.CONTROL_RETURN)
+    push_eh $P1067
     .lex "self", self
-    .lex "$/", param_1069
+    .lex "$/", param_1068
+    find_lex $P1069, "$/"
     find_lex $P1070, "$/"
-    find_lex $P1071, "$/"
-    unless_null $P1071, vivify_364
-    $P1071 = root_new ['parrot';'Hash']
-  vivify_364:
-    set $P1072, $P1071["scoped"]
-    unless_null $P1072, vivify_365
-    new $P1072, "Undef"
-  vivify_365:
-    $P1073 = $P1072."ast"()
-    $P1074 = $P1070."!make"($P1073)
-    .return ($P1074)
-  control_1067:
+    unless_null $P1070, vivify_370
+    $P1070 = root_new ['parrot';'Hash']
+  vivify_370:
+    set $P1071, $P1070["scoped"]
+    unless_null $P1071, vivify_371
+    new $P1071, "Undef"
+  vivify_371:
+    $P1072 = $P1071."ast"()
+    $P1073 = $P1069."!make"($P1072)
+    .return ($P1073)
+  control_1066:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1075, exception, "payload"
-    .return ($P1075)
+    getattribute $P1074, exception, "payload"
+    .return ($P1074)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "scoped"  :subid("68_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1079
+.include "except_types.pasm"
+.sub "scoped"  :subid("68_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1078
 .annotate 'line', 391
-    new $P1078, 'ExceptionHandler'
-    set_addr $P1078, control_1077
-    $P1078."handle_types"(57)
-    push_eh $P1078
+    new $P1077, 'ExceptionHandler'
+    set_addr $P1077, control_1076
+    $P1077."handle_types"(.CONTROL_RETURN)
+    push_eh $P1077
     .lex "self", self
-    .lex "$/", param_1079
+    .lex "$/", param_1078
 .annotate 'line', 392
-    find_lex $P1080, "$/"
-    find_lex $P1081, "$/"
-    unless_null $P1081, vivify_366
-    $P1081 = root_new ['parrot';'Hash']
-  vivify_366:
-    set $P1082, $P1081["declarator"]
-    unless_null $P1082, vivify_367
-    new $P1082, "Undef"
-  vivify_367:
-    $P1083 = $P1082."ast"()
-    $P1084 = $P1080."!make"($P1083)
-.annotate 'line', 391
-    .return ($P1084)
-  control_1077:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1085, exception, "payload"
-    .return ($P1085)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "declarator"  :subid("69_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1089
-.annotate 'line', 395
-    new $P1088, 'ExceptionHandler'
-    set_addr $P1088, control_1087
-    $P1088."handle_types"(57)
-    push_eh $P1088
-    .lex "self", self
-    .lex "$/", param_1089
-.annotate 'line', 396
-    find_lex $P1090, "$/"
-.annotate 'line', 397
-    find_lex $P1093, "$/"
-    unless_null $P1093, vivify_368
-    $P1093 = root_new ['parrot';'Hash']
-  vivify_368:
-    set $P1094, $P1093["routine_declarator"]
-    unless_null $P1094, vivify_369
-    new $P1094, "Undef"
-  vivify_369:
-    if $P1094, if_1092
-.annotate 'line', 398
-    find_lex $P1098, "$/"
-    unless_null $P1098, vivify_370
-    $P1098 = root_new ['parrot';'Hash']
-  vivify_370:
-    set $P1099, $P1098["variable_declarator"]
-    unless_null $P1099, vivify_371
-    new $P1099, "Undef"
-  vivify_371:
-    $P1100 = $P1099."ast"()
-    set $P1091, $P1100
-.annotate 'line', 397
-    goto if_1092_end
-  if_1092:
-    find_lex $P1095, "$/"
-    unless_null $P1095, vivify_372
-    $P1095 = root_new ['parrot';'Hash']
+    find_lex $P1079, "$/"
+.annotate 'line', 393
+    find_lex $P1082, "$/"
+    unless_null $P1082, vivify_372
+    $P1082 = root_new ['parrot';'Hash']
   vivify_372:
-    set $P1096, $P1095["routine_declarator"]
-    unless_null $P1096, vivify_373
-    new $P1096, "Undef"
+    set $P1083, $P1082["declarator"]
+    unless_null $P1083, vivify_373
+    new $P1083, "Undef"
   vivify_373:
-    $P1097 = $P1096."ast"()
-    set $P1091, $P1097
-  if_1092_end:
-    $P1101 = $P1090."!make"($P1091)
-.annotate 'line', 395
-    .return ($P1101)
-  control_1087:
+    if $P1083, if_1081
+.annotate 'line', 394
+    find_lex $P1087, "$/"
+    unless_null $P1087, vivify_374
+    $P1087 = root_new ['parrot';'Hash']
+  vivify_374:
+    set $P1088, $P1087["multi_declarator"]
+    unless_null $P1088, vivify_375
+    new $P1088, "Undef"
+  vivify_375:
+    $P1089 = $P1088."ast"()
+    set $P1080, $P1089
+.annotate 'line', 393
+    goto if_1081_end
+  if_1081:
+    find_lex $P1084, "$/"
+    unless_null $P1084, vivify_376
+    $P1084 = root_new ['parrot';'Hash']
+  vivify_376:
+    set $P1085, $P1084["declarator"]
+    unless_null $P1085, vivify_377
+    new $P1085, "Undef"
+  vivify_377:
+    $P1086 = $P1085."ast"()
+    set $P1080, $P1086
+  if_1081_end:
+    $P1090 = $P1079."!make"($P1080)
+.annotate 'line', 391
+    .return ($P1090)
+  control_1076:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1102, exception, "payload"
-    .return ($P1102)
+    getattribute $P1091, exception, "payload"
+    .return ($P1091)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "variable_declarator"  :subid("70_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1106
-.annotate 'line', 401
-    .const 'Sub' $P1146 = "71_1274853047.92727" 
-    capture_lex $P1146
-    new $P1105, 'ExceptionHandler'
-    set_addr $P1105, control_1104
-    $P1105."handle_types"(57)
-    push_eh $P1105
+.include "except_types.pasm"
+.sub "declarator"  :subid("69_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1095
+.annotate 'line', 397
+    new $P1094, 'ExceptionHandler'
+    set_addr $P1094, control_1093
+    $P1094."handle_types"(.CONTROL_RETURN)
+    push_eh $P1094
     .lex "self", self
-    .lex "$/", param_1106
-.annotate 'line', 402
-    new $P1107, "Undef"
-    .lex "$past", $P1107
-.annotate 'line', 403
-    new $P1108, "Undef"
-    .lex "$sigil", $P1108
-.annotate 'line', 404
-    new $P1109, "Undef"
-    .lex "$name", $P1109
-.annotate 'line', 405
-    new $P1110, "Undef"
-    .lex "$BLOCK", $P1110
-.annotate 'line', 402
-    find_lex $P1111, "$/"
-    unless_null $P1111, vivify_374
-    $P1111 = root_new ['parrot';'Hash']
-  vivify_374:
-    set $P1112, $P1111["variable"]
-    unless_null $P1112, vivify_375
-    new $P1112, "Undef"
-  vivify_375:
-    $P1113 = $P1112."ast"()
-    store_lex "$past", $P1113
-.annotate 'line', 403
-    find_lex $P1114, "$/"
-    unless_null $P1114, vivify_376
-    $P1114 = root_new ['parrot';'Hash']
-  vivify_376:
-    set $P1115, $P1114["variable"]
-    unless_null $P1115, vivify_377
-    $P1115 = root_new ['parrot';'Hash']
-  vivify_377:
-    set $P1116, $P1115["sigil"]
-    unless_null $P1116, vivify_378
-    new $P1116, "Undef"
+    .lex "$/", param_1095
+.annotate 'line', 398
+    find_lex $P1096, "$/"
+.annotate 'line', 399
+    find_lex $P1099, "$/"
+    unless_null $P1099, vivify_378
+    $P1099 = root_new ['parrot';'Hash']
   vivify_378:
-    store_lex "$sigil", $P1116
-.annotate 'line', 404
-    find_lex $P1117, "$past"
-    $P1118 = $P1117."name"()
-    store_lex "$name", $P1118
-.annotate 'line', 405
-    get_global $P1119, "@BLOCK"
-    unless_null $P1119, vivify_379
-    $P1119 = root_new ['parrot';'ResizablePMCArray']
+    set $P1100, $P1099["routine_declarator"]
+    unless_null $P1100, vivify_379
+    new $P1100, "Undef"
   vivify_379:
-    set $P1120, $P1119[0]
-    unless_null $P1120, vivify_380
-    new $P1120, "Undef"
+    if $P1100, if_1098
+.annotate 'line', 400
+    find_lex $P1104, "$/"
+    unless_null $P1104, vivify_380
+    $P1104 = root_new ['parrot';'Hash']
   vivify_380:
-    store_lex "$BLOCK", $P1120
-.annotate 'line', 406
-    find_lex $P1122, "$BLOCK"
-    find_lex $P1123, "$name"
-    $P1124 = $P1122."symbol"($P1123)
-    unless $P1124, if_1121_end
-.annotate 'line', 407
-    find_lex $P1125, "$/"
-    $P1126 = $P1125."CURSOR"()
-    find_lex $P1127, "$name"
-    $P1126."panic"("Redeclaration of symbol ", $P1127)
-  if_1121_end:
-.annotate 'line', 409
-    find_dynamic_lex $P1129, "$*SCOPE"
-    unless_null $P1129, vivify_381
-    get_hll_global $P1129, "$SCOPE"
-    unless_null $P1129, vivify_382
-    die "Contextual $*SCOPE not found"
-  vivify_382:
+    set $P1105, $P1104["variable_declarator"]
+    unless_null $P1105, vivify_381
+    new $P1105, "Undef"
   vivify_381:
-    set $S1130, $P1129
-    iseq $I1131, $S1130, "has"
-    if $I1131, if_1128
-.annotate 'line', 418
-    .const 'Sub' $P1146 = "71_1274853047.92727" 
-    capture_lex $P1146
-    $P1146()
-    goto if_1128_end
-  if_1128:
-.annotate 'line', 410
-    find_lex $P1132, "$BLOCK"
-    find_lex $P1133, "$name"
-    $P1132."symbol"($P1133, "attribute" :named("scope"))
-.annotate 'line', 411
-    find_lex $P1135, "$BLOCK"
-    unless_null $P1135, vivify_387
-    $P1135 = root_new ['parrot';'Hash']
-  vivify_387:
-    set $P1136, $P1135["attributes"]
-    unless_null $P1136, vivify_388
-    new $P1136, "Undef"
-  vivify_388:
-    if $P1136, unless_1134_end
-.annotate 'line', 413
-    get_hll_global $P1137, ["PAST"], "Op"
-    $P1138 = $P1137."new"("list" :named("pasttype"), "attr" :named("named"))
-    find_lex $P1139, "$BLOCK"
-    unless_null $P1139, vivify_389
-    $P1139 = root_new ['parrot';'Hash']
-    store_lex "$BLOCK", $P1139
-  vivify_389:
-    set $P1139["attributes"], $P1138
-  unless_1134_end:
-.annotate 'line', 415
-    find_lex $P1140, "$BLOCK"
-    unless_null $P1140, vivify_390
-    $P1140 = root_new ['parrot';'Hash']
-  vivify_390:
-    set $P1141, $P1140["attributes"]
-    unless_null $P1141, vivify_391
-    new $P1141, "Undef"
-  vivify_391:
-    find_lex $P1142, "$name"
-    $P1141."push"($P1142)
-.annotate 'line', 416
-    get_hll_global $P1143, ["PAST"], "Stmts"
-    $P1144 = $P1143."new"()
-    store_lex "$past", $P1144
-  if_1128_end:
-.annotate 'line', 426
-    find_lex $P1170, "$/"
-    find_lex $P1171, "$past"
-    $P1172 = $P1170."!make"($P1171)
-.annotate 'line', 401
-    .return ($P1172)
-  control_1104:
+    $P1106 = $P1105."ast"()
+    set $P1097, $P1106
+.annotate 'line', 399
+    goto if_1098_end
+  if_1098:
+    find_lex $P1101, "$/"
+    unless_null $P1101, vivify_382
+    $P1101 = root_new ['parrot';'Hash']
+  vivify_382:
+    set $P1102, $P1101["routine_declarator"]
+    unless_null $P1102, vivify_383
+    new $P1102, "Undef"
+  vivify_383:
+    $P1103 = $P1102."ast"()
+    set $P1097, $P1103
+  if_1098_end:
+    $P1107 = $P1096."!make"($P1097)
+.annotate 'line', 397
+    .return ($P1107)
+  control_1093:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1173, exception, "payload"
-    .return ($P1173)
+    getattribute $P1108, exception, "payload"
+    .return ($P1108)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1145"  :anon :subid("71_1274853047.92727") :outer("70_1274853047.92727")
-.annotate 'line', 419
-    new $P1147, "Undef"
-    .lex "$scope", $P1147
-.annotate 'line', 420
-    new $P1148, "Undef"
-    .lex "$decl", $P1148
-.annotate 'line', 419
-    find_dynamic_lex $P1151, "$*SCOPE"
-    unless_null $P1151, vivify_383
-    get_hll_global $P1151, "$SCOPE"
-    unless_null $P1151, vivify_384
-    die "Contextual $*SCOPE not found"
+.include "except_types.pasm"
+.sub "multi_declarator:sym<multi>"  :subid("70_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1112
+.annotate 'line', 403
+    new $P1111, 'ExceptionHandler'
+    set_addr $P1111, control_1110
+    $P1111."handle_types"(.CONTROL_RETURN)
+    push_eh $P1111
+    .lex "self", self
+    .lex "$/", param_1112
+    find_lex $P1113, "$/"
+    find_lex $P1116, "$/"
+    unless_null $P1116, vivify_384
+    $P1116 = root_new ['parrot';'Hash']
   vivify_384:
-  vivify_383:
-    set $S1152, $P1151
-    iseq $I1153, $S1152, "our"
-    if $I1153, if_1150
-    new $P1155, "String"
-    assign $P1155, "lexical"
-    set $P1149, $P1155
-    goto if_1150_end
-  if_1150:
-    new $P1154, "String"
-    assign $P1154, "package"
-    set $P1149, $P1154
-  if_1150_end:
-    store_lex "$scope", $P1149
-.annotate 'line', 420
-    get_hll_global $P1156, ["PAST"], "Var"
-    find_lex $P1157, "$name"
-    find_lex $P1158, "$scope"
-.annotate 'line', 421
-    find_lex $P1159, "$sigil"
-    $P1160 = "vivitype"($P1159)
-    find_lex $P1161, "$/"
-    $P1162 = $P1156."new"($P1157 :named("name"), $P1158 :named("scope"), 1 :named("isdecl"), 1 :named("lvalue"), $P1160 :named("viviself"), $P1161 :named("node"))
-.annotate 'line', 420
-    store_lex "$decl", $P1162
-.annotate 'line', 423
-    find_lex $P1163, "$BLOCK"
-    find_lex $P1164, "$name"
-    find_lex $P1165, "$scope"
-    $P1163."symbol"($P1164, $P1165 :named("scope"))
-.annotate 'line', 424
-    find_lex $P1166, "$BLOCK"
-    unless_null $P1166, vivify_385
-    $P1166 = root_new ['parrot';'ResizablePMCArray']
+    set $P1117, $P1116["declarator"]
+    unless_null $P1117, vivify_385
+    new $P1117, "Undef"
   vivify_385:
-    set $P1167, $P1166[0]
-    unless_null $P1167, vivify_386
-    new $P1167, "Undef"
+    if $P1117, if_1115
+    find_lex $P1121, "$/"
+    unless_null $P1121, vivify_386
+    $P1121 = root_new ['parrot';'Hash']
   vivify_386:
-    find_lex $P1168, "$decl"
-    $P1169 = $P1167."push"($P1168)
-.annotate 'line', 418
-    .return ($P1169)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<sub>"  :subid("72_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1177
-.annotate 'line', 429
-    new $P1176, 'ExceptionHandler'
-    set_addr $P1176, control_1175
-    $P1176."handle_types"(57)
-    push_eh $P1176
-    .lex "self", self
-    .lex "$/", param_1177
-    find_lex $P1178, "$/"
-    find_lex $P1179, "$/"
-    unless_null $P1179, vivify_392
-    $P1179 = root_new ['parrot';'Hash']
-  vivify_392:
-    set $P1180, $P1179["routine_def"]
-    unless_null $P1180, vivify_393
-    new $P1180, "Undef"
-  vivify_393:
-    $P1181 = $P1180."ast"()
-    $P1182 = $P1178."!make"($P1181)
-    .return ($P1182)
-  control_1175:
+    set $P1122, $P1121["routine_def"]
+    unless_null $P1122, vivify_387
+    new $P1122, "Undef"
+  vivify_387:
+    $P1123 = $P1122."ast"()
+    set $P1114, $P1123
+    goto if_1115_end
+  if_1115:
+    find_lex $P1118, "$/"
+    unless_null $P1118, vivify_388
+    $P1118 = root_new ['parrot';'Hash']
+  vivify_388:
+    set $P1119, $P1118["declarator"]
+    unless_null $P1119, vivify_389
+    new $P1119, "Undef"
+  vivify_389:
+    $P1120 = $P1119."ast"()
+    set $P1114, $P1120
+  if_1115_end:
+    $P1124 = $P1113."!make"($P1114)
+    .return ($P1124)
+  control_1110:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1183, exception, "payload"
-    .return ($P1183)
+    getattribute $P1125, exception, "payload"
+    .return ($P1125)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<method>"  :subid("73_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1187
-.annotate 'line', 430
-    new $P1186, 'ExceptionHandler'
-    set_addr $P1186, control_1185
-    $P1186."handle_types"(57)
-    push_eh $P1186
-    .lex "self", self
-    .lex "$/", param_1187
-    find_lex $P1188, "$/"
-    find_lex $P1189, "$/"
-    unless_null $P1189, vivify_394
-    $P1189 = root_new ['parrot';'Hash']
-  vivify_394:
-    set $P1190, $P1189["method_def"]
-    unless_null $P1190, vivify_395
-    new $P1190, "Undef"
-  vivify_395:
-    $P1191 = $P1190."ast"()
-    $P1192 = $P1188."!make"($P1191)
-    .return ($P1192)
-  control_1185:
+.include "except_types.pasm"
+.sub "multi_declarator:sym<null>"  :subid("71_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1129
+.annotate 'line', 404
+    new $P1128, 'ExceptionHandler'
+    set_addr $P1128, control_1127
+    $P1128."handle_types"(.CONTROL_RETURN)
+    push_eh $P1128
+    .lex "self", self
+    .lex "$/", param_1129
+    find_lex $P1130, "$/"
+    find_lex $P1131, "$/"
+    unless_null $P1131, vivify_390
+    $P1131 = root_new ['parrot';'Hash']
+  vivify_390:
+    set $P1132, $P1131["declarator"]
+    unless_null $P1132, vivify_391
+    new $P1132, "Undef"
+  vivify_391:
+    $P1133 = $P1132."ast"()
+    $P1134 = $P1130."!make"($P1133)
+    .return ($P1134)
+  control_1127:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1193, exception, "payload"
-    .return ($P1193)
+    getattribute $P1135, exception, "payload"
+    .return ($P1135)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_def"  :subid("74_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1197
-.annotate 'line', 432
-    .const 'Sub' $P1208 = "75_1274853047.92727" 
-    capture_lex $P1208
-    new $P1196, 'ExceptionHandler'
-    set_addr $P1196, control_1195
-    $P1196."handle_types"(57)
-    push_eh $P1196
+.include "except_types.pasm"
+.sub "variable_declarator"  :subid("72_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1139
+.annotate 'line', 407
+    .const 'Sub' $P1179 = "73_1275811497.55064" 
+    capture_lex $P1179
+    new $P1138, 'ExceptionHandler'
+    set_addr $P1138, control_1137
+    $P1138."handle_types"(.CONTROL_RETURN)
+    push_eh $P1138
     .lex "self", self
-    .lex "$/", param_1197
-.annotate 'line', 433
-    new $P1198, "Undef"
-    .lex "$past", $P1198
-    find_lex $P1199, "$/"
-    unless_null $P1199, vivify_396
-    $P1199 = root_new ['parrot';'Hash']
+    .lex "$/", param_1139
+.annotate 'line', 408
+    new $P1140, "Undef"
+    .lex "$past", $P1140
+.annotate 'line', 409
+    new $P1141, "Undef"
+    .lex "$sigil", $P1141
+.annotate 'line', 410
+    new $P1142, "Undef"
+    .lex "$name", $P1142
+.annotate 'line', 411
+    new $P1143, "Undef"
+    .lex "$BLOCK", $P1143
+.annotate 'line', 408
+    find_lex $P1144, "$/"
+    unless_null $P1144, vivify_392
+    $P1144 = root_new ['parrot';'Hash']
+  vivify_392:
+    set $P1145, $P1144["variable"]
+    unless_null $P1145, vivify_393
+    new $P1145, "Undef"
+  vivify_393:
+    $P1146 = $P1145."ast"()
+    store_lex "$past", $P1146
+.annotate 'line', 409
+    find_lex $P1147, "$/"
+    unless_null $P1147, vivify_394
+    $P1147 = root_new ['parrot';'Hash']
+  vivify_394:
+    set $P1148, $P1147["variable"]
+    unless_null $P1148, vivify_395
+    $P1148 = root_new ['parrot';'Hash']
+  vivify_395:
+    set $P1149, $P1148["sigil"]
+    unless_null $P1149, vivify_396
+    new $P1149, "Undef"
   vivify_396:
-    set $P1200, $P1199["blockoid"]
-    unless_null $P1200, vivify_397
-    new $P1200, "Undef"
+    store_lex "$sigil", $P1149
+.annotate 'line', 410
+    find_lex $P1150, "$past"
+    $P1151 = $P1150."name"()
+    store_lex "$name", $P1151
+.annotate 'line', 411
+    get_global $P1152, "@BLOCK"
+    unless_null $P1152, vivify_397
+    $P1152 = root_new ['parrot';'ResizablePMCArray']
   vivify_397:
-    $P1201 = $P1200."ast"()
-    store_lex "$past", $P1201
-.annotate 'line', 434
-    find_lex $P1202, "$past"
-    $P1202."blocktype"("declaration")
-.annotate 'line', 435
-    find_lex $P1203, "$past"
-    $P1203."control"("return_pir")
-.annotate 'line', 436
-    find_lex $P1205, "$/"
-    unless_null $P1205, vivify_398
-    $P1205 = root_new ['parrot';'Hash']
+    set $P1153, $P1152[0]
+    unless_null $P1153, vivify_398
+    new $P1153, "Undef"
   vivify_398:
-    set $P1206, $P1205["deflongname"]
-    unless_null $P1206, vivify_399
-    new $P1206, "Undef"
+    store_lex "$BLOCK", $P1153
+.annotate 'line', 412
+    find_lex $P1155, "$BLOCK"
+    find_lex $P1156, "$name"
+    $P1157 = $P1155."symbol"($P1156)
+    unless $P1157, if_1154_end
+.annotate 'line', 413
+    find_lex $P1158, "$/"
+    $P1159 = $P1158."CURSOR"()
+    find_lex $P1160, "$name"
+    $P1159."panic"("Redeclaration of symbol ", $P1160)
+  if_1154_end:
+.annotate 'line', 415
+    find_dynamic_lex $P1162, "$*SCOPE"
+    unless_null $P1162, vivify_399
+    get_hll_global $P1162, "$SCOPE"
+    unless_null $P1162, vivify_400
+    die "Contextual $*SCOPE not found"
+  vivify_400:
   vivify_399:
-    unless $P1206, if_1204_end
-    .const 'Sub' $P1208 = "75_1274853047.92727" 
-    capture_lex $P1208
-    $P1208()
-  if_1204_end:
-.annotate 'line', 446
-    find_lex $P1240, "$/"
-    find_lex $P1241, "$past"
-    $P1242 = $P1240."!make"($P1241)
+    set $S1163, $P1162
+    iseq $I1164, $S1163, "has"
+    if $I1164, if_1161
+.annotate 'line', 424
+    .const 'Sub' $P1179 = "73_1275811497.55064" 
+    capture_lex $P1179
+    $P1179()
+    goto if_1161_end
+  if_1161:
+.annotate 'line', 416
+    find_lex $P1165, "$BLOCK"
+    find_lex $P1166, "$name"
+    $P1165."symbol"($P1166, "attribute" :named("scope"))
+.annotate 'line', 417
+    find_lex $P1168, "$BLOCK"
+    unless_null $P1168, vivify_405
+    $P1168 = root_new ['parrot';'Hash']
+  vivify_405:
+    set $P1169, $P1168["attributes"]
+    unless_null $P1169, vivify_406
+    new $P1169, "Undef"
+  vivify_406:
+    if $P1169, unless_1167_end
+.annotate 'line', 419
+    get_hll_global $P1170, ["PAST"], "Op"
+    $P1171 = $P1170."new"("list" :named("pasttype"), "attr" :named("named"))
+    find_lex $P1172, "$BLOCK"
+    unless_null $P1172, vivify_407
+    $P1172 = root_new ['parrot';'Hash']
+    store_lex "$BLOCK", $P1172
+  vivify_407:
+    set $P1172["attributes"], $P1171
+  unless_1167_end:
+.annotate 'line', 421
+    find_lex $P1173, "$BLOCK"
+    unless_null $P1173, vivify_408
+    $P1173 = root_new ['parrot';'Hash']
+  vivify_408:
+    set $P1174, $P1173["attributes"]
+    unless_null $P1174, vivify_409
+    new $P1174, "Undef"
+  vivify_409:
+    find_lex $P1175, "$name"
+    $P1174."push"($P1175)
+.annotate 'line', 422
+    get_hll_global $P1176, ["PAST"], "Stmts"
+    $P1177 = $P1176."new"()
+    store_lex "$past", $P1177
+  if_1161_end:
 .annotate 'line', 432
-    .return ($P1242)
-  control_1195:
+    find_lex $P1203, "$/"
+    find_lex $P1204, "$past"
+    $P1205 = $P1203."!make"($P1204)
+.annotate 'line', 407
+    .return ($P1205)
+  control_1137:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1243, exception, "payload"
-    .return ($P1243)
+    getattribute $P1206, exception, "payload"
+    .return ($P1206)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1207"  :anon :subid("75_1274853047.92727") :outer("74_1274853047.92727")
-.annotate 'line', 437
-    new $P1209, "Undef"
-    .lex "$name", $P1209
-    find_lex $P1210, "$/"
-    unless_null $P1210, vivify_400
-    $P1210 = root_new ['parrot';'Hash']
-  vivify_400:
-    set $P1211, $P1210["sigil"]
-    unless_null $P1211, vivify_401
-    $P1211 = root_new ['parrot';'ResizablePMCArray']
-  vivify_401:
-    set $P1212, $P1211[0]
-    unless_null $P1212, vivify_402
-    new $P1212, "Undef"
+.sub "_block1178"  :anon :subid("73_1275811497.55064") :outer("72_1275811497.55064")
+.annotate 'line', 425
+    new $P1180, "Undef"
+    .lex "$scope", $P1180
+.annotate 'line', 426
+    new $P1181, "Undef"
+    .lex "$decl", $P1181
+.annotate 'line', 425
+    find_dynamic_lex $P1184, "$*SCOPE"
+    unless_null $P1184, vivify_401
+    get_hll_global $P1184, "$SCOPE"
+    unless_null $P1184, vivify_402
+    die "Contextual $*SCOPE not found"
   vivify_402:
-    set $S1213, $P1212
-    new $P1214, 'String'
-    set $P1214, $S1213
-    find_lex $P1215, "$/"
-    unless_null $P1215, vivify_403
-    $P1215 = root_new ['parrot';'Hash']
+  vivify_401:
+    set $S1185, $P1184
+    iseq $I1186, $S1185, "our"
+    if $I1186, if_1183
+    new $P1188, "String"
+    assign $P1188, "lexical"
+    set $P1182, $P1188
+    goto if_1183_end
+  if_1183:
+    new $P1187, "String"
+    assign $P1187, "package"
+    set $P1182, $P1187
+  if_1183_end:
+    store_lex "$scope", $P1182
+.annotate 'line', 426
+    get_hll_global $P1189, ["PAST"], "Var"
+    find_lex $P1190, "$name"
+    find_lex $P1191, "$scope"
+.annotate 'line', 427
+    find_lex $P1192, "$sigil"
+    $P1193 = "vivitype"($P1192)
+    find_lex $P1194, "$/"
+    $P1195 = $P1189."new"($P1190 :named("name"), $P1191 :named("scope"), 1 :named("isdecl"), 1 :named("lvalue"), $P1193 :named("viviself"), $P1194 :named("node"))
+.annotate 'line', 426
+    store_lex "$decl", $P1195
+.annotate 'line', 429
+    find_lex $P1196, "$BLOCK"
+    find_lex $P1197, "$name"
+    find_lex $P1198, "$scope"
+    $P1196."symbol"($P1197, $P1198 :named("scope"))
+.annotate 'line', 430
+    find_lex $P1199, "$BLOCK"
+    unless_null $P1199, vivify_403
+    $P1199 = root_new ['parrot';'ResizablePMCArray']
   vivify_403:
-    set $P1216, $P1215["deflongname"]
-    unless_null $P1216, vivify_404
-    $P1216 = root_new ['parrot';'ResizablePMCArray']
+    set $P1200, $P1199[0]
+    unless_null $P1200, vivify_404
+    new $P1200, "Undef"
   vivify_404:
-    set $P1217, $P1216[0]
-    unless_null $P1217, vivify_405
-    new $P1217, "Undef"
-  vivify_405:
-    $S1218 = $P1217."ast"()
-    concat $P1219, $P1214, $S1218
-    store_lex "$name", $P1219
-.annotate 'line', 438
-    find_lex $P1220, "$past"
-    find_lex $P1221, "$name"
-    $P1220."name"($P1221)
-.annotate 'line', 439
-    find_dynamic_lex $P1224, "$*SCOPE"
-    unless_null $P1224, vivify_406
-    get_hll_global $P1224, "$SCOPE"
-    unless_null $P1224, vivify_407
-    die "Contextual $*SCOPE not found"
-  vivify_407:
-  vivify_406:
-    set $S1225, $P1224
-    isne $I1226, $S1225, "our"
-    if $I1226, if_1223
-    new $P1222, 'Integer'
-    set $P1222, $I1226
-    goto if_1223_end
-  if_1223:
-.annotate 'line', 440
-    get_global $P1227, "@BLOCK"
-    unless_null $P1227, vivify_408
-    $P1227 = root_new ['parrot';'ResizablePMCArray']
-  vivify_408:
-    set $P1228, $P1227[0]
-    unless_null $P1228, vivify_409
-    $P1228 = root_new ['parrot';'ResizablePMCArray']
-  vivify_409:
-    set $P1229, $P1228[0]
-    unless_null $P1229, vivify_410
-    new $P1229, "Undef"
+    find_lex $P1201, "$decl"
+    $P1202 = $P1200."push"($P1201)
+.annotate 'line', 424
+    .return ($P1202)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "routine_declarator:sym<sub>"  :subid("74_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1210
+.annotate 'line', 435
+    new $P1209, 'ExceptionHandler'
+    set_addr $P1209, control_1208
+    $P1209."handle_types"(.CONTROL_RETURN)
+    push_eh $P1209
+    .lex "self", self
+    .lex "$/", param_1210
+    find_lex $P1211, "$/"
+    find_lex $P1212, "$/"
+    unless_null $P1212, vivify_410
+    $P1212 = root_new ['parrot';'Hash']
   vivify_410:
-    get_hll_global $P1230, ["PAST"], "Var"
-    find_lex $P1231, "$name"
-    find_lex $P1232, "$past"
-    $P1233 = $P1230."new"($P1231 :named("name"), 1 :named("isdecl"), $P1232 :named("viviself"), "lexical" :named("scope"))
-    $P1229."push"($P1233)
-.annotate 'line', 442
-    get_global $P1234, "@BLOCK"
-    unless_null $P1234, vivify_411
-    $P1234 = root_new ['parrot';'ResizablePMCArray']
+    set $P1213, $P1212["routine_def"]
+    unless_null $P1213, vivify_411
+    new $P1213, "Undef"
   vivify_411:
-    set $P1235, $P1234[0]
-    unless_null $P1235, vivify_412
-    new $P1235, "Undef"
-  vivify_412:
-    find_lex $P1236, "$name"
-    $P1235."symbol"($P1236, "lexical" :named("scope"))
-.annotate 'line', 443
-    get_hll_global $P1237, ["PAST"], "Var"
-    find_lex $P1238, "$name"
-    $P1239 = $P1237."new"($P1238 :named("name"))
-    store_lex "$past", $P1239
-.annotate 'line', 439
-    set $P1222, $P1239
-  if_1223_end:
+    $P1214 = $P1213."ast"()
+    $P1215 = $P1211."!make"($P1214)
+    .return ($P1215)
+  control_1208:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1216, exception, "payload"
+    .return ($P1216)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "routine_declarator:sym<method>"  :subid("75_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1220
 .annotate 'line', 436
-    .return ($P1222)
+    new $P1219, 'ExceptionHandler'
+    set_addr $P1219, control_1218
+    $P1219."handle_types"(.CONTROL_RETURN)
+    push_eh $P1219
+    .lex "self", self
+    .lex "$/", param_1220
+    find_lex $P1221, "$/"
+    find_lex $P1222, "$/"
+    unless_null $P1222, vivify_412
+    $P1222 = root_new ['parrot';'Hash']
+  vivify_412:
+    set $P1223, $P1222["method_def"]
+    unless_null $P1223, vivify_413
+    new $P1223, "Undef"
+  vivify_413:
+    $P1224 = $P1223."ast"()
+    $P1225 = $P1221."!make"($P1224)
+    .return ($P1225)
+  control_1218:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1226, exception, "payload"
+    .return ($P1226)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "method_def"  :subid("76_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1247
-.annotate 'line', 450
-    .const 'Sub' $P1263 = "77_1274853047.92727" 
-    capture_lex $P1263
-    new $P1246, 'ExceptionHandler'
-    set_addr $P1246, control_1245
-    $P1246."handle_types"(57)
-    push_eh $P1246
+.include "except_types.pasm"
+.sub "routine_def"  :subid("76_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1230
+.annotate 'line', 438
+    .const 'Sub' $P1241 = "77_1275811497.55064" 
+    capture_lex $P1241
+    new $P1229, 'ExceptionHandler'
+    set_addr $P1229, control_1228
+    $P1229."handle_types"(.CONTROL_RETURN)
+    push_eh $P1229
     .lex "self", self
-    .lex "$/", param_1247
-.annotate 'line', 451
-    new $P1248, "Undef"
-    .lex "$past", $P1248
-    find_lex $P1249, "$/"
-    unless_null $P1249, vivify_413
-    $P1249 = root_new ['parrot';'Hash']
-  vivify_413:
-    set $P1250, $P1249["blockoid"]
-    unless_null $P1250, vivify_414
-    new $P1250, "Undef"
+    .lex "$/", param_1230
+.annotate 'line', 439
+    new $P1231, "Undef"
+    .lex "$past", $P1231
+    find_lex $P1232, "$/"
+    unless_null $P1232, vivify_414
+    $P1232 = root_new ['parrot';'Hash']
   vivify_414:
-    $P1251 = $P1250."ast"()
-    store_lex "$past", $P1251
-.annotate 'line', 452
-    find_lex $P1252, "$past"
-    $P1252."blocktype"("method")
-.annotate 'line', 453
-    find_lex $P1253, "$past"
-    $P1253."control"("return_pir")
-.annotate 'line', 454
-    find_lex $P1254, "$past"
-    unless_null $P1254, vivify_415
-    $P1254 = root_new ['parrot';'ResizablePMCArray']
+    set $P1233, $P1232["blockoid"]
+    unless_null $P1233, vivify_415
+    new $P1233, "Undef"
   vivify_415:
-    set $P1255, $P1254[0]
-    unless_null $P1255, vivify_416
-    new $P1255, "Undef"
+    $P1234 = $P1233."ast"()
+    store_lex "$past", $P1234
+.annotate 'line', 440
+    find_lex $P1235, "$past"
+    $P1235."blocktype"("declaration")
+.annotate 'line', 441
+    find_lex $P1236, "$past"
+    $P1236."control"("return_pir")
+.annotate 'line', 442
+    find_lex $P1238, "$/"
+    unless_null $P1238, vivify_416
+    $P1238 = root_new ['parrot';'Hash']
   vivify_416:
-    get_hll_global $P1256, ["PAST"], "Op"
-    $P1257 = $P1256."new"("    .lex \"self\", self" :named("inline"))
-    $P1255."unshift"($P1257)
-.annotate 'line', 455
-    find_lex $P1258, "$past"
-    $P1258."symbol"("self", "lexical" :named("scope"))
-.annotate 'line', 456
-    find_lex $P1260, "$/"
-    unless_null $P1260, vivify_417
-    $P1260 = root_new ['parrot';'Hash']
+    set $P1239, $P1238["deflongname"]
+    unless_null $P1239, vivify_417
+    new $P1239, "Undef"
   vivify_417:
-    set $P1261, $P1260["deflongname"]
-    unless_null $P1261, vivify_418
-    new $P1261, "Undef"
-  vivify_418:
-    unless $P1261, if_1259_end
-    .const 'Sub' $P1263 = "77_1274853047.92727" 
-    capture_lex $P1263
-    $P1263()
-  if_1259_end:
-.annotate 'line', 460
-    find_lex $P1274, "$/"
-    find_lex $P1275, "$past"
-    $P1276 = $P1274."!make"($P1275)
-.annotate 'line', 450
-    .return ($P1276)
-  control_1245:
+    unless $P1239, if_1237_end
+    .const 'Sub' $P1241 = "77_1275811497.55064" 
+    capture_lex $P1241
+    $P1241()
+  if_1237_end:
+.annotate 'line', 452
+    find_lex $P1273, "$/"
+    find_lex $P1274, "$past"
+    $P1275 = $P1273."!make"($P1274)
+.annotate 'line', 438
+    .return ($P1275)
+  control_1228:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1277, exception, "payload"
-    .return ($P1277)
+    getattribute $P1276, exception, "payload"
+    .return ($P1276)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1262"  :anon :subid("77_1274853047.92727") :outer("76_1274853047.92727")
-.annotate 'line', 457
-    new $P1264, "Undef"
-    .lex "$name", $P1264
-    find_lex $P1265, "$/"
-    unless_null $P1265, vivify_419
-    $P1265 = root_new ['parrot';'Hash']
+.sub "_block1240"  :anon :subid("77_1275811497.55064") :outer("76_1275811497.55064")
+.annotate 'line', 443
+    new $P1242, "Undef"
+    .lex "$name", $P1242
+    find_lex $P1243, "$/"
+    unless_null $P1243, vivify_418
+    $P1243 = root_new ['parrot';'Hash']
+  vivify_418:
+    set $P1244, $P1243["sigil"]
+    unless_null $P1244, vivify_419
+    $P1244 = root_new ['parrot';'ResizablePMCArray']
   vivify_419:
-    set $P1266, $P1265["deflongname"]
-    unless_null $P1266, vivify_420
-    $P1266 = root_new ['parrot';'ResizablePMCArray']
+    set $P1245, $P1244[0]
+    unless_null $P1245, vivify_420
+    new $P1245, "Undef"
   vivify_420:
-    set $P1267, $P1266[0]
-    unless_null $P1267, vivify_421
-    new $P1267, "Undef"
+    set $S1246, $P1245
+    new $P1247, 'String'
+    set $P1247, $S1246
+    find_lex $P1248, "$/"
+    unless_null $P1248, vivify_421
+    $P1248 = root_new ['parrot';'Hash']
   vivify_421:
-    $P1268 = $P1267."ast"()
-    set $S1269, $P1268
-    new $P1270, 'String'
-    set $P1270, $S1269
-    store_lex "$name", $P1270
-.annotate 'line', 458
-    find_lex $P1271, "$past"
-    find_lex $P1272, "$name"
-    $P1273 = $P1271."name"($P1272)
-.annotate 'line', 456
-    .return ($P1273)
+    set $P1249, $P1248["deflongname"]
+    unless_null $P1249, vivify_422
+    $P1249 = root_new ['parrot';'ResizablePMCArray']
+  vivify_422:
+    set $P1250, $P1249[0]
+    unless_null $P1250, vivify_423
+    new $P1250, "Undef"
+  vivify_423:
+    $S1251 = $P1250."ast"()
+    concat $P1252, $P1247, $S1251
+    store_lex "$name", $P1252
+.annotate 'line', 444
+    find_lex $P1253, "$past"
+    find_lex $P1254, "$name"
+    $P1253."name"($P1254)
+.annotate 'line', 445
+    find_dynamic_lex $P1257, "$*SCOPE"
+    unless_null $P1257, vivify_424
+    get_hll_global $P1257, "$SCOPE"
+    unless_null $P1257, vivify_425
+    die "Contextual $*SCOPE not found"
+  vivify_425:
+  vivify_424:
+    set $S1258, $P1257
+    isne $I1259, $S1258, "our"
+    if $I1259, if_1256
+    new $P1255, 'Integer'
+    set $P1255, $I1259
+    goto if_1256_end
+  if_1256:
+.annotate 'line', 446
+    get_global $P1260, "@BLOCK"
+    unless_null $P1260, vivify_426
+    $P1260 = root_new ['parrot';'ResizablePMCArray']
+  vivify_426:
+    set $P1261, $P1260[0]
+    unless_null $P1261, vivify_427
+    $P1261 = root_new ['parrot';'ResizablePMCArray']
+  vivify_427:
+    set $P1262, $P1261[0]
+    unless_null $P1262, vivify_428
+    new $P1262, "Undef"
+  vivify_428:
+    get_hll_global $P1263, ["PAST"], "Var"
+    find_lex $P1264, "$name"
+    find_lex $P1265, "$past"
+    $P1266 = $P1263."new"($P1264 :named("name"), 1 :named("isdecl"), $P1265 :named("viviself"), "lexical" :named("scope"))
+    $P1262."push"($P1266)
+.annotate 'line', 448
+    get_global $P1267, "@BLOCK"
+    unless_null $P1267, vivify_429
+    $P1267 = root_new ['parrot';'ResizablePMCArray']
+  vivify_429:
+    set $P1268, $P1267[0]
+    unless_null $P1268, vivify_430
+    new $P1268, "Undef"
+  vivify_430:
+    find_lex $P1269, "$name"
+    $P1268."symbol"($P1269, "lexical" :named("scope"))
+.annotate 'line', 449
+    get_hll_global $P1270, ["PAST"], "Var"
+    find_lex $P1271, "$name"
+    $P1272 = $P1270."new"($P1271 :named("name"))
+    store_lex "$past", $P1272
+.annotate 'line', 445
+    set $P1255, $P1272
+  if_1256_end:
+.annotate 'line', 442
+    .return ($P1255)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "signature"  :subid("78_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1281
-.annotate 'line', 464
-    .const 'Sub' $P1292 = "79_1274853047.92727" 
-    capture_lex $P1292
-    new $P1280, 'ExceptionHandler'
-    set_addr $P1280, control_1279
-    $P1280."handle_types"(57)
-    push_eh $P1280
+.include "except_types.pasm"
+.sub "method_def"  :subid("78_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1280
+.annotate 'line', 456
+    .const 'Sub' $P1296 = "79_1275811497.55064" 
+    capture_lex $P1296
+    new $P1279, 'ExceptionHandler'
+    set_addr $P1279, control_1278
+    $P1279."handle_types"(.CONTROL_RETURN)
+    push_eh $P1279
     .lex "self", self
-    .lex "$/", param_1281
-.annotate 'line', 465
-    new $P1282, "Undef"
-    .lex "$BLOCKINIT", $P1282
-    get_global $P1283, "@BLOCK"
-    unless_null $P1283, vivify_422
-    $P1283 = root_new ['parrot';'ResizablePMCArray']
-  vivify_422:
-    set $P1284, $P1283[0]
-    unless_null $P1284, vivify_423
-    $P1284 = root_new ['parrot';'ResizablePMCArray']
-  vivify_423:
-    set $P1285, $P1284[0]
-    unless_null $P1285, vivify_424
-    new $P1285, "Undef"
-  vivify_424:
-    store_lex "$BLOCKINIT", $P1285
-.annotate 'line', 466
-    find_lex $P1287, "$/"
-    unless_null $P1287, vivify_425
-    $P1287 = root_new ['parrot';'Hash']
-  vivify_425:
-    set $P1288, $P1287["parameter"]
-    unless_null $P1288, vivify_426
+    .lex "$/", param_1280
+.annotate 'line', 457
+    new $P1281, "Undef"
+    .lex "$past", $P1281
+    find_lex $P1282, "$/"
+    unless_null $P1282, vivify_431
+    $P1282 = root_new ['parrot';'Hash']
+  vivify_431:
+    set $P1283, $P1282["blockoid"]
+    unless_null $P1283, vivify_432
+    new $P1283, "Undef"
+  vivify_432:
+    $P1284 = $P1283."ast"()
+    store_lex "$past", $P1284
+.annotate 'line', 458
+    find_lex $P1285, "$past"
+    $P1285."blocktype"("method")
+.annotate 'line', 459
+    find_lex $P1286, "$past"
+    $P1286."control"("return_pir")
+.annotate 'line', 460
+    find_lex $P1287, "$past"
+    unless_null $P1287, vivify_433
+    $P1287 = root_new ['parrot';'ResizablePMCArray']
+  vivify_433:
+    set $P1288, $P1287[0]
+    unless_null $P1288, vivify_434
     new $P1288, "Undef"
-  vivify_426:
-    defined $I1289, $P1288
-    unless $I1289, for_undef_427
-    iter $P1286, $P1288
-    new $P1299, 'ExceptionHandler'
-    set_addr $P1299, loop1298_handler
-    $P1299."handle_types"(64, 66, 65)
-    push_eh $P1299
-  loop1298_test:
-    unless $P1286, loop1298_done
-    shift $P1290, $P1286
-  loop1298_redo:
-    .const 'Sub' $P1292 = "79_1274853047.92727" 
-    capture_lex $P1292
-    $P1292($P1290)
-  loop1298_next:
-    goto loop1298_test
-  loop1298_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1300, exception, 'type'
-    eq $P1300, 64, loop1298_next
-    eq $P1300, 66, loop1298_redo
-  loop1298_done:
-    pop_eh 
-  for_undef_427:
-.annotate 'line', 464
-    .return ($P1286)
-  control_1279:
+  vivify_434:
+    get_hll_global $P1289, ["PAST"], "Op"
+    $P1290 = $P1289."new"("    .lex \"self\", self" :named("inline"))
+    $P1288."unshift"($P1290)
+.annotate 'line', 461
+    find_lex $P1291, "$past"
+    $P1291."symbol"("self", "lexical" :named("scope"))
+.annotate 'line', 462
+    find_lex $P1293, "$/"
+    unless_null $P1293, vivify_435
+    $P1293 = root_new ['parrot';'Hash']
+  vivify_435:
+    set $P1294, $P1293["deflongname"]
+    unless_null $P1294, vivify_436
+    new $P1294, "Undef"
+  vivify_436:
+    unless $P1294, if_1292_end
+    .const 'Sub' $P1296 = "79_1275811497.55064" 
+    capture_lex $P1296
+    $P1296()
+  if_1292_end:
+.annotate 'line', 466
+    find_dynamic_lex $P1308, "$*MULTINESS"
+    unless_null $P1308, vivify_440
+    get_hll_global $P1308, "$MULTINESS"
+    unless_null $P1308, vivify_441
+    die "Contextual $*MULTINESS not found"
+  vivify_441:
+  vivify_440:
+    set $S1309, $P1308
+    iseq $I1310, $S1309, "multi"
+    unless $I1310, if_1307_end
+    find_lex $P1311, "$past"
+    $P1312 = $P1311."multi"()
+    $P1312."unshift"("_")
+  if_1307_end:
+.annotate 'line', 467
+    find_lex $P1313, "$/"
+    find_lex $P1314, "$past"
+    $P1315 = $P1313."!make"($P1314)
+.annotate 'line', 456
+    .return ($P1315)
+  control_1278:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1301, exception, "payload"
-    .return ($P1301)
+    getattribute $P1316, exception, "payload"
+    .return ($P1316)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1291"  :anon :subid("79_1274853047.92727") :outer("78_1274853047.92727")
-    .param pmc param_1293
-.annotate 'line', 466
-    .lex "$_", param_1293
-    find_lex $P1294, "$BLOCKINIT"
-    find_lex $P1295, "$_"
-    $P1296 = $P1295."ast"()
-    $P1297 = $P1294."push"($P1296)
-    .return ($P1297)
+.sub "_block1295"  :anon :subid("79_1275811497.55064") :outer("78_1275811497.55064")
+.annotate 'line', 463
+    new $P1297, "Undef"
+    .lex "$name", $P1297
+    find_lex $P1298, "$/"
+    unless_null $P1298, vivify_437
+    $P1298 = root_new ['parrot';'Hash']
+  vivify_437:
+    set $P1299, $P1298["deflongname"]
+    unless_null $P1299, vivify_438
+    $P1299 = root_new ['parrot';'ResizablePMCArray']
+  vivify_438:
+    set $P1300, $P1299[0]
+    unless_null $P1300, vivify_439
+    new $P1300, "Undef"
+  vivify_439:
+    $P1301 = $P1300."ast"()
+    set $S1302, $P1301
+    new $P1303, 'String'
+    set $P1303, $S1302
+    store_lex "$name", $P1303
+.annotate 'line', 464
+    find_lex $P1304, "$past"
+    find_lex $P1305, "$name"
+    $P1306 = $P1304."name"($P1305)
+.annotate 'line', 462
+    .return ($P1306)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "parameter"  :subid("80_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1305
-.annotate 'line', 469
-    new $P1304, 'ExceptionHandler'
-    set_addr $P1304, control_1303
-    $P1304."handle_types"(57)
-    push_eh $P1304
-    .lex "self", self
-    .lex "$/", param_1305
-.annotate 'line', 470
-    new $P1306, "Undef"
-    .lex "$quant", $P1306
+.include "except_types.pasm"
+.sub "signature"  :subid("80_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1320
 .annotate 'line', 471
-    new $P1307, "Undef"
-    .lex "$past", $P1307
-.annotate 'line', 470
-    find_lex $P1308, "$/"
-    unless_null $P1308, vivify_428
-    $P1308 = root_new ['parrot';'Hash']
-  vivify_428:
-    set $P1309, $P1308["quant"]
-    unless_null $P1309, vivify_429
-    new $P1309, "Undef"
-  vivify_429:
-    store_lex "$quant", $P1309
-    find_lex $P1310, "$past"
+    .const 'Sub' $P1346 = "82_1275811497.55064" 
+    capture_lex $P1346
+    .const 'Sub' $P1331 = "81_1275811497.55064" 
+    capture_lex $P1331
+    new $P1319, 'ExceptionHandler'
+    set_addr $P1319, control_1318
+    $P1319."handle_types"(.CONTROL_RETURN)
+    push_eh $P1319
+    .lex "self", self
+    .lex "$/", param_1320
 .annotate 'line', 472
-    find_lex $P1312, "$/"
-    unless_null $P1312, vivify_430
-    $P1312 = root_new ['parrot';'Hash']
-  vivify_430:
-    set $P1313, $P1312["named_param"]
-    unless_null $P1313, vivify_431
-    new $P1313, "Undef"
-  vivify_431:
-    if $P1313, if_1311
-.annotate 'line', 479
-    find_lex $P1327, "$/"
-    unless_null $P1327, vivify_432
-    $P1327 = root_new ['parrot';'Hash']
-  vivify_432:
-    set $P1328, $P1327["param_var"]
-    unless_null $P1328, vivify_433
-    new $P1328, "Undef"
-  vivify_433:
-    $P1329 = $P1328."ast"()
-    store_lex "$past", $P1329
-.annotate 'line', 480
-    find_lex $P1331, "$quant"
-    set $S1332, $P1331
-    iseq $I1333, $S1332, "*"
-    if $I1333, if_1330
-.annotate 'line', 484
-    find_lex $P1342, "$quant"
-    set $S1343, $P1342
-    iseq $I1344, $S1343, "?"
-    unless $I1344, if_1341_end
-.annotate 'line', 485
-    find_lex $P1345, "$past"
-    find_lex $P1346, "$/"
-    unless_null $P1346, vivify_434
-    $P1346 = root_new ['parrot';'Hash']
-  vivify_434:
-    set $P1347, $P1346["param_var"]
-    unless_null $P1347, vivify_435
-    $P1347 = root_new ['parrot';'Hash']
-  vivify_435:
-    set $P1348, $P1347["sigil"]
-    unless_null $P1348, vivify_436
-    new $P1348, "Undef"
-  vivify_436:
-    $P1349 = "vivitype"($P1348)
-    $P1345."viviself"($P1349)
-  if_1341_end:
-.annotate 'line', 484
-    goto if_1330_end
-  if_1330:
-.annotate 'line', 481
-    find_lex $P1334, "$past"
-    $P1334."slurpy"(1)
-.annotate 'line', 482
-    find_lex $P1335, "$past"
-    find_lex $P1336, "$/"
-    unless_null $P1336, vivify_437
-    $P1336 = root_new ['parrot';'Hash']
-  vivify_437:
-    set $P1337, $P1336["param_var"]
-    unless_null $P1337, vivify_438
-    $P1337 = root_new ['parrot';'Hash']
-  vivify_438:
-    set $P1338, $P1337["sigil"]
-    unless_null $P1338, vivify_439
-    new $P1338, "Undef"
-  vivify_439:
-    set $S1339, $P1338
-    iseq $I1340, $S1339, "%"
-    $P1335."named"($I1340)
-  if_1330_end:
-.annotate 'line', 478
-    goto if_1311_end
-  if_1311:
-.annotate 'line', 473
-    find_lex $P1314, "$/"
-    unless_null $P1314, vivify_440
-    $P1314 = root_new ['parrot';'Hash']
-  vivify_440:
-    set $P1315, $P1314["named_param"]
-    unless_null $P1315, vivify_441
-    new $P1315, "Undef"
-  vivify_441:
-    $P1316 = $P1315."ast"()
-    store_lex "$past", $P1316
-.annotate 'line', 474
-    find_lex $P1318, "$quant"
-    set $S1319, $P1318
-    isne $I1320, $S1319, "!"
-    unless $I1320, if_1317_end
-.annotate 'line', 475
-    find_lex $P1321, "$past"
-    find_lex $P1322, "$/"
+    new $P1321, "Undef"
+    .lex "$BLOCKINIT", $P1321
+    get_global $P1322, "@BLOCK"
     unless_null $P1322, vivify_442
-    $P1322 = root_new ['parrot';'Hash']
+    $P1322 = root_new ['parrot';'ResizablePMCArray']
   vivify_442:
-    set $P1323, $P1322["named_param"]
+    set $P1323, $P1322[0]
     unless_null $P1323, vivify_443
-    $P1323 = root_new ['parrot';'Hash']
+    $P1323 = root_new ['parrot';'ResizablePMCArray']
   vivify_443:
-    set $P1324, $P1323["param_var"]
+    set $P1324, $P1323[0]
     unless_null $P1324, vivify_444
-    $P1324 = root_new ['parrot';'Hash']
+    new $P1324, "Undef"
   vivify_444:
-    set $P1325, $P1324["sigil"]
-    unless_null $P1325, vivify_445
-    new $P1325, "Undef"
+    store_lex "$BLOCKINIT", $P1324
+.annotate 'line', 474
+    find_lex $P1326, "$/"
+    unless_null $P1326, vivify_445
+    $P1326 = root_new ['parrot';'Hash']
   vivify_445:
-    $P1326 = "vivitype"($P1325)
-    $P1321."viviself"($P1326)
-  if_1317_end:
-  if_1311_end:
-.annotate 'line', 488
-    find_lex $P1351, "$/"
-    unless_null $P1351, vivify_446
-    $P1351 = root_new ['parrot';'Hash']
+    set $P1327, $P1326["parameter"]
+    unless_null $P1327, vivify_446
+    new $P1327, "Undef"
   vivify_446:
-    set $P1352, $P1351["default_value"]
-    unless_null $P1352, vivify_447
-    new $P1352, "Undef"
-  vivify_447:
-    unless $P1352, if_1350_end
-.annotate 'line', 489
-    find_lex $P1354, "$quant"
-    set $S1355, $P1354
-    iseq $I1356, $S1355, "*"
-    unless $I1356, if_1353_end
-.annotate 'line', 490
-    find_lex $P1357, "$/"
-    $P1358 = $P1357."CURSOR"()
-    $P1358."panic"("Can't put default on slurpy parameter")
-  if_1353_end:
-.annotate 'line', 492
-    find_lex $P1360, "$quant"
-    set $S1361, $P1360
-    iseq $I1362, $S1361, "!"
-    unless $I1362, if_1359_end
-.annotate 'line', 493
-    find_lex $P1363, "$/"
-    $P1364 = $P1363."CURSOR"()
-    $P1364."panic"("Can't put default on required parameter")
-  if_1359_end:
-.annotate 'line', 495
-    find_lex $P1365, "$past"
-    find_lex $P1366, "$/"
-    unless_null $P1366, vivify_448
-    $P1366 = root_new ['parrot';'Hash']
-  vivify_448:
-    set $P1367, $P1366["default_value"]
-    unless_null $P1367, vivify_449
-    $P1367 = root_new ['parrot';'ResizablePMCArray']
+    defined $I1328, $P1327
+    unless $I1328, for_undef_447
+    iter $P1325, $P1327
+    new $P1338, 'ExceptionHandler'
+    set_addr $P1338, loop1337_handler
+    $P1338."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1338
+  loop1337_test:
+    unless $P1325, loop1337_done
+    shift $P1329, $P1325
+  loop1337_redo:
+    .const 'Sub' $P1331 = "81_1275811497.55064" 
+    capture_lex $P1331
+    $P1331($P1329)
+  loop1337_next:
+    goto loop1337_test
+  loop1337_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1339, exception, 'type'
+    eq $P1339, .CONTROL_LOOP_NEXT, loop1337_next
+    eq $P1339, .CONTROL_LOOP_REDO, loop1337_redo
+  loop1337_done:
+    pop_eh 
+  for_undef_447:
+.annotate 'line', 477
+    find_dynamic_lex $P1342, "$*MULTINESS"
+    unless_null $P1342, vivify_448
+    get_hll_global $P1342, "$MULTINESS"
+    unless_null $P1342, vivify_449
+    die "Contextual $*MULTINESS not found"
   vivify_449:
-    set $P1368, $P1367[0]
-    unless_null $P1368, vivify_450
-    $P1368 = root_new ['parrot';'Hash']
-  vivify_450:
-    set $P1369, $P1368["EXPR"]
-    unless_null $P1369, vivify_451
-    new $P1369, "Undef"
-  vivify_451:
-    $P1370 = $P1369."ast"()
-    $P1365."viviself"($P1370)
-  if_1350_end:
-.annotate 'line', 497
-    find_lex $P1372, "$past"
-    $P1373 = $P1372."viviself"()
-    if $P1373, unless_1371_end
-    get_global $P1374, "@BLOCK"
-    unless_null $P1374, vivify_452
-    $P1374 = root_new ['parrot';'ResizablePMCArray']
-  vivify_452:
-    set $P1375, $P1374[0]
-    unless_null $P1375, vivify_453
-    new $P1375, "Undef"
-  vivify_453:
-    get_global $P1376, "@BLOCK"
-    unless_null $P1376, vivify_454
-    $P1376 = root_new ['parrot';'ResizablePMCArray']
-  vivify_454:
-    set $P1377, $P1376[0]
-    unless_null $P1377, vivify_455
-    new $P1377, "Undef"
-  vivify_455:
-    $P1378 = $P1377."arity"()
-    set $N1379, $P1378
-    new $P1380, 'Float'
-    set $P1380, $N1379
-    add $P1381, $P1380, 1
-    $P1375."arity"($P1381)
-  unless_1371_end:
-.annotate 'line', 498
-    find_lex $P1382, "$/"
-    find_lex $P1383, "$past"
-    $P1384 = $P1382."!make"($P1383)
-.annotate 'line', 469
-    .return ($P1384)
-  control_1303:
+  vivify_448:
+    set $S1343, $P1342
+    iseq $I1344, $S1343, "multi"
+    if $I1344, if_1341
+    new $P1340, 'Integer'
+    set $P1340, $I1344
+    goto if_1341_end
+  if_1341:
+    .const 'Sub' $P1346 = "82_1275811497.55064" 
+    capture_lex $P1346
+    $P1372 = $P1346()
+    set $P1340, $P1372
+  if_1341_end:
+.annotate 'line', 471
+    .return ($P1340)
+  control_1318:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1385, exception, "payload"
-    .return ($P1385)
+    getattribute $P1373, exception, "payload"
+    .return ($P1373)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "param_var"  :subid("81_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1389
-.annotate 'line', 501
-    new $P1388, 'ExceptionHandler'
-    set_addr $P1388, control_1387
-    $P1388."handle_types"(57)
-    push_eh $P1388
-    .lex "self", self
-    .lex "$/", param_1389
-.annotate 'line', 502
-    new $P1390, "Undef"
-    .lex "$name", $P1390
-.annotate 'line', 503
-    new $P1391, "Undef"
-    .lex "$past", $P1391
-.annotate 'line', 502
-    find_lex $P1392, "$/"
-    set $S1393, $P1392
-    new $P1394, 'String'
-    set $P1394, $S1393
-    store_lex "$name", $P1394
-.annotate 'line', 503
-    get_hll_global $P1395, ["PAST"], "Var"
-    find_lex $P1396, "$name"
-    find_lex $P1397, "$/"
-    $P1398 = $P1395."new"($P1396 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1397 :named("node"))
-    store_lex "$past", $P1398
-.annotate 'line', 505
-    get_global $P1399, "@BLOCK"
-    unless_null $P1399, vivify_456
-    $P1399 = root_new ['parrot';'ResizablePMCArray']
-  vivify_456:
-    set $P1400, $P1399[0]
-    unless_null $P1400, vivify_457
-    new $P1400, "Undef"
-  vivify_457:
-    find_lex $P1401, "$name"
-    $P1400."symbol"($P1401, "lexical" :named("scope"))
-.annotate 'line', 506
-    find_lex $P1402, "$/"
-    find_lex $P1403, "$past"
-    $P1404 = $P1402."!make"($P1403)
-.annotate 'line', 501
-    .return ($P1404)
-  control_1387:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1405, exception, "payload"
-    .return ($P1405)
+.sub "_block1330"  :anon :subid("81_1275811497.55064") :outer("80_1275811497.55064")
+    .param pmc param_1332
+.annotate 'line', 474
+    .lex "$_", param_1332
+    find_lex $P1333, "$BLOCKINIT"
+    find_lex $P1334, "$_"
+    $P1335 = $P1334."ast"()
+    $P1336 = $P1333."push"($P1335)
+    .return ($P1336)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "named_param"  :subid("82_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1409
-.annotate 'line', 509
-    new $P1408, 'ExceptionHandler'
-    set_addr $P1408, control_1407
-    $P1408."handle_types"(57)
-    push_eh $P1408
+.include "except_types.pasm"
+.sub "_block1345"  :anon :subid("82_1275811497.55064") :outer("80_1275811497.55064")
+.annotate 'line', 477
+    .const 'Sub' $P1355 = "83_1275811497.55064" 
+    capture_lex $P1355
+.annotate 'line', 478
+    $P1347 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@params", $P1347
+.annotate 'line', 477
+    find_lex $P1348, "@params"
+.annotate 'line', 479
+    find_lex $P1350, "$BLOCKINIT"
+    $P1351 = $P1350."list"()
+    defined $I1352, $P1351
+    unless $I1352, for_undef_450
+    iter $P1349, $P1351
+    new $P1366, 'ExceptionHandler'
+    set_addr $P1366, loop1365_handler
+    $P1366."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1366
+  loop1365_test:
+    unless $P1349, loop1365_done
+    shift $P1353, $P1349
+  loop1365_redo:
+    .const 'Sub' $P1355 = "83_1275811497.55064" 
+    capture_lex $P1355
+    $P1355($P1353)
+  loop1365_next:
+    goto loop1365_test
+  loop1365_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1367, exception, 'type'
+    eq $P1367, .CONTROL_LOOP_NEXT, loop1365_next
+    eq $P1367, .CONTROL_LOOP_REDO, loop1365_redo
+  loop1365_done:
+    pop_eh 
+  for_undef_450:
+.annotate 'line', 482
+    get_global $P1368, "@BLOCK"
+    unless_null $P1368, vivify_451
+    $P1368 = root_new ['parrot';'ResizablePMCArray']
+  vivify_451:
+    set $P1369, $P1368[0]
+    unless_null $P1369, vivify_452
+    new $P1369, "Undef"
+  vivify_452:
+    find_lex $P1370, "@params"
+    $P1371 = $P1369."multi"($P1370)
+.annotate 'line', 477
+    .return ($P1371)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1354"  :anon :subid("83_1275811497.55064") :outer("82_1275811497.55064")
+    .param pmc param_1356
+.annotate 'line', 479
+    .lex "$_", param_1356
+.annotate 'line', 480
+    find_lex $P1357, "@params"
+    find_lex $P1359, "$_"
+    $P1360 = $P1359."multitype"()
+    set $P1358, $P1360
+    defined $I1362, $P1358
+    if $I1362, default_1361
+    new $P1363, "String"
+    assign $P1363, "_"
+    set $P1358, $P1363
+  default_1361:
+    $P1364 = $P1357."push"($P1358)
+.annotate 'line', 479
+    .return ($P1364)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "parameter"  :subid("84_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1377
+.annotate 'line', 486
+    .const 'Sub' $P1458 = "85_1275811497.55064" 
+    capture_lex $P1458
+    new $P1376, 'ExceptionHandler'
+    set_addr $P1376, control_1375
+    $P1376."handle_types"(.CONTROL_RETURN)
+    push_eh $P1376
     .lex "self", self
-    .lex "$/", param_1409
-.annotate 'line', 510
-    new $P1410, "Undef"
-    .lex "$past", $P1410
-    find_lex $P1411, "$/"
-    unless_null $P1411, vivify_458
-    $P1411 = root_new ['parrot';'Hash']
+    .lex "$/", param_1377
+.annotate 'line', 487
+    new $P1378, "Undef"
+    .lex "$quant", $P1378
+.annotate 'line', 488
+    new $P1379, "Undef"
+    .lex "$past", $P1379
+.annotate 'line', 487
+    find_lex $P1380, "$/"
+    unless_null $P1380, vivify_453
+    $P1380 = root_new ['parrot';'Hash']
+  vivify_453:
+    set $P1381, $P1380["quant"]
+    unless_null $P1381, vivify_454
+    new $P1381, "Undef"
+  vivify_454:
+    store_lex "$quant", $P1381
+    find_lex $P1382, "$past"
+.annotate 'line', 489
+    find_lex $P1384, "$/"
+    unless_null $P1384, vivify_455
+    $P1384 = root_new ['parrot';'Hash']
+  vivify_455:
+    set $P1385, $P1384["named_param"]
+    unless_null $P1385, vivify_456
+    new $P1385, "Undef"
+  vivify_456:
+    if $P1385, if_1383
+.annotate 'line', 496
+    find_lex $P1399, "$/"
+    unless_null $P1399, vivify_457
+    $P1399 = root_new ['parrot';'Hash']
+  vivify_457:
+    set $P1400, $P1399["param_var"]
+    unless_null $P1400, vivify_458
+    new $P1400, "Undef"
   vivify_458:
-    set $P1412, $P1411["param_var"]
-    unless_null $P1412, vivify_459
-    new $P1412, "Undef"
+    $P1401 = $P1400."ast"()
+    store_lex "$past", $P1401
+.annotate 'line', 497
+    find_lex $P1403, "$quant"
+    set $S1404, $P1403
+    iseq $I1405, $S1404, "*"
+    if $I1405, if_1402
+.annotate 'line', 501
+    find_lex $P1414, "$quant"
+    set $S1415, $P1414
+    iseq $I1416, $S1415, "?"
+    unless $I1416, if_1413_end
+.annotate 'line', 502
+    find_lex $P1417, "$past"
+    find_lex $P1418, "$/"
+    unless_null $P1418, vivify_459
+    $P1418 = root_new ['parrot';'Hash']
   vivify_459:
-    $P1413 = $P1412."ast"()
-    store_lex "$past", $P1413
-.annotate 'line', 511
-    find_lex $P1414, "$past"
-    find_lex $P1415, "$/"
-    unless_null $P1415, vivify_460
-    $P1415 = root_new ['parrot';'Hash']
+    set $P1419, $P1418["param_var"]
+    unless_null $P1419, vivify_460
+    $P1419 = root_new ['parrot';'Hash']
   vivify_460:
-    set $P1416, $P1415["param_var"]
-    unless_null $P1416, vivify_461
-    $P1416 = root_new ['parrot';'Hash']
+    set $P1420, $P1419["sigil"]
+    unless_null $P1420, vivify_461
+    new $P1420, "Undef"
   vivify_461:
-    set $P1417, $P1416["name"]
-    unless_null $P1417, vivify_462
-    new $P1417, "Undef"
+    $P1421 = "vivitype"($P1420)
+    $P1417."viviself"($P1421)
+  if_1413_end:
+.annotate 'line', 501
+    goto if_1402_end
+  if_1402:
+.annotate 'line', 498
+    find_lex $P1406, "$past"
+    $P1406."slurpy"(1)
+.annotate 'line', 499
+    find_lex $P1407, "$past"
+    find_lex $P1408, "$/"
+    unless_null $P1408, vivify_462
+    $P1408 = root_new ['parrot';'Hash']
   vivify_462:
-    set $S1418, $P1417
-    $P1414."named"($S1418)
-.annotate 'line', 512
-    find_lex $P1419, "$/"
-    find_lex $P1420, "$past"
-    $P1421 = $P1419."!make"($P1420)
-.annotate 'line', 509
-    .return ($P1421)
-  control_1407:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1422, exception, "payload"
-    .return ($P1422)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "regex_declarator"  :subid("83_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1426
-    .param pmc param_1427 :optional
-    .param int has_param_1427 :opt_flag
-.annotate 'line', 515
-    .const 'Sub' $P1497 = "85_1274853047.92727" 
-    capture_lex $P1497
-    .const 'Sub' $P1469 = "84_1274853047.92727" 
-    capture_lex $P1469
-    new $P1425, 'ExceptionHandler'
-    set_addr $P1425, control_1424
-    $P1425."handle_types"(57)
-    push_eh $P1425
-    .lex "self", self
-    .lex "$/", param_1426
-    if has_param_1427, optparam_463
-    new $P1428, "Undef"
-    set param_1427, $P1428
-  optparam_463:
-    .lex "$key", param_1427
-.annotate 'line', 516
-    $P1429 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@MODIFIERS", $P1429
-.annotate 'line', 519
-    new $P1430, "Undef"
-    .lex "$name", $P1430
-.annotate 'line', 520
-    new $P1431, "Undef"
-    .lex "$past", $P1431
-.annotate 'line', 516
-
-        $P1432 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
-    
-    store_lex "@MODIFIERS", $P1432
-.annotate 'line', 519
-    find_lex $P1433, "$/"
-    unless_null $P1433, vivify_464
-    $P1433 = root_new ['parrot';'Hash']
+    set $P1409, $P1408["param_var"]
+    unless_null $P1409, vivify_463
+    $P1409 = root_new ['parrot';'Hash']
+  vivify_463:
+    set $P1410, $P1409["sigil"]
+    unless_null $P1410, vivify_464
+    new $P1410, "Undef"
   vivify_464:
-    set $P1434, $P1433["deflongname"]
-    unless_null $P1434, vivify_465
-    new $P1434, "Undef"
+    set $S1411, $P1410
+    iseq $I1412, $S1411, "%"
+    $P1407."named"($I1412)
+  if_1402_end:
+.annotate 'line', 495
+    goto if_1383_end
+  if_1383:
+.annotate 'line', 490
+    find_lex $P1386, "$/"
+    unless_null $P1386, vivify_465
+    $P1386 = root_new ['parrot';'Hash']
   vivify_465:
-    $P1435 = $P1434."ast"()
-    set $S1436, $P1435
-    new $P1437, 'String'
-    set $P1437, $S1436
-    store_lex "$name", $P1437
-    find_lex $P1438, "$past"
-.annotate 'line', 521
-    find_lex $P1440, "$/"
-    unless_null $P1440, vivify_466
-    $P1440 = root_new ['parrot';'Hash']
+    set $P1387, $P1386["named_param"]
+    unless_null $P1387, vivify_466
+    new $P1387, "Undef"
   vivify_466:
-    set $P1441, $P1440["proto"]
-    unless_null $P1441, vivify_467
-    new $P1441, "Undef"
+    $P1388 = $P1387."ast"()
+    store_lex "$past", $P1388
+.annotate 'line', 491
+    find_lex $P1390, "$quant"
+    set $S1391, $P1390
+    isne $I1392, $S1391, "!"
+    unless $I1392, if_1389_end
+.annotate 'line', 492
+    find_lex $P1393, "$past"
+    find_lex $P1394, "$/"
+    unless_null $P1394, vivify_467
+    $P1394 = root_new ['parrot';'Hash']
   vivify_467:
-    if $P1441, if_1439
-.annotate 'line', 548
-    find_lex $P1465, "$key"
-    set $S1466, $P1465
-    iseq $I1467, $S1466, "open"
-    if $I1467, if_1464
-.annotate 'line', 561
-    .const 'Sub' $P1497 = "85_1274853047.92727" 
-    capture_lex $P1497
-    $P1497()
-    goto if_1464_end
-  if_1464:
-.annotate 'line', 548
-    .const 'Sub' $P1469 = "84_1274853047.92727" 
-    capture_lex $P1469
-    $P1469()
-  if_1464_end:
-    goto if_1439_end
-  if_1439:
-.annotate 'line', 523
-    get_hll_global $P1442, ["PAST"], "Stmts"
-.annotate 'line', 524
-    get_hll_global $P1443, ["PAST"], "Block"
-    find_lex $P1444, "$name"
-.annotate 'line', 525
-    get_hll_global $P1445, ["PAST"], "Op"
-.annotate 'line', 526
-    get_hll_global $P1446, ["PAST"], "Var"
-    $P1447 = $P1446."new"("self" :named("name"), "register" :named("scope"))
-    find_lex $P1448, "$name"
-    $P1449 = $P1445."new"($P1447, $P1448, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 525
-    find_lex $P1450, "$/"
-    $P1451 = $P1443."new"($P1449, $P1444 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1450 :named("node"))
-.annotate 'line', 535
-    get_hll_global $P1452, ["PAST"], "Block"
-    new $P1453, "String"
-    assign $P1453, "!PREFIX__"
-    find_lex $P1454, "$name"
-    concat $P1455, $P1453, $P1454
-.annotate 'line', 536
-    get_hll_global $P1456, ["PAST"], "Op"
-.annotate 'line', 537
-    get_hll_global $P1457, ["PAST"], "Var"
-    $P1458 = $P1457."new"("self" :named("name"), "register" :named("scope"))
-    find_lex $P1459, "$name"
-    $P1460 = $P1456."new"($P1458, $P1459, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 536
-    find_lex $P1461, "$/"
-    $P1462 = $P1452."new"($P1460, $P1455 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1461 :named("node"))
-.annotate 'line', 535
-    $P1463 = $P1442."new"($P1451, $P1462)
-.annotate 'line', 523
-    store_lex "$past", $P1463
-  if_1439_end:
-.annotate 'line', 575
-    find_lex $P1518, "$/"
-    find_lex $P1519, "$past"
-    $P1520 = $P1518."!make"($P1519)
-.annotate 'line', 515
-    .return ($P1520)
-  control_1424:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1521, exception, "payload"
-    .return ($P1521)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1496"  :anon :subid("85_1274853047.92727") :outer("83_1274853047.92727")
-.annotate 'line', 562
-    new $P1498, "Undef"
-    .lex "$regex", $P1498
-.annotate 'line', 563
-    get_hll_global $P1499, ["Regex";"P6Regex";"Actions"], "buildsub"
-    find_lex $P1500, "$/"
-    unless_null $P1500, vivify_468
-    $P1500 = root_new ['parrot';'Hash']
+    set $P1395, $P1394["named_param"]
+    unless_null $P1395, vivify_468
+    $P1395 = root_new ['parrot';'Hash']
   vivify_468:
-    set $P1501, $P1500["p6regex"]
-    unless_null $P1501, vivify_469
-    new $P1501, "Undef"
+    set $P1396, $P1395["param_var"]
+    unless_null $P1396, vivify_469
+    $P1396 = root_new ['parrot';'Hash']
   vivify_469:
-    $P1502 = $P1501."ast"()
-    get_global $P1503, "@BLOCK"
-    $P1504 = $P1503."shift"()
-    $P1505 = $P1499($P1502, $P1504)
-    store_lex "$regex", $P1505
-.annotate 'line', 564
-    find_lex $P1506, "$regex"
-    find_lex $P1507, "$name"
-    $P1506."name"($P1507)
-.annotate 'line', 566
-    get_hll_global $P1508, ["PAST"], "Op"
-.annotate 'line', 568
-    get_hll_global $P1509, ["PAST"], "Var"
-    new $P1510, "ResizablePMCArray"
-    push $P1510, "Regex"
-    $P1511 = $P1509."new"("Method" :named("name"), $P1510 :named("namespace"), "package" :named("scope"))
-    find_lex $P1512, "$regex"
-    $P1513 = $P1508."new"($P1511, $P1512, "callmethod" :named("pasttype"), "new" :named("name"))
-.annotate 'line', 566
-    store_lex "$past", $P1513
-.annotate 'line', 572
-    find_lex $P1514, "$regex"
-    find_lex $P1515, "$past"
-    unless_null $P1515, vivify_470
-    $P1515 = root_new ['parrot';'Hash']
-    store_lex "$past", $P1515
+    set $P1397, $P1396["sigil"]
+    unless_null $P1397, vivify_470
+    new $P1397, "Undef"
   vivify_470:
-    set $P1515["sink"], $P1514
-.annotate 'line', 573
-    find_lex $P1516, "@MODIFIERS"
-    $P1517 = $P1516."shift"()
-.annotate 'line', 561
-    .return ($P1517)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1468"  :anon :subid("84_1274853047.92727") :outer("83_1274853047.92727")
-.annotate 'line', 549
-    $P1470 = root_new ['parrot';'Hash']
-    .lex "%h", $P1470
-.annotate 'line', 548
-    find_lex $P1471, "%h"
-.annotate 'line', 550
-    find_lex $P1473, "$/"
-    unless_null $P1473, vivify_471
-    $P1473 = root_new ['parrot';'Hash']
+    $P1398 = "vivitype"($P1397)
+    $P1393."viviself"($P1398)
+  if_1389_end:
+  if_1383_end:
+.annotate 'line', 505
+    find_lex $P1423, "$/"
+    unless_null $P1423, vivify_471
+    $P1423 = root_new ['parrot';'Hash']
   vivify_471:
-    set $P1474, $P1473["sym"]
-    unless_null $P1474, vivify_472
-    new $P1474, "Undef"
+    set $P1424, $P1423["default_value"]
+    unless_null $P1424, vivify_472
+    new $P1424, "Undef"
   vivify_472:
-    set $S1475, $P1474
-    iseq $I1476, $S1475, "token"
-    unless $I1476, if_1472_end
-    new $P1477, "Integer"
-    assign $P1477, 1
-    find_lex $P1478, "%h"
-    unless_null $P1478, vivify_473
-    $P1478 = root_new ['parrot';'Hash']
-    store_lex "%h", $P1478
+    unless $P1424, if_1422_end
+.annotate 'line', 506
+    find_lex $P1426, "$quant"
+    set $S1427, $P1426
+    iseq $I1428, $S1427, "*"
+    unless $I1428, if_1425_end
+.annotate 'line', 507
+    find_lex $P1429, "$/"
+    $P1430 = $P1429."CURSOR"()
+    $P1430."panic"("Can't put default on slurpy parameter")
+  if_1425_end:
+.annotate 'line', 509
+    find_lex $P1432, "$quant"
+    set $S1433, $P1432
+    iseq $I1434, $S1433, "!"
+    unless $I1434, if_1431_end
+.annotate 'line', 510
+    find_lex $P1435, "$/"
+    $P1436 = $P1435."CURSOR"()
+    $P1436."panic"("Can't put default on required parameter")
+  if_1431_end:
+.annotate 'line', 512
+    find_lex $P1437, "$past"
+    find_lex $P1438, "$/"
+    unless_null $P1438, vivify_473
+    $P1438 = root_new ['parrot';'Hash']
   vivify_473:
-    set $P1478["r"], $P1477
-  if_1472_end:
-.annotate 'line', 551
-    find_lex $P1480, "$/"
-    unless_null $P1480, vivify_474
-    $P1480 = root_new ['parrot';'Hash']
+    set $P1439, $P1438["default_value"]
+    unless_null $P1439, vivify_474
+    $P1439 = root_new ['parrot';'ResizablePMCArray']
   vivify_474:
-    set $P1481, $P1480["sym"]
-    unless_null $P1481, vivify_475
-    new $P1481, "Undef"
+    set $P1440, $P1439[0]
+    unless_null $P1440, vivify_475
+    $P1440 = root_new ['parrot';'Hash']
   vivify_475:
-    set $S1482, $P1481
-    iseq $I1483, $S1482, "rule"
-    unless $I1483, if_1479_end
-    new $P1484, "Integer"
-    assign $P1484, 1
-    find_lex $P1485, "%h"
-    unless_null $P1485, vivify_476
-    $P1485 = root_new ['parrot';'Hash']
-    store_lex "%h", $P1485
+    set $P1441, $P1440["EXPR"]
+    unless_null $P1441, vivify_476
+    new $P1441, "Undef"
   vivify_476:
-    set $P1485["r"], $P1484
-    new $P1486, "Integer"
-    assign $P1486, 1
-    find_lex $P1487, "%h"
-    unless_null $P1487, vivify_477
-    $P1487 = root_new ['parrot';'Hash']
-    store_lex "%h", $P1487
+    $P1442 = $P1441."ast"()
+    $P1437."viviself"($P1442)
+  if_1422_end:
+.annotate 'line', 514
+    find_lex $P1444, "$past"
+    $P1445 = $P1444."viviself"()
+    if $P1445, unless_1443_end
+    get_global $P1446, "@BLOCK"
+    unless_null $P1446, vivify_477
+    $P1446 = root_new ['parrot';'ResizablePMCArray']
   vivify_477:
-    set $P1487["s"], $P1486
-  if_1479_end:
-.annotate 'line', 552
-    find_lex $P1488, "@MODIFIERS"
-    find_lex $P1489, "%h"
-    $P1488."unshift"($P1489)
-.annotate 'line', 553
-
-            $P0 = find_lex '$name'
-            set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-        
-.annotate 'line', 557
-    get_global $P1490, "@BLOCK"
-    unless_null $P1490, vivify_478
-    $P1490 = root_new ['parrot';'ResizablePMCArray']
+    set $P1447, $P1446[0]
+    unless_null $P1447, vivify_478
+    new $P1447, "Undef"
   vivify_478:
-    set $P1491, $P1490[0]
-    unless_null $P1491, vivify_479
-    new $P1491, "Undef"
+    get_global $P1448, "@BLOCK"
+    unless_null $P1448, vivify_479
+    $P1448 = root_new ['parrot';'ResizablePMCArray']
   vivify_479:
-    $P1491."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-.annotate 'line', 558
-    get_global $P1492, "@BLOCK"
-    unless_null $P1492, vivify_480
-    $P1492 = root_new ['parrot';'ResizablePMCArray']
+    set $P1449, $P1448[0]
+    unless_null $P1449, vivify_480
+    new $P1449, "Undef"
   vivify_480:
-    set $P1493, $P1492[0]
-    unless_null $P1493, vivify_481
-    new $P1493, "Undef"
+    $P1450 = $P1449."arity"()
+    set $N1451, $P1450
+    new $P1452, 'Float'
+    set $P1452, $N1451
+    add $P1453, $P1452, 1
+    $P1447."arity"($P1453)
+  unless_1443_end:
+.annotate 'line', 517
+    find_lex $P1455, "$/"
+    unless_null $P1455, vivify_481
+    $P1455 = root_new ['parrot';'Hash']
   vivify_481:
-    $P1493."symbol"("$/", "lexical" :named("scope"))
-.annotate 'line', 559
-    new $P1494, "Exception"
-    set $P1494['type'], 57
-    new $P1495, "Integer"
-    assign $P1495, 0
-    setattribute $P1494, 'payload', $P1495
-    throw $P1494
-.annotate 'line', 548
-    .return ()
+    set $P1456, $P1455["typename"]
+    unless_null $P1456, vivify_482
+    new $P1456, "Undef"
+  vivify_482:
+    unless $P1456, if_1454_end
+    .const 'Sub' $P1458 = "85_1275811497.55064" 
+    capture_lex $P1458
+    $P1458()
+  if_1454_end:
+.annotate 'line', 523
+    find_lex $P1482, "$/"
+    find_lex $P1483, "$past"
+    $P1484 = $P1482."!make"($P1483)
+.annotate 'line', 486
+    .return ($P1484)
+  control_1375:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1485, exception, "payload"
+    .return ($P1485)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "dotty"  :subid("86_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1525
-.annotate 'line', 579
-    new $P1524, 'ExceptionHandler'
-    set_addr $P1524, control_1523
-    $P1524."handle_types"(57)
-    push_eh $P1524
-    .lex "self", self
-    .lex "$/", param_1525
-.annotate 'line', 580
-    new $P1526, "Undef"
-    .lex "$past", $P1526
-    find_lex $P1529, "$/"
-    unless_null $P1529, vivify_482
-    $P1529 = root_new ['parrot';'Hash']
-  vivify_482:
-    set $P1530, $P1529["args"]
-    unless_null $P1530, vivify_483
-    new $P1530, "Undef"
+.include "except_types.pasm"
+.sub "_block1457"  :anon :subid("85_1275811497.55064") :outer("84_1275811497.55064")
+.annotate 'line', 517
+    .const 'Sub' $P1470 = "86_1275811497.55064" 
+    capture_lex $P1470
+.annotate 'line', 518
+    $P1459 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@multitype", $P1459
+.annotate 'line', 517
+    find_lex $P1460, "@multitype"
+.annotate 'line', 519
+    find_lex $P1462, "$/"
+    unless_null $P1462, vivify_483
+    $P1462 = root_new ['parrot';'Hash']
   vivify_483:
-    if $P1530, if_1528
-    get_hll_global $P1535, ["PAST"], "Op"
-    find_lex $P1536, "$/"
-    $P1537 = $P1535."new"($P1536 :named("node"))
-    set $P1527, $P1537
-    goto if_1528_end
-  if_1528:
-    find_lex $P1531, "$/"
-    unless_null $P1531, vivify_484
-    $P1531 = root_new ['parrot';'Hash']
+    set $P1463, $P1462["typename"]
+    unless_null $P1463, vivify_484
+    $P1463 = root_new ['parrot';'ResizablePMCArray']
   vivify_484:
-    set $P1532, $P1531["args"]
-    unless_null $P1532, vivify_485
-    $P1532 = root_new ['parrot';'ResizablePMCArray']
+    set $P1464, $P1463[0]
+    unless_null $P1464, vivify_485
+    $P1464 = root_new ['parrot';'Hash']
   vivify_485:
-    set $P1533, $P1532[0]
-    unless_null $P1533, vivify_486
-    new $P1533, "Undef"
+    set $P1465, $P1464["name"]
+    unless_null $P1465, vivify_486
+    $P1465 = root_new ['parrot';'Hash']
   vivify_486:
-    $P1534 = $P1533."ast"()
-    set $P1527, $P1534
-  if_1528_end:
-    store_lex "$past", $P1527
-.annotate 'line', 581
-    find_lex $P1538, "$past"
-    find_lex $P1541, "$/"
-    unless_null $P1541, vivify_487
-    $P1541 = root_new ['parrot';'Hash']
+    set $P1466, $P1465["identifier"]
+    unless_null $P1466, vivify_487
+    new $P1466, "Undef"
   vivify_487:
-    set $P1542, $P1541["quote"]
-    unless_null $P1542, vivify_488
-    new $P1542, "Undef"
-  vivify_488:
-    if $P1542, if_1540
-    find_lex $P1546, "$/"
-    unless_null $P1546, vivify_489
-    $P1546 = root_new ['parrot';'Hash']
-  vivify_489:
-    set $P1547, $P1546["longname"]
-    unless_null $P1547, vivify_490
-    new $P1547, "Undef"
-  vivify_490:
-    set $S1548, $P1547
-    new $P1539, 'String'
-    set $P1539, $S1548
-    goto if_1540_end
-  if_1540:
-    find_lex $P1543, "$/"
-    unless_null $P1543, vivify_491
-    $P1543 = root_new ['parrot';'Hash']
-  vivify_491:
-    set $P1544, $P1543["quote"]
-    unless_null $P1544, vivify_492
-    new $P1544, "Undef"
-  vivify_492:
-    $P1545 = $P1544."ast"()
-    set $P1539, $P1545
-  if_1540_end:
-    $P1538."name"($P1539)
-.annotate 'line', 582
-    find_lex $P1549, "$past"
-    $P1549."pasttype"("callmethod")
-.annotate 'line', 583
-    find_lex $P1550, "$/"
-    find_lex $P1551, "$past"
-    $P1552 = $P1550."!make"($P1551)
-.annotate 'line', 579
-    .return ($P1552)
-  control_1523:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1553, exception, "payload"
-    .return ($P1553)
+    defined $I1467, $P1466
+    unless $I1467, for_undef_488
+    iter $P1461, $P1466
+    new $P1477, 'ExceptionHandler'
+    set_addr $P1477, loop1476_handler
+    $P1477."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1477
+  loop1476_test:
+    unless $P1461, loop1476_done
+    shift $P1468, $P1461
+  loop1476_redo:
+    .const 'Sub' $P1470 = "86_1275811497.55064" 
+    capture_lex $P1470
+    $P1470($P1468)
+  loop1476_next:
+    goto loop1476_test
+  loop1476_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1478, exception, 'type'
+    eq $P1478, .CONTROL_LOOP_NEXT, loop1476_next
+    eq $P1478, .CONTROL_LOOP_REDO, loop1476_redo
+  loop1476_done:
+    pop_eh 
+  for_undef_488:
+.annotate 'line', 520
+    find_lex $P1479, "$past"
+    find_lex $P1480, "@multitype"
+    $P1481 = $P1479."multitype"($P1480)
+.annotate 'line', 517
+    .return ($P1481)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<self>"  :subid("87_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1557
-.annotate 'line', 588
-    new $P1556, 'ExceptionHandler'
-    set_addr $P1556, control_1555
-    $P1556."handle_types"(57)
-    push_eh $P1556
+.sub "_block1469"  :anon :subid("86_1275811497.55064") :outer("85_1275811497.55064")
+    .param pmc param_1471
+.annotate 'line', 519
+    .lex "$_", param_1471
+    find_lex $P1472, "@multitype"
+    find_lex $P1473, "$_"
+    set $S1474, $P1473
+    $P1475 = $P1472."push"($S1474)
+    .return ($P1475)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "param_var"  :subid("87_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1489
+.annotate 'line', 526
+    new $P1488, 'ExceptionHandler'
+    set_addr $P1488, control_1487
+    $P1488."handle_types"(.CONTROL_RETURN)
+    push_eh $P1488
     .lex "self", self
-    .lex "$/", param_1557
-.annotate 'line', 589
-    find_lex $P1558, "$/"
-    get_hll_global $P1559, ["PAST"], "Var"
-    $P1560 = $P1559."new"("self" :named("name"))
-    $P1561 = $P1558."!make"($P1560)
-.annotate 'line', 588
-    .return ($P1561)
-  control_1555:
+    .lex "$/", param_1489
+.annotate 'line', 527
+    new $P1490, "Undef"
+    .lex "$name", $P1490
+.annotate 'line', 528
+    new $P1491, "Undef"
+    .lex "$past", $P1491
+.annotate 'line', 527
+    find_lex $P1492, "$/"
+    set $S1493, $P1492
+    new $P1494, 'String'
+    set $P1494, $S1493
+    store_lex "$name", $P1494
+.annotate 'line', 528
+    get_hll_global $P1495, ["PAST"], "Var"
+    find_lex $P1496, "$name"
+    find_lex $P1497, "$/"
+    $P1498 = $P1495."new"($P1496 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1497 :named("node"))
+    store_lex "$past", $P1498
+.annotate 'line', 530
+    get_global $P1499, "@BLOCK"
+    unless_null $P1499, vivify_489
+    $P1499 = root_new ['parrot';'ResizablePMCArray']
+  vivify_489:
+    set $P1500, $P1499[0]
+    unless_null $P1500, vivify_490
+    new $P1500, "Undef"
+  vivify_490:
+    find_lex $P1501, "$name"
+    $P1500."symbol"($P1501, "lexical" :named("scope"))
+.annotate 'line', 531
+    find_lex $P1502, "$/"
+    find_lex $P1503, "$past"
+    $P1504 = $P1502."!make"($P1503)
+.annotate 'line', 526
+    .return ($P1504)
+  control_1487:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1562, exception, "payload"
-    .return ($P1562)
+    getattribute $P1505, exception, "payload"
+    .return ($P1505)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<identifier>"  :subid("88_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1566
-.annotate 'line', 592
-    new $P1565, 'ExceptionHandler'
-    set_addr $P1565, control_1564
-    $P1565."handle_types"(57)
-    push_eh $P1565
+.include "except_types.pasm"
+.sub "named_param"  :subid("88_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1509
+.annotate 'line', 534
+    new $P1508, 'ExceptionHandler'
+    set_addr $P1508, control_1507
+    $P1508."handle_types"(.CONTROL_RETURN)
+    push_eh $P1508
     .lex "self", self
-    .lex "$/", param_1566
-.annotate 'line', 593
-    new $P1567, "Undef"
-    .lex "$past", $P1567
-    find_lex $P1568, "$/"
-    unless_null $P1568, vivify_493
-    $P1568 = root_new ['parrot';'Hash']
+    .lex "$/", param_1509
+.annotate 'line', 535
+    new $P1510, "Undef"
+    .lex "$past", $P1510
+    find_lex $P1511, "$/"
+    unless_null $P1511, vivify_491
+    $P1511 = root_new ['parrot';'Hash']
+  vivify_491:
+    set $P1512, $P1511["param_var"]
+    unless_null $P1512, vivify_492
+    new $P1512, "Undef"
+  vivify_492:
+    $P1513 = $P1512."ast"()
+    store_lex "$past", $P1513
+.annotate 'line', 536
+    find_lex $P1514, "$past"
+    find_lex $P1515, "$/"
+    unless_null $P1515, vivify_493
+    $P1515 = root_new ['parrot';'Hash']
   vivify_493:
-    set $P1569, $P1568["args"]
-    unless_null $P1569, vivify_494
-    new $P1569, "Undef"
+    set $P1516, $P1515["param_var"]
+    unless_null $P1516, vivify_494
+    $P1516 = root_new ['parrot';'Hash']
   vivify_494:
-    $P1570 = $P1569."ast"()
-    store_lex "$past", $P1570
-.annotate 'line', 594
-    find_lex $P1571, "$past"
-    find_lex $P1572, "$/"
-    unless_null $P1572, vivify_495
-    $P1572 = root_new ['parrot';'Hash']
+    set $P1517, $P1516["name"]
+    unless_null $P1517, vivify_495
+    new $P1517, "Undef"
   vivify_495:
-    set $P1573, $P1572["identifier"]
-    unless_null $P1573, vivify_496
-    new $P1573, "Undef"
-  vivify_496:
-    set $S1574, $P1573
-    $P1571."name"($S1574)
-.annotate 'line', 595
-    find_lex $P1575, "$/"
-    find_lex $P1576, "$past"
-    $P1577 = $P1575."!make"($P1576)
-.annotate 'line', 592
-    .return ($P1577)
-  control_1564:
+    set $S1518, $P1517
+    $P1514."named"($S1518)
+.annotate 'line', 537
+    find_lex $P1519, "$/"
+    find_lex $P1520, "$past"
+    $P1521 = $P1519."!make"($P1520)
+.annotate 'line', 534
+    .return ($P1521)
+  control_1507:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1578, exception, "payload"
-    .return ($P1578)
+    getattribute $P1522, exception, "payload"
+    .return ($P1522)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<name>"  :subid("89_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1582
-.annotate 'line', 598
-    new $P1581, 'ExceptionHandler'
-    set_addr $P1581, control_1580
-    $P1581."handle_types"(57)
-    push_eh $P1581
-    .lex "self", self
-    .lex "$/", param_1582
-.annotate 'line', 599
-    $P1583 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@ns", $P1583
-.annotate 'line', 600
-    new $P1584, "Undef"
-    .lex "$name", $P1584
-.annotate 'line', 602
-    new $P1585, "Undef"
-    .lex "$var", $P1585
-.annotate 'line', 604
-    new $P1586, "Undef"
-    .lex "$past", $P1586
-.annotate 'line', 599
-    find_lex $P1587, "$/"
-    unless_null $P1587, vivify_497
-    $P1587 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "regex_declarator"  :subid("89_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1526
+    .param pmc param_1527 :optional
+    .param int has_param_1527 :opt_flag
+.annotate 'line', 540
+    .const 'Sub' $P1597 = "91_1275811497.55064" 
+    capture_lex $P1597
+    .const 'Sub' $P1569 = "90_1275811497.55064" 
+    capture_lex $P1569
+    new $P1525, 'ExceptionHandler'
+    set_addr $P1525, control_1524
+    $P1525."handle_types"(.CONTROL_RETURN)
+    push_eh $P1525
+    .lex "self", self
+    .lex "$/", param_1526
+    if has_param_1527, optparam_496
+    new $P1528, "Undef"
+    set param_1527, $P1528
+  optparam_496:
+    .lex "$key", param_1527
+.annotate 'line', 541
+    $P1529 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@MODIFIERS", $P1529
+.annotate 'line', 544
+    new $P1530, "Undef"
+    .lex "$name", $P1530
+.annotate 'line', 545
+    new $P1531, "Undef"
+    .lex "$past", $P1531
+.annotate 'line', 541
+
+        $P1532 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
+    
+    store_lex "@MODIFIERS", $P1532
+.annotate 'line', 544
+    find_lex $P1533, "$/"
+    unless_null $P1533, vivify_497
+    $P1533 = root_new ['parrot';'Hash']
   vivify_497:
-    set $P1588, $P1587["name"]
-    unless_null $P1588, vivify_498
-    $P1588 = root_new ['parrot';'Hash']
+    set $P1534, $P1533["deflongname"]
+    unless_null $P1534, vivify_498
+    new $P1534, "Undef"
   vivify_498:
-    set $P1589, $P1588["identifier"]
-    unless_null $P1589, vivify_499
-    new $P1589, "Undef"
+    $P1535 = $P1534."ast"()
+    set $S1536, $P1535
+    new $P1537, 'String'
+    set $P1537, $S1536
+    store_lex "$name", $P1537
+    find_lex $P1538, "$past"
+.annotate 'line', 546
+    find_lex $P1540, "$/"
+    unless_null $P1540, vivify_499
+    $P1540 = root_new ['parrot';'Hash']
   vivify_499:
-    clone $P1590, $P1589
-    store_lex "@ns", $P1590
-.annotate 'line', 600
-    find_lex $P1591, "@ns"
-    $P1592 = $P1591."pop"()
-    store_lex "$name", $P1592
-.annotate 'line', 601
-    find_lex $P1596, "@ns"
-    if $P1596, if_1595
-    set $P1594, $P1596
-    goto if_1595_end
-  if_1595:
-    find_lex $P1597, "@ns"
-    unless_null $P1597, vivify_500
-    $P1597 = root_new ['parrot';'ResizablePMCArray']
+    set $P1541, $P1540["proto"]
+    unless_null $P1541, vivify_500
+    new $P1541, "Undef"
   vivify_500:
-    set $P1598, $P1597[0]
-    unless_null $P1598, vivify_501
+    if $P1541, if_1539
+.annotate 'line', 573
+    find_lex $P1565, "$key"
+    set $S1566, $P1565
+    iseq $I1567, $S1566, "open"
+    if $I1567, if_1564
+.annotate 'line', 586
+    .const 'Sub' $P1597 = "91_1275811497.55064" 
+    capture_lex $P1597
+    $P1597()
+    goto if_1564_end
+  if_1564:
+.annotate 'line', 573
+    .const 'Sub' $P1569 = "90_1275811497.55064" 
+    capture_lex $P1569
+    $P1569()
+  if_1564_end:
+    goto if_1539_end
+  if_1539:
+.annotate 'line', 548
+    get_hll_global $P1542, ["PAST"], "Stmts"
+.annotate 'line', 549
+    get_hll_global $P1543, ["PAST"], "Block"
+    find_lex $P1544, "$name"
+.annotate 'line', 550
+    get_hll_global $P1545, ["PAST"], "Op"
+.annotate 'line', 551
+    get_hll_global $P1546, ["PAST"], "Var"
+    $P1547 = $P1546."new"("self" :named("name"), "register" :named("scope"))
+    find_lex $P1548, "$name"
+    $P1549 = $P1545."new"($P1547, $P1548, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 550
+    find_lex $P1550, "$/"
+    $P1551 = $P1543."new"($P1549, $P1544 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1550 :named("node"))
+.annotate 'line', 560
+    get_hll_global $P1552, ["PAST"], "Block"
+    new $P1553, "String"
+    assign $P1553, "!PREFIX__"
+    find_lex $P1554, "$name"
+    concat $P1555, $P1553, $P1554
+.annotate 'line', 561
+    get_hll_global $P1556, ["PAST"], "Op"
+.annotate 'line', 562
+    get_hll_global $P1557, ["PAST"], "Var"
+    $P1558 = $P1557."new"("self" :named("name"), "register" :named("scope"))
+    find_lex $P1559, "$name"
+    $P1560 = $P1556."new"($P1558, $P1559, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 561
+    find_lex $P1561, "$/"
+    $P1562 = $P1552."new"($P1560, $P1555 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1561 :named("node"))
+.annotate 'line', 560
+    $P1563 = $P1542."new"($P1551, $P1562)
+.annotate 'line', 548
+    store_lex "$past", $P1563
+  if_1539_end:
+.annotate 'line', 600
+    find_lex $P1618, "$/"
+    find_lex $P1619, "$past"
+    $P1620 = $P1618."!make"($P1619)
+.annotate 'line', 540
+    .return ($P1620)
+  control_1524:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1621, exception, "payload"
+    .return ($P1621)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1596"  :anon :subid("91_1275811497.55064") :outer("89_1275811497.55064")
+.annotate 'line', 587
     new $P1598, "Undef"
+    .lex "$regex", $P1598
+.annotate 'line', 588
+    get_hll_global $P1599, ["Regex";"P6Regex";"Actions"], "buildsub"
+    find_lex $P1600, "$/"
+    unless_null $P1600, vivify_501
+    $P1600 = root_new ['parrot';'Hash']
   vivify_501:
-    set $S1599, $P1598
-    iseq $I1600, $S1599, "GLOBAL"
-    new $P1594, 'Integer'
-    set $P1594, $I1600
-  if_1595_end:
-    unless $P1594, if_1593_end
-    find_lex $P1601, "@ns"
-    $P1601."shift"()
-  if_1593_end:
-.annotate 'line', 603
-    get_hll_global $P1602, ["PAST"], "Var"
-    find_lex $P1603, "$name"
-    set $S1604, $P1603
-    find_lex $P1605, "@ns"
-    $P1606 = $P1602."new"($S1604 :named("name"), $P1605 :named("namespace"), "package" :named("scope"))
-    store_lex "$var", $P1606
-.annotate 'line', 604
-    find_lex $P1607, "$var"
-    store_lex "$past", $P1607
-.annotate 'line', 605
-    find_lex $P1609, "$/"
-    unless_null $P1609, vivify_502
-    $P1609 = root_new ['parrot';'Hash']
+    set $P1601, $P1600["p6regex"]
+    unless_null $P1601, vivify_502
+    new $P1601, "Undef"
   vivify_502:
-    set $P1610, $P1609["args"]
-    unless_null $P1610, vivify_503
-    new $P1610, "Undef"
+    $P1602 = $P1601."ast"()
+    get_global $P1603, "@BLOCK"
+    $P1604 = $P1603."shift"()
+    $P1605 = $P1599($P1602, $P1604)
+    store_lex "$regex", $P1605
+.annotate 'line', 589
+    find_lex $P1606, "$regex"
+    find_lex $P1607, "$name"
+    $P1606."name"($P1607)
+.annotate 'line', 591
+    get_hll_global $P1608, ["PAST"], "Op"
+.annotate 'line', 593
+    get_hll_global $P1609, ["PAST"], "Var"
+    new $P1610, "ResizablePMCArray"
+    push $P1610, "Regex"
+    $P1611 = $P1609."new"("Method" :named("name"), $P1610 :named("namespace"), "package" :named("scope"))
+    find_lex $P1612, "$regex"
+    $P1613 = $P1608."new"($P1611, $P1612, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate 'line', 591
+    store_lex "$past", $P1613
+.annotate 'line', 597
+    find_lex $P1614, "$regex"
+    find_lex $P1615, "$past"
+    unless_null $P1615, vivify_503
+    $P1615 = root_new ['parrot';'Hash']
+    store_lex "$past", $P1615
   vivify_503:
-    unless $P1610, if_1608_end
-.annotate 'line', 606
-    find_lex $P1611, "$/"
-    unless_null $P1611, vivify_504
-    $P1611 = root_new ['parrot';'Hash']
+    set $P1615["sink"], $P1614
+.annotate 'line', 598
+    find_lex $P1616, "@MODIFIERS"
+    $P1617 = $P1616."shift"()
+.annotate 'line', 586
+    .return ($P1617)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "_block1568"  :anon :subid("90_1275811497.55064") :outer("89_1275811497.55064")
+.annotate 'line', 574
+    $P1570 = root_new ['parrot';'Hash']
+    .lex "%h", $P1570
+.annotate 'line', 573
+    find_lex $P1571, "%h"
+.annotate 'line', 575
+    find_lex $P1573, "$/"
+    unless_null $P1573, vivify_504
+    $P1573 = root_new ['parrot';'Hash']
   vivify_504:
-    set $P1612, $P1611["args"]
-    unless_null $P1612, vivify_505
-    $P1612 = root_new ['parrot';'ResizablePMCArray']
+    set $P1574, $P1573["sym"]
+    unless_null $P1574, vivify_505
+    new $P1574, "Undef"
   vivify_505:
-    set $P1613, $P1612[0]
-    unless_null $P1613, vivify_506
-    new $P1613, "Undef"
+    set $S1575, $P1574
+    iseq $I1576, $S1575, "token"
+    unless $I1576, if_1572_end
+    new $P1577, "Integer"
+    assign $P1577, 1
+    find_lex $P1578, "%h"
+    unless_null $P1578, vivify_506
+    $P1578 = root_new ['parrot';'Hash']
+    store_lex "%h", $P1578
   vivify_506:
-    $P1614 = $P1613."ast"()
-    store_lex "$past", $P1614
-.annotate 'line', 607
-    find_lex $P1615, "$past"
-    find_lex $P1616, "$var"
-    $P1615."unshift"($P1616)
-  if_1608_end:
-.annotate 'line', 609
-    find_lex $P1617, "$/"
-    find_lex $P1618, "$past"
-    $P1619 = $P1617."!make"($P1618)
-.annotate 'line', 598
-    .return ($P1619)
-  control_1580:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1620, exception, "payload"
-    .return ($P1620)
+    set $P1578["r"], $P1577
+  if_1572_end:
+.annotate 'line', 576
+    find_lex $P1580, "$/"
+    unless_null $P1580, vivify_507
+    $P1580 = root_new ['parrot';'Hash']
+  vivify_507:
+    set $P1581, $P1580["sym"]
+    unless_null $P1581, vivify_508
+    new $P1581, "Undef"
+  vivify_508:
+    set $S1582, $P1581
+    iseq $I1583, $S1582, "rule"
+    unless $I1583, if_1579_end
+    new $P1584, "Integer"
+    assign $P1584, 1
+    find_lex $P1585, "%h"
+    unless_null $P1585, vivify_509
+    $P1585 = root_new ['parrot';'Hash']
+    store_lex "%h", $P1585
+  vivify_509:
+    set $P1585["r"], $P1584
+    new $P1586, "Integer"
+    assign $P1586, 1
+    find_lex $P1587, "%h"
+    unless_null $P1587, vivify_510
+    $P1587 = root_new ['parrot';'Hash']
+    store_lex "%h", $P1587
+  vivify_510:
+    set $P1587["s"], $P1586
+  if_1579_end:
+.annotate 'line', 577
+    find_lex $P1588, "@MODIFIERS"
+    find_lex $P1589, "%h"
+    $P1588."unshift"($P1589)
+.annotate 'line', 578
+
+            $P0 = find_lex '$name'
+            set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
+        
+.annotate 'line', 582
+    get_global $P1590, "@BLOCK"
+    unless_null $P1590, vivify_511
+    $P1590 = root_new ['parrot';'ResizablePMCArray']
+  vivify_511:
+    set $P1591, $P1590[0]
+    unless_null $P1591, vivify_512
+    new $P1591, "Undef"
+  vivify_512:
+    $P1591."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate 'line', 583
+    get_global $P1592, "@BLOCK"
+    unless_null $P1592, vivify_513
+    $P1592 = root_new ['parrot';'ResizablePMCArray']
+  vivify_513:
+    set $P1593, $P1592[0]
+    unless_null $P1593, vivify_514
+    new $P1593, "Undef"
+  vivify_514:
+    $P1593."symbol"("$/", "lexical" :named("scope"))
+.annotate 'line', 584
+    new $P1594, "Exception"
+    set $P1594['type'], .CONTROL_RETURN
+    new $P1595, "Integer"
+    assign $P1595, 0
+    setattribute $P1594, 'payload', $P1595
+    throw $P1594
+.annotate 'line', 573
+    .return ()
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<pir::op>"  :subid("90_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1624
-.annotate 'line', 612
-    new $P1623, 'ExceptionHandler'
-    set_addr $P1623, control_1622
-    $P1623."handle_types"(57)
-    push_eh $P1623
+.include "except_types.pasm"
+.sub "dotty"  :subid("92_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1625
+.annotate 'line', 604
+    new $P1624, 'ExceptionHandler'
+    set_addr $P1624, control_1623
+    $P1624."handle_types"(.CONTROL_RETURN)
+    push_eh $P1624
     .lex "self", self
-    .lex "$/", param_1624
-.annotate 'line', 613
-    new $P1625, "Undef"
-    .lex "$past", $P1625
-.annotate 'line', 614
+    .lex "$/", param_1625
+.annotate 'line', 605
     new $P1626, "Undef"
-    .lex "$pirop", $P1626
-.annotate 'line', 613
+    .lex "$past", $P1626
     find_lex $P1629, "$/"
-    unless_null $P1629, vivify_507
+    unless_null $P1629, vivify_515
     $P1629 = root_new ['parrot';'Hash']
-  vivify_507:
+  vivify_515:
     set $P1630, $P1629["args"]
-    unless_null $P1630, vivify_508
+    unless_null $P1630, vivify_516
     new $P1630, "Undef"
-  vivify_508:
+  vivify_516:
     if $P1630, if_1628
     get_hll_global $P1635, ["PAST"], "Op"
     find_lex $P1636, "$/"
@@ -21856,747 +22495,756 @@
     goto if_1628_end
   if_1628:
     find_lex $P1631, "$/"
-    unless_null $P1631, vivify_509
+    unless_null $P1631, vivify_517
     $P1631 = root_new ['parrot';'Hash']
-  vivify_509:
-    set $P1632, $P1631["args"]
-    unless_null $P1632, vivify_510
-    $P1632 = root_new ['parrot';'ResizablePMCArray']
-  vivify_510:
-    set $P1633, $P1632[0]
-    unless_null $P1633, vivify_511
-    new $P1633, "Undef"
-  vivify_511:
-    $P1634 = $P1633."ast"()
-    set $P1627, $P1634
-  if_1628_end:
-    store_lex "$past", $P1627
-.annotate 'line', 614
-    find_lex $P1638, "$/"
-    unless_null $P1638, vivify_512
-    $P1638 = root_new ['parrot';'Hash']
-  vivify_512:
-    set $P1639, $P1638["op"]
-    unless_null $P1639, vivify_513
-    new $P1639, "Undef"
-  vivify_513:
-    set $S1640, $P1639
-    new $P1641, 'String'
-    set $P1641, $S1640
-    store_lex "$pirop", $P1641
-.annotate 'line', 615
-
-        $P0 = find_lex '$pirop'
-        $S0 = $P0
-        $P0 = split '__', $S0
-        $S0 = join ' ', $P0
-        $P1642 = box $S0
-    
-    store_lex "$pirop", $P1642
-.annotate 'line', 622
-    find_lex $P1643, "$past"
-    find_lex $P1644, "$pirop"
-    $P1643."pirop"($P1644)
-.annotate 'line', 623
-    find_lex $P1645, "$past"
-    $P1645."pasttype"("pirop")
-.annotate 'line', 624
-    find_lex $P1646, "$/"
-    find_lex $P1647, "$past"
-    $P1648 = $P1646."!make"($P1647)
-.annotate 'line', 612
-    .return ($P1648)
-  control_1622:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1649, exception, "payload"
-    .return ($P1649)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "args"  :subid("91_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1653
-.annotate 'line', 627
-    new $P1652, 'ExceptionHandler'
-    set_addr $P1652, control_1651
-    $P1652."handle_types"(57)
-    push_eh $P1652
-    .lex "self", self
-    .lex "$/", param_1653
-    find_lex $P1654, "$/"
-    find_lex $P1655, "$/"
-    unless_null $P1655, vivify_514
-    $P1655 = root_new ['parrot';'Hash']
-  vivify_514:
-    set $P1656, $P1655["arglist"]
-    unless_null $P1656, vivify_515
-    new $P1656, "Undef"
-  vivify_515:
-    $P1657 = $P1656."ast"()
-    $P1658 = $P1654."!make"($P1657)
-    .return ($P1658)
-  control_1651:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1659, exception, "payload"
-    .return ($P1659)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "arglist"  :subid("92_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1663
-.annotate 'line', 629
-    .const 'Sub' $P1674 = "93_1274853047.92727" 
-    capture_lex $P1674
-    new $P1662, 'ExceptionHandler'
-    set_addr $P1662, control_1661
-    $P1662."handle_types"(57)
-    push_eh $P1662
-    .lex "self", self
-    .lex "$/", param_1663
-.annotate 'line', 630
-    new $P1664, "Undef"
-    .lex "$past", $P1664
-.annotate 'line', 638
-    new $P1665, "Undef"
-    .lex "$i", $P1665
-.annotate 'line', 639
-    new $P1666, "Undef"
-    .lex "$n", $P1666
-.annotate 'line', 630
-    get_hll_global $P1667, ["PAST"], "Op"
-    find_lex $P1668, "$/"
-    $P1669 = $P1667."new"("call" :named("pasttype"), $P1668 :named("node"))
-    store_lex "$past", $P1669
-.annotate 'line', 631
-    find_lex $P1671, "$/"
-    unless_null $P1671, vivify_516
-    $P1671 = root_new ['parrot';'Hash']
-  vivify_516:
-    set $P1672, $P1671["EXPR"]
-    unless_null $P1672, vivify_517
-    new $P1672, "Undef"
   vivify_517:
-    unless $P1672, if_1670_end
-    .const 'Sub' $P1674 = "93_1274853047.92727" 
-    capture_lex $P1674
-    $P1674()
-  if_1670_end:
-.annotate 'line', 638
-    new $P1706, "Integer"
-    assign $P1706, 0
-    store_lex "$i", $P1706
-.annotate 'line', 639
-    find_lex $P1707, "$past"
-    $P1708 = $P1707."list"()
-    set $N1709, $P1708
-    new $P1710, 'Float'
-    set $P1710, $N1709
-    store_lex "$n", $P1710
-.annotate 'line', 640
-    new $P1758, 'ExceptionHandler'
-    set_addr $P1758, loop1757_handler
-    $P1758."handle_types"(64, 66, 65)
-    push_eh $P1758
-  loop1757_test:
-    find_lex $P1711, "$i"
-    set $N1712, $P1711
-    find_lex $P1713, "$n"
-    set $N1714, $P1713
-    islt $I1715, $N1712, $N1714
-    unless $I1715, loop1757_done
-  loop1757_redo:
-.annotate 'line', 641
-    find_lex $P1717, "$i"
-    set $I1718, $P1717
-    find_lex $P1719, "$past"
-    unless_null $P1719, vivify_521
-    $P1719 = root_new ['parrot';'ResizablePMCArray']
+    set $P1632, $P1631["args"]
+    unless_null $P1632, vivify_518
+    $P1632 = root_new ['parrot';'ResizablePMCArray']
+  vivify_518:
+    set $P1633, $P1632[0]
+    unless_null $P1633, vivify_519
+    new $P1633, "Undef"
+  vivify_519:
+    $P1634 = $P1633."ast"()
+    set $P1627, $P1634
+  if_1628_end:
+    store_lex "$past", $P1627
+.annotate 'line', 606
+    find_lex $P1638, "$past"
+    find_lex $P1641, "$/"
+    unless_null $P1641, vivify_520
+    $P1641 = root_new ['parrot';'Hash']
+  vivify_520:
+    set $P1642, $P1641["quote"]
+    unless_null $P1642, vivify_521
+    new $P1642, "Undef"
   vivify_521:
-    set $P1720, $P1719[$I1718]
-    unless_null $P1720, vivify_522
-    new $P1720, "Undef"
+    if $P1642, if_1640
+    find_lex $P1646, "$/"
+    unless_null $P1646, vivify_522
+    $P1646 = root_new ['parrot';'Hash']
   vivify_522:
-    $S1721 = $P1720."name"()
-    iseq $I1722, $S1721, "&prefix:<|>"
-    unless $I1722, if_1716_end
-.annotate 'line', 642
-    find_lex $P1723, "$i"
-    set $I1724, $P1723
-    find_lex $P1725, "$past"
-    unless_null $P1725, vivify_523
-    $P1725 = root_new ['parrot';'ResizablePMCArray']
+    set $P1647, $P1646["longname"]
+    unless_null $P1647, vivify_523
+    new $P1647, "Undef"
   vivify_523:
-    set $P1726, $P1725[$I1724]
-    unless_null $P1726, vivify_524
-    $P1726 = root_new ['parrot';'ResizablePMCArray']
+    set $S1648, $P1647
+    new $P1639, 'String'
+    set $P1639, $S1648
+    goto if_1640_end
+  if_1640:
+    find_lex $P1643, "$/"
+    unless_null $P1643, vivify_524
+    $P1643 = root_new ['parrot';'Hash']
   vivify_524:
-    set $P1727, $P1726[0]
-    unless_null $P1727, vivify_525
-    new $P1727, "Undef"
+    set $P1644, $P1643["quote"]
+    unless_null $P1644, vivify_525
+    new $P1644, "Undef"
   vivify_525:
-    find_lex $P1728, "$i"
-    set $I1729, $P1728
-    find_lex $P1730, "$past"
-    unless_null $P1730, vivify_526
-    $P1730 = root_new ['parrot';'ResizablePMCArray']
-    store_lex "$past", $P1730
-  vivify_526:
-    set $P1730[$I1729], $P1727
-.annotate 'line', 643
-    find_lex $P1731, "$i"
-    set $I1732, $P1731
-    find_lex $P1733, "$past"
-    unless_null $P1733, vivify_527
-    $P1733 = root_new ['parrot';'ResizablePMCArray']
-  vivify_527:
-    set $P1734, $P1733[$I1732]
-    unless_null $P1734, vivify_528
-    new $P1734, "Undef"
-  vivify_528:
-    $P1734."flat"(1)
-.annotate 'line', 644
-    find_lex $P1738, "$i"
-    set $I1739, $P1738
-    find_lex $P1740, "$past"
-    unless_null $P1740, vivify_529
-    $P1740 = root_new ['parrot';'ResizablePMCArray']
-  vivify_529:
-    set $P1741, $P1740[$I1739]
-    unless_null $P1741, vivify_530
-    new $P1741, "Undef"
-  vivify_530:
-    get_hll_global $P1742, ["PAST"], "Val"
-    $P1743 = $P1741."isa"($P1742)
-    if $P1743, if_1737
-    set $P1736, $P1743
-    goto if_1737_end
-  if_1737:
-.annotate 'line', 645
-    find_lex $P1744, "$i"
-    set $I1745, $P1744
-    find_lex $P1746, "$past"
-    unless_null $P1746, vivify_531
-    $P1746 = root_new ['parrot';'ResizablePMCArray']
-  vivify_531:
-    set $P1747, $P1746[$I1745]
-    unless_null $P1747, vivify_532
-    new $P1747, "Undef"
-  vivify_532:
-    $S1748 = $P1747."name"()
-    substr $S1749, $S1748, 0, 1
-    iseq $I1750, $S1749, "%"
-    new $P1736, 'Integer'
-    set $P1736, $I1750
-  if_1737_end:
-    unless $P1736, if_1735_end
-.annotate 'line', 646
-    find_lex $P1751, "$i"
-    set $I1752, $P1751
-    find_lex $P1753, "$past"
-    unless_null $P1753, vivify_533
-    $P1753 = root_new ['parrot';'ResizablePMCArray']
-  vivify_533:
-    set $P1754, $P1753[$I1752]
-    unless_null $P1754, vivify_534
-    new $P1754, "Undef"
-  vivify_534:
-    $P1754."named"(1)
-  if_1735_end:
-  if_1716_end:
-.annotate 'line', 641
-    find_lex $P1755, "$i"
-    clone $P1756, $P1755
-    inc $P1755
-  loop1757_next:
-.annotate 'line', 640
-    goto loop1757_test
-  loop1757_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1759, exception, 'type'
-    eq $P1759, 64, loop1757_next
-    eq $P1759, 66, loop1757_redo
-  loop1757_done:
-    pop_eh 
-.annotate 'line', 651
-    find_lex $P1760, "$/"
-    find_lex $P1761, "$past"
-    $P1762 = $P1760."!make"($P1761)
-.annotate 'line', 629
-    .return ($P1762)
-  control_1661:
+    $P1645 = $P1644."ast"()
+    set $P1639, $P1645
+  if_1640_end:
+    $P1638."name"($P1639)
+.annotate 'line', 607
+    find_lex $P1649, "$past"
+    $P1649."pasttype"("callmethod")
+.annotate 'line', 608
+    find_lex $P1650, "$/"
+    find_lex $P1651, "$past"
+    $P1652 = $P1650."!make"($P1651)
+.annotate 'line', 604
+    .return ($P1652)
+  control_1623:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1763, exception, "payload"
-    .return ($P1763)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1673"  :anon :subid("93_1274853047.92727") :outer("92_1274853047.92727")
-.annotate 'line', 631
-    .const 'Sub' $P1695 = "94_1274853047.92727" 
-    capture_lex $P1695
-.annotate 'line', 632
-    new $P1675, "Undef"
-    .lex "$expr", $P1675
-    find_lex $P1676, "$/"
-    unless_null $P1676, vivify_518
-    $P1676 = root_new ['parrot';'Hash']
-  vivify_518:
-    set $P1677, $P1676["EXPR"]
-    unless_null $P1677, vivify_519
-    new $P1677, "Undef"
-  vivify_519:
-    $P1678 = $P1677."ast"()
-    store_lex "$expr", $P1678
-.annotate 'line', 633
-    find_lex $P1683, "$expr"
-    $S1684 = $P1683."name"()
-    iseq $I1685, $S1684, "&infix:<,>"
-    if $I1685, if_1682
-    new $P1681, 'Integer'
-    set $P1681, $I1685
-    goto if_1682_end
-  if_1682:
-    find_lex $P1686, "$expr"
-    $P1687 = $P1686."named"()
-    isfalse $I1688, $P1687
-    new $P1681, 'Integer'
-    set $P1681, $I1688
-  if_1682_end:
-    if $P1681, if_1680
-.annotate 'line', 636
-    find_lex $P1703, "$past"
-    find_lex $P1704, "$expr"
-    $P1705 = $P1703."push"($P1704)
-    set $P1679, $P1705
-.annotate 'line', 633
-    goto if_1680_end
-  if_1680:
-.annotate 'line', 634
-    find_lex $P1690, "$expr"
-    $P1691 = $P1690."list"()
-    defined $I1692, $P1691
-    unless $I1692, for_undef_520
-    iter $P1689, $P1691
-    new $P1701, 'ExceptionHandler'
-    set_addr $P1701, loop1700_handler
-    $P1701."handle_types"(64, 66, 65)
-    push_eh $P1701
-  loop1700_test:
-    unless $P1689, loop1700_done
-    shift $P1693, $P1689
-  loop1700_redo:
-    .const 'Sub' $P1695 = "94_1274853047.92727" 
-    capture_lex $P1695
-    $P1695($P1693)
-  loop1700_next:
-    goto loop1700_test
-  loop1700_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1702, exception, 'type'
-    eq $P1702, 64, loop1700_next
-    eq $P1702, 66, loop1700_redo
-  loop1700_done:
-    pop_eh 
-  for_undef_520:
-.annotate 'line', 633
-    set $P1679, $P1689
-  if_1680_end:
-.annotate 'line', 631
-    .return ($P1679)
+    getattribute $P1653, exception, "payload"
+    .return ($P1653)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1694"  :anon :subid("94_1274853047.92727") :outer("93_1274853047.92727")
-    .param pmc param_1696
-.annotate 'line', 634
-    .lex "$_", param_1696
-    find_lex $P1697, "$past"
-    find_lex $P1698, "$_"
-    $P1699 = $P1697."push"($P1698)
-    .return ($P1699)
+.include "except_types.pasm"
+.sub "term:sym<self>"  :subid("93_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1657
+.annotate 'line', 613
+    new $P1656, 'ExceptionHandler'
+    set_addr $P1656, control_1655
+    $P1656."handle_types"(.CONTROL_RETURN)
+    push_eh $P1656
+    .lex "self", self
+    .lex "$/", param_1657
+.annotate 'line', 614
+    find_lex $P1658, "$/"
+    get_hll_global $P1659, ["PAST"], "Var"
+    $P1660 = $P1659."new"("self" :named("name"))
+    $P1661 = $P1658."!make"($P1660)
+.annotate 'line', 613
+    .return ($P1661)
+  control_1655:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1662, exception, "payload"
+    .return ($P1662)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<value>"  :subid("95_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1767
-.annotate 'line', 655
-    new $P1766, 'ExceptionHandler'
-    set_addr $P1766, control_1765
-    $P1766."handle_types"(57)
-    push_eh $P1766
+.include "except_types.pasm"
+.sub "term:sym<identifier>"  :subid("94_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1666
+.annotate 'line', 617
+    new $P1665, 'ExceptionHandler'
+    set_addr $P1665, control_1664
+    $P1665."handle_types"(.CONTROL_RETURN)
+    push_eh $P1665
     .lex "self", self
-    .lex "$/", param_1767
-    find_lex $P1768, "$/"
-    find_lex $P1769, "$/"
-    unless_null $P1769, vivify_535
-    $P1769 = root_new ['parrot';'Hash']
-  vivify_535:
-    set $P1770, $P1769["value"]
-    unless_null $P1770, vivify_536
-    new $P1770, "Undef"
-  vivify_536:
-    $P1771 = $P1770."ast"()
-    $P1772 = $P1768."!make"($P1771)
-    .return ($P1772)
-  control_1765:
+    .lex "$/", param_1666
+.annotate 'line', 618
+    new $P1667, "Undef"
+    .lex "$past", $P1667
+    find_lex $P1668, "$/"
+    unless_null $P1668, vivify_526
+    $P1668 = root_new ['parrot';'Hash']
+  vivify_526:
+    set $P1669, $P1668["args"]
+    unless_null $P1669, vivify_527
+    new $P1669, "Undef"
+  vivify_527:
+    $P1670 = $P1669."ast"()
+    store_lex "$past", $P1670
+.annotate 'line', 619
+    find_lex $P1671, "$past"
+    find_lex $P1672, "$/"
+    unless_null $P1672, vivify_528
+    $P1672 = root_new ['parrot';'Hash']
+  vivify_528:
+    set $P1673, $P1672["identifier"]
+    unless_null $P1673, vivify_529
+    new $P1673, "Undef"
+  vivify_529:
+    set $S1674, $P1673
+    $P1671."name"($S1674)
+.annotate 'line', 620
+    find_lex $P1675, "$/"
+    find_lex $P1676, "$past"
+    $P1677 = $P1675."!make"($P1676)
+.annotate 'line', 617
+    .return ($P1677)
+  control_1664:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1773, exception, "payload"
-    .return ($P1773)
+    getattribute $P1678, exception, "payload"
+    .return ($P1678)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<( )>"  :subid("96_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1777
-.annotate 'line', 657
-    new $P1776, 'ExceptionHandler'
-    set_addr $P1776, control_1775
-    $P1776."handle_types"(57)
-    push_eh $P1776
+.include "except_types.pasm"
+.sub "term:sym<name>"  :subid("95_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1682
+.annotate 'line', 623
+    new $P1681, 'ExceptionHandler'
+    set_addr $P1681, control_1680
+    $P1681."handle_types"(.CONTROL_RETURN)
+    push_eh $P1681
     .lex "self", self
-    .lex "$/", param_1777
-.annotate 'line', 658
-    find_lex $P1778, "$/"
-.annotate 'line', 659
-    find_lex $P1781, "$/"
-    unless_null $P1781, vivify_537
-    $P1781 = root_new ['parrot';'Hash']
+    .lex "$/", param_1682
+.annotate 'line', 624
+    $P1683 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@ns", $P1683
+.annotate 'line', 625
+    new $P1684, "Undef"
+    .lex "$name", $P1684
+.annotate 'line', 627
+    new $P1685, "Undef"
+    .lex "$var", $P1685
+.annotate 'line', 629
+    new $P1686, "Undef"
+    .lex "$past", $P1686
+.annotate 'line', 624
+    find_lex $P1687, "$/"
+    unless_null $P1687, vivify_530
+    $P1687 = root_new ['parrot';'Hash']
+  vivify_530:
+    set $P1688, $P1687["name"]
+    unless_null $P1688, vivify_531
+    $P1688 = root_new ['parrot';'Hash']
+  vivify_531:
+    set $P1689, $P1688["identifier"]
+    unless_null $P1689, vivify_532
+    new $P1689, "Undef"
+  vivify_532:
+    clone $P1690, $P1689
+    store_lex "@ns", $P1690
+.annotate 'line', 625
+    find_lex $P1691, "@ns"
+    $P1692 = $P1691."pop"()
+    store_lex "$name", $P1692
+.annotate 'line', 626
+    find_lex $P1696, "@ns"
+    if $P1696, if_1695
+    set $P1694, $P1696
+    goto if_1695_end
+  if_1695:
+    find_lex $P1697, "@ns"
+    unless_null $P1697, vivify_533
+    $P1697 = root_new ['parrot';'ResizablePMCArray']
+  vivify_533:
+    set $P1698, $P1697[0]
+    unless_null $P1698, vivify_534
+    new $P1698, "Undef"
+  vivify_534:
+    set $S1699, $P1698
+    iseq $I1700, $S1699, "GLOBAL"
+    new $P1694, 'Integer'
+    set $P1694, $I1700
+  if_1695_end:
+    unless $P1694, if_1693_end
+    find_lex $P1701, "@ns"
+    $P1701."shift"()
+  if_1693_end:
+.annotate 'line', 628
+    get_hll_global $P1702, ["PAST"], "Var"
+    find_lex $P1703, "$name"
+    set $S1704, $P1703
+    find_lex $P1705, "@ns"
+    $P1706 = $P1702."new"($S1704 :named("name"), $P1705 :named("namespace"), "package" :named("scope"))
+    store_lex "$var", $P1706
+.annotate 'line', 629
+    find_lex $P1707, "$var"
+    store_lex "$past", $P1707
+.annotate 'line', 630
+    find_lex $P1709, "$/"
+    unless_null $P1709, vivify_535
+    $P1709 = root_new ['parrot';'Hash']
+  vivify_535:
+    set $P1710, $P1709["args"]
+    unless_null $P1710, vivify_536
+    new $P1710, "Undef"
+  vivify_536:
+    unless $P1710, if_1708_end
+.annotate 'line', 631
+    find_lex $P1711, "$/"
+    unless_null $P1711, vivify_537
+    $P1711 = root_new ['parrot';'Hash']
   vivify_537:
-    set $P1782, $P1781["EXPR"]
-    unless_null $P1782, vivify_538
-    new $P1782, "Undef"
+    set $P1712, $P1711["args"]
+    unless_null $P1712, vivify_538
+    $P1712 = root_new ['parrot';'ResizablePMCArray']
   vivify_538:
-    if $P1782, if_1780
-.annotate 'line', 660
-    get_hll_global $P1787, ["PAST"], "Op"
-    find_lex $P1788, "$/"
-    $P1789 = $P1787."new"("list" :named("pasttype"), $P1788 :named("node"))
-    set $P1779, $P1789
-.annotate 'line', 659
-    goto if_1780_end
-  if_1780:
-    find_lex $P1783, "$/"
-    unless_null $P1783, vivify_539
-    $P1783 = root_new ['parrot';'Hash']
+    set $P1713, $P1712[0]
+    unless_null $P1713, vivify_539
+    new $P1713, "Undef"
   vivify_539:
-    set $P1784, $P1783["EXPR"]
-    unless_null $P1784, vivify_540
-    $P1784 = root_new ['parrot';'ResizablePMCArray']
-  vivify_540:
-    set $P1785, $P1784[0]
-    unless_null $P1785, vivify_541
-    new $P1785, "Undef"
-  vivify_541:
-    $P1786 = $P1785."ast"()
-    set $P1779, $P1786
-  if_1780_end:
-    $P1790 = $P1778."!make"($P1779)
-.annotate 'line', 657
-    .return ($P1790)
-  control_1775:
+    $P1714 = $P1713."ast"()
+    store_lex "$past", $P1714
+.annotate 'line', 632
+    find_lex $P1715, "$past"
+    find_lex $P1716, "$var"
+    $P1715."unshift"($P1716)
+  if_1708_end:
+.annotate 'line', 634
+    find_lex $P1717, "$/"
+    find_lex $P1718, "$past"
+    $P1719 = $P1717."!make"($P1718)
+.annotate 'line', 623
+    .return ($P1719)
+  control_1680:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1791, exception, "payload"
-    .return ($P1791)
+    getattribute $P1720, exception, "payload"
+    .return ($P1720)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<[ ]>"  :subid("97_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1795
-.annotate 'line', 663
-    new $P1794, 'ExceptionHandler'
-    set_addr $P1794, control_1793
-    $P1794."handle_types"(57)
-    push_eh $P1794
+.include "except_types.pasm"
+.sub "term:sym<pir::op>"  :subid("96_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1724
+.annotate 'line', 637
+    new $P1723, 'ExceptionHandler'
+    set_addr $P1723, control_1722
+    $P1723."handle_types"(.CONTROL_RETURN)
+    push_eh $P1723
     .lex "self", self
-    .lex "$/", param_1795
-.annotate 'line', 664
-    new $P1796, "Undef"
-    .lex "$past", $P1796
-.annotate 'line', 663
-    find_lex $P1797, "$past"
-.annotate 'line', 665
-    find_lex $P1799, "$/"
-    unless_null $P1799, vivify_542
-    $P1799 = root_new ['parrot';'Hash']
+    .lex "$/", param_1724
+.annotate 'line', 638
+    new $P1725, "Undef"
+    .lex "$past", $P1725
+.annotate 'line', 639
+    new $P1726, "Undef"
+    .lex "$pirop", $P1726
+.annotate 'line', 638
+    find_lex $P1729, "$/"
+    unless_null $P1729, vivify_540
+    $P1729 = root_new ['parrot';'Hash']
+  vivify_540:
+    set $P1730, $P1729["args"]
+    unless_null $P1730, vivify_541
+    new $P1730, "Undef"
+  vivify_541:
+    if $P1730, if_1728
+    get_hll_global $P1735, ["PAST"], "Op"
+    find_lex $P1736, "$/"
+    $P1737 = $P1735."new"($P1736 :named("node"))
+    set $P1727, $P1737
+    goto if_1728_end
+  if_1728:
+    find_lex $P1731, "$/"
+    unless_null $P1731, vivify_542
+    $P1731 = root_new ['parrot';'Hash']
   vivify_542:
-    set $P1800, $P1799["EXPR"]
-    unless_null $P1800, vivify_543
-    new $P1800, "Undef"
+    set $P1732, $P1731["args"]
+    unless_null $P1732, vivify_543
+    $P1732 = root_new ['parrot';'ResizablePMCArray']
   vivify_543:
-    if $P1800, if_1798
-.annotate 'line', 672
-    get_hll_global $P1812, ["PAST"], "Op"
-    $P1813 = $P1812."new"("list" :named("pasttype"))
-    store_lex "$past", $P1813
-.annotate 'line', 671
-    goto if_1798_end
-  if_1798:
-.annotate 'line', 666
-    find_lex $P1801, "$/"
-    unless_null $P1801, vivify_544
-    $P1801 = root_new ['parrot';'Hash']
+    set $P1733, $P1732[0]
+    unless_null $P1733, vivify_544
+    new $P1733, "Undef"
   vivify_544:
-    set $P1802, $P1801["EXPR"]
-    unless_null $P1802, vivify_545
-    $P1802 = root_new ['parrot';'ResizablePMCArray']
+    $P1734 = $P1733."ast"()
+    set $P1727, $P1734
+  if_1728_end:
+    store_lex "$past", $P1727
+.annotate 'line', 639
+    find_lex $P1738, "$/"
+    unless_null $P1738, vivify_545
+    $P1738 = root_new ['parrot';'Hash']
   vivify_545:
-    set $P1803, $P1802[0]
-    unless_null $P1803, vivify_546
-    new $P1803, "Undef"
+    set $P1739, $P1738["op"]
+    unless_null $P1739, vivify_546
+    new $P1739, "Undef"
   vivify_546:
-    $P1804 = $P1803."ast"()
-    store_lex "$past", $P1804
-.annotate 'line', 667
-    find_lex $P1806, "$past"
-    $S1807 = $P1806."name"()
-    isne $I1808, $S1807, "&infix:<,>"
-    unless $I1808, if_1805_end
-.annotate 'line', 668
-    get_hll_global $P1809, ["PAST"], "Op"
-    find_lex $P1810, "$past"
-    $P1811 = $P1809."new"($P1810, "list" :named("pasttype"))
-    store_lex "$past", $P1811
-  if_1805_end:
-  if_1798_end:
-.annotate 'line', 674
-    find_lex $P1814, "$past"
-    $P1814."name"("&circumfix:<[ ]>")
-.annotate 'line', 675
-    find_lex $P1815, "$/"
-    find_lex $P1816, "$past"
-    $P1817 = $P1815."!make"($P1816)
-.annotate 'line', 663
-    .return ($P1817)
-  control_1793:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1818, exception, "payload"
-    .return ($P1818)
+    set $S1740, $P1739
+    new $P1741, 'String'
+    set $P1741, $S1740
+    store_lex "$pirop", $P1741
+.annotate 'line', 640
+
+        $P0 = find_lex '$pirop'
+        $S0 = $P0
+        $P0 = split '__', $S0
+        $S0 = join ' ', $P0
+        $P1742 = box $S0
+    
+    store_lex "$pirop", $P1742
+.annotate 'line', 647
+    find_lex $P1743, "$past"
+    find_lex $P1744, "$pirop"
+    $P1743."pirop"($P1744)
+.annotate 'line', 648
+    find_lex $P1745, "$past"
+    $P1745."pasttype"("pirop")
+.annotate 'line', 649
+    find_lex $P1746, "$/"
+    find_lex $P1747, "$past"
+    $P1748 = $P1746."!make"($P1747)
+.annotate 'line', 637
+    .return ($P1748)
+  control_1722:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1749, exception, "payload"
+    .return ($P1749)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<ang>"  :subid("98_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1822
-.annotate 'line', 678
-    new $P1821, 'ExceptionHandler'
-    set_addr $P1821, control_1820
-    $P1821."handle_types"(57)
-    push_eh $P1821
-    .lex "self", self
-    .lex "$/", param_1822
-    find_lex $P1823, "$/"
-    find_lex $P1824, "$/"
-    unless_null $P1824, vivify_547
-    $P1824 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "args"  :subid("97_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1753
+.annotate 'line', 652
+    new $P1752, 'ExceptionHandler'
+    set_addr $P1752, control_1751
+    $P1752."handle_types"(.CONTROL_RETURN)
+    push_eh $P1752
+    .lex "self", self
+    .lex "$/", param_1753
+    find_lex $P1754, "$/"
+    find_lex $P1755, "$/"
+    unless_null $P1755, vivify_547
+    $P1755 = root_new ['parrot';'Hash']
   vivify_547:
-    set $P1825, $P1824["quote_EXPR"]
-    unless_null $P1825, vivify_548
-    new $P1825, "Undef"
+    set $P1756, $P1755["arglist"]
+    unless_null $P1756, vivify_548
+    new $P1756, "Undef"
   vivify_548:
-    $P1826 = $P1825."ast"()
-    $P1827 = $P1823."!make"($P1826)
-    .return ($P1827)
-  control_1820:
+    $P1757 = $P1756."ast"()
+    $P1758 = $P1754."!make"($P1757)
+    .return ($P1758)
+  control_1751:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1828, exception, "payload"
-    .return ($P1828)
+    getattribute $P1759, exception, "payload"
+    .return ($P1759)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("99_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1832
-.annotate 'line', 679
-    new $P1831, 'ExceptionHandler'
-    set_addr $P1831, control_1830
-    $P1831."handle_types"(57)
-    push_eh $P1831
+.include "except_types.pasm"
+.sub "arglist"  :subid("98_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1763
+.annotate 'line', 654
+    .const 'Sub' $P1774 = "99_1275811497.55064" 
+    capture_lex $P1774
+    new $P1762, 'ExceptionHandler'
+    set_addr $P1762, control_1761
+    $P1762."handle_types"(.CONTROL_RETURN)
+    push_eh $P1762
     .lex "self", self
-    .lex "$/", param_1832
-    find_lex $P1833, "$/"
-    find_lex $P1834, "$/"
-    unless_null $P1834, vivify_549
-    $P1834 = root_new ['parrot';'Hash']
+    .lex "$/", param_1763
+.annotate 'line', 655
+    new $P1764, "Undef"
+    .lex "$past", $P1764
+.annotate 'line', 663
+    new $P1765, "Undef"
+    .lex "$i", $P1765
+.annotate 'line', 664
+    new $P1766, "Undef"
+    .lex "$n", $P1766
+.annotate 'line', 655
+    get_hll_global $P1767, ["PAST"], "Op"
+    find_lex $P1768, "$/"
+    $P1769 = $P1767."new"("call" :named("pasttype"), $P1768 :named("node"))
+    store_lex "$past", $P1769
+.annotate 'line', 656
+    find_lex $P1771, "$/"
+    unless_null $P1771, vivify_549
+    $P1771 = root_new ['parrot';'Hash']
   vivify_549:
-    set $P1835, $P1834["quote_EXPR"]
-    unless_null $P1835, vivify_550
-    new $P1835, "Undef"
+    set $P1772, $P1771["EXPR"]
+    unless_null $P1772, vivify_550
+    new $P1772, "Undef"
   vivify_550:
-    $P1836 = $P1835."ast"()
-    $P1837 = $P1833."!make"($P1836)
-    .return ($P1837)
-  control_1830:
+    unless $P1772, if_1770_end
+    .const 'Sub' $P1774 = "99_1275811497.55064" 
+    capture_lex $P1774
+    $P1774()
+  if_1770_end:
+.annotate 'line', 663
+    new $P1806, "Integer"
+    assign $P1806, 0
+    store_lex "$i", $P1806
+.annotate 'line', 664
+    find_lex $P1807, "$past"
+    $P1808 = $P1807."list"()
+    set $N1809, $P1808
+    new $P1810, 'Float'
+    set $P1810, $N1809
+    store_lex "$n", $P1810
+.annotate 'line', 665
+    new $P1858, 'ExceptionHandler'
+    set_addr $P1858, loop1857_handler
+    $P1858."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1858
+  loop1857_test:
+    find_lex $P1811, "$i"
+    set $N1812, $P1811
+    find_lex $P1813, "$n"
+    set $N1814, $P1813
+    islt $I1815, $N1812, $N1814
+    unless $I1815, loop1857_done
+  loop1857_redo:
+.annotate 'line', 666
+    find_lex $P1817, "$i"
+    set $I1818, $P1817
+    find_lex $P1819, "$past"
+    unless_null $P1819, vivify_554
+    $P1819 = root_new ['parrot';'ResizablePMCArray']
+  vivify_554:
+    set $P1820, $P1819[$I1818]
+    unless_null $P1820, vivify_555
+    new $P1820, "Undef"
+  vivify_555:
+    $S1821 = $P1820."name"()
+    iseq $I1822, $S1821, "&prefix:<|>"
+    unless $I1822, if_1816_end
+.annotate 'line', 667
+    find_lex $P1823, "$i"
+    set $I1824, $P1823
+    find_lex $P1825, "$past"
+    unless_null $P1825, vivify_556
+    $P1825 = root_new ['parrot';'ResizablePMCArray']
+  vivify_556:
+    set $P1826, $P1825[$I1824]
+    unless_null $P1826, vivify_557
+    $P1826 = root_new ['parrot';'ResizablePMCArray']
+  vivify_557:
+    set $P1827, $P1826[0]
+    unless_null $P1827, vivify_558
+    new $P1827, "Undef"
+  vivify_558:
+    find_lex $P1828, "$i"
+    set $I1829, $P1828
+    find_lex $P1830, "$past"
+    unless_null $P1830, vivify_559
+    $P1830 = root_new ['parrot';'ResizablePMCArray']
+    store_lex "$past", $P1830
+  vivify_559:
+    set $P1830[$I1829], $P1827
+.annotate 'line', 668
+    find_lex $P1831, "$i"
+    set $I1832, $P1831
+    find_lex $P1833, "$past"
+    unless_null $P1833, vivify_560
+    $P1833 = root_new ['parrot';'ResizablePMCArray']
+  vivify_560:
+    set $P1834, $P1833[$I1832]
+    unless_null $P1834, vivify_561
+    new $P1834, "Undef"
+  vivify_561:
+    $P1834."flat"(1)
+.annotate 'line', 669
+    find_lex $P1838, "$i"
+    set $I1839, $P1838
+    find_lex $P1840, "$past"
+    unless_null $P1840, vivify_562
+    $P1840 = root_new ['parrot';'ResizablePMCArray']
+  vivify_562:
+    set $P1841, $P1840[$I1839]
+    unless_null $P1841, vivify_563
+    new $P1841, "Undef"
+  vivify_563:
+    get_hll_global $P1842, ["PAST"], "Val"
+    $P1843 = $P1841."isa"($P1842)
+    if $P1843, if_1837
+    set $P1836, $P1843
+    goto if_1837_end
+  if_1837:
+.annotate 'line', 670
+    find_lex $P1844, "$i"
+    set $I1845, $P1844
+    find_lex $P1846, "$past"
+    unless_null $P1846, vivify_564
+    $P1846 = root_new ['parrot';'ResizablePMCArray']
+  vivify_564:
+    set $P1847, $P1846[$I1845]
+    unless_null $P1847, vivify_565
+    new $P1847, "Undef"
+  vivify_565:
+    $S1848 = $P1847."name"()
+    substr $S1849, $S1848, 0, 1
+    iseq $I1850, $S1849, "%"
+    new $P1836, 'Integer'
+    set $P1836, $I1850
+  if_1837_end:
+    unless $P1836, if_1835_end
+.annotate 'line', 671
+    find_lex $P1851, "$i"
+    set $I1852, $P1851
+    find_lex $P1853, "$past"
+    unless_null $P1853, vivify_566
+    $P1853 = root_new ['parrot';'ResizablePMCArray']
+  vivify_566:
+    set $P1854, $P1853[$I1852]
+    unless_null $P1854, vivify_567
+    new $P1854, "Undef"
+  vivify_567:
+    $P1854."named"(1)
+  if_1835_end:
+  if_1816_end:
+.annotate 'line', 666
+    find_lex $P1855, "$i"
+    clone $P1856, $P1855
+    inc $P1855
+  loop1857_next:
+.annotate 'line', 665
+    goto loop1857_test
+  loop1857_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1859, exception, 'type'
+    eq $P1859, .CONTROL_LOOP_NEXT, loop1857_next
+    eq $P1859, .CONTROL_LOOP_REDO, loop1857_redo
+  loop1857_done:
+    pop_eh 
+.annotate 'line', 676
+    find_lex $P1860, "$/"
+    find_lex $P1861, "$past"
+    $P1862 = $P1860."!make"($P1861)
+.annotate 'line', 654
+    .return ($P1862)
+  control_1761:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1838, exception, "payload"
-    .return ($P1838)
+    getattribute $P1863, exception, "payload"
+    .return ($P1863)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<{ }>"  :subid("100_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1842
-.annotate 'line', 681
-    new $P1841, 'ExceptionHandler'
-    set_addr $P1841, control_1840
-    $P1841."handle_types"(57)
-    push_eh $P1841
-    .lex "self", self
-    .lex "$/", param_1842
-.annotate 'line', 682
-    new $P1843, "Undef"
-    .lex "$past", $P1843
-    find_lex $P1846, "$/"
-    unless_null $P1846, vivify_551
-    $P1846 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "_block1773"  :anon :subid("99_1275811497.55064") :outer("98_1275811497.55064")
+.annotate 'line', 656
+    .const 'Sub' $P1795 = "100_1275811497.55064" 
+    capture_lex $P1795
+.annotate 'line', 657
+    new $P1775, "Undef"
+    .lex "$expr", $P1775
+    find_lex $P1776, "$/"
+    unless_null $P1776, vivify_551
+    $P1776 = root_new ['parrot';'Hash']
   vivify_551:
-    set $P1847, $P1846["pblock"]
-    unless_null $P1847, vivify_552
-    $P1847 = root_new ['parrot';'Hash']
+    set $P1777, $P1776["EXPR"]
+    unless_null $P1777, vivify_552
+    new $P1777, "Undef"
   vivify_552:
-    set $P1848, $P1847["blockoid"]
-    unless_null $P1848, vivify_553
-    $P1848 = root_new ['parrot';'Hash']
-  vivify_553:
-    set $P1849, $P1848["statementlist"]
-    unless_null $P1849, vivify_554
-    $P1849 = root_new ['parrot';'Hash']
-  vivify_554:
-    set $P1850, $P1849["statement"]
-    unless_null $P1850, vivify_555
-    new $P1850, "Undef"
-  vivify_555:
-    set $N1851, $P1850
-    isgt $I1852, $N1851, 0.0
-    if $I1852, if_1845
-.annotate 'line', 684
-    $P1856 = "vivitype"("%")
-    set $P1844, $P1856
-.annotate 'line', 682
-    goto if_1845_end
-  if_1845:
-.annotate 'line', 683
-    find_lex $P1853, "$/"
-    unless_null $P1853, vivify_556
-    $P1853 = root_new ['parrot';'Hash']
-  vivify_556:
-    set $P1854, $P1853["pblock"]
-    unless_null $P1854, vivify_557
-    new $P1854, "Undef"
-  vivify_557:
-    $P1855 = $P1854."ast"()
-    set $P1844, $P1855
-  if_1845_end:
-    store_lex "$past", $P1844
-.annotate 'line', 685
-    new $P1857, "Integer"
-    assign $P1857, 1
-    find_lex $P1858, "$past"
-    unless_null $P1858, vivify_558
-    $P1858 = root_new ['parrot';'Hash']
-    store_lex "$past", $P1858
-  vivify_558:
-    set $P1858["bareblock"], $P1857
-.annotate 'line', 686
-    find_lex $P1859, "$/"
-    find_lex $P1860, "$past"
-    $P1861 = $P1859."!make"($P1860)
-.annotate 'line', 681
-    .return ($P1861)
-  control_1840:
+    $P1778 = $P1777."ast"()
+    store_lex "$expr", $P1778
+.annotate 'line', 658
+    find_lex $P1783, "$expr"
+    $S1784 = $P1783."name"()
+    iseq $I1785, $S1784, "&infix:<,>"
+    if $I1785, if_1782
+    new $P1781, 'Integer'
+    set $P1781, $I1785
+    goto if_1782_end
+  if_1782:
+    find_lex $P1786, "$expr"
+    $P1787 = $P1786."named"()
+    isfalse $I1788, $P1787
+    new $P1781, 'Integer'
+    set $P1781, $I1788
+  if_1782_end:
+    if $P1781, if_1780
+.annotate 'line', 661
+    find_lex $P1803, "$past"
+    find_lex $P1804, "$expr"
+    $P1805 = $P1803."push"($P1804)
+    set $P1779, $P1805
+.annotate 'line', 658
+    goto if_1780_end
+  if_1780:
+.annotate 'line', 659
+    find_lex $P1790, "$expr"
+    $P1791 = $P1790."list"()
+    defined $I1792, $P1791
+    unless $I1792, for_undef_553
+    iter $P1789, $P1791
+    new $P1801, 'ExceptionHandler'
+    set_addr $P1801, loop1800_handler
+    $P1801."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1801
+  loop1800_test:
+    unless $P1789, loop1800_done
+    shift $P1793, $P1789
+  loop1800_redo:
+    .const 'Sub' $P1795 = "100_1275811497.55064" 
+    capture_lex $P1795
+    $P1795($P1793)
+  loop1800_next:
+    goto loop1800_test
+  loop1800_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1802, exception, 'type'
+    eq $P1802, .CONTROL_LOOP_NEXT, loop1800_next
+    eq $P1802, .CONTROL_LOOP_REDO, loop1800_redo
+  loop1800_done:
+    pop_eh 
+  for_undef_553:
+.annotate 'line', 658
+    set $P1779, $P1789
+  if_1780_end:
+.annotate 'line', 656
+    .return ($P1779)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1794"  :anon :subid("100_1275811497.55064") :outer("99_1275811497.55064")
+    .param pmc param_1796
+.annotate 'line', 659
+    .lex "$_", param_1796
+    find_lex $P1797, "$past"
+    find_lex $P1798, "$_"
+    $P1799 = $P1797."push"($P1798)
+    .return ($P1799)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<value>"  :subid("101_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1867
+.annotate 'line', 680
+    new $P1866, 'ExceptionHandler'
+    set_addr $P1866, control_1865
+    $P1866."handle_types"(.CONTROL_RETURN)
+    push_eh $P1866
+    .lex "self", self
+    .lex "$/", param_1867
+    find_lex $P1868, "$/"
+    find_lex $P1869, "$/"
+    unless_null $P1869, vivify_568
+    $P1869 = root_new ['parrot';'Hash']
+  vivify_568:
+    set $P1870, $P1869["value"]
+    unless_null $P1870, vivify_569
+    new $P1870, "Undef"
+  vivify_569:
+    $P1871 = $P1870."ast"()
+    $P1872 = $P1868."!make"($P1871)
+    .return ($P1872)
+  control_1865:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1862, exception, "payload"
-    .return ($P1862)
+    getattribute $P1873, exception, "payload"
+    .return ($P1873)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<sigil>"  :subid("101_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1866
-.annotate 'line', 689
-    new $P1865, 'ExceptionHandler'
-    set_addr $P1865, control_1864
-    $P1865."handle_types"(57)
-    push_eh $P1865
+.include "except_types.pasm"
+.sub "circumfix:sym<( )>"  :subid("102_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1877
+.annotate 'line', 682
+    new $P1876, 'ExceptionHandler'
+    set_addr $P1876, control_1875
+    $P1876."handle_types"(.CONTROL_RETURN)
+    push_eh $P1876
     .lex "self", self
-    .lex "$/", param_1866
-.annotate 'line', 690
-    new $P1867, "Undef"
-    .lex "$name", $P1867
-    find_lex $P1870, "$/"
-    unless_null $P1870, vivify_559
-    $P1870 = root_new ['parrot';'Hash']
-  vivify_559:
-    set $P1871, $P1870["sigil"]
-    unless_null $P1871, vivify_560
-    new $P1871, "Undef"
-  vivify_560:
-    set $S1872, $P1871
-    iseq $I1873, $S1872, "@"
-    if $I1873, if_1869
-.annotate 'line', 691
-    find_lex $P1877, "$/"
-    unless_null $P1877, vivify_561
-    $P1877 = root_new ['parrot';'Hash']
-  vivify_561:
-    set $P1878, $P1877["sigil"]
-    unless_null $P1878, vivify_562
-    new $P1878, "Undef"
-  vivify_562:
-    set $S1879, $P1878
-    iseq $I1880, $S1879, "%"
-    if $I1880, if_1876
-    new $P1882, "String"
-    assign $P1882, "item"
-    set $P1875, $P1882
-    goto if_1876_end
-  if_1876:
-    new $P1881, "String"
-    assign $P1881, "hash"
-    set $P1875, $P1881
-  if_1876_end:
-    set $P1868, $P1875
-.annotate 'line', 690
-    goto if_1869_end
-  if_1869:
-    new $P1874, "String"
-    assign $P1874, "list"
-    set $P1868, $P1874
-  if_1869_end:
-    store_lex "$name", $P1868
-.annotate 'line', 693
+    .lex "$/", param_1877
+.annotate 'line', 683
+    find_lex $P1878, "$/"
+.annotate 'line', 684
+    find_lex $P1881, "$/"
+    unless_null $P1881, vivify_570
+    $P1881 = root_new ['parrot';'Hash']
+  vivify_570:
+    set $P1882, $P1881["EXPR"]
+    unless_null $P1882, vivify_571
+    new $P1882, "Undef"
+  vivify_571:
+    if $P1882, if_1880
+.annotate 'line', 685
+    get_hll_global $P1887, ["PAST"], "Op"
+    find_lex $P1888, "$/"
+    $P1889 = $P1887."new"("list" :named("pasttype"), $P1888 :named("node"))
+    set $P1879, $P1889
+.annotate 'line', 684
+    goto if_1880_end
+  if_1880:
     find_lex $P1883, "$/"
-    get_hll_global $P1884, ["PAST"], "Op"
-    find_lex $P1885, "$name"
-    find_lex $P1886, "$/"
-    unless_null $P1886, vivify_563
-    $P1886 = root_new ['parrot';'Hash']
-  vivify_563:
-    set $P1887, $P1886["semilist"]
-    unless_null $P1887, vivify_564
-    new $P1887, "Undef"
-  vivify_564:
-    $P1888 = $P1887."ast"()
-    $P1889 = $P1884."new"($P1888, "callmethod" :named("pasttype"), $P1885 :named("name"))
-    $P1890 = $P1883."!make"($P1889)
-.annotate 'line', 689
+    unless_null $P1883, vivify_572
+    $P1883 = root_new ['parrot';'Hash']
+  vivify_572:
+    set $P1884, $P1883["EXPR"]
+    unless_null $P1884, vivify_573
+    $P1884 = root_new ['parrot';'ResizablePMCArray']
+  vivify_573:
+    set $P1885, $P1884[0]
+    unless_null $P1885, vivify_574
+    new $P1885, "Undef"
+  vivify_574:
+    $P1886 = $P1885."ast"()
+    set $P1879, $P1886
+  if_1880_end:
+    $P1890 = $P1878."!make"($P1879)
+.annotate 'line', 682
     .return ($P1890)
-  control_1864:
+  control_1875:
     .local pmc exception 
     .get_results (exception) 
     getattribute $P1891, exception, "payload"
@@ -22605,1234 +23253,1565 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "semilist"  :subid("102_1274853047.92727") :method :outer("11_1274853047.92727")
+.include "except_types.pasm"
+.sub "circumfix:sym<[ ]>"  :subid("103_1275811497.55064") :method :outer("11_1275811497.55064")
     .param pmc param_1895
-.annotate 'line', 696
+.annotate 'line', 688
     new $P1894, 'ExceptionHandler'
     set_addr $P1894, control_1893
-    $P1894."handle_types"(57)
+    $P1894."handle_types"(.CONTROL_RETURN)
     push_eh $P1894
     .lex "self", self
     .lex "$/", param_1895
-    find_lex $P1896, "$/"
-    find_lex $P1897, "$/"
-    unless_null $P1897, vivify_565
-    $P1897 = root_new ['parrot';'Hash']
-  vivify_565:
-    set $P1898, $P1897["statement"]
-    unless_null $P1898, vivify_566
-    new $P1898, "Undef"
-  vivify_566:
-    $P1899 = $P1898."ast"()
-    $P1900 = $P1896."!make"($P1899)
-    .return ($P1900)
+.annotate 'line', 689
+    new $P1896, "Undef"
+    .lex "$past", $P1896
+.annotate 'line', 688
+    find_lex $P1897, "$past"
+.annotate 'line', 690
+    find_lex $P1899, "$/"
+    unless_null $P1899, vivify_575
+    $P1899 = root_new ['parrot';'Hash']
+  vivify_575:
+    set $P1900, $P1899["EXPR"]
+    unless_null $P1900, vivify_576
+    new $P1900, "Undef"
+  vivify_576:
+    if $P1900, if_1898
+.annotate 'line', 697
+    get_hll_global $P1912, ["PAST"], "Op"
+    $P1913 = $P1912."new"("list" :named("pasttype"))
+    store_lex "$past", $P1913
+.annotate 'line', 696
+    goto if_1898_end
+  if_1898:
+.annotate 'line', 691
+    find_lex $P1901, "$/"
+    unless_null $P1901, vivify_577
+    $P1901 = root_new ['parrot';'Hash']
+  vivify_577:
+    set $P1902, $P1901["EXPR"]
+    unless_null $P1902, vivify_578
+    $P1902 = root_new ['parrot';'ResizablePMCArray']
+  vivify_578:
+    set $P1903, $P1902[0]
+    unless_null $P1903, vivify_579
+    new $P1903, "Undef"
+  vivify_579:
+    $P1904 = $P1903."ast"()
+    store_lex "$past", $P1904
+.annotate 'line', 692
+    find_lex $P1906, "$past"
+    $S1907 = $P1906."name"()
+    isne $I1908, $S1907, "&infix:<,>"
+    unless $I1908, if_1905_end
+.annotate 'line', 693
+    get_hll_global $P1909, ["PAST"], "Op"
+    find_lex $P1910, "$past"
+    $P1911 = $P1909."new"($P1910, "list" :named("pasttype"))
+    store_lex "$past", $P1911
+  if_1905_end:
+  if_1898_end:
+.annotate 'line', 699
+    find_lex $P1914, "$past"
+    $P1914."name"("&circumfix:<[ ]>")
+.annotate 'line', 700
+    find_lex $P1915, "$/"
+    find_lex $P1916, "$past"
+    $P1917 = $P1915."!make"($P1916)
+.annotate 'line', 688
+    .return ($P1917)
   control_1893:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1901, exception, "payload"
-    .return ($P1901)
+    getattribute $P1918, exception, "payload"
+    .return ($P1918)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<[ ]>"  :subid("103_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1905
-.annotate 'line', 698
-    new $P1904, 'ExceptionHandler'
-    set_addr $P1904, control_1903
-    $P1904."handle_types"(57)
-    push_eh $P1904
-    .lex "self", self
-    .lex "$/", param_1905
-.annotate 'line', 699
-    find_lex $P1906, "$/"
-    get_hll_global $P1907, ["PAST"], "Var"
-    find_lex $P1908, "$/"
-    unless_null $P1908, vivify_567
-    $P1908 = root_new ['parrot';'Hash']
-  vivify_567:
-    set $P1909, $P1908["EXPR"]
-    unless_null $P1909, vivify_568
-    new $P1909, "Undef"
-  vivify_568:
-    $P1910 = $P1909."ast"()
-.annotate 'line', 701
-    $P1911 = "vivitype"("@")
-    $P1912 = $P1907."new"($P1910, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P1911 :named("vivibase"))
-.annotate 'line', 699
-    $P1913 = $P1906."!make"($P1912)
-.annotate 'line', 698
-    .return ($P1913)
-  control_1903:
+.include "except_types.pasm"
+.sub "circumfix:sym<ang>"  :subid("104_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1922
+.annotate 'line', 703
+    new $P1921, 'ExceptionHandler'
+    set_addr $P1921, control_1920
+    $P1921."handle_types"(.CONTROL_RETURN)
+    push_eh $P1921
+    .lex "self", self
+    .lex "$/", param_1922
+    find_lex $P1923, "$/"
+    find_lex $P1924, "$/"
+    unless_null $P1924, vivify_580
+    $P1924 = root_new ['parrot';'Hash']
+  vivify_580:
+    set $P1925, $P1924["quote_EXPR"]
+    unless_null $P1925, vivify_581
+    new $P1925, "Undef"
+  vivify_581:
+    $P1926 = $P1925."ast"()
+    $P1927 = $P1923."!make"($P1926)
+    .return ($P1927)
+  control_1920:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1914, exception, "payload"
-    .return ($P1914)
+    getattribute $P1928, exception, "payload"
+    .return ($P1928)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<{ }>"  :subid("104_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1918
+.include "except_types.pasm"
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("105_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1932
 .annotate 'line', 704
-    new $P1917, 'ExceptionHandler'
-    set_addr $P1917, control_1916
-    $P1917."handle_types"(57)
-    push_eh $P1917
-    .lex "self", self
-    .lex "$/", param_1918
-.annotate 'line', 705
-    find_lex $P1919, "$/"
-    get_hll_global $P1920, ["PAST"], "Var"
-    find_lex $P1921, "$/"
-    unless_null $P1921, vivify_569
-    $P1921 = root_new ['parrot';'Hash']
-  vivify_569:
-    set $P1922, $P1921["EXPR"]
-    unless_null $P1922, vivify_570
-    new $P1922, "Undef"
-  vivify_570:
-    $P1923 = $P1922."ast"()
-.annotate 'line', 707
-    $P1924 = "vivitype"("%")
-    $P1925 = $P1920."new"($P1923, "keyed" :named("scope"), "Undef" :named("viviself"), $P1924 :named("vivibase"))
-.annotate 'line', 705
-    $P1926 = $P1919."!make"($P1925)
-.annotate 'line', 704
-    .return ($P1926)
-  control_1916:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1927, exception, "payload"
-    .return ($P1927)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<ang>"  :subid("105_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1931
-.annotate 'line', 710
-    new $P1930, 'ExceptionHandler'
-    set_addr $P1930, control_1929
-    $P1930."handle_types"(57)
-    push_eh $P1930
+    new $P1931, 'ExceptionHandler'
+    set_addr $P1931, control_1930
+    $P1931."handle_types"(.CONTROL_RETURN)
+    push_eh $P1931
     .lex "self", self
-    .lex "$/", param_1931
-.annotate 'line', 711
-    find_lex $P1932, "$/"
-    get_hll_global $P1933, ["PAST"], "Var"
+    .lex "$/", param_1932
+    find_lex $P1933, "$/"
     find_lex $P1934, "$/"
-    unless_null $P1934, vivify_571
+    unless_null $P1934, vivify_582
     $P1934 = root_new ['parrot';'Hash']
-  vivify_571:
+  vivify_582:
     set $P1935, $P1934["quote_EXPR"]
-    unless_null $P1935, vivify_572
+    unless_null $P1935, vivify_583
     new $P1935, "Undef"
-  vivify_572:
-    $P1936 = $P1935."ast"()
-.annotate 'line', 713
-    $P1937 = "vivitype"("%")
-    $P1938 = $P1933."new"($P1936, "keyed" :named("scope"), "Undef" :named("viviself"), $P1937 :named("vivibase"))
-.annotate 'line', 711
-    $P1939 = $P1932."!make"($P1938)
-.annotate 'line', 710
-    .return ($P1939)
-  control_1929:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1940, exception, "payload"
-    .return ($P1940)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<( )>"  :subid("106_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1944
-.annotate 'line', 716
-    new $P1943, 'ExceptionHandler'
-    set_addr $P1943, control_1942
-    $P1943."handle_types"(57)
-    push_eh $P1943
-    .lex "self", self
-    .lex "$/", param_1944
-.annotate 'line', 717
-    find_lex $P1945, "$/"
-    find_lex $P1946, "$/"
-    unless_null $P1946, vivify_573
-    $P1946 = root_new ['parrot';'Hash']
-  vivify_573:
-    set $P1947, $P1946["arglist"]
-    unless_null $P1947, vivify_574
-    new $P1947, "Undef"
-  vivify_574:
-    $P1948 = $P1947."ast"()
-    $P1949 = $P1945."!make"($P1948)
-.annotate 'line', 716
-    .return ($P1949)
-  control_1942:
+  vivify_583:
+    $P1936 = $P1935."ast"()
+    $P1937 = $P1933."!make"($P1936)
+    .return ($P1937)
+  control_1930:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1950, exception, "payload"
-    .return ($P1950)
+    getattribute $P1938, exception, "payload"
+    .return ($P1938)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "value"  :subid("107_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1954
-.annotate 'line', 720
-    new $P1953, 'ExceptionHandler'
-    set_addr $P1953, control_1952
-    $P1953."handle_types"(57)
-    push_eh $P1953
+.include "except_types.pasm"
+.sub "circumfix:sym<{ }>"  :subid("106_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1942
+.annotate 'line', 706
+    new $P1941, 'ExceptionHandler'
+    set_addr $P1941, control_1940
+    $P1941."handle_types"(.CONTROL_RETURN)
+    push_eh $P1941
     .lex "self", self
-    .lex "$/", param_1954
-.annotate 'line', 721
-    find_lex $P1955, "$/"
-    find_lex $P1958, "$/"
-    unless_null $P1958, vivify_575
+    .lex "$/", param_1942
+.annotate 'line', 707
+    new $P1943, "Undef"
+    .lex "$past", $P1943
+    find_lex $P1946, "$/"
+    unless_null $P1946, vivify_584
+    $P1946 = root_new ['parrot';'Hash']
+  vivify_584:
+    set $P1947, $P1946["pblock"]
+    unless_null $P1947, vivify_585
+    $P1947 = root_new ['parrot';'Hash']
+  vivify_585:
+    set $P1948, $P1947["blockoid"]
+    unless_null $P1948, vivify_586
+    $P1948 = root_new ['parrot';'Hash']
+  vivify_586:
+    set $P1949, $P1948["statementlist"]
+    unless_null $P1949, vivify_587
+    $P1949 = root_new ['parrot';'Hash']
+  vivify_587:
+    set $P1950, $P1949["statement"]
+    unless_null $P1950, vivify_588
+    new $P1950, "Undef"
+  vivify_588:
+    set $N1951, $P1950
+    isgt $I1952, $N1951, 0.0
+    if $I1952, if_1945
+.annotate 'line', 709
+    $P1956 = "vivitype"("%")
+    set $P1944, $P1956
+.annotate 'line', 707
+    goto if_1945_end
+  if_1945:
+.annotate 'line', 708
+    find_lex $P1953, "$/"
+    unless_null $P1953, vivify_589
+    $P1953 = root_new ['parrot';'Hash']
+  vivify_589:
+    set $P1954, $P1953["pblock"]
+    unless_null $P1954, vivify_590
+    new $P1954, "Undef"
+  vivify_590:
+    $P1955 = $P1954."ast"()
+    set $P1944, $P1955
+  if_1945_end:
+    store_lex "$past", $P1944
+.annotate 'line', 710
+    new $P1957, "Integer"
+    assign $P1957, 1
+    find_lex $P1958, "$past"
+    unless_null $P1958, vivify_591
     $P1958 = root_new ['parrot';'Hash']
-  vivify_575:
-    set $P1959, $P1958["quote"]
-    unless_null $P1959, vivify_576
-    new $P1959, "Undef"
-  vivify_576:
-    if $P1959, if_1957
-    find_lex $P1963, "$/"
-    unless_null $P1963, vivify_577
-    $P1963 = root_new ['parrot';'Hash']
-  vivify_577:
-    set $P1964, $P1963["number"]
-    unless_null $P1964, vivify_578
-    new $P1964, "Undef"
-  vivify_578:
-    $P1965 = $P1964."ast"()
-    set $P1956, $P1965
-    goto if_1957_end
-  if_1957:
-    find_lex $P1960, "$/"
-    unless_null $P1960, vivify_579
-    $P1960 = root_new ['parrot';'Hash']
-  vivify_579:
-    set $P1961, $P1960["quote"]
-    unless_null $P1961, vivify_580
-    new $P1961, "Undef"
-  vivify_580:
-    $P1962 = $P1961."ast"()
-    set $P1956, $P1962
-  if_1957_end:
-    $P1966 = $P1955."!make"($P1956)
-.annotate 'line', 720
-    .return ($P1966)
-  control_1952:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1967, exception, "payload"
-    .return ($P1967)
+    store_lex "$past", $P1958
+  vivify_591:
+    set $P1958["bareblock"], $P1957
+.annotate 'line', 711
+    find_lex $P1959, "$/"
+    find_lex $P1960, "$past"
+    $P1961 = $P1959."!make"($P1960)
+.annotate 'line', 706
+    .return ($P1961)
+  control_1940:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1962, exception, "payload"
+    .return ($P1962)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "number"  :subid("108_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1971
-.annotate 'line', 724
-    new $P1970, 'ExceptionHandler'
-    set_addr $P1970, control_1969
-    $P1970."handle_types"(57)
-    push_eh $P1970
-    .lex "self", self
-    .lex "$/", param_1971
-.annotate 'line', 725
-    new $P1972, "Undef"
-    .lex "$value", $P1972
-    find_lex $P1975, "$/"
-    unless_null $P1975, vivify_581
-    $P1975 = root_new ['parrot';'Hash']
-  vivify_581:
-    set $P1976, $P1975["dec_number"]
-    unless_null $P1976, vivify_582
-    new $P1976, "Undef"
-  vivify_582:
-    if $P1976, if_1974
-    find_lex $P1980, "$/"
-    unless_null $P1980, vivify_583
-    $P1980 = root_new ['parrot';'Hash']
-  vivify_583:
-    set $P1981, $P1980["integer"]
-    unless_null $P1981, vivify_584
-    new $P1981, "Undef"
-  vivify_584:
-    $P1982 = $P1981."ast"()
-    set $P1973, $P1982
-    goto if_1974_end
-  if_1974:
+.include "except_types.pasm"
+.sub "circumfix:sym<sigil>"  :subid("107_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1966
+.annotate 'line', 714
+    new $P1965, 'ExceptionHandler'
+    set_addr $P1965, control_1964
+    $P1965."handle_types"(.CONTROL_RETURN)
+    push_eh $P1965
+    .lex "self", self
+    .lex "$/", param_1966
+.annotate 'line', 715
+    new $P1967, "Undef"
+    .lex "$name", $P1967
+    find_lex $P1970, "$/"
+    unless_null $P1970, vivify_592
+    $P1970 = root_new ['parrot';'Hash']
+  vivify_592:
+    set $P1971, $P1970["sigil"]
+    unless_null $P1971, vivify_593
+    new $P1971, "Undef"
+  vivify_593:
+    set $S1972, $P1971
+    iseq $I1973, $S1972, "@"
+    if $I1973, if_1969
+.annotate 'line', 716
     find_lex $P1977, "$/"
-    unless_null $P1977, vivify_585
+    unless_null $P1977, vivify_594
     $P1977 = root_new ['parrot';'Hash']
-  vivify_585:
-    set $P1978, $P1977["dec_number"]
-    unless_null $P1978, vivify_586
+  vivify_594:
+    set $P1978, $P1977["sigil"]
+    unless_null $P1978, vivify_595
     new $P1978, "Undef"
-  vivify_586:
-    $P1979 = $P1978."ast"()
-    set $P1973, $P1979
-  if_1974_end:
-    store_lex "$value", $P1973
-.annotate 'line', 726
-    find_lex $P1984, "$/"
-    unless_null $P1984, vivify_587
-    $P1984 = root_new ['parrot';'Hash']
-  vivify_587:
-    set $P1985, $P1984["sign"]
-    unless_null $P1985, vivify_588
-    new $P1985, "Undef"
-  vivify_588:
-    set $S1986, $P1985
-    iseq $I1987, $S1986, "-"
-    unless $I1987, if_1983_end
-    find_lex $P1988, "$value"
-    neg $P1989, $P1988
-    store_lex "$value", $P1989
-  if_1983_end:
-.annotate 'line', 727
-    find_lex $P1990, "$/"
-    get_hll_global $P1991, ["PAST"], "Val"
-    find_lex $P1992, "$value"
-    $P1993 = $P1991."new"($P1992 :named("value"))
-    $P1994 = $P1990."!make"($P1993)
-.annotate 'line', 724
-    .return ($P1994)
-  control_1969:
+  vivify_595:
+    set $S1979, $P1978
+    iseq $I1980, $S1979, "%"
+    if $I1980, if_1976
+    new $P1982, "String"
+    assign $P1982, "item"
+    set $P1975, $P1982
+    goto if_1976_end
+  if_1976:
+    new $P1981, "String"
+    assign $P1981, "hash"
+    set $P1975, $P1981
+  if_1976_end:
+    set $P1968, $P1975
+.annotate 'line', 715
+    goto if_1969_end
+  if_1969:
+    new $P1974, "String"
+    assign $P1974, "list"
+    set $P1968, $P1974
+  if_1969_end:
+    store_lex "$name", $P1968
+.annotate 'line', 718
+    find_lex $P1983, "$/"
+    get_hll_global $P1984, ["PAST"], "Op"
+    find_lex $P1985, "$name"
+    find_lex $P1986, "$/"
+    unless_null $P1986, vivify_596
+    $P1986 = root_new ['parrot';'Hash']
+  vivify_596:
+    set $P1987, $P1986["semilist"]
+    unless_null $P1987, vivify_597
+    new $P1987, "Undef"
+  vivify_597:
+    $P1988 = $P1987."ast"()
+    $P1989 = $P1984."new"($P1988, "callmethod" :named("pasttype"), $P1985 :named("name"))
+    $P1990 = $P1983."!make"($P1989)
+.annotate 'line', 714
+    .return ($P1990)
+  control_1964:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1995, exception, "payload"
-    .return ($P1995)
+    getattribute $P1991, exception, "payload"
+    .return ($P1991)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<apos>"  :subid("109_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_1999
-.annotate 'line', 730
-    new $P1998, 'ExceptionHandler'
-    set_addr $P1998, control_1997
-    $P1998."handle_types"(57)
-    push_eh $P1998
-    .lex "self", self
-    .lex "$/", param_1999
-    find_lex $P2000, "$/"
-    find_lex $P2001, "$/"
-    unless_null $P2001, vivify_589
-    $P2001 = root_new ['parrot';'Hash']
-  vivify_589:
-    set $P2002, $P2001["quote_EXPR"]
-    unless_null $P2002, vivify_590
-    new $P2002, "Undef"
-  vivify_590:
-    $P2003 = $P2002."ast"()
-    $P2004 = $P2000."!make"($P2003)
-    .return ($P2004)
-  control_1997:
+.include "except_types.pasm"
+.sub "semilist"  :subid("108_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_1995
+.annotate 'line', 721
+    new $P1994, 'ExceptionHandler'
+    set_addr $P1994, control_1993
+    $P1994."handle_types"(.CONTROL_RETURN)
+    push_eh $P1994
+    .lex "self", self
+    .lex "$/", param_1995
+    find_lex $P1996, "$/"
+    find_lex $P1997, "$/"
+    unless_null $P1997, vivify_598
+    $P1997 = root_new ['parrot';'Hash']
+  vivify_598:
+    set $P1998, $P1997["statement"]
+    unless_null $P1998, vivify_599
+    new $P1998, "Undef"
+  vivify_599:
+    $P1999 = $P1998."ast"()
+    $P2000 = $P1996."!make"($P1999)
+    .return ($P2000)
+  control_1993:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2005, exception, "payload"
-    .return ($P2005)
+    getattribute $P2001, exception, "payload"
+    .return ($P2001)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<dblq>"  :subid("110_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2009
-.annotate 'line', 731
-    new $P2008, 'ExceptionHandler'
-    set_addr $P2008, control_2007
-    $P2008."handle_types"(57)
-    push_eh $P2008
+.include "except_types.pasm"
+.sub "postcircumfix:sym<[ ]>"  :subid("109_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2005
+.annotate 'line', 723
+    new $P2004, 'ExceptionHandler'
+    set_addr $P2004, control_2003
+    $P2004."handle_types"(.CONTROL_RETURN)
+    push_eh $P2004
     .lex "self", self
-    .lex "$/", param_2009
-    find_lex $P2010, "$/"
-    find_lex $P2011, "$/"
-    unless_null $P2011, vivify_591
-    $P2011 = root_new ['parrot';'Hash']
-  vivify_591:
-    set $P2012, $P2011["quote_EXPR"]
-    unless_null $P2012, vivify_592
-    new $P2012, "Undef"
-  vivify_592:
-    $P2013 = $P2012."ast"()
-    $P2014 = $P2010."!make"($P2013)
-    .return ($P2014)
-  control_2007:
+    .lex "$/", param_2005
+.annotate 'line', 724
+    find_lex $P2006, "$/"
+    get_hll_global $P2007, ["PAST"], "Var"
+    find_lex $P2008, "$/"
+    unless_null $P2008, vivify_600
+    $P2008 = root_new ['parrot';'Hash']
+  vivify_600:
+    set $P2009, $P2008["EXPR"]
+    unless_null $P2009, vivify_601
+    new $P2009, "Undef"
+  vivify_601:
+    $P2010 = $P2009."ast"()
+.annotate 'line', 726
+    $P2011 = "vivitype"("@")
+    $P2012 = $P2007."new"($P2010, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P2011 :named("vivibase"))
+.annotate 'line', 724
+    $P2013 = $P2006."!make"($P2012)
+.annotate 'line', 723
+    .return ($P2013)
+  control_2003:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2015, exception, "payload"
-    .return ($P2015)
+    getattribute $P2014, exception, "payload"
+    .return ($P2014)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<qq>"  :subid("111_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2019
-.annotate 'line', 732
-    new $P2018, 'ExceptionHandler'
-    set_addr $P2018, control_2017
-    $P2018."handle_types"(57)
-    push_eh $P2018
+.include "except_types.pasm"
+.sub "postcircumfix:sym<{ }>"  :subid("110_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2018
+.annotate 'line', 729
+    new $P2017, 'ExceptionHandler'
+    set_addr $P2017, control_2016
+    $P2017."handle_types"(.CONTROL_RETURN)
+    push_eh $P2017
     .lex "self", self
-    .lex "$/", param_2019
-    find_lex $P2020, "$/"
+    .lex "$/", param_2018
+.annotate 'line', 730
+    find_lex $P2019, "$/"
+    get_hll_global $P2020, ["PAST"], "Var"
     find_lex $P2021, "$/"
-    unless_null $P2021, vivify_593
+    unless_null $P2021, vivify_602
     $P2021 = root_new ['parrot';'Hash']
-  vivify_593:
-    set $P2022, $P2021["quote_EXPR"]
-    unless_null $P2022, vivify_594
+  vivify_602:
+    set $P2022, $P2021["EXPR"]
+    unless_null $P2022, vivify_603
     new $P2022, "Undef"
-  vivify_594:
+  vivify_603:
     $P2023 = $P2022."ast"()
-    $P2024 = $P2020."!make"($P2023)
-    .return ($P2024)
-  control_2017:
+.annotate 'line', 732
+    $P2024 = "vivitype"("%")
+    $P2025 = $P2020."new"($P2023, "keyed" :named("scope"), "Undef" :named("viviself"), $P2024 :named("vivibase"))
+.annotate 'line', 730
+    $P2026 = $P2019."!make"($P2025)
+.annotate 'line', 729
+    .return ($P2026)
+  control_2016:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2025, exception, "payload"
-    .return ($P2025)
+    getattribute $P2027, exception, "payload"
+    .return ($P2027)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<q>"  :subid("112_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2029
-.annotate 'line', 733
-    new $P2028, 'ExceptionHandler'
-    set_addr $P2028, control_2027
-    $P2028."handle_types"(57)
-    push_eh $P2028
+.include "except_types.pasm"
+.sub "postcircumfix:sym<ang>"  :subid("111_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2031
+.annotate 'line', 735
+    new $P2030, 'ExceptionHandler'
+    set_addr $P2030, control_2029
+    $P2030."handle_types"(.CONTROL_RETURN)
+    push_eh $P2030
     .lex "self", self
-    .lex "$/", param_2029
-    find_lex $P2030, "$/"
-    find_lex $P2031, "$/"
-    unless_null $P2031, vivify_595
-    $P2031 = root_new ['parrot';'Hash']
-  vivify_595:
-    set $P2032, $P2031["quote_EXPR"]
-    unless_null $P2032, vivify_596
-    new $P2032, "Undef"
-  vivify_596:
-    $P2033 = $P2032."ast"()
-    $P2034 = $P2030."!make"($P2033)
-    .return ($P2034)
-  control_2027:
+    .lex "$/", param_2031
+.annotate 'line', 736
+    find_lex $P2032, "$/"
+    get_hll_global $P2033, ["PAST"], "Var"
+    find_lex $P2034, "$/"
+    unless_null $P2034, vivify_604
+    $P2034 = root_new ['parrot';'Hash']
+  vivify_604:
+    set $P2035, $P2034["quote_EXPR"]
+    unless_null $P2035, vivify_605
+    new $P2035, "Undef"
+  vivify_605:
+    $P2036 = $P2035."ast"()
+.annotate 'line', 738
+    $P2037 = "vivitype"("%")
+    $P2038 = $P2033."new"($P2036, "keyed" :named("scope"), "Undef" :named("viviself"), $P2037 :named("vivibase"))
+.annotate 'line', 736
+    $P2039 = $P2032."!make"($P2038)
+.annotate 'line', 735
+    .return ($P2039)
+  control_2029:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2035, exception, "payload"
-    .return ($P2035)
+    getattribute $P2040, exception, "payload"
+    .return ($P2040)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<Q>"  :subid("113_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2039
-.annotate 'line', 734
-    new $P2038, 'ExceptionHandler'
-    set_addr $P2038, control_2037
-    $P2038."handle_types"(57)
-    push_eh $P2038
+.include "except_types.pasm"
+.sub "postcircumfix:sym<( )>"  :subid("112_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2044
+.annotate 'line', 741
+    new $P2043, 'ExceptionHandler'
+    set_addr $P2043, control_2042
+    $P2043."handle_types"(.CONTROL_RETURN)
+    push_eh $P2043
     .lex "self", self
-    .lex "$/", param_2039
-    find_lex $P2040, "$/"
-    find_lex $P2041, "$/"
-    unless_null $P2041, vivify_597
-    $P2041 = root_new ['parrot';'Hash']
-  vivify_597:
-    set $P2042, $P2041["quote_EXPR"]
-    unless_null $P2042, vivify_598
-    new $P2042, "Undef"
-  vivify_598:
-    $P2043 = $P2042."ast"()
-    $P2044 = $P2040."!make"($P2043)
-    .return ($P2044)
-  control_2037:
+    .lex "$/", param_2044
+.annotate 'line', 742
+    find_lex $P2045, "$/"
+    find_lex $P2046, "$/"
+    unless_null $P2046, vivify_606
+    $P2046 = root_new ['parrot';'Hash']
+  vivify_606:
+    set $P2047, $P2046["arglist"]
+    unless_null $P2047, vivify_607
+    new $P2047, "Undef"
+  vivify_607:
+    $P2048 = $P2047."ast"()
+    $P2049 = $P2045."!make"($P2048)
+.annotate 'line', 741
+    .return ($P2049)
+  control_2042:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2045, exception, "payload"
-    .return ($P2045)
+    getattribute $P2050, exception, "payload"
+    .return ($P2050)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<Q:PIR>"  :subid("114_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2049
-.annotate 'line', 735
-    new $P2048, 'ExceptionHandler'
-    set_addr $P2048, control_2047
-    $P2048."handle_types"(57)
-    push_eh $P2048
+.include "except_types.pasm"
+.sub "value"  :subid("113_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2054
+.annotate 'line', 745
+    new $P2053, 'ExceptionHandler'
+    set_addr $P2053, control_2052
+    $P2053."handle_types"(.CONTROL_RETURN)
+    push_eh $P2053
     .lex "self", self
-    .lex "$/", param_2049
-.annotate 'line', 736
-    find_lex $P2050, "$/"
-    get_hll_global $P2051, ["PAST"], "Op"
-    find_lex $P2052, "$/"
-    unless_null $P2052, vivify_599
-    $P2052 = root_new ['parrot';'Hash']
-  vivify_599:
-    set $P2053, $P2052["quote_EXPR"]
-    unless_null $P2053, vivify_600
-    new $P2053, "Undef"
-  vivify_600:
-    $P2054 = $P2053."ast"()
-    $P2055 = $P2054."value"()
-    find_lex $P2056, "$/"
-    $P2057 = $P2051."new"($P2055 :named("inline"), "inline" :named("pasttype"), $P2056 :named("node"))
-    $P2058 = $P2050."!make"($P2057)
-.annotate 'line', 735
-    .return ($P2058)
-  control_2047:
+    .lex "$/", param_2054
+.annotate 'line', 746
+    find_lex $P2055, "$/"
+    find_lex $P2058, "$/"
+    unless_null $P2058, vivify_608
+    $P2058 = root_new ['parrot';'Hash']
+  vivify_608:
+    set $P2059, $P2058["quote"]
+    unless_null $P2059, vivify_609
+    new $P2059, "Undef"
+  vivify_609:
+    if $P2059, if_2057
+    find_lex $P2063, "$/"
+    unless_null $P2063, vivify_610
+    $P2063 = root_new ['parrot';'Hash']
+  vivify_610:
+    set $P2064, $P2063["number"]
+    unless_null $P2064, vivify_611
+    new $P2064, "Undef"
+  vivify_611:
+    $P2065 = $P2064."ast"()
+    set $P2056, $P2065
+    goto if_2057_end
+  if_2057:
+    find_lex $P2060, "$/"
+    unless_null $P2060, vivify_612
+    $P2060 = root_new ['parrot';'Hash']
+  vivify_612:
+    set $P2061, $P2060["quote"]
+    unless_null $P2061, vivify_613
+    new $P2061, "Undef"
+  vivify_613:
+    $P2062 = $P2061."ast"()
+    set $P2056, $P2062
+  if_2057_end:
+    $P2066 = $P2055."!make"($P2056)
+.annotate 'line', 745
+    .return ($P2066)
+  control_2052:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2059, exception, "payload"
-    .return ($P2059)
+    getattribute $P2067, exception, "payload"
+    .return ($P2067)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym</ />"  :subid("115_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2063
-    .param pmc param_2064 :optional
-    .param int has_param_2064 :opt_flag
-.annotate 'line', 741
-    new $P2062, 'ExceptionHandler'
-    set_addr $P2062, control_2061
-    $P2062."handle_types"(57)
-    push_eh $P2062
-    .lex "self", self
-    .lex "$/", param_2063
-    if has_param_2064, optparam_601
-    new $P2065, "Undef"
-    set param_2064, $P2065
-  optparam_601:
-    .lex "$key", param_2064
-.annotate 'line', 751
-    new $P2066, "Undef"
-    .lex "$regex", $P2066
-.annotate 'line', 753
-    new $P2067, "Undef"
-    .lex "$past", $P2067
-.annotate 'line', 742
-    find_lex $P2069, "$key"
-    set $S2070, $P2069
-    iseq $I2071, $S2070, "open"
-    unless $I2071, if_2068_end
-.annotate 'line', 743
-
-            null $P0
-            set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-        
-.annotate 'line', 747
-    get_global $P2072, "@BLOCK"
-    unless_null $P2072, vivify_602
-    $P2072 = root_new ['parrot';'ResizablePMCArray']
-  vivify_602:
-    set $P2073, $P2072[0]
-    unless_null $P2073, vivify_603
-    new $P2073, "Undef"
-  vivify_603:
-    $P2073."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-.annotate 'line', 748
-    get_global $P2074, "@BLOCK"
-    unless_null $P2074, vivify_604
-    $P2074 = root_new ['parrot';'ResizablePMCArray']
-  vivify_604:
-    set $P2075, $P2074[0]
-    unless_null $P2075, vivify_605
-    new $P2075, "Undef"
-  vivify_605:
-    $P2075."symbol"("$/", "lexical" :named("scope"))
+.include "except_types.pasm"
+.sub "number"  :subid("114_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2071
 .annotate 'line', 749
-    new $P2076, "Exception"
-    set $P2076['type'], 57
-    new $P2077, "Integer"
-    assign $P2077, 0
-    setattribute $P2076, 'payload', $P2077
-    throw $P2076
-  if_2068_end:
+    new $P2070, 'ExceptionHandler'
+    set_addr $P2070, control_2069
+    $P2070."handle_types"(.CONTROL_RETURN)
+    push_eh $P2070
+    .lex "self", self
+    .lex "$/", param_2071
+.annotate 'line', 750
+    new $P2072, "Undef"
+    .lex "$value", $P2072
+    find_lex $P2075, "$/"
+    unless_null $P2075, vivify_614
+    $P2075 = root_new ['parrot';'Hash']
+  vivify_614:
+    set $P2076, $P2075["dec_number"]
+    unless_null $P2076, vivify_615
+    new $P2076, "Undef"
+  vivify_615:
+    if $P2076, if_2074
+    find_lex $P2080, "$/"
+    unless_null $P2080, vivify_616
+    $P2080 = root_new ['parrot';'Hash']
+  vivify_616:
+    set $P2081, $P2080["integer"]
+    unless_null $P2081, vivify_617
+    new $P2081, "Undef"
+  vivify_617:
+    $P2082 = $P2081."ast"()
+    set $P2073, $P2082
+    goto if_2074_end
+  if_2074:
+    find_lex $P2077, "$/"
+    unless_null $P2077, vivify_618
+    $P2077 = root_new ['parrot';'Hash']
+  vivify_618:
+    set $P2078, $P2077["dec_number"]
+    unless_null $P2078, vivify_619
+    new $P2078, "Undef"
+  vivify_619:
+    $P2079 = $P2078."ast"()
+    set $P2073, $P2079
+  if_2074_end:
+    store_lex "$value", $P2073
+.annotate 'line', 751
+    find_lex $P2084, "$/"
+    unless_null $P2084, vivify_620
+    $P2084 = root_new ['parrot';'Hash']
+  vivify_620:
+    set $P2085, $P2084["sign"]
+    unless_null $P2085, vivify_621
+    new $P2085, "Undef"
+  vivify_621:
+    set $S2086, $P2085
+    iseq $I2087, $S2086, "-"
+    unless $I2087, if_2083_end
+    find_lex $P2088, "$value"
+    neg $P2089, $P2088
+    store_lex "$value", $P2089
+  if_2083_end:
 .annotate 'line', 752
-    get_hll_global $P2078, ["Regex";"P6Regex";"Actions"], "buildsub"
-    find_lex $P2079, "$/"
-    unless_null $P2079, vivify_606
-    $P2079 = root_new ['parrot';'Hash']
-  vivify_606:
-    set $P2080, $P2079["p6regex"]
-    unless_null $P2080, vivify_607
-    new $P2080, "Undef"
-  vivify_607:
-    $P2081 = $P2080."ast"()
-    get_global $P2082, "@BLOCK"
-    $P2083 = $P2082."shift"()
-    $P2084 = $P2078($P2081, $P2083)
-    store_lex "$regex", $P2084
-.annotate 'line', 754
-    get_hll_global $P2085, ["PAST"], "Op"
-.annotate 'line', 756
-    get_hll_global $P2086, ["PAST"], "Var"
-    new $P2087, "ResizablePMCArray"
-    push $P2087, "Regex"
-    $P2088 = $P2086."new"("Regex" :named("name"), $P2087 :named("namespace"), "package" :named("scope"))
-    find_lex $P2089, "$regex"
-    $P2090 = $P2085."new"($P2088, $P2089, "callmethod" :named("pasttype"), "new" :named("name"))
-.annotate 'line', 754
-    store_lex "$past", $P2090
-.annotate 'line', 760
-    find_lex $P2091, "$regex"
-    find_lex $P2092, "$past"
-    unless_null $P2092, vivify_608
-    $P2092 = root_new ['parrot';'Hash']
-    store_lex "$past", $P2092
-  vivify_608:
-    set $P2092["sink"], $P2091
-.annotate 'line', 761
-    find_lex $P2093, "$/"
-    find_lex $P2094, "$past"
-    $P2095 = $P2093."!make"($P2094)
-.annotate 'line', 741
-    .return ($P2095)
-  control_2061:
+    find_lex $P2090, "$/"
+    get_hll_global $P2091, ["PAST"], "Val"
+    find_lex $P2092, "$value"
+    $P2093 = $P2091."new"($P2092 :named("value"))
+    $P2094 = $P2090."!make"($P2093)
+.annotate 'line', 749
+    .return ($P2094)
+  control_2069:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2096, exception, "payload"
-    .return ($P2096)
+    getattribute $P2095, exception, "payload"
+    .return ($P2095)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<$>"  :subid("116_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2100
-.annotate 'line', 764
-    new $P2099, 'ExceptionHandler'
-    set_addr $P2099, control_2098
-    $P2099."handle_types"(57)
-    push_eh $P2099
+.include "except_types.pasm"
+.sub "quote:sym<apos>"  :subid("115_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2099
+.annotate 'line', 755
+    new $P2098, 'ExceptionHandler'
+    set_addr $P2098, control_2097
+    $P2098."handle_types"(.CONTROL_RETURN)
+    push_eh $P2098
     .lex "self", self
-    .lex "$/", param_2100
+    .lex "$/", param_2099
+    find_lex $P2100, "$/"
     find_lex $P2101, "$/"
-    find_lex $P2102, "$/"
-    unless_null $P2102, vivify_609
-    $P2102 = root_new ['parrot';'Hash']
-  vivify_609:
-    set $P2103, $P2102["variable"]
-    unless_null $P2103, vivify_610
-    new $P2103, "Undef"
-  vivify_610:
-    $P2104 = $P2103."ast"()
-    $P2105 = $P2101."!make"($P2104)
-    .return ($P2105)
-  control_2098:
+    unless_null $P2101, vivify_622
+    $P2101 = root_new ['parrot';'Hash']
+  vivify_622:
+    set $P2102, $P2101["quote_EXPR"]
+    unless_null $P2102, vivify_623
+    new $P2102, "Undef"
+  vivify_623:
+    $P2103 = $P2102."ast"()
+    $P2104 = $P2100."!make"($P2103)
+    .return ($P2104)
+  control_2097:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2106, exception, "payload"
-    .return ($P2106)
+    getattribute $P2105, exception, "payload"
+    .return ($P2105)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<{ }>"  :subid("117_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2110
-.annotate 'line', 765
-    new $P2109, 'ExceptionHandler'
-    set_addr $P2109, control_2108
-    $P2109."handle_types"(57)
-    push_eh $P2109
+.include "except_types.pasm"
+.sub "quote:sym<dblq>"  :subid("116_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2109
+.annotate 'line', 756
+    new $P2108, 'ExceptionHandler'
+    set_addr $P2108, control_2107
+    $P2108."handle_types"(.CONTROL_RETURN)
+    push_eh $P2108
     .lex "self", self
-    .lex "$/", param_2110
-.annotate 'line', 766
+    .lex "$/", param_2109
+    find_lex $P2110, "$/"
     find_lex $P2111, "$/"
-    get_hll_global $P2112, ["PAST"], "Op"
-.annotate 'line', 767
-    find_lex $P2113, "$/"
-    unless_null $P2113, vivify_611
-    $P2113 = root_new ['parrot';'Hash']
-  vivify_611:
-    set $P2114, $P2113["block"]
-    unless_null $P2114, vivify_612
-    new $P2114, "Undef"
-  vivify_612:
-    $P2115 = $P2114."ast"()
-    $P2116 = "block_immediate"($P2115)
-    find_lex $P2117, "$/"
-    $P2118 = $P2112."new"($P2116, "set S*" :named("pirop"), $P2117 :named("node"))
-.annotate 'line', 766
-    $P2119 = $P2111."!make"($P2118)
-.annotate 'line', 765
-    .return ($P2119)
-  control_2108:
+    unless_null $P2111, vivify_624
+    $P2111 = root_new ['parrot';'Hash']
+  vivify_624:
+    set $P2112, $P2111["quote_EXPR"]
+    unless_null $P2112, vivify_625
+    new $P2112, "Undef"
+  vivify_625:
+    $P2113 = $P2112."ast"()
+    $P2114 = $P2110."!make"($P2113)
+    .return ($P2114)
+  control_2107:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2120, exception, "payload"
-    .return ($P2120)
+    getattribute $P2115, exception, "payload"
+    .return ($P2115)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<esc>"  :subid("118_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2124
-.annotate 'line', 770
-    new $P2123, 'ExceptionHandler'
-    set_addr $P2123, control_2122
-    $P2123."handle_types"(57)
-    push_eh $P2123
+.include "except_types.pasm"
+.sub "quote:sym<qq>"  :subid("117_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2119
+.annotate 'line', 757
+    new $P2118, 'ExceptionHandler'
+    set_addr $P2118, control_2117
+    $P2118."handle_types"(.CONTROL_RETURN)
+    push_eh $P2118
     .lex "self", self
-    .lex "$/", param_2124
-    find_lex $P2125, "$/"
-    $P2126 = $P2125."!make"("\e")
-    .return ($P2126)
-  control_2122:
+    .lex "$/", param_2119
+    find_lex $P2120, "$/"
+    find_lex $P2121, "$/"
+    unless_null $P2121, vivify_626
+    $P2121 = root_new ['parrot';'Hash']
+  vivify_626:
+    set $P2122, $P2121["quote_EXPR"]
+    unless_null $P2122, vivify_627
+    new $P2122, "Undef"
+  vivify_627:
+    $P2123 = $P2122."ast"()
+    $P2124 = $P2120."!make"($P2123)
+    .return ($P2124)
+  control_2117:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2127, exception, "payload"
-    .return ($P2127)
+    getattribute $P2125, exception, "payload"
+    .return ($P2125)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<.>"  :subid("119_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2131
-.annotate 'line', 774
-    new $P2130, 'ExceptionHandler'
-    set_addr $P2130, control_2129
-    $P2130."handle_types"(57)
-    push_eh $P2130
-    .lex "self", self
-    .lex "$/", param_2131
-    find_lex $P2132, "$/"
-    find_lex $P2133, "$/"
-    unless_null $P2133, vivify_613
-    $P2133 = root_new ['parrot';'Hash']
-  vivify_613:
-    set $P2134, $P2133["dotty"]
-    unless_null $P2134, vivify_614
-    new $P2134, "Undef"
-  vivify_614:
-    $P2135 = $P2134."ast"()
-    $P2136 = $P2132."!make"($P2135)
-    .return ($P2136)
-  control_2129:
+.include "except_types.pasm"
+.sub "quote:sym<q>"  :subid("118_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2129
+.annotate 'line', 758
+    new $P2128, 'ExceptionHandler'
+    set_addr $P2128, control_2127
+    $P2128."handle_types"(.CONTROL_RETURN)
+    push_eh $P2128
+    .lex "self", self
+    .lex "$/", param_2129
+    find_lex $P2130, "$/"
+    find_lex $P2131, "$/"
+    unless_null $P2131, vivify_628
+    $P2131 = root_new ['parrot';'Hash']
+  vivify_628:
+    set $P2132, $P2131["quote_EXPR"]
+    unless_null $P2132, vivify_629
+    new $P2132, "Undef"
+  vivify_629:
+    $P2133 = $P2132."ast"()
+    $P2134 = $P2130."!make"($P2133)
+    .return ($P2134)
+  control_2127:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2137, exception, "payload"
-    .return ($P2137)
+    getattribute $P2135, exception, "payload"
+    .return ($P2135)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<++>"  :subid("120_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2141
-.annotate 'line', 776
-    new $P2140, 'ExceptionHandler'
-    set_addr $P2140, control_2139
-    $P2140."handle_types"(57)
-    push_eh $P2140
+.include "except_types.pasm"
+.sub "quote:sym<Q>"  :subid("119_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2139
+.annotate 'line', 759
+    new $P2138, 'ExceptionHandler'
+    set_addr $P2138, control_2137
+    $P2138."handle_types"(.CONTROL_RETURN)
+    push_eh $P2138
     .lex "self", self
-    .lex "$/", param_2141
-.annotate 'line', 777
-    find_lex $P2142, "$/"
-    get_hll_global $P2143, ["PAST"], "Op"
-.annotate 'line', 778
-    new $P2144, "ResizablePMCArray"
-    push $P2144, "    clone %r, %0"
-    push $P2144, "    inc %0"
-    $P2145 = $P2143."new"("postfix:<++>" :named("name"), $P2144 :named("inline"), "inline" :named("pasttype"))
-.annotate 'line', 777
-    $P2146 = $P2142."!make"($P2145)
-.annotate 'line', 776
-    .return ($P2146)
-  control_2139:
+    .lex "$/", param_2139
+    find_lex $P2140, "$/"
+    find_lex $P2141, "$/"
+    unless_null $P2141, vivify_630
+    $P2141 = root_new ['parrot';'Hash']
+  vivify_630:
+    set $P2142, $P2141["quote_EXPR"]
+    unless_null $P2142, vivify_631
+    new $P2142, "Undef"
+  vivify_631:
+    $P2143 = $P2142."ast"()
+    $P2144 = $P2140."!make"($P2143)
+    .return ($P2144)
+  control_2137:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2147, exception, "payload"
-    .return ($P2147)
+    getattribute $P2145, exception, "payload"
+    .return ($P2145)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<-->"  :subid("121_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2151
-.annotate 'line', 782
-    new $P2150, 'ExceptionHandler'
-    set_addr $P2150, control_2149
-    $P2150."handle_types"(57)
-    push_eh $P2150
+.include "except_types.pasm"
+.sub "quote:sym<Q:PIR>"  :subid("120_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2149
+.annotate 'line', 760
+    new $P2148, 'ExceptionHandler'
+    set_addr $P2148, control_2147
+    $P2148."handle_types"(.CONTROL_RETURN)
+    push_eh $P2148
     .lex "self", self
-    .lex "$/", param_2151
-.annotate 'line', 783
+    .lex "$/", param_2149
+.annotate 'line', 761
+    find_lex $P2150, "$/"
+    get_hll_global $P2151, ["PAST"], "Op"
     find_lex $P2152, "$/"
-    get_hll_global $P2153, ["PAST"], "Op"
-.annotate 'line', 784
-    new $P2154, "ResizablePMCArray"
-    push $P2154, "    clone %r, %0"
-    push $P2154, "    dec %0"
-    $P2155 = $P2153."new"("postfix:<-->" :named("name"), $P2154 :named("inline"), "inline" :named("pasttype"))
-.annotate 'line', 783
-    $P2156 = $P2152."!make"($P2155)
-.annotate 'line', 782
-    .return ($P2156)
-  control_2149:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P2157, exception, "payload"
-    .return ($P2157)
+    unless_null $P2152, vivify_632
+    $P2152 = root_new ['parrot';'Hash']
+  vivify_632:
+    set $P2153, $P2152["quote_EXPR"]
+    unless_null $P2153, vivify_633
+    new $P2153, "Undef"
+  vivify_633:
+    $P2154 = $P2153."ast"()
+    $P2155 = $P2154."value"()
+    find_lex $P2156, "$/"
+    $P2157 = $P2151."new"($P2155 :named("inline"), "inline" :named("pasttype"), $P2156 :named("node"))
+    $P2158 = $P2150."!make"($P2157)
+.annotate 'line', 760
+    .return ($P2158)
+  control_2147:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2159, exception, "payload"
+    .return ($P2159)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "prefix:sym<make>"  :subid("122_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2161
-.annotate 'line', 788
-    new $P2160, 'ExceptionHandler'
-    set_addr $P2160, control_2159
-    $P2160."handle_types"(57)
-    push_eh $P2160
-    .lex "self", self
-    .lex "$/", param_2161
+.include "except_types.pasm"
+.sub "quote:sym</ />"  :subid("121_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2163
+    .param pmc param_2164 :optional
+    .param int has_param_2164 :opt_flag
+.annotate 'line', 766
+    new $P2162, 'ExceptionHandler'
+    set_addr $P2162, control_2161
+    $P2162."handle_types"(.CONTROL_RETURN)
+    push_eh $P2162
+    .lex "self", self
+    .lex "$/", param_2163
+    if has_param_2164, optparam_634
+    new $P2165, "Undef"
+    set param_2164, $P2165
+  optparam_634:
+    .lex "$key", param_2164
+.annotate 'line', 776
+    new $P2166, "Undef"
+    .lex "$regex", $P2166
+.annotate 'line', 778
+    new $P2167, "Undef"
+    .lex "$past", $P2167
+.annotate 'line', 767
+    find_lex $P2169, "$key"
+    set $S2170, $P2169
+    iseq $I2171, $S2170, "open"
+    unless $I2171, if_2168_end
+.annotate 'line', 768
+
+            null $P0
+            set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
+        
+.annotate 'line', 772
+    get_global $P2172, "@BLOCK"
+    unless_null $P2172, vivify_635
+    $P2172 = root_new ['parrot';'ResizablePMCArray']
+  vivify_635:
+    set $P2173, $P2172[0]
+    unless_null $P2173, vivify_636
+    new $P2173, "Undef"
+  vivify_636:
+    $P2173."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate 'line', 773
+    get_global $P2174, "@BLOCK"
+    unless_null $P2174, vivify_637
+    $P2174 = root_new ['parrot';'ResizablePMCArray']
+  vivify_637:
+    set $P2175, $P2174[0]
+    unless_null $P2175, vivify_638
+    new $P2175, "Undef"
+  vivify_638:
+    $P2175."symbol"("$/", "lexical" :named("scope"))
+.annotate 'line', 774
+    new $P2176, "Exception"
+    set $P2176['type'], .CONTROL_RETURN
+    new $P2177, "Integer"
+    assign $P2177, 0
+    setattribute $P2176, 'payload', $P2177
+    throw $P2176
+  if_2168_end:
+.annotate 'line', 777
+    get_hll_global $P2178, ["Regex";"P6Regex";"Actions"], "buildsub"
+    find_lex $P2179, "$/"
+    unless_null $P2179, vivify_639
+    $P2179 = root_new ['parrot';'Hash']
+  vivify_639:
+    set $P2180, $P2179["p6regex"]
+    unless_null $P2180, vivify_640
+    new $P2180, "Undef"
+  vivify_640:
+    $P2181 = $P2180."ast"()
+    get_global $P2182, "@BLOCK"
+    $P2183 = $P2182."shift"()
+    $P2184 = $P2178($P2181, $P2183)
+    store_lex "$regex", $P2184
+.annotate 'line', 779
+    get_hll_global $P2185, ["PAST"], "Op"
+.annotate 'line', 781
+    get_hll_global $P2186, ["PAST"], "Var"
+    new $P2187, "ResizablePMCArray"
+    push $P2187, "Regex"
+    $P2188 = $P2186."new"("Regex" :named("name"), $P2187 :named("namespace"), "package" :named("scope"))
+    find_lex $P2189, "$regex"
+    $P2190 = $P2185."new"($P2188, $P2189, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate 'line', 779
+    store_lex "$past", $P2190
+.annotate 'line', 785
+    find_lex $P2191, "$regex"
+    find_lex $P2192, "$past"
+    unless_null $P2192, vivify_641
+    $P2192 = root_new ['parrot';'Hash']
+    store_lex "$past", $P2192
+  vivify_641:
+    set $P2192["sink"], $P2191
+.annotate 'line', 786
+    find_lex $P2193, "$/"
+    find_lex $P2194, "$past"
+    $P2195 = $P2193."!make"($P2194)
+.annotate 'line', 766
+    .return ($P2195)
+  control_2161:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2196, exception, "payload"
+    .return ($P2196)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<$>"  :subid("122_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2200
 .annotate 'line', 789
-    find_lex $P2162, "$/"
-    get_hll_global $P2163, ["PAST"], "Op"
+    new $P2199, 'ExceptionHandler'
+    set_addr $P2199, control_2198
+    $P2199."handle_types"(.CONTROL_RETURN)
+    push_eh $P2199
+    .lex "self", self
+    .lex "$/", param_2200
+    find_lex $P2201, "$/"
+    find_lex $P2202, "$/"
+    unless_null $P2202, vivify_642
+    $P2202 = root_new ['parrot';'Hash']
+  vivify_642:
+    set $P2203, $P2202["variable"]
+    unless_null $P2203, vivify_643
+    new $P2203, "Undef"
+  vivify_643:
+    $P2204 = $P2203."ast"()
+    $P2205 = $P2201."!make"($P2204)
+    .return ($P2205)
+  control_2198:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2206, exception, "payload"
+    .return ($P2206)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<{ }>"  :subid("123_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2210
 .annotate 'line', 790
-    get_hll_global $P2164, ["PAST"], "Var"
-    $P2165 = $P2164."new"("$/" :named("name"), "contextual" :named("scope"))
-    find_lex $P2166, "$/"
-    $P2167 = $P2163."new"($P2165, "callmethod" :named("pasttype"), "!make" :named("name"), $P2166 :named("node"))
-.annotate 'line', 789
-    $P2168 = $P2162."!make"($P2167)
-.annotate 'line', 788
-    .return ($P2168)
-  control_2159:
+    new $P2209, 'ExceptionHandler'
+    set_addr $P2209, control_2208
+    $P2209."handle_types"(.CONTROL_RETURN)
+    push_eh $P2209
+    .lex "self", self
+    .lex "$/", param_2210
+.annotate 'line', 791
+    find_lex $P2211, "$/"
+    get_hll_global $P2212, ["PAST"], "Op"
+.annotate 'line', 792
+    find_lex $P2213, "$/"
+    unless_null $P2213, vivify_644
+    $P2213 = root_new ['parrot';'Hash']
+  vivify_644:
+    set $P2214, $P2213["block"]
+    unless_null $P2214, vivify_645
+    new $P2214, "Undef"
+  vivify_645:
+    $P2215 = $P2214."ast"()
+    $P2216 = "block_immediate"($P2215)
+    find_lex $P2217, "$/"
+    $P2218 = $P2212."new"($P2216, "set S*" :named("pirop"), $P2217 :named("node"))
+.annotate 'line', 791
+    $P2219 = $P2211."!make"($P2218)
+.annotate 'line', 790
+    .return ($P2219)
+  control_2208:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2220, exception, "payload"
+    .return ($P2220)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<esc>"  :subid("124_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2224
+.annotate 'line', 795
+    new $P2223, 'ExceptionHandler'
+    set_addr $P2223, control_2222
+    $P2223."handle_types"(.CONTROL_RETURN)
+    push_eh $P2223
+    .lex "self", self
+    .lex "$/", param_2224
+    find_lex $P2225, "$/"
+    $P2226 = $P2225."!make"("\e")
+    .return ($P2226)
+  control_2222:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2227, exception, "payload"
+    .return ($P2227)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "postfix:sym<.>"  :subid("125_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2231
+.annotate 'line', 799
+    new $P2230, 'ExceptionHandler'
+    set_addr $P2230, control_2229
+    $P2230."handle_types"(.CONTROL_RETURN)
+    push_eh $P2230
+    .lex "self", self
+    .lex "$/", param_2231
+    find_lex $P2232, "$/"
+    find_lex $P2233, "$/"
+    unless_null $P2233, vivify_646
+    $P2233 = root_new ['parrot';'Hash']
+  vivify_646:
+    set $P2234, $P2233["dotty"]
+    unless_null $P2234, vivify_647
+    new $P2234, "Undef"
+  vivify_647:
+    $P2235 = $P2234."ast"()
+    $P2236 = $P2232."!make"($P2235)
+    .return ($P2236)
+  control_2229:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2237, exception, "payload"
+    .return ($P2237)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "postfix:sym<++>"  :subid("126_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2241
+.annotate 'line', 801
+    new $P2240, 'ExceptionHandler'
+    set_addr $P2240, control_2239
+    $P2240."handle_types"(.CONTROL_RETURN)
+    push_eh $P2240
+    .lex "self", self
+    .lex "$/", param_2241
+.annotate 'line', 802
+    find_lex $P2242, "$/"
+    get_hll_global $P2243, ["PAST"], "Op"
+.annotate 'line', 803
+    new $P2244, "ResizablePMCArray"
+    push $P2244, "    clone %r, %0"
+    push $P2244, "    inc %0"
+    $P2245 = $P2243."new"("postfix:<++>" :named("name"), $P2244 :named("inline"), "inline" :named("pasttype"))
+.annotate 'line', 802
+    $P2246 = $P2242."!make"($P2245)
+.annotate 'line', 801
+    .return ($P2246)
+  control_2239:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2247, exception, "payload"
+    .return ($P2247)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "postfix:sym<-->"  :subid("127_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2251
+.annotate 'line', 807
+    new $P2250, 'ExceptionHandler'
+    set_addr $P2250, control_2249
+    $P2250."handle_types"(.CONTROL_RETURN)
+    push_eh $P2250
+    .lex "self", self
+    .lex "$/", param_2251
+.annotate 'line', 808
+    find_lex $P2252, "$/"
+    get_hll_global $P2253, ["PAST"], "Op"
+.annotate 'line', 809
+    new $P2254, "ResizablePMCArray"
+    push $P2254, "    clone %r, %0"
+    push $P2254, "    dec %0"
+    $P2255 = $P2253."new"("postfix:<-->" :named("name"), $P2254 :named("inline"), "inline" :named("pasttype"))
+.annotate 'line', 808
+    $P2256 = $P2252."!make"($P2255)
+.annotate 'line', 807
+    .return ($P2256)
+  control_2249:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2169, exception, "payload"
-    .return ($P2169)
+    getattribute $P2257, exception, "payload"
+    .return ($P2257)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<next>"  :subid("123_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2174
-.annotate 'line', 810
-    new $P2173, 'ExceptionHandler'
-    set_addr $P2173, control_2172
-    $P2173."handle_types"(57)
-    push_eh $P2173
+.include "except_types.pasm"
+.sub "prefix:sym<make>"  :subid("128_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2261
+.annotate 'line', 813
+    new $P2260, 'ExceptionHandler'
+    set_addr $P2260, control_2259
+    $P2260."handle_types"(.CONTROL_RETURN)
+    push_eh $P2260
     .lex "self", self
-    .lex "$/", param_2174
-    find_lex $P2175, "$/"
-    $P2176 = "control"($P2175, ".CONTROL_LOOP_NEXT")
-    .return ($P2176)
-  control_2172:
+    .lex "$/", param_2261
+.annotate 'line', 814
+    find_lex $P2262, "$/"
+    get_hll_global $P2263, ["PAST"], "Op"
+.annotate 'line', 815
+    get_hll_global $P2264, ["PAST"], "Var"
+    $P2265 = $P2264."new"("$/" :named("name"), "contextual" :named("scope"))
+    find_lex $P2266, "$/"
+    $P2267 = $P2263."new"($P2265, "callmethod" :named("pasttype"), "!make" :named("name"), $P2266 :named("node"))
+.annotate 'line', 814
+    $P2268 = $P2262."!make"($P2267)
+.annotate 'line', 813
+    .return ($P2268)
+  control_2259:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2177, exception, "payload"
-    .return ($P2177)
+    getattribute $P2269, exception, "payload"
+    .return ($P2269)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<last>"  :subid("124_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2181
-.annotate 'line', 811
-    new $P2180, 'ExceptionHandler'
-    set_addr $P2180, control_2179
-    $P2180."handle_types"(57)
-    push_eh $P2180
+.include "except_types.pasm"
+.sub "term:sym<next>"  :subid("129_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2274
+.annotate 'line', 831
+    new $P2273, 'ExceptionHandler'
+    set_addr $P2273, control_2272
+    $P2273."handle_types"(.CONTROL_RETURN)
+    push_eh $P2273
     .lex "self", self
-    .lex "$/", param_2181
-    find_lex $P2182, "$/"
-    $P2183 = "control"($P2182, ".CONTROL_LOOP_LAST")
-    .return ($P2183)
-  control_2179:
+    .lex "$/", param_2274
+    find_lex $P2275, "$/"
+    $P2276 = "control"($P2275, "CONTROL_LOOP_NEXT")
+    .return ($P2276)
+  control_2272:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2184, exception, "payload"
-    .return ($P2184)
+    getattribute $P2277, exception, "payload"
+    .return ($P2277)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<redo>"  :subid("125_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2188
-.annotate 'line', 812
-    new $P2187, 'ExceptionHandler'
-    set_addr $P2187, control_2186
-    $P2187."handle_types"(57)
-    push_eh $P2187
+.include "except_types.pasm"
+.sub "term:sym<last>"  :subid("130_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2281
+.annotate 'line', 832
+    new $P2280, 'ExceptionHandler'
+    set_addr $P2280, control_2279
+    $P2280."handle_types"(.CONTROL_RETURN)
+    push_eh $P2280
     .lex "self", self
-    .lex "$/", param_2188
-    find_lex $P2189, "$/"
-    $P2190 = "control"($P2189, ".CONTROL_LOOP_REDO")
-    .return ($P2190)
-  control_2186:
+    .lex "$/", param_2281
+    find_lex $P2282, "$/"
+    $P2283 = "control"($P2282, "CONTROL_LOOP_LAST")
+    .return ($P2283)
+  control_2279:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2191, exception, "payload"
-    .return ($P2191)
+    getattribute $P2284, exception, "payload"
+    .return ($P2284)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "infix:sym<~~>"  :subid("126_1274853047.92727") :method :outer("11_1274853047.92727")
-    .param pmc param_2195
-.annotate 'line', 814
-    new $P2194, 'ExceptionHandler'
-    set_addr $P2194, control_2193
-    $P2194."handle_types"(57)
-    push_eh $P2194
+.include "except_types.pasm"
+.sub "term:sym<redo>"  :subid("131_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2288
+.annotate 'line', 833
+    new $P2287, 'ExceptionHandler'
+    set_addr $P2287, control_2286
+    $P2287."handle_types"(.CONTROL_RETURN)
+    push_eh $P2287
     .lex "self", self
-    .lex "$/", param_2195
-.annotate 'line', 815
-    find_lex $P2196, "$/"
-    get_hll_global $P2197, ["PAST"], "Op"
-    find_lex $P2198, "$/"
-    $P2199 = $P2197."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2198 :named("node"))
-    $P2200 = $P2196."!make"($P2199)
-.annotate 'line', 814
-    .return ($P2200)
-  control_2193:
+    .lex "$/", param_2288
+    find_lex $P2289, "$/"
+    $P2290 = "control"($P2289, "CONTROL_LOOP_REDO")
+    .return ($P2290)
+  control_2286:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2291, exception, "payload"
+    .return ($P2291)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "infix:sym<~~>"  :subid("132_1275811497.55064") :method :outer("11_1275811497.55064")
+    .param pmc param_2295
+.annotate 'line', 835
+    new $P2294, 'ExceptionHandler'
+    set_addr $P2294, control_2293
+    $P2294."handle_types"(.CONTROL_RETURN)
+    push_eh $P2294
+    .lex "self", self
+    .lex "$/", param_2295
+.annotate 'line', 836
+    find_lex $P2296, "$/"
+    get_hll_global $P2297, ["PAST"], "Op"
+    find_lex $P2298, "$/"
+    $P2299 = $P2297."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2298 :named("node"))
+    $P2300 = $P2296."!make"($P2299)
+.annotate 'line', 835
+    .return ($P2300)
+  control_2293:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2201, exception, "payload"
-    .return ($P2201)
+    getattribute $P2301, exception, "payload"
+    .return ($P2301)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "_block2202"  :subid("127_1274853047.92727") :outer("11_1274853047.92727")
-.annotate 'line', 819
-    .const 'Sub' $P2287 = "134_1274853047.92727" 
-    capture_lex $P2287
-    .const 'Sub' $P2274 = "133_1274853047.92727" 
-    capture_lex $P2274
-    .const 'Sub' $P2257 = "132_1274853047.92727" 
-    capture_lex $P2257
-    .const 'Sub' $P2244 = "131_1274853047.92727" 
-    capture_lex $P2244
-    .const 'Sub' $P2231 = "130_1274853047.92727" 
-    capture_lex $P2231
-    .const 'Sub' $P2218 = "129_1274853047.92727" 
-    capture_lex $P2218
-    .const 'Sub' $P2204 = "128_1274853047.92727" 
-    capture_lex $P2204
-.annotate 'line', 852
-    .const 'Sub' $P2287 = "134_1274853047.92727" 
-    newclosure $P2312, $P2287
-.annotate 'line', 819
-    .return ($P2312)
+.sub "_block2302"  :subid("133_1275811497.55064") :outer("11_1275811497.55064")
+.annotate 'line', 840
+    .const 'Sub' $P2388 = "140_1275811497.55064" 
+    capture_lex $P2388
+    .const 'Sub' $P2375 = "139_1275811497.55064" 
+    capture_lex $P2375
+    .const 'Sub' $P2358 = "138_1275811497.55064" 
+    capture_lex $P2358
+    .const 'Sub' $P2345 = "137_1275811497.55064" 
+    capture_lex $P2345
+    .const 'Sub' $P2332 = "136_1275811497.55064" 
+    capture_lex $P2332
+    .const 'Sub' $P2319 = "135_1275811497.55064" 
+    capture_lex $P2319
+    .const 'Sub' $P2304 = "134_1275811497.55064" 
+    capture_lex $P2304
+.annotate 'line', 874
+    .const 'Sub' $P2388 = "140_1275811497.55064" 
+    newclosure $P2413, $P2388
+.annotate 'line', 840
+    .return ($P2413)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<:my>"  :subid("128_1274853047.92727") :method :outer("127_1274853047.92727")
-    .param pmc param_2207
-.annotate 'line', 821
-    new $P2206, 'ExceptionHandler'
-    set_addr $P2206, control_2205
-    $P2206."handle_types"(57)
-    push_eh $P2206
+.include "except_types.pasm"
+.sub "metachar:sym<:my>"  :subid("134_1275811497.55064") :method :outer("133_1275811497.55064")
+    .param pmc param_2307
+.annotate 'line', 842
+    new $P2306, 'ExceptionHandler'
+    set_addr $P2306, control_2305
+    $P2306."handle_types"(.CONTROL_RETURN)
+    push_eh $P2306
     .lex "self", self
-    .lex "$/", param_2207
-.annotate 'line', 822
-    new $P2208, "Undef"
-    .lex "$past", $P2208
-    find_lex $P2209, "$/"
-    unless_null $P2209, vivify_615
-    $P2209 = root_new ['parrot';'Hash']
-  vivify_615:
-    set $P2210, $P2209["statement"]
-    unless_null $P2210, vivify_616
-    new $P2210, "Undef"
-  vivify_616:
-    $P2211 = $P2210."ast"()
-    store_lex "$past", $P2211
-.annotate 'line', 823
-    find_lex $P2212, "$/"
-    get_hll_global $P2213, ["PAST"], "Regex"
-    find_lex $P2214, "$past"
-    $P2215 = $P2213."new"($P2214, "pastnode" :named("pasttype"))
-    $P2216 = $P2212."!make"($P2215)
-.annotate 'line', 821
-    .return ($P2216)
-  control_2205:
+    .lex "$/", param_2307
+.annotate 'line', 843
+    new $P2308, "Undef"
+    .lex "$past", $P2308
+    find_lex $P2309, "$/"
+    unless_null $P2309, vivify_648
+    $P2309 = root_new ['parrot';'Hash']
+  vivify_648:
+    set $P2310, $P2309["statement"]
+    unless_null $P2310, vivify_649
+    new $P2310, "Undef"
+  vivify_649:
+    $P2311 = $P2310."ast"()
+    store_lex "$past", $P2311
+.annotate 'line', 844
+    find_lex $P2312, "$/"
+    get_hll_global $P2313, ["PAST"], "Regex"
+    find_lex $P2314, "$past"
+    find_lex $P2315, "$/"
+    $P2316 = $P2313."new"($P2314, "pastnode" :named("pasttype"), "declarative" :named("subtype"), $P2315 :named("node"))
+    $P2317 = $P2312."!make"($P2316)
+.annotate 'line', 842
+    .return ($P2317)
+  control_2305:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2217, exception, "payload"
-    .return ($P2217)
+    getattribute $P2318, exception, "payload"
+    .return ($P2318)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<{ }>"  :subid("129_1274853047.92727") :method :outer("127_1274853047.92727")
-    .param pmc param_2221
-.annotate 'line', 826
-    new $P2220, 'ExceptionHandler'
-    set_addr $P2220, control_2219
-    $P2220."handle_types"(57)
-    push_eh $P2220
-    .lex "self", self
-    .lex "$/", param_2221
-.annotate 'line', 827
-    find_lex $P2222, "$/"
-    get_hll_global $P2223, ["PAST"], "Regex"
-    find_lex $P2224, "$/"
-    unless_null $P2224, vivify_617
-    $P2224 = root_new ['parrot';'Hash']
-  vivify_617:
-    set $P2225, $P2224["codeblock"]
-    unless_null $P2225, vivify_618
-    new $P2225, "Undef"
-  vivify_618:
-    $P2226 = $P2225."ast"()
-    find_lex $P2227, "$/"
-    $P2228 = $P2223."new"($P2226, "pastnode" :named("pasttype"), $P2227 :named("node"))
-    $P2229 = $P2222."!make"($P2228)
-.annotate 'line', 826
-    .return ($P2229)
-  control_2219:
+.include "except_types.pasm"
+.sub "metachar:sym<{ }>"  :subid("135_1275811497.55064") :method :outer("133_1275811497.55064")
+    .param pmc param_2322
+.annotate 'line', 848
+    new $P2321, 'ExceptionHandler'
+    set_addr $P2321, control_2320
+    $P2321."handle_types"(.CONTROL_RETURN)
+    push_eh $P2321
+    .lex "self", self
+    .lex "$/", param_2322
+.annotate 'line', 849
+    find_lex $P2323, "$/"
+    get_hll_global $P2324, ["PAST"], "Regex"
+    find_lex $P2325, "$/"
+    unless_null $P2325, vivify_650
+    $P2325 = root_new ['parrot';'Hash']
+  vivify_650:
+    set $P2326, $P2325["codeblock"]
+    unless_null $P2326, vivify_651
+    new $P2326, "Undef"
+  vivify_651:
+    $P2327 = $P2326."ast"()
+    find_lex $P2328, "$/"
+    $P2329 = $P2324."new"($P2327, "pastnode" :named("pasttype"), $P2328 :named("node"))
+    $P2330 = $P2323."!make"($P2329)
+.annotate 'line', 848
+    .return ($P2330)
+  control_2320:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2230, exception, "payload"
-    .return ($P2230)
+    getattribute $P2331, exception, "payload"
+    .return ($P2331)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<nqpvar>"  :subid("130_1274853047.92727") :method :outer("127_1274853047.92727")
-    .param pmc param_2234
-.annotate 'line', 831
-    new $P2233, 'ExceptionHandler'
-    set_addr $P2233, control_2232
-    $P2233."handle_types"(57)
-    push_eh $P2233
+.include "except_types.pasm"
+.sub "metachar:sym<nqpvar>"  :subid("136_1275811497.55064") :method :outer("133_1275811497.55064")
+    .param pmc param_2335
+.annotate 'line', 853
+    new $P2334, 'ExceptionHandler'
+    set_addr $P2334, control_2333
+    $P2334."handle_types"(.CONTROL_RETURN)
+    push_eh $P2334
     .lex "self", self
-    .lex "$/", param_2234
-.annotate 'line', 832
-    find_lex $P2235, "$/"
-    get_hll_global $P2236, ["PAST"], "Regex"
-    find_lex $P2237, "$/"
-    unless_null $P2237, vivify_619
-    $P2237 = root_new ['parrot';'Hash']
-  vivify_619:
-    set $P2238, $P2237["var"]
-    unless_null $P2238, vivify_620
-    new $P2238, "Undef"
-  vivify_620:
-    $P2239 = $P2238."ast"()
-    find_lex $P2240, "$/"
-    $P2241 = $P2236."new"("!INTERPOLATE", $P2239, "subrule" :named("pasttype"), "method" :named("subtype"), $P2240 :named("node"))
-    $P2242 = $P2235."!make"($P2241)
-.annotate 'line', 831
-    .return ($P2242)
-  control_2232:
+    .lex "$/", param_2335
+.annotate 'line', 854
+    find_lex $P2336, "$/"
+    get_hll_global $P2337, ["PAST"], "Regex"
+    find_lex $P2338, "$/"
+    unless_null $P2338, vivify_652
+    $P2338 = root_new ['parrot';'Hash']
+  vivify_652:
+    set $P2339, $P2338["var"]
+    unless_null $P2339, vivify_653
+    new $P2339, "Undef"
+  vivify_653:
+    $P2340 = $P2339."ast"()
+    find_lex $P2341, "$/"
+    $P2342 = $P2337."new"("!INTERPOLATE", $P2340, "subrule" :named("pasttype"), "method" :named("subtype"), $P2341 :named("node"))
+    $P2343 = $P2336."!make"($P2342)
+.annotate 'line', 853
+    .return ($P2343)
+  control_2333:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2243, exception, "payload"
-    .return ($P2243)
+    getattribute $P2344, exception, "payload"
+    .return ($P2344)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "assertion:sym<{ }>"  :subid("131_1274853047.92727") :method :outer("127_1274853047.92727")
-    .param pmc param_2247
-.annotate 'line', 836
-    new $P2246, 'ExceptionHandler'
-    set_addr $P2246, control_2245
-    $P2246."handle_types"(57)
-    push_eh $P2246
-    .lex "self", self
-    .lex "$/", param_2247
-.annotate 'line', 837
-    find_lex $P2248, "$/"
-    get_hll_global $P2249, ["PAST"], "Regex"
-    find_lex $P2250, "$/"
-    unless_null $P2250, vivify_621
-    $P2250 = root_new ['parrot';'Hash']
-  vivify_621:
-    set $P2251, $P2250["codeblock"]
-    unless_null $P2251, vivify_622
-    new $P2251, "Undef"
-  vivify_622:
-    $P2252 = $P2251."ast"()
-    find_lex $P2253, "$/"
-    $P2254 = $P2249."new"("!INTERPOLATE_REGEX", $P2252, "subrule" :named("pasttype"), "method" :named("subtype"), $P2253 :named("node"))
-    $P2255 = $P2248."!make"($P2254)
-.annotate 'line', 836
-    .return ($P2255)
-  control_2245:
+.include "except_types.pasm"
+.sub "assertion:sym<{ }>"  :subid("137_1275811497.55064") :method :outer("133_1275811497.55064")
+    .param pmc param_2348
+.annotate 'line', 858
+    new $P2347, 'ExceptionHandler'
+    set_addr $P2347, control_2346
+    $P2347."handle_types"(.CONTROL_RETURN)
+    push_eh $P2347
+    .lex "self", self
+    .lex "$/", param_2348
+.annotate 'line', 859
+    find_lex $P2349, "$/"
+    get_hll_global $P2350, ["PAST"], "Regex"
+    find_lex $P2351, "$/"
+    unless_null $P2351, vivify_654
+    $P2351 = root_new ['parrot';'Hash']
+  vivify_654:
+    set $P2352, $P2351["codeblock"]
+    unless_null $P2352, vivify_655
+    new $P2352, "Undef"
+  vivify_655:
+    $P2353 = $P2352."ast"()
+    find_lex $P2354, "$/"
+    $P2355 = $P2350."new"("!INTERPOLATE_REGEX", $P2353, "subrule" :named("pasttype"), "method" :named("subtype"), $P2354 :named("node"))
+    $P2356 = $P2349."!make"($P2355)
+.annotate 'line', 858
+    .return ($P2356)
+  control_2346:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2256, exception, "payload"
-    .return ($P2256)
+    getattribute $P2357, exception, "payload"
+    .return ($P2357)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "assertion:sym<?{ }>"  :subid("132_1274853047.92727") :method :outer("127_1274853047.92727")
-    .param pmc param_2260
-.annotate 'line', 841
-    new $P2259, 'ExceptionHandler'
-    set_addr $P2259, control_2258
-    $P2259."handle_types"(57)
-    push_eh $P2259
-    .lex "self", self
-    .lex "$/", param_2260
-.annotate 'line', 842
-    find_lex $P2261, "$/"
-    get_hll_global $P2262, ["PAST"], "Regex"
-    find_lex $P2263, "$/"
-    unless_null $P2263, vivify_623
-    $P2263 = root_new ['parrot';'Hash']
-  vivify_623:
-    set $P2264, $P2263["codeblock"]
-    unless_null $P2264, vivify_624
-    new $P2264, "Undef"
-  vivify_624:
-    $P2265 = $P2264."ast"()
-.annotate 'line', 843
-    find_lex $P2266, "$/"
-    unless_null $P2266, vivify_625
-    $P2266 = root_new ['parrot';'Hash']
-  vivify_625:
-    set $P2267, $P2266["zw"]
-    unless_null $P2267, vivify_626
-    new $P2267, "Undef"
-  vivify_626:
-    set $S2268, $P2267
-    iseq $I2269, $S2268, "!"
-    find_lex $P2270, "$/"
-    $P2271 = $P2262."new"($P2265, "zerowidth" :named("subtype"), $I2269 :named("negate"), "pastnode" :named("pasttype"), $P2270 :named("node"))
-.annotate 'line', 842
-    $P2272 = $P2261."!make"($P2271)
-.annotate 'line', 841
-    .return ($P2272)
-  control_2258:
+.include "except_types.pasm"
+.sub "assertion:sym<?{ }>"  :subid("138_1275811497.55064") :method :outer("133_1275811497.55064")
+    .param pmc param_2361
+.annotate 'line', 863
+    new $P2360, 'ExceptionHandler'
+    set_addr $P2360, control_2359
+    $P2360."handle_types"(.CONTROL_RETURN)
+    push_eh $P2360
+    .lex "self", self
+    .lex "$/", param_2361
+.annotate 'line', 864
+    find_lex $P2362, "$/"
+    get_hll_global $P2363, ["PAST"], "Regex"
+    find_lex $P2364, "$/"
+    unless_null $P2364, vivify_656
+    $P2364 = root_new ['parrot';'Hash']
+  vivify_656:
+    set $P2365, $P2364["codeblock"]
+    unless_null $P2365, vivify_657
+    new $P2365, "Undef"
+  vivify_657:
+    $P2366 = $P2365."ast"()
+.annotate 'line', 865
+    find_lex $P2367, "$/"
+    unless_null $P2367, vivify_658
+    $P2367 = root_new ['parrot';'Hash']
+  vivify_658:
+    set $P2368, $P2367["zw"]
+    unless_null $P2368, vivify_659
+    new $P2368, "Undef"
+  vivify_659:
+    set $S2369, $P2368
+    iseq $I2370, $S2369, "!"
+    find_lex $P2371, "$/"
+    $P2372 = $P2363."new"($P2366, "zerowidth" :named("subtype"), $I2370 :named("negate"), "pastnode" :named("pasttype"), $P2371 :named("node"))
+.annotate 'line', 864
+    $P2373 = $P2362."!make"($P2372)
+.annotate 'line', 863
+    .return ($P2373)
+  control_2359:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2273, exception, "payload"
-    .return ($P2273)
+    getattribute $P2374, exception, "payload"
+    .return ($P2374)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "assertion:sym<var>"  :subid("133_1274853047.92727") :method :outer("127_1274853047.92727")
-    .param pmc param_2277
-.annotate 'line', 847
-    new $P2276, 'ExceptionHandler'
-    set_addr $P2276, control_2275
-    $P2276."handle_types"(57)
-    push_eh $P2276
-    .lex "self", self
-    .lex "$/", param_2277
-.annotate 'line', 848
-    find_lex $P2278, "$/"
-    get_hll_global $P2279, ["PAST"], "Regex"
-    find_lex $P2280, "$/"
-    unless_null $P2280, vivify_627
-    $P2280 = root_new ['parrot';'Hash']
-  vivify_627:
-    set $P2281, $P2280["var"]
-    unless_null $P2281, vivify_628
-    new $P2281, "Undef"
-  vivify_628:
-    $P2282 = $P2281."ast"()
-    find_lex $P2283, "$/"
-    $P2284 = $P2279."new"("!INTERPOLATE_REGEX", $P2282, "subrule" :named("pasttype"), "method" :named("subtype"), $P2283 :named("node"))
-    $P2285 = $P2278."!make"($P2284)
-.annotate 'line', 847
-    .return ($P2285)
-  control_2275:
+.include "except_types.pasm"
+.sub "assertion:sym<var>"  :subid("139_1275811497.55064") :method :outer("133_1275811497.55064")
+    .param pmc param_2378
+.annotate 'line', 869
+    new $P2377, 'ExceptionHandler'
+    set_addr $P2377, control_2376
+    $P2377."handle_types"(.CONTROL_RETURN)
+    push_eh $P2377
+    .lex "self", self
+    .lex "$/", param_2378
+.annotate 'line', 870
+    find_lex $P2379, "$/"
+    get_hll_global $P2380, ["PAST"], "Regex"
+    find_lex $P2381, "$/"
+    unless_null $P2381, vivify_660
+    $P2381 = root_new ['parrot';'Hash']
+  vivify_660:
+    set $P2382, $P2381["var"]
+    unless_null $P2382, vivify_661
+    new $P2382, "Undef"
+  vivify_661:
+    $P2383 = $P2382."ast"()
+    find_lex $P2384, "$/"
+    $P2385 = $P2380."new"("!INTERPOLATE_REGEX", $P2383, "subrule" :named("pasttype"), "method" :named("subtype"), $P2384 :named("node"))
+    $P2386 = $P2379."!make"($P2385)
+.annotate 'line', 869
+    .return ($P2386)
+  control_2376:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2286, exception, "payload"
-    .return ($P2286)
+    getattribute $P2387, exception, "payload"
+    .return ($P2387)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "codeblock"  :subid("134_1274853047.92727") :method :outer("127_1274853047.92727")
-    .param pmc param_2290
-.annotate 'line', 852
-    new $P2289, 'ExceptionHandler'
-    set_addr $P2289, control_2288
-    $P2289."handle_types"(57)
-    push_eh $P2289
-    .lex "self", self
-    .lex "$/", param_2290
-.annotate 'line', 853
-    new $P2291, "Undef"
-    .lex "$block", $P2291
-.annotate 'line', 855
-    new $P2292, "Undef"
-    .lex "$past", $P2292
-.annotate 'line', 853
-    find_lex $P2293, "$/"
-    unless_null $P2293, vivify_629
-    $P2293 = root_new ['parrot';'Hash']
-  vivify_629:
-    set $P2294, $P2293["block"]
-    unless_null $P2294, vivify_630
-    new $P2294, "Undef"
-  vivify_630:
-    $P2295 = $P2294."ast"()
-    store_lex "$block", $P2295
-.annotate 'line', 854
-    find_lex $P2296, "$block"
-    $P2296."blocktype"("immediate")
-.annotate 'line', 856
-    get_hll_global $P2297, ["PAST"], "Stmts"
-.annotate 'line', 857
-    get_hll_global $P2298, ["PAST"], "Op"
-.annotate 'line', 858
-    get_hll_global $P2299, ["PAST"], "Var"
-    $P2300 = $P2299."new"("$/" :named("name"))
-.annotate 'line', 859
-    get_hll_global $P2301, ["PAST"], "Op"
-.annotate 'line', 860
-    get_hll_global $P2302, ["PAST"], "Var"
-    $P2303 = $P2302."new"(unicode:"$\x{a2}" :named("name"))
-    $P2304 = $P2301."new"($P2303, "MATCH" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 859
-    $P2305 = $P2298."new"($P2300, $P2304, "bind" :named("pasttype"))
-.annotate 'line', 857
-    find_lex $P2306, "$block"
-    $P2307 = $P2297."new"($P2305, $P2306)
-.annotate 'line', 856
-    store_lex "$past", $P2307
-.annotate 'line', 868
-    find_lex $P2308, "$/"
-    find_lex $P2309, "$past"
-    $P2310 = $P2308."!make"($P2309)
-.annotate 'line', 852
-    .return ($P2310)
-  control_2288:
+.include "except_types.pasm"
+.sub "codeblock"  :subid("140_1275811497.55064") :method :outer("133_1275811497.55064")
+    .param pmc param_2391
+.annotate 'line', 874
+    new $P2390, 'ExceptionHandler'
+    set_addr $P2390, control_2389
+    $P2390."handle_types"(.CONTROL_RETURN)
+    push_eh $P2390
+    .lex "self", self
+    .lex "$/", param_2391
+.annotate 'line', 875
+    new $P2392, "Undef"
+    .lex "$block", $P2392
+.annotate 'line', 877
+    new $P2393, "Undef"
+    .lex "$past", $P2393
+.annotate 'line', 875
+    find_lex $P2394, "$/"
+    unless_null $P2394, vivify_662
+    $P2394 = root_new ['parrot';'Hash']
+  vivify_662:
+    set $P2395, $P2394["block"]
+    unless_null $P2395, vivify_663
+    new $P2395, "Undef"
+  vivify_663:
+    $P2396 = $P2395."ast"()
+    store_lex "$block", $P2396
+.annotate 'line', 876
+    find_lex $P2397, "$block"
+    $P2397."blocktype"("immediate")
+.annotate 'line', 878
+    get_hll_global $P2398, ["PAST"], "Stmts"
+.annotate 'line', 879
+    get_hll_global $P2399, ["PAST"], "Op"
+.annotate 'line', 880
+    get_hll_global $P2400, ["PAST"], "Var"
+    $P2401 = $P2400."new"("$/" :named("name"))
+.annotate 'line', 881
+    get_hll_global $P2402, ["PAST"], "Op"
+.annotate 'line', 882
+    get_hll_global $P2403, ["PAST"], "Var"
+    $P2404 = $P2403."new"(unicode:"$\x{a2}" :named("name"))
+    $P2405 = $P2402."new"($P2404, "MATCH" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 881
+    $P2406 = $P2399."new"($P2401, $P2405, "bind" :named("pasttype"))
+.annotate 'line', 879
+    find_lex $P2407, "$block"
+    $P2408 = $P2398."new"($P2406, $P2407)
+.annotate 'line', 878
+    store_lex "$past", $P2408
+.annotate 'line', 890
+    find_lex $P2409, "$/"
+    find_lex $P2410, "$past"
+    $P2411 = $P2409."!make"($P2410)
+.annotate 'line', 874
+    .return ($P2411)
+  control_2389:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2311, exception, "payload"
-    .return ($P2311)
+    getattribute $P2412, exception, "payload"
+    .return ($P2412)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2314" :load :anon :subid("135_1274853047.92727")
+.sub "_block2415" :load :anon :subid("141_1275811497.55064")
 .annotate 'line', 3
-    .const 'Sub' $P2316 = "11_1274853047.92727" 
-    $P2317 = $P2316()
-    .return ($P2317)
+    .const 'Sub' $P2417 = "11_1275811497.55064" 
+    $P2418 = $P2417()
+    .return ($P2418)
 .end
 
 
 .namespace []
-.sub "_block2324" :load :anon :subid("137_1274853047.92727")
+.sub "_block2425" :load :anon :subid("143_1275811497.55064")
 .annotate 'line', 1
-    .const 'Sub' $P2326 = "10_1274853047.92727" 
-    $P2327 = $P2326()
-    .return ($P2327)
+    .const 'Sub' $P2427 = "10_1275811497.55064" 
+    $P2428 = $P2427()
+    .return ($P2428)
 .end
 
 ### .include 'src/cheats/nqp-builtins.pir'

Modified: branches/gsoc_nfg/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/gsoc_nfg/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -16,7 +16,7 @@
 ### .include 'gen/p6regex-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274853027.61936")
+.sub "_block11"  :anon :subid("10_1275811476.7961")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
@@ -30,151 +30,151 @@
 .annotate 'line', 3
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
-    $P583 = $P14()
+    $P588 = $P14()
 .annotate 'line', 1
-    .return ($P583)
-    .const 'Sub' $P585 = "159_1274853027.61936" 
-    .return ($P585)
+    .return ($P588)
+    .const 'Sub' $P590 = "159_1275811476.7961" 
+    .return ($P590)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post160") :outer("10_1274853027.61936")
+.sub "" :load :init :subid("post160") :outer("10_1275811476.7961")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274853027.61936" 
+    .const 'Sub' $P12 = "10_1275811476.7961" 
     .local pmc block
     set block, $P12
-    $P588 = get_root_global ["parrot"], "P6metaclass"
-    $P588."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
+    $P593 = get_root_global ["parrot"], "P6metaclass"
+    $P593."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13"  :subid("11_1274853027.61936") :outer("10_1274853027.61936")
+.sub "_block13"  :subid("11_1275811476.7961") :outer("10_1275811476.7961")
 .annotate 'line', 3
-    .const 'Sub' $P571 = "156_1274853027.61936" 
-    capture_lex $P571
-    .const 'Sub' $P563 = "154_1274853027.61936" 
-    capture_lex $P563
-    .const 'Sub' $P555 = "152_1274853027.61936" 
-    capture_lex $P555
-    .const 'Sub' $P534 = "147_1274853027.61936" 
-    capture_lex $P534
-    .const 'Sub' $P499 = "141_1274853027.61936" 
-    capture_lex $P499
-    .const 'Sub' $P487 = "138_1274853027.61936" 
-    capture_lex $P487
-    .const 'Sub' $P474 = "135_1274853027.61936" 
-    capture_lex $P474
-    .const 'Sub' $P468 = "133_1274853027.61936" 
-    capture_lex $P468
-    .const 'Sub' $P457 = "130_1274853027.61936" 
-    capture_lex $P457
-    .const 'Sub' $P446 = "127_1274853027.61936" 
-    capture_lex $P446
-    .const 'Sub' $P437 = "123_1274853027.61936" 
-    capture_lex $P437
-    .const 'Sub' $P431 = "121_1274853027.61936" 
-    capture_lex $P431
-    .const 'Sub' $P425 = "119_1274853027.61936" 
-    capture_lex $P425
-    .const 'Sub' $P419 = "117_1274853027.61936" 
-    capture_lex $P419
-    .const 'Sub' $P413 = "115_1274853027.61936" 
-    capture_lex $P413
-    .const 'Sub' $P405 = "113_1274853027.61936" 
-    capture_lex $P405
-    .const 'Sub' $P394 = "111_1274853027.61936" 
-    capture_lex $P394
-    .const 'Sub' $P383 = "109_1274853027.61936" 
-    capture_lex $P383
-    .const 'Sub' $P377 = "107_1274853027.61936" 
-    capture_lex $P377
-    .const 'Sub' $P371 = "105_1274853027.61936" 
-    capture_lex $P371
-    .const 'Sub' $P365 = "103_1274853027.61936" 
-    capture_lex $P365
-    .const 'Sub' $P359 = "101_1274853027.61936" 
-    capture_lex $P359
-    .const 'Sub' $P353 = "99_1274853027.61936" 
-    capture_lex $P353
-    .const 'Sub' $P347 = "97_1274853027.61936" 
-    capture_lex $P347
-    .const 'Sub' $P341 = "95_1274853027.61936" 
-    capture_lex $P341
-    .const 'Sub' $P335 = "93_1274853027.61936" 
-    capture_lex $P335
-    .const 'Sub' $P323 = "89_1274853027.61936" 
-    capture_lex $P323
-    .const 'Sub' $P311 = "87_1274853027.61936" 
-    capture_lex $P311
-    .const 'Sub' $P304 = "85_1274853027.61936" 
-    capture_lex $P304
-    .const 'Sub' $P287 = "83_1274853027.61936" 
-    capture_lex $P287
-    .const 'Sub' $P280 = "81_1274853027.61936" 
-    capture_lex $P280
-    .const 'Sub' $P274 = "79_1274853027.61936" 
-    capture_lex $P274
-    .const 'Sub' $P268 = "77_1274853027.61936" 
-    capture_lex $P268
-    .const 'Sub' $P261 = "75_1274853027.61936" 
-    capture_lex $P261
-    .const 'Sub' $P254 = "73_1274853027.61936" 
-    capture_lex $P254
-    .const 'Sub' $P247 = "71_1274853027.61936" 
-    capture_lex $P247
-    .const 'Sub' $P240 = "69_1274853027.61936" 
-    capture_lex $P240
-    .const 'Sub' $P234 = "67_1274853027.61936" 
-    capture_lex $P234
-    .const 'Sub' $P228 = "65_1274853027.61936" 
-    capture_lex $P228
-    .const 'Sub' $P222 = "63_1274853027.61936" 
-    capture_lex $P222
-    .const 'Sub' $P216 = "61_1274853027.61936" 
-    capture_lex $P216
-    .const 'Sub' $P210 = "59_1274853027.61936" 
+    .const 'Sub' $P576 = "156_1275811476.7961" 
+    capture_lex $P576
+    .const 'Sub' $P568 = "154_1275811476.7961" 
+    capture_lex $P568
+    .const 'Sub' $P560 = "152_1275811476.7961" 
+    capture_lex $P560
+    .const 'Sub' $P539 = "147_1275811476.7961" 
+    capture_lex $P539
+    .const 'Sub' $P504 = "141_1275811476.7961" 
+    capture_lex $P504
+    .const 'Sub' $P492 = "138_1275811476.7961" 
+    capture_lex $P492
+    .const 'Sub' $P479 = "135_1275811476.7961" 
+    capture_lex $P479
+    .const 'Sub' $P473 = "133_1275811476.7961" 
+    capture_lex $P473
+    .const 'Sub' $P462 = "130_1275811476.7961" 
+    capture_lex $P462
+    .const 'Sub' $P451 = "127_1275811476.7961" 
+    capture_lex $P451
+    .const 'Sub' $P442 = "123_1275811476.7961" 
+    capture_lex $P442
+    .const 'Sub' $P436 = "121_1275811476.7961" 
+    capture_lex $P436
+    .const 'Sub' $P430 = "119_1275811476.7961" 
+    capture_lex $P430
+    .const 'Sub' $P424 = "117_1275811476.7961" 
+    capture_lex $P424
+    .const 'Sub' $P418 = "115_1275811476.7961" 
+    capture_lex $P418
+    .const 'Sub' $P410 = "113_1275811476.7961" 
+    capture_lex $P410
+    .const 'Sub' $P399 = "111_1275811476.7961" 
+    capture_lex $P399
+    .const 'Sub' $P388 = "109_1275811476.7961" 
+    capture_lex $P388
+    .const 'Sub' $P382 = "107_1275811476.7961" 
+    capture_lex $P382
+    .const 'Sub' $P376 = "105_1275811476.7961" 
+    capture_lex $P376
+    .const 'Sub' $P370 = "103_1275811476.7961" 
+    capture_lex $P370
+    .const 'Sub' $P364 = "101_1275811476.7961" 
+    capture_lex $P364
+    .const 'Sub' $P358 = "99_1275811476.7961" 
+    capture_lex $P358
+    .const 'Sub' $P352 = "97_1275811476.7961" 
+    capture_lex $P352
+    .const 'Sub' $P346 = "95_1275811476.7961" 
+    capture_lex $P346
+    .const 'Sub' $P340 = "93_1275811476.7961" 
+    capture_lex $P340
+    .const 'Sub' $P328 = "89_1275811476.7961" 
+    capture_lex $P328
+    .const 'Sub' $P316 = "87_1275811476.7961" 
+    capture_lex $P316
+    .const 'Sub' $P309 = "85_1275811476.7961" 
+    capture_lex $P309
+    .const 'Sub' $P292 = "83_1275811476.7961" 
+    capture_lex $P292
+    .const 'Sub' $P285 = "81_1275811476.7961" 
+    capture_lex $P285
+    .const 'Sub' $P279 = "79_1275811476.7961" 
+    capture_lex $P279
+    .const 'Sub' $P273 = "77_1275811476.7961" 
+    capture_lex $P273
+    .const 'Sub' $P266 = "75_1275811476.7961" 
+    capture_lex $P266
+    .const 'Sub' $P259 = "73_1275811476.7961" 
+    capture_lex $P259
+    .const 'Sub' $P252 = "71_1275811476.7961" 
+    capture_lex $P252
+    .const 'Sub' $P245 = "69_1275811476.7961" 
+    capture_lex $P245
+    .const 'Sub' $P239 = "67_1275811476.7961" 
+    capture_lex $P239
+    .const 'Sub' $P233 = "65_1275811476.7961" 
+    capture_lex $P233
+    .const 'Sub' $P227 = "63_1275811476.7961" 
+    capture_lex $P227
+    .const 'Sub' $P221 = "61_1275811476.7961" 
+    capture_lex $P221
+    .const 'Sub' $P215 = "59_1275811476.7961" 
+    capture_lex $P215
+    .const 'Sub' $P210 = "57_1275811476.7961" 
     capture_lex $P210
-    .const 'Sub' $P205 = "57_1274853027.61936" 
+    .const 'Sub' $P205 = "55_1275811476.7961" 
     capture_lex $P205
-    .const 'Sub' $P200 = "55_1274853027.61936" 
-    capture_lex $P200
-    .const 'Sub' $P194 = "53_1274853027.61936" 
-    capture_lex $P194
-    .const 'Sub' $P188 = "51_1274853027.61936" 
-    capture_lex $P188
-    .const 'Sub' $P182 = "49_1274853027.61936" 
-    capture_lex $P182
-    .const 'Sub' $P166 = "44_1274853027.61936" 
-    capture_lex $P166
-    .const 'Sub' $P154 = "42_1274853027.61936" 
-    capture_lex $P154
-    .const 'Sub' $P147 = "40_1274853027.61936" 
-    capture_lex $P147
-    .const 'Sub' $P140 = "38_1274853027.61936" 
-    capture_lex $P140
-    .const 'Sub' $P133 = "36_1274853027.61936" 
-    capture_lex $P133
-    .const 'Sub' $P114 = "31_1274853027.61936" 
-    capture_lex $P114
-    .const 'Sub' $P101 = "28_1274853027.61936" 
-    capture_lex $P101
-    .const 'Sub' $P94 = "26_1274853027.61936" 
-    capture_lex $P94
-    .const 'Sub' $P82 = "24_1274853027.61936" 
-    capture_lex $P82
-    .const 'Sub' $P75 = "22_1274853027.61936" 
-    capture_lex $P75
-    .const 'Sub' $P63 = "20_1274853027.61936" 
+    .const 'Sub' $P199 = "53_1275811476.7961" 
+    capture_lex $P199
+    .const 'Sub' $P193 = "51_1275811476.7961" 
+    capture_lex $P193
+    .const 'Sub' $P187 = "49_1275811476.7961" 
+    capture_lex $P187
+    .const 'Sub' $P171 = "44_1275811476.7961" 
+    capture_lex $P171
+    .const 'Sub' $P155 = "42_1275811476.7961" 
+    capture_lex $P155
+    .const 'Sub' $P148 = "40_1275811476.7961" 
+    capture_lex $P148
+    .const 'Sub' $P141 = "38_1275811476.7961" 
+    capture_lex $P141
+    .const 'Sub' $P134 = "36_1275811476.7961" 
+    capture_lex $P134
+    .const 'Sub' $P115 = "31_1275811476.7961" 
+    capture_lex $P115
+    .const 'Sub' $P102 = "28_1275811476.7961" 
+    capture_lex $P102
+    .const 'Sub' $P95 = "26_1275811476.7961" 
+    capture_lex $P95
+    .const 'Sub' $P83 = "24_1275811476.7961" 
+    capture_lex $P83
+    .const 'Sub' $P76 = "22_1275811476.7961" 
+    capture_lex $P76
+    .const 'Sub' $P63 = "20_1275811476.7961" 
     capture_lex $P63
-    .const 'Sub' $P56 = "18_1274853027.61936" 
+    .const 'Sub' $P56 = "18_1275811476.7961" 
     capture_lex $P56
-    .const 'Sub' $P46 = "15_1274853027.61936" 
+    .const 'Sub' $P46 = "15_1275811476.7961" 
     capture_lex $P46
-    .const 'Sub' $P38 = "13_1274853027.61936" 
+    .const 'Sub' $P38 = "13_1275811476.7961" 
     capture_lex $P38
-    .const 'Sub' $P15 = "12_1274853027.61936" 
+    .const 'Sub' $P15 = "12_1275811476.7961" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -182,16 +182,17 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    .const 'Sub' $P571 = "156_1274853027.61936" 
-    capture_lex $P571
-    .return ($P571)
-    .const 'Sub' $P580 = "158_1274853027.61936" 
-    .return ($P580)
+    .const 'Sub' $P576 = "156_1275811476.7961" 
+    capture_lex $P576
+    .return ($P576)
+    .const 'Sub' $P585 = "158_1275811476.7961" 
+    .return ($P585)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "obs"  :subid("12_1274853027.61936") :method :outer("11_1274853027.61936")
+.include "except_types.pasm"
+.sub "obs"  :subid("12_1275811476.7961") :method :outer("11_1275811476.7961")
     .param pmc param_18
     .param pmc param_19
     .param pmc param_20 :optional
@@ -199,7 +200,7 @@
 .annotate 'line', 3
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
-    $P17."handle_types"(57)
+    $P17."handle_types"(.CONTROL_RETURN)
     push_eh $P17
     .lex "self", self
     .lex "$old", param_18
@@ -239,7 +240,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws"  :subid("13_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "ws"  :subid("13_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
     .local string rx39_tgt
     .local int rx39_pos
@@ -253,6 +254,7 @@
     .local pmc match
     .lex "$/", match
     length rx39_eos, rx39_tgt
+    gt rx39_pos, rx39_eos, rx39_done
     set rx39_off, 0
     lt rx39_pos, 2, rx39_start
     sub rx39_off, rx39_pos, 1
@@ -321,7 +323,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws"  :subid("14_1274853027.61936") :method
+.sub "!PREFIX__ws"  :subid("14_1275811476.7961") :method
 .annotate 'line', 3
     new $P41, "ResizablePMCArray"
     push $P41, ""
@@ -330,9 +332,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace"  :subid("15_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "normspace"  :subid("15_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .const 'Sub' $P52 = "17_1274853027.61936" 
+    .const 'Sub' $P52 = "17_1275811476.7961" 
     capture_lex $P52
     .local string rx47_tgt
     .local int rx47_pos
@@ -346,6 +348,7 @@
     .local pmc match
     .lex "$/", match
     length rx47_eos, rx47_tgt
+    gt rx47_pos, rx47_eos, rx47_done
     set rx47_off, 0
     lt rx47_pos, 2, rx47_start
     sub rx47_off, rx47_pos, 1
@@ -366,7 +369,7 @@
 .annotate 'line', 10
   # rx subrule "before" subtype=zerowidth negate=
     rx47_cur."!cursor_pos"(rx47_pos)
-    .const 'Sub' $P52 = "17_1274853027.61936" 
+    .const 'Sub' $P52 = "17_1275811476.7961" 
     capture_lex $P52
     $P10 = rx47_cur."before"($P52)
     unless $P10, rx47_fail
@@ -394,7 +397,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace"  :subid("16_1274853027.61936") :method
+.sub "!PREFIX__normspace"  :subid("16_1275811476.7961") :method
 .annotate 'line', 3
     new $P49, "ResizablePMCArray"
     push $P49, ""
@@ -403,7 +406,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51"  :anon :subid("17_1274853027.61936") :method :outer("15_1274853027.61936")
+.sub "_block51"  :anon :subid("17_1275811476.7961") :method :outer("15_1275811476.7961")
 .annotate 'line', 10
     .local string rx53_tgt
     .local int rx53_pos
@@ -417,6 +420,7 @@
     .local pmc match
     .lex "$/", match
     length rx53_eos, rx53_tgt
+    gt rx53_pos, rx53_eos, rx53_done
     set rx53_off, 0
     lt rx53_pos, 2, rx53_start
     sub rx53_off, rx53_pos, 1
@@ -471,7 +475,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg"  :subid("18_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "arg"  :subid("18_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
     .local string rx57_tgt
     .local int rx57_pos
@@ -485,6 +489,7 @@
     .local pmc match
     .lex "$/", match
     length rx57_eos, rx57_tgt
+    gt rx57_pos, rx57_eos, rx57_done
     set rx57_off, 0
     lt rx57_pos, 2, rx57_start
     sub rx57_off, rx57_pos, 1
@@ -582,7 +587,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg"  :subid("19_1274853027.61936") :method
+.sub "!PREFIX__arg"  :subid("19_1275811476.7961") :method
 .annotate 'line', 3
     new $P59, "ResizablePMCArray"
     push $P59, ""
@@ -593,7 +598,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist"  :subid("20_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "arglist"  :subid("20_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
     .local string rx64_tgt
     .local int rx64_pos
@@ -608,23 +613,24 @@
     .local pmc match
     .lex "$/", match
     length rx64_eos, rx64_tgt
+    gt rx64_pos, rx64_eos, rx64_done
     set rx64_off, 0
     lt rx64_pos, 2, rx64_start
     sub rx64_off, rx64_pos, 1
     substr rx64_tgt, rx64_tgt, rx64_off
   rx64_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan67_done
-    goto rxscan67_scan
-  rxscan67_loop:
+    ne $I10, -1, rxscan68_done
+    goto rxscan68_scan
+  rxscan68_loop:
     ($P10) = rx64_cur."from"()
     inc $P10
     set rx64_pos, $P10
-    ge rx64_pos, rx64_eos, rxscan67_done
-  rxscan67_scan:
-    set_addr $I10, rxscan67_loop
+    ge rx64_pos, rx64_eos, rxscan68_done
+  rxscan68_scan:
+    set_addr $I10, rxscan68_loop
     rx64_cur."!mark_push"(0, rx64_pos, $I10)
-  rxscan67_done:
+  rxscan68_done:
 .annotate 'line', 20
   # rx subrule "ws" subtype=method negate=
     rx64_cur."!cursor_pos"(rx64_pos)
@@ -643,10 +649,10 @@
     $P10 = rx64_cur."ws"()
     unless $P10, rx64_fail
     rx64_pos = $P10."pos"()
-  # rx rxquantr70 ** 0..*
-    set_addr $I73, rxquantr70_done
-    rx64_cur."!mark_push"(0, rx64_pos, $I73)
-  rxquantr70_loop:
+  # rx rxquantr71 ** 0..*
+    set_addr $I74, rxquantr71_done
+    rx64_cur."!mark_push"(0, rx64_pos, $I74)
+  rxquantr71_loop:
   # rx subrule "ws" subtype=method negate=
     rx64_cur."!cursor_pos"(rx64_pos)
     $P10 = rx64_cur."ws"()
@@ -671,10 +677,10 @@
     rx64_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arg")
     rx64_pos = $P10."pos"()
-    (rx64_rep) = rx64_cur."!mark_commit"($I73)
-    rx64_cur."!mark_push"(rx64_rep, rx64_pos, $I73)
-    goto rxquantr70_loop
-  rxquantr70_done:
+    (rx64_rep) = rx64_cur."!mark_commit"($I74)
+    rx64_cur."!mark_push"(rx64_rep, rx64_pos, $I74)
+    goto rxquantr71_loop
+  rxquantr71_done:
   # rx subrule "ws" subtype=method negate=
     rx64_cur."!cursor_pos"(rx64_pos)
     $P10 = rx64_cur."ws"()
@@ -699,1648 +705,1610 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("21_1274853027.61936") :method
+.sub "!PREFIX__arglist"  :subid("21_1275811476.7961") :method
 .annotate 'line', 3
-    new $P66, "ResizablePMCArray"
-    push $P66, ""
-    .return ($P66)
+    $P66 = self."!PREFIX__!subrule"("ws", "")
+    new $P67, "ResizablePMCArray"
+    push $P67, $P66
+    .return ($P67)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP"  :subid("22_1274853027.61936") :method :outer("11_1274853027.61936")
-.annotate 'line', 3
-    .local string rx76_tgt
-    .local int rx76_pos
-    .local int rx76_off
-    .local int rx76_eos
-    .local int rx76_rep
-    .local pmc rx76_cur
-    (rx76_cur, rx76_pos, rx76_tgt) = self."!cursor_start"()
-    rx76_cur."!cursor_debug"("START ", "TOP")
-    .lex unicode:"$\x{a2}", rx76_cur
-    .local pmc match
-    .lex "$/", match
-    length rx76_eos, rx76_tgt
-    set rx76_off, 0
-    lt rx76_pos, 2, rx76_start
-    sub rx76_off, rx76_pos, 1
-    substr rx76_tgt, rx76_tgt, rx76_off
-  rx76_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan80_done
-    goto rxscan80_scan
-  rxscan80_loop:
-    ($P10) = rx76_cur."from"()
-    inc $P10
-    set rx76_pos, $P10
-    ge rx76_pos, rx76_eos, rxscan80_done
-  rxscan80_scan:
-    set_addr $I10, rxscan80_loop
-    rx76_cur."!mark_push"(0, rx76_pos, $I10)
-  rxscan80_done:
+.sub "TOP"  :subid("22_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+    .local string rx77_tgt
+    .local int rx77_pos
+    .local int rx77_off
+    .local int rx77_eos
+    .local int rx77_rep
+    .local pmc rx77_cur
+    (rx77_cur, rx77_pos, rx77_tgt) = self."!cursor_start"()
+    rx77_cur."!cursor_debug"("START ", "TOP")
+    .lex unicode:"$\x{a2}", rx77_cur
+    .local pmc match
+    .lex "$/", match
+    length rx77_eos, rx77_tgt
+    gt rx77_pos, rx77_eos, rx77_done
+    set rx77_off, 0
+    lt rx77_pos, 2, rx77_start
+    sub rx77_off, rx77_pos, 1
+    substr rx77_tgt, rx77_tgt, rx77_off
+  rx77_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan81_done
+    goto rxscan81_scan
+  rxscan81_loop:
+    ($P10) = rx77_cur."from"()
+    inc $P10
+    set rx77_pos, $P10
+    ge rx77_pos, rx77_eos, rxscan81_done
+  rxscan81_scan:
+    set_addr $I10, rxscan81_loop
+    rx77_cur."!mark_push"(0, rx77_pos, $I10)
+  rxscan81_done:
 .annotate 'line', 23
   # rx subrule "nibbler" subtype=capture negate=
-    rx76_cur."!cursor_pos"(rx76_pos)
-    $P10 = rx76_cur."nibbler"()
-    unless $P10, rx76_fail
-    rx76_cur."!mark_push"(0, -1, 0, $P10)
+    rx77_cur."!cursor_pos"(rx77_pos)
+    $P10 = rx77_cur."nibbler"()
+    unless $P10, rx77_fail
+    rx77_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx76_pos = $P10."pos"()
-  alt81_0:
+    rx77_pos = $P10."pos"()
+  alt82_0:
 .annotate 'line', 24
-    set_addr $I10, alt81_1
-    rx76_cur."!mark_push"(0, rx76_pos, $I10)
+    set_addr $I10, alt82_1
+    rx77_cur."!mark_push"(0, rx77_pos, $I10)
   # rxanchor eos
-    ne rx76_pos, rx76_eos, rx76_fail
-    goto alt81_end
-  alt81_1:
+    ne rx77_pos, rx77_eos, rx77_fail
+    goto alt82_end
+  alt82_1:
   # rx subrule "panic" subtype=method negate=
-    rx76_cur."!cursor_pos"(rx76_pos)
-    $P10 = rx76_cur."panic"("Confused")
-    unless $P10, rx76_fail
-    rx76_pos = $P10."pos"()
-  alt81_end:
+    rx77_cur."!cursor_pos"(rx77_pos)
+    $P10 = rx77_cur."panic"("Confused")
+    unless $P10, rx77_fail
+    rx77_pos = $P10."pos"()
+  alt82_end:
 .annotate 'line', 22
   # rx pass
-    rx76_cur."!cursor_pass"(rx76_pos, "TOP")
-    rx76_cur."!cursor_debug"("PASS  ", "TOP", " at pos=", rx76_pos)
-    .return (rx76_cur)
-  rx76_fail:
+    rx77_cur."!cursor_pass"(rx77_pos, "TOP")
+    rx77_cur."!cursor_debug"("PASS  ", "TOP", " at pos=", rx77_pos)
+    .return (rx77_cur)
+  rx77_fail:
 .annotate 'line', 3
-    (rx76_rep, rx76_pos, $I10, $P10) = rx76_cur."!mark_fail"(0)
-    lt rx76_pos, -1, rx76_done
-    eq rx76_pos, -1, rx76_fail
+    (rx77_rep, rx77_pos, $I10, $P10) = rx77_cur."!mark_fail"(0)
+    lt rx77_pos, -1, rx77_done
+    eq rx77_pos, -1, rx77_fail
     jump $I10
-  rx76_done:
-    rx76_cur."!cursor_fail"()
-    rx76_cur."!cursor_debug"("FAIL  ", "TOP")
-    .return (rx76_cur)
+  rx77_done:
+    rx77_cur."!cursor_fail"()
+    rx77_cur."!cursor_debug"("FAIL  ", "TOP")
+    .return (rx77_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP"  :subid("23_1274853027.61936") :method
+.sub "!PREFIX__TOP"  :subid("23_1275811476.7961") :method
 .annotate 'line', 3
-    $P78 = self."!PREFIX__!subrule"("nibbler", "")
-    new $P79, "ResizablePMCArray"
-    push $P79, $P78
-    .return ($P79)
+    $P79 = self."!PREFIX__!subrule"("nibbler", "")
+    new $P80, "ResizablePMCArray"
+    push $P80, $P79
+    .return ($P80)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler"  :subid("24_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "nibbler"  :subid("24_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx83_tgt
-    .local int rx83_pos
-    .local int rx83_off
-    .local int rx83_eos
-    .local int rx83_rep
-    .local pmc rx83_cur
-    (rx83_cur, rx83_pos, rx83_tgt) = self."!cursor_start"()
-    rx83_cur."!cursor_debug"("START ", "nibbler")
-    rx83_cur."!cursor_caparray"("termish")
-    .lex unicode:"$\x{a2}", rx83_cur
+    .local string rx84_tgt
+    .local int rx84_pos
+    .local int rx84_off
+    .local int rx84_eos
+    .local int rx84_rep
+    .local pmc rx84_cur
+    (rx84_cur, rx84_pos, rx84_tgt) = self."!cursor_start"()
+    rx84_cur."!cursor_debug"("START ", "nibbler")
+    rx84_cur."!cursor_caparray"("termish")
+    .lex unicode:"$\x{a2}", rx84_cur
     .local pmc match
     .lex "$/", match
-    length rx83_eos, rx83_tgt
-    set rx83_off, 0
-    lt rx83_pos, 2, rx83_start
-    sub rx83_off, rx83_pos, 1
-    substr rx83_tgt, rx83_tgt, rx83_off
-  rx83_start:
+    length rx84_eos, rx84_tgt
+    gt rx84_pos, rx84_eos, rx84_done
+    set rx84_off, 0
+    lt rx84_pos, 2, rx84_start
+    sub rx84_off, rx84_pos, 1
+    substr rx84_tgt, rx84_tgt, rx84_off
+  rx84_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan86_done
-    goto rxscan86_scan
-  rxscan86_loop:
-    ($P10) = rx83_cur."from"()
+    ne $I10, -1, rxscan87_done
+    goto rxscan87_scan
+  rxscan87_loop:
+    ($P10) = rx84_cur."from"()
     inc $P10
-    set rx83_pos, $P10
-    ge rx83_pos, rx83_eos, rxscan86_done
-  rxscan86_scan:
-    set_addr $I10, rxscan86_loop
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
-  rxscan86_done:
+    set rx84_pos, $P10
+    ge rx84_pos, rx84_eos, rxscan87_done
+  rxscan87_scan:
+    set_addr $I10, rxscan87_loop
+    rx84_cur."!mark_push"(0, rx84_pos, $I10)
+  rxscan87_done:
 .annotate 'line', 28
   # rx reduce name="nibbler" key="open"
-    rx83_cur."!cursor_pos"(rx83_pos)
-    rx83_cur."!reduce"("nibbler", "open")
+    rx84_cur."!cursor_pos"(rx84_pos)
+    rx84_cur."!reduce"("nibbler", "open")
 .annotate 'line', 29
-  # rx rxquantr87 ** 0..1
-    set_addr $I89, rxquantr87_done
-    rx83_cur."!mark_push"(0, rx83_pos, $I89)
-  rxquantr87_loop:
+  # rx rxquantr88 ** 0..1
+    set_addr $I90, rxquantr88_done
+    rx84_cur."!mark_push"(0, rx84_pos, $I90)
+  rxquantr88_loop:
   # rx subrule "ws" subtype=method negate=
-    rx83_cur."!cursor_pos"(rx83_pos)
-    $P10 = rx83_cur."ws"()
-    unless $P10, rx83_fail
-    rx83_pos = $P10."pos"()
-  alt88_0:
-    set_addr $I10, alt88_1
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
+    rx84_cur."!cursor_pos"(rx84_pos)
+    $P10 = rx84_cur."ws"()
+    unless $P10, rx84_fail
+    rx84_pos = $P10."pos"()
+  alt89_0:
+    set_addr $I10, alt89_1
+    rx84_cur."!mark_push"(0, rx84_pos, $I10)
   # rx literal  "||"
-    add $I11, rx83_pos, 2
-    gt $I11, rx83_eos, rx83_fail
-    sub $I11, rx83_pos, rx83_off
-    substr $S10, rx83_tgt, $I11, 2
-    ne $S10, "||", rx83_fail
-    add rx83_pos, 2
-    goto alt88_end
-  alt88_1:
-    set_addr $I10, alt88_2
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
+    add $I11, rx84_pos, 2
+    gt $I11, rx84_eos, rx84_fail
+    sub $I11, rx84_pos, rx84_off
+    substr $S10, rx84_tgt, $I11, 2
+    ne $S10, "||", rx84_fail
+    add rx84_pos, 2
+    goto alt89_end
+  alt89_1:
+    set_addr $I10, alt89_2
+    rx84_cur."!mark_push"(0, rx84_pos, $I10)
   # rx literal  "|"
-    add $I11, rx83_pos, 1
-    gt $I11, rx83_eos, rx83_fail
-    sub $I11, rx83_pos, rx83_off
-    substr $S10, rx83_tgt, $I11, 1
-    ne $S10, "|", rx83_fail
-    add rx83_pos, 1
-    goto alt88_end
-  alt88_2:
-    set_addr $I10, alt88_3
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
+    add $I11, rx84_pos, 1
+    gt $I11, rx84_eos, rx84_fail
+    sub $I11, rx84_pos, rx84_off
+    substr $S10, rx84_tgt, $I11, 1
+    ne $S10, "|", rx84_fail
+    add rx84_pos, 1
+    goto alt89_end
+  alt89_2:
+    set_addr $I10, alt89_3
+    rx84_cur."!mark_push"(0, rx84_pos, $I10)
   # rx literal  "&&"
-    add $I11, rx83_pos, 2
-    gt $I11, rx83_eos, rx83_fail
-    sub $I11, rx83_pos, rx83_off
-    substr $S10, rx83_tgt, $I11, 2
-    ne $S10, "&&", rx83_fail
-    add rx83_pos, 2
-    goto alt88_end
-  alt88_3:
+    add $I11, rx84_pos, 2
+    gt $I11, rx84_eos, rx84_fail
+    sub $I11, rx84_pos, rx84_off
+    substr $S10, rx84_tgt, $I11, 2
+    ne $S10, "&&", rx84_fail
+    add rx84_pos, 2
+    goto alt89_end
+  alt89_3:
   # rx literal  "&"
-    add $I11, rx83_pos, 1
-    gt $I11, rx83_eos, rx83_fail
-    sub $I11, rx83_pos, rx83_off
-    substr $S10, rx83_tgt, $I11, 1
-    ne $S10, "&", rx83_fail
-    add rx83_pos, 1
-  alt88_end:
-    (rx83_rep) = rx83_cur."!mark_commit"($I89)
-  rxquantr87_done:
+    add $I11, rx84_pos, 1
+    gt $I11, rx84_eos, rx84_fail
+    sub $I11, rx84_pos, rx84_off
+    substr $S10, rx84_tgt, $I11, 1
+    ne $S10, "&", rx84_fail
+    add rx84_pos, 1
+  alt89_end:
+    (rx84_rep) = rx84_cur."!mark_commit"($I90)
+  rxquantr88_done:
 .annotate 'line', 30
   # rx subrule "termish" subtype=capture negate=
-    rx83_cur."!cursor_pos"(rx83_pos)
-    $P10 = rx83_cur."termish"()
-    unless $P10, rx83_fail
-    rx83_cur."!mark_push"(0, -1, 0, $P10)
+    rx84_cur."!cursor_pos"(rx84_pos)
+    $P10 = rx84_cur."termish"()
+    unless $P10, rx84_fail
+    rx84_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("termish")
-    rx83_pos = $P10."pos"()
+    rx84_pos = $P10."pos"()
 .annotate 'line', 33
-  # rx rxquantr90 ** 0..*
-    set_addr $I93, rxquantr90_done
-    rx83_cur."!mark_push"(0, rx83_pos, $I93)
-  rxquantr90_loop:
-  alt91_0:
+  # rx rxquantr91 ** 0..*
+    set_addr $I94, rxquantr91_done
+    rx84_cur."!mark_push"(0, rx84_pos, $I94)
+  rxquantr91_loop:
+  alt92_0:
 .annotate 'line', 31
-    set_addr $I10, alt91_1
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
+    set_addr $I10, alt92_1
+    rx84_cur."!mark_push"(0, rx84_pos, $I10)
   # rx literal  "||"
-    add $I11, rx83_pos, 2
-    gt $I11, rx83_eos, rx83_fail
-    sub $I11, rx83_pos, rx83_off
-    substr $S10, rx83_tgt, $I11, 2
-    ne $S10, "||", rx83_fail
-    add rx83_pos, 2
-    goto alt91_end
-  alt91_1:
+    add $I11, rx84_pos, 2
+    gt $I11, rx84_eos, rx84_fail
+    sub $I11, rx84_pos, rx84_off
+    substr $S10, rx84_tgt, $I11, 2
+    ne $S10, "||", rx84_fail
+    add rx84_pos, 2
+    goto alt92_end
+  alt92_1:
   # rx literal  "|"
-    add $I11, rx83_pos, 1
-    gt $I11, rx83_eos, rx83_fail
-    sub $I11, rx83_pos, rx83_off
-    substr $S10, rx83_tgt, $I11, 1
-    ne $S10, "|", rx83_fail
-    add rx83_pos, 1
-  alt91_end:
-  alt92_0:
+    add $I11, rx84_pos, 1
+    gt $I11, rx84_eos, rx84_fail
+    sub $I11, rx84_pos, rx84_off
+    substr $S10, rx84_tgt, $I11, 1
+    ne $S10, "|", rx84_fail
+    add rx84_pos, 1
+  alt92_end:
+  alt93_0:
 .annotate 'line', 32
-    set_addr $I10, alt92_1
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
+    set_addr $I10, alt93_1
+    rx84_cur."!mark_push"(0, rx84_pos, $I10)
   # rx subrule "termish" subtype=capture negate=
-    rx83_cur."!cursor_pos"(rx83_pos)
-    $P10 = rx83_cur."termish"()
-    unless $P10, rx83_fail
-    rx83_cur."!mark_push"(0, -1, 0, $P10)
+    rx84_cur."!cursor_pos"(rx84_pos)
+    $P10 = rx84_cur."termish"()
+    unless $P10, rx84_fail
+    rx84_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("termish")
-    rx83_pos = $P10."pos"()
-    goto alt92_end
-  alt92_1:
+    rx84_pos = $P10."pos"()
+    goto alt93_end
+  alt93_1:
   # rx subrule "panic" subtype=method negate=
-    rx83_cur."!cursor_pos"(rx83_pos)
-    $P10 = rx83_cur."panic"("Null pattern not allowed")
-    unless $P10, rx83_fail
-    rx83_pos = $P10."pos"()
-  alt92_end:
+    rx84_cur."!cursor_pos"(rx84_pos)
+    $P10 = rx84_cur."panic"("Null pattern not allowed")
+    unless $P10, rx84_fail
+    rx84_pos = $P10."pos"()
+  alt93_end:
 .annotate 'line', 33
-    (rx83_rep) = rx83_cur."!mark_commit"($I93)
-    rx83_cur."!mark_push"(rx83_rep, rx83_pos, $I93)
-    goto rxquantr90_loop
-  rxquantr90_done:
+    (rx84_rep) = rx84_cur."!mark_commit"($I94)
+    rx84_cur."!mark_push"(rx84_rep, rx84_pos, $I94)
+    goto rxquantr91_loop
+  rxquantr91_done:
 .annotate 'line', 27
   # rx pass
-    rx83_cur."!cursor_pass"(rx83_pos, "nibbler")
-    rx83_cur."!cursor_debug"("PASS  ", "nibbler", " at pos=", rx83_pos)
-    .return (rx83_cur)
-  rx83_fail:
+    rx84_cur."!cursor_pass"(rx84_pos, "nibbler")
+    rx84_cur."!cursor_debug"("PASS  ", "nibbler", " at pos=", rx84_pos)
+    .return (rx84_cur)
+  rx84_fail:
 .annotate 'line', 3
-    (rx83_rep, rx83_pos, $I10, $P10) = rx83_cur."!mark_fail"(0)
-    lt rx83_pos, -1, rx83_done
-    eq rx83_pos, -1, rx83_fail
+    (rx84_rep, rx84_pos, $I10, $P10) = rx84_cur."!mark_fail"(0)
+    lt rx84_pos, -1, rx84_done
+    eq rx84_pos, -1, rx84_fail
     jump $I10
-  rx83_done:
-    rx83_cur."!cursor_fail"()
-    rx83_cur."!cursor_debug"("FAIL  ", "nibbler")
-    .return (rx83_cur)
+  rx84_done:
+    rx84_cur."!cursor_fail"()
+    rx84_cur."!cursor_debug"("FAIL  ", "nibbler")
+    .return (rx84_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler"  :subid("25_1274853027.61936") :method
+.sub "!PREFIX__nibbler"  :subid("25_1275811476.7961") :method
 .annotate 'line', 3
-    new $P85, "ResizablePMCArray"
-    push $P85, ""
-    .return ($P85)
+    new $P86, "ResizablePMCArray"
+    push $P86, ""
+    .return ($P86)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish"  :subid("26_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "termish"  :subid("26_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx95_tgt
-    .local int rx95_pos
-    .local int rx95_off
-    .local int rx95_eos
-    .local int rx95_rep
-    .local pmc rx95_cur
-    (rx95_cur, rx95_pos, rx95_tgt) = self."!cursor_start"()
-    rx95_cur."!cursor_debug"("START ", "termish")
-    rx95_cur."!cursor_caparray"("noun")
-    .lex unicode:"$\x{a2}", rx95_cur
+    .local string rx96_tgt
+    .local int rx96_pos
+    .local int rx96_off
+    .local int rx96_eos
+    .local int rx96_rep
+    .local pmc rx96_cur
+    (rx96_cur, rx96_pos, rx96_tgt) = self."!cursor_start"()
+    rx96_cur."!cursor_debug"("START ", "termish")
+    rx96_cur."!cursor_caparray"("noun")
+    .lex unicode:"$\x{a2}", rx96_cur
     .local pmc match
     .lex "$/", match
-    length rx95_eos, rx95_tgt
-    set rx95_off, 0
-    lt rx95_pos, 2, rx95_start
-    sub rx95_off, rx95_pos, 1
-    substr rx95_tgt, rx95_tgt, rx95_off
-  rx95_start:
+    length rx96_eos, rx96_tgt
+    gt rx96_pos, rx96_eos, rx96_done
+    set rx96_off, 0
+    lt rx96_pos, 2, rx96_start
+    sub rx96_off, rx96_pos, 1
+    substr rx96_tgt, rx96_tgt, rx96_off
+  rx96_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan98_done
-    goto rxscan98_scan
-  rxscan98_loop:
-    ($P10) = rx95_cur."from"()
+    ne $I10, -1, rxscan99_done
+    goto rxscan99_scan
+  rxscan99_loop:
+    ($P10) = rx96_cur."from"()
     inc $P10
-    set rx95_pos, $P10
-    ge rx95_pos, rx95_eos, rxscan98_done
-  rxscan98_scan:
-    set_addr $I10, rxscan98_loop
-    rx95_cur."!mark_push"(0, rx95_pos, $I10)
-  rxscan98_done:
+    set rx96_pos, $P10
+    ge rx96_pos, rx96_eos, rxscan99_done
+  rxscan99_scan:
+    set_addr $I10, rxscan99_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxscan99_done:
 .annotate 'line', 37
-  # rx rxquantr99 ** 1..*
-    set_addr $I100, rxquantr99_done
-    rx95_cur."!mark_push"(0, -1, $I100)
-  rxquantr99_loop:
+  # rx rxquantr100 ** 1..*
+    set_addr $I101, rxquantr100_done
+    rx96_cur."!mark_push"(0, -1, $I101)
+  rxquantr100_loop:
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx95_cur."!cursor_pos"(rx95_pos)
-    $P10 = rx95_cur."quantified_atom"()
-    unless $P10, rx95_fail
-    rx95_cur."!mark_push"(0, -1, 0, $P10)
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."quantified_atom"()
+    unless $P10, rx96_fail
+    rx96_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("noun")
-    rx95_pos = $P10."pos"()
-    (rx95_rep) = rx95_cur."!mark_commit"($I100)
-    rx95_cur."!mark_push"(rx95_rep, rx95_pos, $I100)
-    goto rxquantr99_loop
-  rxquantr99_done:
+    rx96_pos = $P10."pos"()
+    (rx96_rep) = rx96_cur."!mark_commit"($I101)
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I101)
+    goto rxquantr100_loop
+  rxquantr100_done:
 .annotate 'line', 36
   # rx pass
-    rx95_cur."!cursor_pass"(rx95_pos, "termish")
-    rx95_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx95_pos)
-    .return (rx95_cur)
-  rx95_fail:
+    rx96_cur."!cursor_pass"(rx96_pos, "termish")
+    rx96_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx96_pos)
+    .return (rx96_cur)
+  rx96_fail:
 .annotate 'line', 3
-    (rx95_rep, rx95_pos, $I10, $P10) = rx95_cur."!mark_fail"(0)
-    lt rx95_pos, -1, rx95_done
-    eq rx95_pos, -1, rx95_fail
+    (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
+    lt rx96_pos, -1, rx96_done
+    eq rx96_pos, -1, rx96_fail
     jump $I10
-  rx95_done:
-    rx95_cur."!cursor_fail"()
-    rx95_cur."!cursor_debug"("FAIL  ", "termish")
-    .return (rx95_cur)
+  rx96_done:
+    rx96_cur."!cursor_fail"()
+    rx96_cur."!cursor_debug"("FAIL  ", "termish")
+    .return (rx96_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish"  :subid("27_1274853027.61936") :method
+.sub "!PREFIX__termish"  :subid("27_1275811476.7961") :method
 .annotate 'line', 3
-    new $P97, "ResizablePMCArray"
-    push $P97, ""
-    .return ($P97)
+    new $P98, "ResizablePMCArray"
+    push $P98, ""
+    .return ($P98)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom"  :subid("28_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "quantified_atom"  :subid("28_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .const 'Sub' $P110 = "30_1274853027.61936" 
-    capture_lex $P110
-    .local string rx102_tgt
-    .local int rx102_pos
-    .local int rx102_off
-    .local int rx102_eos
-    .local int rx102_rep
-    .local pmc rx102_cur
-    (rx102_cur, rx102_pos, rx102_tgt) = self."!cursor_start"()
-    rx102_cur."!cursor_debug"("START ", "quantified_atom")
-    rx102_cur."!cursor_caparray"("quantifier", "backmod")
-    .lex unicode:"$\x{a2}", rx102_cur
+    .const 'Sub' $P111 = "30_1275811476.7961" 
+    capture_lex $P111
+    .local string rx103_tgt
+    .local int rx103_pos
+    .local int rx103_off
+    .local int rx103_eos
+    .local int rx103_rep
+    .local pmc rx103_cur
+    (rx103_cur, rx103_pos, rx103_tgt) = self."!cursor_start"()
+    rx103_cur."!cursor_debug"("START ", "quantified_atom")
+    rx103_cur."!cursor_caparray"("quantifier", "backmod")
+    .lex unicode:"$\x{a2}", rx103_cur
     .local pmc match
     .lex "$/", match
-    length rx102_eos, rx102_tgt
-    set rx102_off, 0
-    lt rx102_pos, 2, rx102_start
-    sub rx102_off, rx102_pos, 1
-    substr rx102_tgt, rx102_tgt, rx102_off
-  rx102_start:
+    length rx103_eos, rx103_tgt
+    gt rx103_pos, rx103_eos, rx103_done
+    set rx103_off, 0
+    lt rx103_pos, 2, rx103_start
+    sub rx103_off, rx103_pos, 1
+    substr rx103_tgt, rx103_tgt, rx103_off
+  rx103_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan106_done
-    goto rxscan106_scan
-  rxscan106_loop:
-    ($P10) = rx102_cur."from"()
+    ne $I10, -1, rxscan107_done
+    goto rxscan107_scan
+  rxscan107_loop:
+    ($P10) = rx103_cur."from"()
     inc $P10
-    set rx102_pos, $P10
-    ge rx102_pos, rx102_eos, rxscan106_done
-  rxscan106_scan:
-    set_addr $I10, rxscan106_loop
-    rx102_cur."!mark_push"(0, rx102_pos, $I10)
-  rxscan106_done:
+    set rx103_pos, $P10
+    ge rx103_pos, rx103_eos, rxscan107_done
+  rxscan107_scan:
+    set_addr $I10, rxscan107_loop
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+  rxscan107_done:
 .annotate 'line', 41
   # rx subrule "atom" subtype=capture negate=
-    rx102_cur."!cursor_pos"(rx102_pos)
-    $P10 = rx102_cur."atom"()
-    unless $P10, rx102_fail
-    rx102_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."atom"()
+    unless $P10, rx103_fail
+    rx103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("atom")
-    rx102_pos = $P10."pos"()
-  # rx rxquantr107 ** 0..1
-    set_addr $I113, rxquantr107_done
-    rx102_cur."!mark_push"(0, rx102_pos, $I113)
-  rxquantr107_loop:
+    rx103_pos = $P10."pos"()
+  # rx rxquantr108 ** 0..1
+    set_addr $I114, rxquantr108_done
+    rx103_cur."!mark_push"(0, rx103_pos, $I114)
+  rxquantr108_loop:
   # rx subrule "ws" subtype=method negate=
-    rx102_cur."!cursor_pos"(rx102_pos)
-    $P10 = rx102_cur."ws"()
-    unless $P10, rx102_fail
-    rx102_pos = $P10."pos"()
-  alt108_0:
-    set_addr $I10, alt108_1
-    rx102_cur."!mark_push"(0, rx102_pos, $I10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."ws"()
+    unless $P10, rx103_fail
+    rx103_pos = $P10."pos"()
+  alt109_0:
+    set_addr $I10, alt109_1
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
   # rx subrule "quantifier" subtype=capture negate=
-    rx102_cur."!cursor_pos"(rx102_pos)
-    $P10 = rx102_cur."quantifier"()
-    unless $P10, rx102_fail
-    rx102_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."quantifier"()
+    unless $P10, rx103_fail
+    rx103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantifier")
-    rx102_pos = $P10."pos"()
-    goto alt108_end
-  alt108_1:
+    rx103_pos = $P10."pos"()
+    goto alt109_end
+  alt109_1:
   # rx subrule "before" subtype=zerowidth negate=
-    rx102_cur."!cursor_pos"(rx102_pos)
-    .const 'Sub' $P110 = "30_1274853027.61936" 
-    capture_lex $P110
-    $P10 = rx102_cur."before"($P110)
-    unless $P10, rx102_fail
+    rx103_cur."!cursor_pos"(rx103_pos)
+    .const 'Sub' $P111 = "30_1275811476.7961" 
+    capture_lex $P111
+    $P10 = rx103_cur."before"($P111)
+    unless $P10, rx103_fail
   # rx subrule "backmod" subtype=capture negate=
-    rx102_cur."!cursor_pos"(rx102_pos)
-    $P10 = rx102_cur."backmod"()
-    unless $P10, rx102_fail
-    rx102_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."backmod"()
+    unless $P10, rx103_fail
+    rx103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx102_pos = $P10."pos"()
+    rx103_pos = $P10."pos"()
   # rx subrule "alpha" subtype=zerowidth negate=1
-    rx102_cur."!cursor_pos"(rx102_pos)
-    $P10 = rx102_cur."alpha"()
-    if $P10, rx102_fail
-  alt108_end:
-    (rx102_rep) = rx102_cur."!mark_commit"($I113)
-  rxquantr107_done:
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."alpha"()
+    if $P10, rx103_fail
+  alt109_end:
+    (rx103_rep) = rx103_cur."!mark_commit"($I114)
+  rxquantr108_done:
 .annotate 'line', 40
   # rx pass
-    rx102_cur."!cursor_pass"(rx102_pos, "quantified_atom")
-    rx102_cur."!cursor_debug"("PASS  ", "quantified_atom", " at pos=", rx102_pos)
-    .return (rx102_cur)
-  rx102_fail:
+    rx103_cur."!cursor_pass"(rx103_pos, "quantified_atom")
+    rx103_cur."!cursor_debug"("PASS  ", "quantified_atom", " at pos=", rx103_pos)
+    .return (rx103_cur)
+  rx103_fail:
 .annotate 'line', 3
-    (rx102_rep, rx102_pos, $I10, $P10) = rx102_cur."!mark_fail"(0)
-    lt rx102_pos, -1, rx102_done
-    eq rx102_pos, -1, rx102_fail
+    (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
+    lt rx103_pos, -1, rx103_done
+    eq rx103_pos, -1, rx103_fail
     jump $I10
-  rx102_done:
-    rx102_cur."!cursor_fail"()
-    rx102_cur."!cursor_debug"("FAIL  ", "quantified_atom")
-    .return (rx102_cur)
+  rx103_done:
+    rx103_cur."!cursor_fail"()
+    rx103_cur."!cursor_debug"("FAIL  ", "quantified_atom")
+    .return (rx103_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom"  :subid("29_1274853027.61936") :method
+.sub "!PREFIX__quantified_atom"  :subid("29_1275811476.7961") :method
 .annotate 'line', 3
-    $P104 = self."!PREFIX__!subrule"("atom", "")
-    new $P105, "ResizablePMCArray"
-    push $P105, $P104
-    .return ($P105)
+    $P105 = self."!PREFIX__!subrule"("atom", "")
+    new $P106, "ResizablePMCArray"
+    push $P106, $P105
+    .return ($P106)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block109"  :anon :subid("30_1274853027.61936") :method :outer("28_1274853027.61936")
+.sub "_block110"  :anon :subid("30_1275811476.7961") :method :outer("28_1275811476.7961")
 .annotate 'line', 41
-    .local string rx111_tgt
-    .local int rx111_pos
-    .local int rx111_off
-    .local int rx111_eos
-    .local int rx111_rep
-    .local pmc rx111_cur
-    (rx111_cur, rx111_pos, rx111_tgt) = self."!cursor_start"()
-    rx111_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx111_cur
-    .local pmc match
-    .lex "$/", match
-    length rx111_eos, rx111_tgt
-    set rx111_off, 0
-    lt rx111_pos, 2, rx111_start
-    sub rx111_off, rx111_pos, 1
-    substr rx111_tgt, rx111_tgt, rx111_off
-  rx111_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan112_done
-    goto rxscan112_scan
-  rxscan112_loop:
-    ($P10) = rx111_cur."from"()
-    inc $P10
-    set rx111_pos, $P10
-    ge rx111_pos, rx111_eos, rxscan112_done
-  rxscan112_scan:
-    set_addr $I10, rxscan112_loop
-    rx111_cur."!mark_push"(0, rx111_pos, $I10)
-  rxscan112_done:
+    .local string rx112_tgt
+    .local int rx112_pos
+    .local int rx112_off
+    .local int rx112_eos
+    .local int rx112_rep
+    .local pmc rx112_cur
+    (rx112_cur, rx112_pos, rx112_tgt) = self."!cursor_start"()
+    rx112_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx112_cur
+    .local pmc match
+    .lex "$/", match
+    length rx112_eos, rx112_tgt
+    gt rx112_pos, rx112_eos, rx112_done
+    set rx112_off, 0
+    lt rx112_pos, 2, rx112_start
+    sub rx112_off, rx112_pos, 1
+    substr rx112_tgt, rx112_tgt, rx112_off
+  rx112_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan113_done
+    goto rxscan113_scan
+  rxscan113_loop:
+    ($P10) = rx112_cur."from"()
+    inc $P10
+    set rx112_pos, $P10
+    ge rx112_pos, rx112_eos, rxscan113_done
+  rxscan113_scan:
+    set_addr $I10, rxscan113_loop
+    rx112_cur."!mark_push"(0, rx112_pos, $I10)
+  rxscan113_done:
   # rx literal  ":"
-    add $I11, rx111_pos, 1
-    gt $I11, rx111_eos, rx111_fail
-    sub $I11, rx111_pos, rx111_off
-    substr $S10, rx111_tgt, $I11, 1
-    ne $S10, ":", rx111_fail
-    add rx111_pos, 1
-  # rx pass
-    rx111_cur."!cursor_pass"(rx111_pos, "")
-    rx111_cur."!cursor_debug"("PASS  ", "", " at pos=", rx111_pos)
-    .return (rx111_cur)
-  rx111_fail:
-    (rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0)
-    lt rx111_pos, -1, rx111_done
-    eq rx111_pos, -1, rx111_fail
-    jump $I10
-  rx111_done:
-    rx111_cur."!cursor_fail"()
-    rx111_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx111_cur)
+    add $I11, rx112_pos, 1
+    gt $I11, rx112_eos, rx112_fail
+    sub $I11, rx112_pos, rx112_off
+    substr $S10, rx112_tgt, $I11, 1
+    ne $S10, ":", rx112_fail
+    add rx112_pos, 1
+  # rx pass
+    rx112_cur."!cursor_pass"(rx112_pos, "")
+    rx112_cur."!cursor_debug"("PASS  ", "", " at pos=", rx112_pos)
+    .return (rx112_cur)
+  rx112_fail:
+    (rx112_rep, rx112_pos, $I10, $P10) = rx112_cur."!mark_fail"(0)
+    lt rx112_pos, -1, rx112_done
+    eq rx112_pos, -1, rx112_fail
+    jump $I10
+  rx112_done:
+    rx112_cur."!cursor_fail"()
+    rx112_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx112_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom"  :subid("31_1274853027.61936") :method :outer("11_1274853027.61936")
-.annotate 'line', 3
-    .const 'Sub' $P125 = "33_1274853027.61936" 
-    capture_lex $P125
-    .local string rx115_tgt
-    .local int rx115_pos
-    .local int rx115_off
-    .local int rx115_eos
-    .local int rx115_rep
-    .local pmc rx115_cur
-    (rx115_cur, rx115_pos, rx115_tgt) = self."!cursor_start"()
-    rx115_cur."!cursor_debug"("START ", "atom")
-    .lex unicode:"$\x{a2}", rx115_cur
-    .local pmc match
-    .lex "$/", match
-    length rx115_eos, rx115_tgt
-    set rx115_off, 0
-    lt rx115_pos, 2, rx115_start
-    sub rx115_off, rx115_pos, 1
-    substr rx115_tgt, rx115_tgt, rx115_off
-  rx115_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan119_done
-    goto rxscan119_scan
-  rxscan119_loop:
-    ($P10) = rx115_cur."from"()
-    inc $P10
-    set rx115_pos, $P10
-    ge rx115_pos, rx115_eos, rxscan119_done
-  rxscan119_scan:
-    set_addr $I10, rxscan119_loop
-    rx115_cur."!mark_push"(0, rx115_pos, $I10)
-  rxscan119_done:
-  alt120_0:
+.sub "atom"  :subid("31_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+    .const 'Sub' $P126 = "33_1275811476.7961" 
+    capture_lex $P126
+    .local string rx116_tgt
+    .local int rx116_pos
+    .local int rx116_off
+    .local int rx116_eos
+    .local int rx116_rep
+    .local pmc rx116_cur
+    (rx116_cur, rx116_pos, rx116_tgt) = self."!cursor_start"()
+    rx116_cur."!cursor_debug"("START ", "atom")
+    .lex unicode:"$\x{a2}", rx116_cur
+    .local pmc match
+    .lex "$/", match
+    length rx116_eos, rx116_tgt
+    gt rx116_pos, rx116_eos, rx116_done
+    set rx116_off, 0
+    lt rx116_pos, 2, rx116_start
+    sub rx116_off, rx116_pos, 1
+    substr rx116_tgt, rx116_tgt, rx116_off
+  rx116_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan120_done
+    goto rxscan120_scan
+  rxscan120_loop:
+    ($P10) = rx116_cur."from"()
+    inc $P10
+    set rx116_pos, $P10
+    ge rx116_pos, rx116_eos, rxscan120_done
+  rxscan120_scan:
+    set_addr $I10, rxscan120_loop
+    rx116_cur."!mark_push"(0, rx116_pos, $I10)
+  rxscan120_done:
+  alt121_0:
 .annotate 'line', 46
-    set_addr $I10, alt120_1
-    rx115_cur."!mark_push"(0, rx115_pos, $I10)
+    set_addr $I10, alt121_1
+    rx116_cur."!mark_push"(0, rx116_pos, $I10)
 .annotate 'line', 47
   # rx charclass w
-    ge rx115_pos, rx115_eos, rx115_fail
-    sub $I10, rx115_pos, rx115_off
-    is_cclass $I11, 8192, rx115_tgt, $I10
-    unless $I11, rx115_fail
-    inc rx115_pos
-  # rx rxquantr121 ** 0..1
-    set_addr $I128, rxquantr121_done
-    rx115_cur."!mark_push"(0, rx115_pos, $I128)
-  rxquantr121_loop:
-  # rx rxquantg122 ** 1..*
-    set_addr $I123, rxquantg122_done
-  rxquantg122_loop:
+    ge rx116_pos, rx116_eos, rx116_fail
+    sub $I10, rx116_pos, rx116_off
+    is_cclass $I11, 8192, rx116_tgt, $I10
+    unless $I11, rx116_fail
+    inc rx116_pos
+  # rx rxquantr122 ** 0..1
+    set_addr $I129, rxquantr122_done
+    rx116_cur."!mark_push"(0, rx116_pos, $I129)
+  rxquantr122_loop:
+  # rx rxquantg123 ** 1..*
+    set_addr $I124, rxquantg123_done
+  rxquantg123_loop:
   # rx charclass w
-    ge rx115_pos, rx115_eos, rx115_fail
-    sub $I10, rx115_pos, rx115_off
-    is_cclass $I11, 8192, rx115_tgt, $I10
-    unless $I11, rx115_fail
-    inc rx115_pos
-    rx115_cur."!mark_push"(rx115_rep, rx115_pos, $I123)
-    goto rxquantg122_loop
-  rxquantg122_done:
+    ge rx116_pos, rx116_eos, rx116_fail
+    sub $I10, rx116_pos, rx116_off
+    is_cclass $I11, 8192, rx116_tgt, $I10
+    unless $I11, rx116_fail
+    inc rx116_pos
+    rx116_cur."!mark_push"(rx116_rep, rx116_pos, $I124)
+    goto rxquantg123_loop
+  rxquantg123_done:
   # rx subrule "before" subtype=zerowidth negate=
-    rx115_cur."!cursor_pos"(rx115_pos)
-    .const 'Sub' $P125 = "33_1274853027.61936" 
-    capture_lex $P125
-    $P10 = rx115_cur."before"($P125)
-    unless $P10, rx115_fail
-    (rx115_rep) = rx115_cur."!mark_commit"($I128)
-  rxquantr121_done:
-    goto alt120_end
-  alt120_1:
+    rx116_cur."!cursor_pos"(rx116_pos)
+    .const 'Sub' $P126 = "33_1275811476.7961" 
+    capture_lex $P126
+    $P10 = rx116_cur."before"($P126)
+    unless $P10, rx116_fail
+    (rx116_rep) = rx116_cur."!mark_commit"($I129)
+  rxquantr122_done:
+    goto alt121_end
+  alt121_1:
 .annotate 'line', 48
   # rx subrule "metachar" subtype=capture negate=
-    rx115_cur."!cursor_pos"(rx115_pos)
-    $P10 = rx115_cur."metachar"()
-    unless $P10, rx115_fail
-    rx115_cur."!mark_push"(0, -1, 0, $P10)
+    rx116_cur."!cursor_pos"(rx116_pos)
+    $P10 = rx116_cur."metachar"()
+    unless $P10, rx116_fail
+    rx116_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("metachar")
-    rx115_pos = $P10."pos"()
-  alt120_end:
+    rx116_pos = $P10."pos"()
+  alt121_end:
 .annotate 'line', 44
   # rx pass
-    rx115_cur."!cursor_pass"(rx115_pos, "atom")
-    rx115_cur."!cursor_debug"("PASS  ", "atom", " at pos=", rx115_pos)
-    .return (rx115_cur)
-  rx115_fail:
+    rx116_cur."!cursor_pass"(rx116_pos, "atom")
+    rx116_cur."!cursor_debug"("PASS  ", "atom", " at pos=", rx116_pos)
+    .return (rx116_cur)
+  rx116_fail:
 .annotate 'line', 3
-    (rx115_rep, rx115_pos, $I10, $P10) = rx115_cur."!mark_fail"(0)
-    lt rx115_pos, -1, rx115_done
-    eq rx115_pos, -1, rx115_fail
+    (rx116_rep, rx116_pos, $I10, $P10) = rx116_cur."!mark_fail"(0)
+    lt rx116_pos, -1, rx116_done
+    eq rx116_pos, -1, rx116_fail
     jump $I10
-  rx115_done:
-    rx115_cur."!cursor_fail"()
-    rx115_cur."!cursor_debug"("FAIL  ", "atom")
-    .return (rx115_cur)
+  rx116_done:
+    rx116_cur."!cursor_fail"()
+    rx116_cur."!cursor_debug"("FAIL  ", "atom")
+    .return (rx116_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom"  :subid("32_1274853027.61936") :method
+.sub "!PREFIX__atom"  :subid("32_1275811476.7961") :method
 .annotate 'line', 3
-    $P117 = self."!PREFIX__!subrule"("metachar", "")
-    new $P118, "ResizablePMCArray"
-    push $P118, $P117
-    push $P118, ""
-    .return ($P118)
+    $P118 = self."!PREFIX__!subrule"("metachar", "")
+    new $P119, "ResizablePMCArray"
+    push $P119, $P118
+    push $P119, ""
+    .return ($P119)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block124"  :anon :subid("33_1274853027.61936") :method :outer("31_1274853027.61936")
+.sub "_block125"  :anon :subid("33_1275811476.7961") :method :outer("31_1275811476.7961")
 .annotate 'line', 47
-    .local string rx126_tgt
-    .local int rx126_pos
-    .local int rx126_off
-    .local int rx126_eos
-    .local int rx126_rep
-    .local pmc rx126_cur
-    (rx126_cur, rx126_pos, rx126_tgt) = self."!cursor_start"()
-    rx126_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx126_cur
-    .local pmc match
-    .lex "$/", match
-    length rx126_eos, rx126_tgt
-    set rx126_off, 0
-    lt rx126_pos, 2, rx126_start
-    sub rx126_off, rx126_pos, 1
-    substr rx126_tgt, rx126_tgt, rx126_off
-  rx126_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan127_done
-    goto rxscan127_scan
-  rxscan127_loop:
-    ($P10) = rx126_cur."from"()
-    inc $P10
-    set rx126_pos, $P10
-    ge rx126_pos, rx126_eos, rxscan127_done
-  rxscan127_scan:
-    set_addr $I10, rxscan127_loop
-    rx126_cur."!mark_push"(0, rx126_pos, $I10)
-  rxscan127_done:
+    .local string rx127_tgt
+    .local int rx127_pos
+    .local int rx127_off
+    .local int rx127_eos
+    .local int rx127_rep
+    .local pmc rx127_cur
+    (rx127_cur, rx127_pos, rx127_tgt) = self."!cursor_start"()
+    rx127_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx127_cur
+    .local pmc match
+    .lex "$/", match
+    length rx127_eos, rx127_tgt
+    gt rx127_pos, rx127_eos, rx127_done
+    set rx127_off, 0
+    lt rx127_pos, 2, rx127_start
+    sub rx127_off, rx127_pos, 1
+    substr rx127_tgt, rx127_tgt, rx127_off
+  rx127_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan128_done
+    goto rxscan128_scan
+  rxscan128_loop:
+    ($P10) = rx127_cur."from"()
+    inc $P10
+    set rx127_pos, $P10
+    ge rx127_pos, rx127_eos, rxscan128_done
+  rxscan128_scan:
+    set_addr $I10, rxscan128_loop
+    rx127_cur."!mark_push"(0, rx127_pos, $I10)
+  rxscan128_done:
   # rx charclass w
-    ge rx126_pos, rx126_eos, rx126_fail
-    sub $I10, rx126_pos, rx126_off
-    is_cclass $I11, 8192, rx126_tgt, $I10
-    unless $I11, rx126_fail
-    inc rx126_pos
+    ge rx127_pos, rx127_eos, rx127_fail
+    sub $I10, rx127_pos, rx127_off
+    is_cclass $I11, 8192, rx127_tgt, $I10
+    unless $I11, rx127_fail
+    inc rx127_pos
   # rx pass
-    rx126_cur."!cursor_pass"(rx126_pos, "")
-    rx126_cur."!cursor_debug"("PASS  ", "", " at pos=", rx126_pos)
-    .return (rx126_cur)
-  rx126_fail:
-    (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0)
-    lt rx126_pos, -1, rx126_done
-    eq rx126_pos, -1, rx126_fail
+    rx127_cur."!cursor_pass"(rx127_pos, "")
+    rx127_cur."!cursor_debug"("PASS  ", "", " at pos=", rx127_pos)
+    .return (rx127_cur)
+  rx127_fail:
+    (rx127_rep, rx127_pos, $I10, $P10) = rx127_cur."!mark_fail"(0)
+    lt rx127_pos, -1, rx127_done
+    eq rx127_pos, -1, rx127_fail
     jump $I10
-  rx126_done:
-    rx126_cur."!cursor_fail"()
-    rx126_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx126_cur)
+  rx127_done:
+    rx127_cur."!cursor_fail"()
+    rx127_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx127_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier"  :subid("34_1274853027.61936") :method
+.sub "quantifier"  :subid("34_1275811476.7961") :method
 .annotate 'line', 52
-    $P130 = self."!protoregex"("quantifier")
-    .return ($P130)
+    $P131 = self."!protoregex"("quantifier")
+    .return ($P131)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier"  :subid("35_1274853027.61936") :method
+.sub "!PREFIX__quantifier"  :subid("35_1275811476.7961") :method
 .annotate 'line', 52
-    $P132 = self."!PREFIX__!protoregex"("quantifier")
-    .return ($P132)
+    $P133 = self."!PREFIX__!protoregex"("quantifier")
+    .return ($P133)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>"  :subid("36_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "quantifier:sym<*>"  :subid("36_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx134_tgt
-    .local int rx134_pos
-    .local int rx134_off
-    .local int rx134_eos
-    .local int rx134_rep
-    .local pmc rx134_cur
-    (rx134_cur, rx134_pos, rx134_tgt) = self."!cursor_start"()
-    rx134_cur."!cursor_debug"("START ", "quantifier:sym<*>")
-    .lex unicode:"$\x{a2}", rx134_cur
-    .local pmc match
-    .lex "$/", match
-    length rx134_eos, rx134_tgt
-    set rx134_off, 0
-    lt rx134_pos, 2, rx134_start
-    sub rx134_off, rx134_pos, 1
-    substr rx134_tgt, rx134_tgt, rx134_off
-  rx134_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan138_done
-    goto rxscan138_scan
-  rxscan138_loop:
-    ($P10) = rx134_cur."from"()
-    inc $P10
-    set rx134_pos, $P10
-    ge rx134_pos, rx134_eos, rxscan138_done
-  rxscan138_scan:
-    set_addr $I10, rxscan138_loop
-    rx134_cur."!mark_push"(0, rx134_pos, $I10)
-  rxscan138_done:
+    .local string rx135_tgt
+    .local int rx135_pos
+    .local int rx135_off
+    .local int rx135_eos
+    .local int rx135_rep
+    .local pmc rx135_cur
+    (rx135_cur, rx135_pos, rx135_tgt) = self."!cursor_start"()
+    rx135_cur."!cursor_debug"("START ", "quantifier:sym<*>")
+    .lex unicode:"$\x{a2}", rx135_cur
+    .local pmc match
+    .lex "$/", match
+    length rx135_eos, rx135_tgt
+    gt rx135_pos, rx135_eos, rx135_done
+    set rx135_off, 0
+    lt rx135_pos, 2, rx135_start
+    sub rx135_off, rx135_pos, 1
+    substr rx135_tgt, rx135_tgt, rx135_off
+  rx135_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan139_done
+    goto rxscan139_scan
+  rxscan139_loop:
+    ($P10) = rx135_cur."from"()
+    inc $P10
+    set rx135_pos, $P10
+    ge rx135_pos, rx135_eos, rxscan139_done
+  rxscan139_scan:
+    set_addr $I10, rxscan139_loop
+    rx135_cur."!mark_push"(0, rx135_pos, $I10)
+  rxscan139_done:
 .annotate 'line', 53
   # rx subcapture "sym"
-    set_addr $I10, rxcap_139_fail
-    rx134_cur."!mark_push"(0, rx134_pos, $I10)
+    set_addr $I10, rxcap_140_fail
+    rx135_cur."!mark_push"(0, rx135_pos, $I10)
   # rx literal  "*"
-    add $I11, rx134_pos, 1
-    gt $I11, rx134_eos, rx134_fail
-    sub $I11, rx134_pos, rx134_off
-    substr $S10, rx134_tgt, $I11, 1
-    ne $S10, "*", rx134_fail
-    add rx134_pos, 1
-    set_addr $I10, rxcap_139_fail
-    ($I12, $I11) = rx134_cur."!mark_peek"($I10)
-    rx134_cur."!cursor_pos"($I11)
-    ($P10) = rx134_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx134_pos, "")
-    rx134_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx135_pos, 1
+    gt $I11, rx135_eos, rx135_fail
+    sub $I11, rx135_pos, rx135_off
+    substr $S10, rx135_tgt, $I11, 1
+    ne $S10, "*", rx135_fail
+    add rx135_pos, 1
+    set_addr $I10, rxcap_140_fail
+    ($I12, $I11) = rx135_cur."!mark_peek"($I10)
+    rx135_cur."!cursor_pos"($I11)
+    ($P10) = rx135_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx135_pos, "")
+    rx135_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_139_done
-  rxcap_139_fail:
-    goto rx134_fail
-  rxcap_139_done:
+    goto rxcap_140_done
+  rxcap_140_fail:
+    goto rx135_fail
+  rxcap_140_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx134_cur."!cursor_pos"(rx134_pos)
-    $P10 = rx134_cur."backmod"()
-    unless $P10, rx134_fail
-    rx134_cur."!mark_push"(0, -1, 0, $P10)
+    rx135_cur."!cursor_pos"(rx135_pos)
+    $P10 = rx135_cur."backmod"()
+    unless $P10, rx135_fail
+    rx135_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx134_pos = $P10."pos"()
+    rx135_pos = $P10."pos"()
   # rx pass
-    rx134_cur."!cursor_pass"(rx134_pos, "quantifier:sym<*>")
-    rx134_cur."!cursor_debug"("PASS  ", "quantifier:sym<*>", " at pos=", rx134_pos)
-    .return (rx134_cur)
-  rx134_fail:
+    rx135_cur."!cursor_pass"(rx135_pos, "quantifier:sym<*>")
+    rx135_cur."!cursor_debug"("PASS  ", "quantifier:sym<*>", " at pos=", rx135_pos)
+    .return (rx135_cur)
+  rx135_fail:
 .annotate 'line', 3
-    (rx134_rep, rx134_pos, $I10, $P10) = rx134_cur."!mark_fail"(0)
-    lt rx134_pos, -1, rx134_done
-    eq rx134_pos, -1, rx134_fail
+    (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
+    lt rx135_pos, -1, rx135_done
+    eq rx135_pos, -1, rx135_fail
     jump $I10
-  rx134_done:
-    rx134_cur."!cursor_fail"()
-    rx134_cur."!cursor_debug"("FAIL  ", "quantifier:sym<*>")
-    .return (rx134_cur)
+  rx135_done:
+    rx135_cur."!cursor_fail"()
+    rx135_cur."!cursor_debug"("FAIL  ", "quantifier:sym<*>")
+    .return (rx135_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>"  :subid("37_1274853027.61936") :method
+.sub "!PREFIX__quantifier:sym<*>"  :subid("37_1275811476.7961") :method
 .annotate 'line', 3
-    $P136 = self."!PREFIX__!subrule"("backmod", "*")
-    new $P137, "ResizablePMCArray"
-    push $P137, $P136
-    .return ($P137)
+    $P137 = self."!PREFIX__!subrule"("backmod", "*")
+    new $P138, "ResizablePMCArray"
+    push $P138, $P137
+    .return ($P138)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>"  :subid("38_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "quantifier:sym<+>"  :subid("38_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx141_tgt
-    .local int rx141_pos
-    .local int rx141_off
-    .local int rx141_eos
-    .local int rx141_rep
-    .local pmc rx141_cur
-    (rx141_cur, rx141_pos, rx141_tgt) = self."!cursor_start"()
-    rx141_cur."!cursor_debug"("START ", "quantifier:sym<+>")
-    .lex unicode:"$\x{a2}", rx141_cur
+    .local string rx142_tgt
+    .local int rx142_pos
+    .local int rx142_off
+    .local int rx142_eos
+    .local int rx142_rep
+    .local pmc rx142_cur
+    (rx142_cur, rx142_pos, rx142_tgt) = self."!cursor_start"()
+    rx142_cur."!cursor_debug"("START ", "quantifier:sym<+>")
+    .lex unicode:"$\x{a2}", rx142_cur
     .local pmc match
     .lex "$/", match
-    length rx141_eos, rx141_tgt
-    set rx141_off, 0
-    lt rx141_pos, 2, rx141_start
-    sub rx141_off, rx141_pos, 1
-    substr rx141_tgt, rx141_tgt, rx141_off
-  rx141_start:
+    length rx142_eos, rx142_tgt
+    gt rx142_pos, rx142_eos, rx142_done
+    set rx142_off, 0
+    lt rx142_pos, 2, rx142_start
+    sub rx142_off, rx142_pos, 1
+    substr rx142_tgt, rx142_tgt, rx142_off
+  rx142_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan145_done
-    goto rxscan145_scan
-  rxscan145_loop:
-    ($P10) = rx141_cur."from"()
+    ne $I10, -1, rxscan146_done
+    goto rxscan146_scan
+  rxscan146_loop:
+    ($P10) = rx142_cur."from"()
     inc $P10
-    set rx141_pos, $P10
-    ge rx141_pos, rx141_eos, rxscan145_done
-  rxscan145_scan:
-    set_addr $I10, rxscan145_loop
-    rx141_cur."!mark_push"(0, rx141_pos, $I10)
-  rxscan145_done:
+    set rx142_pos, $P10
+    ge rx142_pos, rx142_eos, rxscan146_done
+  rxscan146_scan:
+    set_addr $I10, rxscan146_loop
+    rx142_cur."!mark_push"(0, rx142_pos, $I10)
+  rxscan146_done:
 .annotate 'line', 54
   # rx subcapture "sym"
-    set_addr $I10, rxcap_146_fail
-    rx141_cur."!mark_push"(0, rx141_pos, $I10)
+    set_addr $I10, rxcap_147_fail
+    rx142_cur."!mark_push"(0, rx142_pos, $I10)
   # rx literal  "+"
-    add $I11, rx141_pos, 1
-    gt $I11, rx141_eos, rx141_fail
-    sub $I11, rx141_pos, rx141_off
-    substr $S10, rx141_tgt, $I11, 1
-    ne $S10, "+", rx141_fail
-    add rx141_pos, 1
-    set_addr $I10, rxcap_146_fail
-    ($I12, $I11) = rx141_cur."!mark_peek"($I10)
-    rx141_cur."!cursor_pos"($I11)
-    ($P10) = rx141_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx141_pos, "")
-    rx141_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx142_pos, 1
+    gt $I11, rx142_eos, rx142_fail
+    sub $I11, rx142_pos, rx142_off
+    substr $S10, rx142_tgt, $I11, 1
+    ne $S10, "+", rx142_fail
+    add rx142_pos, 1
+    set_addr $I10, rxcap_147_fail
+    ($I12, $I11) = rx142_cur."!mark_peek"($I10)
+    rx142_cur."!cursor_pos"($I11)
+    ($P10) = rx142_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx142_pos, "")
+    rx142_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_146_done
-  rxcap_146_fail:
-    goto rx141_fail
-  rxcap_146_done:
+    goto rxcap_147_done
+  rxcap_147_fail:
+    goto rx142_fail
+  rxcap_147_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx141_cur."!cursor_pos"(rx141_pos)
-    $P10 = rx141_cur."backmod"()
-    unless $P10, rx141_fail
-    rx141_cur."!mark_push"(0, -1, 0, $P10)
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."backmod"()
+    unless $P10, rx142_fail
+    rx142_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx141_pos = $P10."pos"()
+    rx142_pos = $P10."pos"()
   # rx pass
-    rx141_cur."!cursor_pass"(rx141_pos, "quantifier:sym<+>")
-    rx141_cur."!cursor_debug"("PASS  ", "quantifier:sym<+>", " at pos=", rx141_pos)
-    .return (rx141_cur)
-  rx141_fail:
+    rx142_cur."!cursor_pass"(rx142_pos, "quantifier:sym<+>")
+    rx142_cur."!cursor_debug"("PASS  ", "quantifier:sym<+>", " at pos=", rx142_pos)
+    .return (rx142_cur)
+  rx142_fail:
 .annotate 'line', 3
-    (rx141_rep, rx141_pos, $I10, $P10) = rx141_cur."!mark_fail"(0)
-    lt rx141_pos, -1, rx141_done
-    eq rx141_pos, -1, rx141_fail
+    (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
+    lt rx142_pos, -1, rx142_done
+    eq rx142_pos, -1, rx142_fail
     jump $I10
-  rx141_done:
-    rx141_cur."!cursor_fail"()
-    rx141_cur."!cursor_debug"("FAIL  ", "quantifier:sym<+>")
-    .return (rx141_cur)
+  rx142_done:
+    rx142_cur."!cursor_fail"()
+    rx142_cur."!cursor_debug"("FAIL  ", "quantifier:sym<+>")
+    .return (rx142_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>"  :subid("39_1274853027.61936") :method
+.sub "!PREFIX__quantifier:sym<+>"  :subid("39_1275811476.7961") :method
 .annotate 'line', 3
-    $P143 = self."!PREFIX__!subrule"("backmod", "+")
-    new $P144, "ResizablePMCArray"
-    push $P144, $P143
-    .return ($P144)
+    $P144 = self."!PREFIX__!subrule"("backmod", "+")
+    new $P145, "ResizablePMCArray"
+    push $P145, $P144
+    .return ($P145)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>"  :subid("40_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "quantifier:sym<?>"  :subid("40_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx148_tgt
-    .local int rx148_pos
-    .local int rx148_off
-    .local int rx148_eos
-    .local int rx148_rep
-    .local pmc rx148_cur
-    (rx148_cur, rx148_pos, rx148_tgt) = self."!cursor_start"()
-    rx148_cur."!cursor_debug"("START ", "quantifier:sym<?>")
-    .lex unicode:"$\x{a2}", rx148_cur
+    .local string rx149_tgt
+    .local int rx149_pos
+    .local int rx149_off
+    .local int rx149_eos
+    .local int rx149_rep
+    .local pmc rx149_cur
+    (rx149_cur, rx149_pos, rx149_tgt) = self."!cursor_start"()
+    rx149_cur."!cursor_debug"("START ", "quantifier:sym<?>")
+    .lex unicode:"$\x{a2}", rx149_cur
     .local pmc match
     .lex "$/", match
-    length rx148_eos, rx148_tgt
-    set rx148_off, 0
-    lt rx148_pos, 2, rx148_start
-    sub rx148_off, rx148_pos, 1
-    substr rx148_tgt, rx148_tgt, rx148_off
-  rx148_start:
+    length rx149_eos, rx149_tgt
+    gt rx149_pos, rx149_eos, rx149_done
+    set rx149_off, 0
+    lt rx149_pos, 2, rx149_start
+    sub rx149_off, rx149_pos, 1
+    substr rx149_tgt, rx149_tgt, rx149_off
+  rx149_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan152_done
-    goto rxscan152_scan
-  rxscan152_loop:
-    ($P10) = rx148_cur."from"()
+    ne $I10, -1, rxscan153_done
+    goto rxscan153_scan
+  rxscan153_loop:
+    ($P10) = rx149_cur."from"()
     inc $P10
-    set rx148_pos, $P10
-    ge rx148_pos, rx148_eos, rxscan152_done
-  rxscan152_scan:
-    set_addr $I10, rxscan152_loop
-    rx148_cur."!mark_push"(0, rx148_pos, $I10)
-  rxscan152_done:
+    set rx149_pos, $P10
+    ge rx149_pos, rx149_eos, rxscan153_done
+  rxscan153_scan:
+    set_addr $I10, rxscan153_loop
+    rx149_cur."!mark_push"(0, rx149_pos, $I10)
+  rxscan153_done:
 .annotate 'line', 55
   # rx subcapture "sym"
-    set_addr $I10, rxcap_153_fail
-    rx148_cur."!mark_push"(0, rx148_pos, $I10)
+    set_addr $I10, rxcap_154_fail
+    rx149_cur."!mark_push"(0, rx149_pos, $I10)
   # rx literal  "?"
-    add $I11, rx148_pos, 1
-    gt $I11, rx148_eos, rx148_fail
-    sub $I11, rx148_pos, rx148_off
-    substr $S10, rx148_tgt, $I11, 1
-    ne $S10, "?", rx148_fail
-    add rx148_pos, 1
-    set_addr $I10, rxcap_153_fail
-    ($I12, $I11) = rx148_cur."!mark_peek"($I10)
-    rx148_cur."!cursor_pos"($I11)
-    ($P10) = rx148_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx148_pos, "")
-    rx148_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx149_pos, 1
+    gt $I11, rx149_eos, rx149_fail
+    sub $I11, rx149_pos, rx149_off
+    substr $S10, rx149_tgt, $I11, 1
+    ne $S10, "?", rx149_fail
+    add rx149_pos, 1
+    set_addr $I10, rxcap_154_fail
+    ($I12, $I11) = rx149_cur."!mark_peek"($I10)
+    rx149_cur."!cursor_pos"($I11)
+    ($P10) = rx149_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx149_pos, "")
+    rx149_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_153_done
-  rxcap_153_fail:
-    goto rx148_fail
-  rxcap_153_done:
+    goto rxcap_154_done
+  rxcap_154_fail:
+    goto rx149_fail
+  rxcap_154_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx148_cur."!cursor_pos"(rx148_pos)
-    $P10 = rx148_cur."backmod"()
-    unless $P10, rx148_fail
-    rx148_cur."!mark_push"(0, -1, 0, $P10)
+    rx149_cur."!cursor_pos"(rx149_pos)
+    $P10 = rx149_cur."backmod"()
+    unless $P10, rx149_fail
+    rx149_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx148_pos = $P10."pos"()
+    rx149_pos = $P10."pos"()
   # rx pass
-    rx148_cur."!cursor_pass"(rx148_pos, "quantifier:sym<?>")
-    rx148_cur."!cursor_debug"("PASS  ", "quantifier:sym<?>", " at pos=", rx148_pos)
-    .return (rx148_cur)
-  rx148_fail:
+    rx149_cur."!cursor_pass"(rx149_pos, "quantifier:sym<?>")
+    rx149_cur."!cursor_debug"("PASS  ", "quantifier:sym<?>", " at pos=", rx149_pos)
+    .return (rx149_cur)
+  rx149_fail:
 .annotate 'line', 3
-    (rx148_rep, rx148_pos, $I10, $P10) = rx148_cur."!mark_fail"(0)
-    lt rx148_pos, -1, rx148_done
-    eq rx148_pos, -1, rx148_fail
+    (rx149_rep, rx149_pos, $I10, $P10) = rx149_cur."!mark_fail"(0)
+    lt rx149_pos, -1, rx149_done
+    eq rx149_pos, -1, rx149_fail
     jump $I10
-  rx148_done:
-    rx148_cur."!cursor_fail"()
-    rx148_cur."!cursor_debug"("FAIL  ", "quantifier:sym<?>")
-    .return (rx148_cur)
+  rx149_done:
+    rx149_cur."!cursor_fail"()
+    rx149_cur."!cursor_debug"("FAIL  ", "quantifier:sym<?>")
+    .return (rx149_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>"  :subid("41_1274853027.61936") :method
+.sub "!PREFIX__quantifier:sym<?>"  :subid("41_1275811476.7961") :method
 .annotate 'line', 3
-    $P150 = self."!PREFIX__!subrule"("backmod", "?")
-    new $P151, "ResizablePMCArray"
-    push $P151, $P150
-    .return ($P151)
+    $P151 = self."!PREFIX__!subrule"("backmod", "?")
+    new $P152, "ResizablePMCArray"
+    push $P152, $P151
+    .return ($P152)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>"  :subid("42_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "quantifier:sym<**>"  :subid("42_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx155_tgt
-    .local int rx155_pos
-    .local int rx155_off
-    .local int rx155_eos
-    .local int rx155_rep
-    .local pmc rx155_cur
-    (rx155_cur, rx155_pos, rx155_tgt) = self."!cursor_start"()
-    rx155_cur."!cursor_debug"("START ", "quantifier:sym<**>")
-    rx155_cur."!cursor_caparray"("max")
-    .lex unicode:"$\x{a2}", rx155_cur
+    .local string rx156_tgt
+    .local int rx156_pos
+    .local int rx156_off
+    .local int rx156_eos
+    .local int rx156_rep
+    .local pmc rx156_cur
+    (rx156_cur, rx156_pos, rx156_tgt) = self."!cursor_start"()
+    rx156_cur."!cursor_debug"("START ", "quantifier:sym<**>")
+    rx156_cur."!cursor_caparray"("max", "normspace")
+    .lex unicode:"$\x{a2}", rx156_cur
     .local pmc match
     .lex "$/", match
-    length rx155_eos, rx155_tgt
-    set rx155_off, 0
-    lt rx155_pos, 2, rx155_start
-    sub rx155_off, rx155_pos, 1
-    substr rx155_tgt, rx155_tgt, rx155_off
-  rx155_start:
+    length rx156_eos, rx156_tgt
+    gt rx156_pos, rx156_eos, rx156_done
+    set rx156_off, 0
+    lt rx156_pos, 2, rx156_start
+    sub rx156_off, rx156_pos, 1
+    substr rx156_tgt, rx156_tgt, rx156_off
+  rx156_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan158_done
-    goto rxscan158_scan
-  rxscan158_loop:
-    ($P10) = rx155_cur."from"()
+    ne $I10, -1, rxscan159_done
+    goto rxscan159_scan
+  rxscan159_loop:
+    ($P10) = rx156_cur."from"()
     inc $P10
-    set rx155_pos, $P10
-    ge rx155_pos, rx155_eos, rxscan158_done
-  rxscan158_scan:
-    set_addr $I10, rxscan158_loop
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
-  rxscan158_done:
+    set rx156_pos, $P10
+    ge rx156_pos, rx156_eos, rxscan159_done
+  rxscan159_scan:
+    set_addr $I10, rxscan159_loop
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+  rxscan159_done:
 .annotate 'line', 57
   # rx subcapture "sym"
-    set_addr $I10, rxcap_159_fail
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+    set_addr $I10, rxcap_160_fail
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
   # rx literal  "**"
-    add $I11, rx155_pos, 2
-    gt $I11, rx155_eos, rx155_fail
-    sub $I11, rx155_pos, rx155_off
-    substr $S10, rx155_tgt, $I11, 2
-    ne $S10, "**", rx155_fail
-    add rx155_pos, 2
-    set_addr $I10, rxcap_159_fail
-    ($I12, $I11) = rx155_cur."!mark_peek"($I10)
-    rx155_cur."!cursor_pos"($I11)
-    ($P10) = rx155_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx155_pos, "")
-    rx155_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx156_pos, 2
+    gt $I11, rx156_eos, rx156_fail
+    sub $I11, rx156_pos, rx156_off
+    substr $S10, rx156_tgt, $I11, 2
+    ne $S10, "**", rx156_fail
+    add rx156_pos, 2
+    set_addr $I10, rxcap_160_fail
+    ($I12, $I11) = rx156_cur."!mark_peek"($I10)
+    rx156_cur."!cursor_pos"($I11)
+    ($P10) = rx156_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx156_pos, "")
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_159_done
-  rxcap_159_fail:
-    goto rx155_fail
-  rxcap_159_done:
-  # rx charclass_q s r 0..-1
-    sub $I10, rx155_pos, rx155_off
-    find_not_cclass $I11, 32, rx155_tgt, $I10, rx155_eos
-    add rx155_pos, rx155_off, $I11
+    goto rxcap_160_done
+  rxcap_160_fail:
+    goto rx156_fail
+  rxcap_160_done:
+  # rx rxquantr161 ** 0..1
+    set_addr $I162, rxquantr161_done
+    rx156_cur."!mark_push"(0, rx156_pos, $I162)
+  rxquantr161_loop:
+  # rx subrule "normspace" subtype=capture negate=
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."normspace"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("normspace")
+    rx156_pos = $P10."pos"()
+    (rx156_rep) = rx156_cur."!mark_commit"($I162)
+  rxquantr161_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."backmod"()
-    unless $P10, rx155_fail
-    rx155_cur."!mark_push"(0, -1, 0, $P10)
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."backmod"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx155_pos = $P10."pos"()
-  # rx charclass_q s r 0..-1
-    sub $I10, rx155_pos, rx155_off
-    find_not_cclass $I11, 32, rx155_tgt, $I10, rx155_eos
-    add rx155_pos, rx155_off, $I11
-  alt160_0:
+    rx156_pos = $P10."pos"()
+  # rx rxquantr163 ** 0..1
+    set_addr $I164, rxquantr163_done
+    rx156_cur."!mark_push"(0, rx156_pos, $I164)
+  rxquantr163_loop:
+  # rx subrule "normspace" subtype=capture negate=
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."normspace"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("normspace")
+    rx156_pos = $P10."pos"()
+    (rx156_rep) = rx156_cur."!mark_commit"($I164)
+  rxquantr163_done:
+  alt165_0:
 .annotate 'line', 58
-    set_addr $I10, alt160_1
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+    set_addr $I10, alt165_1
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
 .annotate 'line', 59
   # rx subcapture "min"
-    set_addr $I10, rxcap_161_fail
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+    set_addr $I10, rxcap_166_fail
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx155_pos, rx155_off
-    find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_eos
+    sub $I10, rx156_pos, rx156_off
+    find_not_cclass $I11, 8, rx156_tgt, $I10, rx156_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx155_fail
-    add rx155_pos, rx155_off, $I11
-    set_addr $I10, rxcap_161_fail
-    ($I12, $I11) = rx155_cur."!mark_peek"($I10)
-    rx155_cur."!cursor_pos"($I11)
-    ($P10) = rx155_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx155_pos, "")
-    rx155_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx156_fail
+    add rx156_pos, rx156_off, $I11
+    set_addr $I10, rxcap_166_fail
+    ($I12, $I11) = rx156_cur."!mark_peek"($I10)
+    rx156_cur."!cursor_pos"($I11)
+    ($P10) = rx156_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx156_pos, "")
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("min")
-    goto rxcap_161_done
-  rxcap_161_fail:
-    goto rx155_fail
-  rxcap_161_done:
+    goto rxcap_166_done
+  rxcap_166_fail:
+    goto rx156_fail
+  rxcap_166_done:
 .annotate 'line', 66
-  # rx rxquantr162 ** 0..1
-    set_addr $I165, rxquantr162_done
-    rx155_cur."!mark_push"(0, rx155_pos, $I165)
-  rxquantr162_loop:
+  # rx rxquantr167 ** 0..1
+    set_addr $I170, rxquantr167_done
+    rx156_cur."!mark_push"(0, rx156_pos, $I170)
+  rxquantr167_loop:
 .annotate 'line', 60
   # rx literal  ".."
-    add $I11, rx155_pos, 2
-    gt $I11, rx155_eos, rx155_fail
-    sub $I11, rx155_pos, rx155_off
-    substr $S10, rx155_tgt, $I11, 2
-    ne $S10, "..", rx155_fail
-    add rx155_pos, 2
+    add $I11, rx156_pos, 2
+    gt $I11, rx156_eos, rx156_fail
+    sub $I11, rx156_pos, rx156_off
+    substr $S10, rx156_tgt, $I11, 2
+    ne $S10, "..", rx156_fail
+    add rx156_pos, 2
 .annotate 'line', 61
   # rx subcapture "max"
-    set_addr $I10, rxcap_164_fail
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
-  alt163_0:
-    set_addr $I10, alt163_1
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+    set_addr $I10, rxcap_169_fail
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+  alt168_0:
+    set_addr $I10, alt168_1
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
 .annotate 'line', 62
   # rx charclass_q d r 1..-1
-    sub $I10, rx155_pos, rx155_off
-    find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_eos
+    sub $I10, rx156_pos, rx156_off
+    find_not_cclass $I11, 8, rx156_tgt, $I10, rx156_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx155_fail
-    add rx155_pos, rx155_off, $I11
-    goto alt163_end
-  alt163_1:
-    set_addr $I10, alt163_2
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+    lt $I11, $I12, rx156_fail
+    add rx156_pos, rx156_off, $I11
+    goto alt168_end
+  alt168_1:
+    set_addr $I10, alt168_2
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
 .annotate 'line', 63
   # rx literal  "*"
-    add $I11, rx155_pos, 1
-    gt $I11, rx155_eos, rx155_fail
-    sub $I11, rx155_pos, rx155_off
-    substr $S10, rx155_tgt, $I11, 1
-    ne $S10, "*", rx155_fail
-    add rx155_pos, 1
-    goto alt163_end
-  alt163_2:
+    add $I11, rx156_pos, 1
+    gt $I11, rx156_eos, rx156_fail
+    sub $I11, rx156_pos, rx156_off
+    substr $S10, rx156_tgt, $I11, 1
+    ne $S10, "*", rx156_fail
+    add rx156_pos, 1
+    goto alt168_end
+  alt168_2:
 .annotate 'line', 64
   # rx subrule "panic" subtype=method negate=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
-    unless $P10, rx155_fail
-    rx155_pos = $P10."pos"()
-  alt163_end:
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
+    unless $P10, rx156_fail
+    rx156_pos = $P10."pos"()
+  alt168_end:
 .annotate 'line', 61
-    set_addr $I10, rxcap_164_fail
-    ($I12, $I11) = rx155_cur."!mark_peek"($I10)
-    rx155_cur."!cursor_pos"($I11)
-    ($P10) = rx155_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx155_pos, "")
-    rx155_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_169_fail
+    ($I12, $I11) = rx156_cur."!mark_peek"($I10)
+    rx156_cur."!cursor_pos"($I11)
+    ($P10) = rx156_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx156_pos, "")
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("max")
-    goto rxcap_164_done
-  rxcap_164_fail:
-    goto rx155_fail
-  rxcap_164_done:
+    goto rxcap_169_done
+  rxcap_169_fail:
+    goto rx156_fail
+  rxcap_169_done:
 .annotate 'line', 66
-    (rx155_rep) = rx155_cur."!mark_commit"($I165)
-  rxquantr162_done:
+    (rx156_rep) = rx156_cur."!mark_commit"($I170)
+  rxquantr167_done:
 .annotate 'line', 59
-    goto alt160_end
-  alt160_1:
+    goto alt165_end
+  alt165_1:
 .annotate 'line', 67
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."quantified_atom"()
-    unless $P10, rx155_fail
-    rx155_cur."!mark_push"(0, -1, 0, $P10)
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."quantified_atom"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantified_atom")
-    rx155_pos = $P10."pos"()
-  alt160_end:
+    rx156_pos = $P10."pos"()
+  alt165_end:
 .annotate 'line', 56
   # rx pass
-    rx155_cur."!cursor_pass"(rx155_pos, "quantifier:sym<**>")
-    rx155_cur."!cursor_debug"("PASS  ", "quantifier:sym<**>", " at pos=", rx155_pos)
-    .return (rx155_cur)
-  rx155_fail:
+    rx156_cur."!cursor_pass"(rx156_pos, "quantifier:sym<**>")
+    rx156_cur."!cursor_debug"("PASS  ", "quantifier:sym<**>", " at pos=", rx156_pos)
+    .return (rx156_cur)
+  rx156_fail:
 .annotate 'line', 3
-    (rx155_rep, rx155_pos, $I10, $P10) = rx155_cur."!mark_fail"(0)
-    lt rx155_pos, -1, rx155_done
-    eq rx155_pos, -1, rx155_fail
+    (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
+    lt rx156_pos, -1, rx156_done
+    eq rx156_pos, -1, rx156_fail
     jump $I10
-  rx155_done:
-    rx155_cur."!cursor_fail"()
-    rx155_cur."!cursor_debug"("FAIL  ", "quantifier:sym<**>")
-    .return (rx155_cur)
+  rx156_done:
+    rx156_cur."!cursor_fail"()
+    rx156_cur."!cursor_debug"("FAIL  ", "quantifier:sym<**>")
+    .return (rx156_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>"  :subid("43_1274853027.61936") :method
+.sub "!PREFIX__quantifier:sym<**>"  :subid("43_1275811476.7961") :method
 .annotate 'line', 3
-    new $P157, "ResizablePMCArray"
-    push $P157, "**"
-    .return ($P157)
+    new $P158, "ResizablePMCArray"
+    push $P158, "**"
+    .return ($P158)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod"  :subid("44_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backmod"  :subid("44_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .const 'Sub' $P175 = "46_1274853027.61936" 
-    capture_lex $P175
-    .local string rx167_tgt
-    .local int rx167_pos
-    .local int rx167_off
-    .local int rx167_eos
-    .local int rx167_rep
-    .local pmc rx167_cur
-    (rx167_cur, rx167_pos, rx167_tgt) = self."!cursor_start"()
-    rx167_cur."!cursor_debug"("START ", "backmod")
-    .lex unicode:"$\x{a2}", rx167_cur
+    .const 'Sub' $P180 = "46_1275811476.7961" 
+    capture_lex $P180
+    .local string rx172_tgt
+    .local int rx172_pos
+    .local int rx172_off
+    .local int rx172_eos
+    .local int rx172_rep
+    .local pmc rx172_cur
+    (rx172_cur, rx172_pos, rx172_tgt) = self."!cursor_start"()
+    rx172_cur."!cursor_debug"("START ", "backmod")
+    .lex unicode:"$\x{a2}", rx172_cur
     .local pmc match
     .lex "$/", match
-    length rx167_eos, rx167_tgt
-    set rx167_off, 0
-    lt rx167_pos, 2, rx167_start
-    sub rx167_off, rx167_pos, 1
-    substr rx167_tgt, rx167_tgt, rx167_off
-  rx167_start:
+    length rx172_eos, rx172_tgt
+    gt rx172_pos, rx172_eos, rx172_done
+    set rx172_off, 0
+    lt rx172_pos, 2, rx172_start
+    sub rx172_off, rx172_pos, 1
+    substr rx172_tgt, rx172_tgt, rx172_off
+  rx172_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan170_done
-    goto rxscan170_scan
-  rxscan170_loop:
-    ($P10) = rx167_cur."from"()
+    ne $I10, -1, rxscan175_done
+    goto rxscan175_scan
+  rxscan175_loop:
+    ($P10) = rx172_cur."from"()
     inc $P10
-    set rx167_pos, $P10
-    ge rx167_pos, rx167_eos, rxscan170_done
-  rxscan170_scan:
-    set_addr $I10, rxscan170_loop
-    rx167_cur."!mark_push"(0, rx167_pos, $I10)
-  rxscan170_done:
+    set rx172_pos, $P10
+    ge rx172_pos, rx172_eos, rxscan175_done
+  rxscan175_scan:
+    set_addr $I10, rxscan175_loop
+    rx172_cur."!mark_push"(0, rx172_pos, $I10)
+  rxscan175_done:
 .annotate 'line', 71
-  # rx rxquantr171 ** 0..1
-    set_addr $I172, rxquantr171_done
-    rx167_cur."!mark_push"(0, rx167_pos, $I172)
-  rxquantr171_loop:
+  # rx rxquantr176 ** 0..1
+    set_addr $I177, rxquantr176_done
+    rx172_cur."!mark_push"(0, rx172_pos, $I177)
+  rxquantr176_loop:
   # rx literal  ":"
-    add $I11, rx167_pos, 1
-    gt $I11, rx167_eos, rx167_fail
-    sub $I11, rx167_pos, rx167_off
-    substr $S10, rx167_tgt, $I11, 1
-    ne $S10, ":", rx167_fail
-    add rx167_pos, 1
-    (rx167_rep) = rx167_cur."!mark_commit"($I172)
-  rxquantr171_done:
-  alt173_0:
-    set_addr $I10, alt173_1
-    rx167_cur."!mark_push"(0, rx167_pos, $I10)
+    add $I11, rx172_pos, 1
+    gt $I11, rx172_eos, rx172_fail
+    sub $I11, rx172_pos, rx172_off
+    substr $S10, rx172_tgt, $I11, 1
+    ne $S10, ":", rx172_fail
+    add rx172_pos, 1
+    (rx172_rep) = rx172_cur."!mark_commit"($I177)
+  rxquantr176_done:
+  alt178_0:
+    set_addr $I10, alt178_1
+    rx172_cur."!mark_push"(0, rx172_pos, $I10)
   # rx literal  "?"
-    add $I11, rx167_pos, 1
-    gt $I11, rx167_eos, rx167_fail
-    sub $I11, rx167_pos, rx167_off
-    substr $S10, rx167_tgt, $I11, 1
-    ne $S10, "?", rx167_fail
-    add rx167_pos, 1
-    goto alt173_end
-  alt173_1:
-    set_addr $I10, alt173_2
-    rx167_cur."!mark_push"(0, rx167_pos, $I10)
+    add $I11, rx172_pos, 1
+    gt $I11, rx172_eos, rx172_fail
+    sub $I11, rx172_pos, rx172_off
+    substr $S10, rx172_tgt, $I11, 1
+    ne $S10, "?", rx172_fail
+    add rx172_pos, 1
+    goto alt178_end
+  alt178_1:
+    set_addr $I10, alt178_2
+    rx172_cur."!mark_push"(0, rx172_pos, $I10)
   # rx literal  "!"
-    add $I11, rx167_pos, 1
-    gt $I11, rx167_eos, rx167_fail
-    sub $I11, rx167_pos, rx167_off
-    substr $S10, rx167_tgt, $I11, 1
-    ne $S10, "!", rx167_fail
-    add rx167_pos, 1
-    goto alt173_end
-  alt173_2:
+    add $I11, rx172_pos, 1
+    gt $I11, rx172_eos, rx172_fail
+    sub $I11, rx172_pos, rx172_off
+    substr $S10, rx172_tgt, $I11, 1
+    ne $S10, "!", rx172_fail
+    add rx172_pos, 1
+    goto alt178_end
+  alt178_2:
   # rx subrule "before" subtype=zerowidth negate=1
-    rx167_cur."!cursor_pos"(rx167_pos)
-    .const 'Sub' $P175 = "46_1274853027.61936" 
-    capture_lex $P175
-    $P10 = rx167_cur."before"($P175)
-    if $P10, rx167_fail
-  alt173_end:
+    rx172_cur."!cursor_pos"(rx172_pos)
+    .const 'Sub' $P180 = "46_1275811476.7961" 
+    capture_lex $P180
+    $P10 = rx172_cur."before"($P180)
+    if $P10, rx172_fail
+  alt178_end:
   # rx pass
-    rx167_cur."!cursor_pass"(rx167_pos, "backmod")
-    rx167_cur."!cursor_debug"("PASS  ", "backmod", " at pos=", rx167_pos)
-    .return (rx167_cur)
-  rx167_fail:
+    rx172_cur."!cursor_pass"(rx172_pos, "backmod")
+    rx172_cur."!cursor_debug"("PASS  ", "backmod", " at pos=", rx172_pos)
+    .return (rx172_cur)
+  rx172_fail:
 .annotate 'line', 3
-    (rx167_rep, rx167_pos, $I10, $P10) = rx167_cur."!mark_fail"(0)
-    lt rx167_pos, -1, rx167_done
-    eq rx167_pos, -1, rx167_fail
+    (rx172_rep, rx172_pos, $I10, $P10) = rx172_cur."!mark_fail"(0)
+    lt rx172_pos, -1, rx172_done
+    eq rx172_pos, -1, rx172_fail
     jump $I10
-  rx167_done:
-    rx167_cur."!cursor_fail"()
-    rx167_cur."!cursor_debug"("FAIL  ", "backmod")
-    .return (rx167_cur)
+  rx172_done:
+    rx172_cur."!cursor_fail"()
+    rx172_cur."!cursor_debug"("FAIL  ", "backmod")
+    .return (rx172_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod"  :subid("45_1274853027.61936") :method
+.sub "!PREFIX__backmod"  :subid("45_1275811476.7961") :method
 .annotate 'line', 3
-    new $P169, "ResizablePMCArray"
-    push $P169, ""
-    .return ($P169)
+    new $P174, "ResizablePMCArray"
+    push $P174, ""
+    .return ($P174)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block174"  :anon :subid("46_1274853027.61936") :method :outer("44_1274853027.61936")
+.sub "_block179"  :anon :subid("46_1275811476.7961") :method :outer("44_1275811476.7961")
 .annotate 'line', 71
-    .local string rx176_tgt
-    .local int rx176_pos
-    .local int rx176_off
-    .local int rx176_eos
-    .local int rx176_rep
-    .local pmc rx176_cur
-    (rx176_cur, rx176_pos, rx176_tgt) = self."!cursor_start"()
-    rx176_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx176_cur
-    .local pmc match
-    .lex "$/", match
-    length rx176_eos, rx176_tgt
-    set rx176_off, 0
-    lt rx176_pos, 2, rx176_start
-    sub rx176_off, rx176_pos, 1
-    substr rx176_tgt, rx176_tgt, rx176_off
-  rx176_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan177_done
-    goto rxscan177_scan
-  rxscan177_loop:
-    ($P10) = rx176_cur."from"()
-    inc $P10
-    set rx176_pos, $P10
-    ge rx176_pos, rx176_eos, rxscan177_done
-  rxscan177_scan:
-    set_addr $I10, rxscan177_loop
-    rx176_cur."!mark_push"(0, rx176_pos, $I10)
-  rxscan177_done:
+    .local string rx181_tgt
+    .local int rx181_pos
+    .local int rx181_off
+    .local int rx181_eos
+    .local int rx181_rep
+    .local pmc rx181_cur
+    (rx181_cur, rx181_pos, rx181_tgt) = self."!cursor_start"()
+    rx181_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx181_cur
+    .local pmc match
+    .lex "$/", match
+    length rx181_eos, rx181_tgt
+    gt rx181_pos, rx181_eos, rx181_done
+    set rx181_off, 0
+    lt rx181_pos, 2, rx181_start
+    sub rx181_off, rx181_pos, 1
+    substr rx181_tgt, rx181_tgt, rx181_off
+  rx181_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan182_done
+    goto rxscan182_scan
+  rxscan182_loop:
+    ($P10) = rx181_cur."from"()
+    inc $P10
+    set rx181_pos, $P10
+    ge rx181_pos, rx181_eos, rxscan182_done
+  rxscan182_scan:
+    set_addr $I10, rxscan182_loop
+    rx181_cur."!mark_push"(0, rx181_pos, $I10)
+  rxscan182_done:
   # rx literal  ":"
-    add $I11, rx176_pos, 1
-    gt $I11, rx176_eos, rx176_fail
-    sub $I11, rx176_pos, rx176_off
-    substr $S10, rx176_tgt, $I11, 1
-    ne $S10, ":", rx176_fail
-    add rx176_pos, 1
+    add $I11, rx181_pos, 1
+    gt $I11, rx181_eos, rx181_fail
+    sub $I11, rx181_pos, rx181_off
+    substr $S10, rx181_tgt, $I11, 1
+    ne $S10, ":", rx181_fail
+    add rx181_pos, 1
   # rx pass
-    rx176_cur."!cursor_pass"(rx176_pos, "")
-    rx176_cur."!cursor_debug"("PASS  ", "", " at pos=", rx176_pos)
-    .return (rx176_cur)
-  rx176_fail:
-    (rx176_rep, rx176_pos, $I10, $P10) = rx176_cur."!mark_fail"(0)
-    lt rx176_pos, -1, rx176_done
-    eq rx176_pos, -1, rx176_fail
+    rx181_cur."!cursor_pass"(rx181_pos, "")
+    rx181_cur."!cursor_debug"("PASS  ", "", " at pos=", rx181_pos)
+    .return (rx181_cur)
+  rx181_fail:
+    (rx181_rep, rx181_pos, $I10, $P10) = rx181_cur."!mark_fail"(0)
+    lt rx181_pos, -1, rx181_done
+    eq rx181_pos, -1, rx181_fail
     jump $I10
-  rx176_done:
-    rx176_cur."!cursor_fail"()
-    rx176_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx176_cur)
+  rx181_done:
+    rx181_cur."!cursor_fail"()
+    rx181_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx181_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar"  :subid("47_1274853027.61936") :method
+.sub "metachar"  :subid("47_1275811476.7961") :method
 .annotate 'line', 73
-    $P179 = self."!protoregex"("metachar")
-    .return ($P179)
+    $P184 = self."!protoregex"("metachar")
+    .return ($P184)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar"  :subid("48_1274853027.61936") :method
+.sub "!PREFIX__metachar"  :subid("48_1275811476.7961") :method
 .annotate 'line', 73
-    $P181 = self."!PREFIX__!protoregex"("metachar")
-    .return ($P181)
+    $P186 = self."!PREFIX__!protoregex"("metachar")
+    .return ($P186)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>"  :subid("49_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<ws>"  :subid("49_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx183_tgt
-    .local int rx183_pos
-    .local int rx183_off
-    .local int rx183_eos
-    .local int rx183_rep
-    .local pmc rx183_cur
-    (rx183_cur, rx183_pos, rx183_tgt) = self."!cursor_start"()
-    rx183_cur."!cursor_debug"("START ", "metachar:sym<ws>")
-    .lex unicode:"$\x{a2}", rx183_cur
-    .local pmc match
-    .lex "$/", match
-    length rx183_eos, rx183_tgt
-    set rx183_off, 0
-    lt rx183_pos, 2, rx183_start
-    sub rx183_off, rx183_pos, 1
-    substr rx183_tgt, rx183_tgt, rx183_off
-  rx183_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan187_done
-    goto rxscan187_scan
-  rxscan187_loop:
-    ($P10) = rx183_cur."from"()
-    inc $P10
-    set rx183_pos, $P10
-    ge rx183_pos, rx183_eos, rxscan187_done
-  rxscan187_scan:
-    set_addr $I10, rxscan187_loop
-    rx183_cur."!mark_push"(0, rx183_pos, $I10)
-  rxscan187_done:
+    .local string rx188_tgt
+    .local int rx188_pos
+    .local int rx188_off
+    .local int rx188_eos
+    .local int rx188_rep
+    .local pmc rx188_cur
+    (rx188_cur, rx188_pos, rx188_tgt) = self."!cursor_start"()
+    rx188_cur."!cursor_debug"("START ", "metachar:sym<ws>")
+    .lex unicode:"$\x{a2}", rx188_cur
+    .local pmc match
+    .lex "$/", match
+    length rx188_eos, rx188_tgt
+    gt rx188_pos, rx188_eos, rx188_done
+    set rx188_off, 0
+    lt rx188_pos, 2, rx188_start
+    sub rx188_off, rx188_pos, 1
+    substr rx188_tgt, rx188_tgt, rx188_off
+  rx188_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan192_done
+    goto rxscan192_scan
+  rxscan192_loop:
+    ($P10) = rx188_cur."from"()
+    inc $P10
+    set rx188_pos, $P10
+    ge rx188_pos, rx188_eos, rxscan192_done
+  rxscan192_scan:
+    set_addr $I10, rxscan192_loop
+    rx188_cur."!mark_push"(0, rx188_pos, $I10)
+  rxscan192_done:
 .annotate 'line', 74
   # rx subrule "normspace" subtype=method negate=
-    rx183_cur."!cursor_pos"(rx183_pos)
-    $P10 = rx183_cur."normspace"()
-    unless $P10, rx183_fail
-    rx183_pos = $P10."pos"()
-  # rx pass
-    rx183_cur."!cursor_pass"(rx183_pos, "metachar:sym<ws>")
-    rx183_cur."!cursor_debug"("PASS  ", "metachar:sym<ws>", " at pos=", rx183_pos)
-    .return (rx183_cur)
-  rx183_fail:
-.annotate 'line', 3
-    (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
-    lt rx183_pos, -1, rx183_done
-    eq rx183_pos, -1, rx183_fail
-    jump $I10
-  rx183_done:
-    rx183_cur."!cursor_fail"()
-    rx183_cur."!cursor_debug"("FAIL  ", "metachar:sym<ws>")
-    .return (rx183_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>"  :subid("50_1274853027.61936") :method
-.annotate 'line', 3
-    $P185 = self."!PREFIX__!subrule"("", "")
-    new $P186, "ResizablePMCArray"
-    push $P186, $P185
-    .return ($P186)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>"  :subid("51_1274853027.61936") :method :outer("11_1274853027.61936")
-.annotate 'line', 3
-    .local string rx189_tgt
-    .local int rx189_pos
-    .local int rx189_off
-    .local int rx189_eos
-    .local int rx189_rep
-    .local pmc rx189_cur
-    (rx189_cur, rx189_pos, rx189_tgt) = self."!cursor_start"()
-    rx189_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
-    .lex unicode:"$\x{a2}", rx189_cur
-    .local pmc match
-    .lex "$/", match
-    length rx189_eos, rx189_tgt
-    set rx189_off, 0
-    lt rx189_pos, 2, rx189_start
-    sub rx189_off, rx189_pos, 1
-    substr rx189_tgt, rx189_tgt, rx189_off
-  rx189_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan193_done
-    goto rxscan193_scan
-  rxscan193_loop:
-    ($P10) = rx189_cur."from"()
-    inc $P10
-    set rx189_pos, $P10
-    ge rx189_pos, rx189_eos, rxscan193_done
-  rxscan193_scan:
-    set_addr $I10, rxscan193_loop
-    rx189_cur."!mark_push"(0, rx189_pos, $I10)
-  rxscan193_done:
-.annotate 'line', 75
-  # rx literal  "["
-    add $I11, rx189_pos, 1
-    gt $I11, rx189_eos, rx189_fail
-    sub $I11, rx189_pos, rx189_off
-    substr $S10, rx189_tgt, $I11, 1
-    ne $S10, "[", rx189_fail
-    add rx189_pos, 1
-  # rx subrule "nibbler" subtype=capture negate=
-    rx189_cur."!cursor_pos"(rx189_pos)
-    $P10 = rx189_cur."nibbler"()
-    unless $P10, rx189_fail
-    rx189_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("nibbler")
-    rx189_pos = $P10."pos"()
-  # rx literal  "]"
-    add $I11, rx189_pos, 1
-    gt $I11, rx189_eos, rx189_fail
-    sub $I11, rx189_pos, rx189_off
-    substr $S10, rx189_tgt, $I11, 1
-    ne $S10, "]", rx189_fail
-    add rx189_pos, 1
+    rx188_cur."!cursor_pos"(rx188_pos)
+    $P10 = rx188_cur."normspace"()
+    unless $P10, rx188_fail
+    rx188_pos = $P10."pos"()
   # rx pass
-    rx189_cur."!cursor_pass"(rx189_pos, "metachar:sym<[ ]>")
-    rx189_cur."!cursor_debug"("PASS  ", "metachar:sym<[ ]>", " at pos=", rx189_pos)
-    .return (rx189_cur)
-  rx189_fail:
+    rx188_cur."!cursor_pass"(rx188_pos, "metachar:sym<ws>")
+    rx188_cur."!cursor_debug"("PASS  ", "metachar:sym<ws>", " at pos=", rx188_pos)
+    .return (rx188_cur)
+  rx188_fail:
 .annotate 'line', 3
-    (rx189_rep, rx189_pos, $I10, $P10) = rx189_cur."!mark_fail"(0)
-    lt rx189_pos, -1, rx189_done
-    eq rx189_pos, -1, rx189_fail
+    (rx188_rep, rx188_pos, $I10, $P10) = rx188_cur."!mark_fail"(0)
+    lt rx188_pos, -1, rx188_done
+    eq rx188_pos, -1, rx188_fail
     jump $I10
-  rx189_done:
-    rx189_cur."!cursor_fail"()
-    rx189_cur."!cursor_debug"("FAIL  ", "metachar:sym<[ ]>")
-    .return (rx189_cur)
+  rx188_done:
+    rx188_cur."!cursor_fail"()
+    rx188_cur."!cursor_debug"("FAIL  ", "metachar:sym<ws>")
+    .return (rx188_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>"  :subid("52_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<ws>"  :subid("50_1275811476.7961") :method
 .annotate 'line', 3
-    $P191 = self."!PREFIX__!subrule"("nibbler", "[")
-    new $P192, "ResizablePMCArray"
-    push $P192, $P191
-    .return ($P192)
+    $P190 = self."!PREFIX__!subrule"("normspace", "")
+    new $P191, "ResizablePMCArray"
+    push $P191, $P190
+    .return ($P191)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>"  :subid("53_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<[ ]>"  :subid("51_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx195_tgt
-    .local int rx195_pos
-    .local int rx195_off
-    .local int rx195_eos
-    .local int rx195_rep
-    .local pmc rx195_cur
-    (rx195_cur, rx195_pos, rx195_tgt) = self."!cursor_start"()
-    rx195_cur."!cursor_debug"("START ", "metachar:sym<( )>")
-    .lex unicode:"$\x{a2}", rx195_cur
+    .local string rx194_tgt
+    .local int rx194_pos
+    .local int rx194_off
+    .local int rx194_eos
+    .local int rx194_rep
+    .local pmc rx194_cur
+    (rx194_cur, rx194_pos, rx194_tgt) = self."!cursor_start"()
+    rx194_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
+    .lex unicode:"$\x{a2}", rx194_cur
     .local pmc match
     .lex "$/", match
-    length rx195_eos, rx195_tgt
-    set rx195_off, 0
-    lt rx195_pos, 2, rx195_start
-    sub rx195_off, rx195_pos, 1
-    substr rx195_tgt, rx195_tgt, rx195_off
-  rx195_start:
+    length rx194_eos, rx194_tgt
+    gt rx194_pos, rx194_eos, rx194_done
+    set rx194_off, 0
+    lt rx194_pos, 2, rx194_start
+    sub rx194_off, rx194_pos, 1
+    substr rx194_tgt, rx194_tgt, rx194_off
+  rx194_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan199_done
-    goto rxscan199_scan
-  rxscan199_loop:
-    ($P10) = rx195_cur."from"()
+    ne $I10, -1, rxscan198_done
+    goto rxscan198_scan
+  rxscan198_loop:
+    ($P10) = rx194_cur."from"()
     inc $P10
-    set rx195_pos, $P10
-    ge rx195_pos, rx195_eos, rxscan199_done
-  rxscan199_scan:
-    set_addr $I10, rxscan199_loop
-    rx195_cur."!mark_push"(0, rx195_pos, $I10)
-  rxscan199_done:
-.annotate 'line', 76
-  # rx literal  "("
-    add $I11, rx195_pos, 1
-    gt $I11, rx195_eos, rx195_fail
-    sub $I11, rx195_pos, rx195_off
-    substr $S10, rx195_tgt, $I11, 1
-    ne $S10, "(", rx195_fail
-    add rx195_pos, 1
+    set rx194_pos, $P10
+    ge rx194_pos, rx194_eos, rxscan198_done
+  rxscan198_scan:
+    set_addr $I10, rxscan198_loop
+    rx194_cur."!mark_push"(0, rx194_pos, $I10)
+  rxscan198_done:
+.annotate 'line', 75
+  # rx literal  "["
+    add $I11, rx194_pos, 1
+    gt $I11, rx194_eos, rx194_fail
+    sub $I11, rx194_pos, rx194_off
+    substr $S10, rx194_tgt, $I11, 1
+    ne $S10, "[", rx194_fail
+    add rx194_pos, 1
   # rx subrule "nibbler" subtype=capture negate=
-    rx195_cur."!cursor_pos"(rx195_pos)
-    $P10 = rx195_cur."nibbler"()
-    unless $P10, rx195_fail
-    rx195_cur."!mark_push"(0, -1, 0, $P10)
+    rx194_cur."!cursor_pos"(rx194_pos)
+    $P10 = rx194_cur."nibbler"()
+    unless $P10, rx194_fail
+    rx194_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx195_pos = $P10."pos"()
-  # rx literal  ")"
-    add $I11, rx195_pos, 1
-    gt $I11, rx195_eos, rx195_fail
-    sub $I11, rx195_pos, rx195_off
-    substr $S10, rx195_tgt, $I11, 1
-    ne $S10, ")", rx195_fail
-    add rx195_pos, 1
+    rx194_pos = $P10."pos"()
+  # rx literal  "]"
+    add $I11, rx194_pos, 1
+    gt $I11, rx194_eos, rx194_fail
+    sub $I11, rx194_pos, rx194_off
+    substr $S10, rx194_tgt, $I11, 1
+    ne $S10, "]", rx194_fail
+    add rx194_pos, 1
   # rx pass
-    rx195_cur."!cursor_pass"(rx195_pos, "metachar:sym<( )>")
-    rx195_cur."!cursor_debug"("PASS  ", "metachar:sym<( )>", " at pos=", rx195_pos)
-    .return (rx195_cur)
-  rx195_fail:
+    rx194_cur."!cursor_pass"(rx194_pos, "metachar:sym<[ ]>")
+    rx194_cur."!cursor_debug"("PASS  ", "metachar:sym<[ ]>", " at pos=", rx194_pos)
+    .return (rx194_cur)
+  rx194_fail:
 .annotate 'line', 3
-    (rx195_rep, rx195_pos, $I10, $P10) = rx195_cur."!mark_fail"(0)
-    lt rx195_pos, -1, rx195_done
-    eq rx195_pos, -1, rx195_fail
+    (rx194_rep, rx194_pos, $I10, $P10) = rx194_cur."!mark_fail"(0)
+    lt rx194_pos, -1, rx194_done
+    eq rx194_pos, -1, rx194_fail
     jump $I10
-  rx195_done:
-    rx195_cur."!cursor_fail"()
-    rx195_cur."!cursor_debug"("FAIL  ", "metachar:sym<( )>")
-    .return (rx195_cur)
+  rx194_done:
+    rx194_cur."!cursor_fail"()
+    rx194_cur."!cursor_debug"("FAIL  ", "metachar:sym<[ ]>")
+    .return (rx194_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>"  :subid("54_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<[ ]>"  :subid("52_1275811476.7961") :method
 .annotate 'line', 3
-    $P197 = self."!PREFIX__!subrule"("nibbler", "(")
-    new $P198, "ResizablePMCArray"
-    push $P198, $P197
-    .return ($P198)
+    $P196 = self."!PREFIX__!subrule"("nibbler", "[")
+    new $P197, "ResizablePMCArray"
+    push $P197, $P196
+    .return ($P197)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>"  :subid("55_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<( )>"  :subid("53_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx201_tgt
-    .local int rx201_pos
-    .local int rx201_off
-    .local int rx201_eos
-    .local int rx201_rep
-    .local pmc rx201_cur
-    (rx201_cur, rx201_pos, rx201_tgt) = self."!cursor_start"()
-    rx201_cur."!cursor_debug"("START ", "metachar:sym<'>")
-    .lex unicode:"$\x{a2}", rx201_cur
+    .local string rx200_tgt
+    .local int rx200_pos
+    .local int rx200_off
+    .local int rx200_eos
+    .local int rx200_rep
+    .local pmc rx200_cur
+    (rx200_cur, rx200_pos, rx200_tgt) = self."!cursor_start"()
+    rx200_cur."!cursor_debug"("START ", "metachar:sym<( )>")
+    .lex unicode:"$\x{a2}", rx200_cur
     .local pmc match
     .lex "$/", match
-    length rx201_eos, rx201_tgt
-    set rx201_off, 0
-    lt rx201_pos, 2, rx201_start
-    sub rx201_off, rx201_pos, 1
-    substr rx201_tgt, rx201_tgt, rx201_off
-  rx201_start:
+    length rx200_eos, rx200_tgt
+    gt rx200_pos, rx200_eos, rx200_done
+    set rx200_off, 0
+    lt rx200_pos, 2, rx200_start
+    sub rx200_off, rx200_pos, 1
+    substr rx200_tgt, rx200_tgt, rx200_off
+  rx200_start:
     $I10 = self.'from'()
     ne $I10, -1, rxscan204_done
     goto rxscan204_scan
   rxscan204_loop:
-    ($P10) = rx201_cur."from"()
+    ($P10) = rx200_cur."from"()
     inc $P10
-    set rx201_pos, $P10
-    ge rx201_pos, rx201_eos, rxscan204_done
+    set rx200_pos, $P10
+    ge rx200_pos, rx200_eos, rxscan204_done
   rxscan204_scan:
     set_addr $I10, rxscan204_loop
-    rx201_cur."!mark_push"(0, rx201_pos, $I10)
+    rx200_cur."!mark_push"(0, rx200_pos, $I10)
   rxscan204_done:
-.annotate 'line', 77
-  # rx enumcharlist negate=0 zerowidth
-    ge rx201_pos, rx201_eos, rx201_fail
-    sub $I10, rx201_pos, rx201_off
-    substr $S10, rx201_tgt, $I10, 1
-    index $I11, "'", $S10
-    lt $I11, 0, rx201_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx201_cur."!cursor_pos"(rx201_pos)
-    $P10 = rx201_cur."quote_EXPR"(":q")
-    unless $P10, rx201_fail
-    rx201_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx201_pos = $P10."pos"()
+.annotate 'line', 76
+  # rx literal  "("
+    add $I11, rx200_pos, 1
+    gt $I11, rx200_eos, rx200_fail
+    sub $I11, rx200_pos, rx200_off
+    substr $S10, rx200_tgt, $I11, 1
+    ne $S10, "(", rx200_fail
+    add rx200_pos, 1
+  # rx subrule "nibbler" subtype=capture negate=
+    rx200_cur."!cursor_pos"(rx200_pos)
+    $P10 = rx200_cur."nibbler"()
+    unless $P10, rx200_fail
+    rx200_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("nibbler")
+    rx200_pos = $P10."pos"()
+  # rx literal  ")"
+    add $I11, rx200_pos, 1
+    gt $I11, rx200_eos, rx200_fail
+    sub $I11, rx200_pos, rx200_off
+    substr $S10, rx200_tgt, $I11, 1
+    ne $S10, ")", rx200_fail
+    add rx200_pos, 1
   # rx pass
-    rx201_cur."!cursor_pass"(rx201_pos, "metachar:sym<'>")
-    rx201_cur."!cursor_debug"("PASS  ", "metachar:sym<'>", " at pos=", rx201_pos)
-    .return (rx201_cur)
-  rx201_fail:
+    rx200_cur."!cursor_pass"(rx200_pos, "metachar:sym<( )>")
+    rx200_cur."!cursor_debug"("PASS  ", "metachar:sym<( )>", " at pos=", rx200_pos)
+    .return (rx200_cur)
+  rx200_fail:
 .annotate 'line', 3
-    (rx201_rep, rx201_pos, $I10, $P10) = rx201_cur."!mark_fail"(0)
-    lt rx201_pos, -1, rx201_done
-    eq rx201_pos, -1, rx201_fail
+    (rx200_rep, rx200_pos, $I10, $P10) = rx200_cur."!mark_fail"(0)
+    lt rx200_pos, -1, rx200_done
+    eq rx200_pos, -1, rx200_fail
     jump $I10
-  rx201_done:
-    rx201_cur."!cursor_fail"()
-    rx201_cur."!cursor_debug"("FAIL  ", "metachar:sym<'>")
-    .return (rx201_cur)
+  rx200_done:
+    rx200_cur."!cursor_fail"()
+    rx200_cur."!cursor_debug"("FAIL  ", "metachar:sym<( )>")
+    .return (rx200_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>"  :subid("56_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<( )>"  :subid("54_1275811476.7961") :method
 .annotate 'line', 3
+    $P202 = self."!PREFIX__!subrule"("nibbler", "(")
     new $P203, "ResizablePMCArray"
-    push $P203, "'"
+    push $P203, $P202
     .return ($P203)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">"  :subid("57_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<'>"  :subid("55_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
     .local string rx206_tgt
     .local int rx206_pos
@@ -2349,11 +2317,12 @@
     .local int rx206_rep
     .local pmc rx206_cur
     (rx206_cur, rx206_pos, rx206_tgt) = self."!cursor_start"()
-    rx206_cur."!cursor_debug"("START ", "metachar:sym<\">")
+    rx206_cur."!cursor_debug"("START ", "metachar:sym<'>")
     .lex unicode:"$\x{a2}", rx206_cur
     .local pmc match
     .lex "$/", match
     length rx206_eos, rx206_tgt
+    gt rx206_pos, rx206_eos, rx206_done
     set rx206_off, 0
     lt rx206_pos, 2, rx206_start
     sub rx206_off, rx206_pos, 1
@@ -2371,23 +2340,23 @@
     set_addr $I10, rxscan209_loop
     rx206_cur."!mark_push"(0, rx206_pos, $I10)
   rxscan209_done:
-.annotate 'line', 78
+.annotate 'line', 77
   # rx enumcharlist negate=0 zerowidth
     ge rx206_pos, rx206_eos, rx206_fail
     sub $I10, rx206_pos, rx206_off
     substr $S10, rx206_tgt, $I10, 1
-    index $I11, "\"", $S10
+    index $I11, "'", $S10
     lt $I11, 0, rx206_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
     rx206_cur."!cursor_pos"(rx206_pos)
-    $P10 = rx206_cur."quote_EXPR"(":qq")
+    $P10 = rx206_cur."quote_EXPR"(":q")
     unless $P10, rx206_fail
     rx206_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
     rx206_pos = $P10."pos"()
   # rx pass
-    rx206_cur."!cursor_pass"(rx206_pos, "metachar:sym<\">")
-    rx206_cur."!cursor_debug"("PASS  ", "metachar:sym<\">", " at pos=", rx206_pos)
+    rx206_cur."!cursor_pass"(rx206_pos, "metachar:sym<'>")
+    rx206_cur."!cursor_debug"("PASS  ", "metachar:sym<'>", " at pos=", rx206_pos)
     .return (rx206_cur)
   rx206_fail:
 .annotate 'line', 3
@@ -2397,23 +2366,23 @@
     jump $I10
   rx206_done:
     rx206_cur."!cursor_fail"()
-    rx206_cur."!cursor_debug"("FAIL  ", "metachar:sym<\">")
+    rx206_cur."!cursor_debug"("FAIL  ", "metachar:sym<'>")
     .return (rx206_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">"  :subid("58_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<'>"  :subid("56_1275811476.7961") :method
 .annotate 'line', 3
     new $P208, "ResizablePMCArray"
-    push $P208, "\""
+    push $P208, "'"
     .return ($P208)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>"  :subid("59_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<\">"  :subid("57_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
     .local string rx211_tgt
     .local int rx211_pos
@@ -2422,11 +2391,12 @@
     .local int rx211_rep
     .local pmc rx211_cur
     (rx211_cur, rx211_pos, rx211_tgt) = self."!cursor_start"()
-    rx211_cur."!cursor_debug"("START ", "metachar:sym<.>")
+    rx211_cur."!cursor_debug"("START ", "metachar:sym<\">")
     .lex unicode:"$\x{a2}", rx211_cur
     .local pmc match
     .lex "$/", match
     length rx211_eos, rx211_tgt
+    gt rx211_pos, rx211_eos, rx211_done
     set rx211_off, 0
     lt rx211_pos, 2, rx211_start
     sub rx211_off, rx211_pos, 1
@@ -2444,31 +2414,23 @@
     set_addr $I10, rxscan214_loop
     rx211_cur."!mark_push"(0, rx211_pos, $I10)
   rxscan214_done:
-.annotate 'line', 79
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_215_fail
-    rx211_cur."!mark_push"(0, rx211_pos, $I10)
-  # rx literal  "."
-    add $I11, rx211_pos, 1
-    gt $I11, rx211_eos, rx211_fail
-    sub $I11, rx211_pos, rx211_off
-    substr $S10, rx211_tgt, $I11, 1
-    ne $S10, ".", rx211_fail
-    add rx211_pos, 1
-    set_addr $I10, rxcap_215_fail
-    ($I12, $I11) = rx211_cur."!mark_peek"($I10)
-    rx211_cur."!cursor_pos"($I11)
-    ($P10) = rx211_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx211_pos, "")
+.annotate 'line', 78
+  # rx enumcharlist negate=0 zerowidth
+    ge rx211_pos, rx211_eos, rx211_fail
+    sub $I10, rx211_pos, rx211_off
+    substr $S10, rx211_tgt, $I10, 1
+    index $I11, "\"", $S10
+    lt $I11, 0, rx211_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx211_cur."!cursor_pos"(rx211_pos)
+    $P10 = rx211_cur."quote_EXPR"(":qq")
+    unless $P10, rx211_fail
     rx211_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_215_done
-  rxcap_215_fail:
-    goto rx211_fail
-  rxcap_215_done:
+    $P10."!cursor_names"("quote_EXPR")
+    rx211_pos = $P10."pos"()
   # rx pass
-    rx211_cur."!cursor_pass"(rx211_pos, "metachar:sym<.>")
-    rx211_cur."!cursor_debug"("PASS  ", "metachar:sym<.>", " at pos=", rx211_pos)
+    rx211_cur."!cursor_pass"(rx211_pos, "metachar:sym<\">")
+    rx211_cur."!cursor_debug"("PASS  ", "metachar:sym<\">", " at pos=", rx211_pos)
     .return (rx211_cur)
   rx211_fail:
 .annotate 'line', 3
@@ -2478,4115 +2440,4184 @@
     jump $I10
   rx211_done:
     rx211_cur."!cursor_fail"()
-    rx211_cur."!cursor_debug"("FAIL  ", "metachar:sym<.>")
+    rx211_cur."!cursor_debug"("FAIL  ", "metachar:sym<\">")
     .return (rx211_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>"  :subid("60_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<\">"  :subid("58_1275811476.7961") :method
 .annotate 'line', 3
     new $P213, "ResizablePMCArray"
-    push $P213, "."
+    push $P213, "\""
     .return ($P213)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>"  :subid("61_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<.>"  :subid("59_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+    .local string rx216_tgt
+    .local int rx216_pos
+    .local int rx216_off
+    .local int rx216_eos
+    .local int rx216_rep
+    .local pmc rx216_cur
+    (rx216_cur, rx216_pos, rx216_tgt) = self."!cursor_start"()
+    rx216_cur."!cursor_debug"("START ", "metachar:sym<.>")
+    .lex unicode:"$\x{a2}", rx216_cur
+    .local pmc match
+    .lex "$/", match
+    length rx216_eos, rx216_tgt
+    gt rx216_pos, rx216_eos, rx216_done
+    set rx216_off, 0
+    lt rx216_pos, 2, rx216_start
+    sub rx216_off, rx216_pos, 1
+    substr rx216_tgt, rx216_tgt, rx216_off
+  rx216_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan219_done
+    goto rxscan219_scan
+  rxscan219_loop:
+    ($P10) = rx216_cur."from"()
+    inc $P10
+    set rx216_pos, $P10
+    ge rx216_pos, rx216_eos, rxscan219_done
+  rxscan219_scan:
+    set_addr $I10, rxscan219_loop
+    rx216_cur."!mark_push"(0, rx216_pos, $I10)
+  rxscan219_done:
+.annotate 'line', 79
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_220_fail
+    rx216_cur."!mark_push"(0, rx216_pos, $I10)
+  # rx literal  "."
+    add $I11, rx216_pos, 1
+    gt $I11, rx216_eos, rx216_fail
+    sub $I11, rx216_pos, rx216_off
+    substr $S10, rx216_tgt, $I11, 1
+    ne $S10, ".", rx216_fail
+    add rx216_pos, 1
+    set_addr $I10, rxcap_220_fail
+    ($I12, $I11) = rx216_cur."!mark_peek"($I10)
+    rx216_cur."!cursor_pos"($I11)
+    ($P10) = rx216_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx216_pos, "")
+    rx216_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_220_done
+  rxcap_220_fail:
+    goto rx216_fail
+  rxcap_220_done:
+  # rx pass
+    rx216_cur."!cursor_pass"(rx216_pos, "metachar:sym<.>")
+    rx216_cur."!cursor_debug"("PASS  ", "metachar:sym<.>", " at pos=", rx216_pos)
+    .return (rx216_cur)
+  rx216_fail:
+.annotate 'line', 3
+    (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0)
+    lt rx216_pos, -1, rx216_done
+    eq rx216_pos, -1, rx216_fail
+    jump $I10
+  rx216_done:
+    rx216_cur."!cursor_fail"()
+    rx216_cur."!cursor_debug"("FAIL  ", "metachar:sym<.>")
+    .return (rx216_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__metachar:sym<.>"  :subid("60_1275811476.7961") :method
+.annotate 'line', 3
+    new $P218, "ResizablePMCArray"
+    push $P218, "."
+    .return ($P218)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<^>"  :subid("61_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx217_tgt
-    .local int rx217_pos
-    .local int rx217_off
-    .local int rx217_eos
-    .local int rx217_rep
-    .local pmc rx217_cur
-    (rx217_cur, rx217_pos, rx217_tgt) = self."!cursor_start"()
-    rx217_cur."!cursor_debug"("START ", "metachar:sym<^>")
-    .lex unicode:"$\x{a2}", rx217_cur
-    .local pmc match
-    .lex "$/", match
-    length rx217_eos, rx217_tgt
-    set rx217_off, 0
-    lt rx217_pos, 2, rx217_start
-    sub rx217_off, rx217_pos, 1
-    substr rx217_tgt, rx217_tgt, rx217_off
-  rx217_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan220_done
-    goto rxscan220_scan
-  rxscan220_loop:
-    ($P10) = rx217_cur."from"()
-    inc $P10
-    set rx217_pos, $P10
-    ge rx217_pos, rx217_eos, rxscan220_done
-  rxscan220_scan:
-    set_addr $I10, rxscan220_loop
-    rx217_cur."!mark_push"(0, rx217_pos, $I10)
-  rxscan220_done:
+    .local string rx222_tgt
+    .local int rx222_pos
+    .local int rx222_off
+    .local int rx222_eos
+    .local int rx222_rep
+    .local pmc rx222_cur
+    (rx222_cur, rx222_pos, rx222_tgt) = self."!cursor_start"()
+    rx222_cur."!cursor_debug"("START ", "metachar:sym<^>")
+    .lex unicode:"$\x{a2}", rx222_cur
+    .local pmc match
+    .lex "$/", match
+    length rx222_eos, rx222_tgt
+    gt rx222_pos, rx222_eos, rx222_done
+    set rx222_off, 0
+    lt rx222_pos, 2, rx222_start
+    sub rx222_off, rx222_pos, 1
+    substr rx222_tgt, rx222_tgt, rx222_off
+  rx222_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan225_done
+    goto rxscan225_scan
+  rxscan225_loop:
+    ($P10) = rx222_cur."from"()
+    inc $P10
+    set rx222_pos, $P10
+    ge rx222_pos, rx222_eos, rxscan225_done
+  rxscan225_scan:
+    set_addr $I10, rxscan225_loop
+    rx222_cur."!mark_push"(0, rx222_pos, $I10)
+  rxscan225_done:
 .annotate 'line', 80
   # rx subcapture "sym"
-    set_addr $I10, rxcap_221_fail
-    rx217_cur."!mark_push"(0, rx217_pos, $I10)
+    set_addr $I10, rxcap_226_fail
+    rx222_cur."!mark_push"(0, rx222_pos, $I10)
   # rx literal  "^"
-    add $I11, rx217_pos, 1
-    gt $I11, rx217_eos, rx217_fail
-    sub $I11, rx217_pos, rx217_off
-    substr $S10, rx217_tgt, $I11, 1
-    ne $S10, "^", rx217_fail
-    add rx217_pos, 1
-    set_addr $I10, rxcap_221_fail
-    ($I12, $I11) = rx217_cur."!mark_peek"($I10)
-    rx217_cur."!cursor_pos"($I11)
-    ($P10) = rx217_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx217_pos, "")
-    rx217_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx222_pos, 1
+    gt $I11, rx222_eos, rx222_fail
+    sub $I11, rx222_pos, rx222_off
+    substr $S10, rx222_tgt, $I11, 1
+    ne $S10, "^", rx222_fail
+    add rx222_pos, 1
+    set_addr $I10, rxcap_226_fail
+    ($I12, $I11) = rx222_cur."!mark_peek"($I10)
+    rx222_cur."!cursor_pos"($I11)
+    ($P10) = rx222_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx222_pos, "")
+    rx222_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_221_done
-  rxcap_221_fail:
-    goto rx217_fail
-  rxcap_221_done:
+    goto rxcap_226_done
+  rxcap_226_fail:
+    goto rx222_fail
+  rxcap_226_done:
   # rx pass
-    rx217_cur."!cursor_pass"(rx217_pos, "metachar:sym<^>")
-    rx217_cur."!cursor_debug"("PASS  ", "metachar:sym<^>", " at pos=", rx217_pos)
-    .return (rx217_cur)
-  rx217_fail:
+    rx222_cur."!cursor_pass"(rx222_pos, "metachar:sym<^>")
+    rx222_cur."!cursor_debug"("PASS  ", "metachar:sym<^>", " at pos=", rx222_pos)
+    .return (rx222_cur)
+  rx222_fail:
 .annotate 'line', 3
-    (rx217_rep, rx217_pos, $I10, $P10) = rx217_cur."!mark_fail"(0)
-    lt rx217_pos, -1, rx217_done
-    eq rx217_pos, -1, rx217_fail
+    (rx222_rep, rx222_pos, $I10, $P10) = rx222_cur."!mark_fail"(0)
+    lt rx222_pos, -1, rx222_done
+    eq rx222_pos, -1, rx222_fail
     jump $I10
-  rx217_done:
-    rx217_cur."!cursor_fail"()
-    rx217_cur."!cursor_debug"("FAIL  ", "metachar:sym<^>")
-    .return (rx217_cur)
+  rx222_done:
+    rx222_cur."!cursor_fail"()
+    rx222_cur."!cursor_debug"("FAIL  ", "metachar:sym<^>")
+    .return (rx222_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>"  :subid("62_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<^>"  :subid("62_1275811476.7961") :method
 .annotate 'line', 3
-    new $P219, "ResizablePMCArray"
-    push $P219, "^"
-    .return ($P219)
+    new $P224, "ResizablePMCArray"
+    push $P224, "^"
+    .return ($P224)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>"  :subid("63_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<^^>"  :subid("63_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx223_tgt
-    .local int rx223_pos
-    .local int rx223_off
-    .local int rx223_eos
-    .local int rx223_rep
-    .local pmc rx223_cur
-    (rx223_cur, rx223_pos, rx223_tgt) = self."!cursor_start"()
-    rx223_cur."!cursor_debug"("START ", "metachar:sym<^^>")
-    .lex unicode:"$\x{a2}", rx223_cur
+    .local string rx228_tgt
+    .local int rx228_pos
+    .local int rx228_off
+    .local int rx228_eos
+    .local int rx228_rep
+    .local pmc rx228_cur
+    (rx228_cur, rx228_pos, rx228_tgt) = self."!cursor_start"()
+    rx228_cur."!cursor_debug"("START ", "metachar:sym<^^>")
+    .lex unicode:"$\x{a2}", rx228_cur
     .local pmc match
     .lex "$/", match
-    length rx223_eos, rx223_tgt
-    set rx223_off, 0
-    lt rx223_pos, 2, rx223_start
-    sub rx223_off, rx223_pos, 1
-    substr rx223_tgt, rx223_tgt, rx223_off
-  rx223_start:
+    length rx228_eos, rx228_tgt
+    gt rx228_pos, rx228_eos, rx228_done
+    set rx228_off, 0
+    lt rx228_pos, 2, rx228_start
+    sub rx228_off, rx228_pos, 1
+    substr rx228_tgt, rx228_tgt, rx228_off
+  rx228_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan226_done
-    goto rxscan226_scan
-  rxscan226_loop:
-    ($P10) = rx223_cur."from"()
+    ne $I10, -1, rxscan231_done
+    goto rxscan231_scan
+  rxscan231_loop:
+    ($P10) = rx228_cur."from"()
     inc $P10
-    set rx223_pos, $P10
-    ge rx223_pos, rx223_eos, rxscan226_done
-  rxscan226_scan:
-    set_addr $I10, rxscan226_loop
-    rx223_cur."!mark_push"(0, rx223_pos, $I10)
-  rxscan226_done:
+    set rx228_pos, $P10
+    ge rx228_pos, rx228_eos, rxscan231_done
+  rxscan231_scan:
+    set_addr $I10, rxscan231_loop
+    rx228_cur."!mark_push"(0, rx228_pos, $I10)
+  rxscan231_done:
 .annotate 'line', 81
   # rx subcapture "sym"
-    set_addr $I10, rxcap_227_fail
-    rx223_cur."!mark_push"(0, rx223_pos, $I10)
+    set_addr $I10, rxcap_232_fail
+    rx228_cur."!mark_push"(0, rx228_pos, $I10)
   # rx literal  "^^"
-    add $I11, rx223_pos, 2
-    gt $I11, rx223_eos, rx223_fail
-    sub $I11, rx223_pos, rx223_off
-    substr $S10, rx223_tgt, $I11, 2
-    ne $S10, "^^", rx223_fail
-    add rx223_pos, 2
-    set_addr $I10, rxcap_227_fail
-    ($I12, $I11) = rx223_cur."!mark_peek"($I10)
-    rx223_cur."!cursor_pos"($I11)
-    ($P10) = rx223_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx223_pos, "")
-    rx223_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx228_pos, 2
+    gt $I11, rx228_eos, rx228_fail
+    sub $I11, rx228_pos, rx228_off
+    substr $S10, rx228_tgt, $I11, 2
+    ne $S10, "^^", rx228_fail
+    add rx228_pos, 2
+    set_addr $I10, rxcap_232_fail
+    ($I12, $I11) = rx228_cur."!mark_peek"($I10)
+    rx228_cur."!cursor_pos"($I11)
+    ($P10) = rx228_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx228_pos, "")
+    rx228_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_227_done
-  rxcap_227_fail:
-    goto rx223_fail
-  rxcap_227_done:
+    goto rxcap_232_done
+  rxcap_232_fail:
+    goto rx228_fail
+  rxcap_232_done:
   # rx pass
-    rx223_cur."!cursor_pass"(rx223_pos, "metachar:sym<^^>")
-    rx223_cur."!cursor_debug"("PASS  ", "metachar:sym<^^>", " at pos=", rx223_pos)
-    .return (rx223_cur)
-  rx223_fail:
+    rx228_cur."!cursor_pass"(rx228_pos, "metachar:sym<^^>")
+    rx228_cur."!cursor_debug"("PASS  ", "metachar:sym<^^>", " at pos=", rx228_pos)
+    .return (rx228_cur)
+  rx228_fail:
 .annotate 'line', 3
-    (rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0)
-    lt rx223_pos, -1, rx223_done
-    eq rx223_pos, -1, rx223_fail
+    (rx228_rep, rx228_pos, $I10, $P10) = rx228_cur."!mark_fail"(0)
+    lt rx228_pos, -1, rx228_done
+    eq rx228_pos, -1, rx228_fail
     jump $I10
-  rx223_done:
-    rx223_cur."!cursor_fail"()
-    rx223_cur."!cursor_debug"("FAIL  ", "metachar:sym<^^>")
-    .return (rx223_cur)
+  rx228_done:
+    rx228_cur."!cursor_fail"()
+    rx228_cur."!cursor_debug"("FAIL  ", "metachar:sym<^^>")
+    .return (rx228_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>"  :subid("64_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<^^>"  :subid("64_1275811476.7961") :method
 .annotate 'line', 3
-    new $P225, "ResizablePMCArray"
-    push $P225, "^^"
-    .return ($P225)
+    new $P230, "ResizablePMCArray"
+    push $P230, "^^"
+    .return ($P230)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>"  :subid("65_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<$>"  :subid("65_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx229_tgt
-    .local int rx229_pos
-    .local int rx229_off
-    .local int rx229_eos
-    .local int rx229_rep
-    .local pmc rx229_cur
-    (rx229_cur, rx229_pos, rx229_tgt) = self."!cursor_start"()
-    rx229_cur."!cursor_debug"("START ", "metachar:sym<$>")
-    .lex unicode:"$\x{a2}", rx229_cur
+    .local string rx234_tgt
+    .local int rx234_pos
+    .local int rx234_off
+    .local int rx234_eos
+    .local int rx234_rep
+    .local pmc rx234_cur
+    (rx234_cur, rx234_pos, rx234_tgt) = self."!cursor_start"()
+    rx234_cur."!cursor_debug"("START ", "metachar:sym<$>")
+    .lex unicode:"$\x{a2}", rx234_cur
     .local pmc match
     .lex "$/", match
-    length rx229_eos, rx229_tgt
-    set rx229_off, 0
-    lt rx229_pos, 2, rx229_start
-    sub rx229_off, rx229_pos, 1
-    substr rx229_tgt, rx229_tgt, rx229_off
-  rx229_start:
+    length rx234_eos, rx234_tgt
+    gt rx234_pos, rx234_eos, rx234_done
+    set rx234_off, 0
+    lt rx234_pos, 2, rx234_start
+    sub rx234_off, rx234_pos, 1
+    substr rx234_tgt, rx234_tgt, rx234_off
+  rx234_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan232_done
-    goto rxscan232_scan
-  rxscan232_loop:
-    ($P10) = rx229_cur."from"()
+    ne $I10, -1, rxscan237_done
+    goto rxscan237_scan
+  rxscan237_loop:
+    ($P10) = rx234_cur."from"()
     inc $P10
-    set rx229_pos, $P10
-    ge rx229_pos, rx229_eos, rxscan232_done
-  rxscan232_scan:
-    set_addr $I10, rxscan232_loop
-    rx229_cur."!mark_push"(0, rx229_pos, $I10)
-  rxscan232_done:
+    set rx234_pos, $P10
+    ge rx234_pos, rx234_eos, rxscan237_done
+  rxscan237_scan:
+    set_addr $I10, rxscan237_loop
+    rx234_cur."!mark_push"(0, rx234_pos, $I10)
+  rxscan237_done:
 .annotate 'line', 82
   # rx subcapture "sym"
-    set_addr $I10, rxcap_233_fail
-    rx229_cur."!mark_push"(0, rx229_pos, $I10)
+    set_addr $I10, rxcap_238_fail
+    rx234_cur."!mark_push"(0, rx234_pos, $I10)
   # rx literal  "$"
-    add $I11, rx229_pos, 1
-    gt $I11, rx229_eos, rx229_fail
-    sub $I11, rx229_pos, rx229_off
-    substr $S10, rx229_tgt, $I11, 1
-    ne $S10, "$", rx229_fail
-    add rx229_pos, 1
-    set_addr $I10, rxcap_233_fail
-    ($I12, $I11) = rx229_cur."!mark_peek"($I10)
-    rx229_cur."!cursor_pos"($I11)
-    ($P10) = rx229_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx229_pos, "")
-    rx229_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx234_pos, 1
+    gt $I11, rx234_eos, rx234_fail
+    sub $I11, rx234_pos, rx234_off
+    substr $S10, rx234_tgt, $I11, 1
+    ne $S10, "$", rx234_fail
+    add rx234_pos, 1
+    set_addr $I10, rxcap_238_fail
+    ($I12, $I11) = rx234_cur."!mark_peek"($I10)
+    rx234_cur."!cursor_pos"($I11)
+    ($P10) = rx234_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx234_pos, "")
+    rx234_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_233_done
-  rxcap_233_fail:
-    goto rx229_fail
-  rxcap_233_done:
+    goto rxcap_238_done
+  rxcap_238_fail:
+    goto rx234_fail
+  rxcap_238_done:
   # rx pass
-    rx229_cur."!cursor_pass"(rx229_pos, "metachar:sym<$>")
-    rx229_cur."!cursor_debug"("PASS  ", "metachar:sym<$>", " at pos=", rx229_pos)
-    .return (rx229_cur)
-  rx229_fail:
+    rx234_cur."!cursor_pass"(rx234_pos, "metachar:sym<$>")
+    rx234_cur."!cursor_debug"("PASS  ", "metachar:sym<$>", " at pos=", rx234_pos)
+    .return (rx234_cur)
+  rx234_fail:
 .annotate 'line', 3
-    (rx229_rep, rx229_pos, $I10, $P10) = rx229_cur."!mark_fail"(0)
-    lt rx229_pos, -1, rx229_done
-    eq rx229_pos, -1, rx229_fail
+    (rx234_rep, rx234_pos, $I10, $P10) = rx234_cur."!mark_fail"(0)
+    lt rx234_pos, -1, rx234_done
+    eq rx234_pos, -1, rx234_fail
     jump $I10
-  rx229_done:
-    rx229_cur."!cursor_fail"()
-    rx229_cur."!cursor_debug"("FAIL  ", "metachar:sym<$>")
-    .return (rx229_cur)
+  rx234_done:
+    rx234_cur."!cursor_fail"()
+    rx234_cur."!cursor_debug"("FAIL  ", "metachar:sym<$>")
+    .return (rx234_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>"  :subid("66_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<$>"  :subid("66_1275811476.7961") :method
 .annotate 'line', 3
-    new $P231, "ResizablePMCArray"
-    push $P231, "$"
-    .return ($P231)
+    new $P236, "ResizablePMCArray"
+    push $P236, "$"
+    .return ($P236)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>"  :subid("67_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<$$>"  :subid("67_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx235_tgt
-    .local int rx235_pos
-    .local int rx235_off
-    .local int rx235_eos
-    .local int rx235_rep
-    .local pmc rx235_cur
-    (rx235_cur, rx235_pos, rx235_tgt) = self."!cursor_start"()
-    rx235_cur."!cursor_debug"("START ", "metachar:sym<$$>")
-    .lex unicode:"$\x{a2}", rx235_cur
+    .local string rx240_tgt
+    .local int rx240_pos
+    .local int rx240_off
+    .local int rx240_eos
+    .local int rx240_rep
+    .local pmc rx240_cur
+    (rx240_cur, rx240_pos, rx240_tgt) = self."!cursor_start"()
+    rx240_cur."!cursor_debug"("START ", "metachar:sym<$$>")
+    .lex unicode:"$\x{a2}", rx240_cur
     .local pmc match
     .lex "$/", match
-    length rx235_eos, rx235_tgt
-    set rx235_off, 0
-    lt rx235_pos, 2, rx235_start
-    sub rx235_off, rx235_pos, 1
-    substr rx235_tgt, rx235_tgt, rx235_off
-  rx235_start:
+    length rx240_eos, rx240_tgt
+    gt rx240_pos, rx240_eos, rx240_done
+    set rx240_off, 0
+    lt rx240_pos, 2, rx240_start
+    sub rx240_off, rx240_pos, 1
+    substr rx240_tgt, rx240_tgt, rx240_off
+  rx240_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan238_done
-    goto rxscan238_scan
-  rxscan238_loop:
-    ($P10) = rx235_cur."from"()
+    ne $I10, -1, rxscan243_done
+    goto rxscan243_scan
+  rxscan243_loop:
+    ($P10) = rx240_cur."from"()
     inc $P10
-    set rx235_pos, $P10
-    ge rx235_pos, rx235_eos, rxscan238_done
-  rxscan238_scan:
-    set_addr $I10, rxscan238_loop
-    rx235_cur."!mark_push"(0, rx235_pos, $I10)
-  rxscan238_done:
+    set rx240_pos, $P10
+    ge rx240_pos, rx240_eos, rxscan243_done
+  rxscan243_scan:
+    set_addr $I10, rxscan243_loop
+    rx240_cur."!mark_push"(0, rx240_pos, $I10)
+  rxscan243_done:
 .annotate 'line', 83
   # rx subcapture "sym"
-    set_addr $I10, rxcap_239_fail
-    rx235_cur."!mark_push"(0, rx235_pos, $I10)
+    set_addr $I10, rxcap_244_fail
+    rx240_cur."!mark_push"(0, rx240_pos, $I10)
   # rx literal  "$$"
-    add $I11, rx235_pos, 2
-    gt $I11, rx235_eos, rx235_fail
-    sub $I11, rx235_pos, rx235_off
-    substr $S10, rx235_tgt, $I11, 2
-    ne $S10, "$$", rx235_fail
-    add rx235_pos, 2
-    set_addr $I10, rxcap_239_fail
-    ($I12, $I11) = rx235_cur."!mark_peek"($I10)
-    rx235_cur."!cursor_pos"($I11)
-    ($P10) = rx235_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx235_pos, "")
-    rx235_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx240_pos, 2
+    gt $I11, rx240_eos, rx240_fail
+    sub $I11, rx240_pos, rx240_off
+    substr $S10, rx240_tgt, $I11, 2
+    ne $S10, "$$", rx240_fail
+    add rx240_pos, 2
+    set_addr $I10, rxcap_244_fail
+    ($I12, $I11) = rx240_cur."!mark_peek"($I10)
+    rx240_cur."!cursor_pos"($I11)
+    ($P10) = rx240_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx240_pos, "")
+    rx240_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_239_done
-  rxcap_239_fail:
-    goto rx235_fail
-  rxcap_239_done:
+    goto rxcap_244_done
+  rxcap_244_fail:
+    goto rx240_fail
+  rxcap_244_done:
   # rx pass
-    rx235_cur."!cursor_pass"(rx235_pos, "metachar:sym<$$>")
-    rx235_cur."!cursor_debug"("PASS  ", "metachar:sym<$$>", " at pos=", rx235_pos)
-    .return (rx235_cur)
-  rx235_fail:
+    rx240_cur."!cursor_pass"(rx240_pos, "metachar:sym<$$>")
+    rx240_cur."!cursor_debug"("PASS  ", "metachar:sym<$$>", " at pos=", rx240_pos)
+    .return (rx240_cur)
+  rx240_fail:
 .annotate 'line', 3
-    (rx235_rep, rx235_pos, $I10, $P10) = rx235_cur."!mark_fail"(0)
-    lt rx235_pos, -1, rx235_done
-    eq rx235_pos, -1, rx235_fail
+    (rx240_rep, rx240_pos, $I10, $P10) = rx240_cur."!mark_fail"(0)
+    lt rx240_pos, -1, rx240_done
+    eq rx240_pos, -1, rx240_fail
     jump $I10
-  rx235_done:
-    rx235_cur."!cursor_fail"()
-    rx235_cur."!cursor_debug"("FAIL  ", "metachar:sym<$$>")
-    .return (rx235_cur)
+  rx240_done:
+    rx240_cur."!cursor_fail"()
+    rx240_cur."!cursor_debug"("FAIL  ", "metachar:sym<$$>")
+    .return (rx240_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>"  :subid("68_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<$$>"  :subid("68_1275811476.7961") :method
 .annotate 'line', 3
-    new $P237, "ResizablePMCArray"
-    push $P237, "$$"
-    .return ($P237)
+    new $P242, "ResizablePMCArray"
+    push $P242, "$$"
+    .return ($P242)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>"  :subid("69_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<:::>"  :subid("69_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx241_tgt
-    .local int rx241_pos
-    .local int rx241_off
-    .local int rx241_eos
-    .local int rx241_rep
-    .local pmc rx241_cur
-    (rx241_cur, rx241_pos, rx241_tgt) = self."!cursor_start"()
-    rx241_cur."!cursor_debug"("START ", "metachar:sym<:::>")
-    .lex unicode:"$\x{a2}", rx241_cur
+    .local string rx246_tgt
+    .local int rx246_pos
+    .local int rx246_off
+    .local int rx246_eos
+    .local int rx246_rep
+    .local pmc rx246_cur
+    (rx246_cur, rx246_pos, rx246_tgt) = self."!cursor_start"()
+    rx246_cur."!cursor_debug"("START ", "metachar:sym<:::>")
+    .lex unicode:"$\x{a2}", rx246_cur
     .local pmc match
     .lex "$/", match
-    length rx241_eos, rx241_tgt
-    set rx241_off, 0
-    lt rx241_pos, 2, rx241_start
-    sub rx241_off, rx241_pos, 1
-    substr rx241_tgt, rx241_tgt, rx241_off
-  rx241_start:
+    length rx246_eos, rx246_tgt
+    gt rx246_pos, rx246_eos, rx246_done
+    set rx246_off, 0
+    lt rx246_pos, 2, rx246_start
+    sub rx246_off, rx246_pos, 1
+    substr rx246_tgt, rx246_tgt, rx246_off
+  rx246_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan245_done
-    goto rxscan245_scan
-  rxscan245_loop:
-    ($P10) = rx241_cur."from"()
+    ne $I10, -1, rxscan250_done
+    goto rxscan250_scan
+  rxscan250_loop:
+    ($P10) = rx246_cur."from"()
     inc $P10
-    set rx241_pos, $P10
-    ge rx241_pos, rx241_eos, rxscan245_done
-  rxscan245_scan:
-    set_addr $I10, rxscan245_loop
-    rx241_cur."!mark_push"(0, rx241_pos, $I10)
-  rxscan245_done:
+    set rx246_pos, $P10
+    ge rx246_pos, rx246_eos, rxscan250_done
+  rxscan250_scan:
+    set_addr $I10, rxscan250_loop
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
+  rxscan250_done:
 .annotate 'line', 84
   # rx subcapture "sym"
-    set_addr $I10, rxcap_246_fail
-    rx241_cur."!mark_push"(0, rx241_pos, $I10)
+    set_addr $I10, rxcap_251_fail
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
   # rx literal  ":::"
-    add $I11, rx241_pos, 3
-    gt $I11, rx241_eos, rx241_fail
-    sub $I11, rx241_pos, rx241_off
-    substr $S10, rx241_tgt, $I11, 3
-    ne $S10, ":::", rx241_fail
-    add rx241_pos, 3
-    set_addr $I10, rxcap_246_fail
-    ($I12, $I11) = rx241_cur."!mark_peek"($I10)
-    rx241_cur."!cursor_pos"($I11)
-    ($P10) = rx241_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx241_pos, "")
-    rx241_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx246_pos, 3
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 3
+    ne $S10, ":::", rx246_fail
+    add rx246_pos, 3
+    set_addr $I10, rxcap_251_fail
+    ($I12, $I11) = rx246_cur."!mark_peek"($I10)
+    rx246_cur."!cursor_pos"($I11)
+    ($P10) = rx246_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx246_pos, "")
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_246_done
-  rxcap_246_fail:
-    goto rx241_fail
-  rxcap_246_done:
+    goto rxcap_251_done
+  rxcap_251_fail:
+    goto rx246_fail
+  rxcap_251_done:
   # rx subrule "panic" subtype=method negate=
-    rx241_cur."!cursor_pos"(rx241_pos)
-    $P10 = rx241_cur."panic"("::: not yet implemented")
-    unless $P10, rx241_fail
-    rx241_pos = $P10."pos"()
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."panic"("::: not yet implemented")
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
   # rx pass
-    rx241_cur."!cursor_pass"(rx241_pos, "metachar:sym<:::>")
-    rx241_cur."!cursor_debug"("PASS  ", "metachar:sym<:::>", " at pos=", rx241_pos)
-    .return (rx241_cur)
-  rx241_fail:
+    rx246_cur."!cursor_pass"(rx246_pos, "metachar:sym<:::>")
+    rx246_cur."!cursor_debug"("PASS  ", "metachar:sym<:::>", " at pos=", rx246_pos)
+    .return (rx246_cur)
+  rx246_fail:
 .annotate 'line', 3
-    (rx241_rep, rx241_pos, $I10, $P10) = rx241_cur."!mark_fail"(0)
-    lt rx241_pos, -1, rx241_done
-    eq rx241_pos, -1, rx241_fail
+    (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
+    lt rx246_pos, -1, rx246_done
+    eq rx246_pos, -1, rx246_fail
     jump $I10
-  rx241_done:
-    rx241_cur."!cursor_fail"()
-    rx241_cur."!cursor_debug"("FAIL  ", "metachar:sym<:::>")
-    .return (rx241_cur)
+  rx246_done:
+    rx246_cur."!cursor_fail"()
+    rx246_cur."!cursor_debug"("FAIL  ", "metachar:sym<:::>")
+    .return (rx246_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>"  :subid("70_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<:::>"  :subid("70_1275811476.7961") :method
 .annotate 'line', 3
-    $P243 = self."!PREFIX__!subrule"("", ":::")
-    new $P244, "ResizablePMCArray"
-    push $P244, $P243
-    .return ($P244)
+    $P248 = self."!PREFIX__!subrule"("panic", ":::")
+    new $P249, "ResizablePMCArray"
+    push $P249, $P248
+    .return ($P249)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>"  :subid("71_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<::>"  :subid("71_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx248_tgt
-    .local int rx248_pos
-    .local int rx248_off
-    .local int rx248_eos
-    .local int rx248_rep
-    .local pmc rx248_cur
-    (rx248_cur, rx248_pos, rx248_tgt) = self."!cursor_start"()
-    rx248_cur."!cursor_debug"("START ", "metachar:sym<::>")
-    .lex unicode:"$\x{a2}", rx248_cur
+    .local string rx253_tgt
+    .local int rx253_pos
+    .local int rx253_off
+    .local int rx253_eos
+    .local int rx253_rep
+    .local pmc rx253_cur
+    (rx253_cur, rx253_pos, rx253_tgt) = self."!cursor_start"()
+    rx253_cur."!cursor_debug"("START ", "metachar:sym<::>")
+    .lex unicode:"$\x{a2}", rx253_cur
     .local pmc match
     .lex "$/", match
-    length rx248_eos, rx248_tgt
-    set rx248_off, 0
-    lt rx248_pos, 2, rx248_start
-    sub rx248_off, rx248_pos, 1
-    substr rx248_tgt, rx248_tgt, rx248_off
-  rx248_start:
+    length rx253_eos, rx253_tgt
+    gt rx253_pos, rx253_eos, rx253_done
+    set rx253_off, 0
+    lt rx253_pos, 2, rx253_start
+    sub rx253_off, rx253_pos, 1
+    substr rx253_tgt, rx253_tgt, rx253_off
+  rx253_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan252_done
-    goto rxscan252_scan
-  rxscan252_loop:
-    ($P10) = rx248_cur."from"()
+    ne $I10, -1, rxscan257_done
+    goto rxscan257_scan
+  rxscan257_loop:
+    ($P10) = rx253_cur."from"()
     inc $P10
-    set rx248_pos, $P10
-    ge rx248_pos, rx248_eos, rxscan252_done
-  rxscan252_scan:
-    set_addr $I10, rxscan252_loop
-    rx248_cur."!mark_push"(0, rx248_pos, $I10)
-  rxscan252_done:
+    set rx253_pos, $P10
+    ge rx253_pos, rx253_eos, rxscan257_done
+  rxscan257_scan:
+    set_addr $I10, rxscan257_loop
+    rx253_cur."!mark_push"(0, rx253_pos, $I10)
+  rxscan257_done:
 .annotate 'line', 85
   # rx subcapture "sym"
-    set_addr $I10, rxcap_253_fail
-    rx248_cur."!mark_push"(0, rx248_pos, $I10)
+    set_addr $I10, rxcap_258_fail
+    rx253_cur."!mark_push"(0, rx253_pos, $I10)
   # rx literal  "::"
-    add $I11, rx248_pos, 2
-    gt $I11, rx248_eos, rx248_fail
-    sub $I11, rx248_pos, rx248_off
-    substr $S10, rx248_tgt, $I11, 2
-    ne $S10, "::", rx248_fail
-    add rx248_pos, 2
-    set_addr $I10, rxcap_253_fail
-    ($I12, $I11) = rx248_cur."!mark_peek"($I10)
-    rx248_cur."!cursor_pos"($I11)
-    ($P10) = rx248_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx248_pos, "")
-    rx248_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx253_pos, 2
+    gt $I11, rx253_eos, rx253_fail
+    sub $I11, rx253_pos, rx253_off
+    substr $S10, rx253_tgt, $I11, 2
+    ne $S10, "::", rx253_fail
+    add rx253_pos, 2
+    set_addr $I10, rxcap_258_fail
+    ($I12, $I11) = rx253_cur."!mark_peek"($I10)
+    rx253_cur."!cursor_pos"($I11)
+    ($P10) = rx253_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx253_pos, "")
+    rx253_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_253_done
-  rxcap_253_fail:
-    goto rx248_fail
-  rxcap_253_done:
+    goto rxcap_258_done
+  rxcap_258_fail:
+    goto rx253_fail
+  rxcap_258_done:
   # rx subrule "panic" subtype=method negate=
-    rx248_cur."!cursor_pos"(rx248_pos)
-    $P10 = rx248_cur."panic"(":: not yet implemented")
-    unless $P10, rx248_fail
-    rx248_pos = $P10."pos"()
+    rx253_cur."!cursor_pos"(rx253_pos)
+    $P10 = rx253_cur."panic"(":: not yet implemented")
+    unless $P10, rx253_fail
+    rx253_pos = $P10."pos"()
   # rx pass
-    rx248_cur."!cursor_pass"(rx248_pos, "metachar:sym<::>")
-    rx248_cur."!cursor_debug"("PASS  ", "metachar:sym<::>", " at pos=", rx248_pos)
-    .return (rx248_cur)
-  rx248_fail:
+    rx253_cur."!cursor_pass"(rx253_pos, "metachar:sym<::>")
+    rx253_cur."!cursor_debug"("PASS  ", "metachar:sym<::>", " at pos=", rx253_pos)
+    .return (rx253_cur)
+  rx253_fail:
 .annotate 'line', 3
-    (rx248_rep, rx248_pos, $I10, $P10) = rx248_cur."!mark_fail"(0)
-    lt rx248_pos, -1, rx248_done
-    eq rx248_pos, -1, rx248_fail
+    (rx253_rep, rx253_pos, $I10, $P10) = rx253_cur."!mark_fail"(0)
+    lt rx253_pos, -1, rx253_done
+    eq rx253_pos, -1, rx253_fail
     jump $I10
-  rx248_done:
-    rx248_cur."!cursor_fail"()
-    rx248_cur."!cursor_debug"("FAIL  ", "metachar:sym<::>")
-    .return (rx248_cur)
+  rx253_done:
+    rx253_cur."!cursor_fail"()
+    rx253_cur."!cursor_debug"("FAIL  ", "metachar:sym<::>")
+    .return (rx253_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>"  :subid("72_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<::>"  :subid("72_1275811476.7961") :method
 .annotate 'line', 3
-    $P250 = self."!PREFIX__!subrule"("", "::")
-    new $P251, "ResizablePMCArray"
-    push $P251, $P250
-    .return ($P251)
+    $P255 = self."!PREFIX__!subrule"("panic", "::")
+    new $P256, "ResizablePMCArray"
+    push $P256, $P255
+    .return ($P256)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>"  :subid("73_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<lwb>"  :subid("73_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx255_tgt
-    .local int rx255_pos
-    .local int rx255_off
-    .local int rx255_eos
-    .local int rx255_rep
-    .local pmc rx255_cur
-    (rx255_cur, rx255_pos, rx255_tgt) = self."!cursor_start"()
-    rx255_cur."!cursor_debug"("START ", "metachar:sym<lwb>")
-    .lex unicode:"$\x{a2}", rx255_cur
+    .local string rx260_tgt
+    .local int rx260_pos
+    .local int rx260_off
+    .local int rx260_eos
+    .local int rx260_rep
+    .local pmc rx260_cur
+    (rx260_cur, rx260_pos, rx260_tgt) = self."!cursor_start"()
+    rx260_cur."!cursor_debug"("START ", "metachar:sym<lwb>")
+    .lex unicode:"$\x{a2}", rx260_cur
     .local pmc match
     .lex "$/", match
-    length rx255_eos, rx255_tgt
-    set rx255_off, 0
-    lt rx255_pos, 2, rx255_start
-    sub rx255_off, rx255_pos, 1
-    substr rx255_tgt, rx255_tgt, rx255_off
-  rx255_start:
+    length rx260_eos, rx260_tgt
+    gt rx260_pos, rx260_eos, rx260_done
+    set rx260_off, 0
+    lt rx260_pos, 2, rx260_start
+    sub rx260_off, rx260_pos, 1
+    substr rx260_tgt, rx260_tgt, rx260_off
+  rx260_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan258_done
-    goto rxscan258_scan
-  rxscan258_loop:
-    ($P10) = rx255_cur."from"()
+    ne $I10, -1, rxscan263_done
+    goto rxscan263_scan
+  rxscan263_loop:
+    ($P10) = rx260_cur."from"()
     inc $P10
-    set rx255_pos, $P10
-    ge rx255_pos, rx255_eos, rxscan258_done
-  rxscan258_scan:
-    set_addr $I10, rxscan258_loop
-    rx255_cur."!mark_push"(0, rx255_pos, $I10)
-  rxscan258_done:
+    set rx260_pos, $P10
+    ge rx260_pos, rx260_eos, rxscan263_done
+  rxscan263_scan:
+    set_addr $I10, rxscan263_loop
+    rx260_cur."!mark_push"(0, rx260_pos, $I10)
+  rxscan263_done:
 .annotate 'line', 86
   # rx subcapture "sym"
-    set_addr $I10, rxcap_260_fail
-    rx255_cur."!mark_push"(0, rx255_pos, $I10)
-  alt259_0:
-    set_addr $I10, alt259_1
-    rx255_cur."!mark_push"(0, rx255_pos, $I10)
+    set_addr $I10, rxcap_265_fail
+    rx260_cur."!mark_push"(0, rx260_pos, $I10)
+  alt264_0:
+    set_addr $I10, alt264_1
+    rx260_cur."!mark_push"(0, rx260_pos, $I10)
   # rx literal  "<<"
-    add $I11, rx255_pos, 2
-    gt $I11, rx255_eos, rx255_fail
-    sub $I11, rx255_pos, rx255_off
-    substr $S10, rx255_tgt, $I11, 2
-    ne $S10, "<<", rx255_fail
-    add rx255_pos, 2
-    goto alt259_end
-  alt259_1:
+    add $I11, rx260_pos, 2
+    gt $I11, rx260_eos, rx260_fail
+    sub $I11, rx260_pos, rx260_off
+    substr $S10, rx260_tgt, $I11, 2
+    ne $S10, "<<", rx260_fail
+    add rx260_pos, 2
+    goto alt264_end
+  alt264_1:
   # rx literal  unicode:"\x{ab}"
-    add $I11, rx255_pos, 1
-    gt $I11, rx255_eos, rx255_fail
-    sub $I11, rx255_pos, rx255_off
-    substr $S10, rx255_tgt, $I11, 1
-    ne $S10, unicode:"\x{ab}", rx255_fail
-    add rx255_pos, 1
-  alt259_end:
-    set_addr $I10, rxcap_260_fail
-    ($I12, $I11) = rx255_cur."!mark_peek"($I10)
-    rx255_cur."!cursor_pos"($I11)
-    ($P10) = rx255_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx255_pos, "")
-    rx255_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx260_pos, 1
+    gt $I11, rx260_eos, rx260_fail
+    sub $I11, rx260_pos, rx260_off
+    substr $S10, rx260_tgt, $I11, 1
+    ne $S10, unicode:"\x{ab}", rx260_fail
+    add rx260_pos, 1
+  alt264_end:
+    set_addr $I10, rxcap_265_fail
+    ($I12, $I11) = rx260_cur."!mark_peek"($I10)
+    rx260_cur."!cursor_pos"($I11)
+    ($P10) = rx260_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx260_pos, "")
+    rx260_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_260_done
-  rxcap_260_fail:
-    goto rx255_fail
-  rxcap_260_done:
+    goto rxcap_265_done
+  rxcap_265_fail:
+    goto rx260_fail
+  rxcap_265_done:
   # rx pass
-    rx255_cur."!cursor_pass"(rx255_pos, "metachar:sym<lwb>")
-    rx255_cur."!cursor_debug"("PASS  ", "metachar:sym<lwb>", " at pos=", rx255_pos)
-    .return (rx255_cur)
-  rx255_fail:
+    rx260_cur."!cursor_pass"(rx260_pos, "metachar:sym<lwb>")
+    rx260_cur."!cursor_debug"("PASS  ", "metachar:sym<lwb>", " at pos=", rx260_pos)
+    .return (rx260_cur)
+  rx260_fail:
 .annotate 'line', 3
-    (rx255_rep, rx255_pos, $I10, $P10) = rx255_cur."!mark_fail"(0)
-    lt rx255_pos, -1, rx255_done
-    eq rx255_pos, -1, rx255_fail
+    (rx260_rep, rx260_pos, $I10, $P10) = rx260_cur."!mark_fail"(0)
+    lt rx260_pos, -1, rx260_done
+    eq rx260_pos, -1, rx260_fail
     jump $I10
-  rx255_done:
-    rx255_cur."!cursor_fail"()
-    rx255_cur."!cursor_debug"("FAIL  ", "metachar:sym<lwb>")
-    .return (rx255_cur)
+  rx260_done:
+    rx260_cur."!cursor_fail"()
+    rx260_cur."!cursor_debug"("FAIL  ", "metachar:sym<lwb>")
+    .return (rx260_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>"  :subid("74_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<lwb>"  :subid("74_1275811476.7961") :method
 .annotate 'line', 3
-    new $P257, "ResizablePMCArray"
-    push $P257, unicode:"\x{ab}"
-    push $P257, "<<"
-    .return ($P257)
+    new $P262, "ResizablePMCArray"
+    push $P262, unicode:"\x{ab}"
+    push $P262, "<<"
+    .return ($P262)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>"  :subid("75_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<rwb>"  :subid("75_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx262_tgt
-    .local int rx262_pos
-    .local int rx262_off
-    .local int rx262_eos
-    .local int rx262_rep
-    .local pmc rx262_cur
-    (rx262_cur, rx262_pos, rx262_tgt) = self."!cursor_start"()
-    rx262_cur."!cursor_debug"("START ", "metachar:sym<rwb>")
-    .lex unicode:"$\x{a2}", rx262_cur
+    .local string rx267_tgt
+    .local int rx267_pos
+    .local int rx267_off
+    .local int rx267_eos
+    .local int rx267_rep
+    .local pmc rx267_cur
+    (rx267_cur, rx267_pos, rx267_tgt) = self."!cursor_start"()
+    rx267_cur."!cursor_debug"("START ", "metachar:sym<rwb>")
+    .lex unicode:"$\x{a2}", rx267_cur
     .local pmc match
     .lex "$/", match
-    length rx262_eos, rx262_tgt
-    set rx262_off, 0
-    lt rx262_pos, 2, rx262_start
-    sub rx262_off, rx262_pos, 1
-    substr rx262_tgt, rx262_tgt, rx262_off
-  rx262_start:
+    length rx267_eos, rx267_tgt
+    gt rx267_pos, rx267_eos, rx267_done
+    set rx267_off, 0
+    lt rx267_pos, 2, rx267_start
+    sub rx267_off, rx267_pos, 1
+    substr rx267_tgt, rx267_tgt, rx267_off
+  rx267_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan265_done
-    goto rxscan265_scan
-  rxscan265_loop:
-    ($P10) = rx262_cur."from"()
+    ne $I10, -1, rxscan270_done
+    goto rxscan270_scan
+  rxscan270_loop:
+    ($P10) = rx267_cur."from"()
     inc $P10
-    set rx262_pos, $P10
-    ge rx262_pos, rx262_eos, rxscan265_done
-  rxscan265_scan:
-    set_addr $I10, rxscan265_loop
-    rx262_cur."!mark_push"(0, rx262_pos, $I10)
-  rxscan265_done:
+    set rx267_pos, $P10
+    ge rx267_pos, rx267_eos, rxscan270_done
+  rxscan270_scan:
+    set_addr $I10, rxscan270_loop
+    rx267_cur."!mark_push"(0, rx267_pos, $I10)
+  rxscan270_done:
 .annotate 'line', 87
   # rx subcapture "sym"
-    set_addr $I10, rxcap_267_fail
-    rx262_cur."!mark_push"(0, rx262_pos, $I10)
-  alt266_0:
-    set_addr $I10, alt266_1
-    rx262_cur."!mark_push"(0, rx262_pos, $I10)
+    set_addr $I10, rxcap_272_fail
+    rx267_cur."!mark_push"(0, rx267_pos, $I10)
+  alt271_0:
+    set_addr $I10, alt271_1
+    rx267_cur."!mark_push"(0, rx267_pos, $I10)
   # rx literal  ">>"
-    add $I11, rx262_pos, 2
-    gt $I11, rx262_eos, rx262_fail
-    sub $I11, rx262_pos, rx262_off
-    substr $S10, rx262_tgt, $I11, 2
-    ne $S10, ">>", rx262_fail
-    add rx262_pos, 2
-    goto alt266_end
-  alt266_1:
+    add $I11, rx267_pos, 2
+    gt $I11, rx267_eos, rx267_fail
+    sub $I11, rx267_pos, rx267_off
+    substr $S10, rx267_tgt, $I11, 2
+    ne $S10, ">>", rx267_fail
+    add rx267_pos, 2
+    goto alt271_end
+  alt271_1:
   # rx literal  unicode:"\x{bb}"
-    add $I11, rx262_pos, 1
-    gt $I11, rx262_eos, rx262_fail
-    sub $I11, rx262_pos, rx262_off
-    substr $S10, rx262_tgt, $I11, 1
-    ne $S10, unicode:"\x{bb}", rx262_fail
-    add rx262_pos, 1
-  alt266_end:
-    set_addr $I10, rxcap_267_fail
-    ($I12, $I11) = rx262_cur."!mark_peek"($I10)
-    rx262_cur."!cursor_pos"($I11)
-    ($P10) = rx262_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx262_pos, "")
-    rx262_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx267_pos, 1
+    gt $I11, rx267_eos, rx267_fail
+    sub $I11, rx267_pos, rx267_off
+    substr $S10, rx267_tgt, $I11, 1
+    ne $S10, unicode:"\x{bb}", rx267_fail
+    add rx267_pos, 1
+  alt271_end:
+    set_addr $I10, rxcap_272_fail
+    ($I12, $I11) = rx267_cur."!mark_peek"($I10)
+    rx267_cur."!cursor_pos"($I11)
+    ($P10) = rx267_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx267_pos, "")
+    rx267_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_267_done
-  rxcap_267_fail:
-    goto rx262_fail
-  rxcap_267_done:
+    goto rxcap_272_done
+  rxcap_272_fail:
+    goto rx267_fail
+  rxcap_272_done:
   # rx pass
-    rx262_cur."!cursor_pass"(rx262_pos, "metachar:sym<rwb>")
-    rx262_cur."!cursor_debug"("PASS  ", "metachar:sym<rwb>", " at pos=", rx262_pos)
-    .return (rx262_cur)
-  rx262_fail:
+    rx267_cur."!cursor_pass"(rx267_pos, "metachar:sym<rwb>")
+    rx267_cur."!cursor_debug"("PASS  ", "metachar:sym<rwb>", " at pos=", rx267_pos)
+    .return (rx267_cur)
+  rx267_fail:
 .annotate 'line', 3
-    (rx262_rep, rx262_pos, $I10, $P10) = rx262_cur."!mark_fail"(0)
-    lt rx262_pos, -1, rx262_done
-    eq rx262_pos, -1, rx262_fail
+    (rx267_rep, rx267_pos, $I10, $P10) = rx267_cur."!mark_fail"(0)
+    lt rx267_pos, -1, rx267_done
+    eq rx267_pos, -1, rx267_fail
     jump $I10
-  rx262_done:
-    rx262_cur."!cursor_fail"()
-    rx262_cur."!cursor_debug"("FAIL  ", "metachar:sym<rwb>")
-    .return (rx262_cur)
+  rx267_done:
+    rx267_cur."!cursor_fail"()
+    rx267_cur."!cursor_debug"("FAIL  ", "metachar:sym<rwb>")
+    .return (rx267_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>"  :subid("76_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<rwb>"  :subid("76_1275811476.7961") :method
 .annotate 'line', 3
-    new $P264, "ResizablePMCArray"
-    push $P264, unicode:"\x{bb}"
-    push $P264, ">>"
-    .return ($P264)
+    new $P269, "ResizablePMCArray"
+    push $P269, unicode:"\x{bb}"
+    push $P269, ">>"
+    .return ($P269)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>"  :subid("77_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<bs>"  :subid("77_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx269_tgt
-    .local int rx269_pos
-    .local int rx269_off
-    .local int rx269_eos
-    .local int rx269_rep
-    .local pmc rx269_cur
-    (rx269_cur, rx269_pos, rx269_tgt) = self."!cursor_start"()
-    rx269_cur."!cursor_debug"("START ", "metachar:sym<bs>")
-    .lex unicode:"$\x{a2}", rx269_cur
+    .local string rx274_tgt
+    .local int rx274_pos
+    .local int rx274_off
+    .local int rx274_eos
+    .local int rx274_rep
+    .local pmc rx274_cur
+    (rx274_cur, rx274_pos, rx274_tgt) = self."!cursor_start"()
+    rx274_cur."!cursor_debug"("START ", "metachar:sym<bs>")
+    .lex unicode:"$\x{a2}", rx274_cur
     .local pmc match
     .lex "$/", match
-    length rx269_eos, rx269_tgt
-    set rx269_off, 0
-    lt rx269_pos, 2, rx269_start
-    sub rx269_off, rx269_pos, 1
-    substr rx269_tgt, rx269_tgt, rx269_off
-  rx269_start:
+    length rx274_eos, rx274_tgt
+    gt rx274_pos, rx274_eos, rx274_done
+    set rx274_off, 0
+    lt rx274_pos, 2, rx274_start
+    sub rx274_off, rx274_pos, 1
+    substr rx274_tgt, rx274_tgt, rx274_off
+  rx274_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan273_done
-    goto rxscan273_scan
-  rxscan273_loop:
-    ($P10) = rx269_cur."from"()
+    ne $I10, -1, rxscan278_done
+    goto rxscan278_scan
+  rxscan278_loop:
+    ($P10) = rx274_cur."from"()
     inc $P10
-    set rx269_pos, $P10
-    ge rx269_pos, rx269_eos, rxscan273_done
-  rxscan273_scan:
-    set_addr $I10, rxscan273_loop
-    rx269_cur."!mark_push"(0, rx269_pos, $I10)
-  rxscan273_done:
+    set rx274_pos, $P10
+    ge rx274_pos, rx274_eos, rxscan278_done
+  rxscan278_scan:
+    set_addr $I10, rxscan278_loop
+    rx274_cur."!mark_push"(0, rx274_pos, $I10)
+  rxscan278_done:
 .annotate 'line', 88
   # 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
-    add rx269_pos, 1
+    add $I11, rx274_pos, 1
+    gt $I11, rx274_eos, rx274_fail
+    sub $I11, rx274_pos, rx274_off
+    substr $S10, rx274_tgt, $I11, 1
+    ne $S10, "\\", rx274_fail
+    add rx274_pos, 1
   # rx subrule "backslash" subtype=capture negate=
-    rx269_cur."!cursor_pos"(rx269_pos)
-    $P10 = rx269_cur."backslash"()
-    unless $P10, rx269_fail
-    rx269_cur."!mark_push"(0, -1, 0, $P10)
+    rx274_cur."!cursor_pos"(rx274_pos)
+    $P10 = rx274_cur."backslash"()
+    unless $P10, rx274_fail
+    rx274_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backslash")
-    rx269_pos = $P10."pos"()
+    rx274_pos = $P10."pos"()
   # rx pass
-    rx269_cur."!cursor_pass"(rx269_pos, "metachar:sym<bs>")
-    rx269_cur."!cursor_debug"("PASS  ", "metachar:sym<bs>", " at pos=", rx269_pos)
-    .return (rx269_cur)
-  rx269_fail:
+    rx274_cur."!cursor_pass"(rx274_pos, "metachar:sym<bs>")
+    rx274_cur."!cursor_debug"("PASS  ", "metachar:sym<bs>", " at pos=", rx274_pos)
+    .return (rx274_cur)
+  rx274_fail:
 .annotate 'line', 3
-    (rx269_rep, rx269_pos, $I10, $P10) = rx269_cur."!mark_fail"(0)
-    lt rx269_pos, -1, rx269_done
-    eq rx269_pos, -1, rx269_fail
+    (rx274_rep, rx274_pos, $I10, $P10) = rx274_cur."!mark_fail"(0)
+    lt rx274_pos, -1, rx274_done
+    eq rx274_pos, -1, rx274_fail
     jump $I10
-  rx269_done:
-    rx269_cur."!cursor_fail"()
-    rx269_cur."!cursor_debug"("FAIL  ", "metachar:sym<bs>")
-    .return (rx269_cur)
+  rx274_done:
+    rx274_cur."!cursor_fail"()
+    rx274_cur."!cursor_debug"("FAIL  ", "metachar:sym<bs>")
+    .return (rx274_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>"  :subid("78_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<bs>"  :subid("78_1275811476.7961") :method
 .annotate 'line', 3
-    $P271 = self."!PREFIX__!subrule"("backslash", "\\")
-    new $P272, "ResizablePMCArray"
-    push $P272, $P271
-    .return ($P272)
+    $P276 = self."!PREFIX__!subrule"("backslash", "\\")
+    new $P277, "ResizablePMCArray"
+    push $P277, $P276
+    .return ($P277)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>"  :subid("79_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<mod>"  :subid("79_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx275_tgt
-    .local int rx275_pos
-    .local int rx275_off
-    .local int rx275_eos
-    .local int rx275_rep
-    .local pmc rx275_cur
-    (rx275_cur, rx275_pos, rx275_tgt) = self."!cursor_start"()
-    rx275_cur."!cursor_debug"("START ", "metachar:sym<mod>")
-    .lex unicode:"$\x{a2}", rx275_cur
+    .local string rx280_tgt
+    .local int rx280_pos
+    .local int rx280_off
+    .local int rx280_eos
+    .local int rx280_rep
+    .local pmc rx280_cur
+    (rx280_cur, rx280_pos, rx280_tgt) = self."!cursor_start"()
+    rx280_cur."!cursor_debug"("START ", "metachar:sym<mod>")
+    .lex unicode:"$\x{a2}", rx280_cur
     .local pmc match
     .lex "$/", match
-    length rx275_eos, rx275_tgt
-    set rx275_off, 0
-    lt rx275_pos, 2, rx275_start
-    sub rx275_off, rx275_pos, 1
-    substr rx275_tgt, rx275_tgt, rx275_off
-  rx275_start:
+    length rx280_eos, rx280_tgt
+    gt rx280_pos, rx280_eos, rx280_done
+    set rx280_off, 0
+    lt rx280_pos, 2, rx280_start
+    sub rx280_off, rx280_pos, 1
+    substr rx280_tgt, rx280_tgt, rx280_off
+  rx280_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan279_done
-    goto rxscan279_scan
-  rxscan279_loop:
-    ($P10) = rx275_cur."from"()
+    ne $I10, -1, rxscan284_done
+    goto rxscan284_scan
+  rxscan284_loop:
+    ($P10) = rx280_cur."from"()
     inc $P10
-    set rx275_pos, $P10
-    ge rx275_pos, rx275_eos, rxscan279_done
-  rxscan279_scan:
-    set_addr $I10, rxscan279_loop
-    rx275_cur."!mark_push"(0, rx275_pos, $I10)
-  rxscan279_done:
+    set rx280_pos, $P10
+    ge rx280_pos, rx280_eos, rxscan284_done
+  rxscan284_scan:
+    set_addr $I10, rxscan284_loop
+    rx280_cur."!mark_push"(0, rx280_pos, $I10)
+  rxscan284_done:
 .annotate 'line', 89
   # rx subrule "mod_internal" subtype=capture negate=
-    rx275_cur."!cursor_pos"(rx275_pos)
-    $P10 = rx275_cur."mod_internal"()
-    unless $P10, rx275_fail
-    rx275_cur."!mark_push"(0, -1, 0, $P10)
+    rx280_cur."!cursor_pos"(rx280_pos)
+    $P10 = rx280_cur."mod_internal"()
+    unless $P10, rx280_fail
+    rx280_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_internal")
-    rx275_pos = $P10."pos"()
+    rx280_pos = $P10."pos"()
   # rx pass
-    rx275_cur."!cursor_pass"(rx275_pos, "metachar:sym<mod>")
-    rx275_cur."!cursor_debug"("PASS  ", "metachar:sym<mod>", " at pos=", rx275_pos)
-    .return (rx275_cur)
-  rx275_fail:
+    rx280_cur."!cursor_pass"(rx280_pos, "metachar:sym<mod>")
+    rx280_cur."!cursor_debug"("PASS  ", "metachar:sym<mod>", " at pos=", rx280_pos)
+    .return (rx280_cur)
+  rx280_fail:
 .annotate 'line', 3
-    (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0)
-    lt rx275_pos, -1, rx275_done
-    eq rx275_pos, -1, rx275_fail
+    (rx280_rep, rx280_pos, $I10, $P10) = rx280_cur."!mark_fail"(0)
+    lt rx280_pos, -1, rx280_done
+    eq rx280_pos, -1, rx280_fail
     jump $I10
-  rx275_done:
-    rx275_cur."!cursor_fail"()
-    rx275_cur."!cursor_debug"("FAIL  ", "metachar:sym<mod>")
-    .return (rx275_cur)
+  rx280_done:
+    rx280_cur."!cursor_fail"()
+    rx280_cur."!cursor_debug"("FAIL  ", "metachar:sym<mod>")
+    .return (rx280_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>"  :subid("80_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<mod>"  :subid("80_1275811476.7961") :method
 .annotate 'line', 3
-    $P277 = self."!PREFIX__!subrule"("mod_internal", "")
-    new $P278, "ResizablePMCArray"
-    push $P278, $P277
-    .return ($P278)
+    $P282 = self."!PREFIX__!subrule"("mod_internal", "")
+    new $P283, "ResizablePMCArray"
+    push $P283, $P282
+    .return ($P283)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>"  :subid("81_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<~>"  :subid("81_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx281_tgt
-    .local int rx281_pos
-    .local int rx281_off
-    .local int rx281_eos
-    .local int rx281_rep
-    .local pmc rx281_cur
-    (rx281_cur, rx281_pos, rx281_tgt) = self."!cursor_start"()
-    rx281_cur."!cursor_debug"("START ", "metachar:sym<~>")
-    .lex unicode:"$\x{a2}", rx281_cur
+    .local string rx286_tgt
+    .local int rx286_pos
+    .local int rx286_off
+    .local int rx286_eos
+    .local int rx286_rep
+    .local pmc rx286_cur
+    (rx286_cur, rx286_pos, rx286_tgt) = self."!cursor_start"()
+    rx286_cur."!cursor_debug"("START ", "metachar:sym<~>")
+    .lex unicode:"$\x{a2}", rx286_cur
     .local pmc match
     .lex "$/", match
-    length rx281_eos, rx281_tgt
-    set rx281_off, 0
-    lt rx281_pos, 2, rx281_start
-    sub rx281_off, rx281_pos, 1
-    substr rx281_tgt, rx281_tgt, rx281_off
-  rx281_start:
+    length rx286_eos, rx286_tgt
+    gt rx286_pos, rx286_eos, rx286_done
+    set rx286_off, 0
+    lt rx286_pos, 2, rx286_start
+    sub rx286_off, rx286_pos, 1
+    substr rx286_tgt, rx286_tgt, rx286_off
+  rx286_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan285_done
-    goto rxscan285_scan
-  rxscan285_loop:
-    ($P10) = rx281_cur."from"()
+    ne $I10, -1, rxscan290_done
+    goto rxscan290_scan
+  rxscan290_loop:
+    ($P10) = rx286_cur."from"()
     inc $P10
-    set rx281_pos, $P10
-    ge rx281_pos, rx281_eos, rxscan285_done
-  rxscan285_scan:
-    set_addr $I10, rxscan285_loop
-    rx281_cur."!mark_push"(0, rx281_pos, $I10)
-  rxscan285_done:
+    set rx286_pos, $P10
+    ge rx286_pos, rx286_eos, rxscan290_done
+  rxscan290_scan:
+    set_addr $I10, rxscan290_loop
+    rx286_cur."!mark_push"(0, rx286_pos, $I10)
+  rxscan290_done:
 .annotate 'line', 93
   # rx subcapture "sym"
-    set_addr $I10, rxcap_286_fail
-    rx281_cur."!mark_push"(0, rx281_pos, $I10)
+    set_addr $I10, rxcap_291_fail
+    rx286_cur."!mark_push"(0, rx286_pos, $I10)
   # rx literal  "~"
-    add $I11, rx281_pos, 1
-    gt $I11, rx281_eos, rx281_fail
-    sub $I11, rx281_pos, rx281_off
-    substr $S10, rx281_tgt, $I11, 1
-    ne $S10, "~", rx281_fail
-    add rx281_pos, 1
-    set_addr $I10, rxcap_286_fail
-    ($I12, $I11) = rx281_cur."!mark_peek"($I10)
-    rx281_cur."!cursor_pos"($I11)
-    ($P10) = rx281_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx281_pos, "")
-    rx281_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx286_pos, 1
+    gt $I11, rx286_eos, rx286_fail
+    sub $I11, rx286_pos, rx286_off
+    substr $S10, rx286_tgt, $I11, 1
+    ne $S10, "~", rx286_fail
+    add rx286_pos, 1
+    set_addr $I10, rxcap_291_fail
+    ($I12, $I11) = rx286_cur."!mark_peek"($I10)
+    rx286_cur."!cursor_pos"($I11)
+    ($P10) = rx286_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx286_pos, "")
+    rx286_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_286_done
-  rxcap_286_fail:
-    goto rx281_fail
-  rxcap_286_done:
+    goto rxcap_291_done
+  rxcap_291_fail:
+    goto rx286_fail
+  rxcap_291_done:
 .annotate 'line', 94
   # rx subrule "ws" subtype=method negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."ws"()
-    unless $P10, rx281_fail
-    rx281_pos = $P10."pos"()
+    rx286_cur."!cursor_pos"(rx286_pos)
+    $P10 = rx286_cur."ws"()
+    unless $P10, rx286_fail
+    rx286_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."quantified_atom"()
-    unless $P10, rx281_fail
-    rx281_cur."!mark_push"(0, -1, 0, $P10)
+    rx286_cur."!cursor_pos"(rx286_pos)
+    $P10 = rx286_cur."quantified_atom"()
+    unless $P10, rx286_fail
+    rx286_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("GOAL")
-    rx281_pos = $P10."pos"()
+    rx286_pos = $P10."pos"()
 .annotate 'line', 95
   # rx subrule "ws" subtype=method negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."ws"()
-    unless $P10, rx281_fail
-    rx281_pos = $P10."pos"()
+    rx286_cur."!cursor_pos"(rx286_pos)
+    $P10 = rx286_cur."ws"()
+    unless $P10, rx286_fail
+    rx286_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx281_cur."!cursor_pos"(rx281_pos)
-    $P10 = rx281_cur."quantified_atom"()
-    unless $P10, rx281_fail
-    rx281_cur."!mark_push"(0, -1, 0, $P10)
+    rx286_cur."!cursor_pos"(rx286_pos)
+    $P10 = rx286_cur."quantified_atom"()
+    unless $P10, rx286_fail
+    rx286_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx281_pos = $P10."pos"()
+    rx286_pos = $P10."pos"()
 .annotate 'line', 92
   # rx pass
-    rx281_cur."!cursor_pass"(rx281_pos, "metachar:sym<~>")
-    rx281_cur."!cursor_debug"("PASS  ", "metachar:sym<~>", " at pos=", rx281_pos)
-    .return (rx281_cur)
-  rx281_fail:
+    rx286_cur."!cursor_pass"(rx286_pos, "metachar:sym<~>")
+    rx286_cur."!cursor_debug"("PASS  ", "metachar:sym<~>", " at pos=", rx286_pos)
+    .return (rx286_cur)
+  rx286_fail:
 .annotate 'line', 3
-    (rx281_rep, rx281_pos, $I10, $P10) = rx281_cur."!mark_fail"(0)
-    lt rx281_pos, -1, rx281_done
-    eq rx281_pos, -1, rx281_fail
+    (rx286_rep, rx286_pos, $I10, $P10) = rx286_cur."!mark_fail"(0)
+    lt rx286_pos, -1, rx286_done
+    eq rx286_pos, -1, rx286_fail
     jump $I10
-  rx281_done:
-    rx281_cur."!cursor_fail"()
-    rx281_cur."!cursor_debug"("FAIL  ", "metachar:sym<~>")
-    .return (rx281_cur)
+  rx286_done:
+    rx286_cur."!cursor_fail"()
+    rx286_cur."!cursor_debug"("FAIL  ", "metachar:sym<~>")
+    .return (rx286_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>"  :subid("82_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<~>"  :subid("82_1275811476.7961") :method
 .annotate 'line', 3
-    $P283 = self."!PREFIX__!subrule"("", "~")
-    new $P284, "ResizablePMCArray"
-    push $P284, $P283
-    .return ($P284)
+    $P288 = self."!PREFIX__!subrule"("ws", "~")
+    new $P289, "ResizablePMCArray"
+    push $P289, $P288
+    .return ($P289)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>"  :subid("83_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<{*}>"  :subid("83_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx288_tgt
-    .local int rx288_pos
-    .local int rx288_off
-    .local int rx288_eos
-    .local int rx288_rep
-    .local pmc rx288_cur
-    (rx288_cur, rx288_pos, rx288_tgt) = self."!cursor_start"()
-    rx288_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
-    rx288_cur."!cursor_caparray"("key")
-    .lex unicode:"$\x{a2}", rx288_cur
+    .local string rx293_tgt
+    .local int rx293_pos
+    .local int rx293_off
+    .local int rx293_eos
+    .local int rx293_rep
+    .local pmc rx293_cur
+    (rx293_cur, rx293_pos, rx293_tgt) = self."!cursor_start"()
+    rx293_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
+    rx293_cur."!cursor_caparray"("key")
+    .lex unicode:"$\x{a2}", rx293_cur
     .local pmc match
     .lex "$/", match
-    length rx288_eos, rx288_tgt
-    set rx288_off, 0
-    lt rx288_pos, 2, rx288_start
-    sub rx288_off, rx288_pos, 1
-    substr rx288_tgt, rx288_tgt, rx288_off
-  rx288_start:
+    length rx293_eos, rx293_tgt
+    gt rx293_pos, rx293_eos, rx293_done
+    set rx293_off, 0
+    lt rx293_pos, 2, rx293_start
+    sub rx293_off, rx293_pos, 1
+    substr rx293_tgt, rx293_tgt, rx293_off
+  rx293_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan291_done
-    goto rxscan291_scan
-  rxscan291_loop:
-    ($P10) = rx288_cur."from"()
+    ne $I10, -1, rxscan296_done
+    goto rxscan296_scan
+  rxscan296_loop:
+    ($P10) = rx293_cur."from"()
     inc $P10
-    set rx288_pos, $P10
-    ge rx288_pos, rx288_eos, rxscan291_done
-  rxscan291_scan:
-    set_addr $I10, rxscan291_loop
-    rx288_cur."!mark_push"(0, rx288_pos, $I10)
-  rxscan291_done:
+    set rx293_pos, $P10
+    ge rx293_pos, rx293_eos, rxscan296_done
+  rxscan296_scan:
+    set_addr $I10, rxscan296_loop
+    rx293_cur."!mark_push"(0, rx293_pos, $I10)
+  rxscan296_done:
 .annotate 'line', 99
   # rx subcapture "sym"
-    set_addr $I10, rxcap_292_fail
-    rx288_cur."!mark_push"(0, rx288_pos, $I10)
+    set_addr $I10, rxcap_297_fail
+    rx293_cur."!mark_push"(0, rx293_pos, $I10)
   # rx literal  "{*}"
-    add $I11, rx288_pos, 3
-    gt $I11, rx288_eos, rx288_fail
-    sub $I11, rx288_pos, rx288_off
-    substr $S10, rx288_tgt, $I11, 3
-    ne $S10, "{*}", rx288_fail
-    add rx288_pos, 3
-    set_addr $I10, rxcap_292_fail
-    ($I12, $I11) = rx288_cur."!mark_peek"($I10)
-    rx288_cur."!cursor_pos"($I11)
-    ($P10) = rx288_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx288_pos, "")
-    rx288_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx293_pos, 3
+    gt $I11, rx293_eos, rx293_fail
+    sub $I11, rx293_pos, rx293_off
+    substr $S10, rx293_tgt, $I11, 3
+    ne $S10, "{*}", rx293_fail
+    add rx293_pos, 3
+    set_addr $I10, rxcap_297_fail
+    ($I12, $I11) = rx293_cur."!mark_peek"($I10)
+    rx293_cur."!cursor_pos"($I11)
+    ($P10) = rx293_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx293_pos, "")
+    rx293_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_292_done
-  rxcap_292_fail:
-    goto rx288_fail
-  rxcap_292_done:
+    goto rxcap_297_done
+  rxcap_297_fail:
+    goto rx293_fail
+  rxcap_297_done:
 .annotate 'line', 100
-  # rx rxquantr293 ** 0..1
-    set_addr $I303, rxquantr293_done
-    rx288_cur."!mark_push"(0, rx288_pos, $I303)
-  rxquantr293_loop:
-  # rx rxquantr294 ** 0..*
-    set_addr $I295, rxquantr294_done
-    rx288_cur."!mark_push"(0, rx288_pos, $I295)
-  rxquantr294_loop:
+  # rx rxquantr298 ** 0..1
+    set_addr $I308, rxquantr298_done
+    rx293_cur."!mark_push"(0, rx293_pos, $I308)
+  rxquantr298_loop:
+  # rx rxquantr299 ** 0..*
+    set_addr $I300, rxquantr299_done
+    rx293_cur."!mark_push"(0, rx293_pos, $I300)
+  rxquantr299_loop:
   # rx enumcharlist negate=0 
-    ge rx288_pos, rx288_eos, rx288_fail
-    sub $I10, rx288_pos, rx288_off
-    substr $S10, rx288_tgt, $I10, 1
+    ge rx293_pos, rx293_eos, rx293_fail
+    sub $I10, rx293_pos, rx293_off
+    substr $S10, rx293_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, rx288_fail
-    inc rx288_pos
-    (rx288_rep) = rx288_cur."!mark_commit"($I295)
-    rx288_cur."!mark_push"(rx288_rep, rx288_pos, $I295)
-    goto rxquantr294_loop
-  rxquantr294_done:
+    lt $I11, 0, rx293_fail
+    inc rx293_pos
+    (rx293_rep) = rx293_cur."!mark_commit"($I300)
+    rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I300)
+    goto rxquantr299_loop
+  rxquantr299_done:
   # rx literal  "#= "
-    add $I11, rx288_pos, 3
-    gt $I11, rx288_eos, rx288_fail
-    sub $I11, rx288_pos, rx288_off
-    substr $S10, rx288_tgt, $I11, 3
-    ne $S10, "#= ", rx288_fail
-    add rx288_pos, 3
-  # rx rxquantr296 ** 0..*
-    set_addr $I297, rxquantr296_done
-    rx288_cur."!mark_push"(0, rx288_pos, $I297)
-  rxquantr296_loop:
+    add $I11, rx293_pos, 3
+    gt $I11, rx293_eos, rx293_fail
+    sub $I11, rx293_pos, rx293_off
+    substr $S10, rx293_tgt, $I11, 3
+    ne $S10, "#= ", rx293_fail
+    add rx293_pos, 3
+  # rx rxquantr301 ** 0..*
+    set_addr $I302, rxquantr301_done
+    rx293_cur."!mark_push"(0, rx293_pos, $I302)
+  rxquantr301_loop:
   # rx enumcharlist negate=0 
-    ge rx288_pos, rx288_eos, rx288_fail
-    sub $I10, rx288_pos, rx288_off
-    substr $S10, rx288_tgt, $I10, 1
+    ge rx293_pos, rx293_eos, rx293_fail
+    sub $I10, rx293_pos, rx293_off
+    substr $S10, rx293_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, rx288_fail
-    inc rx288_pos
-    (rx288_rep) = rx288_cur."!mark_commit"($I297)
-    rx288_cur."!mark_push"(rx288_rep, rx288_pos, $I297)
-    goto rxquantr296_loop
-  rxquantr296_done:
+    lt $I11, 0, rx293_fail
+    inc rx293_pos
+    (rx293_rep) = rx293_cur."!mark_commit"($I302)
+    rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I302)
+    goto rxquantr301_loop
+  rxquantr301_done:
   # rx subcapture "key"
-    set_addr $I10, rxcap_302_fail
-    rx288_cur."!mark_push"(0, rx288_pos, $I10)
+    set_addr $I10, rxcap_307_fail
+    rx293_cur."!mark_push"(0, rx293_pos, $I10)
   # rx charclass_q S r 1..-1
-    sub $I10, rx288_pos, rx288_off
-    find_cclass $I11, 32, rx288_tgt, $I10, rx288_eos
+    sub $I10, rx293_pos, rx293_off
+    find_cclass $I11, 32, rx293_tgt, $I10, rx293_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx288_fail
-    add rx288_pos, rx288_off, $I11
-  # rx rxquantr298 ** 0..*
-    set_addr $I301, rxquantr298_done
-    rx288_cur."!mark_push"(0, rx288_pos, $I301)
-  rxquantr298_loop:
-  # rx rxquantr299 ** 1..*
-    set_addr $I300, rxquantr299_done
-    rx288_cur."!mark_push"(0, -1, $I300)
-  rxquantr299_loop:
+    lt $I11, $I12, rx293_fail
+    add rx293_pos, rx293_off, $I11
+  # rx rxquantr303 ** 0..*
+    set_addr $I306, rxquantr303_done
+    rx293_cur."!mark_push"(0, rx293_pos, $I306)
+  rxquantr303_loop:
+  # rx rxquantr304 ** 1..*
+    set_addr $I305, rxquantr304_done
+    rx293_cur."!mark_push"(0, -1, $I305)
+  rxquantr304_loop:
   # rx enumcharlist negate=0 
-    ge rx288_pos, rx288_eos, rx288_fail
-    sub $I10, rx288_pos, rx288_off
-    substr $S10, rx288_tgt, $I10, 1
+    ge rx293_pos, rx293_eos, rx293_fail
+    sub $I10, rx293_pos, rx293_off
+    substr $S10, rx293_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, rx288_fail
-    inc rx288_pos
-    (rx288_rep) = rx288_cur."!mark_commit"($I300)
-    rx288_cur."!mark_push"(rx288_rep, rx288_pos, $I300)
-    goto rxquantr299_loop
-  rxquantr299_done:
+    lt $I11, 0, rx293_fail
+    inc rx293_pos
+    (rx293_rep) = rx293_cur."!mark_commit"($I305)
+    rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I305)
+    goto rxquantr304_loop
+  rxquantr304_done:
   # rx charclass_q S r 1..-1
-    sub $I10, rx288_pos, rx288_off
-    find_cclass $I11, 32, rx288_tgt, $I10, rx288_eos
+    sub $I10, rx293_pos, rx293_off
+    find_cclass $I11, 32, rx293_tgt, $I10, rx293_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx288_fail
-    add rx288_pos, rx288_off, $I11
-    (rx288_rep) = rx288_cur."!mark_commit"($I301)
-    rx288_cur."!mark_push"(rx288_rep, rx288_pos, $I301)
-    goto rxquantr298_loop
-  rxquantr298_done:
-    set_addr $I10, rxcap_302_fail
-    ($I12, $I11) = rx288_cur."!mark_peek"($I10)
-    rx288_cur."!cursor_pos"($I11)
-    ($P10) = rx288_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx288_pos, "")
-    rx288_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx293_fail
+    add rx293_pos, rx293_off, $I11
+    (rx293_rep) = rx293_cur."!mark_commit"($I306)
+    rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I306)
+    goto rxquantr303_loop
+  rxquantr303_done:
+    set_addr $I10, rxcap_307_fail
+    ($I12, $I11) = rx293_cur."!mark_peek"($I10)
+    rx293_cur."!cursor_pos"($I11)
+    ($P10) = rx293_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx293_pos, "")
+    rx293_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("key")
-    goto rxcap_302_done
-  rxcap_302_fail:
-    goto rx288_fail
-  rxcap_302_done:
-    (rx288_rep) = rx288_cur."!mark_commit"($I303)
-  rxquantr293_done:
+    goto rxcap_307_done
+  rxcap_307_fail:
+    goto rx293_fail
+  rxcap_307_done:
+    (rx293_rep) = rx293_cur."!mark_commit"($I308)
+  rxquantr298_done:
 .annotate 'line', 98
   # rx pass
-    rx288_cur."!cursor_pass"(rx288_pos, "metachar:sym<{*}>")
-    rx288_cur."!cursor_debug"("PASS  ", "metachar:sym<{*}>", " at pos=", rx288_pos)
-    .return (rx288_cur)
-  rx288_fail:
+    rx293_cur."!cursor_pass"(rx293_pos, "metachar:sym<{*}>")
+    rx293_cur."!cursor_debug"("PASS  ", "metachar:sym<{*}>", " at pos=", rx293_pos)
+    .return (rx293_cur)
+  rx293_fail:
 .annotate 'line', 3
-    (rx288_rep, rx288_pos, $I10, $P10) = rx288_cur."!mark_fail"(0)
-    lt rx288_pos, -1, rx288_done
-    eq rx288_pos, -1, rx288_fail
+    (rx293_rep, rx293_pos, $I10, $P10) = rx293_cur."!mark_fail"(0)
+    lt rx293_pos, -1, rx293_done
+    eq rx293_pos, -1, rx293_fail
     jump $I10
-  rx288_done:
-    rx288_cur."!cursor_fail"()
-    rx288_cur."!cursor_debug"("FAIL  ", "metachar:sym<{*}>")
-    .return (rx288_cur)
+  rx293_done:
+    rx293_cur."!cursor_fail"()
+    rx293_cur."!cursor_debug"("FAIL  ", "metachar:sym<{*}>")
+    .return (rx293_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>"  :subid("84_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<{*}>"  :subid("84_1275811476.7961") :method
 .annotate 'line', 3
-    new $P290, "ResizablePMCArray"
-    push $P290, "{*}"
-    .return ($P290)
+    new $P295, "ResizablePMCArray"
+    push $P295, "{*}"
+    .return ($P295)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>"  :subid("85_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<assert>"  :subid("85_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx305_tgt
-    .local int rx305_pos
-    .local int rx305_off
-    .local int rx305_eos
-    .local int rx305_rep
-    .local pmc rx305_cur
-    (rx305_cur, rx305_pos, rx305_tgt) = self."!cursor_start"()
-    rx305_cur."!cursor_debug"("START ", "metachar:sym<assert>")
-    .lex unicode:"$\x{a2}", rx305_cur
+    .local string rx310_tgt
+    .local int rx310_pos
+    .local int rx310_off
+    .local int rx310_eos
+    .local int rx310_rep
+    .local pmc rx310_cur
+    (rx310_cur, rx310_pos, rx310_tgt) = self."!cursor_start"()
+    rx310_cur."!cursor_debug"("START ", "metachar:sym<assert>")
+    .lex unicode:"$\x{a2}", rx310_cur
     .local pmc match
     .lex "$/", match
-    length rx305_eos, rx305_tgt
-    set rx305_off, 0
-    lt rx305_pos, 2, rx305_start
-    sub rx305_off, rx305_pos, 1
-    substr rx305_tgt, rx305_tgt, rx305_off
-  rx305_start:
+    length rx310_eos, rx310_tgt
+    gt rx310_pos, rx310_eos, rx310_done
+    set rx310_off, 0
+    lt rx310_pos, 2, rx310_start
+    sub rx310_off, rx310_pos, 1
+    substr rx310_tgt, rx310_tgt, rx310_off
+  rx310_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan309_done
-    goto rxscan309_scan
-  rxscan309_loop:
-    ($P10) = rx305_cur."from"()
+    ne $I10, -1, rxscan314_done
+    goto rxscan314_scan
+  rxscan314_loop:
+    ($P10) = rx310_cur."from"()
     inc $P10
-    set rx305_pos, $P10
-    ge rx305_pos, rx305_eos, rxscan309_done
-  rxscan309_scan:
-    set_addr $I10, rxscan309_loop
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
-  rxscan309_done:
+    set rx310_pos, $P10
+    ge rx310_pos, rx310_eos, rxscan314_done
+  rxscan314_scan:
+    set_addr $I10, rxscan314_loop
+    rx310_cur."!mark_push"(0, rx310_pos, $I10)
+  rxscan314_done:
 .annotate 'line', 103
   # rx literal  "<"
-    add $I11, rx305_pos, 1
-    gt $I11, rx305_eos, rx305_fail
-    sub $I11, rx305_pos, rx305_off
-    substr $S10, rx305_tgt, $I11, 1
-    ne $S10, "<", rx305_fail
-    add rx305_pos, 1
+    add $I11, rx310_pos, 1
+    gt $I11, rx310_eos, rx310_fail
+    sub $I11, rx310_pos, rx310_off
+    substr $S10, rx310_tgt, $I11, 1
+    ne $S10, "<", rx310_fail
+    add rx310_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx305_cur."!cursor_pos"(rx305_pos)
-    $P10 = rx305_cur."assertion"()
-    unless $P10, rx305_fail
-    rx305_cur."!mark_push"(0, -1, 0, $P10)
+    rx310_cur."!cursor_pos"(rx310_pos)
+    $P10 = rx310_cur."assertion"()
+    unless $P10, rx310_fail
+    rx310_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx305_pos = $P10."pos"()
-  alt310_0:
+    rx310_pos = $P10."pos"()
+  alt315_0:
 .annotate 'line', 104
-    set_addr $I10, alt310_1
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
+    set_addr $I10, alt315_1
+    rx310_cur."!mark_push"(0, rx310_pos, $I10)
   # rx literal  ">"
-    add $I11, rx305_pos, 1
-    gt $I11, rx305_eos, rx305_fail
-    sub $I11, rx305_pos, rx305_off
-    substr $S10, rx305_tgt, $I11, 1
-    ne $S10, ">", rx305_fail
-    add rx305_pos, 1
-    goto alt310_end
-  alt310_1:
+    add $I11, rx310_pos, 1
+    gt $I11, rx310_eos, rx310_fail
+    sub $I11, rx310_pos, rx310_off
+    substr $S10, rx310_tgt, $I11, 1
+    ne $S10, ">", rx310_fail
+    add rx310_pos, 1
+    goto alt315_end
+  alt315_1:
   # rx subrule "panic" subtype=method negate=
-    rx305_cur."!cursor_pos"(rx305_pos)
-    $P10 = rx305_cur."panic"("regex assertion not terminated by angle bracket")
-    unless $P10, rx305_fail
-    rx305_pos = $P10."pos"()
-  alt310_end:
+    rx310_cur."!cursor_pos"(rx310_pos)
+    $P10 = rx310_cur."panic"("regex assertion not terminated by angle bracket")
+    unless $P10, rx310_fail
+    rx310_pos = $P10."pos"()
+  alt315_end:
 .annotate 'line', 102
   # rx pass
-    rx305_cur."!cursor_pass"(rx305_pos, "metachar:sym<assert>")
-    rx305_cur."!cursor_debug"("PASS  ", "metachar:sym<assert>", " at pos=", rx305_pos)
-    .return (rx305_cur)
-  rx305_fail:
+    rx310_cur."!cursor_pass"(rx310_pos, "metachar:sym<assert>")
+    rx310_cur."!cursor_debug"("PASS  ", "metachar:sym<assert>", " at pos=", rx310_pos)
+    .return (rx310_cur)
+  rx310_fail:
 .annotate 'line', 3
-    (rx305_rep, rx305_pos, $I10, $P10) = rx305_cur."!mark_fail"(0)
-    lt rx305_pos, -1, rx305_done
-    eq rx305_pos, -1, rx305_fail
+    (rx310_rep, rx310_pos, $I10, $P10) = rx310_cur."!mark_fail"(0)
+    lt rx310_pos, -1, rx310_done
+    eq rx310_pos, -1, rx310_fail
     jump $I10
-  rx305_done:
-    rx305_cur."!cursor_fail"()
-    rx305_cur."!cursor_debug"("FAIL  ", "metachar:sym<assert>")
-    .return (rx305_cur)
+  rx310_done:
+    rx310_cur."!cursor_fail"()
+    rx310_cur."!cursor_debug"("FAIL  ", "metachar:sym<assert>")
+    .return (rx310_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>"  :subid("86_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<assert>"  :subid("86_1275811476.7961") :method
 .annotate 'line', 3
-    $P307 = self."!PREFIX__!subrule"("assertion", "<")
-    new $P308, "ResizablePMCArray"
-    push $P308, $P307
-    .return ($P308)
+    $P312 = self."!PREFIX__!subrule"("assertion", "<")
+    new $P313, "ResizablePMCArray"
+    push $P313, $P312
+    .return ($P313)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>"  :subid("87_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<var>"  :subid("87_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx312_tgt
-    .local int rx312_pos
-    .local int rx312_off
-    .local int rx312_eos
-    .local int rx312_rep
-    .local pmc rx312_cur
-    (rx312_cur, rx312_pos, rx312_tgt) = self."!cursor_start"()
-    rx312_cur."!cursor_debug"("START ", "metachar:sym<var>")
-    rx312_cur."!cursor_caparray"("quantified_atom")
-    .lex unicode:"$\x{a2}", rx312_cur
+    .local string rx317_tgt
+    .local int rx317_pos
+    .local int rx317_off
+    .local int rx317_eos
+    .local int rx317_rep
+    .local pmc rx317_cur
+    (rx317_cur, rx317_pos, rx317_tgt) = self."!cursor_start"()
+    rx317_cur."!cursor_debug"("START ", "metachar:sym<var>")
+    rx317_cur."!cursor_caparray"("quantified_atom")
+    .lex unicode:"$\x{a2}", rx317_cur
     .local pmc match
     .lex "$/", match
-    length rx312_eos, rx312_tgt
-    set rx312_off, 0
-    lt rx312_pos, 2, rx312_start
-    sub rx312_off, rx312_pos, 1
-    substr rx312_tgt, rx312_tgt, rx312_off
-  rx312_start:
+    length rx317_eos, rx317_tgt
+    gt rx317_pos, rx317_eos, rx317_done
+    set rx317_off, 0
+    lt rx317_pos, 2, rx317_start
+    sub rx317_off, rx317_pos, 1
+    substr rx317_tgt, rx317_tgt, rx317_off
+  rx317_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan315_done
-    goto rxscan315_scan
-  rxscan315_loop:
-    ($P10) = rx312_cur."from"()
+    ne $I10, -1, rxscan320_done
+    goto rxscan320_scan
+  rxscan320_loop:
+    ($P10) = rx317_cur."from"()
     inc $P10
-    set rx312_pos, $P10
-    ge rx312_pos, rx312_eos, rxscan315_done
-  rxscan315_scan:
-    set_addr $I10, rxscan315_loop
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
-  rxscan315_done:
-  alt316_0:
+    set rx317_pos, $P10
+    ge rx317_pos, rx317_eos, rxscan320_done
+  rxscan320_scan:
+    set_addr $I10, rxscan320_loop
+    rx317_cur."!mark_push"(0, rx317_pos, $I10)
+  rxscan320_done:
+  alt321_0:
 .annotate 'line', 108
-    set_addr $I10, alt316_1
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
+    set_addr $I10, alt321_1
+    rx317_cur."!mark_push"(0, rx317_pos, $I10)
 .annotate 'line', 109
   # rx literal  "$<"
-    add $I11, rx312_pos, 2
-    gt $I11, rx312_eos, rx312_fail
-    sub $I11, rx312_pos, rx312_off
-    substr $S10, rx312_tgt, $I11, 2
-    ne $S10, "$<", rx312_fail
-    add rx312_pos, 2
+    add $I11, rx317_pos, 2
+    gt $I11, rx317_eos, rx317_fail
+    sub $I11, rx317_pos, rx317_off
+    substr $S10, rx317_tgt, $I11, 2
+    ne $S10, "$<", rx317_fail
+    add rx317_pos, 2
   # rx subcapture "name"
-    set_addr $I10, rxcap_319_fail
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
-  # rx rxquantr317 ** 1..*
-    set_addr $I318, rxquantr317_done
-    rx312_cur."!mark_push"(0, -1, $I318)
-  rxquantr317_loop:
+    set_addr $I10, rxcap_324_fail
+    rx317_cur."!mark_push"(0, rx317_pos, $I10)
+  # rx rxquantr322 ** 1..*
+    set_addr $I323, rxquantr322_done
+    rx317_cur."!mark_push"(0, -1, $I323)
+  rxquantr322_loop:
   # rx enumcharlist negate=1 
-    ge rx312_pos, rx312_eos, rx312_fail
-    sub $I10, rx312_pos, rx312_off
-    substr $S10, rx312_tgt, $I10, 1
+    ge rx317_pos, rx317_eos, rx317_fail
+    sub $I10, rx317_pos, rx317_off
+    substr $S10, rx317_tgt, $I10, 1
     index $I11, ">", $S10
-    ge $I11, 0, rx312_fail
-    inc rx312_pos
-    (rx312_rep) = rx312_cur."!mark_commit"($I318)
-    rx312_cur."!mark_push"(rx312_rep, rx312_pos, $I318)
-    goto rxquantr317_loop
-  rxquantr317_done:
-    set_addr $I10, rxcap_319_fail
-    ($I12, $I11) = rx312_cur."!mark_peek"($I10)
-    rx312_cur."!cursor_pos"($I11)
-    ($P10) = rx312_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx312_pos, "")
-    rx312_cur."!mark_push"(0, -1, 0, $P10)
+    ge $I11, 0, rx317_fail
+    inc rx317_pos
+    (rx317_rep) = rx317_cur."!mark_commit"($I323)
+    rx317_cur."!mark_push"(rx317_rep, rx317_pos, $I323)
+    goto rxquantr322_loop
+  rxquantr322_done:
+    set_addr $I10, rxcap_324_fail
+    ($I12, $I11) = rx317_cur."!mark_peek"($I10)
+    rx317_cur."!cursor_pos"($I11)
+    ($P10) = rx317_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx317_pos, "")
+    rx317_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    goto rxcap_319_done
-  rxcap_319_fail:
-    goto rx312_fail
-  rxcap_319_done:
+    goto rxcap_324_done
+  rxcap_324_fail:
+    goto rx317_fail
+  rxcap_324_done:
   # rx literal  ">"
-    add $I11, rx312_pos, 1
-    gt $I11, rx312_eos, rx312_fail
-    sub $I11, rx312_pos, rx312_off
-    substr $S10, rx312_tgt, $I11, 1
-    ne $S10, ">", rx312_fail
-    add rx312_pos, 1
-    goto alt316_end
-  alt316_1:
+    add $I11, rx317_pos, 1
+    gt $I11, rx317_eos, rx317_fail
+    sub $I11, rx317_pos, rx317_off
+    substr $S10, rx317_tgt, $I11, 1
+    ne $S10, ">", rx317_fail
+    add rx317_pos, 1
+    goto alt321_end
+  alt321_1:
 .annotate 'line', 110
   # rx literal  "$"
-    add $I11, rx312_pos, 1
-    gt $I11, rx312_eos, rx312_fail
-    sub $I11, rx312_pos, rx312_off
-    substr $S10, rx312_tgt, $I11, 1
-    ne $S10, "$", rx312_fail
-    add rx312_pos, 1
+    add $I11, rx317_pos, 1
+    gt $I11, rx317_eos, rx317_fail
+    sub $I11, rx317_pos, rx317_off
+    substr $S10, rx317_tgt, $I11, 1
+    ne $S10, "$", rx317_fail
+    add rx317_pos, 1
   # rx subcapture "pos"
-    set_addr $I10, rxcap_320_fail
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
+    set_addr $I10, rxcap_325_fail
+    rx317_cur."!mark_push"(0, rx317_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx312_pos, rx312_off
-    find_not_cclass $I11, 8, rx312_tgt, $I10, rx312_eos
+    sub $I10, rx317_pos, rx317_off
+    find_not_cclass $I11, 8, rx317_tgt, $I10, rx317_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx312_fail
-    add rx312_pos, rx312_off, $I11
-    set_addr $I10, rxcap_320_fail
-    ($I12, $I11) = rx312_cur."!mark_peek"($I10)
-    rx312_cur."!cursor_pos"($I11)
-    ($P10) = rx312_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx312_pos, "")
-    rx312_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx317_fail
+    add rx317_pos, rx317_off, $I11
+    set_addr $I10, rxcap_325_fail
+    ($I12, $I11) = rx317_cur."!mark_peek"($I10)
+    rx317_cur."!cursor_pos"($I11)
+    ($P10) = rx317_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx317_pos, "")
+    rx317_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pos")
-    goto rxcap_320_done
-  rxcap_320_fail:
-    goto rx312_fail
-  rxcap_320_done:
-  alt316_end:
+    goto rxcap_325_done
+  rxcap_325_fail:
+    goto rx317_fail
+  rxcap_325_done:
+  alt321_end:
 .annotate 'line', 113
-  # rx rxquantr321 ** 0..1
-    set_addr $I322, rxquantr321_done
-    rx312_cur."!mark_push"(0, rx312_pos, $I322)
-  rxquantr321_loop:
+  # rx rxquantr326 ** 0..1
+    set_addr $I327, rxquantr326_done
+    rx317_cur."!mark_push"(0, rx317_pos, $I327)
+  rxquantr326_loop:
   # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
+    rx317_cur."!cursor_pos"(rx317_pos)
+    $P10 = rx317_cur."ws"()
+    unless $P10, rx317_fail
+    rx317_pos = $P10."pos"()
   # rx literal  "="
-    add $I11, rx312_pos, 1
-    gt $I11, rx312_eos, rx312_fail
-    sub $I11, rx312_pos, rx312_off
-    substr $S10, rx312_tgt, $I11, 1
-    ne $S10, "=", rx312_fail
-    add rx312_pos, 1
+    add $I11, rx317_pos, 1
+    gt $I11, rx317_eos, rx317_fail
+    sub $I11, rx317_pos, rx317_off
+    substr $S10, rx317_tgt, $I11, 1
+    ne $S10, "=", rx317_fail
+    add rx317_pos, 1
   # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
+    rx317_cur."!cursor_pos"(rx317_pos)
+    $P10 = rx317_cur."ws"()
+    unless $P10, rx317_fail
+    rx317_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."quantified_atom"()
-    unless $P10, rx312_fail
-    rx312_cur."!mark_push"(0, -1, 0, $P10)
+    rx317_cur."!cursor_pos"(rx317_pos)
+    $P10 = rx317_cur."quantified_atom"()
+    unless $P10, rx317_fail
+    rx317_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantified_atom")
-    rx312_pos = $P10."pos"()
-    (rx312_rep) = rx312_cur."!mark_commit"($I322)
-  rxquantr321_done:
+    rx317_pos = $P10."pos"()
+    (rx317_rep) = rx317_cur."!mark_commit"($I327)
+  rxquantr326_done:
 .annotate 'line', 107
   # rx pass
-    rx312_cur."!cursor_pass"(rx312_pos, "metachar:sym<var>")
-    rx312_cur."!cursor_debug"("PASS  ", "metachar:sym<var>", " at pos=", rx312_pos)
-    .return (rx312_cur)
-  rx312_fail:
+    rx317_cur."!cursor_pass"(rx317_pos, "metachar:sym<var>")
+    rx317_cur."!cursor_debug"("PASS  ", "metachar:sym<var>", " at pos=", rx317_pos)
+    .return (rx317_cur)
+  rx317_fail:
 .annotate 'line', 3
-    (rx312_rep, rx312_pos, $I10, $P10) = rx312_cur."!mark_fail"(0)
-    lt rx312_pos, -1, rx312_done
-    eq rx312_pos, -1, rx312_fail
+    (rx317_rep, rx317_pos, $I10, $P10) = rx317_cur."!mark_fail"(0)
+    lt rx317_pos, -1, rx317_done
+    eq rx317_pos, -1, rx317_fail
     jump $I10
-  rx312_done:
-    rx312_cur."!cursor_fail"()
-    rx312_cur."!cursor_debug"("FAIL  ", "metachar:sym<var>")
-    .return (rx312_cur)
+  rx317_done:
+    rx317_cur."!cursor_fail"()
+    rx317_cur."!cursor_debug"("FAIL  ", "metachar:sym<var>")
+    .return (rx317_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>"  :subid("88_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<var>"  :subid("88_1275811476.7961") :method
 .annotate 'line', 3
-    new $P314, "ResizablePMCArray"
-    push $P314, "$"
-    push $P314, "$<"
-    .return ($P314)
+    new $P319, "ResizablePMCArray"
+    push $P319, "$"
+    push $P319, "$<"
+    .return ($P319)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>"  :subid("89_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "metachar:sym<PIR>"  :subid("89_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx324_tgt
-    .local int rx324_pos
-    .local int rx324_off
-    .local int rx324_eos
-    .local int rx324_rep
-    .local pmc rx324_cur
-    (rx324_cur, rx324_pos, rx324_tgt) = self."!cursor_start"()
-    rx324_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
-    .lex unicode:"$\x{a2}", rx324_cur
+    .local string rx329_tgt
+    .local int rx329_pos
+    .local int rx329_off
+    .local int rx329_eos
+    .local int rx329_rep
+    .local pmc rx329_cur
+    (rx329_cur, rx329_pos, rx329_tgt) = self."!cursor_start"()
+    rx329_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
+    .lex unicode:"$\x{a2}", rx329_cur
     .local pmc match
     .lex "$/", match
-    length rx324_eos, rx324_tgt
-    set rx324_off, 0
-    lt rx324_pos, 2, rx324_start
-    sub rx324_off, rx324_pos, 1
-    substr rx324_tgt, rx324_tgt, rx324_off
-  rx324_start:
+    length rx329_eos, rx329_tgt
+    gt rx329_pos, rx329_eos, rx329_done
+    set rx329_off, 0
+    lt rx329_pos, 2, rx329_start
+    sub rx329_off, rx329_pos, 1
+    substr rx329_tgt, rx329_tgt, rx329_off
+  rx329_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan327_done
-    goto rxscan327_scan
-  rxscan327_loop:
-    ($P10) = rx324_cur."from"()
+    ne $I10, -1, rxscan332_done
+    goto rxscan332_scan
+  rxscan332_loop:
+    ($P10) = rx329_cur."from"()
     inc $P10
-    set rx324_pos, $P10
-    ge rx324_pos, rx324_eos, rxscan327_done
-  rxscan327_scan:
-    set_addr $I10, rxscan327_loop
-    rx324_cur."!mark_push"(0, rx324_pos, $I10)
-  rxscan327_done:
+    set rx329_pos, $P10
+    ge rx329_pos, rx329_eos, rxscan332_done
+  rxscan332_scan:
+    set_addr $I10, rxscan332_loop
+    rx329_cur."!mark_push"(0, rx329_pos, $I10)
+  rxscan332_done:
 .annotate 'line', 117
   # rx literal  ":PIR{{"
-    add $I11, rx324_pos, 6
-    gt $I11, rx324_eos, rx324_fail
-    sub $I11, rx324_pos, rx324_off
-    substr $S10, rx324_tgt, $I11, 6
-    ne $S10, ":PIR{{", rx324_fail
-    add rx324_pos, 6
+    add $I11, rx329_pos, 6
+    gt $I11, rx329_eos, rx329_fail
+    sub $I11, rx329_pos, rx329_off
+    substr $S10, rx329_tgt, $I11, 6
+    ne $S10, ":PIR{{", rx329_fail
+    add rx329_pos, 6
   # rx subcapture "pir"
-    set_addr $I10, rxcap_330_fail
-    rx324_cur."!mark_push"(0, rx324_pos, $I10)
-  # rx rxquantf328 ** 0..*
-    set_addr $I10, rxquantf328_loop
-    rx324_cur."!mark_push"(0, rx324_pos, $I10)
-    goto rxquantf328_done
-  rxquantf328_loop:
+    set_addr $I10, rxcap_335_fail
+    rx329_cur."!mark_push"(0, rx329_pos, $I10)
+  # rx rxquantf333 ** 0..*
+    set_addr $I10, rxquantf333_loop
+    rx329_cur."!mark_push"(0, rx329_pos, $I10)
+    goto rxquantf333_done
+  rxquantf333_loop:
   # rx charclass .
-    ge rx324_pos, rx324_eos, rx324_fail
-    inc rx324_pos
-    set_addr $I10, rxquantf328_loop
-    rx324_cur."!mark_push"($I329, rx324_pos, $I10)
-  rxquantf328_done:
-    set_addr $I10, rxcap_330_fail
-    ($I12, $I11) = rx324_cur."!mark_peek"($I10)
-    rx324_cur."!cursor_pos"($I11)
-    ($P10) = rx324_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx324_pos, "")
-    rx324_cur."!mark_push"(0, -1, 0, $P10)
+    ge rx329_pos, rx329_eos, rx329_fail
+    inc rx329_pos
+    set_addr $I10, rxquantf333_loop
+    rx329_cur."!mark_push"($I334, rx329_pos, $I10)
+  rxquantf333_done:
+    set_addr $I10, rxcap_335_fail
+    ($I12, $I11) = rx329_cur."!mark_peek"($I10)
+    rx329_cur."!cursor_pos"($I11)
+    ($P10) = rx329_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx329_pos, "")
+    rx329_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pir")
-    goto rxcap_330_done
-  rxcap_330_fail:
-    goto rx324_fail
-  rxcap_330_done:
+    goto rxcap_335_done
+  rxcap_335_fail:
+    goto rx329_fail
+  rxcap_335_done:
   # rx literal  "}}"
-    add $I11, rx324_pos, 2
-    gt $I11, rx324_eos, rx324_fail
-    sub $I11, rx324_pos, rx324_off
-    substr $S10, rx324_tgt, $I11, 2
-    ne $S10, "}}", rx324_fail
-    add rx324_pos, 2
+    add $I11, rx329_pos, 2
+    gt $I11, rx329_eos, rx329_fail
+    sub $I11, rx329_pos, rx329_off
+    substr $S10, rx329_tgt, $I11, 2
+    ne $S10, "}}", rx329_fail
+    add rx329_pos, 2
 .annotate 'line', 116
   # rx pass
-    rx324_cur."!cursor_pass"(rx324_pos, "metachar:sym<PIR>")
-    rx324_cur."!cursor_debug"("PASS  ", "metachar:sym<PIR>", " at pos=", rx324_pos)
-    .return (rx324_cur)
-  rx324_fail:
+    rx329_cur."!cursor_pass"(rx329_pos, "metachar:sym<PIR>")
+    rx329_cur."!cursor_debug"("PASS  ", "metachar:sym<PIR>", " at pos=", rx329_pos)
+    .return (rx329_cur)
+  rx329_fail:
 .annotate 'line', 3
-    (rx324_rep, rx324_pos, $I10, $P10) = rx324_cur."!mark_fail"(0)
-    lt rx324_pos, -1, rx324_done
-    eq rx324_pos, -1, rx324_fail
+    (rx329_rep, rx329_pos, $I10, $P10) = rx329_cur."!mark_fail"(0)
+    lt rx329_pos, -1, rx329_done
+    eq rx329_pos, -1, rx329_fail
     jump $I10
-  rx324_done:
-    rx324_cur."!cursor_fail"()
-    rx324_cur."!cursor_debug"("FAIL  ", "metachar:sym<PIR>")
-    .return (rx324_cur)
+  rx329_done:
+    rx329_cur."!cursor_fail"()
+    rx329_cur."!cursor_debug"("FAIL  ", "metachar:sym<PIR>")
+    .return (rx329_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>"  :subid("90_1274853027.61936") :method
+.sub "!PREFIX__metachar:sym<PIR>"  :subid("90_1275811476.7961") :method
 .annotate 'line', 3
-    new $P326, "ResizablePMCArray"
-    push $P326, ":PIR{{"
-    .return ($P326)
+    new $P331, "ResizablePMCArray"
+    push $P331, ":PIR{{"
+    .return ($P331)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash"  :subid("91_1274853027.61936") :method
+.sub "backslash"  :subid("91_1275811476.7961") :method
 .annotate 'line', 120
-    $P332 = self."!protoregex"("backslash")
-    .return ($P332)
+    $P337 = self."!protoregex"("backslash")
+    .return ($P337)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash"  :subid("92_1274853027.61936") :method
+.sub "!PREFIX__backslash"  :subid("92_1275811476.7961") :method
 .annotate 'line', 120
-    $P334 = self."!PREFIX__!protoregex"("backslash")
-    .return ($P334)
+    $P339 = self."!PREFIX__!protoregex"("backslash")
+    .return ($P339)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>"  :subid("93_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<w>"  :subid("93_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx336_tgt
-    .local int rx336_pos
-    .local int rx336_off
-    .local int rx336_eos
-    .local int rx336_rep
-    .local pmc rx336_cur
-    (rx336_cur, rx336_pos, rx336_tgt) = self."!cursor_start"()
-    rx336_cur."!cursor_debug"("START ", "backslash:sym<w>")
-    .lex unicode:"$\x{a2}", rx336_cur
-    .local pmc match
-    .lex "$/", match
-    length rx336_eos, rx336_tgt
-    set rx336_off, 0
-    lt rx336_pos, 2, rx336_start
-    sub rx336_off, rx336_pos, 1
-    substr rx336_tgt, rx336_tgt, rx336_off
-  rx336_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan339_done
-    goto rxscan339_scan
-  rxscan339_loop:
-    ($P10) = rx336_cur."from"()
-    inc $P10
-    set rx336_pos, $P10
-    ge rx336_pos, rx336_eos, rxscan339_done
-  rxscan339_scan:
-    set_addr $I10, rxscan339_loop
-    rx336_cur."!mark_push"(0, rx336_pos, $I10)
-  rxscan339_done:
+    .local string rx341_tgt
+    .local int rx341_pos
+    .local int rx341_off
+    .local int rx341_eos
+    .local int rx341_rep
+    .local pmc rx341_cur
+    (rx341_cur, rx341_pos, rx341_tgt) = self."!cursor_start"()
+    rx341_cur."!cursor_debug"("START ", "backslash:sym<w>")
+    .lex unicode:"$\x{a2}", rx341_cur
+    .local pmc match
+    .lex "$/", match
+    length rx341_eos, rx341_tgt
+    gt rx341_pos, rx341_eos, rx341_done
+    set rx341_off, 0
+    lt rx341_pos, 2, rx341_start
+    sub rx341_off, rx341_pos, 1
+    substr rx341_tgt, rx341_tgt, rx341_off
+  rx341_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan344_done
+    goto rxscan344_scan
+  rxscan344_loop:
+    ($P10) = rx341_cur."from"()
+    inc $P10
+    set rx341_pos, $P10
+    ge rx341_pos, rx341_eos, rxscan344_done
+  rxscan344_scan:
+    set_addr $I10, rxscan344_loop
+    rx341_cur."!mark_push"(0, rx341_pos, $I10)
+  rxscan344_done:
 .annotate 'line', 121
   # rx subcapture "sym"
-    set_addr $I10, rxcap_340_fail
-    rx336_cur."!mark_push"(0, rx336_pos, $I10)
+    set_addr $I10, rxcap_345_fail
+    rx341_cur."!mark_push"(0, rx341_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx336_pos, rx336_eos, rx336_fail
-    sub $I10, rx336_pos, rx336_off
-    substr $S10, rx336_tgt, $I10, 1
+    ge rx341_pos, rx341_eos, rx341_fail
+    sub $I10, rx341_pos, rx341_off
+    substr $S10, rx341_tgt, $I10, 1
     index $I11, "dswnDSWN", $S10
-    lt $I11, 0, rx336_fail
-    inc rx336_pos
-    set_addr $I10, rxcap_340_fail
-    ($I12, $I11) = rx336_cur."!mark_peek"($I10)
-    rx336_cur."!cursor_pos"($I11)
-    ($P10) = rx336_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx336_pos, "")
-    rx336_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx341_fail
+    inc rx341_pos
+    set_addr $I10, rxcap_345_fail
+    ($I12, $I11) = rx341_cur."!mark_peek"($I10)
+    rx341_cur."!cursor_pos"($I11)
+    ($P10) = rx341_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx341_pos, "")
+    rx341_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_340_done
-  rxcap_340_fail:
-    goto rx336_fail
-  rxcap_340_done:
+    goto rxcap_345_done
+  rxcap_345_fail:
+    goto rx341_fail
+  rxcap_345_done:
   # rx pass
-    rx336_cur."!cursor_pass"(rx336_pos, "backslash:sym<w>")
-    rx336_cur."!cursor_debug"("PASS  ", "backslash:sym<w>", " at pos=", rx336_pos)
-    .return (rx336_cur)
-  rx336_fail:
+    rx341_cur."!cursor_pass"(rx341_pos, "backslash:sym<w>")
+    rx341_cur."!cursor_debug"("PASS  ", "backslash:sym<w>", " at pos=", rx341_pos)
+    .return (rx341_cur)
+  rx341_fail:
 .annotate 'line', 3
-    (rx336_rep, rx336_pos, $I10, $P10) = rx336_cur."!mark_fail"(0)
-    lt rx336_pos, -1, rx336_done
-    eq rx336_pos, -1, rx336_fail
+    (rx341_rep, rx341_pos, $I10, $P10) = rx341_cur."!mark_fail"(0)
+    lt rx341_pos, -1, rx341_done
+    eq rx341_pos, -1, rx341_fail
     jump $I10
-  rx336_done:
-    rx336_cur."!cursor_fail"()
-    rx336_cur."!cursor_debug"("FAIL  ", "backslash:sym<w>")
-    .return (rx336_cur)
+  rx341_done:
+    rx341_cur."!cursor_fail"()
+    rx341_cur."!cursor_debug"("FAIL  ", "backslash:sym<w>")
+    .return (rx341_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>"  :subid("94_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<w>"  :subid("94_1275811476.7961") :method
 .annotate 'line', 3
-    new $P338, "ResizablePMCArray"
-    push $P338, "N"
-    push $P338, "W"
-    push $P338, "S"
-    push $P338, "D"
-    push $P338, "n"
-    push $P338, "w"
-    push $P338, "s"
-    push $P338, "d"
-    .return ($P338)
+    new $P343, "ResizablePMCArray"
+    push $P343, "N"
+    push $P343, "W"
+    push $P343, "S"
+    push $P343, "D"
+    push $P343, "n"
+    push $P343, "w"
+    push $P343, "s"
+    push $P343, "d"
+    .return ($P343)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>"  :subid("95_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<b>"  :subid("95_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx342_tgt
-    .local int rx342_pos
-    .local int rx342_off
-    .local int rx342_eos
-    .local int rx342_rep
-    .local pmc rx342_cur
-    (rx342_cur, rx342_pos, rx342_tgt) = self."!cursor_start"()
-    rx342_cur."!cursor_debug"("START ", "backslash:sym<b>")
-    .lex unicode:"$\x{a2}", rx342_cur
+    .local string rx347_tgt
+    .local int rx347_pos
+    .local int rx347_off
+    .local int rx347_eos
+    .local int rx347_rep
+    .local pmc rx347_cur
+    (rx347_cur, rx347_pos, rx347_tgt) = self."!cursor_start"()
+    rx347_cur."!cursor_debug"("START ", "backslash:sym<b>")
+    .lex unicode:"$\x{a2}", rx347_cur
     .local pmc match
     .lex "$/", match
-    length rx342_eos, rx342_tgt
-    set rx342_off, 0
-    lt rx342_pos, 2, rx342_start
-    sub rx342_off, rx342_pos, 1
-    substr rx342_tgt, rx342_tgt, rx342_off
-  rx342_start:
+    length rx347_eos, rx347_tgt
+    gt rx347_pos, rx347_eos, rx347_done
+    set rx347_off, 0
+    lt rx347_pos, 2, rx347_start
+    sub rx347_off, rx347_pos, 1
+    substr rx347_tgt, rx347_tgt, rx347_off
+  rx347_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan345_done
-    goto rxscan345_scan
-  rxscan345_loop:
-    ($P10) = rx342_cur."from"()
+    ne $I10, -1, rxscan350_done
+    goto rxscan350_scan
+  rxscan350_loop:
+    ($P10) = rx347_cur."from"()
     inc $P10
-    set rx342_pos, $P10
-    ge rx342_pos, rx342_eos, rxscan345_done
-  rxscan345_scan:
-    set_addr $I10, rxscan345_loop
-    rx342_cur."!mark_push"(0, rx342_pos, $I10)
-  rxscan345_done:
+    set rx347_pos, $P10
+    ge rx347_pos, rx347_eos, rxscan350_done
+  rxscan350_scan:
+    set_addr $I10, rxscan350_loop
+    rx347_cur."!mark_push"(0, rx347_pos, $I10)
+  rxscan350_done:
 .annotate 'line', 122
   # rx subcapture "sym"
-    set_addr $I10, rxcap_346_fail
-    rx342_cur."!mark_push"(0, rx342_pos, $I10)
+    set_addr $I10, rxcap_351_fail
+    rx347_cur."!mark_push"(0, rx347_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx342_pos, rx342_eos, rx342_fail
-    sub $I10, rx342_pos, rx342_off
-    substr $S10, rx342_tgt, $I10, 1
+    ge rx347_pos, rx347_eos, rx347_fail
+    sub $I10, rx347_pos, rx347_off
+    substr $S10, rx347_tgt, $I10, 1
     index $I11, "bB", $S10
-    lt $I11, 0, rx342_fail
-    inc rx342_pos
-    set_addr $I10, rxcap_346_fail
-    ($I12, $I11) = rx342_cur."!mark_peek"($I10)
-    rx342_cur."!cursor_pos"($I11)
-    ($P10) = rx342_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx342_pos, "")
-    rx342_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx347_fail
+    inc rx347_pos
+    set_addr $I10, rxcap_351_fail
+    ($I12, $I11) = rx347_cur."!mark_peek"($I10)
+    rx347_cur."!cursor_pos"($I11)
+    ($P10) = rx347_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx347_pos, "")
+    rx347_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_346_done
-  rxcap_346_fail:
-    goto rx342_fail
-  rxcap_346_done:
+    goto rxcap_351_done
+  rxcap_351_fail:
+    goto rx347_fail
+  rxcap_351_done:
   # rx pass
-    rx342_cur."!cursor_pass"(rx342_pos, "backslash:sym<b>")
-    rx342_cur."!cursor_debug"("PASS  ", "backslash:sym<b>", " at pos=", rx342_pos)
-    .return (rx342_cur)
-  rx342_fail:
+    rx347_cur."!cursor_pass"(rx347_pos, "backslash:sym<b>")
+    rx347_cur."!cursor_debug"("PASS  ", "backslash:sym<b>", " at pos=", rx347_pos)
+    .return (rx347_cur)
+  rx347_fail:
 .annotate 'line', 3
-    (rx342_rep, rx342_pos, $I10, $P10) = rx342_cur."!mark_fail"(0)
-    lt rx342_pos, -1, rx342_done
-    eq rx342_pos, -1, rx342_fail
+    (rx347_rep, rx347_pos, $I10, $P10) = rx347_cur."!mark_fail"(0)
+    lt rx347_pos, -1, rx347_done
+    eq rx347_pos, -1, rx347_fail
     jump $I10
-  rx342_done:
-    rx342_cur."!cursor_fail"()
-    rx342_cur."!cursor_debug"("FAIL  ", "backslash:sym<b>")
-    .return (rx342_cur)
+  rx347_done:
+    rx347_cur."!cursor_fail"()
+    rx347_cur."!cursor_debug"("FAIL  ", "backslash:sym<b>")
+    .return (rx347_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>"  :subid("96_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<b>"  :subid("96_1275811476.7961") :method
 .annotate 'line', 3
-    new $P344, "ResizablePMCArray"
-    push $P344, "B"
-    push $P344, "b"
-    .return ($P344)
+    new $P349, "ResizablePMCArray"
+    push $P349, "B"
+    push $P349, "b"
+    .return ($P349)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>"  :subid("97_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<e>"  :subid("97_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx348_tgt
-    .local int rx348_pos
-    .local int rx348_off
-    .local int rx348_eos
-    .local int rx348_rep
-    .local pmc rx348_cur
-    (rx348_cur, rx348_pos, rx348_tgt) = self."!cursor_start"()
-    rx348_cur."!cursor_debug"("START ", "backslash:sym<e>")
-    .lex unicode:"$\x{a2}", rx348_cur
+    .local string rx353_tgt
+    .local int rx353_pos
+    .local int rx353_off
+    .local int rx353_eos
+    .local int rx353_rep
+    .local pmc rx353_cur
+    (rx353_cur, rx353_pos, rx353_tgt) = self."!cursor_start"()
+    rx353_cur."!cursor_debug"("START ", "backslash:sym<e>")
+    .lex unicode:"$\x{a2}", rx353_cur
     .local pmc match
     .lex "$/", match
-    length rx348_eos, rx348_tgt
-    set rx348_off, 0
-    lt rx348_pos, 2, rx348_start
-    sub rx348_off, rx348_pos, 1
-    substr rx348_tgt, rx348_tgt, rx348_off
-  rx348_start:
+    length rx353_eos, rx353_tgt
+    gt rx353_pos, rx353_eos, rx353_done
+    set rx353_off, 0
+    lt rx353_pos, 2, rx353_start
+    sub rx353_off, rx353_pos, 1
+    substr rx353_tgt, rx353_tgt, rx353_off
+  rx353_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan351_done
-    goto rxscan351_scan
-  rxscan351_loop:
-    ($P10) = rx348_cur."from"()
+    ne $I10, -1, rxscan356_done
+    goto rxscan356_scan
+  rxscan356_loop:
+    ($P10) = rx353_cur."from"()
     inc $P10
-    set rx348_pos, $P10
-    ge rx348_pos, rx348_eos, rxscan351_done
-  rxscan351_scan:
-    set_addr $I10, rxscan351_loop
-    rx348_cur."!mark_push"(0, rx348_pos, $I10)
-  rxscan351_done:
+    set rx353_pos, $P10
+    ge rx353_pos, rx353_eos, rxscan356_done
+  rxscan356_scan:
+    set_addr $I10, rxscan356_loop
+    rx353_cur."!mark_push"(0, rx353_pos, $I10)
+  rxscan356_done:
 .annotate 'line', 123
   # rx subcapture "sym"
-    set_addr $I10, rxcap_352_fail
-    rx348_cur."!mark_push"(0, rx348_pos, $I10)
+    set_addr $I10, rxcap_357_fail
+    rx353_cur."!mark_push"(0, rx353_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx348_pos, rx348_eos, rx348_fail
-    sub $I10, rx348_pos, rx348_off
-    substr $S10, rx348_tgt, $I10, 1
+    ge rx353_pos, rx353_eos, rx353_fail
+    sub $I10, rx353_pos, rx353_off
+    substr $S10, rx353_tgt, $I10, 1
     index $I11, "eE", $S10
-    lt $I11, 0, rx348_fail
-    inc rx348_pos
-    set_addr $I10, rxcap_352_fail
-    ($I12, $I11) = rx348_cur."!mark_peek"($I10)
-    rx348_cur."!cursor_pos"($I11)
-    ($P10) = rx348_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx348_pos, "")
-    rx348_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx353_fail
+    inc rx353_pos
+    set_addr $I10, rxcap_357_fail
+    ($I12, $I11) = rx353_cur."!mark_peek"($I10)
+    rx353_cur."!cursor_pos"($I11)
+    ($P10) = rx353_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx353_pos, "")
+    rx353_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_352_done
-  rxcap_352_fail:
-    goto rx348_fail
-  rxcap_352_done:
+    goto rxcap_357_done
+  rxcap_357_fail:
+    goto rx353_fail
+  rxcap_357_done:
   # rx pass
-    rx348_cur."!cursor_pass"(rx348_pos, "backslash:sym<e>")
-    rx348_cur."!cursor_debug"("PASS  ", "backslash:sym<e>", " at pos=", rx348_pos)
-    .return (rx348_cur)
-  rx348_fail:
+    rx353_cur."!cursor_pass"(rx353_pos, "backslash:sym<e>")
+    rx353_cur."!cursor_debug"("PASS  ", "backslash:sym<e>", " at pos=", rx353_pos)
+    .return (rx353_cur)
+  rx353_fail:
 .annotate 'line', 3
-    (rx348_rep, rx348_pos, $I10, $P10) = rx348_cur."!mark_fail"(0)
-    lt rx348_pos, -1, rx348_done
-    eq rx348_pos, -1, rx348_fail
+    (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
+    lt rx353_pos, -1, rx353_done
+    eq rx353_pos, -1, rx353_fail
     jump $I10
-  rx348_done:
-    rx348_cur."!cursor_fail"()
-    rx348_cur."!cursor_debug"("FAIL  ", "backslash:sym<e>")
-    .return (rx348_cur)
+  rx353_done:
+    rx353_cur."!cursor_fail"()
+    rx353_cur."!cursor_debug"("FAIL  ", "backslash:sym<e>")
+    .return (rx353_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>"  :subid("98_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<e>"  :subid("98_1275811476.7961") :method
 .annotate 'line', 3
-    new $P350, "ResizablePMCArray"
-    push $P350, "E"
-    push $P350, "e"
-    .return ($P350)
+    new $P355, "ResizablePMCArray"
+    push $P355, "E"
+    push $P355, "e"
+    .return ($P355)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>"  :subid("99_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<f>"  :subid("99_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx354_tgt
-    .local int rx354_pos
-    .local int rx354_off
-    .local int rx354_eos
-    .local int rx354_rep
-    .local pmc rx354_cur
-    (rx354_cur, rx354_pos, rx354_tgt) = self."!cursor_start"()
-    rx354_cur."!cursor_debug"("START ", "backslash:sym<f>")
-    .lex unicode:"$\x{a2}", rx354_cur
+    .local string rx359_tgt
+    .local int rx359_pos
+    .local int rx359_off
+    .local int rx359_eos
+    .local int rx359_rep
+    .local pmc rx359_cur
+    (rx359_cur, rx359_pos, rx359_tgt) = self."!cursor_start"()
+    rx359_cur."!cursor_debug"("START ", "backslash:sym<f>")
+    .lex unicode:"$\x{a2}", rx359_cur
     .local pmc match
     .lex "$/", match
-    length rx354_eos, rx354_tgt
-    set rx354_off, 0
-    lt rx354_pos, 2, rx354_start
-    sub rx354_off, rx354_pos, 1
-    substr rx354_tgt, rx354_tgt, rx354_off
-  rx354_start:
+    length rx359_eos, rx359_tgt
+    gt rx359_pos, rx359_eos, rx359_done
+    set rx359_off, 0
+    lt rx359_pos, 2, rx359_start
+    sub rx359_off, rx359_pos, 1
+    substr rx359_tgt, rx359_tgt, rx359_off
+  rx359_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan357_done
-    goto rxscan357_scan
-  rxscan357_loop:
-    ($P10) = rx354_cur."from"()
+    ne $I10, -1, rxscan362_done
+    goto rxscan362_scan
+  rxscan362_loop:
+    ($P10) = rx359_cur."from"()
     inc $P10
-    set rx354_pos, $P10
-    ge rx354_pos, rx354_eos, rxscan357_done
-  rxscan357_scan:
-    set_addr $I10, rxscan357_loop
-    rx354_cur."!mark_push"(0, rx354_pos, $I10)
-  rxscan357_done:
+    set rx359_pos, $P10
+    ge rx359_pos, rx359_eos, rxscan362_done
+  rxscan362_scan:
+    set_addr $I10, rxscan362_loop
+    rx359_cur."!mark_push"(0, rx359_pos, $I10)
+  rxscan362_done:
 .annotate 'line', 124
   # rx subcapture "sym"
-    set_addr $I10, rxcap_358_fail
-    rx354_cur."!mark_push"(0, rx354_pos, $I10)
+    set_addr $I10, rxcap_363_fail
+    rx359_cur."!mark_push"(0, rx359_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx354_pos, rx354_eos, rx354_fail
-    sub $I10, rx354_pos, rx354_off
-    substr $S10, rx354_tgt, $I10, 1
+    ge rx359_pos, rx359_eos, rx359_fail
+    sub $I10, rx359_pos, rx359_off
+    substr $S10, rx359_tgt, $I10, 1
     index $I11, "fF", $S10
-    lt $I11, 0, rx354_fail
-    inc rx354_pos
-    set_addr $I10, rxcap_358_fail
-    ($I12, $I11) = rx354_cur."!mark_peek"($I10)
-    rx354_cur."!cursor_pos"($I11)
-    ($P10) = rx354_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx354_pos, "")
-    rx354_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx359_fail
+    inc rx359_pos
+    set_addr $I10, rxcap_363_fail
+    ($I12, $I11) = rx359_cur."!mark_peek"($I10)
+    rx359_cur."!cursor_pos"($I11)
+    ($P10) = rx359_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx359_pos, "")
+    rx359_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_358_done
-  rxcap_358_fail:
-    goto rx354_fail
-  rxcap_358_done:
+    goto rxcap_363_done
+  rxcap_363_fail:
+    goto rx359_fail
+  rxcap_363_done:
   # rx pass
-    rx354_cur."!cursor_pass"(rx354_pos, "backslash:sym<f>")
-    rx354_cur."!cursor_debug"("PASS  ", "backslash:sym<f>", " at pos=", rx354_pos)
-    .return (rx354_cur)
-  rx354_fail:
+    rx359_cur."!cursor_pass"(rx359_pos, "backslash:sym<f>")
+    rx359_cur."!cursor_debug"("PASS  ", "backslash:sym<f>", " at pos=", rx359_pos)
+    .return (rx359_cur)
+  rx359_fail:
 .annotate 'line', 3
-    (rx354_rep, rx354_pos, $I10, $P10) = rx354_cur."!mark_fail"(0)
-    lt rx354_pos, -1, rx354_done
-    eq rx354_pos, -1, rx354_fail
+    (rx359_rep, rx359_pos, $I10, $P10) = rx359_cur."!mark_fail"(0)
+    lt rx359_pos, -1, rx359_done
+    eq rx359_pos, -1, rx359_fail
     jump $I10
-  rx354_done:
-    rx354_cur."!cursor_fail"()
-    rx354_cur."!cursor_debug"("FAIL  ", "backslash:sym<f>")
-    .return (rx354_cur)
+  rx359_done:
+    rx359_cur."!cursor_fail"()
+    rx359_cur."!cursor_debug"("FAIL  ", "backslash:sym<f>")
+    .return (rx359_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>"  :subid("100_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<f>"  :subid("100_1275811476.7961") :method
 .annotate 'line', 3
-    new $P356, "ResizablePMCArray"
-    push $P356, "F"
-    push $P356, "f"
-    .return ($P356)
+    new $P361, "ResizablePMCArray"
+    push $P361, "F"
+    push $P361, "f"
+    .return ($P361)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>"  :subid("101_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<h>"  :subid("101_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx360_tgt
-    .local int rx360_pos
-    .local int rx360_off
-    .local int rx360_eos
-    .local int rx360_rep
-    .local pmc rx360_cur
-    (rx360_cur, rx360_pos, rx360_tgt) = self."!cursor_start"()
-    rx360_cur."!cursor_debug"("START ", "backslash:sym<h>")
-    .lex unicode:"$\x{a2}", rx360_cur
-    .local pmc match
-    .lex "$/", match
-    length rx360_eos, rx360_tgt
-    set rx360_off, 0
-    lt rx360_pos, 2, rx360_start
-    sub rx360_off, rx360_pos, 1
-    substr rx360_tgt, rx360_tgt, rx360_off
-  rx360_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan363_done
-    goto rxscan363_scan
-  rxscan363_loop:
-    ($P10) = rx360_cur."from"()
-    inc $P10
-    set rx360_pos, $P10
-    ge rx360_pos, rx360_eos, rxscan363_done
-  rxscan363_scan:
-    set_addr $I10, rxscan363_loop
-    rx360_cur."!mark_push"(0, rx360_pos, $I10)
-  rxscan363_done:
+    .local string rx365_tgt
+    .local int rx365_pos
+    .local int rx365_off
+    .local int rx365_eos
+    .local int rx365_rep
+    .local pmc rx365_cur
+    (rx365_cur, rx365_pos, rx365_tgt) = self."!cursor_start"()
+    rx365_cur."!cursor_debug"("START ", "backslash:sym<h>")
+    .lex unicode:"$\x{a2}", rx365_cur
+    .local pmc match
+    .lex "$/", match
+    length rx365_eos, rx365_tgt
+    gt rx365_pos, rx365_eos, rx365_done
+    set rx365_off, 0
+    lt rx365_pos, 2, rx365_start
+    sub rx365_off, rx365_pos, 1
+    substr rx365_tgt, rx365_tgt, rx365_off
+  rx365_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan368_done
+    goto rxscan368_scan
+  rxscan368_loop:
+    ($P10) = rx365_cur."from"()
+    inc $P10
+    set rx365_pos, $P10
+    ge rx365_pos, rx365_eos, rxscan368_done
+  rxscan368_scan:
+    set_addr $I10, rxscan368_loop
+    rx365_cur."!mark_push"(0, rx365_pos, $I10)
+  rxscan368_done:
 .annotate 'line', 125
   # rx subcapture "sym"
-    set_addr $I10, rxcap_364_fail
-    rx360_cur."!mark_push"(0, rx360_pos, $I10)
+    set_addr $I10, rxcap_369_fail
+    rx365_cur."!mark_push"(0, rx365_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx360_pos, rx360_eos, rx360_fail
-    sub $I10, rx360_pos, rx360_off
-    substr $S10, rx360_tgt, $I10, 1
+    ge rx365_pos, rx365_eos, rx365_fail
+    sub $I10, rx365_pos, rx365_off
+    substr $S10, rx365_tgt, $I10, 1
     index $I11, "hH", $S10
-    lt $I11, 0, rx360_fail
-    inc rx360_pos
-    set_addr $I10, rxcap_364_fail
-    ($I12, $I11) = rx360_cur."!mark_peek"($I10)
-    rx360_cur."!cursor_pos"($I11)
-    ($P10) = rx360_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx360_pos, "")
-    rx360_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx365_fail
+    inc rx365_pos
+    set_addr $I10, rxcap_369_fail
+    ($I12, $I11) = rx365_cur."!mark_peek"($I10)
+    rx365_cur."!cursor_pos"($I11)
+    ($P10) = rx365_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx365_pos, "")
+    rx365_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_364_done
-  rxcap_364_fail:
-    goto rx360_fail
-  rxcap_364_done:
+    goto rxcap_369_done
+  rxcap_369_fail:
+    goto rx365_fail
+  rxcap_369_done:
   # rx pass
-    rx360_cur."!cursor_pass"(rx360_pos, "backslash:sym<h>")
-    rx360_cur."!cursor_debug"("PASS  ", "backslash:sym<h>", " at pos=", rx360_pos)
-    .return (rx360_cur)
-  rx360_fail:
+    rx365_cur."!cursor_pass"(rx365_pos, "backslash:sym<h>")
+    rx365_cur."!cursor_debug"("PASS  ", "backslash:sym<h>", " at pos=", rx365_pos)
+    .return (rx365_cur)
+  rx365_fail:
 .annotate 'line', 3
-    (rx360_rep, rx360_pos, $I10, $P10) = rx360_cur."!mark_fail"(0)
-    lt rx360_pos, -1, rx360_done
-    eq rx360_pos, -1, rx360_fail
+    (rx365_rep, rx365_pos, $I10, $P10) = rx365_cur."!mark_fail"(0)
+    lt rx365_pos, -1, rx365_done
+    eq rx365_pos, -1, rx365_fail
     jump $I10
-  rx360_done:
-    rx360_cur."!cursor_fail"()
-    rx360_cur."!cursor_debug"("FAIL  ", "backslash:sym<h>")
-    .return (rx360_cur)
+  rx365_done:
+    rx365_cur."!cursor_fail"()
+    rx365_cur."!cursor_debug"("FAIL  ", "backslash:sym<h>")
+    .return (rx365_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>"  :subid("102_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<h>"  :subid("102_1275811476.7961") :method
 .annotate 'line', 3
-    new $P362, "ResizablePMCArray"
-    push $P362, "H"
-    push $P362, "h"
-    .return ($P362)
+    new $P367, "ResizablePMCArray"
+    push $P367, "H"
+    push $P367, "h"
+    .return ($P367)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>"  :subid("103_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<r>"  :subid("103_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx366_tgt
-    .local int rx366_pos
-    .local int rx366_off
-    .local int rx366_eos
-    .local int rx366_rep
-    .local pmc rx366_cur
-    (rx366_cur, rx366_pos, rx366_tgt) = self."!cursor_start"()
-    rx366_cur."!cursor_debug"("START ", "backslash:sym<r>")
-    .lex unicode:"$\x{a2}", rx366_cur
+    .local string rx371_tgt
+    .local int rx371_pos
+    .local int rx371_off
+    .local int rx371_eos
+    .local int rx371_rep
+    .local pmc rx371_cur
+    (rx371_cur, rx371_pos, rx371_tgt) = self."!cursor_start"()
+    rx371_cur."!cursor_debug"("START ", "backslash:sym<r>")
+    .lex unicode:"$\x{a2}", rx371_cur
     .local pmc match
     .lex "$/", match
-    length rx366_eos, rx366_tgt
-    set rx366_off, 0
-    lt rx366_pos, 2, rx366_start
-    sub rx366_off, rx366_pos, 1
-    substr rx366_tgt, rx366_tgt, rx366_off
-  rx366_start:
+    length rx371_eos, rx371_tgt
+    gt rx371_pos, rx371_eos, rx371_done
+    set rx371_off, 0
+    lt rx371_pos, 2, rx371_start
+    sub rx371_off, rx371_pos, 1
+    substr rx371_tgt, rx371_tgt, rx371_off
+  rx371_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan369_done
-    goto rxscan369_scan
-  rxscan369_loop:
-    ($P10) = rx366_cur."from"()
+    ne $I10, -1, rxscan374_done
+    goto rxscan374_scan
+  rxscan374_loop:
+    ($P10) = rx371_cur."from"()
     inc $P10
-    set rx366_pos, $P10
-    ge rx366_pos, rx366_eos, rxscan369_done
-  rxscan369_scan:
-    set_addr $I10, rxscan369_loop
-    rx366_cur."!mark_push"(0, rx366_pos, $I10)
-  rxscan369_done:
+    set rx371_pos, $P10
+    ge rx371_pos, rx371_eos, rxscan374_done
+  rxscan374_scan:
+    set_addr $I10, rxscan374_loop
+    rx371_cur."!mark_push"(0, rx371_pos, $I10)
+  rxscan374_done:
 .annotate 'line', 126
   # rx subcapture "sym"
-    set_addr $I10, rxcap_370_fail
-    rx366_cur."!mark_push"(0, rx366_pos, $I10)
+    set_addr $I10, rxcap_375_fail
+    rx371_cur."!mark_push"(0, rx371_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx366_pos, rx366_eos, rx366_fail
-    sub $I10, rx366_pos, rx366_off
-    substr $S10, rx366_tgt, $I10, 1
+    ge rx371_pos, rx371_eos, rx371_fail
+    sub $I10, rx371_pos, rx371_off
+    substr $S10, rx371_tgt, $I10, 1
     index $I11, "rR", $S10
-    lt $I11, 0, rx366_fail
-    inc rx366_pos
-    set_addr $I10, rxcap_370_fail
-    ($I12, $I11) = rx366_cur."!mark_peek"($I10)
-    rx366_cur."!cursor_pos"($I11)
-    ($P10) = rx366_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx366_pos, "")
-    rx366_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx371_fail
+    inc rx371_pos
+    set_addr $I10, rxcap_375_fail
+    ($I12, $I11) = rx371_cur."!mark_peek"($I10)
+    rx371_cur."!cursor_pos"($I11)
+    ($P10) = rx371_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx371_pos, "")
+    rx371_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_370_done
-  rxcap_370_fail:
-    goto rx366_fail
-  rxcap_370_done:
+    goto rxcap_375_done
+  rxcap_375_fail:
+    goto rx371_fail
+  rxcap_375_done:
   # rx pass
-    rx366_cur."!cursor_pass"(rx366_pos, "backslash:sym<r>")
-    rx366_cur."!cursor_debug"("PASS  ", "backslash:sym<r>", " at pos=", rx366_pos)
-    .return (rx366_cur)
-  rx366_fail:
+    rx371_cur."!cursor_pass"(rx371_pos, "backslash:sym<r>")
+    rx371_cur."!cursor_debug"("PASS  ", "backslash:sym<r>", " at pos=", rx371_pos)
+    .return (rx371_cur)
+  rx371_fail:
 .annotate 'line', 3
-    (rx366_rep, rx366_pos, $I10, $P10) = rx366_cur."!mark_fail"(0)
-    lt rx366_pos, -1, rx366_done
-    eq rx366_pos, -1, rx366_fail
+    (rx371_rep, rx371_pos, $I10, $P10) = rx371_cur."!mark_fail"(0)
+    lt rx371_pos, -1, rx371_done
+    eq rx371_pos, -1, rx371_fail
     jump $I10
-  rx366_done:
-    rx366_cur."!cursor_fail"()
-    rx366_cur."!cursor_debug"("FAIL  ", "backslash:sym<r>")
-    .return (rx366_cur)
+  rx371_done:
+    rx371_cur."!cursor_fail"()
+    rx371_cur."!cursor_debug"("FAIL  ", "backslash:sym<r>")
+    .return (rx371_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>"  :subid("104_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<r>"  :subid("104_1275811476.7961") :method
 .annotate 'line', 3
-    new $P368, "ResizablePMCArray"
-    push $P368, "R"
-    push $P368, "r"
-    .return ($P368)
+    new $P373, "ResizablePMCArray"
+    push $P373, "R"
+    push $P373, "r"
+    .return ($P373)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>"  :subid("105_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<t>"  :subid("105_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx372_tgt
-    .local int rx372_pos
-    .local int rx372_off
-    .local int rx372_eos
-    .local int rx372_rep
-    .local pmc rx372_cur
-    (rx372_cur, rx372_pos, rx372_tgt) = self."!cursor_start"()
-    rx372_cur."!cursor_debug"("START ", "backslash:sym<t>")
-    .lex unicode:"$\x{a2}", rx372_cur
+    .local string rx377_tgt
+    .local int rx377_pos
+    .local int rx377_off
+    .local int rx377_eos
+    .local int rx377_rep
+    .local pmc rx377_cur
+    (rx377_cur, rx377_pos, rx377_tgt) = self."!cursor_start"()
+    rx377_cur."!cursor_debug"("START ", "backslash:sym<t>")
+    .lex unicode:"$\x{a2}", rx377_cur
     .local pmc match
     .lex "$/", match
-    length rx372_eos, rx372_tgt
-    set rx372_off, 0
-    lt rx372_pos, 2, rx372_start
-    sub rx372_off, rx372_pos, 1
-    substr rx372_tgt, rx372_tgt, rx372_off
-  rx372_start:
+    length rx377_eos, rx377_tgt
+    gt rx377_pos, rx377_eos, rx377_done
+    set rx377_off, 0
+    lt rx377_pos, 2, rx377_start
+    sub rx377_off, rx377_pos, 1
+    substr rx377_tgt, rx377_tgt, rx377_off
+  rx377_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan375_done
-    goto rxscan375_scan
-  rxscan375_loop:
-    ($P10) = rx372_cur."from"()
+    ne $I10, -1, rxscan380_done
+    goto rxscan380_scan
+  rxscan380_loop:
+    ($P10) = rx377_cur."from"()
     inc $P10
-    set rx372_pos, $P10
-    ge rx372_pos, rx372_eos, rxscan375_done
-  rxscan375_scan:
-    set_addr $I10, rxscan375_loop
-    rx372_cur."!mark_push"(0, rx372_pos, $I10)
-  rxscan375_done:
+    set rx377_pos, $P10
+    ge rx377_pos, rx377_eos, rxscan380_done
+  rxscan380_scan:
+    set_addr $I10, rxscan380_loop
+    rx377_cur."!mark_push"(0, rx377_pos, $I10)
+  rxscan380_done:
 .annotate 'line', 127
   # rx subcapture "sym"
-    set_addr $I10, rxcap_376_fail
-    rx372_cur."!mark_push"(0, rx372_pos, $I10)
+    set_addr $I10, rxcap_381_fail
+    rx377_cur."!mark_push"(0, rx377_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx372_pos, rx372_eos, rx372_fail
-    sub $I10, rx372_pos, rx372_off
-    substr $S10, rx372_tgt, $I10, 1
+    ge rx377_pos, rx377_eos, rx377_fail
+    sub $I10, rx377_pos, rx377_off
+    substr $S10, rx377_tgt, $I10, 1
     index $I11, "tT", $S10
-    lt $I11, 0, rx372_fail
-    inc rx372_pos
-    set_addr $I10, rxcap_376_fail
-    ($I12, $I11) = rx372_cur."!mark_peek"($I10)
-    rx372_cur."!cursor_pos"($I11)
-    ($P10) = rx372_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx372_pos, "")
-    rx372_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx377_fail
+    inc rx377_pos
+    set_addr $I10, rxcap_381_fail
+    ($I12, $I11) = rx377_cur."!mark_peek"($I10)
+    rx377_cur."!cursor_pos"($I11)
+    ($P10) = rx377_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx377_pos, "")
+    rx377_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_376_done
-  rxcap_376_fail:
-    goto rx372_fail
-  rxcap_376_done:
+    goto rxcap_381_done
+  rxcap_381_fail:
+    goto rx377_fail
+  rxcap_381_done:
   # rx pass
-    rx372_cur."!cursor_pass"(rx372_pos, "backslash:sym<t>")
-    rx372_cur."!cursor_debug"("PASS  ", "backslash:sym<t>", " at pos=", rx372_pos)
-    .return (rx372_cur)
-  rx372_fail:
+    rx377_cur."!cursor_pass"(rx377_pos, "backslash:sym<t>")
+    rx377_cur."!cursor_debug"("PASS  ", "backslash:sym<t>", " at pos=", rx377_pos)
+    .return (rx377_cur)
+  rx377_fail:
 .annotate 'line', 3
-    (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0)
-    lt rx372_pos, -1, rx372_done
-    eq rx372_pos, -1, rx372_fail
+    (rx377_rep, rx377_pos, $I10, $P10) = rx377_cur."!mark_fail"(0)
+    lt rx377_pos, -1, rx377_done
+    eq rx377_pos, -1, rx377_fail
     jump $I10
-  rx372_done:
-    rx372_cur."!cursor_fail"()
-    rx372_cur."!cursor_debug"("FAIL  ", "backslash:sym<t>")
-    .return (rx372_cur)
+  rx377_done:
+    rx377_cur."!cursor_fail"()
+    rx377_cur."!cursor_debug"("FAIL  ", "backslash:sym<t>")
+    .return (rx377_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>"  :subid("106_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<t>"  :subid("106_1275811476.7961") :method
 .annotate 'line', 3
-    new $P374, "ResizablePMCArray"
-    push $P374, "T"
-    push $P374, "t"
-    .return ($P374)
+    new $P379, "ResizablePMCArray"
+    push $P379, "T"
+    push $P379, "t"
+    .return ($P379)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>"  :subid("107_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<v>"  :subid("107_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx378_tgt
-    .local int rx378_pos
-    .local int rx378_off
-    .local int rx378_eos
-    .local int rx378_rep
-    .local pmc rx378_cur
-    (rx378_cur, rx378_pos, rx378_tgt) = self."!cursor_start"()
-    rx378_cur."!cursor_debug"("START ", "backslash:sym<v>")
-    .lex unicode:"$\x{a2}", rx378_cur
+    .local string rx383_tgt
+    .local int rx383_pos
+    .local int rx383_off
+    .local int rx383_eos
+    .local int rx383_rep
+    .local pmc rx383_cur
+    (rx383_cur, rx383_pos, rx383_tgt) = self."!cursor_start"()
+    rx383_cur."!cursor_debug"("START ", "backslash:sym<v>")
+    .lex unicode:"$\x{a2}", rx383_cur
     .local pmc match
     .lex "$/", match
-    length rx378_eos, rx378_tgt
-    set rx378_off, 0
-    lt rx378_pos, 2, rx378_start
-    sub rx378_off, rx378_pos, 1
-    substr rx378_tgt, rx378_tgt, rx378_off
-  rx378_start:
+    length rx383_eos, rx383_tgt
+    gt rx383_pos, rx383_eos, rx383_done
+    set rx383_off, 0
+    lt rx383_pos, 2, rx383_start
+    sub rx383_off, rx383_pos, 1
+    substr rx383_tgt, rx383_tgt, rx383_off
+  rx383_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan381_done
-    goto rxscan381_scan
-  rxscan381_loop:
-    ($P10) = rx378_cur."from"()
+    ne $I10, -1, rxscan386_done
+    goto rxscan386_scan
+  rxscan386_loop:
+    ($P10) = rx383_cur."from"()
     inc $P10
-    set rx378_pos, $P10
-    ge rx378_pos, rx378_eos, rxscan381_done
-  rxscan381_scan:
-    set_addr $I10, rxscan381_loop
-    rx378_cur."!mark_push"(0, rx378_pos, $I10)
-  rxscan381_done:
+    set rx383_pos, $P10
+    ge rx383_pos, rx383_eos, rxscan386_done
+  rxscan386_scan:
+    set_addr $I10, rxscan386_loop
+    rx383_cur."!mark_push"(0, rx383_pos, $I10)
+  rxscan386_done:
 .annotate 'line', 128
   # rx subcapture "sym"
-    set_addr $I10, rxcap_382_fail
-    rx378_cur."!mark_push"(0, rx378_pos, $I10)
+    set_addr $I10, rxcap_387_fail
+    rx383_cur."!mark_push"(0, rx383_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx378_pos, rx378_eos, rx378_fail
-    sub $I10, rx378_pos, rx378_off
-    substr $S10, rx378_tgt, $I10, 1
+    ge rx383_pos, rx383_eos, rx383_fail
+    sub $I10, rx383_pos, rx383_off
+    substr $S10, rx383_tgt, $I10, 1
     index $I11, "vV", $S10
-    lt $I11, 0, rx378_fail
-    inc rx378_pos
-    set_addr $I10, rxcap_382_fail
-    ($I12, $I11) = rx378_cur."!mark_peek"($I10)
-    rx378_cur."!cursor_pos"($I11)
-    ($P10) = rx378_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx378_pos, "")
-    rx378_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx383_fail
+    inc rx383_pos
+    set_addr $I10, rxcap_387_fail
+    ($I12, $I11) = rx383_cur."!mark_peek"($I10)
+    rx383_cur."!cursor_pos"($I11)
+    ($P10) = rx383_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx383_pos, "")
+    rx383_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_382_done
-  rxcap_382_fail:
-    goto rx378_fail
-  rxcap_382_done:
+    goto rxcap_387_done
+  rxcap_387_fail:
+    goto rx383_fail
+  rxcap_387_done:
   # rx pass
-    rx378_cur."!cursor_pass"(rx378_pos, "backslash:sym<v>")
-    rx378_cur."!cursor_debug"("PASS  ", "backslash:sym<v>", " at pos=", rx378_pos)
-    .return (rx378_cur)
-  rx378_fail:
+    rx383_cur."!cursor_pass"(rx383_pos, "backslash:sym<v>")
+    rx383_cur."!cursor_debug"("PASS  ", "backslash:sym<v>", " at pos=", rx383_pos)
+    .return (rx383_cur)
+  rx383_fail:
 .annotate 'line', 3
-    (rx378_rep, rx378_pos, $I10, $P10) = rx378_cur."!mark_fail"(0)
-    lt rx378_pos, -1, rx378_done
-    eq rx378_pos, -1, rx378_fail
+    (rx383_rep, rx383_pos, $I10, $P10) = rx383_cur."!mark_fail"(0)
+    lt rx383_pos, -1, rx383_done
+    eq rx383_pos, -1, rx383_fail
     jump $I10
-  rx378_done:
-    rx378_cur."!cursor_fail"()
-    rx378_cur."!cursor_debug"("FAIL  ", "backslash:sym<v>")
-    .return (rx378_cur)
+  rx383_done:
+    rx383_cur."!cursor_fail"()
+    rx383_cur."!cursor_debug"("FAIL  ", "backslash:sym<v>")
+    .return (rx383_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>"  :subid("108_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<v>"  :subid("108_1275811476.7961") :method
 .annotate 'line', 3
-    new $P380, "ResizablePMCArray"
-    push $P380, "V"
-    push $P380, "v"
-    .return ($P380)
+    new $P385, "ResizablePMCArray"
+    push $P385, "V"
+    push $P385, "v"
+    .return ($P385)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>"  :subid("109_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<o>"  :subid("109_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx384_tgt
-    .local int rx384_pos
-    .local int rx384_off
-    .local int rx384_eos
-    .local int rx384_rep
-    .local pmc rx384_cur
-    (rx384_cur, rx384_pos, rx384_tgt) = self."!cursor_start"()
-    rx384_cur."!cursor_debug"("START ", "backslash:sym<o>")
-    .lex unicode:"$\x{a2}", rx384_cur
+    .local string rx389_tgt
+    .local int rx389_pos
+    .local int rx389_off
+    .local int rx389_eos
+    .local int rx389_rep
+    .local pmc rx389_cur
+    (rx389_cur, rx389_pos, rx389_tgt) = self."!cursor_start"()
+    rx389_cur."!cursor_debug"("START ", "backslash:sym<o>")
+    .lex unicode:"$\x{a2}", rx389_cur
     .local pmc match
     .lex "$/", match
-    length rx384_eos, rx384_tgt
-    set rx384_off, 0
-    lt rx384_pos, 2, rx384_start
-    sub rx384_off, rx384_pos, 1
-    substr rx384_tgt, rx384_tgt, rx384_off
-  rx384_start:
+    length rx389_eos, rx389_tgt
+    gt rx389_pos, rx389_eos, rx389_done
+    set rx389_off, 0
+    lt rx389_pos, 2, rx389_start
+    sub rx389_off, rx389_pos, 1
+    substr rx389_tgt, rx389_tgt, rx389_off
+  rx389_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan391_done
-    goto rxscan391_scan
-  rxscan391_loop:
-    ($P10) = rx384_cur."from"()
+    ne $I10, -1, rxscan396_done
+    goto rxscan396_scan
+  rxscan396_loop:
+    ($P10) = rx389_cur."from"()
     inc $P10
-    set rx384_pos, $P10
-    ge rx384_pos, rx384_eos, rxscan391_done
-  rxscan391_scan:
-    set_addr $I10, rxscan391_loop
-    rx384_cur."!mark_push"(0, rx384_pos, $I10)
-  rxscan391_done:
+    set rx389_pos, $P10
+    ge rx389_pos, rx389_eos, rxscan396_done
+  rxscan396_scan:
+    set_addr $I10, rxscan396_loop
+    rx389_cur."!mark_push"(0, rx389_pos, $I10)
+  rxscan396_done:
 .annotate 'line', 129
   # rx subcapture "sym"
-    set_addr $I10, rxcap_392_fail
-    rx384_cur."!mark_push"(0, rx384_pos, $I10)
+    set_addr $I10, rxcap_397_fail
+    rx389_cur."!mark_push"(0, rx389_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx384_pos, rx384_eos, rx384_fail
-    sub $I10, rx384_pos, rx384_off
-    substr $S10, rx384_tgt, $I10, 1
+    ge rx389_pos, rx389_eos, rx389_fail
+    sub $I10, rx389_pos, rx389_off
+    substr $S10, rx389_tgt, $I10, 1
     index $I11, "oO", $S10
-    lt $I11, 0, rx384_fail
-    inc rx384_pos
-    set_addr $I10, rxcap_392_fail
-    ($I12, $I11) = rx384_cur."!mark_peek"($I10)
-    rx384_cur."!cursor_pos"($I11)
-    ($P10) = rx384_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx384_pos, "")
-    rx384_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx389_fail
+    inc rx389_pos
+    set_addr $I10, rxcap_397_fail
+    ($I12, $I11) = rx389_cur."!mark_peek"($I10)
+    rx389_cur."!cursor_pos"($I11)
+    ($P10) = rx389_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx389_pos, "")
+    rx389_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_392_done
-  rxcap_392_fail:
-    goto rx384_fail
-  rxcap_392_done:
-  alt393_0:
-    set_addr $I10, alt393_1
-    rx384_cur."!mark_push"(0, rx384_pos, $I10)
+    goto rxcap_397_done
+  rxcap_397_fail:
+    goto rx389_fail
+  rxcap_397_done:
+  alt398_0:
+    set_addr $I10, alt398_1
+    rx389_cur."!mark_push"(0, rx389_pos, $I10)
   # rx subrule "octint" subtype=capture negate=
-    rx384_cur."!cursor_pos"(rx384_pos)
-    $P10 = rx384_cur."octint"()
-    unless $P10, rx384_fail
-    rx384_cur."!mark_push"(0, -1, 0, $P10)
+    rx389_cur."!cursor_pos"(rx389_pos)
+    $P10 = rx389_cur."octint"()
+    unless $P10, rx389_fail
+    rx389_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("octint")
-    rx384_pos = $P10."pos"()
-    goto alt393_end
-  alt393_1:
+    rx389_pos = $P10."pos"()
+    goto alt398_end
+  alt398_1:
   # rx literal  "["
-    add $I11, rx384_pos, 1
-    gt $I11, rx384_eos, rx384_fail
-    sub $I11, rx384_pos, rx384_off
-    substr $S10, rx384_tgt, $I11, 1
-    ne $S10, "[", rx384_fail
-    add rx384_pos, 1
+    add $I11, rx389_pos, 1
+    gt $I11, rx389_eos, rx389_fail
+    sub $I11, rx389_pos, rx389_off
+    substr $S10, rx389_tgt, $I11, 1
+    ne $S10, "[", rx389_fail
+    add rx389_pos, 1
   # rx subrule "octints" subtype=capture negate=
-    rx384_cur."!cursor_pos"(rx384_pos)
-    $P10 = rx384_cur."octints"()
-    unless $P10, rx384_fail
-    rx384_cur."!mark_push"(0, -1, 0, $P10)
+    rx389_cur."!cursor_pos"(rx389_pos)
+    $P10 = rx389_cur."octints"()
+    unless $P10, rx389_fail
+    rx389_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("octints")
-    rx384_pos = $P10."pos"()
+    rx389_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx384_pos, 1
-    gt $I11, rx384_eos, rx384_fail
-    sub $I11, rx384_pos, rx384_off
-    substr $S10, rx384_tgt, $I11, 1
-    ne $S10, "]", rx384_fail
-    add rx384_pos, 1
-  alt393_end:
-  # rx pass
-    rx384_cur."!cursor_pass"(rx384_pos, "backslash:sym<o>")
-    rx384_cur."!cursor_debug"("PASS  ", "backslash:sym<o>", " at pos=", rx384_pos)
-    .return (rx384_cur)
-  rx384_fail:
-.annotate 'line', 3
-    (rx384_rep, rx384_pos, $I10, $P10) = rx384_cur."!mark_fail"(0)
-    lt rx384_pos, -1, rx384_done
-    eq rx384_pos, -1, rx384_fail
-    jump $I10
-  rx384_done:
-    rx384_cur."!cursor_fail"()
-    rx384_cur."!cursor_debug"("FAIL  ", "backslash:sym<o>")
-    .return (rx384_cur)
+    add $I11, rx389_pos, 1
+    gt $I11, rx389_eos, rx389_fail
+    sub $I11, rx389_pos, rx389_off
+    substr $S10, rx389_tgt, $I11, 1
+    ne $S10, "]", rx389_fail
+    add rx389_pos, 1
+  alt398_end:
+  # rx pass
+    rx389_cur."!cursor_pass"(rx389_pos, "backslash:sym<o>")
+    rx389_cur."!cursor_debug"("PASS  ", "backslash:sym<o>", " at pos=", rx389_pos)
+    .return (rx389_cur)
+  rx389_fail:
+.annotate 'line', 3
+    (rx389_rep, rx389_pos, $I10, $P10) = rx389_cur."!mark_fail"(0)
+    lt rx389_pos, -1, rx389_done
+    eq rx389_pos, -1, rx389_fail
+    jump $I10
+  rx389_done:
+    rx389_cur."!cursor_fail"()
+    rx389_cur."!cursor_debug"("FAIL  ", "backslash:sym<o>")
+    .return (rx389_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>"  :subid("110_1274853027.61936") :method
-.annotate 'line', 3
-    $P386 = self."!PREFIX__!subrule"("octints", "O[")
-    $P387 = self."!PREFIX__!subrule"("octint", "O")
-    $P388 = self."!PREFIX__!subrule"("octints", "o[")
-    $P389 = self."!PREFIX__!subrule"("octint", "o")
-    new $P390, "ResizablePMCArray"
-    push $P390, $P386
-    push $P390, $P387
-    push $P390, $P388
-    push $P390, $P389
-    .return ($P390)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>"  :subid("111_1274853027.61936") :method :outer("11_1274853027.61936")
-.annotate 'line', 3
-    .local string rx395_tgt
-    .local int rx395_pos
-    .local int rx395_off
-    .local int rx395_eos
-    .local int rx395_rep
-    .local pmc rx395_cur
-    (rx395_cur, rx395_pos, rx395_tgt) = self."!cursor_start"()
-    rx395_cur."!cursor_debug"("START ", "backslash:sym<x>")
-    .lex unicode:"$\x{a2}", rx395_cur
-    .local pmc match
-    .lex "$/", match
-    length rx395_eos, rx395_tgt
-    set rx395_off, 0
-    lt rx395_pos, 2, rx395_start
-    sub rx395_off, rx395_pos, 1
-    substr rx395_tgt, rx395_tgt, rx395_off
-  rx395_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan402_done
-    goto rxscan402_scan
-  rxscan402_loop:
-    ($P10) = rx395_cur."from"()
-    inc $P10
-    set rx395_pos, $P10
-    ge rx395_pos, rx395_eos, rxscan402_done
-  rxscan402_scan:
-    set_addr $I10, rxscan402_loop
-    rx395_cur."!mark_push"(0, rx395_pos, $I10)
-  rxscan402_done:
+.sub "!PREFIX__backslash:sym<o>"  :subid("110_1275811476.7961") :method
+.annotate 'line', 3
+    $P391 = self."!PREFIX__!subrule"("octints", "O[")
+    $P392 = self."!PREFIX__!subrule"("octint", "O")
+    $P393 = self."!PREFIX__!subrule"("octints", "o[")
+    $P394 = self."!PREFIX__!subrule"("octint", "o")
+    new $P395, "ResizablePMCArray"
+    push $P395, $P391
+    push $P395, $P392
+    push $P395, $P393
+    push $P395, $P394
+    .return ($P395)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<x>"  :subid("111_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+    .local string rx400_tgt
+    .local int rx400_pos
+    .local int rx400_off
+    .local int rx400_eos
+    .local int rx400_rep
+    .local pmc rx400_cur
+    (rx400_cur, rx400_pos, rx400_tgt) = self."!cursor_start"()
+    rx400_cur."!cursor_debug"("START ", "backslash:sym<x>")
+    .lex unicode:"$\x{a2}", rx400_cur
+    .local pmc match
+    .lex "$/", match
+    length rx400_eos, rx400_tgt
+    gt rx400_pos, rx400_eos, rx400_done
+    set rx400_off, 0
+    lt rx400_pos, 2, rx400_start
+    sub rx400_off, rx400_pos, 1
+    substr rx400_tgt, rx400_tgt, rx400_off
+  rx400_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan407_done
+    goto rxscan407_scan
+  rxscan407_loop:
+    ($P10) = rx400_cur."from"()
+    inc $P10
+    set rx400_pos, $P10
+    ge rx400_pos, rx400_eos, rxscan407_done
+  rxscan407_scan:
+    set_addr $I10, rxscan407_loop
+    rx400_cur."!mark_push"(0, rx400_pos, $I10)
+  rxscan407_done:
 .annotate 'line', 130
   # rx subcapture "sym"
-    set_addr $I10, rxcap_403_fail
-    rx395_cur."!mark_push"(0, rx395_pos, $I10)
+    set_addr $I10, rxcap_408_fail
+    rx400_cur."!mark_push"(0, rx400_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx395_pos, rx395_eos, rx395_fail
-    sub $I10, rx395_pos, rx395_off
-    substr $S10, rx395_tgt, $I10, 1
+    ge rx400_pos, rx400_eos, rx400_fail
+    sub $I10, rx400_pos, rx400_off
+    substr $S10, rx400_tgt, $I10, 1
     index $I11, "xX", $S10
-    lt $I11, 0, rx395_fail
-    inc rx395_pos
-    set_addr $I10, rxcap_403_fail
-    ($I12, $I11) = rx395_cur."!mark_peek"($I10)
-    rx395_cur."!cursor_pos"($I11)
-    ($P10) = rx395_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx395_pos, "")
-    rx395_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx400_fail
+    inc rx400_pos
+    set_addr $I10, rxcap_408_fail
+    ($I12, $I11) = rx400_cur."!mark_peek"($I10)
+    rx400_cur."!cursor_pos"($I11)
+    ($P10) = rx400_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx400_pos, "")
+    rx400_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_403_done
-  rxcap_403_fail:
-    goto rx395_fail
-  rxcap_403_done:
-  alt404_0:
-    set_addr $I10, alt404_1
-    rx395_cur."!mark_push"(0, rx395_pos, $I10)
+    goto rxcap_408_done
+  rxcap_408_fail:
+    goto rx400_fail
+  rxcap_408_done:
+  alt409_0:
+    set_addr $I10, alt409_1
+    rx400_cur."!mark_push"(0, rx400_pos, $I10)
   # rx subrule "hexint" subtype=capture negate=
-    rx395_cur."!cursor_pos"(rx395_pos)
-    $P10 = rx395_cur."hexint"()
-    unless $P10, rx395_fail
-    rx395_cur."!mark_push"(0, -1, 0, $P10)
+    rx400_cur."!cursor_pos"(rx400_pos)
+    $P10 = rx400_cur."hexint"()
+    unless $P10, rx400_fail
+    rx400_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("hexint")
-    rx395_pos = $P10."pos"()
-    goto alt404_end
-  alt404_1:
+    rx400_pos = $P10."pos"()
+    goto alt409_end
+  alt409_1:
   # rx literal  "["
-    add $I11, rx395_pos, 1
-    gt $I11, rx395_eos, rx395_fail
-    sub $I11, rx395_pos, rx395_off
-    substr $S10, rx395_tgt, $I11, 1
-    ne $S10, "[", rx395_fail
-    add rx395_pos, 1
+    add $I11, rx400_pos, 1
+    gt $I11, rx400_eos, rx400_fail
+    sub $I11, rx400_pos, rx400_off
+    substr $S10, rx400_tgt, $I11, 1
+    ne $S10, "[", rx400_fail
+    add rx400_pos, 1
   # rx subrule "hexints" subtype=capture negate=
-    rx395_cur."!cursor_pos"(rx395_pos)
-    $P10 = rx395_cur."hexints"()
-    unless $P10, rx395_fail
-    rx395_cur."!mark_push"(0, -1, 0, $P10)
+    rx400_cur."!cursor_pos"(rx400_pos)
+    $P10 = rx400_cur."hexints"()
+    unless $P10, rx400_fail
+    rx400_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("hexints")
-    rx395_pos = $P10."pos"()
+    rx400_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx395_pos, 1
-    gt $I11, rx395_eos, rx395_fail
-    sub $I11, rx395_pos, rx395_off
-    substr $S10, rx395_tgt, $I11, 1
-    ne $S10, "]", rx395_fail
-    add rx395_pos, 1
-  alt404_end:
-  # rx pass
-    rx395_cur."!cursor_pass"(rx395_pos, "backslash:sym<x>")
-    rx395_cur."!cursor_debug"("PASS  ", "backslash:sym<x>", " at pos=", rx395_pos)
-    .return (rx395_cur)
-  rx395_fail:
-.annotate 'line', 3
-    (rx395_rep, rx395_pos, $I10, $P10) = rx395_cur."!mark_fail"(0)
-    lt rx395_pos, -1, rx395_done
-    eq rx395_pos, -1, rx395_fail
-    jump $I10
-  rx395_done:
-    rx395_cur."!cursor_fail"()
-    rx395_cur."!cursor_debug"("FAIL  ", "backslash:sym<x>")
-    .return (rx395_cur)
+    add $I11, rx400_pos, 1
+    gt $I11, rx400_eos, rx400_fail
+    sub $I11, rx400_pos, rx400_off
+    substr $S10, rx400_tgt, $I11, 1
+    ne $S10, "]", rx400_fail
+    add rx400_pos, 1
+  alt409_end:
+  # rx pass
+    rx400_cur."!cursor_pass"(rx400_pos, "backslash:sym<x>")
+    rx400_cur."!cursor_debug"("PASS  ", "backslash:sym<x>", " at pos=", rx400_pos)
+    .return (rx400_cur)
+  rx400_fail:
+.annotate 'line', 3
+    (rx400_rep, rx400_pos, $I10, $P10) = rx400_cur."!mark_fail"(0)
+    lt rx400_pos, -1, rx400_done
+    eq rx400_pos, -1, rx400_fail
+    jump $I10
+  rx400_done:
+    rx400_cur."!cursor_fail"()
+    rx400_cur."!cursor_debug"("FAIL  ", "backslash:sym<x>")
+    .return (rx400_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>"  :subid("112_1274853027.61936") :method
-.annotate 'line', 3
-    $P397 = self."!PREFIX__!subrule"("hexints", "X[")
-    $P398 = self."!PREFIX__!subrule"("hexint", "X")
-    $P399 = self."!PREFIX__!subrule"("hexints", "x[")
-    $P400 = self."!PREFIX__!subrule"("hexint", "x")
-    new $P401, "ResizablePMCArray"
-    push $P401, $P397
-    push $P401, $P398
-    push $P401, $P399
-    push $P401, $P400
-    .return ($P401)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>"  :subid("113_1274853027.61936") :method :outer("11_1274853027.61936")
-.annotate 'line', 3
-    .local string rx406_tgt
-    .local int rx406_pos
-    .local int rx406_off
-    .local int rx406_eos
-    .local int rx406_rep
-    .local pmc rx406_cur
-    (rx406_cur, rx406_pos, rx406_tgt) = self."!cursor_start"()
-    rx406_cur."!cursor_debug"("START ", "backslash:sym<c>")
-    .lex unicode:"$\x{a2}", rx406_cur
-    .local pmc match
-    .lex "$/", match
-    length rx406_eos, rx406_tgt
-    set rx406_off, 0
-    lt rx406_pos, 2, rx406_start
-    sub rx406_off, rx406_pos, 1
-    substr rx406_tgt, rx406_tgt, rx406_off
-  rx406_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan411_done
-    goto rxscan411_scan
-  rxscan411_loop:
-    ($P10) = rx406_cur."from"()
-    inc $P10
-    set rx406_pos, $P10
-    ge rx406_pos, rx406_eos, rxscan411_done
-  rxscan411_scan:
-    set_addr $I10, rxscan411_loop
-    rx406_cur."!mark_push"(0, rx406_pos, $I10)
-  rxscan411_done:
+.sub "!PREFIX__backslash:sym<x>"  :subid("112_1275811476.7961") :method
+.annotate 'line', 3
+    $P402 = self."!PREFIX__!subrule"("hexints", "X[")
+    $P403 = self."!PREFIX__!subrule"("hexint", "X")
+    $P404 = self."!PREFIX__!subrule"("hexints", "x[")
+    $P405 = self."!PREFIX__!subrule"("hexint", "x")
+    new $P406, "ResizablePMCArray"
+    push $P406, $P402
+    push $P406, $P403
+    push $P406, $P404
+    push $P406, $P405
+    .return ($P406)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<c>"  :subid("113_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+    .local string rx411_tgt
+    .local int rx411_pos
+    .local int rx411_off
+    .local int rx411_eos
+    .local int rx411_rep
+    .local pmc rx411_cur
+    (rx411_cur, rx411_pos, rx411_tgt) = self."!cursor_start"()
+    rx411_cur."!cursor_debug"("START ", "backslash:sym<c>")
+    .lex unicode:"$\x{a2}", rx411_cur
+    .local pmc match
+    .lex "$/", match
+    length rx411_eos, rx411_tgt
+    gt rx411_pos, rx411_eos, rx411_done
+    set rx411_off, 0
+    lt rx411_pos, 2, rx411_start
+    sub rx411_off, rx411_pos, 1
+    substr rx411_tgt, rx411_tgt, rx411_off
+  rx411_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan416_done
+    goto rxscan416_scan
+  rxscan416_loop:
+    ($P10) = rx411_cur."from"()
+    inc $P10
+    set rx411_pos, $P10
+    ge rx411_pos, rx411_eos, rxscan416_done
+  rxscan416_scan:
+    set_addr $I10, rxscan416_loop
+    rx411_cur."!mark_push"(0, rx411_pos, $I10)
+  rxscan416_done:
 .annotate 'line', 131
   # rx subcapture "sym"
-    set_addr $I10, rxcap_412_fail
-    rx406_cur."!mark_push"(0, rx406_pos, $I10)
+    set_addr $I10, rxcap_417_fail
+    rx411_cur."!mark_push"(0, rx411_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx406_pos, rx406_eos, rx406_fail
-    sub $I10, rx406_pos, rx406_off
-    substr $S10, rx406_tgt, $I10, 1
+    ge rx411_pos, rx411_eos, rx411_fail
+    sub $I10, rx411_pos, rx411_off
+    substr $S10, rx411_tgt, $I10, 1
     index $I11, "cC", $S10
-    lt $I11, 0, rx406_fail
-    inc rx406_pos
-    set_addr $I10, rxcap_412_fail
-    ($I12, $I11) = rx406_cur."!mark_peek"($I10)
-    rx406_cur."!cursor_pos"($I11)
-    ($P10) = rx406_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx406_pos, "")
-    rx406_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx411_fail
+    inc rx411_pos
+    set_addr $I10, rxcap_417_fail
+    ($I12, $I11) = rx411_cur."!mark_peek"($I10)
+    rx411_cur."!cursor_pos"($I11)
+    ($P10) = rx411_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx411_pos, "")
+    rx411_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_412_done
-  rxcap_412_fail:
-    goto rx406_fail
-  rxcap_412_done:
+    goto rxcap_417_done
+  rxcap_417_fail:
+    goto rx411_fail
+  rxcap_417_done:
   # rx subrule "charspec" subtype=capture negate=
-    rx406_cur."!cursor_pos"(rx406_pos)
-    $P10 = rx406_cur."charspec"()
-    unless $P10, rx406_fail
-    rx406_cur."!mark_push"(0, -1, 0, $P10)
+    rx411_cur."!cursor_pos"(rx411_pos)
+    $P10 = rx411_cur."charspec"()
+    unless $P10, rx411_fail
+    rx411_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charspec")
-    rx406_pos = $P10."pos"()
+    rx411_pos = $P10."pos"()
   # rx pass
-    rx406_cur."!cursor_pass"(rx406_pos, "backslash:sym<c>")
-    rx406_cur."!cursor_debug"("PASS  ", "backslash:sym<c>", " at pos=", rx406_pos)
-    .return (rx406_cur)
-  rx406_fail:
+    rx411_cur."!cursor_pass"(rx411_pos, "backslash:sym<c>")
+    rx411_cur."!cursor_debug"("PASS  ", "backslash:sym<c>", " at pos=", rx411_pos)
+    .return (rx411_cur)
+  rx411_fail:
 .annotate 'line', 3
-    (rx406_rep, rx406_pos, $I10, $P10) = rx406_cur."!mark_fail"(0)
-    lt rx406_pos, -1, rx406_done
-    eq rx406_pos, -1, rx406_fail
+    (rx411_rep, rx411_pos, $I10, $P10) = rx411_cur."!mark_fail"(0)
+    lt rx411_pos, -1, rx411_done
+    eq rx411_pos, -1, rx411_fail
     jump $I10
-  rx406_done:
-    rx406_cur."!cursor_fail"()
-    rx406_cur."!cursor_debug"("FAIL  ", "backslash:sym<c>")
-    .return (rx406_cur)
+  rx411_done:
+    rx411_cur."!cursor_fail"()
+    rx411_cur."!cursor_debug"("FAIL  ", "backslash:sym<c>")
+    .return (rx411_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>"  :subid("114_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<c>"  :subid("114_1275811476.7961") :method
 .annotate 'line', 3
-    $P408 = self."!PREFIX__!subrule"("charspec", "C")
-    $P409 = self."!PREFIX__!subrule"("charspec", "c")
-    new $P410, "ResizablePMCArray"
-    push $P410, $P408
-    push $P410, $P409
-    .return ($P410)
+    $P413 = self."!PREFIX__!subrule"("charspec", "C")
+    $P414 = self."!PREFIX__!subrule"("charspec", "c")
+    new $P415, "ResizablePMCArray"
+    push $P415, $P413
+    push $P415, $P414
+    .return ($P415)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>"  :subid("115_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<A>"  :subid("115_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx414_tgt
-    .local int rx414_pos
-    .local int rx414_off
-    .local int rx414_eos
-    .local int rx414_rep
-    .local pmc rx414_cur
-    (rx414_cur, rx414_pos, rx414_tgt) = self."!cursor_start"()
-    rx414_cur."!cursor_debug"("START ", "backslash:sym<A>")
-    .lex unicode:"$\x{a2}", rx414_cur
+    .local string rx419_tgt
+    .local int rx419_pos
+    .local int rx419_off
+    .local int rx419_eos
+    .local int rx419_rep
+    .local pmc rx419_cur
+    (rx419_cur, rx419_pos, rx419_tgt) = self."!cursor_start"()
+    rx419_cur."!cursor_debug"("START ", "backslash:sym<A>")
+    .lex unicode:"$\x{a2}", rx419_cur
     .local pmc match
     .lex "$/", match
-    length rx414_eos, rx414_tgt
-    set rx414_off, 0
-    lt rx414_pos, 2, rx414_start
-    sub rx414_off, rx414_pos, 1
-    substr rx414_tgt, rx414_tgt, rx414_off
-  rx414_start:
+    length rx419_eos, rx419_tgt
+    gt rx419_pos, rx419_eos, rx419_done
+    set rx419_off, 0
+    lt rx419_pos, 2, rx419_start
+    sub rx419_off, rx419_pos, 1
+    substr rx419_tgt, rx419_tgt, rx419_off
+  rx419_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan418_done
-    goto rxscan418_scan
-  rxscan418_loop:
-    ($P10) = rx414_cur."from"()
+    ne $I10, -1, rxscan423_done
+    goto rxscan423_scan
+  rxscan423_loop:
+    ($P10) = rx419_cur."from"()
     inc $P10
-    set rx414_pos, $P10
-    ge rx414_pos, rx414_eos, rxscan418_done
-  rxscan418_scan:
-    set_addr $I10, rxscan418_loop
-    rx414_cur."!mark_push"(0, rx414_pos, $I10)
-  rxscan418_done:
+    set rx419_pos, $P10
+    ge rx419_pos, rx419_eos, rxscan423_done
+  rxscan423_scan:
+    set_addr $I10, rxscan423_loop
+    rx419_cur."!mark_push"(0, rx419_pos, $I10)
+  rxscan423_done:
 .annotate 'line', 132
   # rx literal  "A"
-    add $I11, rx414_pos, 1
-    gt $I11, rx414_eos, rx414_fail
-    sub $I11, rx414_pos, rx414_off
-    substr $S10, rx414_tgt, $I11, 1
-    ne $S10, "A", rx414_fail
-    add rx414_pos, 1
+    add $I11, rx419_pos, 1
+    gt $I11, rx419_eos, rx419_fail
+    sub $I11, rx419_pos, rx419_off
+    substr $S10, rx419_tgt, $I11, 1
+    ne $S10, "A", rx419_fail
+    add rx419_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx414_cur."!cursor_pos"(rx414_pos)
-    $P10 = rx414_cur."obs"("\\A as beginning-of-string matcher", "^")
-    unless $P10, rx414_fail
-    rx414_pos = $P10."pos"()
+    rx419_cur."!cursor_pos"(rx419_pos)
+    $P10 = rx419_cur."obs"("\\A as beginning-of-string matcher", "^")
+    unless $P10, rx419_fail
+    rx419_pos = $P10."pos"()
   # rx pass
-    rx414_cur."!cursor_pass"(rx414_pos, "backslash:sym<A>")
-    rx414_cur."!cursor_debug"("PASS  ", "backslash:sym<A>", " at pos=", rx414_pos)
-    .return (rx414_cur)
-  rx414_fail:
+    rx419_cur."!cursor_pass"(rx419_pos, "backslash:sym<A>")
+    rx419_cur."!cursor_debug"("PASS  ", "backslash:sym<A>", " at pos=", rx419_pos)
+    .return (rx419_cur)
+  rx419_fail:
 .annotate 'line', 3
-    (rx414_rep, rx414_pos, $I10, $P10) = rx414_cur."!mark_fail"(0)
-    lt rx414_pos, -1, rx414_done
-    eq rx414_pos, -1, rx414_fail
+    (rx419_rep, rx419_pos, $I10, $P10) = rx419_cur."!mark_fail"(0)
+    lt rx419_pos, -1, rx419_done
+    eq rx419_pos, -1, rx419_fail
     jump $I10
-  rx414_done:
-    rx414_cur."!cursor_fail"()
-    rx414_cur."!cursor_debug"("FAIL  ", "backslash:sym<A>")
-    .return (rx414_cur)
+  rx419_done:
+    rx419_cur."!cursor_fail"()
+    rx419_cur."!cursor_debug"("FAIL  ", "backslash:sym<A>")
+    .return (rx419_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>"  :subid("116_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<A>"  :subid("116_1275811476.7961") :method
 .annotate 'line', 3
-    $P416 = self."!PREFIX__!subrule"("", "A")
-    new $P417, "ResizablePMCArray"
-    push $P417, $P416
-    .return ($P417)
+    $P421 = self."!PREFIX__!subrule"("obs", "A")
+    new $P422, "ResizablePMCArray"
+    push $P422, $P421
+    .return ($P422)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>"  :subid("117_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<z>"  :subid("117_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx420_tgt
-    .local int rx420_pos
-    .local int rx420_off
-    .local int rx420_eos
-    .local int rx420_rep
-    .local pmc rx420_cur
-    (rx420_cur, rx420_pos, rx420_tgt) = self."!cursor_start"()
-    rx420_cur."!cursor_debug"("START ", "backslash:sym<z>")
-    .lex unicode:"$\x{a2}", rx420_cur
-    .local pmc match
-    .lex "$/", match
-    length rx420_eos, rx420_tgt
-    set rx420_off, 0
-    lt rx420_pos, 2, rx420_start
-    sub rx420_off, rx420_pos, 1
-    substr rx420_tgt, rx420_tgt, rx420_off
-  rx420_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan424_done
-    goto rxscan424_scan
-  rxscan424_loop:
-    ($P10) = rx420_cur."from"()
-    inc $P10
-    set rx420_pos, $P10
-    ge rx420_pos, rx420_eos, rxscan424_done
-  rxscan424_scan:
-    set_addr $I10, rxscan424_loop
-    rx420_cur."!mark_push"(0, rx420_pos, $I10)
-  rxscan424_done:
+    .local string rx425_tgt
+    .local int rx425_pos
+    .local int rx425_off
+    .local int rx425_eos
+    .local int rx425_rep
+    .local pmc rx425_cur
+    (rx425_cur, rx425_pos, rx425_tgt) = self."!cursor_start"()
+    rx425_cur."!cursor_debug"("START ", "backslash:sym<z>")
+    .lex unicode:"$\x{a2}", rx425_cur
+    .local pmc match
+    .lex "$/", match
+    length rx425_eos, rx425_tgt
+    gt rx425_pos, rx425_eos, rx425_done
+    set rx425_off, 0
+    lt rx425_pos, 2, rx425_start
+    sub rx425_off, rx425_pos, 1
+    substr rx425_tgt, rx425_tgt, rx425_off
+  rx425_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan429_done
+    goto rxscan429_scan
+  rxscan429_loop:
+    ($P10) = rx425_cur."from"()
+    inc $P10
+    set rx425_pos, $P10
+    ge rx425_pos, rx425_eos, rxscan429_done
+  rxscan429_scan:
+    set_addr $I10, rxscan429_loop
+    rx425_cur."!mark_push"(0, rx425_pos, $I10)
+  rxscan429_done:
 .annotate 'line', 133
   # rx literal  "z"
-    add $I11, rx420_pos, 1
-    gt $I11, rx420_eos, rx420_fail
-    sub $I11, rx420_pos, rx420_off
-    substr $S10, rx420_tgt, $I11, 1
-    ne $S10, "z", rx420_fail
-    add rx420_pos, 1
+    add $I11, rx425_pos, 1
+    gt $I11, rx425_eos, rx425_fail
+    sub $I11, rx425_pos, rx425_off
+    substr $S10, rx425_tgt, $I11, 1
+    ne $S10, "z", rx425_fail
+    add rx425_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx420_cur."!cursor_pos"(rx420_pos)
-    $P10 = rx420_cur."obs"("\\z as end-of-string matcher", "$")
-    unless $P10, rx420_fail
-    rx420_pos = $P10."pos"()
+    rx425_cur."!cursor_pos"(rx425_pos)
+    $P10 = rx425_cur."obs"("\\z as end-of-string matcher", "$")
+    unless $P10, rx425_fail
+    rx425_pos = $P10."pos"()
   # rx pass
-    rx420_cur."!cursor_pass"(rx420_pos, "backslash:sym<z>")
-    rx420_cur."!cursor_debug"("PASS  ", "backslash:sym<z>", " at pos=", rx420_pos)
-    .return (rx420_cur)
-  rx420_fail:
+    rx425_cur."!cursor_pass"(rx425_pos, "backslash:sym<z>")
+    rx425_cur."!cursor_debug"("PASS  ", "backslash:sym<z>", " at pos=", rx425_pos)
+    .return (rx425_cur)
+  rx425_fail:
 .annotate 'line', 3
-    (rx420_rep, rx420_pos, $I10, $P10) = rx420_cur."!mark_fail"(0)
-    lt rx420_pos, -1, rx420_done
-    eq rx420_pos, -1, rx420_fail
+    (rx425_rep, rx425_pos, $I10, $P10) = rx425_cur."!mark_fail"(0)
+    lt rx425_pos, -1, rx425_done
+    eq rx425_pos, -1, rx425_fail
     jump $I10
-  rx420_done:
-    rx420_cur."!cursor_fail"()
-    rx420_cur."!cursor_debug"("FAIL  ", "backslash:sym<z>")
-    .return (rx420_cur)
+  rx425_done:
+    rx425_cur."!cursor_fail"()
+    rx425_cur."!cursor_debug"("FAIL  ", "backslash:sym<z>")
+    .return (rx425_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>"  :subid("118_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<z>"  :subid("118_1275811476.7961") :method
 .annotate 'line', 3
-    $P422 = self."!PREFIX__!subrule"("", "z")
-    new $P423, "ResizablePMCArray"
-    push $P423, $P422
-    .return ($P423)
+    $P427 = self."!PREFIX__!subrule"("obs", "z")
+    new $P428, "ResizablePMCArray"
+    push $P428, $P427
+    .return ($P428)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>"  :subid("119_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<Z>"  :subid("119_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx426_tgt
-    .local int rx426_pos
-    .local int rx426_off
-    .local int rx426_eos
-    .local int rx426_rep
-    .local pmc rx426_cur
-    (rx426_cur, rx426_pos, rx426_tgt) = self."!cursor_start"()
-    rx426_cur."!cursor_debug"("START ", "backslash:sym<Z>")
-    .lex unicode:"$\x{a2}", rx426_cur
+    .local string rx431_tgt
+    .local int rx431_pos
+    .local int rx431_off
+    .local int rx431_eos
+    .local int rx431_rep
+    .local pmc rx431_cur
+    (rx431_cur, rx431_pos, rx431_tgt) = self."!cursor_start"()
+    rx431_cur."!cursor_debug"("START ", "backslash:sym<Z>")
+    .lex unicode:"$\x{a2}", rx431_cur
     .local pmc match
     .lex "$/", match
-    length rx426_eos, rx426_tgt
-    set rx426_off, 0
-    lt rx426_pos, 2, rx426_start
-    sub rx426_off, rx426_pos, 1
-    substr rx426_tgt, rx426_tgt, rx426_off
-  rx426_start:
+    length rx431_eos, rx431_tgt
+    gt rx431_pos, rx431_eos, rx431_done
+    set rx431_off, 0
+    lt rx431_pos, 2, rx431_start
+    sub rx431_off, rx431_pos, 1
+    substr rx431_tgt, rx431_tgt, rx431_off
+  rx431_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan430_done
-    goto rxscan430_scan
-  rxscan430_loop:
-    ($P10) = rx426_cur."from"()
+    ne $I10, -1, rxscan435_done
+    goto rxscan435_scan
+  rxscan435_loop:
+    ($P10) = rx431_cur."from"()
     inc $P10
-    set rx426_pos, $P10
-    ge rx426_pos, rx426_eos, rxscan430_done
-  rxscan430_scan:
-    set_addr $I10, rxscan430_loop
-    rx426_cur."!mark_push"(0, rx426_pos, $I10)
-  rxscan430_done:
+    set rx431_pos, $P10
+    ge rx431_pos, rx431_eos, rxscan435_done
+  rxscan435_scan:
+    set_addr $I10, rxscan435_loop
+    rx431_cur."!mark_push"(0, rx431_pos, $I10)
+  rxscan435_done:
 .annotate 'line', 134
   # rx literal  "Z"
-    add $I11, rx426_pos, 1
-    gt $I11, rx426_eos, rx426_fail
-    sub $I11, rx426_pos, rx426_off
-    substr $S10, rx426_tgt, $I11, 1
-    ne $S10, "Z", rx426_fail
-    add rx426_pos, 1
+    add $I11, rx431_pos, 1
+    gt $I11, rx431_eos, rx431_fail
+    sub $I11, rx431_pos, rx431_off
+    substr $S10, rx431_tgt, $I11, 1
+    ne $S10, "Z", rx431_fail
+    add rx431_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx426_cur."!cursor_pos"(rx426_pos)
-    $P10 = rx426_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
-    unless $P10, rx426_fail
-    rx426_pos = $P10."pos"()
+    rx431_cur."!cursor_pos"(rx431_pos)
+    $P10 = rx431_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
+    unless $P10, rx431_fail
+    rx431_pos = $P10."pos"()
   # rx pass
-    rx426_cur."!cursor_pass"(rx426_pos, "backslash:sym<Z>")
-    rx426_cur."!cursor_debug"("PASS  ", "backslash:sym<Z>", " at pos=", rx426_pos)
-    .return (rx426_cur)
-  rx426_fail:
+    rx431_cur."!cursor_pass"(rx431_pos, "backslash:sym<Z>")
+    rx431_cur."!cursor_debug"("PASS  ", "backslash:sym<Z>", " at pos=", rx431_pos)
+    .return (rx431_cur)
+  rx431_fail:
 .annotate 'line', 3
-    (rx426_rep, rx426_pos, $I10, $P10) = rx426_cur."!mark_fail"(0)
-    lt rx426_pos, -1, rx426_done
-    eq rx426_pos, -1, rx426_fail
+    (rx431_rep, rx431_pos, $I10, $P10) = rx431_cur."!mark_fail"(0)
+    lt rx431_pos, -1, rx431_done
+    eq rx431_pos, -1, rx431_fail
     jump $I10
-  rx426_done:
-    rx426_cur."!cursor_fail"()
-    rx426_cur."!cursor_debug"("FAIL  ", "backslash:sym<Z>")
-    .return (rx426_cur)
+  rx431_done:
+    rx431_cur."!cursor_fail"()
+    rx431_cur."!cursor_debug"("FAIL  ", "backslash:sym<Z>")
+    .return (rx431_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>"  :subid("120_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<Z>"  :subid("120_1275811476.7961") :method
 .annotate 'line', 3
-    $P428 = self."!PREFIX__!subrule"("", "Z")
-    new $P429, "ResizablePMCArray"
-    push $P429, $P428
-    .return ($P429)
+    $P433 = self."!PREFIX__!subrule"("obs", "Z")
+    new $P434, "ResizablePMCArray"
+    push $P434, $P433
+    .return ($P434)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>"  :subid("121_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<Q>"  :subid("121_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx432_tgt
-    .local int rx432_pos
-    .local int rx432_off
-    .local int rx432_eos
-    .local int rx432_rep
-    .local pmc rx432_cur
-    (rx432_cur, rx432_pos, rx432_tgt) = self."!cursor_start"()
-    rx432_cur."!cursor_debug"("START ", "backslash:sym<Q>")
-    .lex unicode:"$\x{a2}", rx432_cur
+    .local string rx437_tgt
+    .local int rx437_pos
+    .local int rx437_off
+    .local int rx437_eos
+    .local int rx437_rep
+    .local pmc rx437_cur
+    (rx437_cur, rx437_pos, rx437_tgt) = self."!cursor_start"()
+    rx437_cur."!cursor_debug"("START ", "backslash:sym<Q>")
+    .lex unicode:"$\x{a2}", rx437_cur
     .local pmc match
     .lex "$/", match
-    length rx432_eos, rx432_tgt
-    set rx432_off, 0
-    lt rx432_pos, 2, rx432_start
-    sub rx432_off, rx432_pos, 1
-    substr rx432_tgt, rx432_tgt, rx432_off
-  rx432_start:
+    length rx437_eos, rx437_tgt
+    gt rx437_pos, rx437_eos, rx437_done
+    set rx437_off, 0
+    lt rx437_pos, 2, rx437_start
+    sub rx437_off, rx437_pos, 1
+    substr rx437_tgt, rx437_tgt, rx437_off
+  rx437_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan436_done
-    goto rxscan436_scan
-  rxscan436_loop:
-    ($P10) = rx432_cur."from"()
+    ne $I10, -1, rxscan441_done
+    goto rxscan441_scan
+  rxscan441_loop:
+    ($P10) = rx437_cur."from"()
     inc $P10
-    set rx432_pos, $P10
-    ge rx432_pos, rx432_eos, rxscan436_done
-  rxscan436_scan:
-    set_addr $I10, rxscan436_loop
-    rx432_cur."!mark_push"(0, rx432_pos, $I10)
-  rxscan436_done:
+    set rx437_pos, $P10
+    ge rx437_pos, rx437_eos, rxscan441_done
+  rxscan441_scan:
+    set_addr $I10, rxscan441_loop
+    rx437_cur."!mark_push"(0, rx437_pos, $I10)
+  rxscan441_done:
 .annotate 'line', 135
   # rx literal  "Q"
-    add $I11, rx432_pos, 1
-    gt $I11, rx432_eos, rx432_fail
-    sub $I11, rx432_pos, rx432_off
-    substr $S10, rx432_tgt, $I11, 1
-    ne $S10, "Q", rx432_fail
-    add rx432_pos, 1
+    add $I11, rx437_pos, 1
+    gt $I11, rx437_eos, rx437_fail
+    sub $I11, rx437_pos, rx437_off
+    substr $S10, rx437_tgt, $I11, 1
+    ne $S10, "Q", rx437_fail
+    add rx437_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx432_cur."!cursor_pos"(rx432_pos)
-    $P10 = rx432_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
-    unless $P10, rx432_fail
-    rx432_pos = $P10."pos"()
+    rx437_cur."!cursor_pos"(rx437_pos)
+    $P10 = rx437_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
+    unless $P10, rx437_fail
+    rx437_pos = $P10."pos"()
   # rx pass
-    rx432_cur."!cursor_pass"(rx432_pos, "backslash:sym<Q>")
-    rx432_cur."!cursor_debug"("PASS  ", "backslash:sym<Q>", " at pos=", rx432_pos)
-    .return (rx432_cur)
-  rx432_fail:
+    rx437_cur."!cursor_pass"(rx437_pos, "backslash:sym<Q>")
+    rx437_cur."!cursor_debug"("PASS  ", "backslash:sym<Q>", " at pos=", rx437_pos)
+    .return (rx437_cur)
+  rx437_fail:
 .annotate 'line', 3
-    (rx432_rep, rx432_pos, $I10, $P10) = rx432_cur."!mark_fail"(0)
-    lt rx432_pos, -1, rx432_done
-    eq rx432_pos, -1, rx432_fail
+    (rx437_rep, rx437_pos, $I10, $P10) = rx437_cur."!mark_fail"(0)
+    lt rx437_pos, -1, rx437_done
+    eq rx437_pos, -1, rx437_fail
     jump $I10
-  rx432_done:
-    rx432_cur."!cursor_fail"()
-    rx432_cur."!cursor_debug"("FAIL  ", "backslash:sym<Q>")
-    .return (rx432_cur)
+  rx437_done:
+    rx437_cur."!cursor_fail"()
+    rx437_cur."!cursor_debug"("FAIL  ", "backslash:sym<Q>")
+    .return (rx437_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>"  :subid("122_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<Q>"  :subid("122_1275811476.7961") :method
 .annotate 'line', 3
-    $P434 = self."!PREFIX__!subrule"("", "Q")
-    new $P435, "ResizablePMCArray"
-    push $P435, $P434
-    .return ($P435)
+    $P439 = self."!PREFIX__!subrule"("obs", "Q")
+    new $P440, "ResizablePMCArray"
+    push $P440, $P439
+    .return ($P440)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>"  :subid("123_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "backslash:sym<misc>"  :subid("123_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx438_tgt
-    .local int rx438_pos
-    .local int rx438_off
-    .local int rx438_eos
-    .local int rx438_rep
-    .local pmc rx438_cur
-    (rx438_cur, rx438_pos, rx438_tgt) = self."!cursor_start"()
-    rx438_cur."!cursor_debug"("START ", "backslash:sym<misc>")
-    .lex unicode:"$\x{a2}", rx438_cur
-    .local pmc match
-    .lex "$/", match
-    length rx438_eos, rx438_tgt
-    set rx438_off, 0
-    lt rx438_pos, 2, rx438_start
-    sub rx438_off, rx438_pos, 1
-    substr rx438_tgt, rx438_tgt, rx438_off
-  rx438_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan441_done
-    goto rxscan441_scan
-  rxscan441_loop:
-    ($P10) = rx438_cur."from"()
-    inc $P10
-    set rx438_pos, $P10
-    ge rx438_pos, rx438_eos, rxscan441_done
-  rxscan441_scan:
-    set_addr $I10, rxscan441_loop
-    rx438_cur."!mark_push"(0, rx438_pos, $I10)
-  rxscan441_done:
+    .local string rx443_tgt
+    .local int rx443_pos
+    .local int rx443_off
+    .local int rx443_eos
+    .local int rx443_rep
+    .local pmc rx443_cur
+    (rx443_cur, rx443_pos, rx443_tgt) = self."!cursor_start"()
+    rx443_cur."!cursor_debug"("START ", "backslash:sym<misc>")
+    .lex unicode:"$\x{a2}", rx443_cur
+    .local pmc match
+    .lex "$/", match
+    length rx443_eos, rx443_tgt
+    gt rx443_pos, rx443_eos, rx443_done
+    set rx443_off, 0
+    lt rx443_pos, 2, rx443_start
+    sub rx443_off, rx443_pos, 1
+    substr rx443_tgt, rx443_tgt, rx443_off
+  rx443_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan446_done
+    goto rxscan446_scan
+  rxscan446_loop:
+    ($P10) = rx443_cur."from"()
+    inc $P10
+    set rx443_pos, $P10
+    ge rx443_pos, rx443_eos, rxscan446_done
+  rxscan446_scan:
+    set_addr $I10, rxscan446_loop
+    rx443_cur."!mark_push"(0, rx443_pos, $I10)
+  rxscan446_done:
 .annotate 'line', 136
   # rx charclass W
-    ge rx438_pos, rx438_eos, rx438_fail
-    sub $I10, rx438_pos, rx438_off
-    is_cclass $I11, 8192, rx438_tgt, $I10
-    if $I11, rx438_fail
-    inc rx438_pos
+    ge rx443_pos, rx443_eos, rx443_fail
+    sub $I10, rx443_pos, rx443_off
+    is_cclass $I11, 8192, rx443_tgt, $I10
+    if $I11, rx443_fail
+    inc rx443_pos
   # rx pass
-    rx438_cur."!cursor_pass"(rx438_pos, "backslash:sym<misc>")
-    rx438_cur."!cursor_debug"("PASS  ", "backslash:sym<misc>", " at pos=", rx438_pos)
-    .return (rx438_cur)
-  rx438_fail:
+    rx443_cur."!cursor_pass"(rx443_pos, "backslash:sym<misc>")
+    rx443_cur."!cursor_debug"("PASS  ", "backslash:sym<misc>", " at pos=", rx443_pos)
+    .return (rx443_cur)
+  rx443_fail:
 .annotate 'line', 3
-    (rx438_rep, rx438_pos, $I10, $P10) = rx438_cur."!mark_fail"(0)
-    lt rx438_pos, -1, rx438_done
-    eq rx438_pos, -1, rx438_fail
+    (rx443_rep, rx443_pos, $I10, $P10) = rx443_cur."!mark_fail"(0)
+    lt rx443_pos, -1, rx443_done
+    eq rx443_pos, -1, rx443_fail
     jump $I10
-  rx438_done:
-    rx438_cur."!cursor_fail"()
-    rx438_cur."!cursor_debug"("FAIL  ", "backslash:sym<misc>")
-    .return (rx438_cur)
+  rx443_done:
+    rx443_cur."!cursor_fail"()
+    rx443_cur."!cursor_debug"("FAIL  ", "backslash:sym<misc>")
+    .return (rx443_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>"  :subid("124_1274853027.61936") :method
+.sub "!PREFIX__backslash:sym<misc>"  :subid("124_1275811476.7961") :method
 .annotate 'line', 3
-    new $P440, "ResizablePMCArray"
-    push $P440, ""
-    .return ($P440)
+    new $P445, "ResizablePMCArray"
+    push $P445, ""
+    .return ($P445)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion"  :subid("125_1274853027.61936") :method
+.sub "assertion"  :subid("125_1275811476.7961") :method
 .annotate 'line', 138
-    $P443 = self."!protoregex"("assertion")
-    .return ($P443)
+    $P448 = self."!protoregex"("assertion")
+    .return ($P448)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion"  :subid("126_1274853027.61936") :method
+.sub "!PREFIX__assertion"  :subid("126_1275811476.7961") :method
 .annotate 'line', 138
-    $P445 = self."!PREFIX__!protoregex"("assertion")
-    .return ($P445)
+    $P450 = self."!PREFIX__!protoregex"("assertion")
+    .return ($P450)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>"  :subid("127_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "assertion:sym<?>"  :subid("127_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .const 'Sub' $P454 = "129_1274853027.61936" 
-    capture_lex $P454
-    .local string rx447_tgt
-    .local int rx447_pos
-    .local int rx447_off
-    .local int rx447_eos
-    .local int rx447_rep
-    .local pmc rx447_cur
-    (rx447_cur, rx447_pos, rx447_tgt) = self."!cursor_start"()
-    rx447_cur."!cursor_debug"("START ", "assertion:sym<?>")
-    .lex unicode:"$\x{a2}", rx447_cur
-    .local pmc match
-    .lex "$/", match
-    length rx447_eos, rx447_tgt
-    set rx447_off, 0
-    lt rx447_pos, 2, rx447_start
-    sub rx447_off, rx447_pos, 1
-    substr rx447_tgt, rx447_tgt, rx447_off
-  rx447_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan451_done
-    goto rxscan451_scan
-  rxscan451_loop:
-    ($P10) = rx447_cur."from"()
-    inc $P10
-    set rx447_pos, $P10
-    ge rx447_pos, rx447_eos, rxscan451_done
-  rxscan451_scan:
-    set_addr $I10, rxscan451_loop
-    rx447_cur."!mark_push"(0, rx447_pos, $I10)
-  rxscan451_done:
+    .const 'Sub' $P459 = "129_1275811476.7961" 
+    capture_lex $P459
+    .local string rx452_tgt
+    .local int rx452_pos
+    .local int rx452_off
+    .local int rx452_eos
+    .local int rx452_rep
+    .local pmc rx452_cur
+    (rx452_cur, rx452_pos, rx452_tgt) = self."!cursor_start"()
+    rx452_cur."!cursor_debug"("START ", "assertion:sym<?>")
+    .lex unicode:"$\x{a2}", rx452_cur
+    .local pmc match
+    .lex "$/", match
+    length rx452_eos, rx452_tgt
+    gt rx452_pos, rx452_eos, rx452_done
+    set rx452_off, 0
+    lt rx452_pos, 2, rx452_start
+    sub rx452_off, rx452_pos, 1
+    substr rx452_tgt, rx452_tgt, rx452_off
+  rx452_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan456_done
+    goto rxscan456_scan
+  rxscan456_loop:
+    ($P10) = rx452_cur."from"()
+    inc $P10
+    set rx452_pos, $P10
+    ge rx452_pos, rx452_eos, rxscan456_done
+  rxscan456_scan:
+    set_addr $I10, rxscan456_loop
+    rx452_cur."!mark_push"(0, rx452_pos, $I10)
+  rxscan456_done:
 .annotate 'line', 140
   # rx literal  "?"
-    add $I11, rx447_pos, 1
-    gt $I11, rx447_eos, rx447_fail
-    sub $I11, rx447_pos, rx447_off
-    substr $S10, rx447_tgt, $I11, 1
-    ne $S10, "?", rx447_fail
-    add rx447_pos, 1
-  alt452_0:
-    set_addr $I10, alt452_1
-    rx447_cur."!mark_push"(0, rx447_pos, $I10)
+    add $I11, rx452_pos, 1
+    gt $I11, rx452_eos, rx452_fail
+    sub $I11, rx452_pos, rx452_off
+    substr $S10, rx452_tgt, $I11, 1
+    ne $S10, "?", rx452_fail
+    add rx452_pos, 1
+  alt457_0:
+    set_addr $I10, alt457_1
+    rx452_cur."!mark_push"(0, rx452_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
-    rx447_cur."!cursor_pos"(rx447_pos)
-    .const 'Sub' $P454 = "129_1274853027.61936" 
-    capture_lex $P454
-    $P10 = rx447_cur."before"($P454)
-    unless $P10, rx447_fail
-    goto alt452_end
-  alt452_1:
+    rx452_cur."!cursor_pos"(rx452_pos)
+    .const 'Sub' $P459 = "129_1275811476.7961" 
+    capture_lex $P459
+    $P10 = rx452_cur."before"($P459)
+    unless $P10, rx452_fail
+    goto alt457_end
+  alt457_1:
   # rx subrule "assertion" subtype=capture negate=
-    rx447_cur."!cursor_pos"(rx447_pos)
-    $P10 = rx447_cur."assertion"()
-    unless $P10, rx447_fail
-    rx447_cur."!mark_push"(0, -1, 0, $P10)
+    rx452_cur."!cursor_pos"(rx452_pos)
+    $P10 = rx452_cur."assertion"()
+    unless $P10, rx452_fail
+    rx452_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx447_pos = $P10."pos"()
-  alt452_end:
+    rx452_pos = $P10."pos"()
+  alt457_end:
   # rx pass
-    rx447_cur."!cursor_pass"(rx447_pos, "assertion:sym<?>")
-    rx447_cur."!cursor_debug"("PASS  ", "assertion:sym<?>", " at pos=", rx447_pos)
-    .return (rx447_cur)
-  rx447_fail:
+    rx452_cur."!cursor_pass"(rx452_pos, "assertion:sym<?>")
+    rx452_cur."!cursor_debug"("PASS  ", "assertion:sym<?>", " at pos=", rx452_pos)
+    .return (rx452_cur)
+  rx452_fail:
 .annotate 'line', 3
-    (rx447_rep, rx447_pos, $I10, $P10) = rx447_cur."!mark_fail"(0)
-    lt rx447_pos, -1, rx447_done
-    eq rx447_pos, -1, rx447_fail
+    (rx452_rep, rx452_pos, $I10, $P10) = rx452_cur."!mark_fail"(0)
+    lt rx452_pos, -1, rx452_done
+    eq rx452_pos, -1, rx452_fail
     jump $I10
-  rx447_done:
-    rx447_cur."!cursor_fail"()
-    rx447_cur."!cursor_debug"("FAIL  ", "assertion:sym<?>")
-    .return (rx447_cur)
+  rx452_done:
+    rx452_cur."!cursor_fail"()
+    rx452_cur."!cursor_debug"("FAIL  ", "assertion:sym<?>")
+    .return (rx452_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>"  :subid("128_1274853027.61936") :method
+.sub "!PREFIX__assertion:sym<?>"  :subid("128_1275811476.7961") :method
 .annotate 'line', 3
-    $P449 = self."!PREFIX__!subrule"("assertion", "?")
-    new $P450, "ResizablePMCArray"
-    push $P450, $P449
-    push $P450, "?"
-    .return ($P450)
+    $P454 = self."!PREFIX__!subrule"("assertion", "?")
+    new $P455, "ResizablePMCArray"
+    push $P455, $P454
+    push $P455, "?"
+    .return ($P455)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block453"  :anon :subid("129_1274853027.61936") :method :outer("127_1274853027.61936")
+.sub "_block458"  :anon :subid("129_1275811476.7961") :method :outer("127_1275811476.7961")
 .annotate 'line', 140
-    .local string rx455_tgt
-    .local int rx455_pos
-    .local int rx455_off
-    .local int rx455_eos
-    .local int rx455_rep
-    .local pmc rx455_cur
-    (rx455_cur, rx455_pos, rx455_tgt) = self."!cursor_start"()
-    rx455_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx455_cur
-    .local pmc match
-    .lex "$/", match
-    length rx455_eos, rx455_tgt
-    set rx455_off, 0
-    lt rx455_pos, 2, rx455_start
-    sub rx455_off, rx455_pos, 1
-    substr rx455_tgt, rx455_tgt, rx455_off
-  rx455_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan456_done
-    goto rxscan456_scan
-  rxscan456_loop:
-    ($P10) = rx455_cur."from"()
-    inc $P10
-    set rx455_pos, $P10
-    ge rx455_pos, rx455_eos, rxscan456_done
-  rxscan456_scan:
-    set_addr $I10, rxscan456_loop
-    rx455_cur."!mark_push"(0, rx455_pos, $I10)
-  rxscan456_done:
+    .local string rx460_tgt
+    .local int rx460_pos
+    .local int rx460_off
+    .local int rx460_eos
+    .local int rx460_rep
+    .local pmc rx460_cur
+    (rx460_cur, rx460_pos, rx460_tgt) = self."!cursor_start"()
+    rx460_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx460_cur
+    .local pmc match
+    .lex "$/", match
+    length rx460_eos, rx460_tgt
+    gt rx460_pos, rx460_eos, rx460_done
+    set rx460_off, 0
+    lt rx460_pos, 2, rx460_start
+    sub rx460_off, rx460_pos, 1
+    substr rx460_tgt, rx460_tgt, rx460_off
+  rx460_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan461_done
+    goto rxscan461_scan
+  rxscan461_loop:
+    ($P10) = rx460_cur."from"()
+    inc $P10
+    set rx460_pos, $P10
+    ge rx460_pos, rx460_eos, rxscan461_done
+  rxscan461_scan:
+    set_addr $I10, rxscan461_loop
+    rx460_cur."!mark_push"(0, rx460_pos, $I10)
+  rxscan461_done:
   # rx literal  ">"
-    add $I11, rx455_pos, 1
-    gt $I11, rx455_eos, rx455_fail
-    sub $I11, rx455_pos, rx455_off
-    substr $S10, rx455_tgt, $I11, 1
-    ne $S10, ">", rx455_fail
-    add rx455_pos, 1
-  # rx pass
-    rx455_cur."!cursor_pass"(rx455_pos, "")
-    rx455_cur."!cursor_debug"("PASS  ", "", " at pos=", rx455_pos)
-    .return (rx455_cur)
-  rx455_fail:
-    (rx455_rep, rx455_pos, $I10, $P10) = rx455_cur."!mark_fail"(0)
-    lt rx455_pos, -1, rx455_done
-    eq rx455_pos, -1, rx455_fail
-    jump $I10
-  rx455_done:
-    rx455_cur."!cursor_fail"()
-    rx455_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx455_cur)
+    add $I11, rx460_pos, 1
+    gt $I11, rx460_eos, rx460_fail
+    sub $I11, rx460_pos, rx460_off
+    substr $S10, rx460_tgt, $I11, 1
+    ne $S10, ">", rx460_fail
+    add rx460_pos, 1
+  # rx pass
+    rx460_cur."!cursor_pass"(rx460_pos, "")
+    rx460_cur."!cursor_debug"("PASS  ", "", " at pos=", rx460_pos)
+    .return (rx460_cur)
+  rx460_fail:
+    (rx460_rep, rx460_pos, $I10, $P10) = rx460_cur."!mark_fail"(0)
+    lt rx460_pos, -1, rx460_done
+    eq rx460_pos, -1, rx460_fail
+    jump $I10
+  rx460_done:
+    rx460_cur."!cursor_fail"()
+    rx460_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx460_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>"  :subid("130_1274853027.61936") :method :outer("11_1274853027.61936")
-.annotate 'line', 3
-    .const 'Sub' $P465 = "132_1274853027.61936" 
-    capture_lex $P465
-    .local string rx458_tgt
-    .local int rx458_pos
-    .local int rx458_off
-    .local int rx458_eos
-    .local int rx458_rep
-    .local pmc rx458_cur
-    (rx458_cur, rx458_pos, rx458_tgt) = self."!cursor_start"()
-    rx458_cur."!cursor_debug"("START ", "assertion:sym<!>")
-    .lex unicode:"$\x{a2}", rx458_cur
-    .local pmc match
-    .lex "$/", match
-    length rx458_eos, rx458_tgt
-    set rx458_off, 0
-    lt rx458_pos, 2, rx458_start
-    sub rx458_off, rx458_pos, 1
-    substr rx458_tgt, rx458_tgt, rx458_off
-  rx458_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan462_done
-    goto rxscan462_scan
-  rxscan462_loop:
-    ($P10) = rx458_cur."from"()
-    inc $P10
-    set rx458_pos, $P10
-    ge rx458_pos, rx458_eos, rxscan462_done
-  rxscan462_scan:
-    set_addr $I10, rxscan462_loop
-    rx458_cur."!mark_push"(0, rx458_pos, $I10)
-  rxscan462_done:
+.sub "assertion:sym<!>"  :subid("130_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+    .const 'Sub' $P470 = "132_1275811476.7961" 
+    capture_lex $P470
+    .local string rx463_tgt
+    .local int rx463_pos
+    .local int rx463_off
+    .local int rx463_eos
+    .local int rx463_rep
+    .local pmc rx463_cur
+    (rx463_cur, rx463_pos, rx463_tgt) = self."!cursor_start"()
+    rx463_cur."!cursor_debug"("START ", "assertion:sym<!>")
+    .lex unicode:"$\x{a2}", rx463_cur
+    .local pmc match
+    .lex "$/", match
+    length rx463_eos, rx463_tgt
+    gt rx463_pos, rx463_eos, rx463_done
+    set rx463_off, 0
+    lt rx463_pos, 2, rx463_start
+    sub rx463_off, rx463_pos, 1
+    substr rx463_tgt, rx463_tgt, rx463_off
+  rx463_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan467_done
+    goto rxscan467_scan
+  rxscan467_loop:
+    ($P10) = rx463_cur."from"()
+    inc $P10
+    set rx463_pos, $P10
+    ge rx463_pos, rx463_eos, rxscan467_done
+  rxscan467_scan:
+    set_addr $I10, rxscan467_loop
+    rx463_cur."!mark_push"(0, rx463_pos, $I10)
+  rxscan467_done:
 .annotate 'line', 141
   # rx literal  "!"
-    add $I11, rx458_pos, 1
-    gt $I11, rx458_eos, rx458_fail
-    sub $I11, rx458_pos, rx458_off
-    substr $S10, rx458_tgt, $I11, 1
-    ne $S10, "!", rx458_fail
-    add rx458_pos, 1
-  alt463_0:
-    set_addr $I10, alt463_1
-    rx458_cur."!mark_push"(0, rx458_pos, $I10)
+    add $I11, rx463_pos, 1
+    gt $I11, rx463_eos, rx463_fail
+    sub $I11, rx463_pos, rx463_off
+    substr $S10, rx463_tgt, $I11, 1
+    ne $S10, "!", rx463_fail
+    add rx463_pos, 1
+  alt468_0:
+    set_addr $I10, alt468_1
+    rx463_cur."!mark_push"(0, rx463_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
-    rx458_cur."!cursor_pos"(rx458_pos)
-    .const 'Sub' $P465 = "132_1274853027.61936" 
-    capture_lex $P465
-    $P10 = rx458_cur."before"($P465)
-    unless $P10, rx458_fail
-    goto alt463_end
-  alt463_1:
+    rx463_cur."!cursor_pos"(rx463_pos)
+    .const 'Sub' $P470 = "132_1275811476.7961" 
+    capture_lex $P470
+    $P10 = rx463_cur."before"($P470)
+    unless $P10, rx463_fail
+    goto alt468_end
+  alt468_1:
   # rx subrule "assertion" subtype=capture negate=
-    rx458_cur."!cursor_pos"(rx458_pos)
-    $P10 = rx458_cur."assertion"()
-    unless $P10, rx458_fail
-    rx458_cur."!mark_push"(0, -1, 0, $P10)
+    rx463_cur."!cursor_pos"(rx463_pos)
+    $P10 = rx463_cur."assertion"()
+    unless $P10, rx463_fail
+    rx463_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx458_pos = $P10."pos"()
-  alt463_end:
+    rx463_pos = $P10."pos"()
+  alt468_end:
   # rx pass
-    rx458_cur."!cursor_pass"(rx458_pos, "assertion:sym<!>")
-    rx458_cur."!cursor_debug"("PASS  ", "assertion:sym<!>", " at pos=", rx458_pos)
-    .return (rx458_cur)
-  rx458_fail:
+    rx463_cur."!cursor_pass"(rx463_pos, "assertion:sym<!>")
+    rx463_cur."!cursor_debug"("PASS  ", "assertion:sym<!>", " at pos=", rx463_pos)
+    .return (rx463_cur)
+  rx463_fail:
 .annotate 'line', 3
-    (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0)
-    lt rx458_pos, -1, rx458_done
-    eq rx458_pos, -1, rx458_fail
+    (rx463_rep, rx463_pos, $I10, $P10) = rx463_cur."!mark_fail"(0)
+    lt rx463_pos, -1, rx463_done
+    eq rx463_pos, -1, rx463_fail
     jump $I10
-  rx458_done:
-    rx458_cur."!cursor_fail"()
-    rx458_cur."!cursor_debug"("FAIL  ", "assertion:sym<!>")
-    .return (rx458_cur)
+  rx463_done:
+    rx463_cur."!cursor_fail"()
+    rx463_cur."!cursor_debug"("FAIL  ", "assertion:sym<!>")
+    .return (rx463_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>"  :subid("131_1274853027.61936") :method
+.sub "!PREFIX__assertion:sym<!>"  :subid("131_1275811476.7961") :method
 .annotate 'line', 3
-    $P460 = self."!PREFIX__!subrule"("assertion", "!")
-    new $P461, "ResizablePMCArray"
-    push $P461, $P460
-    push $P461, "!"
-    .return ($P461)
+    $P465 = self."!PREFIX__!subrule"("assertion", "!")
+    new $P466, "ResizablePMCArray"
+    push $P466, $P465
+    push $P466, "!"
+    .return ($P466)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block464"  :anon :subid("132_1274853027.61936") :method :outer("130_1274853027.61936")
+.sub "_block469"  :anon :subid("132_1275811476.7961") :method :outer("130_1275811476.7961")
 .annotate 'line', 141
-    .local string rx466_tgt
-    .local int rx466_pos
-    .local int rx466_off
-    .local int rx466_eos
-    .local int rx466_rep
-    .local pmc rx466_cur
-    (rx466_cur, rx466_pos, rx466_tgt) = self."!cursor_start"()
-    rx466_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx466_cur
-    .local pmc match
-    .lex "$/", match
-    length rx466_eos, rx466_tgt
-    set rx466_off, 0
-    lt rx466_pos, 2, rx466_start
-    sub rx466_off, rx466_pos, 1
-    substr rx466_tgt, rx466_tgt, rx466_off
-  rx466_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan467_done
-    goto rxscan467_scan
-  rxscan467_loop:
-    ($P10) = rx466_cur."from"()
-    inc $P10
-    set rx466_pos, $P10
-    ge rx466_pos, rx466_eos, rxscan467_done
-  rxscan467_scan:
-    set_addr $I10, rxscan467_loop
-    rx466_cur."!mark_push"(0, rx466_pos, $I10)
-  rxscan467_done:
+    .local string rx471_tgt
+    .local int rx471_pos
+    .local int rx471_off
+    .local int rx471_eos
+    .local int rx471_rep
+    .local pmc rx471_cur
+    (rx471_cur, rx471_pos, rx471_tgt) = self."!cursor_start"()
+    rx471_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx471_cur
+    .local pmc match
+    .lex "$/", match
+    length rx471_eos, rx471_tgt
+    gt rx471_pos, rx471_eos, rx471_done
+    set rx471_off, 0
+    lt rx471_pos, 2, rx471_start
+    sub rx471_off, rx471_pos, 1
+    substr rx471_tgt, rx471_tgt, rx471_off
+  rx471_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan472_done
+    goto rxscan472_scan
+  rxscan472_loop:
+    ($P10) = rx471_cur."from"()
+    inc $P10
+    set rx471_pos, $P10
+    ge rx471_pos, rx471_eos, rxscan472_done
+  rxscan472_scan:
+    set_addr $I10, rxscan472_loop
+    rx471_cur."!mark_push"(0, rx471_pos, $I10)
+  rxscan472_done:
   # rx literal  ">"
-    add $I11, rx466_pos, 1
-    gt $I11, rx466_eos, rx466_fail
-    sub $I11, rx466_pos, rx466_off
-    substr $S10, rx466_tgt, $I11, 1
-    ne $S10, ">", rx466_fail
-    add rx466_pos, 1
-  # rx pass
-    rx466_cur."!cursor_pass"(rx466_pos, "")
-    rx466_cur."!cursor_debug"("PASS  ", "", " at pos=", rx466_pos)
-    .return (rx466_cur)
-  rx466_fail:
-    (rx466_rep, rx466_pos, $I10, $P10) = rx466_cur."!mark_fail"(0)
-    lt rx466_pos, -1, rx466_done
-    eq rx466_pos, -1, rx466_fail
-    jump $I10
-  rx466_done:
-    rx466_cur."!cursor_fail"()
-    rx466_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx466_cur)
+    add $I11, rx471_pos, 1
+    gt $I11, rx471_eos, rx471_fail
+    sub $I11, rx471_pos, rx471_off
+    substr $S10, rx471_tgt, $I11, 1
+    ne $S10, ">", rx471_fail
+    add rx471_pos, 1
+  # rx pass
+    rx471_cur."!cursor_pass"(rx471_pos, "")
+    rx471_cur."!cursor_debug"("PASS  ", "", " at pos=", rx471_pos)
+    .return (rx471_cur)
+  rx471_fail:
+    (rx471_rep, rx471_pos, $I10, $P10) = rx471_cur."!mark_fail"(0)
+    lt rx471_pos, -1, rx471_done
+    eq rx471_pos, -1, rx471_fail
+    jump $I10
+  rx471_done:
+    rx471_cur."!cursor_fail"()
+    rx471_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx471_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>"  :subid("133_1274853027.61936") :method :outer("11_1274853027.61936")
-.annotate 'line', 3
-    .local string rx469_tgt
-    .local int rx469_pos
-    .local int rx469_off
-    .local int rx469_eos
-    .local int rx469_rep
-    .local pmc rx469_cur
-    (rx469_cur, rx469_pos, rx469_tgt) = self."!cursor_start"()
-    rx469_cur."!cursor_debug"("START ", "assertion:sym<method>")
-    .lex unicode:"$\x{a2}", rx469_cur
-    .local pmc match
-    .lex "$/", match
-    length rx469_eos, rx469_tgt
-    set rx469_off, 0
-    lt rx469_pos, 2, rx469_start
-    sub rx469_off, rx469_pos, 1
-    substr rx469_tgt, rx469_tgt, rx469_off
-  rx469_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan473_done
-    goto rxscan473_scan
-  rxscan473_loop:
-    ($P10) = rx469_cur."from"()
-    inc $P10
-    set rx469_pos, $P10
-    ge rx469_pos, rx469_eos, rxscan473_done
-  rxscan473_scan:
-    set_addr $I10, rxscan473_loop
-    rx469_cur."!mark_push"(0, rx469_pos, $I10)
-  rxscan473_done:
+.sub "assertion:sym<method>"  :subid("133_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+    .local string rx474_tgt
+    .local int rx474_pos
+    .local int rx474_off
+    .local int rx474_eos
+    .local int rx474_rep
+    .local pmc rx474_cur
+    (rx474_cur, rx474_pos, rx474_tgt) = self."!cursor_start"()
+    rx474_cur."!cursor_debug"("START ", "assertion:sym<method>")
+    .lex unicode:"$\x{a2}", rx474_cur
+    .local pmc match
+    .lex "$/", match
+    length rx474_eos, rx474_tgt
+    gt rx474_pos, rx474_eos, rx474_done
+    set rx474_off, 0
+    lt rx474_pos, 2, rx474_start
+    sub rx474_off, rx474_pos, 1
+    substr rx474_tgt, rx474_tgt, rx474_off
+  rx474_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan478_done
+    goto rxscan478_scan
+  rxscan478_loop:
+    ($P10) = rx474_cur."from"()
+    inc $P10
+    set rx474_pos, $P10
+    ge rx474_pos, rx474_eos, rxscan478_done
+  rxscan478_scan:
+    set_addr $I10, rxscan478_loop
+    rx474_cur."!mark_push"(0, rx474_pos, $I10)
+  rxscan478_done:
 .annotate 'line', 144
   # rx literal  "."
-    add $I11, rx469_pos, 1
-    gt $I11, rx469_eos, rx469_fail
-    sub $I11, rx469_pos, rx469_off
-    substr $S10, rx469_tgt, $I11, 1
-    ne $S10, ".", rx469_fail
-    add rx469_pos, 1
+    add $I11, rx474_pos, 1
+    gt $I11, rx474_eos, rx474_fail
+    sub $I11, rx474_pos, rx474_off
+    substr $S10, rx474_tgt, $I11, 1
+    ne $S10, ".", rx474_fail
+    add rx474_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx469_cur."!cursor_pos"(rx469_pos)
-    $P10 = rx469_cur."assertion"()
-    unless $P10, rx469_fail
-    rx469_cur."!mark_push"(0, -1, 0, $P10)
+    rx474_cur."!cursor_pos"(rx474_pos)
+    $P10 = rx474_cur."assertion"()
+    unless $P10, rx474_fail
+    rx474_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx469_pos = $P10."pos"()
+    rx474_pos = $P10."pos"()
 .annotate 'line', 143
   # rx pass
-    rx469_cur."!cursor_pass"(rx469_pos, "assertion:sym<method>")
-    rx469_cur."!cursor_debug"("PASS  ", "assertion:sym<method>", " at pos=", rx469_pos)
-    .return (rx469_cur)
-  rx469_fail:
+    rx474_cur."!cursor_pass"(rx474_pos, "assertion:sym<method>")
+    rx474_cur."!cursor_debug"("PASS  ", "assertion:sym<method>", " at pos=", rx474_pos)
+    .return (rx474_cur)
+  rx474_fail:
 .annotate 'line', 3
-    (rx469_rep, rx469_pos, $I10, $P10) = rx469_cur."!mark_fail"(0)
-    lt rx469_pos, -1, rx469_done
-    eq rx469_pos, -1, rx469_fail
+    (rx474_rep, rx474_pos, $I10, $P10) = rx474_cur."!mark_fail"(0)
+    lt rx474_pos, -1, rx474_done
+    eq rx474_pos, -1, rx474_fail
     jump $I10
-  rx469_done:
-    rx469_cur."!cursor_fail"()
-    rx469_cur."!cursor_debug"("FAIL  ", "assertion:sym<method>")
-    .return (rx469_cur)
+  rx474_done:
+    rx474_cur."!cursor_fail"()
+    rx474_cur."!cursor_debug"("FAIL  ", "assertion:sym<method>")
+    .return (rx474_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>"  :subid("134_1274853027.61936") :method
+.sub "!PREFIX__assertion:sym<method>"  :subid("134_1275811476.7961") :method
 .annotate 'line', 3
-    $P471 = self."!PREFIX__!subrule"("assertion", ".")
-    new $P472, "ResizablePMCArray"
-    push $P472, $P471
-    .return ($P472)
+    $P476 = self."!PREFIX__!subrule"("assertion", ".")
+    new $P477, "ResizablePMCArray"
+    push $P477, $P476
+    .return ($P477)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>"  :subid("135_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "assertion:sym<name>"  :subid("135_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .const 'Sub' $P483 = "137_1274853027.61936" 
-    capture_lex $P483
-    .local string rx475_tgt
-    .local int rx475_pos
-    .local int rx475_off
-    .local int rx475_eos
-    .local int rx475_rep
-    .local pmc rx475_cur
-    (rx475_cur, rx475_pos, rx475_tgt) = self."!cursor_start"()
-    rx475_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx475_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
-    .lex unicode:"$\x{a2}", rx475_cur
-    .local pmc match
-    .lex "$/", match
-    length rx475_eos, rx475_tgt
-    set rx475_off, 0
-    lt rx475_pos, 2, rx475_start
-    sub rx475_off, rx475_pos, 1
-    substr rx475_tgt, rx475_tgt, rx475_off
-  rx475_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan478_done
-    goto rxscan478_scan
-  rxscan478_loop:
-    ($P10) = rx475_cur."from"()
-    inc $P10
-    set rx475_pos, $P10
-    ge rx475_pos, rx475_eos, rxscan478_done
-  rxscan478_scan:
-    set_addr $I10, rxscan478_loop
-    rx475_cur."!mark_push"(0, rx475_pos, $I10)
-  rxscan478_done:
+    .const 'Sub' $P488 = "137_1275811476.7961" 
+    capture_lex $P488
+    .local string rx480_tgt
+    .local int rx480_pos
+    .local int rx480_off
+    .local int rx480_eos
+    .local int rx480_rep
+    .local pmc rx480_cur
+    (rx480_cur, rx480_pos, rx480_tgt) = self."!cursor_start"()
+    rx480_cur."!cursor_debug"("START ", "assertion:sym<name>")
+    rx480_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    .lex unicode:"$\x{a2}", rx480_cur
+    .local pmc match
+    .lex "$/", match
+    length rx480_eos, rx480_tgt
+    gt rx480_pos, rx480_eos, rx480_done
+    set rx480_off, 0
+    lt rx480_pos, 2, rx480_start
+    sub rx480_off, rx480_pos, 1
+    substr rx480_tgt, rx480_tgt, rx480_off
+  rx480_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan483_done
+    goto rxscan483_scan
+  rxscan483_loop:
+    ($P10) = rx480_cur."from"()
+    inc $P10
+    set rx480_pos, $P10
+    ge rx480_pos, rx480_eos, rxscan483_done
+  rxscan483_scan:
+    set_addr $I10, rxscan483_loop
+    rx480_cur."!mark_push"(0, rx480_pos, $I10)
+  rxscan483_done:
 .annotate 'line', 148
   # rx subcapture "longname"
-    set_addr $I10, rxcap_479_fail
-    rx475_cur."!mark_push"(0, rx475_pos, $I10)
+    set_addr $I10, rxcap_484_fail
+    rx480_cur."!mark_push"(0, rx480_pos, $I10)
   # rx charclass_q w r 1..-1
-    sub $I10, rx475_pos, rx475_off
-    find_not_cclass $I11, 8192, rx475_tgt, $I10, rx475_eos
+    sub $I10, rx480_pos, rx480_off
+    find_not_cclass $I11, 8192, rx480_tgt, $I10, rx480_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx475_fail
-    add rx475_pos, rx475_off, $I11
-    set_addr $I10, rxcap_479_fail
-    ($I12, $I11) = rx475_cur."!mark_peek"($I10)
-    rx475_cur."!cursor_pos"($I11)
-    ($P10) = rx475_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx475_pos, "")
-    rx475_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx480_fail
+    add rx480_pos, rx480_off, $I11
+    set_addr $I10, rxcap_484_fail
+    ($I12, $I11) = rx480_cur."!mark_peek"($I10)
+    rx480_cur."!cursor_pos"($I11)
+    ($P10) = rx480_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx480_pos, "")
+    rx480_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("longname")
-    goto rxcap_479_done
-  rxcap_479_fail:
-    goto rx475_fail
-  rxcap_479_done:
+    goto rxcap_484_done
+  rxcap_484_fail:
+    goto rx480_fail
+  rxcap_484_done:
 .annotate 'line', 155
-  # rx rxquantr480 ** 0..1
-    set_addr $I486, rxquantr480_done
-    rx475_cur."!mark_push"(0, rx475_pos, $I486)
-  rxquantr480_loop:
-  alt481_0:
+  # rx rxquantr485 ** 0..1
+    set_addr $I491, rxquantr485_done
+    rx480_cur."!mark_push"(0, rx480_pos, $I491)
+  rxquantr485_loop:
+  alt486_0:
 .annotate 'line', 149
-    set_addr $I10, alt481_1
-    rx475_cur."!mark_push"(0, rx475_pos, $I10)
+    set_addr $I10, alt486_1
+    rx480_cur."!mark_push"(0, rx480_pos, $I10)
 .annotate 'line', 150
   # rx subrule "before" subtype=zerowidth negate=
-    rx475_cur."!cursor_pos"(rx475_pos)
-    .const 'Sub' $P483 = "137_1274853027.61936" 
-    capture_lex $P483
-    $P10 = rx475_cur."before"($P483)
-    unless $P10, rx475_fail
-    goto alt481_end
-  alt481_1:
-    set_addr $I10, alt481_2
-    rx475_cur."!mark_push"(0, rx475_pos, $I10)
+    rx480_cur."!cursor_pos"(rx480_pos)
+    .const 'Sub' $P488 = "137_1275811476.7961" 
+    capture_lex $P488
+    $P10 = rx480_cur."before"($P488)
+    unless $P10, rx480_fail
+    goto alt486_end
+  alt486_1:
+    set_addr $I10, alt486_2
+    rx480_cur."!mark_push"(0, rx480_pos, $I10)
 .annotate 'line', 151
   # rx literal  "="
-    add $I11, rx475_pos, 1
-    gt $I11, rx475_eos, rx475_fail
-    sub $I11, rx475_pos, rx475_off
-    substr $S10, rx475_tgt, $I11, 1
-    ne $S10, "=", rx475_fail
-    add rx475_pos, 1
+    add $I11, rx480_pos, 1
+    gt $I11, rx480_eos, rx480_fail
+    sub $I11, rx480_pos, rx480_off
+    substr $S10, rx480_tgt, $I11, 1
+    ne $S10, "=", rx480_fail
+    add rx480_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx475_cur."!cursor_pos"(rx475_pos)
-    $P10 = rx475_cur."assertion"()
-    unless $P10, rx475_fail
-    rx475_cur."!mark_push"(0, -1, 0, $P10)
+    rx480_cur."!cursor_pos"(rx480_pos)
+    $P10 = rx480_cur."assertion"()
+    unless $P10, rx480_fail
+    rx480_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx475_pos = $P10."pos"()
-    goto alt481_end
-  alt481_2:
-    set_addr $I10, alt481_3
-    rx475_cur."!mark_push"(0, rx475_pos, $I10)
+    rx480_pos = $P10."pos"()
+    goto alt486_end
+  alt486_2:
+    set_addr $I10, alt486_3
+    rx480_cur."!mark_push"(0, rx480_pos, $I10)
 .annotate 'line', 152
   # rx literal  ":"
-    add $I11, rx475_pos, 1
-    gt $I11, rx475_eos, rx475_fail
-    sub $I11, rx475_pos, rx475_off
-    substr $S10, rx475_tgt, $I11, 1
-    ne $S10, ":", rx475_fail
-    add rx475_pos, 1
+    add $I11, rx480_pos, 1
+    gt $I11, rx480_eos, rx480_fail
+    sub $I11, rx480_pos, rx480_off
+    substr $S10, rx480_tgt, $I11, 1
+    ne $S10, ":", rx480_fail
+    add rx480_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx475_cur."!cursor_pos"(rx475_pos)
-    $P10 = rx475_cur."arglist"()
-    unless $P10, rx475_fail
-    rx475_cur."!mark_push"(0, -1, 0, $P10)
+    rx480_cur."!cursor_pos"(rx480_pos)
+    $P10 = rx480_cur."arglist"()
+    unless $P10, rx480_fail
+    rx480_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx475_pos = $P10."pos"()
-    goto alt481_end
-  alt481_3:
-    set_addr $I10, alt481_4
-    rx475_cur."!mark_push"(0, rx475_pos, $I10)
+    rx480_pos = $P10."pos"()
+    goto alt486_end
+  alt486_3:
+    set_addr $I10, alt486_4
+    rx480_cur."!mark_push"(0, rx480_pos, $I10)
 .annotate 'line', 153
   # rx literal  "("
-    add $I11, rx475_pos, 1
-    gt $I11, rx475_eos, rx475_fail
-    sub $I11, rx475_pos, rx475_off
-    substr $S10, rx475_tgt, $I11, 1
-    ne $S10, "(", rx475_fail
-    add rx475_pos, 1
+    add $I11, rx480_pos, 1
+    gt $I11, rx480_eos, rx480_fail
+    sub $I11, rx480_pos, rx480_off
+    substr $S10, rx480_tgt, $I11, 1
+    ne $S10, "(", rx480_fail
+    add rx480_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx475_cur."!cursor_pos"(rx475_pos)
-    $P10 = rx475_cur."arglist"()
-    unless $P10, rx475_fail
-    rx475_cur."!mark_push"(0, -1, 0, $P10)
+    rx480_cur."!cursor_pos"(rx480_pos)
+    $P10 = rx480_cur."arglist"()
+    unless $P10, rx480_fail
+    rx480_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx475_pos = $P10."pos"()
+    rx480_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx475_pos, 1
-    gt $I11, rx475_eos, rx475_fail
-    sub $I11, rx475_pos, rx475_off
-    substr $S10, rx475_tgt, $I11, 1
-    ne $S10, ")", rx475_fail
-    add rx475_pos, 1
-    goto alt481_end
-  alt481_4:
+    add $I11, rx480_pos, 1
+    gt $I11, rx480_eos, rx480_fail
+    sub $I11, rx480_pos, rx480_off
+    substr $S10, rx480_tgt, $I11, 1
+    ne $S10, ")", rx480_fail
+    add rx480_pos, 1
+    goto alt486_end
+  alt486_4:
 .annotate 'line', 154
   # rx subrule "normspace" subtype=method negate=
-    rx475_cur."!cursor_pos"(rx475_pos)
-    $P10 = rx475_cur."normspace"()
-    unless $P10, rx475_fail
-    rx475_pos = $P10."pos"()
+    rx480_cur."!cursor_pos"(rx480_pos)
+    $P10 = rx480_cur."normspace"()
+    unless $P10, rx480_fail
+    rx480_pos = $P10."pos"()
   # rx subrule "nibbler" subtype=capture negate=
-    rx475_cur."!cursor_pos"(rx475_pos)
-    $P10 = rx475_cur."nibbler"()
-    unless $P10, rx475_fail
-    rx475_cur."!mark_push"(0, -1, 0, $P10)
+    rx480_cur."!cursor_pos"(rx480_pos)
+    $P10 = rx480_cur."nibbler"()
+    unless $P10, rx480_fail
+    rx480_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx475_pos = $P10."pos"()
-  alt481_end:
+    rx480_pos = $P10."pos"()
+  alt486_end:
 .annotate 'line', 155
-    (rx475_rep) = rx475_cur."!mark_commit"($I486)
-  rxquantr480_done:
+    (rx480_rep) = rx480_cur."!mark_commit"($I491)
+  rxquantr485_done:
 .annotate 'line', 147
   # rx pass
-    rx475_cur."!cursor_pass"(rx475_pos, "assertion:sym<name>")
-    rx475_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx475_pos)
-    .return (rx475_cur)
-  rx475_fail:
+    rx480_cur."!cursor_pass"(rx480_pos, "assertion:sym<name>")
+    rx480_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx480_pos)
+    .return (rx480_cur)
+  rx480_fail:
 .annotate 'line', 3
-    (rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0)
-    lt rx475_pos, -1, rx475_done
-    eq rx475_pos, -1, rx475_fail
+    (rx480_rep, rx480_pos, $I10, $P10) = rx480_cur."!mark_fail"(0)
+    lt rx480_pos, -1, rx480_done
+    eq rx480_pos, -1, rx480_fail
     jump $I10
-  rx475_done:
-    rx475_cur."!cursor_fail"()
-    rx475_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
-    .return (rx475_cur)
+  rx480_done:
+    rx480_cur."!cursor_fail"()
+    rx480_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+    .return (rx480_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("136_1274853027.61936") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("136_1275811476.7961") :method
 .annotate 'line', 3
-    new $P477, "ResizablePMCArray"
-    push $P477, ""
-    .return ($P477)
+    new $P482, "ResizablePMCArray"
+    push $P482, ""
+    .return ($P482)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block482"  :anon :subid("137_1274853027.61936") :method :outer("135_1274853027.61936")
+.sub "_block487"  :anon :subid("137_1275811476.7961") :method :outer("135_1275811476.7961")
 .annotate 'line', 150
-    .local string rx484_tgt
-    .local int rx484_pos
-    .local int rx484_off
-    .local int rx484_eos
-    .local int rx484_rep
-    .local pmc rx484_cur
-    (rx484_cur, rx484_pos, rx484_tgt) = self."!cursor_start"()
-    rx484_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx484_cur
-    .local pmc match
-    .lex "$/", match
-    length rx484_eos, rx484_tgt
-    set rx484_off, 0
-    lt rx484_pos, 2, rx484_start
-    sub rx484_off, rx484_pos, 1
-    substr rx484_tgt, rx484_tgt, rx484_off
-  rx484_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan485_done
-    goto rxscan485_scan
-  rxscan485_loop:
-    ($P10) = rx484_cur."from"()
-    inc $P10
-    set rx484_pos, $P10
-    ge rx484_pos, rx484_eos, rxscan485_done
-  rxscan485_scan:
-    set_addr $I10, rxscan485_loop
-    rx484_cur."!mark_push"(0, rx484_pos, $I10)
-  rxscan485_done:
+    .local string rx489_tgt
+    .local int rx489_pos
+    .local int rx489_off
+    .local int rx489_eos
+    .local int rx489_rep
+    .local pmc rx489_cur
+    (rx489_cur, rx489_pos, rx489_tgt) = self."!cursor_start"()
+    rx489_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx489_cur
+    .local pmc match
+    .lex "$/", match
+    length rx489_eos, rx489_tgt
+    gt rx489_pos, rx489_eos, rx489_done
+    set rx489_off, 0
+    lt rx489_pos, 2, rx489_start
+    sub rx489_off, rx489_pos, 1
+    substr rx489_tgt, rx489_tgt, rx489_off
+  rx489_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan490_done
+    goto rxscan490_scan
+  rxscan490_loop:
+    ($P10) = rx489_cur."from"()
+    inc $P10
+    set rx489_pos, $P10
+    ge rx489_pos, rx489_eos, rxscan490_done
+  rxscan490_scan:
+    set_addr $I10, rxscan490_loop
+    rx489_cur."!mark_push"(0, rx489_pos, $I10)
+  rxscan490_done:
   # rx literal  ">"
-    add $I11, rx484_pos, 1
-    gt $I11, rx484_eos, rx484_fail
-    sub $I11, rx484_pos, rx484_off
-    substr $S10, rx484_tgt, $I11, 1
-    ne $S10, ">", rx484_fail
-    add rx484_pos, 1
-  # rx pass
-    rx484_cur."!cursor_pass"(rx484_pos, "")
-    rx484_cur."!cursor_debug"("PASS  ", "", " at pos=", rx484_pos)
-    .return (rx484_cur)
-  rx484_fail:
-    (rx484_rep, rx484_pos, $I10, $P10) = rx484_cur."!mark_fail"(0)
-    lt rx484_pos, -1, rx484_done
-    eq rx484_pos, -1, rx484_fail
-    jump $I10
-  rx484_done:
-    rx484_cur."!cursor_fail"()
-    rx484_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx484_cur)
+    add $I11, rx489_pos, 1
+    gt $I11, rx489_eos, rx489_fail
+    sub $I11, rx489_pos, rx489_off
+    substr $S10, rx489_tgt, $I11, 1
+    ne $S10, ">", rx489_fail
+    add rx489_pos, 1
+  # rx pass
+    rx489_cur."!cursor_pass"(rx489_pos, "")
+    rx489_cur."!cursor_debug"("PASS  ", "", " at pos=", rx489_pos)
+    .return (rx489_cur)
+  rx489_fail:
+    (rx489_rep, rx489_pos, $I10, $P10) = rx489_cur."!mark_fail"(0)
+    lt rx489_pos, -1, rx489_done
+    eq rx489_pos, -1, rx489_fail
+    jump $I10
+  rx489_done:
+    rx489_cur."!cursor_fail"()
+    rx489_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx489_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>"  :subid("138_1274853027.61936") :method :outer("11_1274853027.61936")
-.annotate 'line', 3
-    .const 'Sub' $P493 = "140_1274853027.61936" 
-    capture_lex $P493
-    .local string rx488_tgt
-    .local int rx488_pos
-    .local int rx488_off
-    .local int rx488_eos
-    .local int rx488_rep
-    .local pmc rx488_cur
-    (rx488_cur, rx488_pos, rx488_tgt) = self."!cursor_start"()
-    rx488_cur."!cursor_debug"("START ", "assertion:sym<[>")
-    rx488_cur."!cursor_caparray"("cclass_elem")
-    .lex unicode:"$\x{a2}", rx488_cur
-    .local pmc match
-    .lex "$/", match
-    length rx488_eos, rx488_tgt
-    set rx488_off, 0
-    lt rx488_pos, 2, rx488_start
-    sub rx488_off, rx488_pos, 1
-    substr rx488_tgt, rx488_tgt, rx488_off
-  rx488_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan491_done
-    goto rxscan491_scan
-  rxscan491_loop:
-    ($P10) = rx488_cur."from"()
-    inc $P10
-    set rx488_pos, $P10
-    ge rx488_pos, rx488_eos, rxscan491_done
-  rxscan491_scan:
-    set_addr $I10, rxscan491_loop
-    rx488_cur."!mark_push"(0, rx488_pos, $I10)
-  rxscan491_done:
+.sub "assertion:sym<[>"  :subid("138_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+    .const 'Sub' $P498 = "140_1275811476.7961" 
+    capture_lex $P498
+    .local string rx493_tgt
+    .local int rx493_pos
+    .local int rx493_off
+    .local int rx493_eos
+    .local int rx493_rep
+    .local pmc rx493_cur
+    (rx493_cur, rx493_pos, rx493_tgt) = self."!cursor_start"()
+    rx493_cur."!cursor_debug"("START ", "assertion:sym<[>")
+    rx493_cur."!cursor_caparray"("cclass_elem")
+    .lex unicode:"$\x{a2}", rx493_cur
+    .local pmc match
+    .lex "$/", match
+    length rx493_eos, rx493_tgt
+    gt rx493_pos, rx493_eos, rx493_done
+    set rx493_off, 0
+    lt rx493_pos, 2, rx493_start
+    sub rx493_off, rx493_pos, 1
+    substr rx493_tgt, rx493_tgt, rx493_off
+  rx493_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan496_done
+    goto rxscan496_scan
+  rxscan496_loop:
+    ($P10) = rx493_cur."from"()
+    inc $P10
+    set rx493_pos, $P10
+    ge rx493_pos, rx493_eos, rxscan496_done
+  rxscan496_scan:
+    set_addr $I10, rxscan496_loop
+    rx493_cur."!mark_push"(0, rx493_pos, $I10)
+  rxscan496_done:
 .annotate 'line', 158
   # rx subrule "before" subtype=zerowidth negate=
-    rx488_cur."!cursor_pos"(rx488_pos)
-    .const 'Sub' $P493 = "140_1274853027.61936" 
-    capture_lex $P493
-    $P10 = rx488_cur."before"($P493)
-    unless $P10, rx488_fail
-  # rx rxquantr497 ** 1..*
-    set_addr $I498, rxquantr497_done
-    rx488_cur."!mark_push"(0, -1, $I498)
-  rxquantr497_loop:
+    rx493_cur."!cursor_pos"(rx493_pos)
+    .const 'Sub' $P498 = "140_1275811476.7961" 
+    capture_lex $P498
+    $P10 = rx493_cur."before"($P498)
+    unless $P10, rx493_fail
+  # rx rxquantr502 ** 1..*
+    set_addr $I503, rxquantr502_done
+    rx493_cur."!mark_push"(0, -1, $I503)
+  rxquantr502_loop:
   # rx subrule "cclass_elem" subtype=capture negate=
-    rx488_cur."!cursor_pos"(rx488_pos)
-    $P10 = rx488_cur."cclass_elem"()
-    unless $P10, rx488_fail
-    rx488_cur."!mark_push"(0, -1, 0, $P10)
+    rx493_cur."!cursor_pos"(rx493_pos)
+    $P10 = rx493_cur."cclass_elem"()
+    unless $P10, rx493_fail
+    rx493_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cclass_elem")
-    rx488_pos = $P10."pos"()
-    (rx488_rep) = rx488_cur."!mark_commit"($I498)
-    rx488_cur."!mark_push"(rx488_rep, rx488_pos, $I498)
-    goto rxquantr497_loop
-  rxquantr497_done:
+    rx493_pos = $P10."pos"()
+    (rx493_rep) = rx493_cur."!mark_commit"($I503)
+    rx493_cur."!mark_push"(rx493_rep, rx493_pos, $I503)
+    goto rxquantr502_loop
+  rxquantr502_done:
   # rx pass
-    rx488_cur."!cursor_pass"(rx488_pos, "assertion:sym<[>")
-    rx488_cur."!cursor_debug"("PASS  ", "assertion:sym<[>", " at pos=", rx488_pos)
-    .return (rx488_cur)
-  rx488_fail:
+    rx493_cur."!cursor_pass"(rx493_pos, "assertion:sym<[>")
+    rx493_cur."!cursor_debug"("PASS  ", "assertion:sym<[>", " at pos=", rx493_pos)
+    .return (rx493_cur)
+  rx493_fail:
 .annotate 'line', 3
-    (rx488_rep, rx488_pos, $I10, $P10) = rx488_cur."!mark_fail"(0)
-    lt rx488_pos, -1, rx488_done
-    eq rx488_pos, -1, rx488_fail
+    (rx493_rep, rx493_pos, $I10, $P10) = rx493_cur."!mark_fail"(0)
+    lt rx493_pos, -1, rx493_done
+    eq rx493_pos, -1, rx493_fail
     jump $I10
-  rx488_done:
-    rx488_cur."!cursor_fail"()
-    rx488_cur."!cursor_debug"("FAIL  ", "assertion:sym<[>")
-    .return (rx488_cur)
+  rx493_done:
+    rx493_cur."!cursor_fail"()
+    rx493_cur."!cursor_debug"("FAIL  ", "assertion:sym<[>")
+    .return (rx493_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>"  :subid("139_1274853027.61936") :method
+.sub "!PREFIX__assertion:sym<[>"  :subid("139_1275811476.7961") :method
 .annotate 'line', 3
-    new $P490, "ResizablePMCArray"
-    push $P490, ""
-    .return ($P490)
+    new $P495, "ResizablePMCArray"
+    push $P495, ""
+    .return ($P495)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block492"  :anon :subid("140_1274853027.61936") :method :outer("138_1274853027.61936")
+.sub "_block497"  :anon :subid("140_1275811476.7961") :method :outer("138_1275811476.7961")
 .annotate 'line', 158
-    .local string rx494_tgt
-    .local int rx494_pos
-    .local int rx494_off
-    .local int rx494_eos
-    .local int rx494_rep
-    .local pmc rx494_cur
-    (rx494_cur, rx494_pos, rx494_tgt) = self."!cursor_start"()
-    rx494_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx494_cur
-    .local pmc match
-    .lex "$/", match
-    length rx494_eos, rx494_tgt
-    set rx494_off, 0
-    lt rx494_pos, 2, rx494_start
-    sub rx494_off, rx494_pos, 1
-    substr rx494_tgt, rx494_tgt, rx494_off
-  rx494_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan495_done
-    goto rxscan495_scan
-  rxscan495_loop:
-    ($P10) = rx494_cur."from"()
-    inc $P10
-    set rx494_pos, $P10
-    ge rx494_pos, rx494_eos, rxscan495_done
-  rxscan495_scan:
-    set_addr $I10, rxscan495_loop
-    rx494_cur."!mark_push"(0, rx494_pos, $I10)
-  rxscan495_done:
-  alt496_0:
-    set_addr $I10, alt496_1
-    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+    .local string rx499_tgt
+    .local int rx499_pos
+    .local int rx499_off
+    .local int rx499_eos
+    .local int rx499_rep
+    .local pmc rx499_cur
+    (rx499_cur, rx499_pos, rx499_tgt) = self."!cursor_start"()
+    rx499_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx499_cur
+    .local pmc match
+    .lex "$/", match
+    length rx499_eos, rx499_tgt
+    gt rx499_pos, rx499_eos, rx499_done
+    set rx499_off, 0
+    lt rx499_pos, 2, rx499_start
+    sub rx499_off, rx499_pos, 1
+    substr rx499_tgt, rx499_tgt, rx499_off
+  rx499_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan500_done
+    goto rxscan500_scan
+  rxscan500_loop:
+    ($P10) = rx499_cur."from"()
+    inc $P10
+    set rx499_pos, $P10
+    ge rx499_pos, rx499_eos, rxscan500_done
+  rxscan500_scan:
+    set_addr $I10, rxscan500_loop
+    rx499_cur."!mark_push"(0, rx499_pos, $I10)
+  rxscan500_done:
+  alt501_0:
+    set_addr $I10, alt501_1
+    rx499_cur."!mark_push"(0, rx499_pos, $I10)
   # rx literal  "["
-    add $I11, rx494_pos, 1
-    gt $I11, rx494_eos, rx494_fail
-    sub $I11, rx494_pos, rx494_off
-    substr $S10, rx494_tgt, $I11, 1
-    ne $S10, "[", rx494_fail
-    add rx494_pos, 1
-    goto alt496_end
-  alt496_1:
-    set_addr $I10, alt496_2
-    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+    add $I11, rx499_pos, 1
+    gt $I11, rx499_eos, rx499_fail
+    sub $I11, rx499_pos, rx499_off
+    substr $S10, rx499_tgt, $I11, 1
+    ne $S10, "[", rx499_fail
+    add rx499_pos, 1
+    goto alt501_end
+  alt501_1:
+    set_addr $I10, alt501_2
+    rx499_cur."!mark_push"(0, rx499_pos, $I10)
   # rx literal  "+"
-    add $I11, rx494_pos, 1
-    gt $I11, rx494_eos, rx494_fail
-    sub $I11, rx494_pos, rx494_off
-    substr $S10, rx494_tgt, $I11, 1
-    ne $S10, "+", rx494_fail
-    add rx494_pos, 1
-    goto alt496_end
-  alt496_2:
+    add $I11, rx499_pos, 1
+    gt $I11, rx499_eos, rx499_fail
+    sub $I11, rx499_pos, rx499_off
+    substr $S10, rx499_tgt, $I11, 1
+    ne $S10, "+", rx499_fail
+    add rx499_pos, 1
+    goto alt501_end
+  alt501_2:
   # rx literal  "-"
-    add $I11, rx494_pos, 1
-    gt $I11, rx494_eos, rx494_fail
-    sub $I11, rx494_pos, rx494_off
-    substr $S10, rx494_tgt, $I11, 1
-    ne $S10, "-", rx494_fail
-    add rx494_pos, 1
-  alt496_end:
-  # rx pass
-    rx494_cur."!cursor_pass"(rx494_pos, "")
-    rx494_cur."!cursor_debug"("PASS  ", "", " at pos=", rx494_pos)
-    .return (rx494_cur)
-  rx494_fail:
-    (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
-    lt rx494_pos, -1, rx494_done
-    eq rx494_pos, -1, rx494_fail
-    jump $I10
-  rx494_done:
-    rx494_cur."!cursor_fail"()
-    rx494_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx494_cur)
+    add $I11, rx499_pos, 1
+    gt $I11, rx499_eos, rx499_fail
+    sub $I11, rx499_pos, rx499_off
+    substr $S10, rx499_tgt, $I11, 1
+    ne $S10, "-", rx499_fail
+    add rx499_pos, 1
+  alt501_end:
+  # rx pass
+    rx499_cur."!cursor_pass"(rx499_pos, "")
+    rx499_cur."!cursor_debug"("PASS  ", "", " at pos=", rx499_pos)
+    .return (rx499_cur)
+  rx499_fail:
+    (rx499_rep, rx499_pos, $I10, $P10) = rx499_cur."!mark_fail"(0)
+    lt rx499_pos, -1, rx499_done
+    eq rx499_pos, -1, rx499_fail
+    jump $I10
+  rx499_done:
+    rx499_cur."!cursor_fail"()
+    rx499_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx499_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem"  :subid("141_1274853027.61936") :method :outer("11_1274853027.61936")
-.annotate 'line', 3
-    .const 'Sub' $P511 = "143_1274853027.61936" 
-    capture_lex $P511
-    .local string rx500_tgt
-    .local int rx500_pos
-    .local int rx500_off
-    .local int rx500_eos
-    .local int rx500_rep
-    .local pmc rx500_cur
-    (rx500_cur, rx500_pos, rx500_tgt) = self."!cursor_start"()
-    rx500_cur."!cursor_debug"("START ", "cclass_elem")
-    rx500_cur."!cursor_caparray"("charspec")
-    .lex unicode:"$\x{a2}", rx500_cur
-    .local pmc match
-    .lex "$/", match
-    length rx500_eos, rx500_tgt
-    set rx500_off, 0
-    lt rx500_pos, 2, rx500_start
-    sub rx500_off, rx500_pos, 1
-    substr rx500_tgt, rx500_tgt, rx500_off
-  rx500_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan503_done
-    goto rxscan503_scan
-  rxscan503_loop:
-    ($P10) = rx500_cur."from"()
-    inc $P10
-    set rx500_pos, $P10
-    ge rx500_pos, rx500_eos, rxscan503_done
-  rxscan503_scan:
-    set_addr $I10, rxscan503_loop
-    rx500_cur."!mark_push"(0, rx500_pos, $I10)
-  rxscan503_done:
+.sub "cclass_elem"  :subid("141_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+    .const 'Sub' $P516 = "143_1275811476.7961" 
+    capture_lex $P516
+    .local string rx505_tgt
+    .local int rx505_pos
+    .local int rx505_off
+    .local int rx505_eos
+    .local int rx505_rep
+    .local pmc rx505_cur
+    (rx505_cur, rx505_pos, rx505_tgt) = self."!cursor_start"()
+    rx505_cur."!cursor_debug"("START ", "cclass_elem")
+    rx505_cur."!cursor_caparray"("charspec")
+    .lex unicode:"$\x{a2}", rx505_cur
+    .local pmc match
+    .lex "$/", match
+    length rx505_eos, rx505_tgt
+    gt rx505_pos, rx505_eos, rx505_done
+    set rx505_off, 0
+    lt rx505_pos, 2, rx505_start
+    sub rx505_off, rx505_pos, 1
+    substr rx505_tgt, rx505_tgt, rx505_off
+  rx505_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan508_done
+    goto rxscan508_scan
+  rxscan508_loop:
+    ($P10) = rx505_cur."from"()
+    inc $P10
+    set rx505_pos, $P10
+    ge rx505_pos, rx505_eos, rxscan508_done
+  rxscan508_scan:
+    set_addr $I10, rxscan508_loop
+    rx505_cur."!mark_push"(0, rx505_pos, $I10)
+  rxscan508_done:
 .annotate 'line', 161
   # rx subcapture "sign"
-    set_addr $I10, rxcap_505_fail
-    rx500_cur."!mark_push"(0, rx500_pos, $I10)
-  alt504_0:
-    set_addr $I10, alt504_1
-    rx500_cur."!mark_push"(0, rx500_pos, $I10)
+    set_addr $I10, rxcap_510_fail
+    rx505_cur."!mark_push"(0, rx505_pos, $I10)
+  alt509_0:
+    set_addr $I10, alt509_1
+    rx505_cur."!mark_push"(0, rx505_pos, $I10)
   # rx literal  "+"
-    add $I11, rx500_pos, 1
-    gt $I11, rx500_eos, rx500_fail
-    sub $I11, rx500_pos, rx500_off
-    substr $S10, rx500_tgt, $I11, 1
-    ne $S10, "+", rx500_fail
-    add rx500_pos, 1
-    goto alt504_end
-  alt504_1:
-    set_addr $I10, alt504_2
-    rx500_cur."!mark_push"(0, rx500_pos, $I10)
+    add $I11, rx505_pos, 1
+    gt $I11, rx505_eos, rx505_fail
+    sub $I11, rx505_pos, rx505_off
+    substr $S10, rx505_tgt, $I11, 1
+    ne $S10, "+", rx505_fail
+    add rx505_pos, 1
+    goto alt509_end
+  alt509_1:
+    set_addr $I10, alt509_2
+    rx505_cur."!mark_push"(0, rx505_pos, $I10)
   # rx literal  "-"
-    add $I11, rx500_pos, 1
-    gt $I11, rx500_eos, rx500_fail
-    sub $I11, rx500_pos, rx500_off
-    substr $S10, rx500_tgt, $I11, 1
-    ne $S10, "-", rx500_fail
-    add rx500_pos, 1
-    goto alt504_end
-  alt504_2:
-  alt504_end:
-    set_addr $I10, rxcap_505_fail
-    ($I12, $I11) = rx500_cur."!mark_peek"($I10)
-    rx500_cur."!cursor_pos"($I11)
-    ($P10) = rx500_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx500_pos, "")
-    rx500_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx505_pos, 1
+    gt $I11, rx505_eos, rx505_fail
+    sub $I11, rx505_pos, rx505_off
+    substr $S10, rx505_tgt, $I11, 1
+    ne $S10, "-", rx505_fail
+    add rx505_pos, 1
+    goto alt509_end
+  alt509_2:
+  alt509_end:
+    set_addr $I10, rxcap_510_fail
+    ($I12, $I11) = rx505_cur."!mark_peek"($I10)
+    rx505_cur."!cursor_pos"($I11)
+    ($P10) = rx505_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx505_pos, "")
+    rx505_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sign")
-    goto rxcap_505_done
-  rxcap_505_fail:
-    goto rx500_fail
-  rxcap_505_done:
+    goto rxcap_510_done
+  rxcap_510_fail:
+    goto rx505_fail
+  rxcap_510_done:
 .annotate 'line', 162
-  # rx rxquantr506 ** 0..1
-    set_addr $I507, rxquantr506_done
-    rx500_cur."!mark_push"(0, rx500_pos, $I507)
-  rxquantr506_loop:
+  # rx rxquantr511 ** 0..1
+    set_addr $I512, rxquantr511_done
+    rx505_cur."!mark_push"(0, rx505_pos, $I512)
+  rxquantr511_loop:
   # rx subrule "normspace" subtype=method negate=
-    rx500_cur."!cursor_pos"(rx500_pos)
-    $P10 = rx500_cur."normspace"()
-    unless $P10, rx500_fail
-    rx500_pos = $P10."pos"()
-    (rx500_rep) = rx500_cur."!mark_commit"($I507)
-  rxquantr506_done:
-  alt508_0:
+    rx505_cur."!cursor_pos"(rx505_pos)
+    $P10 = rx505_cur."normspace"()
+    unless $P10, rx505_fail
+    rx505_pos = $P10."pos"()
+    (rx505_rep) = rx505_cur."!mark_commit"($I512)
+  rxquantr511_done:
+  alt513_0:
 .annotate 'line', 163
-    set_addr $I10, alt508_1
-    rx500_cur."!mark_push"(0, rx500_pos, $I10)
+    set_addr $I10, alt513_1
+    rx505_cur."!mark_push"(0, rx505_pos, $I10)
 .annotate 'line', 164
   # rx literal  "["
-    add $I11, rx500_pos, 1
-    gt $I11, rx500_eos, rx500_fail
-    sub $I11, rx500_pos, rx500_off
-    substr $S10, rx500_tgt, $I11, 1
-    ne $S10, "[", rx500_fail
-    add rx500_pos, 1
+    add $I11, rx505_pos, 1
+    gt $I11, rx505_eos, rx505_fail
+    sub $I11, rx505_pos, rx505_off
+    substr $S10, rx505_tgt, $I11, 1
+    ne $S10, "[", rx505_fail
+    add rx505_pos, 1
 .annotate 'line', 167
-  # rx rxquantr509 ** 0..*
-    set_addr $I530, rxquantr509_done
-    rx500_cur."!mark_push"(0, rx500_pos, $I530)
-  rxquantr509_loop:
+  # rx rxquantr514 ** 0..*
+    set_addr $I535, rxquantr514_done
+    rx505_cur."!mark_push"(0, rx505_pos, $I535)
+  rxquantr514_loop:
 .annotate 'line', 164
-  # rx subrule $P511 subtype=capture negate=
-    rx500_cur."!cursor_pos"(rx500_pos)
-    .const 'Sub' $P511 = "143_1274853027.61936" 
-    capture_lex $P511
-    $P10 = rx500_cur.$P511()
-    unless $P10, rx500_fail
-    rx500_cur."!mark_push"(0, -1, 0, $P10)
+  # rx subrule $P516 subtype=capture negate=
+    rx505_cur."!cursor_pos"(rx505_pos)
+    .const 'Sub' $P516 = "143_1275811476.7961" 
+    capture_lex $P516
+    $P10 = rx505_cur.$P516()
+    unless $P10, rx505_fail
+    rx505_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charspec")
-    rx500_pos = $P10."pos"()
+    rx505_pos = $P10."pos"()
 .annotate 'line', 167
-    (rx500_rep) = rx500_cur."!mark_commit"($I530)
-    rx500_cur."!mark_push"(rx500_rep, rx500_pos, $I530)
-    goto rxquantr509_loop
-  rxquantr509_done:
+    (rx505_rep) = rx505_cur."!mark_commit"($I535)
+    rx505_cur."!mark_push"(rx505_rep, rx505_pos, $I535)
+    goto rxquantr514_loop
+  rxquantr514_done:
 .annotate 'line', 168
   # rx charclass_q s r 0..-1
-    sub $I10, rx500_pos, rx500_off
-    find_not_cclass $I11, 32, rx500_tgt, $I10, rx500_eos
-    add rx500_pos, rx500_off, $I11
+    sub $I10, rx505_pos, rx505_off
+    find_not_cclass $I11, 32, rx505_tgt, $I10, rx505_eos
+    add rx505_pos, rx505_off, $I11
   # rx literal  "]"
-    add $I11, rx500_pos, 1
-    gt $I11, rx500_eos, rx500_fail
-    sub $I11, rx500_pos, rx500_off
-    substr $S10, rx500_tgt, $I11, 1
-    ne $S10, "]", rx500_fail
-    add rx500_pos, 1
+    add $I11, rx505_pos, 1
+    gt $I11, rx505_eos, rx505_fail
+    sub $I11, rx505_pos, rx505_off
+    substr $S10, rx505_tgt, $I11, 1
+    ne $S10, "]", rx505_fail
+    add rx505_pos, 1
 .annotate 'line', 164
-    goto alt508_end
-  alt508_1:
+    goto alt513_end
+  alt513_1:
 .annotate 'line', 169
   # rx subcapture "name"
-    set_addr $I10, rxcap_531_fail
-    rx500_cur."!mark_push"(0, rx500_pos, $I10)
+    set_addr $I10, rxcap_536_fail
+    rx505_cur."!mark_push"(0, rx505_pos, $I10)
   # rx charclass_q w r 1..-1
-    sub $I10, rx500_pos, rx500_off
-    find_not_cclass $I11, 8192, rx500_tgt, $I10, rx500_eos
+    sub $I10, rx505_pos, rx505_off
+    find_not_cclass $I11, 8192, rx505_tgt, $I10, rx505_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx500_fail
-    add rx500_pos, rx500_off, $I11
-    set_addr $I10, rxcap_531_fail
-    ($I12, $I11) = rx500_cur."!mark_peek"($I10)
-    rx500_cur."!cursor_pos"($I11)
-    ($P10) = rx500_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx500_pos, "")
-    rx500_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx505_fail
+    add rx505_pos, rx505_off, $I11
+    set_addr $I10, rxcap_536_fail
+    ($I12, $I11) = rx505_cur."!mark_peek"($I10)
+    rx505_cur."!cursor_pos"($I11)
+    ($P10) = rx505_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx505_pos, "")
+    rx505_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    goto rxcap_531_done
-  rxcap_531_fail:
-    goto rx500_fail
-  rxcap_531_done:
-  alt508_end:
+    goto rxcap_536_done
+  rxcap_536_fail:
+    goto rx505_fail
+  rxcap_536_done:
+  alt513_end:
 .annotate 'line', 171
-  # rx rxquantr532 ** 0..1
-    set_addr $I533, rxquantr532_done
-    rx500_cur."!mark_push"(0, rx500_pos, $I533)
-  rxquantr532_loop:
+  # rx rxquantr537 ** 0..1
+    set_addr $I538, rxquantr537_done
+    rx505_cur."!mark_push"(0, rx505_pos, $I538)
+  rxquantr537_loop:
   # rx subrule "normspace" subtype=method negate=
-    rx500_cur."!cursor_pos"(rx500_pos)
-    $P10 = rx500_cur."normspace"()
-    unless $P10, rx500_fail
-    rx500_pos = $P10."pos"()
-    (rx500_rep) = rx500_cur."!mark_commit"($I533)
-  rxquantr532_done:
+    rx505_cur."!cursor_pos"(rx505_pos)
+    $P10 = rx505_cur."normspace"()
+    unless $P10, rx505_fail
+    rx505_pos = $P10."pos"()
+    (rx505_rep) = rx505_cur."!mark_commit"($I538)
+  rxquantr537_done:
 .annotate 'line', 160
   # rx pass
-    rx500_cur."!cursor_pass"(rx500_pos, "cclass_elem")
-    rx500_cur."!cursor_debug"("PASS  ", "cclass_elem", " at pos=", rx500_pos)
-    .return (rx500_cur)
-  rx500_fail:
+    rx505_cur."!cursor_pass"(rx505_pos, "cclass_elem")
+    rx505_cur."!cursor_debug"("PASS  ", "cclass_elem", " at pos=", rx505_pos)
+    .return (rx505_cur)
+  rx505_fail:
 .annotate 'line', 3
-    (rx500_rep, rx500_pos, $I10, $P10) = rx500_cur."!mark_fail"(0)
-    lt rx500_pos, -1, rx500_done
-    eq rx500_pos, -1, rx500_fail
+    (rx505_rep, rx505_pos, $I10, $P10) = rx505_cur."!mark_fail"(0)
+    lt rx505_pos, -1, rx505_done
+    eq rx505_pos, -1, rx505_fail
     jump $I10
-  rx500_done:
-    rx500_cur."!cursor_fail"()
-    rx500_cur."!cursor_debug"("FAIL  ", "cclass_elem")
-    .return (rx500_cur)
+  rx505_done:
+    rx505_cur."!cursor_fail"()
+    rx505_cur."!cursor_debug"("FAIL  ", "cclass_elem")
+    .return (rx505_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem"  :subid("142_1274853027.61936") :method
+.sub "!PREFIX__cclass_elem"  :subid("142_1275811476.7961") :method
 .annotate 'line', 3
-    new $P502, "ResizablePMCArray"
-    push $P502, ""
-    push $P502, "-"
-    push $P502, "+"
-    .return ($P502)
+    new $P507, "ResizablePMCArray"
+    push $P507, ""
+    push $P507, "-"
+    push $P507, "+"
+    .return ($P507)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510"  :anon :subid("143_1274853027.61936") :method :outer("141_1274853027.61936")
+.sub "_block515"  :anon :subid("143_1275811476.7961") :method :outer("141_1275811476.7961")
 .annotate 'line', 164
-    .const 'Sub' $P526 = "146_1274853027.61936" 
+    .const 'Sub' $P531 = "146_1275811476.7961" 
+    capture_lex $P531
+    .const 'Sub' $P526 = "145_1275811476.7961" 
     capture_lex $P526
-    .const 'Sub' $P521 = "145_1274853027.61936" 
-    capture_lex $P521
-    .const 'Sub' $P517 = "144_1274853027.61936" 
-    capture_lex $P517
-    .local string rx512_tgt
-    .local int rx512_pos
-    .local int rx512_off
-    .local int rx512_eos
-    .local int rx512_rep
-    .local pmc rx512_cur
-    (rx512_cur, rx512_pos, rx512_tgt) = self."!cursor_start"()
-    rx512_cur."!cursor_debug"("START ", "")
-    rx512_cur."!cursor_caparray"("1")
-    .lex unicode:"$\x{a2}", rx512_cur
-    .local pmc match
-    .lex "$/", match
-    length rx512_eos, rx512_tgt
-    set rx512_off, 0
-    lt rx512_pos, 2, rx512_start
-    sub rx512_off, rx512_pos, 1
-    substr rx512_tgt, rx512_tgt, rx512_off
-  rx512_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan513_done
-    goto rxscan513_scan
-  rxscan513_loop:
-    ($P10) = rx512_cur."from"()
-    inc $P10
-    set rx512_pos, $P10
-    ge rx512_pos, rx512_eos, rxscan513_done
-  rxscan513_scan:
-    set_addr $I10, rxscan513_loop
-    rx512_cur."!mark_push"(0, rx512_pos, $I10)
-  rxscan513_done:
-  alt514_0:
-    set_addr $I10, alt514_1
-    rx512_cur."!mark_push"(0, rx512_pos, $I10)
+    .const 'Sub' $P522 = "144_1275811476.7961" 
+    capture_lex $P522
+    .local string rx517_tgt
+    .local int rx517_pos
+    .local int rx517_off
+    .local int rx517_eos
+    .local int rx517_rep
+    .local pmc rx517_cur
+    (rx517_cur, rx517_pos, rx517_tgt) = self."!cursor_start"()
+    rx517_cur."!cursor_debug"("START ", "")
+    rx517_cur."!cursor_caparray"("1")
+    .lex unicode:"$\x{a2}", rx517_cur
+    .local pmc match
+    .lex "$/", match
+    length rx517_eos, rx517_tgt
+    gt rx517_pos, rx517_eos, rx517_done
+    set rx517_off, 0
+    lt rx517_pos, 2, rx517_start
+    sub rx517_off, rx517_pos, 1
+    substr rx517_tgt, rx517_tgt, rx517_off
+  rx517_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan518_done
+    goto rxscan518_scan
+  rxscan518_loop:
+    ($P10) = rx517_cur."from"()
+    inc $P10
+    set rx517_pos, $P10
+    ge rx517_pos, rx517_eos, rxscan518_done
+  rxscan518_scan:
+    set_addr $I10, rxscan518_loop
+    rx517_cur."!mark_push"(0, rx517_pos, $I10)
+  rxscan518_done:
+  alt519_0:
+    set_addr $I10, alt519_1
+    rx517_cur."!mark_push"(0, rx517_pos, $I10)
 .annotate 'line', 165
   # rx charclass_q s r 0..-1
-    sub $I10, rx512_pos, rx512_off
-    find_not_cclass $I11, 32, rx512_tgt, $I10, rx512_eos
-    add rx512_pos, rx512_off, $I11
+    sub $I10, rx517_pos, rx517_off
+    find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
+    add rx517_pos, rx517_off, $I11
   # rx literal  "-"
-    add $I11, rx512_pos, 1
-    gt $I11, rx512_eos, rx512_fail
-    sub $I11, rx512_pos, rx512_off
-    substr $S10, rx512_tgt, $I11, 1
-    ne $S10, "-", rx512_fail
-    add rx512_pos, 1
+    add $I11, rx517_pos, 1
+    gt $I11, rx517_eos, rx517_fail
+    sub $I11, rx517_pos, rx517_off
+    substr $S10, rx517_tgt, $I11, 1
+    ne $S10, "-", rx517_fail
+    add rx517_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx512_cur."!cursor_pos"(rx512_pos)
-    $P10 = rx512_cur."obs"("hyphen in enumerated character class", "..")
-    unless $P10, rx512_fail
-    rx512_pos = $P10."pos"()
-    goto alt514_end
-  alt514_1:
+    rx517_cur."!cursor_pos"(rx517_pos)
+    $P10 = rx517_cur."obs"("hyphen in enumerated character class", "..")
+    unless $P10, rx517_fail
+    rx517_pos = $P10."pos"()
+    goto alt519_end
+  alt519_1:
 .annotate 'line', 166
   # rx charclass_q s r 0..-1
-    sub $I10, rx512_pos, rx512_off
-    find_not_cclass $I11, 32, rx512_tgt, $I10, rx512_eos
-    add rx512_pos, rx512_off, $I11
-  alt515_0:
-    set_addr $I10, alt515_1
-    rx512_cur."!mark_push"(0, rx512_pos, $I10)
+    sub $I10, rx517_pos, rx517_off
+    find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
+    add rx517_pos, rx517_off, $I11
+  alt520_0:
+    set_addr $I10, alt520_1
+    rx517_cur."!mark_push"(0, rx517_pos, $I10)
   # rx literal  "\\"
-    add $I11, rx512_pos, 1
-    gt $I11, rx512_eos, rx512_fail
-    sub $I11, rx512_pos, rx512_off
-    substr $S10, rx512_tgt, $I11, 1
-    ne $S10, "\\", rx512_fail
-    add rx512_pos, 1
-  # rx subrule $P517 subtype=capture negate=
-    rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P517 = "144_1274853027.61936" 
-    capture_lex $P517
-    $P10 = rx512_cur.$P517()
-    unless $P10, rx512_fail
-    rx512_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx517_pos, 1
+    gt $I11, rx517_eos, rx517_fail
+    sub $I11, rx517_pos, rx517_off
+    substr $S10, rx517_tgt, $I11, 1
+    ne $S10, "\\", rx517_fail
+    add rx517_pos, 1
+  # rx subrule $P522 subtype=capture negate=
+    rx517_cur."!cursor_pos"(rx517_pos)
+    .const 'Sub' $P522 = "144_1275811476.7961" 
+    capture_lex $P522
+    $P10 = rx517_cur.$P522()
+    unless $P10, rx517_fail
+    rx517_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"(0)
-    rx512_pos = $P10."pos"()
-    goto alt515_end
-  alt515_1:
-  # rx subrule $P521 subtype=capture negate=
-    rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P521 = "145_1274853027.61936" 
-    capture_lex $P521
-    $P10 = rx512_cur.$P521()
-    unless $P10, rx512_fail
-    rx512_cur."!mark_push"(0, -1, 0, $P10)
+    rx517_pos = $P10."pos"()
+    goto alt520_end
+  alt520_1:
+  # rx subrule $P526 subtype=capture negate=
+    rx517_cur."!cursor_pos"(rx517_pos)
+    .const 'Sub' $P526 = "145_1275811476.7961" 
+    capture_lex $P526
+    $P10 = rx517_cur.$P526()
+    unless $P10, rx517_fail
+    rx517_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"(0)
-    rx512_pos = $P10."pos"()
-  alt515_end:
-  # rx rxquantr524 ** 0..1
-    set_addr $I529, rxquantr524_done
-    rx512_cur."!mark_push"(0, rx512_pos, $I529)
-  rxquantr524_loop:
+    rx517_pos = $P10."pos"()
+  alt520_end:
+  # rx rxquantr529 ** 0..1
+    set_addr $I534, rxquantr529_done
+    rx517_cur."!mark_push"(0, rx517_pos, $I534)
+  rxquantr529_loop:
   # rx charclass_q s r 0..-1
-    sub $I10, rx512_pos, rx512_off
-    find_not_cclass $I11, 32, rx512_tgt, $I10, rx512_eos
-    add rx512_pos, rx512_off, $I11
+    sub $I10, rx517_pos, rx517_off
+    find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
+    add rx517_pos, rx517_off, $I11
   # rx literal  ".."
-    add $I11, rx512_pos, 2
-    gt $I11, rx512_eos, rx512_fail
-    sub $I11, rx512_pos, rx512_off
-    substr $S10, rx512_tgt, $I11, 2
-    ne $S10, "..", rx512_fail
-    add rx512_pos, 2
+    add $I11, rx517_pos, 2
+    gt $I11, rx517_eos, rx517_fail
+    sub $I11, rx517_pos, rx517_off
+    substr $S10, rx517_tgt, $I11, 2
+    ne $S10, "..", rx517_fail
+    add rx517_pos, 2
   # rx charclass_q s r 0..-1
-    sub $I10, rx512_pos, rx512_off
-    find_not_cclass $I11, 32, rx512_tgt, $I10, rx512_eos
-    add rx512_pos, rx512_off, $I11
-  # rx subrule $P526 subtype=capture negate=
-    rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P526 = "146_1274853027.61936" 
-    capture_lex $P526
-    $P10 = rx512_cur.$P526()
-    unless $P10, rx512_fail
-    rx512_cur."!mark_push"(0, -1, 0, $P10)
+    sub $I10, rx517_pos, rx517_off
+    find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
+    add rx517_pos, rx517_off, $I11
+  # rx subrule $P531 subtype=capture negate=
+    rx517_cur."!cursor_pos"(rx517_pos)
+    .const 'Sub' $P531 = "146_1275811476.7961" 
+    capture_lex $P531
+    $P10 = rx517_cur.$P531()
+    unless $P10, rx517_fail
+    rx517_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("1")
-    rx512_pos = $P10."pos"()
-    (rx512_rep) = rx512_cur."!mark_commit"($I529)
-  rxquantr524_done:
-  alt514_end:
+    rx517_pos = $P10."pos"()
+    (rx517_rep) = rx517_cur."!mark_commit"($I534)
+  rxquantr529_done:
+  alt519_end:
 .annotate 'line', 164
   # rx pass
-    rx512_cur."!cursor_pass"(rx512_pos, "")
-    rx512_cur."!cursor_debug"("PASS  ", "", " at pos=", rx512_pos)
-    .return (rx512_cur)
-  rx512_fail:
-    (rx512_rep, rx512_pos, $I10, $P10) = rx512_cur."!mark_fail"(0)
-    lt rx512_pos, -1, rx512_done
-    eq rx512_pos, -1, rx512_fail
+    rx517_cur."!cursor_pass"(rx517_pos, "")
+    rx517_cur."!cursor_debug"("PASS  ", "", " at pos=", rx517_pos)
+    .return (rx517_cur)
+  rx517_fail:
+    (rx517_rep, rx517_pos, $I10, $P10) = rx517_cur."!mark_fail"(0)
+    lt rx517_pos, -1, rx517_done
+    eq rx517_pos, -1, rx517_fail
     jump $I10
-  rx512_done:
-    rx512_cur."!cursor_fail"()
-    rx512_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx512_cur)
+  rx517_done:
+    rx517_cur."!cursor_fail"()
+    rx517_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx517_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block516"  :anon :subid("144_1274853027.61936") :method :outer("143_1274853027.61936")
+.sub "_block521"  :anon :subid("144_1275811476.7961") :method :outer("143_1275811476.7961")
 .annotate 'line', 166
-    .local string rx518_tgt
-    .local int rx518_pos
-    .local int rx518_off
-    .local int rx518_eos
-    .local int rx518_rep
-    .local pmc rx518_cur
-    (rx518_cur, rx518_pos, rx518_tgt) = self."!cursor_start"()
-    rx518_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx518_cur
-    .local pmc match
-    .lex "$/", match
-    length rx518_eos, rx518_tgt
-    set rx518_off, 0
-    lt rx518_pos, 2, rx518_start
-    sub rx518_off, rx518_pos, 1
-    substr rx518_tgt, rx518_tgt, rx518_off
-  rx518_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan519_done
-    goto rxscan519_scan
-  rxscan519_loop:
-    ($P10) = rx518_cur."from"()
-    inc $P10
-    set rx518_pos, $P10
-    ge rx518_pos, rx518_eos, rxscan519_done
-  rxscan519_scan:
-    set_addr $I10, rxscan519_loop
-    rx518_cur."!mark_push"(0, rx518_pos, $I10)
-  rxscan519_done:
+    .local string rx523_tgt
+    .local int rx523_pos
+    .local int rx523_off
+    .local int rx523_eos
+    .local int rx523_rep
+    .local pmc rx523_cur
+    (rx523_cur, rx523_pos, rx523_tgt) = self."!cursor_start"()
+    rx523_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx523_cur
+    .local pmc match
+    .lex "$/", match
+    length rx523_eos, rx523_tgt
+    gt rx523_pos, rx523_eos, rx523_done
+    set rx523_off, 0
+    lt rx523_pos, 2, rx523_start
+    sub rx523_off, rx523_pos, 1
+    substr rx523_tgt, rx523_tgt, rx523_off
+  rx523_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan524_done
+    goto rxscan524_scan
+  rxscan524_loop:
+    ($P10) = rx523_cur."from"()
+    inc $P10
+    set rx523_pos, $P10
+    ge rx523_pos, rx523_eos, rxscan524_done
+  rxscan524_scan:
+    set_addr $I10, rxscan524_loop
+    rx523_cur."!mark_push"(0, rx523_pos, $I10)
+  rxscan524_done:
   # rx charclass .
-    ge rx518_pos, rx518_eos, rx518_fail
-    inc rx518_pos
-  # rx pass
-    rx518_cur."!cursor_pass"(rx518_pos, "")
-    rx518_cur."!cursor_debug"("PASS  ", "", " at pos=", rx518_pos)
-    .return (rx518_cur)
-  rx518_fail:
-    (rx518_rep, rx518_pos, $I10, $P10) = rx518_cur."!mark_fail"(0)
-    lt rx518_pos, -1, rx518_done
-    eq rx518_pos, -1, rx518_fail
-    jump $I10
-  rx518_done:
-    rx518_cur."!cursor_fail"()
-    rx518_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx518_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block520"  :anon :subid("145_1274853027.61936") :method :outer("143_1274853027.61936")
-.annotate 'line', 166
-    .local string rx522_tgt
-    .local int rx522_pos
-    .local int rx522_off
-    .local int rx522_eos
-    .local int rx522_rep
-    .local pmc rx522_cur
-    (rx522_cur, rx522_pos, rx522_tgt) = self."!cursor_start"()
-    rx522_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx522_cur
-    .local pmc match
-    .lex "$/", match
-    length rx522_eos, rx522_tgt
-    set rx522_off, 0
-    lt rx522_pos, 2, rx522_start
-    sub rx522_off, rx522_pos, 1
-    substr rx522_tgt, rx522_tgt, rx522_off
-  rx522_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan523_done
-    goto rxscan523_scan
-  rxscan523_loop:
-    ($P10) = rx522_cur."from"()
-    inc $P10
-    set rx522_pos, $P10
-    ge rx522_pos, rx522_eos, rxscan523_done
-  rxscan523_scan:
-    set_addr $I10, rxscan523_loop
-    rx522_cur."!mark_push"(0, rx522_pos, $I10)
-  rxscan523_done:
-  # rx enumcharlist negate=1 
-    ge rx522_pos, rx522_eos, rx522_fail
-    sub $I10, rx522_pos, rx522_off
-    substr $S10, rx522_tgt, $I10, 1
-    index $I11, "]\\", $S10
-    ge $I11, 0, rx522_fail
-    inc rx522_pos
+    ge rx523_pos, rx523_eos, rx523_fail
+    inc rx523_pos
   # rx pass
-    rx522_cur."!cursor_pass"(rx522_pos, "")
-    rx522_cur."!cursor_debug"("PASS  ", "", " at pos=", rx522_pos)
-    .return (rx522_cur)
-  rx522_fail:
-    (rx522_rep, rx522_pos, $I10, $P10) = rx522_cur."!mark_fail"(0)
-    lt rx522_pos, -1, rx522_done
-    eq rx522_pos, -1, rx522_fail
+    rx523_cur."!cursor_pass"(rx523_pos, "")
+    rx523_cur."!cursor_debug"("PASS  ", "", " at pos=", rx523_pos)
+    .return (rx523_cur)
+  rx523_fail:
+    (rx523_rep, rx523_pos, $I10, $P10) = rx523_cur."!mark_fail"(0)
+    lt rx523_pos, -1, rx523_done
+    eq rx523_pos, -1, rx523_fail
     jump $I10
-  rx522_done:
-    rx522_cur."!cursor_fail"()
-    rx522_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx522_cur)
+  rx523_done:
+    rx523_cur."!cursor_fail"()
+    rx523_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx523_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block525"  :anon :subid("146_1274853027.61936") :method :outer("143_1274853027.61936")
+.sub "_block525"  :anon :subid("145_1275811476.7961") :method :outer("143_1275811476.7961")
 .annotate 'line', 166
     .local string rx527_tgt
     .local int rx527_pos
@@ -6600,6 +6631,7 @@
     .local pmc match
     .lex "$/", match
     length rx527_eos, rx527_tgt
+    gt rx527_pos, rx527_eos, rx527_done
     set rx527_off, 0
     lt rx527_pos, 2, rx527_start
     sub rx527_off, rx527_pos, 1
@@ -6617,8 +6649,12 @@
     set_addr $I10, rxscan528_loop
     rx527_cur."!mark_push"(0, rx527_pos, $I10)
   rxscan528_done:
-  # rx charclass .
+  # rx enumcharlist negate=1 
     ge rx527_pos, rx527_eos, rx527_fail
+    sub $I10, rx527_pos, rx527_off
+    substr $S10, rx527_tgt, $I10, 1
+    index $I11, "]\\", $S10
+    ge $I11, 0, rx527_fail
     inc rx527_pos
   # rx pass
     rx527_cur."!cursor_pass"(rx527_pos, "")
@@ -6638,557 +6674,615 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal"  :subid("147_1274853027.61936") :method :outer("11_1274853027.61936")
-.annotate 'line', 3
-    .const 'Sub' $P543 = "149_1274853027.61936" 
-    capture_lex $P543
-    .local string rx535_tgt
-    .local int rx535_pos
-    .local int rx535_off
-    .local int rx535_eos
-    .local int rx535_rep
-    .local pmc rx535_cur
-    (rx535_cur, rx535_pos, rx535_tgt) = self."!cursor_start"()
-    rx535_cur."!cursor_debug"("START ", "mod_internal")
-    rx535_cur."!cursor_caparray"("n")
-    .lex unicode:"$\x{a2}", rx535_cur
-    .local pmc match
-    .lex "$/", match
-    length rx535_eos, rx535_tgt
-    set rx535_off, 0
-    lt rx535_pos, 2, rx535_start
-    sub rx535_off, rx535_pos, 1
-    substr rx535_tgt, rx535_tgt, rx535_off
-  rx535_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan539_done
-    goto rxscan539_scan
-  rxscan539_loop:
-    ($P10) = rx535_cur."from"()
-    inc $P10
-    set rx535_pos, $P10
-    ge rx535_pos, rx535_eos, rxscan539_done
-  rxscan539_scan:
-    set_addr $I10, rxscan539_loop
-    rx535_cur."!mark_push"(0, rx535_pos, $I10)
-  rxscan539_done:
-  alt540_0:
+.sub "_block530"  :anon :subid("146_1275811476.7961") :method :outer("143_1275811476.7961")
+.annotate 'line', 166
+    .local string rx532_tgt
+    .local int rx532_pos
+    .local int rx532_off
+    .local int rx532_eos
+    .local int rx532_rep
+    .local pmc rx532_cur
+    (rx532_cur, rx532_pos, rx532_tgt) = self."!cursor_start"()
+    rx532_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx532_cur
+    .local pmc match
+    .lex "$/", match
+    length rx532_eos, rx532_tgt
+    gt rx532_pos, rx532_eos, rx532_done
+    set rx532_off, 0
+    lt rx532_pos, 2, rx532_start
+    sub rx532_off, rx532_pos, 1
+    substr rx532_tgt, rx532_tgt, rx532_off
+  rx532_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan533_done
+    goto rxscan533_scan
+  rxscan533_loop:
+    ($P10) = rx532_cur."from"()
+    inc $P10
+    set rx532_pos, $P10
+    ge rx532_pos, rx532_eos, rxscan533_done
+  rxscan533_scan:
+    set_addr $I10, rxscan533_loop
+    rx532_cur."!mark_push"(0, rx532_pos, $I10)
+  rxscan533_done:
+  # rx charclass .
+    ge rx532_pos, rx532_eos, rx532_fail
+    inc rx532_pos
+  # rx pass
+    rx532_cur."!cursor_pass"(rx532_pos, "")
+    rx532_cur."!cursor_debug"("PASS  ", "", " at pos=", rx532_pos)
+    .return (rx532_cur)
+  rx532_fail:
+    (rx532_rep, rx532_pos, $I10, $P10) = rx532_cur."!mark_fail"(0)
+    lt rx532_pos, -1, rx532_done
+    eq rx532_pos, -1, rx532_fail
+    jump $I10
+  rx532_done:
+    rx532_cur."!cursor_fail"()
+    rx532_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx532_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "mod_internal"  :subid("147_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+    .const 'Sub' $P548 = "149_1275811476.7961" 
+    capture_lex $P548
+    .local string rx540_tgt
+    .local int rx540_pos
+    .local int rx540_off
+    .local int rx540_eos
+    .local int rx540_rep
+    .local pmc rx540_cur
+    (rx540_cur, rx540_pos, rx540_tgt) = self."!cursor_start"()
+    rx540_cur."!cursor_debug"("START ", "mod_internal")
+    rx540_cur."!cursor_caparray"("n")
+    .lex unicode:"$\x{a2}", rx540_cur
+    .local pmc match
+    .lex "$/", match
+    length rx540_eos, rx540_tgt
+    gt rx540_pos, rx540_eos, rx540_done
+    set rx540_off, 0
+    lt rx540_pos, 2, rx540_start
+    sub rx540_off, rx540_pos, 1
+    substr rx540_tgt, rx540_tgt, rx540_off
+  rx540_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan544_done
+    goto rxscan544_scan
+  rxscan544_loop:
+    ($P10) = rx540_cur."from"()
+    inc $P10
+    set rx540_pos, $P10
+    ge rx540_pos, rx540_eos, rxscan544_done
+  rxscan544_scan:
+    set_addr $I10, rxscan544_loop
+    rx540_cur."!mark_push"(0, rx540_pos, $I10)
+  rxscan544_done:
+  alt545_0:
 .annotate 'line', 175
-    set_addr $I10, alt540_1
-    rx535_cur."!mark_push"(0, rx535_pos, $I10)
+    set_addr $I10, alt545_1
+    rx540_cur."!mark_push"(0, rx540_pos, $I10)
 .annotate 'line', 176
   # rx literal  ":"
-    add $I11, rx535_pos, 1
-    gt $I11, rx535_eos, rx535_fail
-    sub $I11, rx535_pos, rx535_off
-    substr $S10, rx535_tgt, $I11, 1
-    ne $S10, ":", rx535_fail
-    add rx535_pos, 1
-  # rx rxquantr541 ** 1..1
-    set_addr $I547, rxquantr541_done
-    rx535_cur."!mark_push"(0, -1, $I547)
-  rxquantr541_loop:
-  # rx subrule $P543 subtype=capture negate=
-    rx535_cur."!cursor_pos"(rx535_pos)
-    .const 'Sub' $P543 = "149_1274853027.61936" 
-    capture_lex $P543
-    $P10 = rx535_cur.$P543()
-    unless $P10, rx535_fail
-    rx535_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx540_pos, 1
+    gt $I11, rx540_eos, rx540_fail
+    sub $I11, rx540_pos, rx540_off
+    substr $S10, rx540_tgt, $I11, 1
+    ne $S10, ":", rx540_fail
+    add rx540_pos, 1
+  # rx rxquantr546 ** 1..1
+    set_addr $I552, rxquantr546_done
+    rx540_cur."!mark_push"(0, -1, $I552)
+  rxquantr546_loop:
+  # rx subrule $P548 subtype=capture negate=
+    rx540_cur."!cursor_pos"(rx540_pos)
+    .const 'Sub' $P548 = "149_1275811476.7961" 
+    capture_lex $P548
+    $P10 = rx540_cur.$P548()
+    unless $P10, rx540_fail
+    rx540_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("n")
-    rx535_pos = $P10."pos"()
-    (rx535_rep) = rx535_cur."!mark_commit"($I547)
-  rxquantr541_done:
+    rx540_pos = $P10."pos"()
+    (rx540_rep) = rx540_cur."!mark_commit"($I552)
+  rxquantr546_done:
   # rx subrule "mod_ident" subtype=capture negate=
-    rx535_cur."!cursor_pos"(rx535_pos)
-    $P10 = rx535_cur."mod_ident"()
-    unless $P10, rx535_fail
-    rx535_cur."!mark_push"(0, -1, 0, $P10)
+    rx540_cur."!cursor_pos"(rx540_pos)
+    $P10 = rx540_cur."mod_ident"()
+    unless $P10, rx540_fail
+    rx540_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_ident")
-    rx535_pos = $P10."pos"()
+    rx540_pos = $P10."pos"()
   # rxanchor rwb
-    le rx535_pos, 0, rx535_fail
-    sub $I10, rx535_pos, rx535_off
-    is_cclass $I11, 8192, rx535_tgt, $I10
-    if $I11, rx535_fail
+    le rx540_pos, 0, rx540_fail
+    sub $I10, rx540_pos, rx540_off
+    is_cclass $I11, 8192, rx540_tgt, $I10
+    if $I11, rx540_fail
     dec $I10
-    is_cclass $I11, 8192, rx535_tgt, $I10
-    unless $I11, rx535_fail
-    goto alt540_end
-  alt540_1:
+    is_cclass $I11, 8192, rx540_tgt, $I10
+    unless $I11, rx540_fail
+    goto alt545_end
+  alt545_1:
 .annotate 'line', 177
   # rx literal  ":"
-    add $I11, rx535_pos, 1
-    gt $I11, rx535_eos, rx535_fail
-    sub $I11, rx535_pos, rx535_off
-    substr $S10, rx535_tgt, $I11, 1
-    ne $S10, ":", rx535_fail
-    add rx535_pos, 1
+    add $I11, rx540_pos, 1
+    gt $I11, rx540_eos, rx540_fail
+    sub $I11, rx540_pos, rx540_off
+    substr $S10, rx540_tgt, $I11, 1
+    ne $S10, ":", rx540_fail
+    add rx540_pos, 1
   # rx subrule "mod_ident" subtype=capture negate=
-    rx535_cur."!cursor_pos"(rx535_pos)
-    $P10 = rx535_cur."mod_ident"()
-    unless $P10, rx535_fail
-    rx535_cur."!mark_push"(0, -1, 0, $P10)
+    rx540_cur."!cursor_pos"(rx540_pos)
+    $P10 = rx540_cur."mod_ident"()
+    unless $P10, rx540_fail
+    rx540_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_ident")
-    rx535_pos = $P10."pos"()
-  # rx rxquantr548 ** 0..1
-    set_addr $I550, rxquantr548_done
-    rx535_cur."!mark_push"(0, rx535_pos, $I550)
-  rxquantr548_loop:
+    rx540_pos = $P10."pos"()
+  # rx rxquantr553 ** 0..1
+    set_addr $I555, rxquantr553_done
+    rx540_cur."!mark_push"(0, rx540_pos, $I555)
+  rxquantr553_loop:
   # rx literal  "("
-    add $I11, rx535_pos, 1
-    gt $I11, rx535_eos, rx535_fail
-    sub $I11, rx535_pos, rx535_off
-    substr $S10, rx535_tgt, $I11, 1
-    ne $S10, "(", rx535_fail
-    add rx535_pos, 1
+    add $I11, rx540_pos, 1
+    gt $I11, rx540_eos, rx540_fail
+    sub $I11, rx540_pos, rx540_off
+    substr $S10, rx540_tgt, $I11, 1
+    ne $S10, "(", rx540_fail
+    add rx540_pos, 1
   # rx subcapture "n"
-    set_addr $I10, rxcap_549_fail
-    rx535_cur."!mark_push"(0, rx535_pos, $I10)
+    set_addr $I10, rxcap_554_fail
+    rx540_cur."!mark_push"(0, rx540_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx535_pos, rx535_off
-    find_not_cclass $I11, 8, rx535_tgt, $I10, rx535_eos
+    sub $I10, rx540_pos, rx540_off
+    find_not_cclass $I11, 8, rx540_tgt, $I10, rx540_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx535_fail
-    add rx535_pos, rx535_off, $I11
-    set_addr $I10, rxcap_549_fail
-    ($I12, $I11) = rx535_cur."!mark_peek"($I10)
-    rx535_cur."!cursor_pos"($I11)
-    ($P10) = rx535_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx535_pos, "")
-    rx535_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx540_fail
+    add rx540_pos, rx540_off, $I11
+    set_addr $I10, rxcap_554_fail
+    ($I12, $I11) = rx540_cur."!mark_peek"($I10)
+    rx540_cur."!cursor_pos"($I11)
+    ($P10) = rx540_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx540_pos, "")
+    rx540_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("n")
-    goto rxcap_549_done
-  rxcap_549_fail:
-    goto rx535_fail
-  rxcap_549_done:
+    goto rxcap_554_done
+  rxcap_554_fail:
+    goto rx540_fail
+  rxcap_554_done:
   # rx literal  ")"
-    add $I11, rx535_pos, 1
-    gt $I11, rx535_eos, rx535_fail
-    sub $I11, rx535_pos, rx535_off
-    substr $S10, rx535_tgt, $I11, 1
-    ne $S10, ")", rx535_fail
-    add rx535_pos, 1
-    (rx535_rep) = rx535_cur."!mark_commit"($I550)
-  rxquantr548_done:
-  alt540_end:
+    add $I11, rx540_pos, 1
+    gt $I11, rx540_eos, rx540_fail
+    sub $I11, rx540_pos, rx540_off
+    substr $S10, rx540_tgt, $I11, 1
+    ne $S10, ")", rx540_fail
+    add rx540_pos, 1
+    (rx540_rep) = rx540_cur."!mark_commit"($I555)
+  rxquantr553_done:
+  alt545_end:
 .annotate 'line', 174
   # rx pass
-    rx535_cur."!cursor_pass"(rx535_pos, "mod_internal")
-    rx535_cur."!cursor_debug"("PASS  ", "mod_internal", " at pos=", rx535_pos)
-    .return (rx535_cur)
-  rx535_fail:
+    rx540_cur."!cursor_pass"(rx540_pos, "mod_internal")
+    rx540_cur."!cursor_debug"("PASS  ", "mod_internal", " at pos=", rx540_pos)
+    .return (rx540_cur)
+  rx540_fail:
 .annotate 'line', 3
-    (rx535_rep, rx535_pos, $I10, $P10) = rx535_cur."!mark_fail"(0)
-    lt rx535_pos, -1, rx535_done
-    eq rx535_pos, -1, rx535_fail
+    (rx540_rep, rx540_pos, $I10, $P10) = rx540_cur."!mark_fail"(0)
+    lt rx540_pos, -1, rx540_done
+    eq rx540_pos, -1, rx540_fail
     jump $I10
-  rx535_done:
-    rx535_cur."!cursor_fail"()
-    rx535_cur."!cursor_debug"("FAIL  ", "mod_internal")
-    .return (rx535_cur)
+  rx540_done:
+    rx540_cur."!cursor_fail"()
+    rx540_cur."!cursor_debug"("FAIL  ", "mod_internal")
+    .return (rx540_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal"  :subid("148_1274853027.61936") :method
+.sub "!PREFIX__mod_internal"  :subid("148_1275811476.7961") :method
 .annotate 'line', 3
-    $P537 = self."!PREFIX__!subrule"("mod_ident", ":")
-    new $P538, "ResizablePMCArray"
-    push $P538, $P537
-    push $P538, ":"
-    .return ($P538)
+    $P542 = self."!PREFIX__!subrule"("mod_ident", ":")
+    new $P543, "ResizablePMCArray"
+    push $P543, $P542
+    push $P543, ":"
+    .return ($P543)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block542"  :anon :subid("149_1274853027.61936") :method :outer("147_1274853027.61936")
+.sub "_block547"  :anon :subid("149_1275811476.7961") :method :outer("147_1275811476.7961")
 .annotate 'line', 176
-    .local string rx544_tgt
-    .local int rx544_pos
-    .local int rx544_off
-    .local int rx544_eos
-    .local int rx544_rep
-    .local pmc rx544_cur
-    (rx544_cur, rx544_pos, rx544_tgt) = self."!cursor_start"()
-    rx544_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx544_cur
-    .local pmc match
-    .lex "$/", match
-    length rx544_eos, rx544_tgt
-    set rx544_off, 0
-    lt rx544_pos, 2, rx544_start
-    sub rx544_off, rx544_pos, 1
-    substr rx544_tgt, rx544_tgt, rx544_off
-  rx544_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan545_done
-    goto rxscan545_scan
-  rxscan545_loop:
-    ($P10) = rx544_cur."from"()
-    inc $P10
-    set rx544_pos, $P10
-    ge rx544_pos, rx544_eos, rxscan545_done
-  rxscan545_scan:
-    set_addr $I10, rxscan545_loop
-    rx544_cur."!mark_push"(0, rx544_pos, $I10)
-  rxscan545_done:
-  alt546_0:
-    set_addr $I10, alt546_1
-    rx544_cur."!mark_push"(0, rx544_pos, $I10)
+    .local string rx549_tgt
+    .local int rx549_pos
+    .local int rx549_off
+    .local int rx549_eos
+    .local int rx549_rep
+    .local pmc rx549_cur
+    (rx549_cur, rx549_pos, rx549_tgt) = self."!cursor_start"()
+    rx549_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx549_cur
+    .local pmc match
+    .lex "$/", match
+    length rx549_eos, rx549_tgt
+    gt rx549_pos, rx549_eos, rx549_done
+    set rx549_off, 0
+    lt rx549_pos, 2, rx549_start
+    sub rx549_off, rx549_pos, 1
+    substr rx549_tgt, rx549_tgt, rx549_off
+  rx549_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan550_done
+    goto rxscan550_scan
+  rxscan550_loop:
+    ($P10) = rx549_cur."from"()
+    inc $P10
+    set rx549_pos, $P10
+    ge rx549_pos, rx549_eos, rxscan550_done
+  rxscan550_scan:
+    set_addr $I10, rxscan550_loop
+    rx549_cur."!mark_push"(0, rx549_pos, $I10)
+  rxscan550_done:
+  alt551_0:
+    set_addr $I10, alt551_1
+    rx549_cur."!mark_push"(0, rx549_pos, $I10)
   # rx literal  "!"
-    add $I11, rx544_pos, 1
-    gt $I11, rx544_eos, rx544_fail
-    sub $I11, rx544_pos, rx544_off
-    substr $S10, rx544_tgt, $I11, 1
-    ne $S10, "!", rx544_fail
-    add rx544_pos, 1
-    goto alt546_end
-  alt546_1:
+    add $I11, rx549_pos, 1
+    gt $I11, rx549_eos, rx549_fail
+    sub $I11, rx549_pos, rx549_off
+    substr $S10, rx549_tgt, $I11, 1
+    ne $S10, "!", rx549_fail
+    add rx549_pos, 1
+    goto alt551_end
+  alt551_1:
   # rx charclass_q d r 1..-1
-    sub $I10, rx544_pos, rx544_off
-    find_not_cclass $I11, 8, rx544_tgt, $I10, rx544_eos
+    sub $I10, rx549_pos, rx549_off
+    find_not_cclass $I11, 8, rx549_tgt, $I10, rx549_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx544_fail
-    add rx544_pos, rx544_off, $I11
-  alt546_end:
+    lt $I11, $I12, rx549_fail
+    add rx549_pos, rx549_off, $I11
+  alt551_end:
   # rx pass
-    rx544_cur."!cursor_pass"(rx544_pos, "")
-    rx544_cur."!cursor_debug"("PASS  ", "", " at pos=", rx544_pos)
-    .return (rx544_cur)
-  rx544_fail:
-    (rx544_rep, rx544_pos, $I10, $P10) = rx544_cur."!mark_fail"(0)
-    lt rx544_pos, -1, rx544_done
-    eq rx544_pos, -1, rx544_fail
+    rx549_cur."!cursor_pass"(rx549_pos, "")
+    rx549_cur."!cursor_debug"("PASS  ", "", " at pos=", rx549_pos)
+    .return (rx549_cur)
+  rx549_fail:
+    (rx549_rep, rx549_pos, $I10, $P10) = rx549_cur."!mark_fail"(0)
+    lt rx549_pos, -1, rx549_done
+    eq rx549_pos, -1, rx549_fail
     jump $I10
-  rx544_done:
-    rx544_cur."!cursor_fail"()
-    rx544_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx544_cur)
+  rx549_done:
+    rx549_cur."!cursor_fail"()
+    rx549_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx549_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident"  :subid("150_1274853027.61936") :method
+.sub "mod_ident"  :subid("150_1275811476.7961") :method
 .annotate 'line', 181
-    $P552 = self."!protoregex"("mod_ident")
-    .return ($P552)
+    $P557 = self."!protoregex"("mod_ident")
+    .return ($P557)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident"  :subid("151_1274853027.61936") :method
+.sub "!PREFIX__mod_ident"  :subid("151_1275811476.7961") :method
 .annotate 'line', 181
-    $P554 = self."!PREFIX__!protoregex"("mod_ident")
-    .return ($P554)
+    $P559 = self."!PREFIX__!protoregex"("mod_ident")
+    .return ($P559)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>"  :subid("152_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "mod_ident:sym<ignorecase>"  :subid("152_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx556_tgt
-    .local int rx556_pos
-    .local int rx556_off
-    .local int rx556_eos
-    .local int rx556_rep
-    .local pmc rx556_cur
-    (rx556_cur, rx556_pos, rx556_tgt) = self."!cursor_start"()
-    rx556_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
-    .lex unicode:"$\x{a2}", rx556_cur
-    .local pmc match
-    .lex "$/", match
-    length rx556_eos, rx556_tgt
-    set rx556_off, 0
-    lt rx556_pos, 2, rx556_start
-    sub rx556_off, rx556_pos, 1
-    substr rx556_tgt, rx556_tgt, rx556_off
-  rx556_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan559_done
-    goto rxscan559_scan
-  rxscan559_loop:
-    ($P10) = rx556_cur."from"()
-    inc $P10
-    set rx556_pos, $P10
-    ge rx556_pos, rx556_eos, rxscan559_done
-  rxscan559_scan:
-    set_addr $I10, rxscan559_loop
-    rx556_cur."!mark_push"(0, rx556_pos, $I10)
-  rxscan559_done:
+    .local string rx561_tgt
+    .local int rx561_pos
+    .local int rx561_off
+    .local int rx561_eos
+    .local int rx561_rep
+    .local pmc rx561_cur
+    (rx561_cur, rx561_pos, rx561_tgt) = self."!cursor_start"()
+    rx561_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
+    .lex unicode:"$\x{a2}", rx561_cur
+    .local pmc match
+    .lex "$/", match
+    length rx561_eos, rx561_tgt
+    gt rx561_pos, rx561_eos, rx561_done
+    set rx561_off, 0
+    lt rx561_pos, 2, rx561_start
+    sub rx561_off, rx561_pos, 1
+    substr rx561_tgt, rx561_tgt, rx561_off
+  rx561_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan564_done
+    goto rxscan564_scan
+  rxscan564_loop:
+    ($P10) = rx561_cur."from"()
+    inc $P10
+    set rx561_pos, $P10
+    ge rx561_pos, rx561_eos, rxscan564_done
+  rxscan564_scan:
+    set_addr $I10, rxscan564_loop
+    rx561_cur."!mark_push"(0, rx561_pos, $I10)
+  rxscan564_done:
 .annotate 'line', 182
   # rx subcapture "sym"
-    set_addr $I10, rxcap_560_fail
-    rx556_cur."!mark_push"(0, rx556_pos, $I10)
+    set_addr $I10, rxcap_565_fail
+    rx561_cur."!mark_push"(0, rx561_pos, $I10)
   # rx literal  "i"
-    add $I11, rx556_pos, 1
-    gt $I11, rx556_eos, rx556_fail
-    sub $I11, rx556_pos, rx556_off
-    substr $S10, rx556_tgt, $I11, 1
-    ne $S10, "i", rx556_fail
-    add rx556_pos, 1
-    set_addr $I10, rxcap_560_fail
-    ($I12, $I11) = rx556_cur."!mark_peek"($I10)
-    rx556_cur."!cursor_pos"($I11)
-    ($P10) = rx556_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx556_pos, "")
-    rx556_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx561_pos, 1
+    gt $I11, rx561_eos, rx561_fail
+    sub $I11, rx561_pos, rx561_off
+    substr $S10, rx561_tgt, $I11, 1
+    ne $S10, "i", rx561_fail
+    add rx561_pos, 1
+    set_addr $I10, rxcap_565_fail
+    ($I12, $I11) = rx561_cur."!mark_peek"($I10)
+    rx561_cur."!cursor_pos"($I11)
+    ($P10) = rx561_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx561_pos, "")
+    rx561_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_560_done
-  rxcap_560_fail:
-    goto rx556_fail
-  rxcap_560_done:
-  # rx rxquantr561 ** 0..1
-    set_addr $I562, rxquantr561_done
-    rx556_cur."!mark_push"(0, rx556_pos, $I562)
-  rxquantr561_loop:
+    goto rxcap_565_done
+  rxcap_565_fail:
+    goto rx561_fail
+  rxcap_565_done:
+  # rx rxquantr566 ** 0..1
+    set_addr $I567, rxquantr566_done
+    rx561_cur."!mark_push"(0, rx561_pos, $I567)
+  rxquantr566_loop:
   # rx literal  "gnorecase"
-    add $I11, rx556_pos, 9
-    gt $I11, rx556_eos, rx556_fail
-    sub $I11, rx556_pos, rx556_off
-    substr $S10, rx556_tgt, $I11, 9
-    ne $S10, "gnorecase", rx556_fail
-    add rx556_pos, 9
-    (rx556_rep) = rx556_cur."!mark_commit"($I562)
-  rxquantr561_done:
+    add $I11, rx561_pos, 9
+    gt $I11, rx561_eos, rx561_fail
+    sub $I11, rx561_pos, rx561_off
+    substr $S10, rx561_tgt, $I11, 9
+    ne $S10, "gnorecase", rx561_fail
+    add rx561_pos, 9
+    (rx561_rep) = rx561_cur."!mark_commit"($I567)
+  rxquantr566_done:
   # rx pass
-    rx556_cur."!cursor_pass"(rx556_pos, "mod_ident:sym<ignorecase>")
-    rx556_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ignorecase>", " at pos=", rx556_pos)
-    .return (rx556_cur)
-  rx556_fail:
+    rx561_cur."!cursor_pass"(rx561_pos, "mod_ident:sym<ignorecase>")
+    rx561_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ignorecase>", " at pos=", rx561_pos)
+    .return (rx561_cur)
+  rx561_fail:
 .annotate 'line', 3
-    (rx556_rep, rx556_pos, $I10, $P10) = rx556_cur."!mark_fail"(0)
-    lt rx556_pos, -1, rx556_done
-    eq rx556_pos, -1, rx556_fail
+    (rx561_rep, rx561_pos, $I10, $P10) = rx561_cur."!mark_fail"(0)
+    lt rx561_pos, -1, rx561_done
+    eq rx561_pos, -1, rx561_fail
     jump $I10
-  rx556_done:
-    rx556_cur."!cursor_fail"()
-    rx556_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ignorecase>")
-    .return (rx556_cur)
+  rx561_done:
+    rx561_cur."!cursor_fail"()
+    rx561_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ignorecase>")
+    .return (rx561_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("153_1274853027.61936") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("153_1275811476.7961") :method
 .annotate 'line', 3
-    new $P558, "ResizablePMCArray"
-    push $P558, "i"
-    .return ($P558)
+    new $P563, "ResizablePMCArray"
+    push $P563, "i"
+    .return ($P563)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>"  :subid("154_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "mod_ident:sym<ratchet>"  :subid("154_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx564_tgt
-    .local int rx564_pos
-    .local int rx564_off
-    .local int rx564_eos
-    .local int rx564_rep
-    .local pmc rx564_cur
-    (rx564_cur, rx564_pos, rx564_tgt) = self."!cursor_start"()
-    rx564_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
-    .lex unicode:"$\x{a2}", rx564_cur
+    .local string rx569_tgt
+    .local int rx569_pos
+    .local int rx569_off
+    .local int rx569_eos
+    .local int rx569_rep
+    .local pmc rx569_cur
+    (rx569_cur, rx569_pos, rx569_tgt) = self."!cursor_start"()
+    rx569_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
+    .lex unicode:"$\x{a2}", rx569_cur
     .local pmc match
     .lex "$/", match
-    length rx564_eos, rx564_tgt
-    set rx564_off, 0
-    lt rx564_pos, 2, rx564_start
-    sub rx564_off, rx564_pos, 1
-    substr rx564_tgt, rx564_tgt, rx564_off
-  rx564_start:
+    length rx569_eos, rx569_tgt
+    gt rx569_pos, rx569_eos, rx569_done
+    set rx569_off, 0
+    lt rx569_pos, 2, rx569_start
+    sub rx569_off, rx569_pos, 1
+    substr rx569_tgt, rx569_tgt, rx569_off
+  rx569_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan567_done
-    goto rxscan567_scan
-  rxscan567_loop:
-    ($P10) = rx564_cur."from"()
+    ne $I10, -1, rxscan572_done
+    goto rxscan572_scan
+  rxscan572_loop:
+    ($P10) = rx569_cur."from"()
     inc $P10
-    set rx564_pos, $P10
-    ge rx564_pos, rx564_eos, rxscan567_done
-  rxscan567_scan:
-    set_addr $I10, rxscan567_loop
-    rx564_cur."!mark_push"(0, rx564_pos, $I10)
-  rxscan567_done:
+    set rx569_pos, $P10
+    ge rx569_pos, rx569_eos, rxscan572_done
+  rxscan572_scan:
+    set_addr $I10, rxscan572_loop
+    rx569_cur."!mark_push"(0, rx569_pos, $I10)
+  rxscan572_done:
 .annotate 'line', 183
   # rx subcapture "sym"
-    set_addr $I10, rxcap_568_fail
-    rx564_cur."!mark_push"(0, rx564_pos, $I10)
+    set_addr $I10, rxcap_573_fail
+    rx569_cur."!mark_push"(0, rx569_pos, $I10)
   # rx literal  "r"
-    add $I11, rx564_pos, 1
-    gt $I11, rx564_eos, rx564_fail
-    sub $I11, rx564_pos, rx564_off
-    substr $S10, rx564_tgt, $I11, 1
-    ne $S10, "r", rx564_fail
-    add rx564_pos, 1
-    set_addr $I10, rxcap_568_fail
-    ($I12, $I11) = rx564_cur."!mark_peek"($I10)
-    rx564_cur."!cursor_pos"($I11)
-    ($P10) = rx564_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx564_pos, "")
-    rx564_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx569_pos, 1
+    gt $I11, rx569_eos, rx569_fail
+    sub $I11, rx569_pos, rx569_off
+    substr $S10, rx569_tgt, $I11, 1
+    ne $S10, "r", rx569_fail
+    add rx569_pos, 1
+    set_addr $I10, rxcap_573_fail
+    ($I12, $I11) = rx569_cur."!mark_peek"($I10)
+    rx569_cur."!cursor_pos"($I11)
+    ($P10) = rx569_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx569_pos, "")
+    rx569_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_568_done
-  rxcap_568_fail:
-    goto rx564_fail
-  rxcap_568_done:
-  # rx rxquantr569 ** 0..1
-    set_addr $I570, rxquantr569_done
-    rx564_cur."!mark_push"(0, rx564_pos, $I570)
-  rxquantr569_loop:
+    goto rxcap_573_done
+  rxcap_573_fail:
+    goto rx569_fail
+  rxcap_573_done:
+  # rx rxquantr574 ** 0..1
+    set_addr $I575, rxquantr574_done
+    rx569_cur."!mark_push"(0, rx569_pos, $I575)
+  rxquantr574_loop:
   # rx literal  "atchet"
-    add $I11, rx564_pos, 6
-    gt $I11, rx564_eos, rx564_fail
-    sub $I11, rx564_pos, rx564_off
-    substr $S10, rx564_tgt, $I11, 6
-    ne $S10, "atchet", rx564_fail
-    add rx564_pos, 6
-    (rx564_rep) = rx564_cur."!mark_commit"($I570)
-  rxquantr569_done:
+    add $I11, rx569_pos, 6
+    gt $I11, rx569_eos, rx569_fail
+    sub $I11, rx569_pos, rx569_off
+    substr $S10, rx569_tgt, $I11, 6
+    ne $S10, "atchet", rx569_fail
+    add rx569_pos, 6
+    (rx569_rep) = rx569_cur."!mark_commit"($I575)
+  rxquantr574_done:
   # rx pass
-    rx564_cur."!cursor_pass"(rx564_pos, "mod_ident:sym<ratchet>")
-    rx564_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ratchet>", " at pos=", rx564_pos)
-    .return (rx564_cur)
-  rx564_fail:
+    rx569_cur."!cursor_pass"(rx569_pos, "mod_ident:sym<ratchet>")
+    rx569_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ratchet>", " at pos=", rx569_pos)
+    .return (rx569_cur)
+  rx569_fail:
 .annotate 'line', 3
-    (rx564_rep, rx564_pos, $I10, $P10) = rx564_cur."!mark_fail"(0)
-    lt rx564_pos, -1, rx564_done
-    eq rx564_pos, -1, rx564_fail
+    (rx569_rep, rx569_pos, $I10, $P10) = rx569_cur."!mark_fail"(0)
+    lt rx569_pos, -1, rx569_done
+    eq rx569_pos, -1, rx569_fail
     jump $I10
-  rx564_done:
-    rx564_cur."!cursor_fail"()
-    rx564_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ratchet>")
-    .return (rx564_cur)
+  rx569_done:
+    rx569_cur."!cursor_fail"()
+    rx569_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ratchet>")
+    .return (rx569_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("155_1274853027.61936") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("155_1275811476.7961") :method
 .annotate 'line', 3
-    new $P566, "ResizablePMCArray"
-    push $P566, "r"
-    .return ($P566)
+    new $P571, "ResizablePMCArray"
+    push $P571, "r"
+    .return ($P571)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>"  :subid("156_1274853027.61936") :method :outer("11_1274853027.61936")
+.sub "mod_ident:sym<sigspace>"  :subid("156_1275811476.7961") :method :outer("11_1275811476.7961")
 .annotate 'line', 3
-    .local string rx572_tgt
-    .local int rx572_pos
-    .local int rx572_off
-    .local int rx572_eos
-    .local int rx572_rep
-    .local pmc rx572_cur
-    (rx572_cur, rx572_pos, rx572_tgt) = self."!cursor_start"()
-    rx572_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
-    .lex unicode:"$\x{a2}", rx572_cur
-    .local pmc match
-    .lex "$/", match
-    length rx572_eos, rx572_tgt
-    set rx572_off, 0
-    lt rx572_pos, 2, rx572_start
-    sub rx572_off, rx572_pos, 1
-    substr rx572_tgt, rx572_tgt, rx572_off
-  rx572_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan575_done
-    goto rxscan575_scan
-  rxscan575_loop:
-    ($P10) = rx572_cur."from"()
-    inc $P10
-    set rx572_pos, $P10
-    ge rx572_pos, rx572_eos, rxscan575_done
-  rxscan575_scan:
-    set_addr $I10, rxscan575_loop
-    rx572_cur."!mark_push"(0, rx572_pos, $I10)
-  rxscan575_done:
+    .local string rx577_tgt
+    .local int rx577_pos
+    .local int rx577_off
+    .local int rx577_eos
+    .local int rx577_rep
+    .local pmc rx577_cur
+    (rx577_cur, rx577_pos, rx577_tgt) = self."!cursor_start"()
+    rx577_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
+    .lex unicode:"$\x{a2}", rx577_cur
+    .local pmc match
+    .lex "$/", match
+    length rx577_eos, rx577_tgt
+    gt rx577_pos, rx577_eos, rx577_done
+    set rx577_off, 0
+    lt rx577_pos, 2, rx577_start
+    sub rx577_off, rx577_pos, 1
+    substr rx577_tgt, rx577_tgt, rx577_off
+  rx577_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan580_done
+    goto rxscan580_scan
+  rxscan580_loop:
+    ($P10) = rx577_cur."from"()
+    inc $P10
+    set rx577_pos, $P10
+    ge rx577_pos, rx577_eos, rxscan580_done
+  rxscan580_scan:
+    set_addr $I10, rxscan580_loop
+    rx577_cur."!mark_push"(0, rx577_pos, $I10)
+  rxscan580_done:
 .annotate 'line', 184
   # rx subcapture "sym"
-    set_addr $I10, rxcap_576_fail
-    rx572_cur."!mark_push"(0, rx572_pos, $I10)
+    set_addr $I10, rxcap_581_fail
+    rx577_cur."!mark_push"(0, rx577_pos, $I10)
   # rx literal  "s"
-    add $I11, rx572_pos, 1
-    gt $I11, rx572_eos, rx572_fail
-    sub $I11, rx572_pos, rx572_off
-    substr $S10, rx572_tgt, $I11, 1
-    ne $S10, "s", rx572_fail
-    add rx572_pos, 1
-    set_addr $I10, rxcap_576_fail
-    ($I12, $I11) = rx572_cur."!mark_peek"($I10)
-    rx572_cur."!cursor_pos"($I11)
-    ($P10) = rx572_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx572_pos, "")
-    rx572_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx577_pos, 1
+    gt $I11, rx577_eos, rx577_fail
+    sub $I11, rx577_pos, rx577_off
+    substr $S10, rx577_tgt, $I11, 1
+    ne $S10, "s", rx577_fail
+    add rx577_pos, 1
+    set_addr $I10, rxcap_581_fail
+    ($I12, $I11) = rx577_cur."!mark_peek"($I10)
+    rx577_cur."!cursor_pos"($I11)
+    ($P10) = rx577_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx577_pos, "")
+    rx577_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_576_done
-  rxcap_576_fail:
-    goto rx572_fail
-  rxcap_576_done:
-  # rx rxquantr577 ** 0..1
-    set_addr $I578, rxquantr577_done
-    rx572_cur."!mark_push"(0, rx572_pos, $I578)
-  rxquantr577_loop:
+    goto rxcap_581_done
+  rxcap_581_fail:
+    goto rx577_fail
+  rxcap_581_done:
+  # rx rxquantr582 ** 0..1
+    set_addr $I583, rxquantr582_done
+    rx577_cur."!mark_push"(0, rx577_pos, $I583)
+  rxquantr582_loop:
   # rx literal  "igspace"
-    add $I11, rx572_pos, 7
-    gt $I11, rx572_eos, rx572_fail
-    sub $I11, rx572_pos, rx572_off
-    substr $S10, rx572_tgt, $I11, 7
-    ne $S10, "igspace", rx572_fail
-    add rx572_pos, 7
-    (rx572_rep) = rx572_cur."!mark_commit"($I578)
-  rxquantr577_done:
+    add $I11, rx577_pos, 7
+    gt $I11, rx577_eos, rx577_fail
+    sub $I11, rx577_pos, rx577_off
+    substr $S10, rx577_tgt, $I11, 7
+    ne $S10, "igspace", rx577_fail
+    add rx577_pos, 7
+    (rx577_rep) = rx577_cur."!mark_commit"($I583)
+  rxquantr582_done:
   # rx pass
-    rx572_cur."!cursor_pass"(rx572_pos, "mod_ident:sym<sigspace>")
-    rx572_cur."!cursor_debug"("PASS  ", "mod_ident:sym<sigspace>", " at pos=", rx572_pos)
-    .return (rx572_cur)
-  rx572_fail:
+    rx577_cur."!cursor_pass"(rx577_pos, "mod_ident:sym<sigspace>")
+    rx577_cur."!cursor_debug"("PASS  ", "mod_ident:sym<sigspace>", " at pos=", rx577_pos)
+    .return (rx577_cur)
+  rx577_fail:
 .annotate 'line', 3
-    (rx572_rep, rx572_pos, $I10, $P10) = rx572_cur."!mark_fail"(0)
-    lt rx572_pos, -1, rx572_done
-    eq rx572_pos, -1, rx572_fail
+    (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
+    lt rx577_pos, -1, rx577_done
+    eq rx577_pos, -1, rx577_fail
     jump $I10
-  rx572_done:
-    rx572_cur."!cursor_fail"()
-    rx572_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<sigspace>")
-    .return (rx572_cur)
+  rx577_done:
+    rx577_cur."!cursor_fail"()
+    rx577_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<sigspace>")
+    .return (rx577_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("157_1274853027.61936") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("157_1275811476.7961") :method
 .annotate 'line', 3
-    new $P574, "ResizablePMCArray"
-    push $P574, "s"
-    .return ($P574)
+    new $P579, "ResizablePMCArray"
+    push $P579, "s"
+    .return ($P579)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block579" :load :anon :subid("158_1274853027.61936")
+.sub "_block584" :load :anon :subid("158_1275811476.7961")
 .annotate 'line', 3
-    .const 'Sub' $P581 = "11_1274853027.61936" 
-    $P582 = $P581()
-    .return ($P582)
+    .const 'Sub' $P586 = "11_1275811476.7961" 
+    $P587 = $P586()
+    .return ($P587)
 .end
 
 
 .namespace []
-.sub "_block584" :load :anon :subid("159_1274853027.61936")
+.sub "_block589" :load :anon :subid("159_1275811476.7961")
 .annotate 'line', 1
-    .const 'Sub' $P586 = "10_1274853027.61936" 
-    $P587 = $P586()
-    .return ($P587)
+    .const 'Sub' $P591 = "10_1275811476.7961" 
+    $P592 = $P591()
+    .return ($P592)
 .end
 
 ### .include 'gen/p6regex-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274853033.06396")
+.sub "_block11"  :anon :subid("10_1275811482.3686")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
@@ -7202,155 +7296,155 @@
 .annotate 'line', 4
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
-    $P1572 = $P14()
+    $P1599 = $P14()
 .annotate 'line', 1
-    .return ($P1572)
-    .const 'Sub' $P1574 = "90_1274853033.06396" 
-    .return ($P1574)
+    .return ($P1599)
+    .const 'Sub' $P1601 = "91_1275811482.3686" 
+    .return ($P1601)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post91") :outer("10_1274853033.06396")
+.sub "" :load :init :subid("post92") :outer("10_1275811482.3686")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274853033.06396" 
+    .const 'Sub' $P12 = "10_1275811482.3686" 
     .local pmc block
     set block, $P12
-    $P1577 = get_root_global ["parrot"], "P6metaclass"
-    $P1577."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
+    $P1604 = get_root_global ["parrot"], "P6metaclass"
+    $P1604."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13"  :subid("11_1274853033.06396") :outer("10_1274853033.06396")
+.sub "_block13"  :subid("11_1275811482.3686") :outer("10_1275811482.3686")
 .annotate 'line', 4
-    .const 'Sub' $P1534 = "88_1274853033.06396" 
-    capture_lex $P1534
-    .const 'Sub' $P1465 = "84_1274853033.06396" 
-    capture_lex $P1465
-    .const 'Sub' $P1397 = "82_1274853033.06396" 
-    capture_lex $P1397
-    .const 'Sub' $P1324 = "79_1274853033.06396" 
-    capture_lex $P1324
-    .const 'Sub' $P1310 = "78_1274853033.06396" 
-    capture_lex $P1310
-    .const 'Sub' $P1286 = "77_1274853033.06396" 
-    capture_lex $P1286
-    .const 'Sub' $P1268 = "76_1274853033.06396" 
+    .const 'Sub' $P1561 = "89_1275811482.3686" 
+    capture_lex $P1561
+    .const 'Sub' $P1492 = "85_1275811482.3686" 
+    capture_lex $P1492
+    .const 'Sub' $P1424 = "83_1275811482.3686" 
+    capture_lex $P1424
+    .const 'Sub' $P1351 = "80_1275811482.3686" 
+    capture_lex $P1351
+    .const 'Sub' $P1337 = "79_1275811482.3686" 
+    capture_lex $P1337
+    .const 'Sub' $P1313 = "78_1275811482.3686" 
+    capture_lex $P1313
+    .const 'Sub' $P1295 = "77_1275811482.3686" 
+    capture_lex $P1295
+    .const 'Sub' $P1281 = "76_1275811482.3686" 
+    capture_lex $P1281
+    .const 'Sub' $P1268 = "75_1275811482.3686" 
     capture_lex $P1268
-    .const 'Sub' $P1254 = "75_1274853033.06396" 
-    capture_lex $P1254
-    .const 'Sub' $P1241 = "74_1274853033.06396" 
-    capture_lex $P1241
-    .const 'Sub' $P1210 = "73_1274853033.06396" 
-    capture_lex $P1210
-    .const 'Sub' $P1179 = "72_1274853033.06396" 
-    capture_lex $P1179
-    .const 'Sub' $P1163 = "71_1274853033.06396" 
-    capture_lex $P1163
-    .const 'Sub' $P1147 = "70_1274853033.06396" 
-    capture_lex $P1147
-    .const 'Sub' $P1131 = "69_1274853033.06396" 
-    capture_lex $P1131
-    .const 'Sub' $P1115 = "68_1274853033.06396" 
-    capture_lex $P1115
-    .const 'Sub' $P1099 = "67_1274853033.06396" 
-    capture_lex $P1099
-    .const 'Sub' $P1083 = "66_1274853033.06396" 
-    capture_lex $P1083
-    .const 'Sub' $P1067 = "65_1274853033.06396" 
-    capture_lex $P1067
-    .const 'Sub' $P1043 = "64_1274853033.06396" 
-    capture_lex $P1043
-    .const 'Sub' $P1028 = "63_1274853033.06396" 
-    capture_lex $P1028
-    .const 'Sub' $P972 = "62_1274853033.06396" 
-    capture_lex $P972
-    .const 'Sub' $P951 = "61_1274853033.06396" 
-    capture_lex $P951
-    .const 'Sub' $P929 = "60_1274853033.06396" 
-    capture_lex $P929
-    .const 'Sub' $P919 = "59_1274853033.06396" 
-    capture_lex $P919
-    .const 'Sub' $P909 = "58_1274853033.06396" 
-    capture_lex $P909
-    .const 'Sub' $P899 = "57_1274853033.06396" 
-    capture_lex $P899
-    .const 'Sub' $P887 = "56_1274853033.06396" 
-    capture_lex $P887
-    .const 'Sub' $P875 = "55_1274853033.06396" 
-    capture_lex $P875
-    .const 'Sub' $P863 = "54_1274853033.06396" 
-    capture_lex $P863
-    .const 'Sub' $P851 = "53_1274853033.06396" 
-    capture_lex $P851
-    .const 'Sub' $P839 = "52_1274853033.06396" 
-    capture_lex $P839
-    .const 'Sub' $P827 = "51_1274853033.06396" 
-    capture_lex $P827
-    .const 'Sub' $P815 = "50_1274853033.06396" 
-    capture_lex $P815
-    .const 'Sub' $P803 = "49_1274853033.06396" 
-    capture_lex $P803
-    .const 'Sub' $P780 = "48_1274853033.06396" 
-    capture_lex $P780
-    .const 'Sub' $P757 = "47_1274853033.06396" 
-    capture_lex $P757
-    .const 'Sub' $P739 = "46_1274853033.06396" 
-    capture_lex $P739
-    .const 'Sub' $P729 = "45_1274853033.06396" 
-    capture_lex $P729
-    .const 'Sub' $P711 = "44_1274853033.06396" 
-    capture_lex $P711
-    .const 'Sub' $P664 = "43_1274853033.06396" 
-    capture_lex $P664
-    .const 'Sub' $P647 = "42_1274853033.06396" 
-    capture_lex $P647
-    .const 'Sub' $P632 = "41_1274853033.06396" 
-    capture_lex $P632
-    .const 'Sub' $P617 = "40_1274853033.06396" 
-    capture_lex $P617
-    .const 'Sub' $P591 = "39_1274853033.06396" 
-    capture_lex $P591
-    .const 'Sub' $P541 = "37_1274853033.06396" 
+    .const 'Sub' $P1237 = "74_1275811482.3686" 
+    capture_lex $P1237
+    .const 'Sub' $P1206 = "73_1275811482.3686" 
+    capture_lex $P1206
+    .const 'Sub' $P1190 = "72_1275811482.3686" 
+    capture_lex $P1190
+    .const 'Sub' $P1174 = "71_1275811482.3686" 
+    capture_lex $P1174
+    .const 'Sub' $P1158 = "70_1275811482.3686" 
+    capture_lex $P1158
+    .const 'Sub' $P1142 = "69_1275811482.3686" 
+    capture_lex $P1142
+    .const 'Sub' $P1126 = "68_1275811482.3686" 
+    capture_lex $P1126
+    .const 'Sub' $P1110 = "67_1275811482.3686" 
+    capture_lex $P1110
+    .const 'Sub' $P1094 = "66_1275811482.3686" 
+    capture_lex $P1094
+    .const 'Sub' $P1070 = "65_1275811482.3686" 
+    capture_lex $P1070
+    .const 'Sub' $P1055 = "64_1275811482.3686" 
+    capture_lex $P1055
+    .const 'Sub' $P999 = "63_1275811482.3686" 
+    capture_lex $P999
+    .const 'Sub' $P978 = "62_1275811482.3686" 
+    capture_lex $P978
+    .const 'Sub' $P956 = "61_1275811482.3686" 
+    capture_lex $P956
+    .const 'Sub' $P946 = "60_1275811482.3686" 
+    capture_lex $P946
+    .const 'Sub' $P936 = "59_1275811482.3686" 
+    capture_lex $P936
+    .const 'Sub' $P926 = "58_1275811482.3686" 
+    capture_lex $P926
+    .const 'Sub' $P914 = "57_1275811482.3686" 
+    capture_lex $P914
+    .const 'Sub' $P902 = "56_1275811482.3686" 
+    capture_lex $P902
+    .const 'Sub' $P890 = "55_1275811482.3686" 
+    capture_lex $P890
+    .const 'Sub' $P878 = "54_1275811482.3686" 
+    capture_lex $P878
+    .const 'Sub' $P866 = "53_1275811482.3686" 
+    capture_lex $P866
+    .const 'Sub' $P854 = "52_1275811482.3686" 
+    capture_lex $P854
+    .const 'Sub' $P842 = "51_1275811482.3686" 
+    capture_lex $P842
+    .const 'Sub' $P830 = "50_1275811482.3686" 
+    capture_lex $P830
+    .const 'Sub' $P807 = "49_1275811482.3686" 
+    capture_lex $P807
+    .const 'Sub' $P784 = "48_1275811482.3686" 
+    capture_lex $P784
+    .const 'Sub' $P766 = "47_1275811482.3686" 
+    capture_lex $P766
+    .const 'Sub' $P756 = "46_1275811482.3686" 
+    capture_lex $P756
+    .const 'Sub' $P738 = "45_1275811482.3686" 
+    capture_lex $P738
+    .const 'Sub' $P665 = "43_1275811482.3686" 
+    capture_lex $P665
+    .const 'Sub' $P648 = "42_1275811482.3686" 
+    capture_lex $P648
+    .const 'Sub' $P633 = "41_1275811482.3686" 
+    capture_lex $P633
+    .const 'Sub' $P618 = "40_1275811482.3686" 
+    capture_lex $P618
+    .const 'Sub' $P592 = "39_1275811482.3686" 
+    capture_lex $P592
+    .const 'Sub' $P541 = "37_1275811482.3686" 
     capture_lex $P541
-    .const 'Sub' $P473 = "35_1274853033.06396" 
+    .const 'Sub' $P473 = "35_1275811482.3686" 
     capture_lex $P473
-    .const 'Sub' $P418 = "32_1274853033.06396" 
+    .const 'Sub' $P418 = "32_1275811482.3686" 
     capture_lex $P418
-    .const 'Sub' $P403 = "31_1274853033.06396" 
+    .const 'Sub' $P403 = "31_1275811482.3686" 
     capture_lex $P403
-    .const 'Sub' $P377 = "29_1274853033.06396" 
+    .const 'Sub' $P377 = "29_1275811482.3686" 
     capture_lex $P377
-    .const 'Sub' $P360 = "28_1274853033.06396" 
+    .const 'Sub' $P360 = "28_1275811482.3686" 
     capture_lex $P360
-    .const 'Sub' $P338 = "27_1274853033.06396" 
+    .const 'Sub' $P338 = "27_1275811482.3686" 
     capture_lex $P338
-    .const 'Sub' $P305 = "26_1274853033.06396" 
+    .const 'Sub' $P305 = "26_1275811482.3686" 
     capture_lex $P305
-    .const 'Sub' $P50 = "13_1274853033.06396" 
+    .const 'Sub' $P50 = "13_1275811482.3686" 
     capture_lex $P50
-    .const 'Sub' $P16 = "12_1274853033.06396" 
+    .const 'Sub' $P16 = "12_1275811482.3686" 
     capture_lex $P16
     get_global $P15, "@MODIFIERS"
-    unless_null $P15, vivify_93
+    unless_null $P15, vivify_94
     $P15 = root_new ['parrot';'ResizablePMCArray']
     set_global "@MODIFIERS", $P15
-  vivify_93:
-.annotate 'line', 479
-    .const 'Sub' $P16 = "12_1274853033.06396" 
+  vivify_94:
+.annotate 'line', 494
+    .const 'Sub' $P16 = "12_1275811482.3686" 
     newclosure $P49, $P16
     .lex "buildsub", $P49
-.annotate 'line', 496
-    .const 'Sub' $P50 = "13_1274853033.06396" 
+.annotate 'line', 511
+    .const 'Sub' $P50 = "13_1275811482.3686" 
     newclosure $P304, $P50
     .lex "capnames", $P304
-.annotate 'line', 562
-    .const 'Sub' $P305 = "26_1274853033.06396" 
+.annotate 'line', 577
+    .const 'Sub' $P305 = "26_1275811482.3686" 
     newclosure $P337, $P305
     .lex "backmod", $P337
-.annotate 'line', 569
-    .const 'Sub' $P338 = "27_1274853033.06396" 
+.annotate 'line', 584
+    .const 'Sub' $P338 = "27_1275811482.3686" 
     newclosure $P358, $P338
     .lex "subrule_alias", $P358
 .annotate 'line', 4
@@ -7361,102 +7455,103 @@
     $P0."ctxsave"()
   ctxsave_done:
     get_global $P359, "@MODIFIERS"
-.annotate 'line', 472
-    find_lex $P1563, "buildsub"
-    find_lex $P1564, "capnames"
-    find_lex $P1565, "backmod"
-    find_lex $P1566, "subrule_alias"
+.annotate 'line', 487
+    find_lex $P1590, "buildsub"
+    find_lex $P1591, "capnames"
+    find_lex $P1592, "backmod"
+    find_lex $P1593, "subrule_alias"
 .annotate 'line', 4
-    .return ($P1566)
-    .const 'Sub' $P1568 = "89_1274853033.06396" 
-    .return ($P1568)
+    .return ($P1593)
+    .const 'Sub' $P1595 = "90_1275811482.3686" 
+    .return ($P1595)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "" :load :init :subid("post92") :outer("11_1274853033.06396")
+.sub "" :load :init :subid("post93") :outer("11_1275811482.3686")
 .annotate 'line', 4
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 7
 
-        $P1571 = new ['ResizablePMCArray']
+        $P1598 = new ['ResizablePMCArray']
         $P0 = new ['Hash']
-        push $P1571, $P0
+        push $P1598, $P0
     
-    set_global "@MODIFIERS", $P1571
+    set_global "@MODIFIERS", $P1598
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "buildsub"  :subid("12_1274853033.06396") :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "buildsub"  :subid("12_1275811482.3686") :outer("11_1275811482.3686")
     .param pmc param_19
     .param pmc param_20 :optional
     .param int has_param_20 :opt_flag
-.annotate 'line', 479
+.annotate 'line', 494
     new $P18, 'ExceptionHandler'
     set_addr $P18, control_17
-    $P18."handle_types"(57)
+    $P18."handle_types"(.CONTROL_RETURN)
     push_eh $P18
     .lex "$rpast", param_19
-    if has_param_20, optparam_94
+    if has_param_20, optparam_95
     get_hll_global $P21, ["PAST"], "Block"
     $P22 = $P21."new"()
     set param_20, $P22
-  optparam_94:
+  optparam_95:
     .lex "$block", param_20
-.annotate 'line', 480
+.annotate 'line', 495
     $P23 = root_new ['parrot';'Hash']
     .lex "%capnames", $P23
     find_lex $P24, "$rpast"
     $P25 = "capnames"($P24, 0)
     store_lex "%capnames", $P25
-.annotate 'line', 481
+.annotate 'line', 496
     new $P26, "Integer"
     assign $P26, 0
     find_lex $P27, "%capnames"
-    unless_null $P27, vivify_95
+    unless_null $P27, vivify_96
     $P27 = root_new ['parrot';'Hash']
     store_lex "%capnames", $P27
-  vivify_95:
+  vivify_96:
     set $P27[""], $P26
-.annotate 'line', 482
+.annotate 'line', 497
     get_hll_global $P28, ["PAST"], "Regex"
-.annotate 'line', 483
+.annotate 'line', 498
     get_hll_global $P29, ["PAST"], "Regex"
     $P30 = $P29."new"("scan" :named("pasttype"))
     find_lex $P31, "$rpast"
-.annotate 'line', 485
+.annotate 'line', 500
     get_hll_global $P32, ["PAST"], "Regex"
     $P33 = $P32."new"("pass" :named("pasttype"))
     find_lex $P34, "%capnames"
     $P35 = $P28."new"($P30, $P31, $P33, "concat" :named("pasttype"), $P34 :named("capnames"))
-.annotate 'line', 482
+.annotate 'line', 497
     store_lex "$rpast", $P35
-.annotate 'line', 489
+.annotate 'line', 504
     find_lex $P37, "$block"
     $P38 = $P37."symbol"(unicode:"$\x{a2}")
     if $P38, unless_36_end
     find_lex $P39, "$block"
     $P39."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
   unless_36_end:
-.annotate 'line', 490
+.annotate 'line', 505
     find_lex $P41, "$block"
     $P42 = $P41."symbol"("$/")
     if $P42, unless_40_end
     find_lex $P43, "$block"
     $P43."symbol"("$/", "lexical" :named("scope"))
   unless_40_end:
-.annotate 'line', 491
+.annotate 'line', 506
     find_lex $P44, "$block"
     find_lex $P45, "$rpast"
     $P44."push"($P45)
-.annotate 'line', 492
+.annotate 'line', 507
     find_lex $P46, "$block"
     $P46."blocktype"("method")
     find_lex $P47, "$block"
-.annotate 'line', 479
+.annotate 'line', 494
     .return ($P47)
   control_17:
     .local pmc exception 
@@ -7467,49 +7562,50 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "capnames"  :subid("13_1274853033.06396") :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "capnames"  :subid("13_1275811482.3686") :outer("11_1275811482.3686")
     .param pmc param_53
     .param pmc param_54
-.annotate 'line', 496
-    .const 'Sub' $P279 = "24_1274853033.06396" 
+.annotate 'line', 511
+    .const 'Sub' $P279 = "24_1275811482.3686" 
     capture_lex $P279
-    .const 'Sub' $P216 = "21_1274853033.06396" 
+    .const 'Sub' $P216 = "21_1275811482.3686" 
     capture_lex $P216
-    .const 'Sub' $P174 = "19_1274853033.06396" 
+    .const 'Sub' $P174 = "19_1275811482.3686" 
     capture_lex $P174
-    .const 'Sub' $P132 = "17_1274853033.06396" 
+    .const 'Sub' $P132 = "17_1275811482.3686" 
     capture_lex $P132
-    .const 'Sub' $P65 = "14_1274853033.06396" 
+    .const 'Sub' $P65 = "14_1275811482.3686" 
     capture_lex $P65
     new $P52, 'ExceptionHandler'
     set_addr $P52, control_51
-    $P52."handle_types"(57)
+    $P52."handle_types"(.CONTROL_RETURN)
     push_eh $P52
     .lex "$ast", param_53
     .lex "$count", param_54
-.annotate 'line', 497
+.annotate 'line', 512
     $P55 = root_new ['parrot';'Hash']
     .lex "%capnames", $P55
-.annotate 'line', 498
+.annotate 'line', 513
     new $P56, "Undef"
     .lex "$pasttype", $P56
-.annotate 'line', 496
+.annotate 'line', 511
     find_lex $P57, "%capnames"
-.annotate 'line', 498
+.annotate 'line', 513
     find_lex $P58, "$ast"
     $P59 = $P58."pasttype"()
     store_lex "$pasttype", $P59
-.annotate 'line', 499
+.annotate 'line', 514
     find_lex $P61, "$pasttype"
     set $S62, $P61
     iseq $I63, $S62, "alt"
     if $I63, if_60
-.annotate 'line', 512
+.annotate 'line', 527
     find_lex $P123, "$pasttype"
     set $S124, $P123
     iseq $I125, $S124, "concat"
     if $I125, if_122
-.annotate 'line', 521
+.annotate 'line', 536
     find_lex $P167, "$pasttype"
     set $S168, $P167
     iseq $I169, $S168, "subrule"
@@ -7525,51 +7621,51 @@
     set $P165, $I172
   if_166_end:
     if $P165, if_164
-.annotate 'line', 534
+.annotate 'line', 549
     find_lex $P212, "$pasttype"
     set $S213, $P212
     iseq $I214, $S213, "subcapture"
     if $I214, if_211
-.annotate 'line', 551
+.annotate 'line', 566
     find_lex $P275, "$pasttype"
     set $S276, $P275
     iseq $I277, $S276, "quant"
     unless $I277, if_274_end
-    .const 'Sub' $P279 = "24_1274853033.06396" 
+    .const 'Sub' $P279 = "24_1275811482.3686" 
     capture_lex $P279
     $P279()
   if_274_end:
     goto if_211_end
   if_211:
-.annotate 'line', 534
-    .const 'Sub' $P216 = "21_1274853033.06396" 
+.annotate 'line', 549
+    .const 'Sub' $P216 = "21_1275811482.3686" 
     capture_lex $P216
     $P216()
   if_211_end:
     goto if_164_end
   if_164:
-.annotate 'line', 521
-    .const 'Sub' $P174 = "19_1274853033.06396" 
+.annotate 'line', 536
+    .const 'Sub' $P174 = "19_1275811482.3686" 
     capture_lex $P174
     $P174()
   if_164_end:
     goto if_122_end
   if_122:
-.annotate 'line', 513
+.annotate 'line', 528
     find_lex $P127, "$ast"
     $P128 = $P127."list"()
     defined $I129, $P128
-    unless $I129, for_undef_116
+    unless $I129, for_undef_117
     iter $P126, $P128
     new $P162, 'ExceptionHandler'
     set_addr $P162, loop161_handler
-    $P162."handle_types"(64, 66, 65)
+    $P162."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P162
   loop161_test:
     unless $P126, loop161_done
     shift $P130, $P126
   loop161_redo:
-    .const 'Sub' $P132 = "17_1274853033.06396" 
+    .const 'Sub' $P132 = "17_1275811482.3686" 
     capture_lex $P132
     $P132($P130)
   loop161_next:
@@ -7578,30 +7674,30 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P163, exception, 'type'
-    eq $P163, 64, loop161_next
-    eq $P163, 66, loop161_redo
+    eq $P163, .CONTROL_LOOP_NEXT, loop161_next
+    eq $P163, .CONTROL_LOOP_REDO, loop161_redo
   loop161_done:
     pop_eh 
-  for_undef_116:
+  for_undef_117:
   if_122_end:
-.annotate 'line', 512
+.annotate 'line', 527
     goto if_60_end
   if_60:
-.annotate 'line', 499
-    .const 'Sub' $P65 = "14_1274853033.06396" 
+.annotate 'line', 514
+    .const 'Sub' $P65 = "14_1275811482.3686" 
     capture_lex $P65
     $P65()
   if_60_end:
-.annotate 'line', 558
+.annotate 'line', 573
     find_lex $P300, "$count"
     find_lex $P301, "%capnames"
-    unless_null $P301, vivify_136
+    unless_null $P301, vivify_137
     $P301 = root_new ['parrot';'Hash']
     store_lex "%capnames", $P301
-  vivify_136:
+  vivify_137:
     set $P301[""], $P300
     find_lex $P302, "%capnames"
-.annotate 'line', 496
+.annotate 'line', 511
     .return ($P302)
   control_51:
     .local pmc exception 
@@ -7612,38 +7708,39 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block278"  :anon :subid("24_1274853033.06396") :outer("13_1274853033.06396")
-.annotate 'line', 551
-    .const 'Sub' $P290 = "25_1274853033.06396" 
+.include "except_types.pasm"
+.sub "_block278"  :anon :subid("24_1275811482.3686") :outer("13_1275811482.3686")
+.annotate 'line', 566
+    .const 'Sub' $P290 = "25_1275811482.3686" 
     capture_lex $P290
-.annotate 'line', 552
+.annotate 'line', 567
     $P280 = root_new ['parrot';'Hash']
     .lex "%astcap", $P280
     find_lex $P281, "$ast"
-    unless_null $P281, vivify_96
+    unless_null $P281, vivify_97
     $P281 = root_new ['parrot';'ResizablePMCArray']
-  vivify_96:
+  vivify_97:
     set $P282, $P281[0]
-    unless_null $P282, vivify_97
+    unless_null $P282, vivify_98
     new $P282, "Undef"
-  vivify_97:
+  vivify_98:
     find_lex $P283, "$count"
     $P284 = "capnames"($P282, $P283)
     store_lex "%astcap", $P284
-.annotate 'line', 553
+.annotate 'line', 568
     find_lex $P286, "%astcap"
     defined $I287, $P286
-    unless $I287, for_undef_98
+    unless $I287, for_undef_99
     iter $P285, $P286
     new $P296, 'ExceptionHandler'
     set_addr $P296, loop295_handler
-    $P296."handle_types"(64, 66, 65)
+    $P296."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P296
   loop295_test:
     unless $P285, loop295_done
     shift $P288, $P285
   loop295_redo:
-    .const 'Sub' $P290 = "25_1274853033.06396" 
+    .const 'Sub' $P290 = "25_1275811482.3686" 
     capture_lex $P290
     $P290($P288)
   loop295_next:
@@ -7652,87 +7749,88 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P297, exception, 'type'
-    eq $P297, 64, loop295_next
-    eq $P297, 66, loop295_redo
+    eq $P297, .CONTROL_LOOP_NEXT, loop295_next
+    eq $P297, .CONTROL_LOOP_REDO, loop295_redo
   loop295_done:
     pop_eh 
-  for_undef_98:
-.annotate 'line', 556
+  for_undef_99:
+.annotate 'line', 571
     find_lex $P298, "%astcap"
-    unless_null $P298, vivify_100
+    unless_null $P298, vivify_101
     $P298 = root_new ['parrot';'Hash']
-  vivify_100:
+  vivify_101:
     set $P299, $P298[""]
-    unless_null $P299, vivify_101
+    unless_null $P299, vivify_102
     new $P299, "Undef"
-  vivify_101:
+  vivify_102:
     store_lex "$count", $P299
-.annotate 'line', 551
+.annotate 'line', 566
     .return ($P299)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block289"  :anon :subid("25_1274853033.06396") :outer("24_1274853033.06396")
+.sub "_block289"  :anon :subid("25_1275811482.3686") :outer("24_1275811482.3686")
     .param pmc param_291
-.annotate 'line', 553
+.annotate 'line', 568
     .lex "$_", param_291
-.annotate 'line', 554
+.annotate 'line', 569
     new $P292, "Integer"
     assign $P292, 2
     find_lex $P293, "$_"
     find_lex $P294, "%capnames"
-    unless_null $P294, vivify_99
+    unless_null $P294, vivify_100
     $P294 = root_new ['parrot';'Hash']
     store_lex "%capnames", $P294
-  vivify_99:
+  vivify_100:
     set $P294[$P293], $P292
-.annotate 'line', 553
+.annotate 'line', 568
     .return ($P292)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block215"  :anon :subid("21_1274853033.06396") :outer("13_1274853033.06396")
-.annotate 'line', 534
-    .const 'Sub' $P256 = "23_1274853033.06396" 
+.include "except_types.pasm"
+.sub "_block215"  :anon :subid("21_1275811482.3686") :outer("13_1275811482.3686")
+.annotate 'line', 549
+    .const 'Sub' $P256 = "23_1275811482.3686" 
     capture_lex $P256
-    .const 'Sub' $P228 = "22_1274853033.06396" 
+    .const 'Sub' $P228 = "22_1275811482.3686" 
     capture_lex $P228
-.annotate 'line', 535
+.annotate 'line', 550
     new $P217, "Undef"
     .lex "$name", $P217
-.annotate 'line', 536
+.annotate 'line', 551
     $P218 = root_new ['parrot';'ResizablePMCArray']
     .lex "@names", $P218
-.annotate 'line', 545
+.annotate 'line', 560
     $P219 = root_new ['parrot';'Hash']
     .lex "%x", $P219
-.annotate 'line', 535
+.annotate 'line', 550
     find_lex $P220, "$ast"
     $P221 = $P220."name"()
     store_lex "$name", $P221
-.annotate 'line', 536
+.annotate 'line', 551
 
             $P0 = find_lex '$name'
             $S0 = $P0
             $P222 = split '=', $S0
         
     store_lex "@names", $P222
-.annotate 'line', 541
+.annotate 'line', 556
     find_lex $P224, "@names"
     defined $I225, $P224
-    unless $I225, for_undef_102
+    unless $I225, for_undef_103
     iter $P223, $P224
     new $P245, 'ExceptionHandler'
     set_addr $P245, loop244_handler
-    $P245."handle_types"(64, 66, 65)
+    $P245."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P245
   loop244_test:
     unless $P223, loop244_done
     shift $P226, $P223
   loop244_redo:
-    .const 'Sub' $P228 = "22_1274853033.06396" 
+    .const 'Sub' $P228 = "22_1275811482.3686" 
     capture_lex $P228
     $P228($P226)
   loop244_next:
@@ -7741,37 +7839,37 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P246, exception, 'type'
-    eq $P246, 64, loop244_next
-    eq $P246, 66, loop244_redo
+    eq $P246, .CONTROL_LOOP_NEXT, loop244_next
+    eq $P246, .CONTROL_LOOP_REDO, loop244_redo
   loop244_done:
     pop_eh 
-  for_undef_102:
-.annotate 'line', 545
+  for_undef_103:
+.annotate 'line', 560
     find_lex $P247, "$ast"
-    unless_null $P247, vivify_104
+    unless_null $P247, vivify_105
     $P247 = root_new ['parrot';'ResizablePMCArray']
-  vivify_104:
+  vivify_105:
     set $P248, $P247[0]
-    unless_null $P248, vivify_105
+    unless_null $P248, vivify_106
     new $P248, "Undef"
-  vivify_105:
+  vivify_106:
     find_lex $P249, "$count"
     $P250 = "capnames"($P248, $P249)
     store_lex "%x", $P250
-.annotate 'line', 546
+.annotate 'line', 561
     find_lex $P252, "%x"
     defined $I253, $P252
-    unless $I253, for_undef_106
+    unless $I253, for_undef_107
     iter $P251, $P252
     new $P270, 'ExceptionHandler'
     set_addr $P270, loop269_handler
-    $P270."handle_types"(64, 66, 65)
+    $P270."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P270
   loop269_test:
     unless $P251, loop269_done
     shift $P254, $P251
   loop269_redo:
-    .const 'Sub' $P256 = "23_1274853033.06396" 
+    .const 'Sub' $P256 = "23_1275811482.3686" 
     capture_lex $P256
     $P256($P254)
   loop269_next:
@@ -7780,32 +7878,32 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P271, exception, 'type'
-    eq $P271, 64, loop269_next
-    eq $P271, 66, loop269_redo
+    eq $P271, .CONTROL_LOOP_NEXT, loop269_next
+    eq $P271, .CONTROL_LOOP_REDO, loop269_redo
   loop269_done:
     pop_eh 
-  for_undef_106:
-.annotate 'line', 549
+  for_undef_107:
+.annotate 'line', 564
     find_lex $P272, "%x"
-    unless_null $P272, vivify_112
+    unless_null $P272, vivify_113
     $P272 = root_new ['parrot';'Hash']
-  vivify_112:
+  vivify_113:
     set $P273, $P272[""]
-    unless_null $P273, vivify_113
+    unless_null $P273, vivify_114
     new $P273, "Undef"
-  vivify_113:
+  vivify_114:
     store_lex "$count", $P273
-.annotate 'line', 534
+.annotate 'line', 549
     .return ($P273)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block227"  :anon :subid("22_1274853033.06396") :outer("21_1274853033.06396")
+.sub "_block227"  :anon :subid("22_1275811482.3686") :outer("21_1275811482.3686")
     .param pmc param_229
-.annotate 'line', 541
+.annotate 'line', 556
     .lex "$_", param_229
-.annotate 'line', 542
+.annotate 'line', 557
     find_lex $P233, "$_"
     set $S234, $P233
     iseq $I235, $S234, "0"
@@ -7825,77 +7923,78 @@
     add $P240, $P239, 1
     store_lex "$count", $P240
   if_230_end:
-.annotate 'line', 543
+.annotate 'line', 558
     new $P241, "Integer"
     assign $P241, 1
     find_lex $P242, "$_"
     find_lex $P243, "%capnames"
-    unless_null $P243, vivify_103
+    unless_null $P243, vivify_104
     $P243 = root_new ['parrot';'Hash']
     store_lex "%capnames", $P243
-  vivify_103:
+  vivify_104:
     set $P243[$P242], $P241
-.annotate 'line', 541
+.annotate 'line', 556
     .return ($P241)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block255"  :anon :subid("23_1274853033.06396") :outer("21_1274853033.06396")
+.sub "_block255"  :anon :subid("23_1275811482.3686") :outer("21_1275811482.3686")
     .param pmc param_257
-.annotate 'line', 546
+.annotate 'line', 561
     .lex "$_", param_257
-.annotate 'line', 547
+.annotate 'line', 562
     find_lex $P258, "$_"
     find_lex $P259, "%capnames"
-    unless_null $P259, vivify_107
+    unless_null $P259, vivify_108
     $P259 = root_new ['parrot';'Hash']
-  vivify_107:
+  vivify_108:
     set $P260, $P259[$P258]
-    unless_null $P260, vivify_108
+    unless_null $P260, vivify_109
     new $P260, "Undef"
-  vivify_108:
+  vivify_109:
     set $N261, $P260
     new $P262, 'Float'
     set $P262, $N261
     find_lex $P263, "$_"
     find_lex $P264, "%x"
-    unless_null $P264, vivify_109
+    unless_null $P264, vivify_110
     $P264 = root_new ['parrot';'Hash']
-  vivify_109:
+  vivify_110:
     set $P265, $P264[$P263]
-    unless_null $P265, vivify_110
+    unless_null $P265, vivify_111
     new $P265, "Undef"
-  vivify_110:
+  vivify_111:
     add $P266, $P262, $P265
     find_lex $P267, "$_"
     find_lex $P268, "%capnames"
-    unless_null $P268, vivify_111
+    unless_null $P268, vivify_112
     $P268 = root_new ['parrot';'Hash']
     store_lex "%capnames", $P268
-  vivify_111:
+  vivify_112:
     set $P268[$P267], $P266
-.annotate 'line', 546
+.annotate 'line', 561
     .return ($P266)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block173"  :anon :subid("19_1274853033.06396") :outer("13_1274853033.06396")
-.annotate 'line', 521
-    .const 'Sub' $P192 = "20_1274853033.06396" 
+.include "except_types.pasm"
+.sub "_block173"  :anon :subid("19_1275811482.3686") :outer("13_1275811482.3686")
+.annotate 'line', 536
+    .const 'Sub' $P192 = "20_1275811482.3686" 
     capture_lex $P192
-.annotate 'line', 522
+.annotate 'line', 537
     new $P175, "Undef"
     .lex "$name", $P175
-.annotate 'line', 524
+.annotate 'line', 539
     $P176 = root_new ['parrot';'ResizablePMCArray']
     .lex "@names", $P176
-.annotate 'line', 522
+.annotate 'line', 537
     find_lex $P177, "$ast"
     $P178 = $P177."name"()
     store_lex "$name", $P178
-.annotate 'line', 523
+.annotate 'line', 538
     find_lex $P180, "$name"
     set $S181, $P180
     iseq $I182, $S181, ""
@@ -7906,27 +8005,27 @@
     find_lex $P185, "$name"
     $P184."name"($P185)
   if_179_end:
-.annotate 'line', 524
+.annotate 'line', 539
 
             $P0 = find_lex '$name'
             $S0 = $P0
             $P186 = split '=', $S0
         
     store_lex "@names", $P186
-.annotate 'line', 529
+.annotate 'line', 544
     find_lex $P188, "@names"
     defined $I189, $P188
-    unless $I189, for_undef_114
+    unless $I189, for_undef_115
     iter $P187, $P188
     new $P209, 'ExceptionHandler'
     set_addr $P209, loop208_handler
-    $P209."handle_types"(64, 66, 65)
+    $P209."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P209
   loop208_test:
     unless $P187, loop208_done
     shift $P190, $P187
   loop208_redo:
-    .const 'Sub' $P192 = "20_1274853033.06396" 
+    .const 'Sub' $P192 = "20_1275811482.3686" 
     capture_lex $P192
     $P192($P190)
   loop208_next:
@@ -7935,22 +8034,22 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P210, exception, 'type'
-    eq $P210, 64, loop208_next
-    eq $P210, 66, loop208_redo
+    eq $P210, .CONTROL_LOOP_NEXT, loop208_next
+    eq $P210, .CONTROL_LOOP_REDO, loop208_redo
   loop208_done:
     pop_eh 
-  for_undef_114:
-.annotate 'line', 521
+  for_undef_115:
+.annotate 'line', 536
     .return ($P187)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block191"  :anon :subid("20_1274853033.06396") :outer("19_1274853033.06396")
+.sub "_block191"  :anon :subid("20_1275811482.3686") :outer("19_1275811482.3686")
     .param pmc param_193
-.annotate 'line', 529
+.annotate 'line', 544
     .lex "$_", param_193
-.annotate 'line', 530
+.annotate 'line', 545
     find_lex $P197, "$_"
     set $S198, $P197
     iseq $I199, $S198, "0"
@@ -7970,28 +8069,29 @@
     add $P204, $P203, 1
     store_lex "$count", $P204
   if_194_end:
-.annotate 'line', 531
+.annotate 'line', 546
     new $P205, "Integer"
     assign $P205, 1
     find_lex $P206, "$_"
     find_lex $P207, "%capnames"
-    unless_null $P207, vivify_115
+    unless_null $P207, vivify_116
     $P207 = root_new ['parrot';'Hash']
     store_lex "%capnames", $P207
-  vivify_115:
+  vivify_116:
     set $P207[$P206], $P205
-.annotate 'line', 529
+.annotate 'line', 544
     .return ($P205)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block131"  :anon :subid("17_1274853033.06396") :outer("13_1274853033.06396")
+.include "except_types.pasm"
+.sub "_block131"  :anon :subid("17_1275811482.3686") :outer("13_1275811482.3686")
     .param pmc param_134
-.annotate 'line', 513
-    .const 'Sub' $P143 = "18_1274853033.06396" 
+.annotate 'line', 528
+    .const 'Sub' $P143 = "18_1275811482.3686" 
     capture_lex $P143
-.annotate 'line', 514
+.annotate 'line', 529
     $P133 = root_new ['parrot';'Hash']
     .lex "%x", $P133
     .lex "$_", param_134
@@ -7999,20 +8099,20 @@
     find_lex $P136, "$count"
     $P137 = "capnames"($P135, $P136)
     store_lex "%x", $P137
-.annotate 'line', 515
+.annotate 'line', 530
     find_lex $P139, "%x"
     defined $I140, $P139
-    unless $I140, for_undef_117
+    unless $I140, for_undef_118
     iter $P138, $P139
     new $P157, 'ExceptionHandler'
     set_addr $P157, loop156_handler
-    $P157."handle_types"(64, 66, 65)
+    $P157."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P157
   loop156_test:
     unless $P138, loop156_done
     shift $P141, $P138
   loop156_redo:
-    .const 'Sub' $P143 = "18_1274853033.06396" 
+    .const 'Sub' $P143 = "18_1275811482.3686" 
     capture_lex $P143
     $P143($P141)
   loop156_next:
@@ -8021,91 +8121,92 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P158, exception, 'type'
-    eq $P158, 64, loop156_next
-    eq $P158, 66, loop156_redo
+    eq $P158, .CONTROL_LOOP_NEXT, loop156_next
+    eq $P158, .CONTROL_LOOP_REDO, loop156_redo
   loop156_done:
     pop_eh 
-  for_undef_117:
-.annotate 'line', 518
+  for_undef_118:
+.annotate 'line', 533
     find_lex $P159, "%x"
-    unless_null $P159, vivify_123
+    unless_null $P159, vivify_124
     $P159 = root_new ['parrot';'Hash']
-  vivify_123:
+  vivify_124:
     set $P160, $P159[""]
-    unless_null $P160, vivify_124
+    unless_null $P160, vivify_125
     new $P160, "Undef"
-  vivify_124:
+  vivify_125:
     store_lex "$count", $P160
-.annotate 'line', 513
+.annotate 'line', 528
     .return ($P160)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block142"  :anon :subid("18_1274853033.06396") :outer("17_1274853033.06396")
+.sub "_block142"  :anon :subid("18_1275811482.3686") :outer("17_1275811482.3686")
     .param pmc param_144
-.annotate 'line', 515
+.annotate 'line', 530
     .lex "$_", param_144
-.annotate 'line', 516
+.annotate 'line', 531
     find_lex $P145, "$_"
     find_lex $P146, "%capnames"
-    unless_null $P146, vivify_118
+    unless_null $P146, vivify_119
     $P146 = root_new ['parrot';'Hash']
-  vivify_118:
+  vivify_119:
     set $P147, $P146[$P145]
-    unless_null $P147, vivify_119
+    unless_null $P147, vivify_120
     new $P147, "Undef"
-  vivify_119:
+  vivify_120:
     set $N148, $P147
     new $P149, 'Float'
     set $P149, $N148
     find_lex $P150, "$_"
     find_lex $P151, "%x"
-    unless_null $P151, vivify_120
+    unless_null $P151, vivify_121
     $P151 = root_new ['parrot';'Hash']
-  vivify_120:
+  vivify_121:
     set $P152, $P151[$P150]
-    unless_null $P152, vivify_121
+    unless_null $P152, vivify_122
     new $P152, "Undef"
-  vivify_121:
+  vivify_122:
     add $P153, $P149, $P152
     find_lex $P154, "$_"
     find_lex $P155, "%capnames"
-    unless_null $P155, vivify_122
+    unless_null $P155, vivify_123
     $P155 = root_new ['parrot';'Hash']
     store_lex "%capnames", $P155
-  vivify_122:
+  vivify_123:
     set $P155[$P154], $P153
-.annotate 'line', 515
+.annotate 'line', 530
     .return ($P153)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block64"  :anon :subid("14_1274853033.06396") :outer("13_1274853033.06396")
-.annotate 'line', 499
-    .const 'Sub' $P74 = "15_1274853033.06396" 
+.include "except_types.pasm"
+.sub "_block64"  :anon :subid("14_1275811482.3686") :outer("13_1275811482.3686")
+.annotate 'line', 514
+    .const 'Sub' $P74 = "15_1275811482.3686" 
     capture_lex $P74
-.annotate 'line', 500
+.annotate 'line', 515
     new $P66, "Undef"
     .lex "$max", $P66
     find_lex $P67, "$count"
     store_lex "$max", $P67
-.annotate 'line', 501
+.annotate 'line', 516
     find_lex $P69, "$ast"
     $P70 = $P69."list"()
     defined $I71, $P70
-    unless $I71, for_undef_125
+    unless $I71, for_undef_126
     iter $P68, $P70
     new $P119, 'ExceptionHandler'
     set_addr $P119, loop118_handler
-    $P119."handle_types"(64, 66, 65)
+    $P119."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P119
   loop118_test:
     unless $P68, loop118_done
     shift $P72, $P68
   loop118_redo:
-    .const 'Sub' $P74 = "15_1274853033.06396" 
+    .const 'Sub' $P74 = "15_1275811482.3686" 
     capture_lex $P74
     $P74($P72)
   loop118_next:
@@ -8114,26 +8215,27 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P120, exception, 'type'
-    eq $P120, 64, loop118_next
-    eq $P120, 66, loop118_redo
+    eq $P120, .CONTROL_LOOP_NEXT, loop118_next
+    eq $P120, .CONTROL_LOOP_REDO, loop118_redo
   loop118_done:
     pop_eh 
-  for_undef_125:
-.annotate 'line', 510
+  for_undef_126:
+.annotate 'line', 525
     find_lex $P121, "$max"
     store_lex "$count", $P121
-.annotate 'line', 499
+.annotate 'line', 514
     .return ($P121)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block73"  :anon :subid("15_1274853033.06396") :outer("14_1274853033.06396")
+.include "except_types.pasm"
+.sub "_block73"  :anon :subid("15_1275811482.3686") :outer("14_1275811482.3686")
     .param pmc param_76
-.annotate 'line', 501
-    .const 'Sub' $P85 = "16_1274853033.06396" 
+.annotate 'line', 516
+    .const 'Sub' $P85 = "16_1275811482.3686" 
     capture_lex $P85
-.annotate 'line', 502
+.annotate 'line', 517
     $P75 = root_new ['parrot';'Hash']
     .lex "%x", $P75
     .lex "$_", param_76
@@ -8141,20 +8243,20 @@
     find_lex $P78, "$count"
     $P79 = "capnames"($P77, $P78)
     store_lex "%x", $P79
-.annotate 'line', 503
+.annotate 'line', 518
     find_lex $P81, "%x"
     defined $I82, $P81
-    unless $I82, for_undef_126
+    unless $I82, for_undef_127
     iter $P80, $P81
     new $P106, 'ExceptionHandler'
     set_addr $P106, loop105_handler
-    $P106."handle_types"(64, 66, 65)
+    $P106."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P106
   loop105_test:
     unless $P80, loop105_done
     shift $P83, $P80
   loop105_redo:
-    .const 'Sub' $P85 = "16_1274853033.06396" 
+    .const 'Sub' $P85 = "16_1275811482.3686" 
     capture_lex $P85
     $P85($P83)
   loop105_next:
@@ -8163,20 +8265,20 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P107, exception, 'type'
-    eq $P107, 64, loop105_next
-    eq $P107, 66, loop105_redo
+    eq $P107, .CONTROL_LOOP_NEXT, loop105_next
+    eq $P107, .CONTROL_LOOP_REDO, loop105_redo
   loop105_done:
     pop_eh 
-  for_undef_126:
-.annotate 'line', 508
+  for_undef_127:
+.annotate 'line', 523
     find_lex $P110, "%x"
-    unless_null $P110, vivify_132
+    unless_null $P110, vivify_133
     $P110 = root_new ['parrot';'Hash']
-  vivify_132:
+  vivify_133:
     set $P111, $P110[""]
-    unless_null $P111, vivify_133
+    unless_null $P111, vivify_134
     new $P111, "Undef"
-  vivify_133:
+  vivify_134:
     set $N112, $P111
     find_lex $P113, "$max"
     set $N114, $P113
@@ -8187,36 +8289,36 @@
     goto if_109_end
   if_109:
     find_lex $P116, "%x"
-    unless_null $P116, vivify_134
+    unless_null $P116, vivify_135
     $P116 = root_new ['parrot';'Hash']
-  vivify_134:
+  vivify_135:
     set $P117, $P116[""]
-    unless_null $P117, vivify_135
+    unless_null $P117, vivify_136
     new $P117, "Undef"
-  vivify_135:
+  vivify_136:
     store_lex "$max", $P117
     set $P108, $P117
   if_109_end:
-.annotate 'line', 501
+.annotate 'line', 516
     .return ($P108)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block84"  :anon :subid("16_1274853033.06396") :outer("15_1274853033.06396")
+.sub "_block84"  :anon :subid("16_1275811482.3686") :outer("15_1275811482.3686")
     .param pmc param_86
-.annotate 'line', 503
+.annotate 'line', 518
     .lex "$_", param_86
-.annotate 'line', 504
+.annotate 'line', 519
     find_lex $P91, "$_"
     find_lex $P92, "%capnames"
-    unless_null $P92, vivify_127
+    unless_null $P92, vivify_128
     $P92 = root_new ['parrot';'Hash']
-  vivify_127:
+  vivify_128:
     set $P93, $P92[$P91]
-    unless_null $P93, vivify_128
+    unless_null $P93, vivify_129
     new $P93, "Undef"
-  vivify_128:
+  vivify_129:
     set $N94, $P93
     islt $I95, $N94, 2.0
     if $I95, if_90
@@ -8226,13 +8328,13 @@
   if_90:
     find_lex $P96, "$_"
     find_lex $P97, "%x"
-    unless_null $P97, vivify_129
+    unless_null $P97, vivify_130
     $P97 = root_new ['parrot';'Hash']
-  vivify_129:
+  vivify_130:
     set $P98, $P97[$P96]
-    unless_null $P98, vivify_130
+    unless_null $P98, vivify_131
     new $P98, "Undef"
-  vivify_130:
+  vivify_131:
     set $N99, $P98
     iseq $I100, $N99, 1.0
     new $P89, 'Integer'
@@ -8248,36 +8350,37 @@
     assign $P101, 1
     set $P87, $P101
   if_88_end:
-.annotate 'line', 505
+.annotate 'line', 520
     find_lex $P103, "$_"
     find_lex $P104, "%capnames"
-    unless_null $P104, vivify_131
+    unless_null $P104, vivify_132
     $P104 = root_new ['parrot';'Hash']
     store_lex "%capnames", $P104
-  vivify_131:
+  vivify_132:
     set $P104[$P103], $P87
-.annotate 'line', 503
+.annotate 'line', 518
     .return ($P87)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backmod"  :subid("26_1274853033.06396") :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "backmod"  :subid("26_1275811482.3686") :outer("11_1275811482.3686")
     .param pmc param_308
     .param pmc param_309
-.annotate 'line', 562
+.annotate 'line', 577
     new $P307, 'ExceptionHandler'
     set_addr $P307, control_306
-    $P307."handle_types"(57)
+    $P307."handle_types"(.CONTROL_RETURN)
     push_eh $P307
     .lex "$ast", param_308
     .lex "$backmod", param_309
-.annotate 'line', 563
+.annotate 'line', 578
     find_lex $P311, "$backmod"
     set $S312, $P311
     iseq $I313, $S312, ":"
     if $I313, if_310
-.annotate 'line', 564
+.annotate 'line', 579
     find_lex $P318, "$backmod"
     set $S319, $P318
     iseq $I320, $S319, ":?"
@@ -8293,7 +8396,7 @@
     set $P316, $I323
   unless_317_end:
     if $P316, if_315
-.annotate 'line', 565
+.annotate 'line', 580
     find_lex $P328, "$backmod"
     set $S329, $P328
     iseq $I330, $S329, ":!"
@@ -8314,18 +8417,18 @@
   if_325_end:
     goto if_315_end
   if_315:
-.annotate 'line', 564
+.annotate 'line', 579
     find_lex $P324, "$ast"
     $P324."backtrack"("f")
   if_315_end:
     goto if_310_end
   if_310:
-.annotate 'line', 563
+.annotate 'line', 578
     find_lex $P314, "$ast"
     $P314."backtrack"("r")
   if_310_end:
     find_lex $P335, "$ast"
-.annotate 'line', 562
+.annotate 'line', 577
     .return ($P335)
   control_306:
     .local pmc exception 
@@ -8336,28 +8439,29 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "subrule_alias"  :subid("27_1274853033.06396") :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "subrule_alias"  :subid("27_1275811482.3686") :outer("11_1275811482.3686")
     .param pmc param_341
     .param pmc param_342
-.annotate 'line', 569
+.annotate 'line', 584
     new $P340, 'ExceptionHandler'
     set_addr $P340, control_339
-    $P340."handle_types"(57)
+    $P340."handle_types"(.CONTROL_RETURN)
     push_eh $P340
     .lex "$past", param_341
     .lex "$name", param_342
-.annotate 'line', 570
+.annotate 'line', 585
     find_lex $P344, "$past"
     $S345 = $P344."name"()
     isgt $I346, $S345, ""
     if $I346, if_343
-.annotate 'line', 571
+.annotate 'line', 586
     find_lex $P353, "$past"
     find_lex $P354, "$name"
     $P353."name"($P354)
     goto if_343_end
   if_343:
-.annotate 'line', 570
+.annotate 'line', 585
     find_lex $P347, "$past"
     find_lex $P348, "$name"
     concat $P349, $P348, "="
@@ -8366,10 +8470,10 @@
     concat $P352, $P349, $S351
     $P347."name"($P352)
   if_343_end:
-.annotate 'line', 572
+.annotate 'line', 587
     find_lex $P355, "$past"
     $P356 = $P355."subtype"("capture")
-.annotate 'line', 569
+.annotate 'line', 584
     .return ($P356)
   control_339:
     .local pmc exception 
@@ -8380,47 +8484,48 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "arg"  :subid("28_1274853033.06396") :method :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "arg"  :subid("28_1275811482.3686") :method :outer("11_1275811482.3686")
     .param pmc param_363
 .annotate 'line', 14
     new $P362, 'ExceptionHandler'
     set_addr $P362, control_361
-    $P362."handle_types"(57)
+    $P362."handle_types"(.CONTROL_RETURN)
     push_eh $P362
     .lex "self", self
     .lex "$/", param_363
 .annotate 'line', 15
     find_lex $P364, "$/"
     find_lex $P367, "$/"
-    unless_null $P367, vivify_137
+    unless_null $P367, vivify_138
     $P367 = root_new ['parrot';'Hash']
-  vivify_137:
+  vivify_138:
     set $P368, $P367["quote_EXPR"]
-    unless_null $P368, vivify_138
+    unless_null $P368, vivify_139
     new $P368, "Undef"
-  vivify_138:
+  vivify_139:
     if $P368, if_366
     find_lex $P372, "$/"
-    unless_null $P372, vivify_139
+    unless_null $P372, vivify_140
     $P372 = root_new ['parrot';'Hash']
-  vivify_139:
+  vivify_140:
     set $P373, $P372["val"]
-    unless_null $P373, vivify_140
+    unless_null $P373, vivify_141
     new $P373, "Undef"
-  vivify_140:
+  vivify_141:
     set $N374, $P373
     new $P365, 'Float'
     set $P365, $N374
     goto if_366_end
   if_366:
     find_lex $P369, "$/"
-    unless_null $P369, vivify_141
+    unless_null $P369, vivify_142
     $P369 = root_new ['parrot';'Hash']
-  vivify_141:
+  vivify_142:
     set $P370, $P369["quote_EXPR"]
-    unless_null $P370, vivify_142
+    unless_null $P370, vivify_143
     new $P370, "Undef"
-  vivify_142:
+  vivify_143:
     $P371 = $P370."ast"()
     set $P365, $P371
   if_366_end:
@@ -8436,14 +8541,15 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "arglist"  :subid("29_1274853033.06396") :method :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "arglist"  :subid("29_1275811482.3686") :method :outer("11_1275811482.3686")
     .param pmc param_380
 .annotate 'line', 18
-    .const 'Sub' $P390 = "30_1274853033.06396" 
+    .const 'Sub' $P390 = "30_1275811482.3686" 
     capture_lex $P390
     new $P379, 'ExceptionHandler'
     set_addr $P379, control_378
-    $P379."handle_types"(57)
+    $P379."handle_types"(.CONTROL_RETURN)
     push_eh $P379
     .lex "self", self
     .lex "$/", param_380
@@ -8455,25 +8561,25 @@
     store_lex "$past", $P383
 .annotate 'line', 20
     find_lex $P385, "$/"
-    unless_null $P385, vivify_143
+    unless_null $P385, vivify_144
     $P385 = root_new ['parrot';'Hash']
-  vivify_143:
+  vivify_144:
     set $P386, $P385["arg"]
-    unless_null $P386, vivify_144
+    unless_null $P386, vivify_145
     new $P386, "Undef"
-  vivify_144:
+  vivify_145:
     defined $I387, $P386
-    unless $I387, for_undef_145
+    unless $I387, for_undef_146
     iter $P384, $P386
     new $P397, 'ExceptionHandler'
     set_addr $P397, loop396_handler
-    $P397."handle_types"(64, 66, 65)
+    $P397."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P397
   loop396_test:
     unless $P384, loop396_done
     shift $P388, $P384
   loop396_redo:
-    .const 'Sub' $P390 = "30_1274853033.06396" 
+    .const 'Sub' $P390 = "30_1275811482.3686" 
     capture_lex $P390
     $P390($P388)
   loop396_next:
@@ -8482,11 +8588,11 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P398, exception, 'type'
-    eq $P398, 64, loop396_next
-    eq $P398, 66, loop396_redo
+    eq $P398, .CONTROL_LOOP_NEXT, loop396_next
+    eq $P398, .CONTROL_LOOP_REDO, loop396_redo
   loop396_done:
     pop_eh 
-  for_undef_145:
+  for_undef_146:
 .annotate 'line', 21
     find_lex $P399, "$/"
     find_lex $P400, "$past"
@@ -8502,7 +8608,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block389"  :anon :subid("30_1274853033.06396") :outer("29_1274853033.06396")
+.sub "_block389"  :anon :subid("30_1275811482.3686") :outer("29_1275811482.3686")
     .param pmc param_391
 .annotate 'line', 20
     .lex "$_", param_391
@@ -8515,12 +8621,13 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "TOP"  :subid("31_1274853033.06396") :method :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "TOP"  :subid("31_1275811482.3686") :method :outer("11_1275811482.3686")
     .param pmc param_406
 .annotate 'line', 24
     new $P405, 'ExceptionHandler'
     set_addr $P405, control_404
-    $P405."handle_types"(57)
+    $P405."handle_types"(.CONTROL_RETURN)
     push_eh $P405
     .lex "self", self
     .lex "$/", param_406
@@ -8528,13 +8635,13 @@
     new $P407, "Undef"
     .lex "$past", $P407
     find_lex $P408, "$/"
-    unless_null $P408, vivify_146
+    unless_null $P408, vivify_147
     $P408 = root_new ['parrot';'Hash']
-  vivify_146:
+  vivify_147:
     set $P409, $P408["nibbler"]
-    unless_null $P409, vivify_147
+    unless_null $P409, vivify_148
     new $P409, "Undef"
-  vivify_147:
+  vivify_148:
     $P410 = $P409."ast"()
     $P411 = "buildsub"($P410)
     store_lex "$past", $P411
@@ -8557,25 +8664,26 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "nibbler"  :subid("32_1274853033.06396") :method :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "nibbler"  :subid("32_1275811482.3686") :method :outer("11_1275811482.3686")
     .param pmc param_421
     .param pmc param_422 :optional
     .param int has_param_422 :opt_flag
 .annotate 'line', 30
-    .const 'Sub' $P456 = "34_1274853033.06396" 
+    .const 'Sub' $P456 = "34_1275811482.3686" 
     capture_lex $P456
-    .const 'Sub' $P430 = "33_1274853033.06396" 
+    .const 'Sub' $P430 = "33_1275811482.3686" 
     capture_lex $P430
     new $P420, 'ExceptionHandler'
     set_addr $P420, control_419
-    $P420."handle_types"(57)
+    $P420."handle_types"(.CONTROL_RETURN)
     push_eh $P420
     .lex "self", self
     .lex "$/", param_421
-    if has_param_422, optparam_148
+    if has_param_422, optparam_149
     new $P423, "Undef"
     set param_422, $P423
-  optparam_148:
+  optparam_149:
     .lex "$key", param_422
 .annotate 'line', 42
     new $P424, "Undef"
@@ -8585,7 +8693,7 @@
     set $S427, $P426
     iseq $I428, $S427, "open"
     unless $I428, if_425_end
-    .const 'Sub' $P430 = "33_1274853033.06396" 
+    .const 'Sub' $P430 = "33_1275811482.3686" 
     capture_lex $P430
     $P430()
   if_425_end:
@@ -8595,29 +8703,29 @@
     find_lex $P441, "$past"
 .annotate 'line', 43
     find_lex $P443, "$/"
-    unless_null $P443, vivify_151
+    unless_null $P443, vivify_152
     $P443 = root_new ['parrot';'Hash']
-  vivify_151:
+  vivify_152:
     set $P444, $P443["termish"]
-    unless_null $P444, vivify_152
+    unless_null $P444, vivify_153
     new $P444, "Undef"
-  vivify_152:
+  vivify_153:
     set $N445, $P444
     isgt $I446, $N445, 1.0
     if $I446, if_442
 .annotate 'line', 50
     find_lex $P465, "$/"
-    unless_null $P465, vivify_153
+    unless_null $P465, vivify_154
     $P465 = root_new ['parrot';'Hash']
-  vivify_153:
+  vivify_154:
     set $P466, $P465["termish"]
-    unless_null $P466, vivify_154
+    unless_null $P466, vivify_155
     $P466 = root_new ['parrot';'ResizablePMCArray']
-  vivify_154:
+  vivify_155:
     set $P467, $P466[0]
-    unless_null $P467, vivify_155
+    unless_null $P467, vivify_156
     new $P467, "Undef"
-  vivify_155:
+  vivify_156:
     $P468 = $P467."ast"()
     store_lex "$past", $P468
 .annotate 'line', 49
@@ -8630,25 +8738,25 @@
     store_lex "$past", $P449
 .annotate 'line', 45
     find_lex $P451, "$/"
-    unless_null $P451, vivify_156
+    unless_null $P451, vivify_157
     $P451 = root_new ['parrot';'Hash']
-  vivify_156:
+  vivify_157:
     set $P452, $P451["termish"]
-    unless_null $P452, vivify_157
+    unless_null $P452, vivify_158
     new $P452, "Undef"
-  vivify_157:
+  vivify_158:
     defined $I453, $P452
-    unless $I453, for_undef_158
+    unless $I453, for_undef_159
     iter $P450, $P452
     new $P463, 'ExceptionHandler'
     set_addr $P463, loop462_handler
-    $P463."handle_types"(64, 66, 65)
+    $P463."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P463
   loop462_test:
     unless $P450, loop462_done
     shift $P454, $P450
   loop462_redo:
-    .const 'Sub' $P456 = "34_1274853033.06396" 
+    .const 'Sub' $P456 = "34_1275811482.3686" 
     capture_lex $P456
     $P456($P454)
   loop462_next:
@@ -8657,11 +8765,11 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P464, exception, 'type'
-    eq $P464, 64, loop462_next
-    eq $P464, 66, loop462_redo
+    eq $P464, .CONTROL_LOOP_NEXT, loop462_next
+    eq $P464, .CONTROL_LOOP_REDO, loop462_redo
   loop462_done:
     pop_eh 
-  for_undef_158:
+  for_undef_159:
   if_442_end:
 .annotate 'line', 52
     find_lex $P469, "$/"
@@ -8678,7 +8786,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block429"  :anon :subid("33_1274853033.06396") :outer("32_1274853033.06396")
+.include "except_types.pasm"
+.sub "_block429"  :anon :subid("33_1275811482.3686") :outer("32_1275811482.3686")
 .annotate 'line', 32
     $P431 = root_new ['parrot';'Hash']
     .lex "%old", $P431
@@ -8687,13 +8796,13 @@
     .lex "%new", $P432
 .annotate 'line', 32
     get_global $P433, "@MODIFIERS"
-    unless_null $P433, vivify_149
+    unless_null $P433, vivify_150
     $P433 = root_new ['parrot';'ResizablePMCArray']
-  vivify_149:
+  vivify_150:
     set $P434, $P433[0]
-    unless_null $P434, vivify_150
+    unless_null $P434, vivify_151
     new $P434, "Undef"
-  vivify_150:
+  vivify_151:
     store_lex "%old", $P434
 .annotate 'line', 33
 
@@ -8707,7 +8816,7 @@
     $P436."unshift"($P437)
 .annotate 'line', 38
     new $P438, "Exception"
-    set $P438['type'], 57
+    set $P438['type'], .CONTROL_RETURN
     new $P439, "Integer"
     assign $P439, 1
     setattribute $P438, 'payload', $P439
@@ -8718,7 +8827,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block455"  :anon :subid("34_1274853033.06396") :outer("32_1274853033.06396")
+.sub "_block455"  :anon :subid("34_1275811482.3686") :outer("32_1275811482.3686")
     .param pmc param_457
 .annotate 'line', 45
     .lex "$_", param_457
@@ -8733,14 +8842,15 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "termish"  :subid("35_1274853033.06396") :method :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "termish"  :subid("35_1275811482.3686") :method :outer("11_1275811482.3686")
     .param pmc param_476
 .annotate 'line', 55
-    .const 'Sub' $P489 = "36_1274853033.06396" 
+    .const 'Sub' $P489 = "36_1275811482.3686" 
     capture_lex $P489
     new $P475, 'ExceptionHandler'
     set_addr $P475, control_474
-    $P475."handle_types"(57)
+    $P475."handle_types"(.CONTROL_RETURN)
     push_eh $P475
     .lex "self", self
     .lex "$/", param_476
@@ -8761,25 +8871,25 @@
     store_lex "$lastlit", $P482
 .annotate 'line', 58
     find_lex $P484, "$/"
-    unless_null $P484, vivify_159
+    unless_null $P484, vivify_160
     $P484 = root_new ['parrot';'Hash']
-  vivify_159:
+  vivify_160:
     set $P485, $P484["noun"]
-    unless_null $P485, vivify_160
+    unless_null $P485, vivify_161
     new $P485, "Undef"
-  vivify_160:
+  vivify_161:
     defined $I486, $P485
-    unless $I486, for_undef_161
+    unless $I486, for_undef_162
     iter $P483, $P485
     new $P535, 'ExceptionHandler'
     set_addr $P535, loop534_handler
-    $P535."handle_types"(64, 66, 65)
+    $P535."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
     push_eh $P535
   loop534_test:
     unless $P483, loop534_done
     shift $P487, $P483
   loop534_redo:
-    .const 'Sub' $P489 = "36_1274853033.06396" 
+    .const 'Sub' $P489 = "36_1275811482.3686" 
     capture_lex $P489
     $P489($P487)
   loop534_next:
@@ -8788,11 +8898,11 @@
     .local pmc exception 
     .get_results (exception) 
     getattribute $P536, exception, 'type'
-    eq $P536, 64, loop534_next
-    eq $P536, 66, loop534_redo
+    eq $P536, .CONTROL_LOOP_NEXT, loop534_next
+    eq $P536, .CONTROL_LOOP_REDO, loop534_redo
   loop534_done:
     pop_eh 
-  for_undef_161:
+  for_undef_162:
 .annotate 'line', 73
     find_lex $P537, "$/"
     find_lex $P538, "$past"
@@ -8808,7 +8918,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block488"  :anon :subid("36_1274853033.06396") :outer("35_1274853033.06396")
+.sub "_block488"  :anon :subid("36_1275811482.3686") :outer("35_1275811482.3686")
     .param pmc param_491
 .annotate 'line', 59
     new $P490, "Undef"
@@ -8842,13 +8952,13 @@
 .annotate 'line', 62
     get_hll_global $P507, ["PAST"], "Node"
     find_lex $P508, "$ast"
-    unless_null $P508, vivify_162
+    unless_null $P508, vivify_163
     $P508 = root_new ['parrot';'ResizablePMCArray']
-  vivify_162:
+  vivify_163:
     set $P509, $P508[0]
-    unless_null $P509, vivify_163
+    unless_null $P509, vivify_164
     new $P509, "Undef"
-  vivify_163:
+  vivify_164:
     $P510 = $P507."ACCEPTS"($P509)
     isfalse $I511, $P510
     new $P499, 'Integer'
@@ -8871,13 +8981,13 @@
 .annotate 'line', 68
     get_hll_global $P527, ["PAST"], "Node"
     find_lex $P528, "$ast"
-    unless_null $P528, vivify_164
+    unless_null $P528, vivify_165
     $P528 = root_new ['parrot';'ResizablePMCArray']
-  vivify_164:
+  vivify_165:
     set $P529, $P528[0]
-    unless_null $P529, vivify_165
+    unless_null $P529, vivify_166
     new $P529, "Undef"
-  vivify_165:
+  vivify_166:
     $P530 = $P527."ACCEPTS"($P529)
     isfalse $I531, $P530
     new $P522, 'Integer'
@@ -8901,27 +9011,27 @@
   if_498:
 .annotate 'line', 63
     find_lex $P512, "$lastlit"
-    unless_null $P512, vivify_166
+    unless_null $P512, vivify_167
     $P512 = root_new ['parrot';'ResizablePMCArray']
-  vivify_166:
+  vivify_167:
     set $P513, $P512[0]
-    unless_null $P513, vivify_167
+    unless_null $P513, vivify_168
     new $P513, "Undef"
-  vivify_167:
+  vivify_168:
     find_lex $P514, "$ast"
-    unless_null $P514, vivify_168
+    unless_null $P514, vivify_169
     $P514 = root_new ['parrot';'ResizablePMCArray']
-  vivify_168:
+  vivify_169:
     set $P515, $P514[0]
-    unless_null $P515, vivify_169
+    unless_null $P515, vivify_170
     new $P515, "Undef"
-  vivify_169:
+  vivify_170:
     concat $P516, $P513, $P515
     find_lex $P517, "$lastlit"
-    unless_null $P517, vivify_170
+    unless_null $P517, vivify_171
     $P517 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$lastlit", $P517
-  vivify_170:
+  vivify_171:
     set $P517[0], $P516
 .annotate 'line', 62
     set $P497, $P516
@@ -8935,14 +9045,15 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantified_atom"  :subid("37_1274853033.06396") :method :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "quantified_atom"  :subid("37_1275811482.3686") :method :outer("11_1275811482.3686")
     .param pmc param_544
 .annotate 'line', 76
-    .const 'Sub' $P553 = "38_1274853033.06396" 
+    .const 'Sub' $P553 = "38_1275811482.3686" 
     capture_lex $P553
     new $P543, 'ExceptionHandler'
     set_addr $P543, control_542
-    $P543."handle_types"(57)
+    $P543."handle_types"(.CONTROL_RETURN)
     push_eh $P543
     .lex "self", self
     .lex "$/", param_544
@@ -8950,112 +9061,112 @@
     new $P545, "Undef"
     .lex "$past", $P545
     find_lex $P546, "$/"
-    unless_null $P546, vivify_171
+    unless_null $P546, vivify_172
     $P546 = root_new ['parrot';'Hash']
-  vivify_171:
+  vivify_172:
     set $P547, $P546["atom"]
-    unless_null $P547, vivify_172
+    unless_null $P547, vivify_173
     new $P547, "Undef"
-  vivify_172:
+  vivify_173:
     $P548 = $P547."ast"()
     store_lex "$past", $P548
 .annotate 'line', 78
     find_lex $P550, "$/"
-    unless_null $P550, vivify_173
+    unless_null $P550, vivify_174
     $P550 = root_new ['parrot';'Hash']
-  vivify_173:
+  vivify_174:
     set $P551, $P550["quantifier"]
-    unless_null $P551, vivify_174
+    unless_null $P551, vivify_175
     new $P551, "Undef"
-  vivify_174:
+  vivify_175:
     if $P551, if_549
 .annotate 'line', 84
-    find_lex $P567, "$/"
-    unless_null $P567, vivify_175
-    $P567 = root_new ['parrot';'Hash']
-  vivify_175:
-    set $P568, $P567["backmod"]
+    find_lex $P568, "$/"
     unless_null $P568, vivify_176
-    $P568 = root_new ['parrot';'ResizablePMCArray']
+    $P568 = root_new ['parrot';'Hash']
   vivify_176:
-    set $P569, $P568[0]
+    set $P569, $P568["backmod"]
     unless_null $P569, vivify_177
-    new $P569, "Undef"
+    $P569 = root_new ['parrot';'ResizablePMCArray']
   vivify_177:
-    unless $P569, if_566_end
-    find_lex $P570, "$past"
-    find_lex $P571, "$/"
-    unless_null $P571, vivify_178
-    $P571 = root_new ['parrot';'Hash']
+    set $P570, $P569[0]
+    unless_null $P570, vivify_178
+    new $P570, "Undef"
   vivify_178:
-    set $P572, $P571["backmod"]
+    unless $P570, if_567_end
+    find_lex $P571, "$past"
+    find_lex $P572, "$/"
     unless_null $P572, vivify_179
-    $P572 = root_new ['parrot';'ResizablePMCArray']
+    $P572 = root_new ['parrot';'Hash']
   vivify_179:
-    set $P573, $P572[0]
+    set $P573, $P572["backmod"]
     unless_null $P573, vivify_180
-    new $P573, "Undef"
+    $P573 = root_new ['parrot';'ResizablePMCArray']
   vivify_180:
-    "backmod"($P570, $P573)
-  if_566_end:
+    set $P574, $P573[0]
+    unless_null $P574, vivify_181
+    new $P574, "Undef"
+  vivify_181:
+    "backmod"($P571, $P574)
+  if_567_end:
     goto if_549_end
   if_549:
 .annotate 'line', 78
-    .const 'Sub' $P553 = "38_1274853033.06396" 
+    .const 'Sub' $P553 = "38_1275811482.3686" 
     capture_lex $P553
     $P553()
   if_549_end:
 .annotate 'line', 85
-    find_lex $P579, "$past"
-    if $P579, if_578
-    set $P577, $P579
-    goto if_578_end
-  if_578:
     find_lex $P580, "$past"
-    $P581 = $P580."backtrack"()
-    isfalse $I582, $P581
-    new $P577, 'Integer'
-    set $P577, $I582
-  if_578_end:
-    if $P577, if_576
-    set $P575, $P577
-    goto if_576_end
-  if_576:
-    get_global $P583, "@MODIFIERS"
-    unless_null $P583, vivify_184
-    $P583 = root_new ['parrot';'ResizablePMCArray']
-  vivify_184:
-    set $P584, $P583[0]
+    if $P580, if_579
+    set $P578, $P580
+    goto if_579_end
+  if_579:
+    find_lex $P581, "$past"
+    $P582 = $P581."backtrack"()
+    isfalse $I583, $P582
+    new $P578, 'Integer'
+    set $P578, $I583
+  if_579_end:
+    if $P578, if_577
+    set $P576, $P578
+    goto if_577_end
+  if_577:
+    get_global $P584, "@MODIFIERS"
     unless_null $P584, vivify_185
-    $P584 = root_new ['parrot';'Hash']
+    $P584 = root_new ['parrot';'ResizablePMCArray']
   vivify_185:
-    set $P585, $P584["r"]
+    set $P585, $P584[0]
     unless_null $P585, vivify_186
-    new $P585, "Undef"
+    $P585 = root_new ['parrot';'Hash']
   vivify_186:
-    set $P575, $P585
-  if_576_end:
-    unless $P575, if_574_end
+    set $P586, $P585["r"]
+    unless_null $P586, vivify_187
+    new $P586, "Undef"
+  vivify_187:
+    set $P576, $P586
+  if_577_end:
+    unless $P576, if_575_end
 .annotate 'line', 86
-    find_lex $P586, "$past"
-    $P586."backtrack"("r")
-  if_574_end:
+    find_lex $P587, "$past"
+    $P587."backtrack"("r")
+  if_575_end:
 .annotate 'line', 88
-    find_lex $P587, "$/"
-    find_lex $P588, "$past"
-    $P589 = $P587."!make"($P588)
+    find_lex $P588, "$/"
+    find_lex $P589, "$past"
+    $P590 = $P588."!make"($P589)
 .annotate 'line', 76
-    .return ($P589)
+    .return ($P590)
   control_542:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P590, exception, "payload"
-    .return ($P590)
+    getattribute $P591, exception, "payload"
+    .return ($P591)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block552"  :anon :subid("38_1274853033.06396") :outer("37_1274853033.06396")
+.sub "_block552"  :anon :subid("38_1275811482.3686") :outer("37_1275811482.3686")
 .annotate 'line', 80
     new $P554, "Undef"
     .lex "$qast", $P554
@@ -9064,1881 +9175,1920 @@
     isfalse $I557, $P556
     unless $I557, if_555_end
     find_lex $P558, "$/"
-    $P558."panic"("Can't quantify zero-width atom")
+    $P559 = $P558."CURSOR"()
+    $P559."panic"("Quantifier follows nothing")
   if_555_end:
 .annotate 'line', 80
-    find_lex $P559, "$/"
-    unless_null $P559, vivify_181
-    $P559 = root_new ['parrot';'Hash']
-  vivify_181:
-    set $P560, $P559["quantifier"]
+    find_lex $P560, "$/"
     unless_null $P560, vivify_182
-    $P560 = root_new ['parrot';'ResizablePMCArray']
+    $P560 = root_new ['parrot';'Hash']
   vivify_182:
-    set $P561, $P560[0]
+    set $P561, $P560["quantifier"]
     unless_null $P561, vivify_183
-    new $P561, "Undef"
+    $P561 = root_new ['parrot';'ResizablePMCArray']
   vivify_183:
-    $P562 = $P561."ast"()
-    store_lex "$qast", $P562
+    set $P562, $P561[0]
+    unless_null $P562, vivify_184
+    new $P562, "Undef"
+  vivify_184:
+    $P563 = $P562."ast"()
+    store_lex "$qast", $P563
 .annotate 'line', 81
-    find_lex $P563, "$qast"
-    find_lex $P564, "$past"
-    $P563."unshift"($P564)
+    find_lex $P564, "$qast"
+    find_lex $P565, "$past"
+    $P564."unshift"($P565)
 .annotate 'line', 82
-    find_lex $P565, "$qast"
-    store_lex "$past", $P565
+    find_lex $P566, "$qast"
+    store_lex "$past", $P566
 .annotate 'line', 78
-    .return ($P565)
+    .return ($P566)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "atom"  :subid("39_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_594
+.include "except_types.pasm"
+.sub "atom"  :subid("39_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_595
 .annotate 'line', 91
-    new $P593, 'ExceptionHandler'
-    set_addr $P593, control_592
-    $P593."handle_types"(57)
-    push_eh $P593
+    new $P594, 'ExceptionHandler'
+    set_addr $P594, control_593
+    $P594."handle_types"(.CONTROL_RETURN)
+    push_eh $P594
     .lex "self", self
-    .lex "$/", param_594
+    .lex "$/", param_595
 .annotate 'line', 92
-    new $P595, "Undef"
-    .lex "$past", $P595
+    new $P596, "Undef"
+    .lex "$past", $P596
 .annotate 'line', 91
-    find_lex $P596, "$past"
+    find_lex $P597, "$past"
 .annotate 'line', 93
-    find_lex $P598, "$/"
-    unless_null $P598, vivify_187
-    $P598 = root_new ['parrot';'Hash']
-  vivify_187:
-    set $P599, $P598["metachar"]
+    find_lex $P599, "$/"
     unless_null $P599, vivify_188
-    new $P599, "Undef"
+    $P599 = root_new ['parrot';'Hash']
   vivify_188:
-    if $P599, if_597
+    set $P600, $P599["metachar"]
+    unless_null $P600, vivify_189
+    new $P600, "Undef"
+  vivify_189:
+    if $P600, if_598
 .annotate 'line', 95
-    get_hll_global $P603, ["PAST"], "Regex"
-    find_lex $P604, "$/"
-    set $S605, $P604
-    find_lex $P606, "$/"
-    $P607 = $P603."new"($S605, "literal" :named("pasttype"), $P606 :named("node"))
-    store_lex "$past", $P607
+    get_hll_global $P604, ["PAST"], "Regex"
+    find_lex $P605, "$/"
+    set $S606, $P605
+    find_lex $P607, "$/"
+    $P608 = $P604."new"($S606, "literal" :named("pasttype"), $P607 :named("node"))
+    store_lex "$past", $P608
 .annotate 'line', 96
-    get_global $P609, "@MODIFIERS"
-    unless_null $P609, vivify_189
-    $P609 = root_new ['parrot';'ResizablePMCArray']
-  vivify_189:
-    set $P610, $P609[0]
+    get_global $P610, "@MODIFIERS"
     unless_null $P610, vivify_190
-    $P610 = root_new ['parrot';'Hash']
+    $P610 = root_new ['parrot';'ResizablePMCArray']
   vivify_190:
-    set $P611, $P610["i"]
+    set $P611, $P610[0]
     unless_null $P611, vivify_191
-    new $P611, "Undef"
+    $P611 = root_new ['parrot';'Hash']
   vivify_191:
-    unless $P611, if_608_end
-    find_lex $P612, "$past"
-    $P612."subtype"("ignorecase")
-  if_608_end:
+    set $P612, $P611["i"]
+    unless_null $P612, vivify_192
+    new $P612, "Undef"
+  vivify_192:
+    unless $P612, if_609_end
+    find_lex $P613, "$past"
+    $P613."subtype"("ignorecase")
+  if_609_end:
 .annotate 'line', 94
-    goto if_597_end
-  if_597:
+    goto if_598_end
+  if_598:
 .annotate 'line', 93
-    find_lex $P600, "$/"
-    unless_null $P600, vivify_192
-    $P600 = root_new ['parrot';'Hash']
-  vivify_192:
-    set $P601, $P600["metachar"]
+    find_lex $P601, "$/"
     unless_null $P601, vivify_193
-    new $P601, "Undef"
+    $P601 = root_new ['parrot';'Hash']
   vivify_193:
-    $P602 = $P601."ast"()
-    store_lex "$past", $P602
-  if_597_end:
+    set $P602, $P601["metachar"]
+    unless_null $P602, vivify_194
+    new $P602, "Undef"
+  vivify_194:
+    $P603 = $P602."ast"()
+    store_lex "$past", $P603
+  if_598_end:
 .annotate 'line', 98
-    find_lex $P613, "$/"
-    find_lex $P614, "$past"
-    $P615 = $P613."!make"($P614)
+    find_lex $P614, "$/"
+    find_lex $P615, "$past"
+    $P616 = $P614."!make"($P615)
 .annotate 'line', 91
-    .return ($P615)
-  control_592:
+    .return ($P616)
+  control_593:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P616, exception, "payload"
-    .return ($P616)
+    getattribute $P617, exception, "payload"
+    .return ($P617)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<*>"  :subid("40_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_620
+.include "except_types.pasm"
+.sub "quantifier:sym<*>"  :subid("40_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_621
 .annotate 'line', 101
-    new $P619, 'ExceptionHandler'
-    set_addr $P619, control_618
-    $P619."handle_types"(57)
-    push_eh $P619
+    new $P620, 'ExceptionHandler'
+    set_addr $P620, control_619
+    $P620."handle_types"(.CONTROL_RETURN)
+    push_eh $P620
     .lex "self", self
-    .lex "$/", param_620
+    .lex "$/", param_621
 .annotate 'line', 102
-    new $P621, "Undef"
-    .lex "$past", $P621
-    get_hll_global $P622, ["PAST"], "Regex"
-    find_lex $P623, "$/"
-    $P624 = $P622."new"("quant" :named("pasttype"), $P623 :named("node"))
-    store_lex "$past", $P624
+    new $P622, "Undef"
+    .lex "$past", $P622
+    get_hll_global $P623, ["PAST"], "Regex"
+    find_lex $P624, "$/"
+    $P625 = $P623."new"("quant" :named("pasttype"), $P624 :named("node"))
+    store_lex "$past", $P625
 .annotate 'line', 103
-    find_lex $P625, "$/"
-    find_lex $P626, "$past"
-    find_lex $P627, "$/"
-    unless_null $P627, vivify_194
-    $P627 = root_new ['parrot';'Hash']
-  vivify_194:
-    set $P628, $P627["backmod"]
+    find_lex $P626, "$/"
+    find_lex $P627, "$past"
+    find_lex $P628, "$/"
     unless_null $P628, vivify_195
-    new $P628, "Undef"
+    $P628 = root_new ['parrot';'Hash']
   vivify_195:
-    $P629 = "backmod"($P626, $P628)
-    $P630 = $P625."!make"($P629)
+    set $P629, $P628["backmod"]
+    unless_null $P629, vivify_196
+    new $P629, "Undef"
+  vivify_196:
+    $P630 = "backmod"($P627, $P629)
+    $P631 = $P626."!make"($P630)
 .annotate 'line', 101
-    .return ($P630)
-  control_618:
+    .return ($P631)
+  control_619:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P631, exception, "payload"
-    .return ($P631)
+    getattribute $P632, exception, "payload"
+    .return ($P632)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<+>"  :subid("41_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_635
+.include "except_types.pasm"
+.sub "quantifier:sym<+>"  :subid("41_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_636
 .annotate 'line', 106
-    new $P634, 'ExceptionHandler'
-    set_addr $P634, control_633
-    $P634."handle_types"(57)
-    push_eh $P634
+    new $P635, 'ExceptionHandler'
+    set_addr $P635, control_634
+    $P635."handle_types"(.CONTROL_RETURN)
+    push_eh $P635
     .lex "self", self
-    .lex "$/", param_635
+    .lex "$/", param_636
 .annotate 'line', 107
-    new $P636, "Undef"
-    .lex "$past", $P636
-    get_hll_global $P637, ["PAST"], "Regex"
-    find_lex $P638, "$/"
-    $P639 = $P637."new"("quant" :named("pasttype"), 1 :named("min"), $P638 :named("node"))
-    store_lex "$past", $P639
+    new $P637, "Undef"
+    .lex "$past", $P637
+    get_hll_global $P638, ["PAST"], "Regex"
+    find_lex $P639, "$/"
+    $P640 = $P638."new"("quant" :named("pasttype"), 1 :named("min"), $P639 :named("node"))
+    store_lex "$past", $P640
 .annotate 'line', 108
-    find_lex $P640, "$/"
-    find_lex $P641, "$past"
-    find_lex $P642, "$/"
-    unless_null $P642, vivify_196
-    $P642 = root_new ['parrot';'Hash']
-  vivify_196:
-    set $P643, $P642["backmod"]
+    find_lex $P641, "$/"
+    find_lex $P642, "$past"
+    find_lex $P643, "$/"
     unless_null $P643, vivify_197
-    new $P643, "Undef"
+    $P643 = root_new ['parrot';'Hash']
   vivify_197:
-    $P644 = "backmod"($P641, $P643)
-    $P645 = $P640."!make"($P644)
+    set $P644, $P643["backmod"]
+    unless_null $P644, vivify_198
+    new $P644, "Undef"
+  vivify_198:
+    $P645 = "backmod"($P642, $P644)
+    $P646 = $P641."!make"($P645)
 .annotate 'line', 106
-    .return ($P645)
-  control_633:
+    .return ($P646)
+  control_634:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P646, exception, "payload"
-    .return ($P646)
+    getattribute $P647, exception, "payload"
+    .return ($P647)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<?>"  :subid("42_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_650
+.include "except_types.pasm"
+.sub "quantifier:sym<?>"  :subid("42_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_651
 .annotate 'line', 111
-    new $P649, 'ExceptionHandler'
-    set_addr $P649, control_648
-    $P649."handle_types"(57)
-    push_eh $P649
+    new $P650, 'ExceptionHandler'
+    set_addr $P650, control_649
+    $P650."handle_types"(.CONTROL_RETURN)
+    push_eh $P650
     .lex "self", self
-    .lex "$/", param_650
+    .lex "$/", param_651
 .annotate 'line', 112
-    new $P651, "Undef"
-    .lex "$past", $P651
-    get_hll_global $P652, ["PAST"], "Regex"
-    find_lex $P653, "$/"
-    $P654 = $P652."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P653 :named("node"))
-    store_lex "$past", $P654
+    new $P652, "Undef"
+    .lex "$past", $P652
+    get_hll_global $P653, ["PAST"], "Regex"
+    find_lex $P654, "$/"
+    $P655 = $P653."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P654 :named("node"))
+    store_lex "$past", $P655
 .annotate 'line', 113
-    find_lex $P655, "$/"
-    find_lex $P656, "$past"
-    find_lex $P657, "$/"
-    unless_null $P657, vivify_198
-    $P657 = root_new ['parrot';'Hash']
-  vivify_198:
-    set $P658, $P657["backmod"]
+    find_lex $P656, "$/"
+    find_lex $P657, "$past"
+    find_lex $P658, "$/"
     unless_null $P658, vivify_199
-    new $P658, "Undef"
+    $P658 = root_new ['parrot';'Hash']
   vivify_199:
-    $P659 = "backmod"($P656, $P658)
-    $P655."!make"($P659)
+    set $P659, $P658["backmod"]
+    unless_null $P659, vivify_200
+    new $P659, "Undef"
+  vivify_200:
+    $P660 = "backmod"($P657, $P659)
+    $P656."!make"($P660)
 .annotate 'line', 114
-    find_lex $P660, "$/"
-    find_lex $P661, "$past"
-    $P662 = $P660."!make"($P661)
+    find_lex $P661, "$/"
+    find_lex $P662, "$past"
+    $P663 = $P661."!make"($P662)
 .annotate 'line', 111
-    .return ($P662)
-  control_648:
+    .return ($P663)
+  control_649:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P663, exception, "payload"
-    .return ($P663)
+    getattribute $P664, exception, "payload"
+    .return ($P664)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<**>"  :subid("43_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_667
+.include "except_types.pasm"
+.sub "quantifier:sym<**>"  :subid("43_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_668
 .annotate 'line', 117
-    new $P666, 'ExceptionHandler'
-    set_addr $P666, control_665
-    $P666."handle_types"(57)
-    push_eh $P666
+    .const 'Sub' $P683 = "44_1275811482.3686" 
+    capture_lex $P683
+    new $P667, 'ExceptionHandler'
+    set_addr $P667, control_666
+    $P667."handle_types"(.CONTROL_RETURN)
+    push_eh $P667
     .lex "self", self
-    .lex "$/", param_667
+    .lex "$/", param_668
 .annotate 'line', 118
-    new $P668, "Undef"
-    .lex "$past", $P668
+    new $P669, "Undef"
+    .lex "$past", $P669
+.annotate 'line', 119
+    new $P670, "Undef"
+    .lex "$ws", $P670
 .annotate 'line', 117
-    find_lex $P669, "$past"
+    find_lex $P671, "$past"
 .annotate 'line', 119
-    find_lex $P671, "$/"
-    unless_null $P671, vivify_200
-    $P671 = root_new ['parrot';'Hash']
-  vivify_200:
-    set $P672, $P671["quantified_atom"]
-    unless_null $P672, vivify_201
-    new $P672, "Undef"
+    find_lex $P674, "$/"
+    unless_null $P674, vivify_201
+    $P674 = root_new ['parrot';'Hash']
   vivify_201:
-    if $P672, if_670
-.annotate 'line', 124
-    get_hll_global $P679, ["PAST"], "Regex"
-    find_lex $P680, "$/"
-    unless_null $P680, vivify_202
-    $P680 = root_new ['parrot';'Hash']
+    set $P675, $P674["normspace"]
+    unless_null $P675, vivify_202
+    new $P675, "Undef"
   vivify_202:
-    set $P681, $P680["min"]
-    unless_null $P681, vivify_203
-    new $P681, "Undef"
+    if $P675, if_673
+    set $P672, $P675
+    goto if_673_end
+  if_673:
+    get_global $P676, "@MODIFIERS"
+    unless_null $P676, vivify_203
+    $P676 = root_new ['parrot';'ResizablePMCArray']
   vivify_203:
-    set $N682, $P681
-    find_lex $P683, "$/"
-    $P684 = $P679."new"("quant" :named("pasttype"), $N682 :named("min"), $P683 :named("node"))
-    store_lex "$past", $P684
-.annotate 'line', 125
-    find_lex $P686, "$/"
-    unless_null $P686, vivify_204
-    $P686 = root_new ['parrot';'Hash']
+    set $P677, $P676[0]
+    unless_null $P677, vivify_204
+    $P677 = root_new ['parrot';'Hash']
   vivify_204:
-    set $P687, $P686["max"]
-    unless_null $P687, vivify_205
-    new $P687, "Undef"
+    set $P678, $P677["s"]
+    unless_null $P678, vivify_205
+    new $P678, "Undef"
   vivify_205:
-    isfalse $I688, $P687
-    if $I688, if_685
-.annotate 'line', 126
-    find_lex $P694, "$/"
-    unless_null $P694, vivify_206
-    $P694 = root_new ['parrot';'Hash']
+    set $P672, $P678
+  if_673_end:
+    store_lex "$ws", $P672
+.annotate 'line', 120
+    find_lex $P680, "$/"
+    unless_null $P680, vivify_206
+    $P680 = root_new ['parrot';'Hash']
   vivify_206:
-    set $P695, $P694["max"]
-    unless_null $P695, vivify_207
-    $P695 = root_new ['parrot';'ResizablePMCArray']
+    set $P681, $P680["quantified_atom"]
+    unless_null $P681, vivify_207
+    new $P681, "Undef"
   vivify_207:
-    set $P696, $P695[0]
-    unless_null $P696, vivify_208
-    new $P696, "Undef"
+    if $P681, if_679
+.annotate 'line', 136
+    get_hll_global $P701, ["PAST"], "Regex"
+    find_lex $P702, "$/"
+    unless_null $P702, vivify_208
+    $P702 = root_new ['parrot';'Hash']
   vivify_208:
-    set $S697, $P696
-    isne $I698, $S697, "*"
-    unless $I698, if_693_end
-    find_lex $P699, "$past"
-    find_lex $P700, "$/"
-    unless_null $P700, vivify_209
-    $P700 = root_new ['parrot';'Hash']
+    set $P703, $P702["min"]
+    unless_null $P703, vivify_209
+    new $P703, "Undef"
   vivify_209:
-    set $P701, $P700["max"]
-    unless_null $P701, vivify_210
-    $P701 = root_new ['parrot';'ResizablePMCArray']
+    set $N704, $P703
+    find_lex $P705, "$/"
+    $P706 = $P701."new"("quant" :named("pasttype"), $N704 :named("min"), $P705 :named("node"))
+    store_lex "$past", $P706
+.annotate 'line', 137
+    find_lex $P708, "$/"
+    unless_null $P708, vivify_210
+    $P708 = root_new ['parrot';'Hash']
   vivify_210:
-    set $P702, $P701[0]
-    unless_null $P702, vivify_211
-    new $P702, "Undef"
+    set $P709, $P708["max"]
+    unless_null $P709, vivify_211
+    new $P709, "Undef"
   vivify_211:
-    set $N703, $P702
-    $P699."max"($N703)
-  if_693_end:
-    goto if_685_end
-  if_685:
-.annotate 'line', 125
-    find_lex $P689, "$past"
-    find_lex $P690, "$/"
-    unless_null $P690, vivify_212
-    $P690 = root_new ['parrot';'Hash']
+    isfalse $I710, $P709
+    if $I710, if_707
+.annotate 'line', 138
+    find_lex $P716, "$/"
+    unless_null $P716, vivify_212
+    $P716 = root_new ['parrot';'Hash']
   vivify_212:
-    set $P691, $P690["min"]
-    unless_null $P691, vivify_213
-    new $P691, "Undef"
+    set $P717, $P716["max"]
+    unless_null $P717, vivify_213
+    $P717 = root_new ['parrot';'ResizablePMCArray']
   vivify_213:
-    set $N692, $P691
-    $P689."max"($N692)
-  if_685_end:
-.annotate 'line', 123
-    goto if_670_end
-  if_670:
-.annotate 'line', 120
-    get_hll_global $P673, ["PAST"], "Regex"
-.annotate 'line', 121
-    find_lex $P674, "$/"
-    unless_null $P674, vivify_214
-    $P674 = root_new ['parrot';'Hash']
+    set $P718, $P717[0]
+    unless_null $P718, vivify_214
+    new $P718, "Undef"
   vivify_214:
-    set $P675, $P674["quantified_atom"]
-    unless_null $P675, vivify_215
-    new $P675, "Undef"
+    set $S719, $P718
+    isne $I720, $S719, "*"
+    unless $I720, if_715_end
+    find_lex $P721, "$past"
+    find_lex $P722, "$/"
+    unless_null $P722, vivify_215
+    $P722 = root_new ['parrot';'Hash']
   vivify_215:
-    $P676 = $P675."ast"()
-    find_lex $P677, "$/"
-    $P678 = $P673."new"("quant" :named("pasttype"), 1 :named("min"), $P676 :named("sep"), $P677 :named("node"))
-.annotate 'line', 120
-    store_lex "$past", $P678
-  if_670_end:
-.annotate 'line', 128
-    find_lex $P704, "$/"
-    find_lex $P705, "$past"
-    find_lex $P706, "$/"
-    unless_null $P706, vivify_216
-    $P706 = root_new ['parrot';'Hash']
+    set $P723, $P722["max"]
+    unless_null $P723, vivify_216
+    $P723 = root_new ['parrot';'ResizablePMCArray']
   vivify_216:
-    set $P707, $P706["backmod"]
-    unless_null $P707, vivify_217
-    new $P707, "Undef"
+    set $P724, $P723[0]
+    unless_null $P724, vivify_217
+    new $P724, "Undef"
   vivify_217:
-    $P708 = "backmod"($P705, $P707)
-    $P709 = $P704."!make"($P708)
-.annotate 'line', 117
-    .return ($P709)
-  control_665:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P710, exception, "payload"
-    .return ($P710)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<ws>"  :subid("44_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_714
-.annotate 'line', 131
-    new $P713, 'ExceptionHandler'
-    set_addr $P713, control_712
-    $P713."handle_types"(57)
-    push_eh $P713
-    .lex "self", self
-    .lex "$/", param_714
-.annotate 'line', 132
-    new $P715, "Undef"
-    .lex "$past", $P715
-.annotate 'line', 133
-    get_global $P718, "@MODIFIERS"
-    unless_null $P718, vivify_218
-    $P718 = root_new ['parrot';'ResizablePMCArray']
+    set $N725, $P724
+    $P721."max"($N725)
+  if_715_end:
+    goto if_707_end
+  if_707:
+.annotate 'line', 137
+    find_lex $P711, "$past"
+    find_lex $P712, "$/"
+    unless_null $P712, vivify_218
+    $P712 = root_new ['parrot';'Hash']
   vivify_218:
-    set $P719, $P718[0]
-    unless_null $P719, vivify_219
-    $P719 = root_new ['parrot';'Hash']
+    set $P713, $P712["min"]
+    unless_null $P713, vivify_219
+    new $P713, "Undef"
   vivify_219:
-    set $P720, $P719["s"]
-    unless_null $P720, vivify_220
-    new $P720, "Undef"
-  vivify_220:
-    if $P720, if_717
-    new $P724, "Integer"
-    assign $P724, 0
-    set $P716, $P724
-    goto if_717_end
-  if_717:
-    get_hll_global $P721, ["PAST"], "Regex"
-    find_lex $P722, "$/"
-    $P723 = $P721."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P722 :named("node"))
-    set $P716, $P723
-  if_717_end:
-    store_lex "$past", $P716
-.annotate 'line', 136
-    find_lex $P725, "$/"
-    find_lex $P726, "$past"
-    $P727 = $P725."!make"($P726)
-.annotate 'line', 131
-    .return ($P727)
-  control_712:
+    set $N714, $P713
+    $P711."max"($N714)
+  if_707_end:
+.annotate 'line', 139
+    find_lex $P727, "$ws"
+    unless $P727, if_726_end
+    find_lex $P728, "$past"
+    get_hll_global $P729, ["PAST"], "Regex"
+    $P730 = $P729."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+    $P728."sep"($P730)
+  if_726_end:
+.annotate 'line', 135
+    goto if_679_end
+  if_679:
+.annotate 'line', 120
+    .const 'Sub' $P683 = "44_1275811482.3686" 
+    capture_lex $P683
+    $P683()
+  if_679_end:
+.annotate 'line', 143
+    find_lex $P731, "$/"
+    find_lex $P732, "$past"
+    find_lex $P733, "$/"
+    unless_null $P733, vivify_222
+    $P733 = root_new ['parrot';'Hash']
+  vivify_222:
+    set $P734, $P733["backmod"]
+    unless_null $P734, vivify_223
+    new $P734, "Undef"
+  vivify_223:
+    $P735 = "backmod"($P732, $P734)
+    $P736 = $P731."!make"($P735)
+.annotate 'line', 117
+    .return ($P736)
+  control_666:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P728, exception, "payload"
-    .return ($P728)
+    getattribute $P737, exception, "payload"
+    .return ($P737)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<[ ]>"  :subid("45_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_732
-.annotate 'line', 140
-    new $P731, 'ExceptionHandler'
-    set_addr $P731, control_730
-    $P731."handle_types"(57)
-    push_eh $P731
-    .lex "self", self
-    .lex "$/", param_732
-.annotate 'line', 141
-    find_lex $P733, "$/"
-    find_lex $P734, "$/"
-    unless_null $P734, vivify_221
-    $P734 = root_new ['parrot';'Hash']
+.sub "_block682"  :anon :subid("44_1275811482.3686") :outer("43_1275811482.3686")
+.annotate 'line', 121
+    new $P684, "Undef"
+    .lex "$ast", $P684
+    find_lex $P685, "$/"
+    unless_null $P685, vivify_220
+    $P685 = root_new ['parrot';'Hash']
+  vivify_220:
+    set $P686, $P685["quantified_atom"]
+    unless_null $P686, vivify_221
+    new $P686, "Undef"
   vivify_221:
-    set $P735, $P734["nibbler"]
-    unless_null $P735, vivify_222
-    new $P735, "Undef"
-  vivify_222:
-    $P736 = $P735."ast"()
-    $P737 = $P733."!make"($P736)
-.annotate 'line', 140
-    .return ($P737)
-  control_730:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P738, exception, "payload"
-    .return ($P738)
+    $P687 = $P686."ast"()
+    store_lex "$ast", $P687
+.annotate 'line', 122
+    find_lex $P689, "$ws"
+    unless $P689, if_688_end
+.annotate 'line', 123
+    get_hll_global $P690, ["PAST"], "Regex"
+.annotate 'line', 125
+    get_hll_global $P691, ["PAST"], "Regex"
+    $P692 = $P691."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+    find_lex $P693, "$ast"
+.annotate 'line', 128
+    get_hll_global $P694, ["PAST"], "Regex"
+    $P695 = $P694."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+    $P696 = $P690."new"($P692, $P693, $P695, "concat" :named("pasttype"))
+.annotate 'line', 123
+    store_lex "$ast", $P696
+  if_688_end:
+.annotate 'line', 132
+    get_hll_global $P697, ["PAST"], "Regex"
+    find_lex $P698, "$ast"
+    find_lex $P699, "$/"
+    $P700 = $P697."new"("quant" :named("pasttype"), 1 :named("min"), $P698 :named("sep"), $P699 :named("node"))
+    store_lex "$past", $P700
+.annotate 'line', 120
+    .return ($P700)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<( )>"  :subid("46_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_742
-.annotate 'line', 144
-    new $P741, 'ExceptionHandler'
-    set_addr $P741, control_740
-    $P741."handle_types"(57)
-    push_eh $P741
-    .lex "self", self
-    .lex "$/", param_742
-.annotate 'line', 145
-    new $P743, "Undef"
-    .lex "$subpast", $P743
+.include "except_types.pasm"
+.sub "metachar:sym<ws>"  :subid("45_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_741
 .annotate 'line', 146
-    new $P744, "Undef"
-    .lex "$past", $P744
-.annotate 'line', 145
-    find_lex $P745, "$/"
-    unless_null $P745, vivify_223
-    $P745 = root_new ['parrot';'Hash']
-  vivify_223:
-    set $P746, $P745["nibbler"]
-    unless_null $P746, vivify_224
-    new $P746, "Undef"
+    new $P740, 'ExceptionHandler'
+    set_addr $P740, control_739
+    $P740."handle_types"(.CONTROL_RETURN)
+    push_eh $P740
+    .lex "self", self
+    .lex "$/", param_741
+.annotate 'line', 147
+    new $P742, "Undef"
+    .lex "$past", $P742
+.annotate 'line', 148
+    get_global $P745, "@MODIFIERS"
+    unless_null $P745, vivify_224
+    $P745 = root_new ['parrot';'ResizablePMCArray']
   vivify_224:
-    $P747 = $P746."ast"()
-    $P748 = "buildsub"($P747)
-    store_lex "$subpast", $P748
+    set $P746, $P745[0]
+    unless_null $P746, vivify_225
+    $P746 = root_new ['parrot';'Hash']
+  vivify_225:
+    set $P747, $P746["s"]
+    unless_null $P747, vivify_226
+    new $P747, "Undef"
+  vivify_226:
+    if $P747, if_744
+    new $P751, "Integer"
+    assign $P751, 0
+    set $P743, $P751
+    goto if_744_end
+  if_744:
+    get_hll_global $P748, ["PAST"], "Regex"
+    find_lex $P749, "$/"
+    $P750 = $P748."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P749 :named("node"))
+    set $P743, $P750
+  if_744_end:
+    store_lex "$past", $P743
+.annotate 'line', 151
+    find_lex $P752, "$/"
+    find_lex $P753, "$past"
+    $P754 = $P752."!make"($P753)
 .annotate 'line', 146
-    get_hll_global $P749, ["PAST"], "Regex"
-    find_lex $P750, "$subpast"
-    find_lex $P751, "$/"
-    $P752 = $P749."new"($P750, "subrule" :named("pasttype"), "capture" :named("subtype"), $P751 :named("node"))
-    store_lex "$past", $P752
-.annotate 'line', 148
-    find_lex $P753, "$/"
-    find_lex $P754, "$past"
-    $P755 = $P753."!make"($P754)
-.annotate 'line', 144
-    .return ($P755)
-  control_740:
+    .return ($P754)
+  control_739:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P756, exception, "payload"
-    .return ($P756)
+    getattribute $P755, exception, "payload"
+    .return ($P755)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<'>"  :subid("47_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_760
-.annotate 'line', 151
-    new $P759, 'ExceptionHandler'
-    set_addr $P759, control_758
-    $P759."handle_types"(57)
-    push_eh $P759
-    .lex "self", self
-    .lex "$/", param_760
-.annotate 'line', 152
-    new $P761, "Undef"
-    .lex "$quote", $P761
-.annotate 'line', 154
+.include "except_types.pasm"
+.sub "metachar:sym<[ ]>"  :subid("46_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_759
+.annotate 'line', 155
+    new $P758, 'ExceptionHandler'
+    set_addr $P758, control_757
+    $P758."handle_types"(.CONTROL_RETURN)
+    push_eh $P758
+    .lex "self", self
+    .lex "$/", param_759
+.annotate 'line', 156
+    find_lex $P760, "$/"
+    find_lex $P761, "$/"
+    unless_null $P761, vivify_227
+    $P761 = root_new ['parrot';'Hash']
+  vivify_227:
+    set $P762, $P761["nibbler"]
+    unless_null $P762, vivify_228
     new $P762, "Undef"
-    .lex "$past", $P762
-.annotate 'line', 152
-    find_lex $P763, "$/"
-    unless_null $P763, vivify_225
-    $P763 = root_new ['parrot';'Hash']
-  vivify_225:
-    set $P764, $P763["quote_EXPR"]
-    unless_null $P764, vivify_226
-    new $P764, "Undef"
-  vivify_226:
-    $P765 = $P764."ast"()
-    store_lex "$quote", $P765
-.annotate 'line', 153
-    get_hll_global $P767, ["PAST"], "Val"
-    find_lex $P768, "$quote"
-    $P769 = $P767."ACCEPTS"($P768)
-    unless $P769, if_766_end
-    find_lex $P770, "$quote"
-    $P771 = $P770."value"()
-    store_lex "$quote", $P771
-  if_766_end:
-.annotate 'line', 154
-    get_hll_global $P772, ["PAST"], "Regex"
-    find_lex $P773, "$quote"
-    find_lex $P774, "$/"
-    $P775 = $P772."new"($P773, "literal" :named("pasttype"), $P774 :named("node"))
-    store_lex "$past", $P775
+  vivify_228:
+    $P763 = $P762."ast"()
+    $P764 = $P760."!make"($P763)
 .annotate 'line', 155
-    find_lex $P776, "$/"
-    find_lex $P777, "$past"
-    $P778 = $P776."!make"($P777)
-.annotate 'line', 151
-    .return ($P778)
-  control_758:
+    .return ($P764)
+  control_757:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P779, exception, "payload"
-    .return ($P779)
+    getattribute $P765, exception, "payload"
+    .return ($P765)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<\">"  :subid("48_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_783
-.annotate 'line', 158
-    new $P782, 'ExceptionHandler'
-    set_addr $P782, control_781
-    $P782."handle_types"(57)
-    push_eh $P782
-    .lex "self", self
-    .lex "$/", param_783
+.include "except_types.pasm"
+.sub "metachar:sym<( )>"  :subid("47_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_769
 .annotate 'line', 159
-    new $P784, "Undef"
-    .lex "$quote", $P784
+    new $P768, 'ExceptionHandler'
+    set_addr $P768, control_767
+    $P768."handle_types"(.CONTROL_RETURN)
+    push_eh $P768
+    .lex "self", self
+    .lex "$/", param_769
+.annotate 'line', 160
+    new $P770, "Undef"
+    .lex "$subpast", $P770
 .annotate 'line', 161
-    new $P785, "Undef"
-    .lex "$past", $P785
-.annotate 'line', 159
-    find_lex $P786, "$/"
-    unless_null $P786, vivify_227
-    $P786 = root_new ['parrot';'Hash']
-  vivify_227:
-    set $P787, $P786["quote_EXPR"]
-    unless_null $P787, vivify_228
-    new $P787, "Undef"
-  vivify_228:
-    $P788 = $P787."ast"()
-    store_lex "$quote", $P788
+    new $P771, "Undef"
+    .lex "$past", $P771
 .annotate 'line', 160
-    get_hll_global $P790, ["PAST"], "Val"
-    find_lex $P791, "$quote"
-    $P792 = $P790."ACCEPTS"($P791)
-    unless $P792, if_789_end
-    find_lex $P793, "$quote"
-    $P794 = $P793."value"()
-    store_lex "$quote", $P794
-  if_789_end:
+    find_lex $P772, "$/"
+    unless_null $P772, vivify_229
+    $P772 = root_new ['parrot';'Hash']
+  vivify_229:
+    set $P773, $P772["nibbler"]
+    unless_null $P773, vivify_230
+    new $P773, "Undef"
+  vivify_230:
+    $P774 = $P773."ast"()
+    $P775 = "buildsub"($P774)
+    store_lex "$subpast", $P775
 .annotate 'line', 161
-    get_hll_global $P795, ["PAST"], "Regex"
-    find_lex $P796, "$quote"
-    find_lex $P797, "$/"
-    $P798 = $P795."new"($P796, "literal" :named("pasttype"), $P797 :named("node"))
-    store_lex "$past", $P798
-.annotate 'line', 162
-    find_lex $P799, "$/"
-    find_lex $P800, "$past"
-    $P801 = $P799."!make"($P800)
-.annotate 'line', 158
-    .return ($P801)
-  control_781:
+    get_hll_global $P776, ["PAST"], "Regex"
+    find_lex $P777, "$subpast"
+    find_lex $P778, "$/"
+    $P779 = $P776."new"($P777, "subrule" :named("pasttype"), "capture" :named("subtype"), $P778 :named("node"))
+    store_lex "$past", $P779
+.annotate 'line', 163
+    find_lex $P780, "$/"
+    find_lex $P781, "$past"
+    $P782 = $P780."!make"($P781)
+.annotate 'line', 159
+    .return ($P782)
+  control_767:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P802, exception, "payload"
-    .return ($P802)
+    getattribute $P783, exception, "payload"
+    .return ($P783)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<.>"  :subid("49_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_806
-.annotate 'line', 165
-    new $P805, 'ExceptionHandler'
-    set_addr $P805, control_804
-    $P805."handle_types"(57)
-    push_eh $P805
-    .lex "self", self
-    .lex "$/", param_806
+.include "except_types.pasm"
+.sub "metachar:sym<'>"  :subid("48_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_787
 .annotate 'line', 166
-    new $P807, "Undef"
-    .lex "$past", $P807
-    get_hll_global $P808, ["PAST"], "Regex"
-    find_lex $P809, "$/"
-    $P810 = $P808."new"("charclass" :named("pasttype"), "." :named("subtype"), $P809 :named("node"))
-    store_lex "$past", $P810
-.annotate 'line', 167
-    find_lex $P811, "$/"
-    find_lex $P812, "$past"
-    $P813 = $P811."!make"($P812)
-.annotate 'line', 165
-    .return ($P813)
-  control_804:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P814, exception, "payload"
-    .return ($P814)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^>"  :subid("50_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_818
-.annotate 'line', 170
-    new $P817, 'ExceptionHandler'
-    set_addr $P817, control_816
-    $P817."handle_types"(57)
-    push_eh $P817
+    new $P786, 'ExceptionHandler'
+    set_addr $P786, control_785
+    $P786."handle_types"(.CONTROL_RETURN)
+    push_eh $P786
     .lex "self", self
-    .lex "$/", param_818
-.annotate 'line', 171
-    new $P819, "Undef"
-    .lex "$past", $P819
-    get_hll_global $P820, ["PAST"], "Regex"
-    find_lex $P821, "$/"
-    $P822 = $P820."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P821 :named("node"))
-    store_lex "$past", $P822
-.annotate 'line', 172
-    find_lex $P823, "$/"
-    find_lex $P824, "$past"
-    $P825 = $P823."!make"($P824)
+    .lex "$/", param_787
+.annotate 'line', 167
+    new $P788, "Undef"
+    .lex "$quote", $P788
+.annotate 'line', 169
+    new $P789, "Undef"
+    .lex "$past", $P789
+.annotate 'line', 167
+    find_lex $P790, "$/"
+    unless_null $P790, vivify_231
+    $P790 = root_new ['parrot';'Hash']
+  vivify_231:
+    set $P791, $P790["quote_EXPR"]
+    unless_null $P791, vivify_232
+    new $P791, "Undef"
+  vivify_232:
+    $P792 = $P791."ast"()
+    store_lex "$quote", $P792
+.annotate 'line', 168
+    get_hll_global $P794, ["PAST"], "Val"
+    find_lex $P795, "$quote"
+    $P796 = $P794."ACCEPTS"($P795)
+    unless $P796, if_793_end
+    find_lex $P797, "$quote"
+    $P798 = $P797."value"()
+    store_lex "$quote", $P798
+  if_793_end:
+.annotate 'line', 169
+    get_hll_global $P799, ["PAST"], "Regex"
+    find_lex $P800, "$quote"
+    find_lex $P801, "$/"
+    $P802 = $P799."new"($P800, "literal" :named("pasttype"), $P801 :named("node"))
+    store_lex "$past", $P802
 .annotate 'line', 170
-    .return ($P825)
-  control_816:
+    find_lex $P803, "$/"
+    find_lex $P804, "$past"
+    $P805 = $P803."!make"($P804)
+.annotate 'line', 166
+    .return ($P805)
+  control_785:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P826, exception, "payload"
-    .return ($P826)
+    getattribute $P806, exception, "payload"
+    .return ($P806)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^^>"  :subid("51_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_830
-.annotate 'line', 175
-    new $P829, 'ExceptionHandler'
-    set_addr $P829, control_828
-    $P829."handle_types"(57)
-    push_eh $P829
+.include "except_types.pasm"
+.sub "metachar:sym<\">"  :subid("49_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_810
+.annotate 'line', 173
+    new $P809, 'ExceptionHandler'
+    set_addr $P809, control_808
+    $P809."handle_types"(.CONTROL_RETURN)
+    push_eh $P809
     .lex "self", self
-    .lex "$/", param_830
+    .lex "$/", param_810
+.annotate 'line', 174
+    new $P811, "Undef"
+    .lex "$quote", $P811
 .annotate 'line', 176
-    new $P831, "Undef"
-    .lex "$past", $P831
-    get_hll_global $P832, ["PAST"], "Regex"
-    find_lex $P833, "$/"
-    $P834 = $P832."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P833 :named("node"))
-    store_lex "$past", $P834
-.annotate 'line', 177
-    find_lex $P835, "$/"
-    find_lex $P836, "$past"
-    $P837 = $P835."!make"($P836)
+    new $P812, "Undef"
+    .lex "$past", $P812
+.annotate 'line', 174
+    find_lex $P813, "$/"
+    unless_null $P813, vivify_233
+    $P813 = root_new ['parrot';'Hash']
+  vivify_233:
+    set $P814, $P813["quote_EXPR"]
+    unless_null $P814, vivify_234
+    new $P814, "Undef"
+  vivify_234:
+    $P815 = $P814."ast"()
+    store_lex "$quote", $P815
 .annotate 'line', 175
-    .return ($P837)
-  control_828:
+    get_hll_global $P817, ["PAST"], "Val"
+    find_lex $P818, "$quote"
+    $P819 = $P817."ACCEPTS"($P818)
+    unless $P819, if_816_end
+    find_lex $P820, "$quote"
+    $P821 = $P820."value"()
+    store_lex "$quote", $P821
+  if_816_end:
+.annotate 'line', 176
+    get_hll_global $P822, ["PAST"], "Regex"
+    find_lex $P823, "$quote"
+    find_lex $P824, "$/"
+    $P825 = $P822."new"($P823, "literal" :named("pasttype"), $P824 :named("node"))
+    store_lex "$past", $P825
+.annotate 'line', 177
+    find_lex $P826, "$/"
+    find_lex $P827, "$past"
+    $P828 = $P826."!make"($P827)
+.annotate 'line', 173
+    .return ($P828)
+  control_808:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P838, exception, "payload"
-    .return ($P838)
+    getattribute $P829, exception, "payload"
+    .return ($P829)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$>"  :subid("52_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_842
+.include "except_types.pasm"
+.sub "metachar:sym<.>"  :subid("50_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_833
 .annotate 'line', 180
-    new $P841, 'ExceptionHandler'
-    set_addr $P841, control_840
-    $P841."handle_types"(57)
-    push_eh $P841
+    new $P832, 'ExceptionHandler'
+    set_addr $P832, control_831
+    $P832."handle_types"(.CONTROL_RETURN)
+    push_eh $P832
     .lex "self", self
-    .lex "$/", param_842
+    .lex "$/", param_833
 .annotate 'line', 181
-    new $P843, "Undef"
-    .lex "$past", $P843
-    get_hll_global $P844, ["PAST"], "Regex"
-    find_lex $P845, "$/"
-    $P846 = $P844."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P845 :named("node"))
-    store_lex "$past", $P846
+    new $P834, "Undef"
+    .lex "$past", $P834
+    get_hll_global $P835, ["PAST"], "Regex"
+    find_lex $P836, "$/"
+    $P837 = $P835."new"("charclass" :named("pasttype"), "." :named("subtype"), $P836 :named("node"))
+    store_lex "$past", $P837
 .annotate 'line', 182
-    find_lex $P847, "$/"
-    find_lex $P848, "$past"
-    $P849 = $P847."!make"($P848)
+    find_lex $P838, "$/"
+    find_lex $P839, "$past"
+    $P840 = $P838."!make"($P839)
 .annotate 'line', 180
-    .return ($P849)
-  control_840:
+    .return ($P840)
+  control_831:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P850, exception, "payload"
-    .return ($P850)
+    getattribute $P841, exception, "payload"
+    .return ($P841)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$$>"  :subid("53_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_854
+.include "except_types.pasm"
+.sub "metachar:sym<^>"  :subid("51_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_845
 .annotate 'line', 185
-    new $P853, 'ExceptionHandler'
-    set_addr $P853, control_852
-    $P853."handle_types"(57)
-    push_eh $P853
+    new $P844, 'ExceptionHandler'
+    set_addr $P844, control_843
+    $P844."handle_types"(.CONTROL_RETURN)
+    push_eh $P844
     .lex "self", self
-    .lex "$/", param_854
+    .lex "$/", param_845
 .annotate 'line', 186
-    new $P855, "Undef"
-    .lex "$past", $P855
-    get_hll_global $P856, ["PAST"], "Regex"
-    find_lex $P857, "$/"
-    $P858 = $P856."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P857 :named("node"))
-    store_lex "$past", $P858
+    new $P846, "Undef"
+    .lex "$past", $P846
+    get_hll_global $P847, ["PAST"], "Regex"
+    find_lex $P848, "$/"
+    $P849 = $P847."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P848 :named("node"))
+    store_lex "$past", $P849
 .annotate 'line', 187
-    find_lex $P859, "$/"
-    find_lex $P860, "$past"
-    $P861 = $P859."!make"($P860)
+    find_lex $P850, "$/"
+    find_lex $P851, "$past"
+    $P852 = $P850."!make"($P851)
 .annotate 'line', 185
-    .return ($P861)
-  control_852:
+    .return ($P852)
+  control_843:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P862, exception, "payload"
-    .return ($P862)
+    getattribute $P853, exception, "payload"
+    .return ($P853)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<:::>"  :subid("54_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_866
+.include "except_types.pasm"
+.sub "metachar:sym<^^>"  :subid("52_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_857
 .annotate 'line', 190
-    new $P865, 'ExceptionHandler'
-    set_addr $P865, control_864
-    $P865."handle_types"(57)
-    push_eh $P865
+    new $P856, 'ExceptionHandler'
+    set_addr $P856, control_855
+    $P856."handle_types"(.CONTROL_RETURN)
+    push_eh $P856
     .lex "self", self
-    .lex "$/", param_866
+    .lex "$/", param_857
 .annotate 'line', 191
-    new $P867, "Undef"
-    .lex "$past", $P867
-    get_hll_global $P868, ["PAST"], "Regex"
-    find_lex $P869, "$/"
-    $P870 = $P868."new"("cut" :named("pasttype"), $P869 :named("node"))
-    store_lex "$past", $P870
+    new $P858, "Undef"
+    .lex "$past", $P858
+    get_hll_global $P859, ["PAST"], "Regex"
+    find_lex $P860, "$/"
+    $P861 = $P859."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P860 :named("node"))
+    store_lex "$past", $P861
 .annotate 'line', 192
-    find_lex $P871, "$/"
-    find_lex $P872, "$past"
-    $P873 = $P871."!make"($P872)
+    find_lex $P862, "$/"
+    find_lex $P863, "$past"
+    $P864 = $P862."!make"($P863)
 .annotate 'line', 190
-    .return ($P873)
-  control_864:
+    .return ($P864)
+  control_855:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P874, exception, "payload"
-    .return ($P874)
+    getattribute $P865, exception, "payload"
+    .return ($P865)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<lwb>"  :subid("55_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_878
+.include "except_types.pasm"
+.sub "metachar:sym<$>"  :subid("53_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_869
 .annotate 'line', 195
-    new $P877, 'ExceptionHandler'
-    set_addr $P877, control_876
-    $P877."handle_types"(57)
-    push_eh $P877
+    new $P868, 'ExceptionHandler'
+    set_addr $P868, control_867
+    $P868."handle_types"(.CONTROL_RETURN)
+    push_eh $P868
     .lex "self", self
-    .lex "$/", param_878
+    .lex "$/", param_869
 .annotate 'line', 196
-    new $P879, "Undef"
-    .lex "$past", $P879
-    get_hll_global $P880, ["PAST"], "Regex"
-    find_lex $P881, "$/"
-    $P882 = $P880."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P881 :named("node"))
-    store_lex "$past", $P882
+    new $P870, "Undef"
+    .lex "$past", $P870
+    get_hll_global $P871, ["PAST"], "Regex"
+    find_lex $P872, "$/"
+    $P873 = $P871."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P872 :named("node"))
+    store_lex "$past", $P873
 .annotate 'line', 197
-    find_lex $P883, "$/"
-    find_lex $P884, "$past"
-    $P885 = $P883."!make"($P884)
+    find_lex $P874, "$/"
+    find_lex $P875, "$past"
+    $P876 = $P874."!make"($P875)
 .annotate 'line', 195
-    .return ($P885)
-  control_876:
+    .return ($P876)
+  control_867:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P886, exception, "payload"
-    .return ($P886)
+    getattribute $P877, exception, "payload"
+    .return ($P877)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<rwb>"  :subid("56_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_890
+.include "except_types.pasm"
+.sub "metachar:sym<$$>"  :subid("54_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_881
 .annotate 'line', 200
-    new $P889, 'ExceptionHandler'
-    set_addr $P889, control_888
-    $P889."handle_types"(57)
-    push_eh $P889
+    new $P880, 'ExceptionHandler'
+    set_addr $P880, control_879
+    $P880."handle_types"(.CONTROL_RETURN)
+    push_eh $P880
     .lex "self", self
-    .lex "$/", param_890
+    .lex "$/", param_881
 .annotate 'line', 201
-    new $P891, "Undef"
-    .lex "$past", $P891
-    get_hll_global $P892, ["PAST"], "Regex"
-    find_lex $P893, "$/"
-    $P894 = $P892."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P893 :named("node"))
-    store_lex "$past", $P894
+    new $P882, "Undef"
+    .lex "$past", $P882
+    get_hll_global $P883, ["PAST"], "Regex"
+    find_lex $P884, "$/"
+    $P885 = $P883."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P884 :named("node"))
+    store_lex "$past", $P885
 .annotate 'line', 202
-    find_lex $P895, "$/"
-    find_lex $P896, "$past"
-    $P897 = $P895."!make"($P896)
+    find_lex $P886, "$/"
+    find_lex $P887, "$past"
+    $P888 = $P886."!make"($P887)
 .annotate 'line', 200
-    .return ($P897)
-  control_888:
+    .return ($P888)
+  control_879:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P898, exception, "payload"
-    .return ($P898)
+    getattribute $P889, exception, "payload"
+    .return ($P889)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<bs>"  :subid("57_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_902
+.include "except_types.pasm"
+.sub "metachar:sym<:::>"  :subid("55_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_893
 .annotate 'line', 205
-    new $P901, 'ExceptionHandler'
-    set_addr $P901, control_900
-    $P901."handle_types"(57)
-    push_eh $P901
+    new $P892, 'ExceptionHandler'
+    set_addr $P892, control_891
+    $P892."handle_types"(.CONTROL_RETURN)
+    push_eh $P892
     .lex "self", self
-    .lex "$/", param_902
+    .lex "$/", param_893
 .annotate 'line', 206
-    find_lex $P903, "$/"
-    find_lex $P904, "$/"
-    unless_null $P904, vivify_229
-    $P904 = root_new ['parrot';'Hash']
-  vivify_229:
-    set $P905, $P904["backslash"]
-    unless_null $P905, vivify_230
-    new $P905, "Undef"
-  vivify_230:
-    $P906 = $P905."ast"()
-    $P907 = $P903."!make"($P906)
+    new $P894, "Undef"
+    .lex "$past", $P894
+    get_hll_global $P895, ["PAST"], "Regex"
+    find_lex $P896, "$/"
+    $P897 = $P895."new"("cut" :named("pasttype"), $P896 :named("node"))
+    store_lex "$past", $P897
+.annotate 'line', 207
+    find_lex $P898, "$/"
+    find_lex $P899, "$past"
+    $P900 = $P898."!make"($P899)
 .annotate 'line', 205
-    .return ($P907)
-  control_900:
+    .return ($P900)
+  control_891:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P908, exception, "payload"
-    .return ($P908)
+    getattribute $P901, exception, "payload"
+    .return ($P901)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<mod>"  :subid("58_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_912
-.annotate 'line', 209
-    new $P911, 'ExceptionHandler'
-    set_addr $P911, control_910
-    $P911."handle_types"(57)
-    push_eh $P911
-    .lex "self", self
-    .lex "$/", param_912
+.include "except_types.pasm"
+.sub "metachar:sym<lwb>"  :subid("56_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_905
 .annotate 'line', 210
-    find_lex $P913, "$/"
-    find_lex $P914, "$/"
-    unless_null $P914, vivify_231
-    $P914 = root_new ['parrot';'Hash']
-  vivify_231:
-    set $P915, $P914["mod_internal"]
-    unless_null $P915, vivify_232
-    new $P915, "Undef"
-  vivify_232:
-    $P916 = $P915."ast"()
-    $P917 = $P913."!make"($P916)
-.annotate 'line', 209
-    .return ($P917)
-  control_910:
+    new $P904, 'ExceptionHandler'
+    set_addr $P904, control_903
+    $P904."handle_types"(.CONTROL_RETURN)
+    push_eh $P904
+    .lex "self", self
+    .lex "$/", param_905
+.annotate 'line', 211
+    new $P906, "Undef"
+    .lex "$past", $P906
+    get_hll_global $P907, ["PAST"], "Regex"
+    find_lex $P908, "$/"
+    $P909 = $P907."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P908 :named("node"))
+    store_lex "$past", $P909
+.annotate 'line', 212
+    find_lex $P910, "$/"
+    find_lex $P911, "$past"
+    $P912 = $P910."!make"($P911)
+.annotate 'line', 210
+    .return ($P912)
+  control_903:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P918, exception, "payload"
-    .return ($P918)
+    getattribute $P913, exception, "payload"
+    .return ($P913)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<assert>"  :subid("59_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_922
-.annotate 'line', 213
-    new $P921, 'ExceptionHandler'
-    set_addr $P921, control_920
-    $P921."handle_types"(57)
-    push_eh $P921
+.include "except_types.pasm"
+.sub "metachar:sym<rwb>"  :subid("57_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_917
+.annotate 'line', 215
+    new $P916, 'ExceptionHandler'
+    set_addr $P916, control_915
+    $P916."handle_types"(.CONTROL_RETURN)
+    push_eh $P916
     .lex "self", self
-    .lex "$/", param_922
-.annotate 'line', 214
-    find_lex $P923, "$/"
-    find_lex $P924, "$/"
-    unless_null $P924, vivify_233
-    $P924 = root_new ['parrot';'Hash']
-  vivify_233:
-    set $P925, $P924["assertion"]
-    unless_null $P925, vivify_234
-    new $P925, "Undef"
-  vivify_234:
-    $P926 = $P925."ast"()
-    $P927 = $P923."!make"($P926)
-.annotate 'line', 213
-    .return ($P927)
-  control_920:
+    .lex "$/", param_917
+.annotate 'line', 216
+    new $P918, "Undef"
+    .lex "$past", $P918
+    get_hll_global $P919, ["PAST"], "Regex"
+    find_lex $P920, "$/"
+    $P921 = $P919."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P920 :named("node"))
+    store_lex "$past", $P921
+.annotate 'line', 217
+    find_lex $P922, "$/"
+    find_lex $P923, "$past"
+    $P924 = $P922."!make"($P923)
+.annotate 'line', 215
+    .return ($P924)
+  control_915:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P928, exception, "payload"
-    .return ($P928)
+    getattribute $P925, exception, "payload"
+    .return ($P925)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<~>"  :subid("60_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_932
-.annotate 'line', 217
-    new $P931, 'ExceptionHandler'
-    set_addr $P931, control_930
-    $P931."handle_types"(57)
-    push_eh $P931
-    .lex "self", self
-    .lex "$/", param_932
-.annotate 'line', 218
-    find_lex $P933, "$/"
-    get_hll_global $P934, ["PAST"], "Regex"
-.annotate 'line', 219
-    find_lex $P935, "$/"
-    unless_null $P935, vivify_235
-    $P935 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "metachar:sym<bs>"  :subid("58_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_929
+.annotate 'line', 220
+    new $P928, 'ExceptionHandler'
+    set_addr $P928, control_927
+    $P928."handle_types"(.CONTROL_RETURN)
+    push_eh $P928
+    .lex "self", self
+    .lex "$/", param_929
+.annotate 'line', 221
+    find_lex $P930, "$/"
+    find_lex $P931, "$/"
+    unless_null $P931, vivify_235
+    $P931 = root_new ['parrot';'Hash']
   vivify_235:
-    set $P936, $P935["EXPR"]
-    unless_null $P936, vivify_236
-    new $P936, "Undef"
+    set $P932, $P931["backslash"]
+    unless_null $P932, vivify_236
+    new $P932, "Undef"
   vivify_236:
-    $P937 = $P936."ast"()
+    $P933 = $P932."ast"()
+    $P934 = $P930."!make"($P933)
 .annotate 'line', 220
-    get_hll_global $P938, ["PAST"], "Regex"
-.annotate 'line', 221
-    find_lex $P939, "$/"
-    unless_null $P939, vivify_237
-    $P939 = root_new ['parrot';'Hash']
+    .return ($P934)
+  control_927:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P935, exception, "payload"
+    .return ($P935)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "metachar:sym<mod>"  :subid("59_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_939
+.annotate 'line', 224
+    new $P938, 'ExceptionHandler'
+    set_addr $P938, control_937
+    $P938."handle_types"(.CONTROL_RETURN)
+    push_eh $P938
+    .lex "self", self
+    .lex "$/", param_939
+.annotate 'line', 225
+    find_lex $P940, "$/"
+    find_lex $P941, "$/"
+    unless_null $P941, vivify_237
+    $P941 = root_new ['parrot';'Hash']
   vivify_237:
-    set $P940, $P939["GOAL"]
-    unless_null $P940, vivify_238
-    new $P940, "Undef"
+    set $P942, $P941["mod_internal"]
+    unless_null $P942, vivify_238
+    new $P942, "Undef"
   vivify_238:
-    $P941 = $P940."ast"()
-.annotate 'line', 222
-    get_hll_global $P942, ["PAST"], "Regex"
-    find_lex $P943, "$/"
-    unless_null $P943, vivify_239
-    $P943 = root_new ['parrot';'Hash']
+    $P943 = $P942."ast"()
+    $P944 = $P940."!make"($P943)
+.annotate 'line', 224
+    .return ($P944)
+  control_937:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P945, exception, "payload"
+    .return ($P945)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "metachar:sym<assert>"  :subid("60_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_949
+.annotate 'line', 228
+    new $P948, 'ExceptionHandler'
+    set_addr $P948, control_947
+    $P948."handle_types"(.CONTROL_RETURN)
+    push_eh $P948
+    .lex "self", self
+    .lex "$/", param_949
+.annotate 'line', 229
+    find_lex $P950, "$/"
+    find_lex $P951, "$/"
+    unless_null $P951, vivify_239
+    $P951 = root_new ['parrot';'Hash']
   vivify_239:
-    set $P944, $P943["GOAL"]
-    unless_null $P944, vivify_240
-    new $P944, "Undef"
+    set $P952, $P951["assertion"]
+    unless_null $P952, vivify_240
+    new $P952, "Undef"
   vivify_240:
-    set $S945, $P944
-    $P946 = $P942."new"("FAILGOAL", $S945, "subrule" :named("pasttype"), "method" :named("subtype"))
-    $P947 = $P938."new"($P941, $P946, "alt" :named("pasttype"))
-.annotate 'line', 220
-    $P948 = $P934."new"($P937, $P947, "concat" :named("pasttype"))
-.annotate 'line', 218
-    $P949 = $P933."!make"($P948)
-.annotate 'line', 217
-    .return ($P949)
-  control_930:
+    $P953 = $P952."ast"()
+    $P954 = $P950."!make"($P953)
+.annotate 'line', 228
+    .return ($P954)
+  control_947:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P950, exception, "payload"
-    .return ($P950)
+    getattribute $P955, exception, "payload"
+    .return ($P955)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<{*}>"  :subid("61_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_954
-.annotate 'line', 230
-    new $P953, 'ExceptionHandler'
-    set_addr $P953, control_952
-    $P953."handle_types"(57)
-    push_eh $P953
-    .lex "self", self
-    .lex "$/", param_954
-.annotate 'line', 231
-    new $P955, "Undef"
-    .lex "$past", $P955
+.include "except_types.pasm"
+.sub "metachar:sym<~>"  :subid("61_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_959
 .annotate 'line', 232
-    find_lex $P958, "$/"
-    unless_null $P958, vivify_241
-    $P958 = root_new ['parrot';'Hash']
+    new $P958, 'ExceptionHandler'
+    set_addr $P958, control_957
+    $P958."handle_types"(.CONTROL_RETURN)
+    push_eh $P958
+    .lex "self", self
+    .lex "$/", param_959
+.annotate 'line', 233
+    find_lex $P960, "$/"
+    get_hll_global $P961, ["PAST"], "Regex"
+.annotate 'line', 234
+    find_lex $P962, "$/"
+    unless_null $P962, vivify_241
+    $P962 = root_new ['parrot';'Hash']
   vivify_241:
-    set $P959, $P958["key"]
-    unless_null $P959, vivify_242
-    new $P959, "Undef"
+    set $P963, $P962["EXPR"]
+    unless_null $P963, vivify_242
+    new $P963, "Undef"
   vivify_242:
-    if $P959, if_957
-    new $P967, "Integer"
-    assign $P967, 0
-    set $P956, $P967
-    goto if_957_end
-  if_957:
-    get_hll_global $P960, ["PAST"], "Regex"
-    find_lex $P961, "$/"
-    unless_null $P961, vivify_243
-    $P961 = root_new ['parrot';'Hash']
+    $P964 = $P963."ast"()
+.annotate 'line', 235
+    get_hll_global $P965, ["PAST"], "Regex"
+.annotate 'line', 236
+    find_lex $P966, "$/"
+    unless_null $P966, vivify_243
+    $P966 = root_new ['parrot';'Hash']
   vivify_243:
-    set $P962, $P961["key"]
-    unless_null $P962, vivify_244
-    $P962 = root_new ['parrot';'ResizablePMCArray']
+    set $P967, $P966["GOAL"]
+    unless_null $P967, vivify_244
+    new $P967, "Undef"
   vivify_244:
-    set $P963, $P962[0]
-    unless_null $P963, vivify_245
-    new $P963, "Undef"
+    $P968 = $P967."ast"()
+.annotate 'line', 237
+    get_hll_global $P969, ["PAST"], "Regex"
+    find_lex $P970, "$/"
+    unless_null $P970, vivify_245
+    $P970 = root_new ['parrot';'Hash']
   vivify_245:
-    set $S964, $P963
-    find_lex $P965, "$/"
-    $P966 = $P960."new"($S964, "reduce" :named("pasttype"), $P965 :named("node"))
-    set $P956, $P966
-  if_957_end:
-    store_lex "$past", $P956
-.annotate 'line', 234
-    find_lex $P968, "$/"
-    find_lex $P969, "$past"
-    $P970 = $P968."!make"($P969)
-.annotate 'line', 230
-    .return ($P970)
-  control_952:
+    set $P971, $P970["GOAL"]
+    unless_null $P971, vivify_246
+    new $P971, "Undef"
+  vivify_246:
+    set $S972, $P971
+    $P973 = $P969."new"("FAILGOAL", $S972, "subrule" :named("pasttype"), "method" :named("subtype"))
+    $P974 = $P965."new"($P968, $P973, "alt" :named("pasttype"))
+.annotate 'line', 235
+    $P975 = $P961."new"($P964, $P974, "concat" :named("pasttype"))
+.annotate 'line', 233
+    $P976 = $P960."!make"($P975)
+.annotate 'line', 232
+    .return ($P976)
+  control_957:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P971, exception, "payload"
-    .return ($P971)
+    getattribute $P977, exception, "payload"
+    .return ($P977)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<var>"  :subid("62_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_975
-.annotate 'line', 237
-    new $P974, 'ExceptionHandler'
-    set_addr $P974, control_973
-    $P974."handle_types"(57)
-    push_eh $P974
-    .lex "self", self
-    .lex "$/", param_975
-.annotate 'line', 238
-    new $P976, "Undef"
-    .lex "$past", $P976
-.annotate 'line', 239
-    new $P977, "Undef"
-    .lex "$name", $P977
-.annotate 'line', 237
-    find_lex $P978, "$past"
-.annotate 'line', 239
-    find_lex $P981, "$/"
-    unless_null $P981, vivify_246
-    $P981 = root_new ['parrot';'Hash']
-  vivify_246:
-    set $P982, $P981["pos"]
-    unless_null $P982, vivify_247
+.include "except_types.pasm"
+.sub "metachar:sym<{*}>"  :subid("62_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_981
+.annotate 'line', 245
+    new $P980, 'ExceptionHandler'
+    set_addr $P980, control_979
+    $P980."handle_types"(.CONTROL_RETURN)
+    push_eh $P980
+    .lex "self", self
+    .lex "$/", param_981
+.annotate 'line', 246
     new $P982, "Undef"
+    .lex "$past", $P982
+.annotate 'line', 247
+    find_lex $P985, "$/"
+    unless_null $P985, vivify_247
+    $P985 = root_new ['parrot';'Hash']
   vivify_247:
-    if $P982, if_980
-    find_lex $P986, "$/"
+    set $P986, $P985["key"]
     unless_null $P986, vivify_248
-    $P986 = root_new ['parrot';'Hash']
+    new $P986, "Undef"
   vivify_248:
-    set $P987, $P986["name"]
-    unless_null $P987, vivify_249
-    new $P987, "Undef"
+    if $P986, if_984
+    new $P994, "Integer"
+    assign $P994, 0
+    set $P983, $P994
+    goto if_984_end
+  if_984:
+    get_hll_global $P987, ["PAST"], "Regex"
+    find_lex $P988, "$/"
+    unless_null $P988, vivify_249
+    $P988 = root_new ['parrot';'Hash']
   vivify_249:
-    set $S988, $P987
-    new $P979, 'String'
-    set $P979, $S988
-    goto if_980_end
-  if_980:
-    find_lex $P983, "$/"
-    unless_null $P983, vivify_250
-    $P983 = root_new ['parrot';'Hash']
+    set $P989, $P988["key"]
+    unless_null $P989, vivify_250
+    $P989 = root_new ['parrot';'ResizablePMCArray']
   vivify_250:
-    set $P984, $P983["pos"]
-    unless_null $P984, vivify_251
-    new $P984, "Undef"
+    set $P990, $P989[0]
+    unless_null $P990, vivify_251
+    new $P990, "Undef"
   vivify_251:
-    set $N985, $P984
-    new $P979, 'Float'
-    set $P979, $N985
-  if_980_end:
-    store_lex "$name", $P979
-.annotate 'line', 240
-    find_lex $P990, "$/"
-    unless_null $P990, vivify_252
-    $P990 = root_new ['parrot';'Hash']
-  vivify_252:
-    set $P991, $P990["quantified_atom"]
-    unless_null $P991, vivify_253
-    new $P991, "Undef"
-  vivify_253:
-    if $P991, if_989
-.annotate 'line', 251
-    get_hll_global $P1020, ["PAST"], "Regex"
-    find_lex $P1021, "$name"
-    find_lex $P1022, "$/"
-    $P1023 = $P1020."new"("!BACKREF", $P1021, "subrule" :named("pasttype"), "method" :named("subtype"), $P1022 :named("node"))
-    store_lex "$past", $P1023
-.annotate 'line', 250
-    goto if_989_end
-  if_989:
-.annotate 'line', 241
+    set $S991, $P990
     find_lex $P992, "$/"
-    unless_null $P992, vivify_254
-    $P992 = root_new ['parrot';'Hash']
-  vivify_254:
-    set $P993, $P992["quantified_atom"]
-    unless_null $P993, vivify_255
-    $P993 = root_new ['parrot';'ResizablePMCArray']
-  vivify_255:
-    set $P994, $P993[0]
-    unless_null $P994, vivify_256
-    new $P994, "Undef"
-  vivify_256:
-    $P995 = $P994."ast"()
-    store_lex "$past", $P995
-.annotate 'line', 242
-    find_lex $P999, "$past"
-    $S1000 = $P999."pasttype"()
-    iseq $I1001, $S1000, "quant"
-    if $I1001, if_998
-    new $P997, 'Integer'
-    set $P997, $I1001
-    goto if_998_end
-  if_998:
-    find_lex $P1002, "$past"
-    unless_null $P1002, vivify_257
-    $P1002 = root_new ['parrot';'ResizablePMCArray']
-  vivify_257:
-    set $P1003, $P1002[0]
-    unless_null $P1003, vivify_258
-    new $P1003, "Undef"
-  vivify_258:
-    $S1004 = $P1003."pasttype"()
-    iseq $I1005, $S1004, "subrule"
-    new $P997, 'Integer'
-    set $P997, $I1005
-  if_998_end:
-    if $P997, if_996
+    $P993 = $P987."new"($S991, "reduce" :named("pasttype"), $P992 :named("node"))
+    set $P983, $P993
+  if_984_end:
+    store_lex "$past", $P983
+.annotate 'line', 249
+    find_lex $P995, "$/"
+    find_lex $P996, "$past"
+    $P997 = $P995."!make"($P996)
 .annotate 'line', 245
-    find_lex $P1010, "$past"
-    $S1011 = $P1010."pasttype"()
-    iseq $I1012, $S1011, "subrule"
-    if $I1012, if_1009
-.annotate 'line', 247
-    get_hll_global $P1015, ["PAST"], "Regex"
-    find_lex $P1016, "$past"
-    find_lex $P1017, "$name"
-    find_lex $P1018, "$/"
-    $P1019 = $P1015."new"($P1016, $P1017 :named("name"), "subcapture" :named("pasttype"), $P1018 :named("node"))
-    store_lex "$past", $P1019
-.annotate 'line', 246
-    goto if_1009_end
-  if_1009:
-.annotate 'line', 245
-    find_lex $P1013, "$past"
-    find_lex $P1014, "$name"
-    "subrule_alias"($P1013, $P1014)
-  if_1009_end:
-    goto if_996_end
-  if_996:
-.annotate 'line', 243
-    find_lex $P1006, "$past"
-    unless_null $P1006, vivify_259
-    $P1006 = root_new ['parrot';'ResizablePMCArray']
-  vivify_259:
-    set $P1007, $P1006[0]
-    unless_null $P1007, vivify_260
-    new $P1007, "Undef"
-  vivify_260:
-    find_lex $P1008, "$name"
-    "subrule_alias"($P1007, $P1008)
-  if_996_end:
-  if_989_end:
-.annotate 'line', 254
-    find_lex $P1024, "$/"
-    find_lex $P1025, "$past"
-    $P1026 = $P1024."!make"($P1025)
-.annotate 'line', 237
-    .return ($P1026)
-  control_973:
+    .return ($P997)
+  control_979:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1027, exception, "payload"
-    .return ($P1027)
+    getattribute $P998, exception, "payload"
+    .return ($P998)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<PIR>"  :subid("63_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1031
-.annotate 'line', 257
-    new $P1030, 'ExceptionHandler'
-    set_addr $P1030, control_1029
-    $P1030."handle_types"(57)
-    push_eh $P1030
+.include "except_types.pasm"
+.sub "metachar:sym<var>"  :subid("63_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1002
+.annotate 'line', 252
+    new $P1001, 'ExceptionHandler'
+    set_addr $P1001, control_1000
+    $P1001."handle_types"(.CONTROL_RETURN)
+    push_eh $P1001
     .lex "self", self
-    .lex "$/", param_1031
-.annotate 'line', 258
-    find_lex $P1032, "$/"
-    get_hll_global $P1033, ["PAST"], "Regex"
-.annotate 'line', 259
-    get_hll_global $P1034, ["PAST"], "Op"
-    find_lex $P1035, "$/"
-    unless_null $P1035, vivify_261
-    $P1035 = root_new ['parrot';'Hash']
+    .lex "$/", param_1002
+.annotate 'line', 253
+    new $P1003, "Undef"
+    .lex "$past", $P1003
+.annotate 'line', 254
+    new $P1004, "Undef"
+    .lex "$name", $P1004
+.annotate 'line', 252
+    find_lex $P1005, "$past"
+.annotate 'line', 254
+    find_lex $P1008, "$/"
+    unless_null $P1008, vivify_252
+    $P1008 = root_new ['parrot';'Hash']
+  vivify_252:
+    set $P1009, $P1008["pos"]
+    unless_null $P1009, vivify_253
+    new $P1009, "Undef"
+  vivify_253:
+    if $P1009, if_1007
+    find_lex $P1013, "$/"
+    unless_null $P1013, vivify_254
+    $P1013 = root_new ['parrot';'Hash']
+  vivify_254:
+    set $P1014, $P1013["name"]
+    unless_null $P1014, vivify_255
+    new $P1014, "Undef"
+  vivify_255:
+    set $S1015, $P1014
+    new $P1006, 'String'
+    set $P1006, $S1015
+    goto if_1007_end
+  if_1007:
+    find_lex $P1010, "$/"
+    unless_null $P1010, vivify_256
+    $P1010 = root_new ['parrot';'Hash']
+  vivify_256:
+    set $P1011, $P1010["pos"]
+    unless_null $P1011, vivify_257
+    new $P1011, "Undef"
+  vivify_257:
+    set $N1012, $P1011
+    new $P1006, 'Float'
+    set $P1006, $N1012
+  if_1007_end:
+    store_lex "$name", $P1006
+.annotate 'line', 255
+    find_lex $P1017, "$/"
+    unless_null $P1017, vivify_258
+    $P1017 = root_new ['parrot';'Hash']
+  vivify_258:
+    set $P1018, $P1017["quantified_atom"]
+    unless_null $P1018, vivify_259
+    new $P1018, "Undef"
+  vivify_259:
+    if $P1018, if_1016
+.annotate 'line', 266
+    get_hll_global $P1047, ["PAST"], "Regex"
+    find_lex $P1048, "$name"
+    find_lex $P1049, "$/"
+    $P1050 = $P1047."new"("!BACKREF", $P1048, "subrule" :named("pasttype"), "method" :named("subtype"), $P1049 :named("node"))
+    store_lex "$past", $P1050
+.annotate 'line', 265
+    goto if_1016_end
+  if_1016:
+.annotate 'line', 256
+    find_lex $P1019, "$/"
+    unless_null $P1019, vivify_260
+    $P1019 = root_new ['parrot';'Hash']
+  vivify_260:
+    set $P1020, $P1019["quantified_atom"]
+    unless_null $P1020, vivify_261
+    $P1020 = root_new ['parrot';'ResizablePMCArray']
   vivify_261:
-    set $P1036, $P1035["pir"]
-    unless_null $P1036, vivify_262
-    new $P1036, "Undef"
+    set $P1021, $P1020[0]
+    unless_null $P1021, vivify_262
+    new $P1021, "Undef"
   vivify_262:
-    set $S1037, $P1036
-    $P1038 = $P1034."new"($S1037 :named("inline"), "inline" :named("pasttype"))
-    find_lex $P1039, "$/"
-    $P1040 = $P1033."new"($P1038, "pastnode" :named("pasttype"), $P1039 :named("node"))
-.annotate 'line', 258
-    $P1041 = $P1032."!make"($P1040)
+    $P1022 = $P1021."ast"()
+    store_lex "$past", $P1022
 .annotate 'line', 257
-    .return ($P1041)
-  control_1029:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1042, exception, "payload"
-    .return ($P1042)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<w>"  :subid("64_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1046
-.annotate 'line', 265
-    new $P1045, 'ExceptionHandler'
-    set_addr $P1045, control_1044
-    $P1045."handle_types"(57)
-    push_eh $P1045
-    .lex "self", self
-    .lex "$/", param_1046
-.annotate 'line', 266
-    new $P1047, "Undef"
-    .lex "$subtype", $P1047
-.annotate 'line', 267
-    new $P1048, "Undef"
-    .lex "$past", $P1048
-.annotate 'line', 266
-    find_lex $P1051, "$/"
-    unless_null $P1051, vivify_263
-    $P1051 = root_new ['parrot';'Hash']
+    find_lex $P1026, "$past"
+    $S1027 = $P1026."pasttype"()
+    iseq $I1028, $S1027, "quant"
+    if $I1028, if_1025
+    new $P1024, 'Integer'
+    set $P1024, $I1028
+    goto if_1025_end
+  if_1025:
+    find_lex $P1029, "$past"
+    unless_null $P1029, vivify_263
+    $P1029 = root_new ['parrot';'ResizablePMCArray']
   vivify_263:
-    set $P1052, $P1051["sym"]
-    unless_null $P1052, vivify_264
-    new $P1052, "Undef"
+    set $P1030, $P1029[0]
+    unless_null $P1030, vivify_264
+    new $P1030, "Undef"
   vivify_264:
-    set $S1053, $P1052
-    iseq $I1054, $S1053, "n"
-    if $I1054, if_1050
-    find_lex $P1056, "$/"
-    unless_null $P1056, vivify_265
-    $P1056 = root_new ['parrot';'Hash']
+    $S1031 = $P1030."pasttype"()
+    iseq $I1032, $S1031, "subrule"
+    new $P1024, 'Integer'
+    set $P1024, $I1032
+  if_1025_end:
+    if $P1024, if_1023
+.annotate 'line', 260
+    find_lex $P1037, "$past"
+    $S1038 = $P1037."pasttype"()
+    iseq $I1039, $S1038, "subrule"
+    if $I1039, if_1036
+.annotate 'line', 262
+    get_hll_global $P1042, ["PAST"], "Regex"
+    find_lex $P1043, "$past"
+    find_lex $P1044, "$name"
+    find_lex $P1045, "$/"
+    $P1046 = $P1042."new"($P1043, $P1044 :named("name"), "subcapture" :named("pasttype"), $P1045 :named("node"))
+    store_lex "$past", $P1046
+.annotate 'line', 261
+    goto if_1036_end
+  if_1036:
+.annotate 'line', 260
+    find_lex $P1040, "$past"
+    find_lex $P1041, "$name"
+    "subrule_alias"($P1040, $P1041)
+  if_1036_end:
+    goto if_1023_end
+  if_1023:
+.annotate 'line', 258
+    find_lex $P1033, "$past"
+    unless_null $P1033, vivify_265
+    $P1033 = root_new ['parrot';'ResizablePMCArray']
   vivify_265:
-    set $P1057, $P1056["sym"]
-    unless_null $P1057, vivify_266
-    new $P1057, "Undef"
+    set $P1034, $P1033[0]
+    unless_null $P1034, vivify_266
+    new $P1034, "Undef"
   vivify_266:
-    set $S1058, $P1057
-    new $P1049, 'String'
-    set $P1049, $S1058
-    goto if_1050_end
-  if_1050:
-    new $P1055, "String"
-    assign $P1055, "nl"
-    set $P1049, $P1055
-  if_1050_end:
-    store_lex "$subtype", $P1049
-.annotate 'line', 267
-    get_hll_global $P1059, ["PAST"], "Regex"
-    find_lex $P1060, "$subtype"
-    find_lex $P1061, "$/"
-    $P1062 = $P1059."new"("charclass" :named("pasttype"), $P1060 :named("subtype"), $P1061 :named("node"))
-    store_lex "$past", $P1062
-.annotate 'line', 268
-    find_lex $P1063, "$/"
-    find_lex $P1064, "$past"
-    $P1065 = $P1063."!make"($P1064)
-.annotate 'line', 265
-    .return ($P1065)
-  control_1044:
+    find_lex $P1035, "$name"
+    "subrule_alias"($P1034, $P1035)
+  if_1023_end:
+  if_1016_end:
+.annotate 'line', 269
+    find_lex $P1051, "$/"
+    find_lex $P1052, "$past"
+    $P1053 = $P1051."!make"($P1052)
+.annotate 'line', 252
+    .return ($P1053)
+  control_1000:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1066, exception, "payload"
-    .return ($P1066)
+    getattribute $P1054, exception, "payload"
+    .return ($P1054)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<b>"  :subid("65_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1070
-.annotate 'line', 271
-    new $P1069, 'ExceptionHandler'
-    set_addr $P1069, control_1068
-    $P1069."handle_types"(57)
-    push_eh $P1069
-    .lex "self", self
-    .lex "$/", param_1070
+.include "except_types.pasm"
+.sub "metachar:sym<PIR>"  :subid("64_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1058
 .annotate 'line', 272
-    new $P1071, "Undef"
-    .lex "$past", $P1071
-    get_hll_global $P1072, ["PAST"], "Regex"
+    new $P1057, 'ExceptionHandler'
+    set_addr $P1057, control_1056
+    $P1057."handle_types"(.CONTROL_RETURN)
+    push_eh $P1057
+    .lex "self", self
+    .lex "$/", param_1058
 .annotate 'line', 273
-    find_lex $P1073, "$/"
-    unless_null $P1073, vivify_267
-    $P1073 = root_new ['parrot';'Hash']
+    find_lex $P1059, "$/"
+    get_hll_global $P1060, ["PAST"], "Regex"
+.annotate 'line', 274
+    get_hll_global $P1061, ["PAST"], "Op"
+    find_lex $P1062, "$/"
+    unless_null $P1062, vivify_267
+    $P1062 = root_new ['parrot';'Hash']
   vivify_267:
-    set $P1074, $P1073["sym"]
-    unless_null $P1074, vivify_268
-    new $P1074, "Undef"
+    set $P1063, $P1062["pir"]
+    unless_null $P1063, vivify_268
+    new $P1063, "Undef"
   vivify_268:
-    set $S1075, $P1074
-    iseq $I1076, $S1075, "B"
-    find_lex $P1077, "$/"
-    $P1078 = $P1072."new"("\b", "enumcharlist" :named("pasttype"), $I1076 :named("negate"), $P1077 :named("node"))
+    set $S1064, $P1063
+    $P1065 = $P1061."new"($S1064 :named("inline"), "inline" :named("pasttype"))
+    find_lex $P1066, "$/"
+    $P1067 = $P1060."new"($P1065, "pastnode" :named("pasttype"), $P1066 :named("node"))
+.annotate 'line', 273
+    $P1068 = $P1059."!make"($P1067)
 .annotate 'line', 272
-    store_lex "$past", $P1078
-.annotate 'line', 274
-    find_lex $P1079, "$/"
-    find_lex $P1080, "$past"
-    $P1081 = $P1079."!make"($P1080)
-.annotate 'line', 271
-    .return ($P1081)
-  control_1068:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1082, exception, "payload"
-    .return ($P1082)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<e>"  :subid("66_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1086
-.annotate 'line', 277
-    new $P1085, 'ExceptionHandler'
-    set_addr $P1085, control_1084
-    $P1085."handle_types"(57)
-    push_eh $P1085
-    .lex "self", self
-    .lex "$/", param_1086
-.annotate 'line', 278
-    new $P1087, "Undef"
-    .lex "$past", $P1087
-    get_hll_global $P1088, ["PAST"], "Regex"
-.annotate 'line', 279
-    find_lex $P1089, "$/"
-    unless_null $P1089, vivify_269
-    $P1089 = root_new ['parrot';'Hash']
-  vivify_269:
-    set $P1090, $P1089["sym"]
-    unless_null $P1090, vivify_270
-    new $P1090, "Undef"
-  vivify_270:
-    set $S1091, $P1090
-    iseq $I1092, $S1091, "E"
-    find_lex $P1093, "$/"
-    $P1094 = $P1088."new"("\e", "enumcharlist" :named("pasttype"), $I1092 :named("negate"), $P1093 :named("node"))
-.annotate 'line', 278
-    store_lex "$past", $P1094
-.annotate 'line', 280
-    find_lex $P1095, "$/"
-    find_lex $P1096, "$past"
-    $P1097 = $P1095."!make"($P1096)
-.annotate 'line', 277
-    .return ($P1097)
-  control_1084:
+    .return ($P1068)
+  control_1056:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1098, exception, "payload"
-    .return ($P1098)
+    getattribute $P1069, exception, "payload"
+    .return ($P1069)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<f>"  :subid("67_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1102
-.annotate 'line', 283
-    new $P1101, 'ExceptionHandler'
-    set_addr $P1101, control_1100
-    $P1101."handle_types"(57)
-    push_eh $P1101
-    .lex "self", self
-    .lex "$/", param_1102
-.annotate 'line', 284
-    new $P1103, "Undef"
-    .lex "$past", $P1103
-    get_hll_global $P1104, ["PAST"], "Regex"
-.annotate 'line', 285
-    find_lex $P1105, "$/"
-    unless_null $P1105, vivify_271
-    $P1105 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<w>"  :subid("65_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1073
+.annotate 'line', 280
+    new $P1072, 'ExceptionHandler'
+    set_addr $P1072, control_1071
+    $P1072."handle_types"(.CONTROL_RETURN)
+    push_eh $P1072
+    .lex "self", self
+    .lex "$/", param_1073
+.annotate 'line', 281
+    new $P1074, "Undef"
+    .lex "$subtype", $P1074
+.annotate 'line', 282
+    new $P1075, "Undef"
+    .lex "$past", $P1075
+.annotate 'line', 281
+    find_lex $P1078, "$/"
+    unless_null $P1078, vivify_269
+    $P1078 = root_new ['parrot';'Hash']
+  vivify_269:
+    set $P1079, $P1078["sym"]
+    unless_null $P1079, vivify_270
+    new $P1079, "Undef"
+  vivify_270:
+    set $S1080, $P1079
+    iseq $I1081, $S1080, "n"
+    if $I1081, if_1077
+    find_lex $P1083, "$/"
+    unless_null $P1083, vivify_271
+    $P1083 = root_new ['parrot';'Hash']
   vivify_271:
-    set $P1106, $P1105["sym"]
-    unless_null $P1106, vivify_272
-    new $P1106, "Undef"
+    set $P1084, $P1083["sym"]
+    unless_null $P1084, vivify_272
+    new $P1084, "Undef"
   vivify_272:
-    set $S1107, $P1106
-    iseq $I1108, $S1107, "F"
-    find_lex $P1109, "$/"
-    $P1110 = $P1104."new"("\f", "enumcharlist" :named("pasttype"), $I1108 :named("negate"), $P1109 :named("node"))
-.annotate 'line', 284
-    store_lex "$past", $P1110
-.annotate 'line', 286
-    find_lex $P1111, "$/"
-    find_lex $P1112, "$past"
-    $P1113 = $P1111."!make"($P1112)
+    set $S1085, $P1084
+    new $P1076, 'String'
+    set $P1076, $S1085
+    goto if_1077_end
+  if_1077:
+    new $P1082, "String"
+    assign $P1082, "nl"
+    set $P1076, $P1082
+  if_1077_end:
+    store_lex "$subtype", $P1076
+.annotate 'line', 282
+    get_hll_global $P1086, ["PAST"], "Regex"
+    find_lex $P1087, "$subtype"
+    find_lex $P1088, "$/"
+    $P1089 = $P1086."new"("charclass" :named("pasttype"), $P1087 :named("subtype"), $P1088 :named("node"))
+    store_lex "$past", $P1089
 .annotate 'line', 283
-    .return ($P1113)
-  control_1100:
+    find_lex $P1090, "$/"
+    find_lex $P1091, "$past"
+    $P1092 = $P1090."!make"($P1091)
+.annotate 'line', 280
+    .return ($P1092)
+  control_1071:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1114, exception, "payload"
-    .return ($P1114)
+    getattribute $P1093, exception, "payload"
+    .return ($P1093)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<h>"  :subid("68_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1118
-.annotate 'line', 289
-    new $P1117, 'ExceptionHandler'
-    set_addr $P1117, control_1116
-    $P1117."handle_types"(57)
-    push_eh $P1117
-    .lex "self", self
-    .lex "$/", param_1118
-.annotate 'line', 290
-    new $P1119, "Undef"
-    .lex "$past", $P1119
-    get_hll_global $P1120, ["PAST"], "Regex"
-.annotate 'line', 291
-    find_lex $P1121, "$/"
-    unless_null $P1121, vivify_273
-    $P1121 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<b>"  :subid("66_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1097
+.annotate 'line', 286
+    new $P1096, 'ExceptionHandler'
+    set_addr $P1096, control_1095
+    $P1096."handle_types"(.CONTROL_RETURN)
+    push_eh $P1096
+    .lex "self", self
+    .lex "$/", param_1097
+.annotate 'line', 287
+    new $P1098, "Undef"
+    .lex "$past", $P1098
+    get_hll_global $P1099, ["PAST"], "Regex"
+.annotate 'line', 288
+    find_lex $P1100, "$/"
+    unless_null $P1100, vivify_273
+    $P1100 = root_new ['parrot';'Hash']
   vivify_273:
-    set $P1122, $P1121["sym"]
-    unless_null $P1122, vivify_274
-    new $P1122, "Undef"
+    set $P1101, $P1100["sym"]
+    unless_null $P1101, vivify_274
+    new $P1101, "Undef"
   vivify_274:
-    set $S1123, $P1122
-    iseq $I1124, $S1123, "H"
-    find_lex $P1125, "$/"
-    $P1126 = $P1120."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1124 :named("negate"), $P1125 :named("node"))
-.annotate 'line', 290
-    store_lex "$past", $P1126
-.annotate 'line', 292
-    find_lex $P1127, "$/"
-    find_lex $P1128, "$past"
-    $P1129 = $P1127."!make"($P1128)
+    set $S1102, $P1101
+    iseq $I1103, $S1102, "B"
+    find_lex $P1104, "$/"
+    $P1105 = $P1099."new"("\b", "enumcharlist" :named("pasttype"), $I1103 :named("negate"), $P1104 :named("node"))
+.annotate 'line', 287
+    store_lex "$past", $P1105
 .annotate 'line', 289
-    .return ($P1129)
-  control_1116:
+    find_lex $P1106, "$/"
+    find_lex $P1107, "$past"
+    $P1108 = $P1106."!make"($P1107)
+.annotate 'line', 286
+    .return ($P1108)
+  control_1095:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1130, exception, "payload"
-    .return ($P1130)
+    getattribute $P1109, exception, "payload"
+    .return ($P1109)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<r>"  :subid("69_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1134
-.annotate 'line', 295
-    new $P1133, 'ExceptionHandler'
-    set_addr $P1133, control_1132
-    $P1133."handle_types"(57)
-    push_eh $P1133
-    .lex "self", self
-    .lex "$/", param_1134
-.annotate 'line', 296
-    new $P1135, "Undef"
-    .lex "$past", $P1135
-    get_hll_global $P1136, ["PAST"], "Regex"
-.annotate 'line', 297
-    find_lex $P1137, "$/"
-    unless_null $P1137, vivify_275
-    $P1137 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<e>"  :subid("67_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1113
+.annotate 'line', 292
+    new $P1112, 'ExceptionHandler'
+    set_addr $P1112, control_1111
+    $P1112."handle_types"(.CONTROL_RETURN)
+    push_eh $P1112
+    .lex "self", self
+    .lex "$/", param_1113
+.annotate 'line', 293
+    new $P1114, "Undef"
+    .lex "$past", $P1114
+    get_hll_global $P1115, ["PAST"], "Regex"
+.annotate 'line', 294
+    find_lex $P1116, "$/"
+    unless_null $P1116, vivify_275
+    $P1116 = root_new ['parrot';'Hash']
   vivify_275:
-    set $P1138, $P1137["sym"]
-    unless_null $P1138, vivify_276
-    new $P1138, "Undef"
+    set $P1117, $P1116["sym"]
+    unless_null $P1117, vivify_276
+    new $P1117, "Undef"
   vivify_276:
-    set $S1139, $P1138
-    iseq $I1140, $S1139, "R"
-    find_lex $P1141, "$/"
-    $P1142 = $P1136."new"("\r", "enumcharlist" :named("pasttype"), $I1140 :named("negate"), $P1141 :named("node"))
-.annotate 'line', 296
-    store_lex "$past", $P1142
-.annotate 'line', 298
-    find_lex $P1143, "$/"
-    find_lex $P1144, "$past"
-    $P1145 = $P1143."!make"($P1144)
+    set $S1118, $P1117
+    iseq $I1119, $S1118, "E"
+    find_lex $P1120, "$/"
+    $P1121 = $P1115."new"("\e", "enumcharlist" :named("pasttype"), $I1119 :named("negate"), $P1120 :named("node"))
+.annotate 'line', 293
+    store_lex "$past", $P1121
 .annotate 'line', 295
-    .return ($P1145)
-  control_1132:
+    find_lex $P1122, "$/"
+    find_lex $P1123, "$past"
+    $P1124 = $P1122."!make"($P1123)
+.annotate 'line', 292
+    .return ($P1124)
+  control_1111:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1146, exception, "payload"
-    .return ($P1146)
+    getattribute $P1125, exception, "payload"
+    .return ($P1125)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<t>"  :subid("70_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1150
-.annotate 'line', 301
-    new $P1149, 'ExceptionHandler'
-    set_addr $P1149, control_1148
-    $P1149."handle_types"(57)
-    push_eh $P1149
-    .lex "self", self
-    .lex "$/", param_1150
-.annotate 'line', 302
-    new $P1151, "Undef"
-    .lex "$past", $P1151
-    get_hll_global $P1152, ["PAST"], "Regex"
-.annotate 'line', 303
-    find_lex $P1153, "$/"
-    unless_null $P1153, vivify_277
-    $P1153 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<f>"  :subid("68_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1129
+.annotate 'line', 298
+    new $P1128, 'ExceptionHandler'
+    set_addr $P1128, control_1127
+    $P1128."handle_types"(.CONTROL_RETURN)
+    push_eh $P1128
+    .lex "self", self
+    .lex "$/", param_1129
+.annotate 'line', 299
+    new $P1130, "Undef"
+    .lex "$past", $P1130
+    get_hll_global $P1131, ["PAST"], "Regex"
+.annotate 'line', 300
+    find_lex $P1132, "$/"
+    unless_null $P1132, vivify_277
+    $P1132 = root_new ['parrot';'Hash']
   vivify_277:
-    set $P1154, $P1153["sym"]
-    unless_null $P1154, vivify_278
-    new $P1154, "Undef"
+    set $P1133, $P1132["sym"]
+    unless_null $P1133, vivify_278
+    new $P1133, "Undef"
   vivify_278:
-    set $S1155, $P1154
-    iseq $I1156, $S1155, "T"
-    find_lex $P1157, "$/"
-    $P1158 = $P1152."new"("\t", "enumcharlist" :named("pasttype"), $I1156 :named("negate"), $P1157 :named("node"))
-.annotate 'line', 302
-    store_lex "$past", $P1158
-.annotate 'line', 304
-    find_lex $P1159, "$/"
-    find_lex $P1160, "$past"
-    $P1161 = $P1159."!make"($P1160)
+    set $S1134, $P1133
+    iseq $I1135, $S1134, "F"
+    find_lex $P1136, "$/"
+    $P1137 = $P1131."new"("\f", "enumcharlist" :named("pasttype"), $I1135 :named("negate"), $P1136 :named("node"))
+.annotate 'line', 299
+    store_lex "$past", $P1137
 .annotate 'line', 301
-    .return ($P1161)
-  control_1148:
+    find_lex $P1138, "$/"
+    find_lex $P1139, "$past"
+    $P1140 = $P1138."!make"($P1139)
+.annotate 'line', 298
+    .return ($P1140)
+  control_1127:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1162, exception, "payload"
-    .return ($P1162)
+    getattribute $P1141, exception, "payload"
+    .return ($P1141)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<v>"  :subid("71_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1166
-.annotate 'line', 307
-    new $P1165, 'ExceptionHandler'
-    set_addr $P1165, control_1164
-    $P1165."handle_types"(57)
-    push_eh $P1165
-    .lex "self", self
-    .lex "$/", param_1166
-.annotate 'line', 308
-    new $P1167, "Undef"
-    .lex "$past", $P1167
-    get_hll_global $P1168, ["PAST"], "Regex"
-.annotate 'line', 310
-    find_lex $P1169, "$/"
-    unless_null $P1169, vivify_279
-    $P1169 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<h>"  :subid("69_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1145
+.annotate 'line', 304
+    new $P1144, 'ExceptionHandler'
+    set_addr $P1144, control_1143
+    $P1144."handle_types"(.CONTROL_RETURN)
+    push_eh $P1144
+    .lex "self", self
+    .lex "$/", param_1145
+.annotate 'line', 305
+    new $P1146, "Undef"
+    .lex "$past", $P1146
+    get_hll_global $P1147, ["PAST"], "Regex"
+.annotate 'line', 306
+    find_lex $P1148, "$/"
+    unless_null $P1148, vivify_279
+    $P1148 = root_new ['parrot';'Hash']
   vivify_279:
-    set $P1170, $P1169["sym"]
-    unless_null $P1170, vivify_280
-    new $P1170, "Undef"
+    set $P1149, $P1148["sym"]
+    unless_null $P1149, vivify_280
+    new $P1149, "Undef"
   vivify_280:
-    set $S1171, $P1170
-    iseq $I1172, $S1171, "V"
-    find_lex $P1173, "$/"
-    $P1174 = $P1168."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1172 :named("negate"), $P1173 :named("node"))
-.annotate 'line', 308
-    store_lex "$past", $P1174
-.annotate 'line', 311
-    find_lex $P1175, "$/"
-    find_lex $P1176, "$past"
-    $P1177 = $P1175."!make"($P1176)
+    set $S1150, $P1149
+    iseq $I1151, $S1150, "H"
+    find_lex $P1152, "$/"
+    $P1153 = $P1147."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1151 :named("negate"), $P1152 :named("node"))
+.annotate 'line', 305
+    store_lex "$past", $P1153
 .annotate 'line', 307
-    .return ($P1177)
-  control_1164:
+    find_lex $P1154, "$/"
+    find_lex $P1155, "$past"
+    $P1156 = $P1154."!make"($P1155)
+.annotate 'line', 304
+    .return ($P1156)
+  control_1143:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1178, exception, "payload"
-    .return ($P1178)
+    getattribute $P1157, exception, "payload"
+    .return ($P1157)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<o>"  :subid("72_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1182
-.annotate 'line', 314
-    new $P1181, 'ExceptionHandler'
-    set_addr $P1181, control_1180
-    $P1181."handle_types"(57)
-    push_eh $P1181
+.include "except_types.pasm"
+.sub "backslash:sym<r>"  :subid("70_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1161
+.annotate 'line', 310
+    new $P1160, 'ExceptionHandler'
+    set_addr $P1160, control_1159
+    $P1160."handle_types"(.CONTROL_RETURN)
+    push_eh $P1160
     .lex "self", self
-    .lex "$/", param_1182
-.annotate 'line', 315
-    new $P1183, "Undef"
-    .lex "$octlit", $P1183
-.annotate 'line', 316
-    get_hll_global $P1184, ["HLL";"Actions"], "ints_to_string"
-    find_lex $P1187, "$/"
-    unless_null $P1187, vivify_281
-    $P1187 = root_new ['parrot';'Hash']
+    .lex "$/", param_1161
+.annotate 'line', 311
+    new $P1162, "Undef"
+    .lex "$past", $P1162
+    get_hll_global $P1163, ["PAST"], "Regex"
+.annotate 'line', 312
+    find_lex $P1164, "$/"
+    unless_null $P1164, vivify_281
+    $P1164 = root_new ['parrot';'Hash']
   vivify_281:
-    set $P1188, $P1187["octint"]
-    unless_null $P1188, vivify_282
-    new $P1188, "Undef"
+    set $P1165, $P1164["sym"]
+    unless_null $P1165, vivify_282
+    new $P1165, "Undef"
   vivify_282:
-    unless $P1188, unless_1186
-    set $P1185, $P1188
-    goto unless_1186_end
-  unless_1186:
-    find_lex $P1189, "$/"
-    unless_null $P1189, vivify_283
-    $P1189 = root_new ['parrot';'Hash']
+    set $S1166, $P1165
+    iseq $I1167, $S1166, "R"
+    find_lex $P1168, "$/"
+    $P1169 = $P1163."new"("\r", "enumcharlist" :named("pasttype"), $I1167 :named("negate"), $P1168 :named("node"))
+.annotate 'line', 311
+    store_lex "$past", $P1169
+.annotate 'line', 313
+    find_lex $P1170, "$/"
+    find_lex $P1171, "$past"
+    $P1172 = $P1170."!make"($P1171)
+.annotate 'line', 310
+    .return ($P1172)
+  control_1159:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1173, exception, "payload"
+    .return ($P1173)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "backslash:sym<t>"  :subid("71_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1177
+.annotate 'line', 316
+    new $P1176, 'ExceptionHandler'
+    set_addr $P1176, control_1175
+    $P1176."handle_types"(.CONTROL_RETURN)
+    push_eh $P1176
+    .lex "self", self
+    .lex "$/", param_1177
+.annotate 'line', 317
+    new $P1178, "Undef"
+    .lex "$past", $P1178
+    get_hll_global $P1179, ["PAST"], "Regex"
+.annotate 'line', 318
+    find_lex $P1180, "$/"
+    unless_null $P1180, vivify_283
+    $P1180 = root_new ['parrot';'Hash']
   vivify_283:
-    set $P1190, $P1189["octints"]
-    unless_null $P1190, vivify_284
-    $P1190 = root_new ['parrot';'Hash']
+    set $P1181, $P1180["sym"]
+    unless_null $P1181, vivify_284
+    new $P1181, "Undef"
   vivify_284:
-    set $P1191, $P1190["octint"]
-    unless_null $P1191, vivify_285
-    new $P1191, "Undef"
-  vivify_285:
-    set $P1185, $P1191
-  unless_1186_end:
-    $P1192 = $P1184($P1185)
-    store_lex "$octlit", $P1192
+    set $S1182, $P1181
+    iseq $I1183, $S1182, "T"
+    find_lex $P1184, "$/"
+    $P1185 = $P1179."new"("\t", "enumcharlist" :named("pasttype"), $I1183 :named("negate"), $P1184 :named("node"))
 .annotate 'line', 317
-    find_lex $P1193, "$/"
+    store_lex "$past", $P1185
+.annotate 'line', 319
+    find_lex $P1186, "$/"
+    find_lex $P1187, "$past"
+    $P1188 = $P1186."!make"($P1187)
+.annotate 'line', 316
+    .return ($P1188)
+  control_1175:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1189, exception, "payload"
+    .return ($P1189)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "backslash:sym<v>"  :subid("72_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1193
+.annotate 'line', 322
+    new $P1192, 'ExceptionHandler'
+    set_addr $P1192, control_1191
+    $P1192."handle_types"(.CONTROL_RETURN)
+    push_eh $P1192
+    .lex "self", self
+    .lex "$/", param_1193
+.annotate 'line', 323
+    new $P1194, "Undef"
+    .lex "$past", $P1194
+    get_hll_global $P1195, ["PAST"], "Regex"
+.annotate 'line', 325
     find_lex $P1196, "$/"
-    unless_null $P1196, vivify_286
+    unless_null $P1196, vivify_285
     $P1196 = root_new ['parrot';'Hash']
-  vivify_286:
+  vivify_285:
     set $P1197, $P1196["sym"]
-    unless_null $P1197, vivify_287
+    unless_null $P1197, vivify_286
     new $P1197, "Undef"
-  vivify_287:
+  vivify_286:
     set $S1198, $P1197
-    iseq $I1199, $S1198, "O"
-    if $I1199, if_1195
-.annotate 'line', 320
-    get_hll_global $P1204, ["PAST"], "Regex"
-    find_lex $P1205, "$octlit"
-    find_lex $P1206, "$/"
-    $P1207 = $P1204."new"($P1205, "literal" :named("pasttype"), $P1206 :named("node"))
-    set $P1194, $P1207
-.annotate 'line', 317
-    goto if_1195_end
-  if_1195:
-.annotate 'line', 318
-    get_hll_global $P1200, ["PAST"], "Regex"
-    find_lex $P1201, "$octlit"
+    iseq $I1199, $S1198, "V"
+    find_lex $P1200, "$/"
+    $P1201 = $P1195."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1199 :named("negate"), $P1200 :named("node"))
+.annotate 'line', 323
+    store_lex "$past", $P1201
+.annotate 'line', 326
     find_lex $P1202, "$/"
-    $P1203 = $P1200."new"($P1201, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1202 :named("node"))
-    set $P1194, $P1203
-  if_1195_end:
-    $P1208 = $P1193."!make"($P1194)
-.annotate 'line', 314
-    .return ($P1208)
-  control_1180:
+    find_lex $P1203, "$past"
+    $P1204 = $P1202."!make"($P1203)
+.annotate 'line', 322
+    .return ($P1204)
+  control_1191:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1209, exception, "payload"
-    .return ($P1209)
+    getattribute $P1205, exception, "payload"
+    .return ($P1205)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<x>"  :subid("73_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1213
-.annotate 'line', 323
-    new $P1212, 'ExceptionHandler'
-    set_addr $P1212, control_1211
-    $P1212."handle_types"(57)
-    push_eh $P1212
-    .lex "self", self
-    .lex "$/", param_1213
-.annotate 'line', 324
-    new $P1214, "Undef"
-    .lex "$hexlit", $P1214
-.annotate 'line', 325
-    get_hll_global $P1215, ["HLL";"Actions"], "ints_to_string"
-    find_lex $P1218, "$/"
-    unless_null $P1218, vivify_288
-    $P1218 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<o>"  :subid("73_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1209
+.annotate 'line', 329
+    new $P1208, 'ExceptionHandler'
+    set_addr $P1208, control_1207
+    $P1208."handle_types"(.CONTROL_RETURN)
+    push_eh $P1208
+    .lex "self", self
+    .lex "$/", param_1209
+.annotate 'line', 330
+    new $P1210, "Undef"
+    .lex "$octlit", $P1210
+.annotate 'line', 331
+    get_hll_global $P1211, ["HLL";"Actions"], "ints_to_string"
+    find_lex $P1214, "$/"
+    unless_null $P1214, vivify_287
+    $P1214 = root_new ['parrot';'Hash']
+  vivify_287:
+    set $P1215, $P1214["octint"]
+    unless_null $P1215, vivify_288
+    new $P1215, "Undef"
   vivify_288:
-    set $P1219, $P1218["hexint"]
-    unless_null $P1219, vivify_289
-    new $P1219, "Undef"
+    unless $P1215, unless_1213
+    set $P1212, $P1215
+    goto unless_1213_end
+  unless_1213:
+    find_lex $P1216, "$/"
+    unless_null $P1216, vivify_289
+    $P1216 = root_new ['parrot';'Hash']
   vivify_289:
-    unless $P1219, unless_1217
-    set $P1216, $P1219
-    goto unless_1217_end
-  unless_1217:
-    find_lex $P1220, "$/"
-    unless_null $P1220, vivify_290
-    $P1220 = root_new ['parrot';'Hash']
+    set $P1217, $P1216["octints"]
+    unless_null $P1217, vivify_290
+    $P1217 = root_new ['parrot';'Hash']
   vivify_290:
-    set $P1221, $P1220["hexints"]
-    unless_null $P1221, vivify_291
-    $P1221 = root_new ['parrot';'Hash']
+    set $P1218, $P1217["octint"]
+    unless_null $P1218, vivify_291
+    new $P1218, "Undef"
   vivify_291:
-    set $P1222, $P1221["hexint"]
-    unless_null $P1222, vivify_292
-    new $P1222, "Undef"
+    set $P1212, $P1218
+  unless_1213_end:
+    $P1219 = $P1211($P1212)
+    store_lex "$octlit", $P1219
+.annotate 'line', 332
+    find_lex $P1220, "$/"
+    find_lex $P1223, "$/"
+    unless_null $P1223, vivify_292
+    $P1223 = root_new ['parrot';'Hash']
   vivify_292:
-    set $P1216, $P1222
-  unless_1217_end:
-    $P1223 = $P1215($P1216)
-    store_lex "$hexlit", $P1223
-.annotate 'line', 326
-    find_lex $P1224, "$/"
-    find_lex $P1227, "$/"
-    unless_null $P1227, vivify_293
-    $P1227 = root_new ['parrot';'Hash']
+    set $P1224, $P1223["sym"]
+    unless_null $P1224, vivify_293
+    new $P1224, "Undef"
   vivify_293:
-    set $P1228, $P1227["sym"]
-    unless_null $P1228, vivify_294
-    new $P1228, "Undef"
-  vivify_294:
-    set $S1229, $P1228
-    iseq $I1230, $S1229, "X"
-    if $I1230, if_1226
-.annotate 'line', 329
-    get_hll_global $P1235, ["PAST"], "Regex"
-    find_lex $P1236, "$hexlit"
-    find_lex $P1237, "$/"
-    $P1238 = $P1235."new"($P1236, "literal" :named("pasttype"), $P1237 :named("node"))
-    set $P1225, $P1238
-.annotate 'line', 326
-    goto if_1226_end
-  if_1226:
-.annotate 'line', 327
+    set $S1225, $P1224
+    iseq $I1226, $S1225, "O"
+    if $I1226, if_1222
+.annotate 'line', 335
     get_hll_global $P1231, ["PAST"], "Regex"
-    find_lex $P1232, "$hexlit"
+    find_lex $P1232, "$octlit"
     find_lex $P1233, "$/"
-    $P1234 = $P1231."new"($P1232, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1233 :named("node"))
-    set $P1225, $P1234
-  if_1226_end:
-    $P1239 = $P1224."!make"($P1225)
-.annotate 'line', 323
-    .return ($P1239)
-  control_1211:
+    $P1234 = $P1231."new"($P1232, "literal" :named("pasttype"), $P1233 :named("node"))
+    set $P1221, $P1234
+.annotate 'line', 332
+    goto if_1222_end
+  if_1222:
+.annotate 'line', 333
+    get_hll_global $P1227, ["PAST"], "Regex"
+    find_lex $P1228, "$octlit"
+    find_lex $P1229, "$/"
+    $P1230 = $P1227."new"($P1228, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1229 :named("node"))
+    set $P1221, $P1230
+  if_1222_end:
+    $P1235 = $P1220."!make"($P1221)
+.annotate 'line', 329
+    .return ($P1235)
+  control_1207:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1240, exception, "payload"
-    .return ($P1240)
+    getattribute $P1236, exception, "payload"
+    .return ($P1236)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<c>"  :subid("74_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1244
-.annotate 'line', 332
-    new $P1243, 'ExceptionHandler'
-    set_addr $P1243, control_1242
-    $P1243."handle_types"(57)
-    push_eh $P1243
-    .lex "self", self
-    .lex "$/", param_1244
-.annotate 'line', 333
+.include "except_types.pasm"
+.sub "backslash:sym<x>"  :subid("74_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1240
+.annotate 'line', 338
+    new $P1239, 'ExceptionHandler'
+    set_addr $P1239, control_1238
+    $P1239."handle_types"(.CONTROL_RETURN)
+    push_eh $P1239
+    .lex "self", self
+    .lex "$/", param_1240
+.annotate 'line', 339
+    new $P1241, "Undef"
+    .lex "$hexlit", $P1241
+.annotate 'line', 340
+    get_hll_global $P1242, ["HLL";"Actions"], "ints_to_string"
     find_lex $P1245, "$/"
-    get_hll_global $P1246, ["PAST"], "Regex"
+    unless_null $P1245, vivify_294
+    $P1245 = root_new ['parrot';'Hash']
+  vivify_294:
+    set $P1246, $P1245["hexint"]
+    unless_null $P1246, vivify_295
+    new $P1246, "Undef"
+  vivify_295:
+    unless $P1246, unless_1244
+    set $P1243, $P1246
+    goto unless_1244_end
+  unless_1244:
     find_lex $P1247, "$/"
-    unless_null $P1247, vivify_295
+    unless_null $P1247, vivify_296
     $P1247 = root_new ['parrot';'Hash']
-  vivify_295:
-    set $P1248, $P1247["charspec"]
-    unless_null $P1248, vivify_296
-    new $P1248, "Undef"
   vivify_296:
-    $P1249 = $P1248."ast"()
-    find_lex $P1250, "$/"
-    $P1251 = $P1246."new"($P1249, "literal" :named("pasttype"), $P1250 :named("node"))
-    $P1252 = $P1245."!make"($P1251)
-.annotate 'line', 332
-    .return ($P1252)
-  control_1242:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1253, exception, "payload"
-    .return ($P1253)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<misc>"  :subid("75_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1257
-.annotate 'line', 336
-    new $P1256, 'ExceptionHandler'
-    set_addr $P1256, control_1255
-    $P1256."handle_types"(57)
-    push_eh $P1256
-    .lex "self", self
-    .lex "$/", param_1257
-.annotate 'line', 337
-    new $P1258, "Undef"
-    .lex "$past", $P1258
-    get_hll_global $P1259, ["PAST"], "Regex"
+    set $P1248, $P1247["hexints"]
+    unless_null $P1248, vivify_297
+    $P1248 = root_new ['parrot';'Hash']
+  vivify_297:
+    set $P1249, $P1248["hexint"]
+    unless_null $P1249, vivify_298
+    new $P1249, "Undef"
+  vivify_298:
+    set $P1243, $P1249
+  unless_1244_end:
+    $P1250 = $P1242($P1243)
+    store_lex "$hexlit", $P1250
+.annotate 'line', 341
+    find_lex $P1251, "$/"
+    find_lex $P1254, "$/"
+    unless_null $P1254, vivify_299
+    $P1254 = root_new ['parrot';'Hash']
+  vivify_299:
+    set $P1255, $P1254["sym"]
+    unless_null $P1255, vivify_300
+    new $P1255, "Undef"
+  vivify_300:
+    set $S1256, $P1255
+    iseq $I1257, $S1256, "X"
+    if $I1257, if_1253
+.annotate 'line', 344
+    get_hll_global $P1262, ["PAST"], "Regex"
+    find_lex $P1263, "$hexlit"
+    find_lex $P1264, "$/"
+    $P1265 = $P1262."new"($P1263, "literal" :named("pasttype"), $P1264 :named("node"))
+    set $P1252, $P1265
+.annotate 'line', 341
+    goto if_1253_end
+  if_1253:
+.annotate 'line', 342
+    get_hll_global $P1258, ["PAST"], "Regex"
+    find_lex $P1259, "$hexlit"
     find_lex $P1260, "$/"
-    set $S1261, $P1260
-    find_lex $P1262, "$/"
-    $P1263 = $P1259."new"($S1261, "literal" :named("pasttype"), $P1262 :named("node"))
-    store_lex "$past", $P1263
+    $P1261 = $P1258."new"($P1259, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1260 :named("node"))
+    set $P1252, $P1261
+  if_1253_end:
+    $P1266 = $P1251."!make"($P1252)
 .annotate 'line', 338
-    find_lex $P1264, "$/"
-    find_lex $P1265, "$past"
-    $P1266 = $P1264."!make"($P1265)
-.annotate 'line', 336
     .return ($P1266)
-  control_1255:
+  control_1238:
     .local pmc exception 
     .get_results (exception) 
     getattribute $P1267, exception, "payload"
@@ -10947,375 +11097,449 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<?>"  :subid("76_1274853033.06396") :method :outer("11_1274853033.06396")
+.include "except_types.pasm"
+.sub "backslash:sym<c>"  :subid("75_1275811482.3686") :method :outer("11_1275811482.3686")
     .param pmc param_1271
-.annotate 'line', 342
+.annotate 'line', 347
     new $P1270, 'ExceptionHandler'
     set_addr $P1270, control_1269
-    $P1270."handle_types"(57)
+    $P1270."handle_types"(.CONTROL_RETURN)
     push_eh $P1270
     .lex "self", self
     .lex "$/", param_1271
-.annotate 'line', 343
-    new $P1272, "Undef"
-    .lex "$past", $P1272
-.annotate 'line', 342
-    find_lex $P1273, "$past"
-.annotate 'line', 344
-    find_lex $P1275, "$/"
-    unless_null $P1275, vivify_297
-    $P1275 = root_new ['parrot';'Hash']
-  vivify_297:
-    set $P1276, $P1275["assertion"]
-    unless_null $P1276, vivify_298
-    new $P1276, "Undef"
-  vivify_298:
-    if $P1276, if_1274
 .annotate 'line', 348
-    new $P1281, "Integer"
-    assign $P1281, 0
-    store_lex "$past", $P1281
-    goto if_1274_end
-  if_1274:
-.annotate 'line', 345
+    find_lex $P1272, "$/"
+    get_hll_global $P1273, ["PAST"], "Regex"
+    find_lex $P1274, "$/"
+    unless_null $P1274, vivify_301
+    $P1274 = root_new ['parrot';'Hash']
+  vivify_301:
+    set $P1275, $P1274["charspec"]
+    unless_null $P1275, vivify_302
+    new $P1275, "Undef"
+  vivify_302:
+    $P1276 = $P1275."ast"()
     find_lex $P1277, "$/"
-    unless_null $P1277, vivify_299
-    $P1277 = root_new ['parrot';'Hash']
-  vivify_299:
-    set $P1278, $P1277["assertion"]
-    unless_null $P1278, vivify_300
-    new $P1278, "Undef"
-  vivify_300:
-    $P1279 = $P1278."ast"()
-    store_lex "$past", $P1279
-.annotate 'line', 346
-    find_lex $P1280, "$past"
-    $P1280."subtype"("zerowidth")
-  if_1274_end:
-.annotate 'line', 349
-    find_lex $P1282, "$/"
-    find_lex $P1283, "$past"
-    $P1284 = $P1282."!make"($P1283)
-.annotate 'line', 342
-    .return ($P1284)
+    $P1278 = $P1273."new"($P1276, "literal" :named("pasttype"), $P1277 :named("node"))
+    $P1279 = $P1272."!make"($P1278)
+.annotate 'line', 347
+    .return ($P1279)
   control_1269:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1285, exception, "payload"
-    .return ($P1285)
+    getattribute $P1280, exception, "payload"
+    .return ($P1280)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<!>"  :subid("77_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1289
-.annotate 'line', 352
-    new $P1288, 'ExceptionHandler'
-    set_addr $P1288, control_1287
-    $P1288."handle_types"(57)
-    push_eh $P1288
+.include "except_types.pasm"
+.sub "backslash:sym<misc>"  :subid("76_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1284
+.annotate 'line', 351
+    new $P1283, 'ExceptionHandler'
+    set_addr $P1283, control_1282
+    $P1283."handle_types"(.CONTROL_RETURN)
+    push_eh $P1283
     .lex "self", self
-    .lex "$/", param_1289
-.annotate 'line', 353
-    new $P1290, "Undef"
-    .lex "$past", $P1290
+    .lex "$/", param_1284
 .annotate 'line', 352
-    find_lex $P1291, "$past"
-.annotate 'line', 354
-    find_lex $P1293, "$/"
-    unless_null $P1293, vivify_301
-    $P1293 = root_new ['parrot';'Hash']
-  vivify_301:
-    set $P1294, $P1293["assertion"]
-    unless_null $P1294, vivify_302
-    new $P1294, "Undef"
-  vivify_302:
-    if $P1294, if_1292
-.annotate 'line', 360
-    get_hll_global $P1303, ["PAST"], "Regex"
-    find_lex $P1304, "$/"
-    $P1305 = $P1303."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1304 :named("node"))
-    store_lex "$past", $P1305
+    new $P1285, "Undef"
+    .lex "$past", $P1285
+    get_hll_global $P1286, ["PAST"], "Regex"
+    find_lex $P1287, "$/"
+    set $S1288, $P1287
+    find_lex $P1289, "$/"
+    $P1290 = $P1286."new"($S1288, "literal" :named("pasttype"), $P1289 :named("node"))
+    store_lex "$past", $P1290
+.annotate 'line', 353
+    find_lex $P1291, "$/"
+    find_lex $P1292, "$past"
+    $P1293 = $P1291."!make"($P1292)
+.annotate 'line', 351
+    .return ($P1293)
+  control_1282:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1294, exception, "payload"
+    .return ($P1294)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "assertion:sym<?>"  :subid("77_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1298
+.annotate 'line', 357
+    new $P1297, 'ExceptionHandler'
+    set_addr $P1297, control_1296
+    $P1297."handle_types"(.CONTROL_RETURN)
+    push_eh $P1297
+    .lex "self", self
+    .lex "$/", param_1298
+.annotate 'line', 358
+    new $P1299, "Undef"
+    .lex "$past", $P1299
+.annotate 'line', 357
+    find_lex $P1300, "$past"
 .annotate 'line', 359
-    goto if_1292_end
-  if_1292:
-.annotate 'line', 355
-    find_lex $P1295, "$/"
-    unless_null $P1295, vivify_303
-    $P1295 = root_new ['parrot';'Hash']
+    find_lex $P1302, "$/"
+    unless_null $P1302, vivify_303
+    $P1302 = root_new ['parrot';'Hash']
   vivify_303:
-    set $P1296, $P1295["assertion"]
-    unless_null $P1296, vivify_304
-    new $P1296, "Undef"
+    set $P1303, $P1302["assertion"]
+    unless_null $P1303, vivify_304
+    new $P1303, "Undef"
   vivify_304:
-    $P1297 = $P1296."ast"()
-    store_lex "$past", $P1297
-.annotate 'line', 356
-    find_lex $P1298, "$past"
-    find_lex $P1299, "$past"
-    $P1300 = $P1299."negate"()
-    isfalse $I1301, $P1300
-    $P1298."negate"($I1301)
-.annotate 'line', 357
-    find_lex $P1302, "$past"
-    $P1302."subtype"("zerowidth")
-  if_1292_end:
-.annotate 'line', 362
-    find_lex $P1306, "$/"
+    if $P1303, if_1301
+.annotate 'line', 363
+    new $P1308, "Integer"
+    assign $P1308, 0
+    store_lex "$past", $P1308
+    goto if_1301_end
+  if_1301:
+.annotate 'line', 360
+    find_lex $P1304, "$/"
+    unless_null $P1304, vivify_305
+    $P1304 = root_new ['parrot';'Hash']
+  vivify_305:
+    set $P1305, $P1304["assertion"]
+    unless_null $P1305, vivify_306
+    new $P1305, "Undef"
+  vivify_306:
+    $P1306 = $P1305."ast"()
+    store_lex "$past", $P1306
+.annotate 'line', 361
     find_lex $P1307, "$past"
-    $P1308 = $P1306."!make"($P1307)
-.annotate 'line', 352
-    .return ($P1308)
-  control_1287:
+    $P1307."subtype"("zerowidth")
+  if_1301_end:
+.annotate 'line', 364
+    find_lex $P1309, "$/"
+    find_lex $P1310, "$past"
+    $P1311 = $P1309."!make"($P1310)
+.annotate 'line', 357
+    .return ($P1311)
+  control_1296:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1309, exception, "payload"
-    .return ($P1309)
+    getattribute $P1312, exception, "payload"
+    .return ($P1312)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<method>"  :subid("78_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1313
-.annotate 'line', 365
-    new $P1312, 'ExceptionHandler'
-    set_addr $P1312, control_1311
-    $P1312."handle_types"(57)
-    push_eh $P1312
+.include "except_types.pasm"
+.sub "assertion:sym<!>"  :subid("78_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1316
+.annotate 'line', 367
+    new $P1315, 'ExceptionHandler'
+    set_addr $P1315, control_1314
+    $P1315."handle_types"(.CONTROL_RETURN)
+    push_eh $P1315
     .lex "self", self
-    .lex "$/", param_1313
-.annotate 'line', 366
-    new $P1314, "Undef"
-    .lex "$past", $P1314
-    find_lex $P1315, "$/"
-    unless_null $P1315, vivify_305
-    $P1315 = root_new ['parrot';'Hash']
-  vivify_305:
-    set $P1316, $P1315["assertion"]
-    unless_null $P1316, vivify_306
-    new $P1316, "Undef"
-  vivify_306:
-    $P1317 = $P1316."ast"()
-    store_lex "$past", $P1317
+    .lex "$/", param_1316
+.annotate 'line', 368
+    new $P1317, "Undef"
+    .lex "$past", $P1317
 .annotate 'line', 367
     find_lex $P1318, "$past"
-    $P1318."subtype"("method")
-.annotate 'line', 368
-    find_lex $P1319, "$past"
-    $P1319."name"("")
 .annotate 'line', 369
     find_lex $P1320, "$/"
-    find_lex $P1321, "$past"
-    $P1322 = $P1320."!make"($P1321)
-.annotate 'line', 365
-    .return ($P1322)
-  control_1311:
+    unless_null $P1320, vivify_307
+    $P1320 = root_new ['parrot';'Hash']
+  vivify_307:
+    set $P1321, $P1320["assertion"]
+    unless_null $P1321, vivify_308
+    new $P1321, "Undef"
+  vivify_308:
+    if $P1321, if_1319
+.annotate 'line', 375
+    get_hll_global $P1330, ["PAST"], "Regex"
+    find_lex $P1331, "$/"
+    $P1332 = $P1330."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1331 :named("node"))
+    store_lex "$past", $P1332
+.annotate 'line', 374
+    goto if_1319_end
+  if_1319:
+.annotate 'line', 370
+    find_lex $P1322, "$/"
+    unless_null $P1322, vivify_309
+    $P1322 = root_new ['parrot';'Hash']
+  vivify_309:
+    set $P1323, $P1322["assertion"]
+    unless_null $P1323, vivify_310
+    new $P1323, "Undef"
+  vivify_310:
+    $P1324 = $P1323."ast"()
+    store_lex "$past", $P1324
+.annotate 'line', 371
+    find_lex $P1325, "$past"
+    find_lex $P1326, "$past"
+    $P1327 = $P1326."negate"()
+    isfalse $I1328, $P1327
+    $P1325."negate"($I1328)
+.annotate 'line', 372
+    find_lex $P1329, "$past"
+    $P1329."subtype"("zerowidth")
+  if_1319_end:
+.annotate 'line', 377
+    find_lex $P1333, "$/"
+    find_lex $P1334, "$past"
+    $P1335 = $P1333."!make"($P1334)
+.annotate 'line', 367
+    .return ($P1335)
+  control_1314:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1323, exception, "payload"
-    .return ($P1323)
+    getattribute $P1336, exception, "payload"
+    .return ($P1336)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<name>"  :subid("79_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1327
-.annotate 'line', 372
-    .const 'Sub' $P1385 = "81_1274853033.06396" 
-    capture_lex $P1385
-    .const 'Sub' $P1349 = "80_1274853033.06396" 
-    capture_lex $P1349
-    new $P1326, 'ExceptionHandler'
-    set_addr $P1326, control_1325
-    $P1326."handle_types"(57)
-    push_eh $P1326
-    .lex "self", self
-    .lex "$/", param_1327
-.annotate 'line', 373
-    new $P1328, "Undef"
-    .lex "$name", $P1328
-.annotate 'line', 374
-    new $P1329, "Undef"
-    .lex "$past", $P1329
-.annotate 'line', 373
-    find_lex $P1330, "$/"
-    unless_null $P1330, vivify_307
-    $P1330 = root_new ['parrot';'Hash']
-  vivify_307:
-    set $P1331, $P1330["longname"]
-    unless_null $P1331, vivify_308
-    new $P1331, "Undef"
-  vivify_308:
-    set $S1332, $P1331
-    new $P1333, 'String'
-    set $P1333, $S1332
-    store_lex "$name", $P1333
-    find_lex $P1334, "$past"
-.annotate 'line', 375
-    find_lex $P1336, "$/"
-    unless_null $P1336, vivify_309
-    $P1336 = root_new ['parrot';'Hash']
-  vivify_309:
-    set $P1337, $P1336["assertion"]
-    unless_null $P1337, vivify_310
-    new $P1337, "Undef"
-  vivify_310:
-    if $P1337, if_1335
-.annotate 'line', 379
-    find_lex $P1345, "$name"
-    set $S1346, $P1345
-    iseq $I1347, $S1346, "sym"
-    if $I1347, if_1344
-.annotate 'line', 395
-    get_hll_global $P1359, ["PAST"], "Regex"
-    find_lex $P1360, "$name"
-    find_lex $P1361, "$name"
-    find_lex $P1362, "$/"
-    $P1363 = $P1359."new"($P1360, $P1361 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1362 :named("node"))
-    store_lex "$past", $P1363
-.annotate 'line', 397
-    find_lex $P1365, "$/"
-    unless_null $P1365, vivify_311
-    $P1365 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "assertion:sym<method>"  :subid("79_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1340
+.annotate 'line', 380
+    new $P1339, 'ExceptionHandler'
+    set_addr $P1339, control_1338
+    $P1339."handle_types"(.CONTROL_RETURN)
+    push_eh $P1339
+    .lex "self", self
+    .lex "$/", param_1340
+.annotate 'line', 381
+    new $P1341, "Undef"
+    .lex "$past", $P1341
+    find_lex $P1342, "$/"
+    unless_null $P1342, vivify_311
+    $P1342 = root_new ['parrot';'Hash']
   vivify_311:
-    set $P1366, $P1365["nibbler"]
-    unless_null $P1366, vivify_312
-    new $P1366, "Undef"
+    set $P1343, $P1342["assertion"]
+    unless_null $P1343, vivify_312
+    new $P1343, "Undef"
   vivify_312:
-    if $P1366, if_1364
-.annotate 'line', 400
-    find_lex $P1374, "$/"
-    unless_null $P1374, vivify_313
-    $P1374 = root_new ['parrot';'Hash']
+    $P1344 = $P1343."ast"()
+    store_lex "$past", $P1344
+.annotate 'line', 382
+    find_lex $P1345, "$past"
+    $P1345."subtype"("method")
+.annotate 'line', 383
+    find_lex $P1346, "$past"
+    $P1346."name"("")
+.annotate 'line', 384
+    find_lex $P1347, "$/"
+    find_lex $P1348, "$past"
+    $P1349 = $P1347."!make"($P1348)
+.annotate 'line', 380
+    .return ($P1349)
+  control_1338:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1350, exception, "payload"
+    .return ($P1350)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "assertion:sym<name>"  :subid("80_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1354
+.annotate 'line', 387
+    .const 'Sub' $P1412 = "82_1275811482.3686" 
+    capture_lex $P1412
+    .const 'Sub' $P1376 = "81_1275811482.3686" 
+    capture_lex $P1376
+    new $P1353, 'ExceptionHandler'
+    set_addr $P1353, control_1352
+    $P1353."handle_types"(.CONTROL_RETURN)
+    push_eh $P1353
+    .lex "self", self
+    .lex "$/", param_1354
+.annotate 'line', 388
+    new $P1355, "Undef"
+    .lex "$name", $P1355
+.annotate 'line', 389
+    new $P1356, "Undef"
+    .lex "$past", $P1356
+.annotate 'line', 388
+    find_lex $P1357, "$/"
+    unless_null $P1357, vivify_313
+    $P1357 = root_new ['parrot';'Hash']
   vivify_313:
-    set $P1375, $P1374["arglist"]
-    unless_null $P1375, vivify_314
-    new $P1375, "Undef"
+    set $P1358, $P1357["longname"]
+    unless_null $P1358, vivify_314
+    new $P1358, "Undef"
   vivify_314:
-    unless $P1375, if_1373_end
-.annotate 'line', 401
-    find_lex $P1377, "$/"
-    unless_null $P1377, vivify_315
-    $P1377 = root_new ['parrot';'Hash']
+    set $S1359, $P1358
+    new $P1360, 'String'
+    set $P1360, $S1359
+    store_lex "$name", $P1360
+    find_lex $P1361, "$past"
+.annotate 'line', 390
+    find_lex $P1363, "$/"
+    unless_null $P1363, vivify_315
+    $P1363 = root_new ['parrot';'Hash']
   vivify_315:
-    set $P1378, $P1377["arglist"]
-    unless_null $P1378, vivify_316
-    $P1378 = root_new ['parrot';'ResizablePMCArray']
+    set $P1364, $P1363["assertion"]
+    unless_null $P1364, vivify_316
+    new $P1364, "Undef"
   vivify_316:
-    set $P1379, $P1378[0]
-    unless_null $P1379, vivify_317
-    new $P1379, "Undef"
+    if $P1364, if_1362
+.annotate 'line', 394
+    find_lex $P1372, "$name"
+    set $S1373, $P1372
+    iseq $I1374, $S1373, "sym"
+    if $I1374, if_1371
+.annotate 'line', 410
+    get_hll_global $P1386, ["PAST"], "Regex"
+    find_lex $P1387, "$name"
+    find_lex $P1388, "$name"
+    find_lex $P1389, "$/"
+    $P1390 = $P1386."new"($P1387, $P1388 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1389 :named("node"))
+    store_lex "$past", $P1390
+.annotate 'line', 412
+    find_lex $P1392, "$/"
+    unless_null $P1392, vivify_317
+    $P1392 = root_new ['parrot';'Hash']
   vivify_317:
-    $P1380 = $P1379."ast"()
-    $P1381 = $P1380."list"()
-    defined $I1382, $P1381
-    unless $I1382, for_undef_318
-    iter $P1376, $P1381
-    new $P1391, 'ExceptionHandler'
-    set_addr $P1391, loop1390_handler
-    $P1391."handle_types"(64, 66, 65)
-    push_eh $P1391
-  loop1390_test:
-    unless $P1376, loop1390_done
-    shift $P1383, $P1376
-  loop1390_redo:
-    .const 'Sub' $P1385 = "81_1274853033.06396" 
-    capture_lex $P1385
-    $P1385($P1383)
-  loop1390_next:
-    goto loop1390_test
-  loop1390_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1392, exception, 'type'
-    eq $P1392, 64, loop1390_next
-    eq $P1392, 66, loop1390_redo
-  loop1390_done:
-    pop_eh 
-  for_undef_318:
-  if_1373_end:
-.annotate 'line', 400
-    goto if_1364_end
-  if_1364:
-.annotate 'line', 398
-    find_lex $P1367, "$past"
-    find_lex $P1368, "$/"
-    unless_null $P1368, vivify_319
-    $P1368 = root_new ['parrot';'Hash']
+    set $P1393, $P1392["nibbler"]
+    unless_null $P1393, vivify_318
+    new $P1393, "Undef"
+  vivify_318:
+    if $P1393, if_1391
+.annotate 'line', 415
+    find_lex $P1401, "$/"
+    unless_null $P1401, vivify_319
+    $P1401 = root_new ['parrot';'Hash']
   vivify_319:
-    set $P1369, $P1368["nibbler"]
-    unless_null $P1369, vivify_320
-    $P1369 = root_new ['parrot';'ResizablePMCArray']
+    set $P1402, $P1401["arglist"]
+    unless_null $P1402, vivify_320
+    new $P1402, "Undef"
   vivify_320:
-    set $P1370, $P1369[0]
-    unless_null $P1370, vivify_321
-    new $P1370, "Undef"
+    unless $P1402, if_1400_end
+.annotate 'line', 416
+    find_lex $P1404, "$/"
+    unless_null $P1404, vivify_321
+    $P1404 = root_new ['parrot';'Hash']
   vivify_321:
-    $P1371 = $P1370."ast"()
-    $P1372 = "buildsub"($P1371)
-    $P1367."push"($P1372)
-  if_1364_end:
-.annotate 'line', 394
-    goto if_1344_end
-  if_1344:
-.annotate 'line', 379
-    .const 'Sub' $P1349 = "80_1274853033.06396" 
-    capture_lex $P1349
-    $P1349()
-  if_1344_end:
-    goto if_1335_end
-  if_1335:
-.annotate 'line', 376
-    find_lex $P1338, "$/"
-    unless_null $P1338, vivify_322
-    $P1338 = root_new ['parrot';'Hash']
+    set $P1405, $P1404["arglist"]
+    unless_null $P1405, vivify_322
+    $P1405 = root_new ['parrot';'ResizablePMCArray']
   vivify_322:
-    set $P1339, $P1338["assertion"]
-    unless_null $P1339, vivify_323
-    $P1339 = root_new ['parrot';'ResizablePMCArray']
+    set $P1406, $P1405[0]
+    unless_null $P1406, vivify_323
+    new $P1406, "Undef"
   vivify_323:
-    set $P1340, $P1339[0]
-    unless_null $P1340, vivify_324
-    new $P1340, "Undef"
-  vivify_324:
-    $P1341 = $P1340."ast"()
-    store_lex "$past", $P1341
-.annotate 'line', 377
-    find_lex $P1342, "$past"
-    find_lex $P1343, "$name"
-    "subrule_alias"($P1342, $P1343)
-  if_1335_end:
-.annotate 'line', 404
-    find_lex $P1393, "$/"
+    $P1407 = $P1406."ast"()
+    $P1408 = $P1407."list"()
+    defined $I1409, $P1408
+    unless $I1409, for_undef_324
+    iter $P1403, $P1408
+    new $P1418, 'ExceptionHandler'
+    set_addr $P1418, loop1417_handler
+    $P1418."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1418
+  loop1417_test:
+    unless $P1403, loop1417_done
+    shift $P1410, $P1403
+  loop1417_redo:
+    .const 'Sub' $P1412 = "82_1275811482.3686" 
+    capture_lex $P1412
+    $P1412($P1410)
+  loop1417_next:
+    goto loop1417_test
+  loop1417_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1419, exception, 'type'
+    eq $P1419, .CONTROL_LOOP_NEXT, loop1417_next
+    eq $P1419, .CONTROL_LOOP_REDO, loop1417_redo
+  loop1417_done:
+    pop_eh 
+  for_undef_324:
+  if_1400_end:
+.annotate 'line', 415
+    goto if_1391_end
+  if_1391:
+.annotate 'line', 413
     find_lex $P1394, "$past"
-    $P1395 = $P1393."!make"($P1394)
-.annotate 'line', 372
-    .return ($P1395)
-  control_1325:
+    find_lex $P1395, "$/"
+    unless_null $P1395, vivify_325
+    $P1395 = root_new ['parrot';'Hash']
+  vivify_325:
+    set $P1396, $P1395["nibbler"]
+    unless_null $P1396, vivify_326
+    $P1396 = root_new ['parrot';'ResizablePMCArray']
+  vivify_326:
+    set $P1397, $P1396[0]
+    unless_null $P1397, vivify_327
+    new $P1397, "Undef"
+  vivify_327:
+    $P1398 = $P1397."ast"()
+    $P1399 = "buildsub"($P1398)
+    $P1394."push"($P1399)
+  if_1391_end:
+.annotate 'line', 409
+    goto if_1371_end
+  if_1371:
+.annotate 'line', 394
+    .const 'Sub' $P1376 = "81_1275811482.3686" 
+    capture_lex $P1376
+    $P1376()
+  if_1371_end:
+    goto if_1362_end
+  if_1362:
+.annotate 'line', 391
+    find_lex $P1365, "$/"
+    unless_null $P1365, vivify_328
+    $P1365 = root_new ['parrot';'Hash']
+  vivify_328:
+    set $P1366, $P1365["assertion"]
+    unless_null $P1366, vivify_329
+    $P1366 = root_new ['parrot';'ResizablePMCArray']
+  vivify_329:
+    set $P1367, $P1366[0]
+    unless_null $P1367, vivify_330
+    new $P1367, "Undef"
+  vivify_330:
+    $P1368 = $P1367."ast"()
+    store_lex "$past", $P1368
+.annotate 'line', 392
+    find_lex $P1369, "$past"
+    find_lex $P1370, "$name"
+    "subrule_alias"($P1369, $P1370)
+  if_1362_end:
+.annotate 'line', 419
+    find_lex $P1420, "$/"
+    find_lex $P1421, "$past"
+    $P1422 = $P1420."!make"($P1421)
+.annotate 'line', 387
+    .return ($P1422)
+  control_1352:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1396, exception, "payload"
-    .return ($P1396)
+    getattribute $P1423, exception, "payload"
+    .return ($P1423)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1384"  :anon :subid("81_1274853033.06396") :outer("79_1274853033.06396")
-    .param pmc param_1386
-.annotate 'line', 401
-    .lex "$_", param_1386
-    find_lex $P1387, "$past"
-    find_lex $P1388, "$_"
-    $P1389 = $P1387."push"($P1388)
-    .return ($P1389)
+.sub "_block1411"  :anon :subid("82_1275811482.3686") :outer("80_1275811482.3686")
+    .param pmc param_1413
+.annotate 'line', 416
+    .lex "$_", param_1413
+    find_lex $P1414, "$past"
+    find_lex $P1415, "$_"
+    $P1416 = $P1414."push"($P1415)
+    .return ($P1416)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1348"  :anon :subid("80_1274853033.06396") :outer("79_1274853033.06396")
-.annotate 'line', 380
-    new $P1350, "Undef"
-    .lex "$regexsym", $P1350
+.sub "_block1375"  :anon :subid("81_1275811482.3686") :outer("80_1275811482.3686")
+.annotate 'line', 395
+    new $P1377, "Undef"
+    .lex "$regexsym", $P1377
 
             $P0 = get_global '$REGEXNAME'
             $S0 = $P0
@@ -11323,388 +11547,390 @@
             add $I0, 5
             $S0 = substr $S0, $I0
             $S0 = chopn $S0, 1
-            $P1351 = box $S0
+            $P1378 = box $S0
         
-    store_lex "$regexsym", $P1351
-.annotate 'line', 389
-    get_hll_global $P1352, ["PAST"], "Regex"
-.annotate 'line', 390
-    get_hll_global $P1353, ["PAST"], "Regex"
-    find_lex $P1354, "$regexsym"
-    $P1355 = $P1353."new"($P1354, "literal" :named("pasttype"))
-    find_lex $P1356, "$name"
-    find_lex $P1357, "$/"
-    $P1358 = $P1352."new"($P1355, $P1356 :named("name"), "subcapture" :named("pasttype"), $P1357 :named("node"))
-.annotate 'line', 389
-    store_lex "$past", $P1358
-.annotate 'line', 379
-    .return ($P1358)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<[>"  :subid("82_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1400
-.annotate 'line', 407
-    .const 'Sub' $P1435 = "83_1274853033.06396" 
-    capture_lex $P1435
-    new $P1399, 'ExceptionHandler'
-    set_addr $P1399, control_1398
-    $P1399."handle_types"(57)
-    push_eh $P1399
-    .lex "self", self
-    .lex "$/", param_1400
-.annotate 'line', 408
-    new $P1401, "Undef"
-    .lex "$clist", $P1401
-.annotate 'line', 409
-    new $P1402, "Undef"
-    .lex "$past", $P1402
-.annotate 'line', 418
-    new $P1403, "Undef"
-    .lex "$i", $P1403
-.annotate 'line', 419
-    new $P1404, "Undef"
-    .lex "$n", $P1404
-.annotate 'line', 408
-    find_lex $P1405, "$/"
-    unless_null $P1405, vivify_325
-    $P1405 = root_new ['parrot';'Hash']
-  vivify_325:
-    set $P1406, $P1405["cclass_elem"]
-    unless_null $P1406, vivify_326
-    new $P1406, "Undef"
-  vivify_326:
-    store_lex "$clist", $P1406
-.annotate 'line', 409
-    find_lex $P1407, "$clist"
-    unless_null $P1407, vivify_327
-    $P1407 = root_new ['parrot';'ResizablePMCArray']
-  vivify_327:
-    set $P1408, $P1407[0]
-    unless_null $P1408, vivify_328
-    new $P1408, "Undef"
-  vivify_328:
-    $P1409 = $P1408."ast"()
-    store_lex "$past", $P1409
-.annotate 'line', 410
-    find_lex $P1413, "$past"
-    $P1414 = $P1413."negate"()
-    if $P1414, if_1412
-    set $P1411, $P1414
-    goto if_1412_end
-  if_1412:
-    find_lex $P1415, "$past"
-    $S1416 = $P1415."pasttype"()
-    iseq $I1417, $S1416, "subrule"
-    new $P1411, 'Integer'
-    set $P1411, $I1417
-  if_1412_end:
-    unless $P1411, if_1410_end
-.annotate 'line', 411
-    find_lex $P1418, "$past"
-    $P1418."subtype"("zerowidth")
-.annotate 'line', 412
-    get_hll_global $P1419, ["PAST"], "Regex"
-    find_lex $P1420, "$past"
-.annotate 'line', 414
-    get_hll_global $P1421, ["PAST"], "Regex"
-    $P1422 = $P1421."new"("charclass" :named("pasttype"), "." :named("subtype"))
-    find_lex $P1423, "$/"
-    $P1424 = $P1419."new"($P1420, $P1422, $P1423 :named("node"))
-.annotate 'line', 412
-    store_lex "$past", $P1424
-  if_1410_end:
-.annotate 'line', 418
-    new $P1425, "Integer"
-    assign $P1425, 1
-    store_lex "$i", $P1425
-.annotate 'line', 419
-    find_lex $P1426, "$clist"
-    set $N1427, $P1426
-    new $P1428, 'Float'
-    set $P1428, $N1427
-    store_lex "$n", $P1428
-.annotate 'line', 420
-    new $P1459, 'ExceptionHandler'
-    set_addr $P1459, loop1458_handler
-    $P1459."handle_types"(64, 66, 65)
-    push_eh $P1459
-  loop1458_test:
-    find_lex $P1429, "$i"
-    set $N1430, $P1429
-    find_lex $P1431, "$n"
-    set $N1432, $P1431
-    islt $I1433, $N1430, $N1432
-    unless $I1433, loop1458_done
-  loop1458_redo:
-    .const 'Sub' $P1435 = "83_1274853033.06396" 
-    capture_lex $P1435
-    $P1435()
-  loop1458_next:
-    goto loop1458_test
-  loop1458_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1460, exception, 'type'
-    eq $P1460, 64, loop1458_next
-    eq $P1460, 66, loop1458_redo
-  loop1458_done:
-    pop_eh 
-.annotate 'line', 431
-    find_lex $P1461, "$/"
-    find_lex $P1462, "$past"
-    $P1463 = $P1461."!make"($P1462)
-.annotate 'line', 407
-    .return ($P1463)
-  control_1398:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1464, exception, "payload"
-    .return ($P1464)
+    store_lex "$regexsym", $P1378
+.annotate 'line', 404
+    get_hll_global $P1379, ["PAST"], "Regex"
+.annotate 'line', 405
+    get_hll_global $P1380, ["PAST"], "Regex"
+    find_lex $P1381, "$regexsym"
+    $P1382 = $P1380."new"($P1381, "literal" :named("pasttype"))
+    find_lex $P1383, "$name"
+    find_lex $P1384, "$/"
+    $P1385 = $P1379."new"($P1382, $P1383 :named("name"), "subcapture" :named("pasttype"), $P1384 :named("node"))
+.annotate 'line', 404
+    store_lex "$past", $P1385
+.annotate 'line', 394
+    .return ($P1385)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1434"  :anon :subid("83_1274853033.06396") :outer("82_1274853033.06396")
-.annotate 'line', 421
-    new $P1436, "Undef"
-    .lex "$ast", $P1436
-    find_lex $P1437, "$i"
-    set $I1438, $P1437
-    find_lex $P1439, "$clist"
-    unless_null $P1439, vivify_329
-    $P1439 = root_new ['parrot';'ResizablePMCArray']
-  vivify_329:
-    set $P1440, $P1439[$I1438]
-    unless_null $P1440, vivify_330
-    new $P1440, "Undef"
-  vivify_330:
-    $P1441 = $P1440."ast"()
-    store_lex "$ast", $P1441
+.include "except_types.pasm"
+.sub "assertion:sym<[>"  :subid("83_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1427
 .annotate 'line', 422
-    find_lex $P1443, "$ast"
-    $P1444 = $P1443."negate"()
-    if $P1444, if_1442
-.annotate 'line', 427
-    get_hll_global $P1451, ["PAST"], "Regex"
-    find_lex $P1452, "$past"
-    find_lex $P1453, "$ast"
-    find_lex $P1454, "$/"
-    $P1455 = $P1451."new"($P1452, $P1453, "alt" :named("pasttype"), $P1454 :named("node"))
-    store_lex "$past", $P1455
-.annotate 'line', 426
-    goto if_1442_end
-  if_1442:
+    .const 'Sub' $P1462 = "84_1275811482.3686" 
+    capture_lex $P1462
+    new $P1426, 'ExceptionHandler'
+    set_addr $P1426, control_1425
+    $P1426."handle_types"(.CONTROL_RETURN)
+    push_eh $P1426
+    .lex "self", self
+    .lex "$/", param_1427
 .annotate 'line', 423
-    find_lex $P1445, "$ast"
-    $P1445."subtype"("zerowidth")
+    new $P1428, "Undef"
+    .lex "$clist", $P1428
 .annotate 'line', 424
-    get_hll_global $P1446, ["PAST"], "Regex"
-    find_lex $P1447, "$ast"
-    find_lex $P1448, "$past"
-    find_lex $P1449, "$/"
-    $P1450 = $P1446."new"($P1447, $P1448, "concat" :named("pasttype"), $P1449 :named("node"))
-    store_lex "$past", $P1450
-  if_1442_end:
-.annotate 'line', 429
-    find_lex $P1456, "$i"
-    add $P1457, $P1456, 1
-    store_lex "$i", $P1457
-.annotate 'line', 420
-    .return ($P1457)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "cclass_elem"  :subid("84_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1468
+    new $P1429, "Undef"
+    .lex "$past", $P1429
+.annotate 'line', 433
+    new $P1430, "Undef"
+    .lex "$i", $P1430
 .annotate 'line', 434
-    .const 'Sub' $P1493 = "86_1274853033.06396" 
-    capture_lex $P1493
-    .const 'Sub' $P1477 = "85_1274853033.06396" 
-    capture_lex $P1477
-    new $P1467, 'ExceptionHandler'
-    set_addr $P1467, control_1466
-    $P1467."handle_types"(57)
-    push_eh $P1467
-    .lex "self", self
-    .lex "$/", param_1468
-.annotate 'line', 435
-    new $P1469, "Undef"
-    .lex "$str", $P1469
-.annotate 'line', 436
-    new $P1470, "Undef"
-    .lex "$past", $P1470
-.annotate 'line', 435
-    new $P1471, "String"
-    assign $P1471, ""
-    store_lex "$str", $P1471
-    find_lex $P1472, "$past"
-.annotate 'line', 437
-    find_lex $P1474, "$/"
-    unless_null $P1474, vivify_331
-    $P1474 = root_new ['parrot';'Hash']
+    new $P1431, "Undef"
+    .lex "$n", $P1431
+.annotate 'line', 423
+    find_lex $P1432, "$/"
+    unless_null $P1432, vivify_331
+    $P1432 = root_new ['parrot';'Hash']
   vivify_331:
-    set $P1475, $P1474["name"]
-    unless_null $P1475, vivify_332
-    new $P1475, "Undef"
+    set $P1433, $P1432["cclass_elem"]
+    unless_null $P1433, vivify_332
+    new $P1433, "Undef"
   vivify_332:
-    if $P1475, if_1473
-.annotate 'line', 441
-    find_lex $P1488, "$/"
-    unless_null $P1488, vivify_333
-    $P1488 = root_new ['parrot';'Hash']
+    store_lex "$clist", $P1433
+.annotate 'line', 424
+    find_lex $P1434, "$clist"
+    unless_null $P1434, vivify_333
+    $P1434 = root_new ['parrot';'ResizablePMCArray']
   vivify_333:
-    set $P1489, $P1488["charspec"]
-    unless_null $P1489, vivify_334
-    new $P1489, "Undef"
+    set $P1435, $P1434[0]
+    unless_null $P1435, vivify_334
+    new $P1435, "Undef"
   vivify_334:
-    defined $I1490, $P1489
-    unless $I1490, for_undef_335
-    iter $P1487, $P1489
-    new $P1519, 'ExceptionHandler'
-    set_addr $P1519, loop1518_handler
-    $P1519."handle_types"(64, 66, 65)
-    push_eh $P1519
-  loop1518_test:
-    unless $P1487, loop1518_done
-    shift $P1491, $P1487
-  loop1518_redo:
-    .const 'Sub' $P1493 = "86_1274853033.06396" 
-    capture_lex $P1493
-    $P1493($P1491)
-  loop1518_next:
-    goto loop1518_test
-  loop1518_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1520, exception, 'type'
-    eq $P1520, 64, loop1518_next
-    eq $P1520, 66, loop1518_redo
-  loop1518_done:
-    pop_eh 
-  for_undef_335:
-.annotate 'line', 466
-    get_hll_global $P1521, ["PAST"], "Regex"
-    find_lex $P1522, "$str"
-    find_lex $P1523, "$/"
-    $P1524 = $P1521."new"($P1522, "enumcharlist" :named("pasttype"), $P1523 :named("node"))
-    store_lex "$past", $P1524
-.annotate 'line', 440
-    goto if_1473_end
-  if_1473:
-.annotate 'line', 437
-    .const 'Sub' $P1477 = "85_1274853033.06396" 
-    capture_lex $P1477
-    $P1477()
-  if_1473_end:
-.annotate 'line', 468
-    find_lex $P1525, "$past"
-    find_lex $P1526, "$/"
-    unless_null $P1526, vivify_347
-    $P1526 = root_new ['parrot';'Hash']
-  vivify_347:
-    set $P1527, $P1526["sign"]
-    unless_null $P1527, vivify_348
-    new $P1527, "Undef"
-  vivify_348:
-    set $S1528, $P1527
-    iseq $I1529, $S1528, "-"
-    $P1525."negate"($I1529)
-.annotate 'line', 469
-    find_lex $P1530, "$/"
-    find_lex $P1531, "$past"
-    $P1532 = $P1530."!make"($P1531)
+    $P1436 = $P1435."ast"()
+    store_lex "$past", $P1436
+.annotate 'line', 425
+    find_lex $P1440, "$past"
+    $P1441 = $P1440."negate"()
+    if $P1441, if_1439
+    set $P1438, $P1441
+    goto if_1439_end
+  if_1439:
+    find_lex $P1442, "$past"
+    $S1443 = $P1442."pasttype"()
+    iseq $I1444, $S1443, "subrule"
+    new $P1438, 'Integer'
+    set $P1438, $I1444
+  if_1439_end:
+    unless $P1438, if_1437_end
+.annotate 'line', 426
+    find_lex $P1445, "$past"
+    $P1445."subtype"("zerowidth")
+.annotate 'line', 427
+    get_hll_global $P1446, ["PAST"], "Regex"
+    find_lex $P1447, "$past"
+.annotate 'line', 429
+    get_hll_global $P1448, ["PAST"], "Regex"
+    $P1449 = $P1448."new"("charclass" :named("pasttype"), "." :named("subtype"))
+    find_lex $P1450, "$/"
+    $P1451 = $P1446."new"($P1447, $P1449, $P1450 :named("node"))
+.annotate 'line', 427
+    store_lex "$past", $P1451
+  if_1437_end:
+.annotate 'line', 433
+    new $P1452, "Integer"
+    assign $P1452, 1
+    store_lex "$i", $P1452
 .annotate 'line', 434
-    .return ($P1532)
-  control_1466:
+    find_lex $P1453, "$clist"
+    set $N1454, $P1453
+    new $P1455, 'Float'
+    set $P1455, $N1454
+    store_lex "$n", $P1455
+.annotate 'line', 435
+    new $P1486, 'ExceptionHandler'
+    set_addr $P1486, loop1485_handler
+    $P1486."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1486
+  loop1485_test:
+    find_lex $P1456, "$i"
+    set $N1457, $P1456
+    find_lex $P1458, "$n"
+    set $N1459, $P1458
+    islt $I1460, $N1457, $N1459
+    unless $I1460, loop1485_done
+  loop1485_redo:
+    .const 'Sub' $P1462 = "84_1275811482.3686" 
+    capture_lex $P1462
+    $P1462()
+  loop1485_next:
+    goto loop1485_test
+  loop1485_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1487, exception, 'type'
+    eq $P1487, .CONTROL_LOOP_NEXT, loop1485_next
+    eq $P1487, .CONTROL_LOOP_REDO, loop1485_redo
+  loop1485_done:
+    pop_eh 
+.annotate 'line', 446
+    find_lex $P1488, "$/"
+    find_lex $P1489, "$past"
+    $P1490 = $P1488."!make"($P1489)
+.annotate 'line', 422
+    .return ($P1490)
+  control_1425:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1533, exception, "payload"
-    .return ($P1533)
+    getattribute $P1491, exception, "payload"
+    .return ($P1491)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1492"  :anon :subid("86_1274853033.06396") :outer("84_1274853033.06396")
-    .param pmc param_1494
-.annotate 'line', 441
-    .const 'Sub' $P1500 = "87_1274853033.06396" 
-    capture_lex $P1500
-    .lex "$_", param_1494
-.annotate 'line', 442
-    find_lex $P1497, "$_"
-    unless_null $P1497, vivify_336
-    $P1497 = root_new ['parrot';'ResizablePMCArray']
+.sub "_block1461"  :anon :subid("84_1275811482.3686") :outer("83_1275811482.3686")
+.annotate 'line', 436
+    new $P1463, "Undef"
+    .lex "$ast", $P1463
+    find_lex $P1464, "$i"
+    set $I1465, $P1464
+    find_lex $P1466, "$clist"
+    unless_null $P1466, vivify_335
+    $P1466 = root_new ['parrot';'ResizablePMCArray']
+  vivify_335:
+    set $P1467, $P1466[$I1465]
+    unless_null $P1467, vivify_336
+    new $P1467, "Undef"
   vivify_336:
-    set $P1498, $P1497[1]
-    unless_null $P1498, vivify_337
-    new $P1498, "Undef"
-  vivify_337:
-    if $P1498, if_1496
-.annotate 'line', 464
-    find_lex $P1514, "$str"
-    find_lex $P1515, "$_"
-    unless_null $P1515, vivify_338
-    $P1515 = root_new ['parrot';'ResizablePMCArray']
-  vivify_338:
-    set $P1516, $P1515[0]
-    unless_null $P1516, vivify_339
-    new $P1516, "Undef"
-  vivify_339:
-    concat $P1517, $P1514, $P1516
-    store_lex "$str", $P1517
-    set $P1495, $P1517
+    $P1468 = $P1467."ast"()
+    store_lex "$ast", $P1468
+.annotate 'line', 437
+    find_lex $P1470, "$ast"
+    $P1471 = $P1470."negate"()
+    if $P1471, if_1469
 .annotate 'line', 442
-    goto if_1496_end
-  if_1496:
-    .const 'Sub' $P1500 = "87_1274853033.06396" 
-    capture_lex $P1500
-    $P1513 = $P1500()
-    set $P1495, $P1513
-  if_1496_end:
+    get_hll_global $P1478, ["PAST"], "Regex"
+    find_lex $P1479, "$past"
+    find_lex $P1480, "$ast"
+    find_lex $P1481, "$/"
+    $P1482 = $P1478."new"($P1479, $P1480, "alt" :named("pasttype"), $P1481 :named("node"))
+    store_lex "$past", $P1482
 .annotate 'line', 441
-    .return ($P1495)
+    goto if_1469_end
+  if_1469:
+.annotate 'line', 438
+    find_lex $P1472, "$ast"
+    $P1472."subtype"("zerowidth")
+.annotate 'line', 439
+    get_hll_global $P1473, ["PAST"], "Regex"
+    find_lex $P1474, "$ast"
+    find_lex $P1475, "$past"
+    find_lex $P1476, "$/"
+    $P1477 = $P1473."new"($P1474, $P1475, "concat" :named("pasttype"), $P1476 :named("node"))
+    store_lex "$past", $P1477
+  if_1469_end:
+.annotate 'line', 444
+    find_lex $P1483, "$i"
+    add $P1484, $P1483, 1
+    store_lex "$i", $P1484
+.annotate 'line', 435
+    .return ($P1484)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1499"  :anon :subid("87_1274853033.06396") :outer("86_1274853033.06396")
-.annotate 'line', 443
-    new $P1501, "Undef"
-    .lex "$a", $P1501
-.annotate 'line', 444
+.include "except_types.pasm"
+.sub "cclass_elem"  :subid("85_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1495
+.annotate 'line', 449
+    .const 'Sub' $P1520 = "87_1275811482.3686" 
+    capture_lex $P1520
+    .const 'Sub' $P1504 = "86_1275811482.3686" 
+    capture_lex $P1504
+    new $P1494, 'ExceptionHandler'
+    set_addr $P1494, control_1493
+    $P1494."handle_types"(.CONTROL_RETURN)
+    push_eh $P1494
+    .lex "self", self
+    .lex "$/", param_1495
+.annotate 'line', 450
+    new $P1496, "Undef"
+    .lex "$str", $P1496
+.annotate 'line', 451
+    new $P1497, "Undef"
+    .lex "$past", $P1497
+.annotate 'line', 450
+    new $P1498, "String"
+    assign $P1498, ""
+    store_lex "$str", $P1498
+    find_lex $P1499, "$past"
+.annotate 'line', 452
+    find_lex $P1501, "$/"
+    unless_null $P1501, vivify_337
+    $P1501 = root_new ['parrot';'Hash']
+  vivify_337:
+    set $P1502, $P1501["name"]
+    unless_null $P1502, vivify_338
     new $P1502, "Undef"
-    .lex "$b", $P1502
-.annotate 'line', 445
-    new $P1503, "Undef"
-    .lex "$c", $P1503
-.annotate 'line', 443
-    find_lex $P1504, "$_"
-    unless_null $P1504, vivify_340
-    $P1504 = root_new ['parrot';'ResizablePMCArray']
+  vivify_338:
+    if $P1502, if_1500
+.annotate 'line', 456
+    find_lex $P1515, "$/"
+    unless_null $P1515, vivify_339
+    $P1515 = root_new ['parrot';'Hash']
+  vivify_339:
+    set $P1516, $P1515["charspec"]
+    unless_null $P1516, vivify_340
+    new $P1516, "Undef"
   vivify_340:
-    set $P1505, $P1504[0]
-    unless_null $P1505, vivify_341
-    new $P1505, "Undef"
-  vivify_341:
-    store_lex "$a", $P1505
-.annotate 'line', 444
-    find_lex $P1506, "$_"
-    unless_null $P1506, vivify_342
-    $P1506 = root_new ['parrot';'ResizablePMCArray']
+    defined $I1517, $P1516
+    unless $I1517, for_undef_341
+    iter $P1514, $P1516
+    new $P1546, 'ExceptionHandler'
+    set_addr $P1546, loop1545_handler
+    $P1546."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1546
+  loop1545_test:
+    unless $P1514, loop1545_done
+    shift $P1518, $P1514
+  loop1545_redo:
+    .const 'Sub' $P1520 = "87_1275811482.3686" 
+    capture_lex $P1520
+    $P1520($P1518)
+  loop1545_next:
+    goto loop1545_test
+  loop1545_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1547, exception, 'type'
+    eq $P1547, .CONTROL_LOOP_NEXT, loop1545_next
+    eq $P1547, .CONTROL_LOOP_REDO, loop1545_redo
+  loop1545_done:
+    pop_eh 
+  for_undef_341:
+.annotate 'line', 481
+    get_hll_global $P1548, ["PAST"], "Regex"
+    find_lex $P1549, "$str"
+    find_lex $P1550, "$/"
+    $P1551 = $P1548."new"($P1549, "enumcharlist" :named("pasttype"), $P1550 :named("node"))
+    store_lex "$past", $P1551
+.annotate 'line', 455
+    goto if_1500_end
+  if_1500:
+.annotate 'line', 452
+    .const 'Sub' $P1504 = "86_1275811482.3686" 
+    capture_lex $P1504
+    $P1504()
+  if_1500_end:
+.annotate 'line', 483
+    find_lex $P1552, "$past"
+    find_lex $P1553, "$/"
+    unless_null $P1553, vivify_353
+    $P1553 = root_new ['parrot';'Hash']
+  vivify_353:
+    set $P1554, $P1553["sign"]
+    unless_null $P1554, vivify_354
+    new $P1554, "Undef"
+  vivify_354:
+    set $S1555, $P1554
+    iseq $I1556, $S1555, "-"
+    $P1552."negate"($I1556)
+.annotate 'line', 484
+    find_lex $P1557, "$/"
+    find_lex $P1558, "$past"
+    $P1559 = $P1557."!make"($P1558)
+.annotate 'line', 449
+    .return ($P1559)
+  control_1493:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1560, exception, "payload"
+    .return ($P1560)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.sub "_block1519"  :anon :subid("87_1275811482.3686") :outer("85_1275811482.3686")
+    .param pmc param_1521
+.annotate 'line', 456
+    .const 'Sub' $P1527 = "88_1275811482.3686" 
+    capture_lex $P1527
+    .lex "$_", param_1521
+.annotate 'line', 457
+    find_lex $P1524, "$_"
+    unless_null $P1524, vivify_342
+    $P1524 = root_new ['parrot';'ResizablePMCArray']
   vivify_342:
-    set $P1507, $P1506[1]
-    unless_null $P1507, vivify_343
-    $P1507 = root_new ['parrot';'ResizablePMCArray']
+    set $P1525, $P1524[1]
+    unless_null $P1525, vivify_343
+    new $P1525, "Undef"
   vivify_343:
-    set $P1508, $P1507[0]
-    unless_null $P1508, vivify_344
-    new $P1508, "Undef"
+    if $P1525, if_1523
+.annotate 'line', 479
+    find_lex $P1541, "$str"
+    find_lex $P1542, "$_"
+    unless_null $P1542, vivify_344
+    $P1542 = root_new ['parrot';'ResizablePMCArray']
   vivify_344:
-    store_lex "$b", $P1508
-.annotate 'line', 445
+    set $P1543, $P1542[0]
+    unless_null $P1543, vivify_345
+    new $P1543, "Undef"
+  vivify_345:
+    concat $P1544, $P1541, $P1543
+    store_lex "$str", $P1544
+    set $P1522, $P1544
+.annotate 'line', 457
+    goto if_1523_end
+  if_1523:
+    .const 'Sub' $P1527 = "88_1275811482.3686" 
+    capture_lex $P1527
+    $P1540 = $P1527()
+    set $P1522, $P1540
+  if_1523_end:
+.annotate 'line', 456
+    .return ($P1522)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.sub "_block1526"  :anon :subid("88_1275811482.3686") :outer("87_1275811482.3686")
+.annotate 'line', 458
+    new $P1528, "Undef"
+    .lex "$a", $P1528
+.annotate 'line', 459
+    new $P1529, "Undef"
+    .lex "$b", $P1529
+.annotate 'line', 460
+    new $P1530, "Undef"
+    .lex "$c", $P1530
+.annotate 'line', 458
+    find_lex $P1531, "$_"
+    unless_null $P1531, vivify_346
+    $P1531 = root_new ['parrot';'ResizablePMCArray']
+  vivify_346:
+    set $P1532, $P1531[0]
+    unless_null $P1532, vivify_347
+    new $P1532, "Undef"
+  vivify_347:
+    store_lex "$a", $P1532
+.annotate 'line', 459
+    find_lex $P1533, "$_"
+    unless_null $P1533, vivify_348
+    $P1533 = root_new ['parrot';'ResizablePMCArray']
+  vivify_348:
+    set $P1534, $P1533[1]
+    unless_null $P1534, vivify_349
+    $P1534 = root_new ['parrot';'ResizablePMCArray']
+  vivify_349:
+    set $P1535, $P1534[0]
+    unless_null $P1535, vivify_350
+    new $P1535, "Undef"
+  vivify_350:
+    store_lex "$b", $P1535
+.annotate 'line', 460
 
                              $P0 = find_lex '$a'
                              $S0 = $P0
@@ -11720,160 +11946,161 @@
                              inc $I0
                              goto cclass_loop
                            cclass_done:
-                             $P1509 = box $S2
+                             $P1536 = box $S2
                          
-    store_lex "$c", $P1509
-.annotate 'line', 462
-    find_lex $P1510, "$str"
-    find_lex $P1511, "$c"
-    concat $P1512, $P1510, $P1511
-    store_lex "$str", $P1512
-.annotate 'line', 442
-    .return ($P1512)
+    store_lex "$c", $P1536
+.annotate 'line', 477
+    find_lex $P1537, "$str"
+    find_lex $P1538, "$c"
+    concat $P1539, $P1537, $P1538
+    store_lex "$str", $P1539
+.annotate 'line', 457
+    .return ($P1539)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1476"  :anon :subid("85_1274853033.06396") :outer("84_1274853033.06396")
-.annotate 'line', 438
-    new $P1478, "Undef"
-    .lex "$name", $P1478
-    find_lex $P1479, "$/"
-    unless_null $P1479, vivify_345
-    $P1479 = root_new ['parrot';'Hash']
-  vivify_345:
-    set $P1480, $P1479["name"]
-    unless_null $P1480, vivify_346
-    new $P1480, "Undef"
-  vivify_346:
-    set $S1481, $P1480
-    new $P1482, 'String'
-    set $P1482, $S1481
-    store_lex "$name", $P1482
-.annotate 'line', 439
-    get_hll_global $P1483, ["PAST"], "Regex"
-    find_lex $P1484, "$name"
-    find_lex $P1485, "$/"
-    $P1486 = $P1483."new"($P1484, "subrule" :named("pasttype"), "method" :named("subtype"), $P1485 :named("node"))
-    store_lex "$past", $P1486
-.annotate 'line', 437
-    .return ($P1486)
+.sub "_block1503"  :anon :subid("86_1275811482.3686") :outer("85_1275811482.3686")
+.annotate 'line', 453
+    new $P1505, "Undef"
+    .lex "$name", $P1505
+    find_lex $P1506, "$/"
+    unless_null $P1506, vivify_351
+    $P1506 = root_new ['parrot';'Hash']
+  vivify_351:
+    set $P1507, $P1506["name"]
+    unless_null $P1507, vivify_352
+    new $P1507, "Undef"
+  vivify_352:
+    set $S1508, $P1507
+    new $P1509, 'String'
+    set $P1509, $S1508
+    store_lex "$name", $P1509
+.annotate 'line', 454
+    get_hll_global $P1510, ["PAST"], "Regex"
+    find_lex $P1511, "$name"
+    find_lex $P1512, "$/"
+    $P1513 = $P1510."new"($P1511, "subrule" :named("pasttype"), "method" :named("subtype"), $P1512 :named("node"))
+    store_lex "$past", $P1513
+.annotate 'line', 452
+    .return ($P1513)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "mod_internal"  :subid("88_1274853033.06396") :method :outer("11_1274853033.06396")
-    .param pmc param_1537
-.annotate 'line', 472
-    new $P1536, 'ExceptionHandler'
-    set_addr $P1536, control_1535
-    $P1536."handle_types"(57)
-    push_eh $P1536
-    .lex "self", self
-    .lex "$/", param_1537
-.annotate 'line', 473
-    $P1538 = root_new ['parrot';'Hash']
-    .lex "%mods", $P1538
-.annotate 'line', 474
-    new $P1539, "Undef"
-    .lex "$n", $P1539
-.annotate 'line', 473
-    get_global $P1540, "@MODIFIERS"
-    unless_null $P1540, vivify_349
-    $P1540 = root_new ['parrot';'ResizablePMCArray']
-  vivify_349:
-    set $P1541, $P1540[0]
-    unless_null $P1541, vivify_350
-    new $P1541, "Undef"
-  vivify_350:
-    store_lex "%mods", $P1541
-.annotate 'line', 474
-    find_lex $P1544, "$/"
-    unless_null $P1544, vivify_351
-    $P1544 = root_new ['parrot';'Hash']
-  vivify_351:
-    set $P1545, $P1544["n"]
-    unless_null $P1545, vivify_352
-    $P1545 = root_new ['parrot';'ResizablePMCArray']
-  vivify_352:
-    set $P1546, $P1545[0]
-    unless_null $P1546, vivify_353
-    new $P1546, "Undef"
-  vivify_353:
-    set $S1547, $P1546
-    isgt $I1548, $S1547, ""
-    if $I1548, if_1543
-    new $P1553, "Integer"
-    assign $P1553, 1
-    set $P1542, $P1553
-    goto if_1543_end
-  if_1543:
-    find_lex $P1549, "$/"
-    unless_null $P1549, vivify_354
-    $P1549 = root_new ['parrot';'Hash']
-  vivify_354:
-    set $P1550, $P1549["n"]
-    unless_null $P1550, vivify_355
-    $P1550 = root_new ['parrot';'ResizablePMCArray']
+.include "except_types.pasm"
+.sub "mod_internal"  :subid("89_1275811482.3686") :method :outer("11_1275811482.3686")
+    .param pmc param_1564
+.annotate 'line', 487
+    new $P1563, 'ExceptionHandler'
+    set_addr $P1563, control_1562
+    $P1563."handle_types"(.CONTROL_RETURN)
+    push_eh $P1563
+    .lex "self", self
+    .lex "$/", param_1564
+.annotate 'line', 488
+    $P1565 = root_new ['parrot';'Hash']
+    .lex "%mods", $P1565
+.annotate 'line', 489
+    new $P1566, "Undef"
+    .lex "$n", $P1566
+.annotate 'line', 488
+    get_global $P1567, "@MODIFIERS"
+    unless_null $P1567, vivify_355
+    $P1567 = root_new ['parrot';'ResizablePMCArray']
   vivify_355:
-    set $P1551, $P1550[0]
-    unless_null $P1551, vivify_356
-    new $P1551, "Undef"
+    set $P1568, $P1567[0]
+    unless_null $P1568, vivify_356
+    new $P1568, "Undef"
   vivify_356:
-    set $N1552, $P1551
-    new $P1542, 'Float'
-    set $P1542, $N1552
-  if_1543_end:
-    store_lex "$n", $P1542
-.annotate 'line', 475
-    find_lex $P1554, "$n"
-    find_lex $P1555, "$/"
-    unless_null $P1555, vivify_357
-    $P1555 = root_new ['parrot';'Hash']
+    store_lex "%mods", $P1568
+.annotate 'line', 489
+    find_lex $P1571, "$/"
+    unless_null $P1571, vivify_357
+    $P1571 = root_new ['parrot';'Hash']
   vivify_357:
-    set $P1556, $P1555["mod_ident"]
-    unless_null $P1556, vivify_358
-    $P1556 = root_new ['parrot';'Hash']
+    set $P1572, $P1571["n"]
+    unless_null $P1572, vivify_358
+    $P1572 = root_new ['parrot';'ResizablePMCArray']
   vivify_358:
-    set $P1557, $P1556["sym"]
-    unless_null $P1557, vivify_359
-    new $P1557, "Undef"
+    set $P1573, $P1572[0]
+    unless_null $P1573, vivify_359
+    new $P1573, "Undef"
   vivify_359:
-    set $S1558, $P1557
-    find_lex $P1559, "%mods"
-    unless_null $P1559, vivify_360
-    $P1559 = root_new ['parrot';'Hash']
-    store_lex "%mods", $P1559
+    set $S1574, $P1573
+    isgt $I1575, $S1574, ""
+    if $I1575, if_1570
+    new $P1580, "Integer"
+    assign $P1580, 1
+    set $P1569, $P1580
+    goto if_1570_end
+  if_1570:
+    find_lex $P1576, "$/"
+    unless_null $P1576, vivify_360
+    $P1576 = root_new ['parrot';'Hash']
   vivify_360:
-    set $P1559[$S1558], $P1554
-.annotate 'line', 476
-    find_lex $P1560, "$/"
-    $P1561 = $P1560."!make"(0)
-.annotate 'line', 472
-    .return ($P1561)
-  control_1535:
+    set $P1577, $P1576["n"]
+    unless_null $P1577, vivify_361
+    $P1577 = root_new ['parrot';'ResizablePMCArray']
+  vivify_361:
+    set $P1578, $P1577[0]
+    unless_null $P1578, vivify_362
+    new $P1578, "Undef"
+  vivify_362:
+    set $N1579, $P1578
+    new $P1569, 'Float'
+    set $P1569, $N1579
+  if_1570_end:
+    store_lex "$n", $P1569
+.annotate 'line', 490
+    find_lex $P1581, "$n"
+    find_lex $P1582, "$/"
+    unless_null $P1582, vivify_363
+    $P1582 = root_new ['parrot';'Hash']
+  vivify_363:
+    set $P1583, $P1582["mod_ident"]
+    unless_null $P1583, vivify_364
+    $P1583 = root_new ['parrot';'Hash']
+  vivify_364:
+    set $P1584, $P1583["sym"]
+    unless_null $P1584, vivify_365
+    new $P1584, "Undef"
+  vivify_365:
+    set $S1585, $P1584
+    find_lex $P1586, "%mods"
+    unless_null $P1586, vivify_366
+    $P1586 = root_new ['parrot';'Hash']
+    store_lex "%mods", $P1586
+  vivify_366:
+    set $P1586[$S1585], $P1581
+.annotate 'line', 491
+    find_lex $P1587, "$/"
+    $P1588 = $P1587."!make"(0)
+.annotate 'line', 487
+    .return ($P1588)
+  control_1562:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1562, exception, "payload"
-    .return ($P1562)
+    getattribute $P1589, exception, "payload"
+    .return ($P1589)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1567" :load :anon :subid("89_1274853033.06396")
+.sub "_block1594" :load :anon :subid("90_1275811482.3686")
 .annotate 'line', 4
-    .const 'Sub' $P1569 = "11_1274853033.06396" 
-    $P1570 = $P1569()
-    .return ($P1570)
+    .const 'Sub' $P1596 = "11_1275811482.3686" 
+    $P1597 = $P1596()
+    .return ($P1597)
 .end
 
 
 .namespace []
-.sub "_block1573" :load :anon :subid("90_1274853033.06396")
+.sub "_block1600" :load :anon :subid("91_1275811482.3686")
 .annotate 'line', 1
-    .const 'Sub' $P1575 = "10_1274853033.06396" 
-    $P1576 = $P1575()
-    .return ($P1576)
+    .const 'Sub' $P1602 = "10_1275811482.3686" 
+    $P1603 = $P1602()
+    .return ($P1603)
 .end
 
 # .include 'src/cheats/p6regex-grammar.pir'

Modified: branches/gsoc_nfg/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- branches/gsoc_nfg/ext/nqp-rx/src/stage0/Regex-s0.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/ext/nqp-rx/src/stage0/Regex-s0.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -429,13 +429,15 @@
     orig = getattribute self, '$!target'
     line = orig.'lineof'(from)
     inc line
-    printerr from
-    printerr '/'
-    printerr line
-    printerr ': '
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(2)
+    print $P1, from
+    print $P1, '/'
+    print $P1, line
+    print $P1, ': '
     $S0 = join '', args
-    printerr $S0
-    printerr "\n"
+    print $P1, $S0
+    print $P1, "\n"
   done:
     .return (self)
 .end
@@ -997,6 +999,10 @@
     (cur, pos, tgt) = self.'!cursor_start'()
     $I0 = is_cclass .CCLASS_ALPHABETIC, tgt, pos
     if $I0 goto pass
+
+    $I0 = length tgt
+    if pos >= $I0 goto fail
+
     $S0 = substr tgt, pos, 1
     if $S0 != '_' goto fail
   pass:
@@ -1613,6 +1619,9 @@
     $I0 = self.'to'()
     $I1 = self.'from'()
     $I2 = $I0 - $I1
+    if $I2 >= 0 goto done
+    .return (0)
+  done:
     .return ($I2)
 .end
 
@@ -2039,7 +2048,7 @@
 # vim: expandtab shiftwidth=4 ft=pir:
 
 ### .include 'src/PAST/Regex.pir'
-# $Id: Regex.pir 41578 2009-09-30 14:45:23Z pmichaud $
+# $Id$
 
 =head1 NAME
 
@@ -2285,6 +2294,22 @@
     .tailcall head.'prefix'(prefix, tail :flat)
 .end
 
+.sub 'prefix_pastnode' :method
+    .param string prefix
+    .param pmc tail
+
+    unless tail goto pastnode_none
+    .local string subtype
+    subtype = self.'subtype'()
+    if subtype != 'declarative' goto pastnode_none
+
+    .local pmc head
+    head = shift tail
+    .tailcall head.'prefix'(prefix, tail :flat)
+
+  pastnode_none:
+    .return (prefix)
+.end
 
 .sub 'prefix_subcapture' :method
     .param string prefix
@@ -2298,7 +2323,7 @@
     .param pmc tail
 
     .local pmc name, negate, subtype
-    name = self.'name'()
+    name = self[0]
     negate = self.'negate'()
     subtype = self.'subtype'()
     $I0 = does name, 'string'
@@ -2386,7 +2411,7 @@
     .lex '$*REG', reghash
 
     .local pmc regexname, regexname_esc
-    $P0 = get_global '@?BLOCK'
+    $P0 = find_dynamic_lex '@*BLOCKPAST'
     $P1 = $P0[0]
     $S0 = $P1.'name'()
     regexname = box $S0
@@ -2476,6 +2501,7 @@
     ops.'push_pirop'('.local pmc', 'match')
     ops.'push_pirop'('.lex', '"$/"', 'match')
     ops.'push_pirop'('length', eos, tgt, 'result'=>eos)
+    ops.'push_pirop'('gt', pos, eos, donelabel)
 
     # On Parrot, indexing into variable-width encoded strings
     # (such as utf8) becomes much more expensive as we move

Modified: branches/gsoc_nfg/ext/nqp-rx/src/stage0/nqp-setting.nqp
==============================================================================
--- branches/gsoc_nfg/ext/nqp-rx/src/stage0/nqp-setting.nqp	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/ext/nqp-rx/src/stage0/nqp-setting.nqp	Mon Jun  7 18:03:08 2010	(r47436)
@@ -213,9 +213,10 @@
 =end
 
 our sub slurp ($filename) {
-    my $handle := pir::open__Pss($file, 'r');
+    my $handle := FileHandle.new();
+    $handle.open($file, 'r');
     my $contents := $handle.readall;
-    pir::close($handle);
+    $handle.close();
     $contents;
 }
 
@@ -225,9 +226,10 @@
 =end item
 
 our sub spew($filename, $contents) {
-    my $handle := pir::open__Pss($filename, 'w');
+    my $handle := FileHandle.new();
+    $handle.open($filename, 'w');
     $handle.print($contents);
-    pir::close($handle);
+    $handle.close();
 }
 
 # vim: ft=perl6

Modified: branches/gsoc_nfg/include/parrot/debugger.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/debugger.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/debugger.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -205,11 +205,20 @@
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+void PDB_backtrace(PARROT_INTERP)
+        __attribute__nonnull__(1);
+
+PARROT_EXPORT
 void PDB_load_source(PARROT_INTERP, ARGIN(const char *command))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+void PDB_print(PARROT_INTERP, ARGIN(const char *command))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
 void PDB_script_file(PARROT_INTERP, ARGIN(const char *command))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
@@ -227,9 +236,6 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-void PDB_backtrace(PARROT_INTERP)
-        __attribute__nonnull__(1);
-
 PARROT_WARN_UNUSED_RESULT
 char PDB_break(PARROT_INTERP)
         __attribute__nonnull__(1);
@@ -330,10 +336,6 @@
 void PDB_next(PARROT_INTERP, ARGIN_NULLOK(const char *command))
         __attribute__nonnull__(1);
 
-void PDB_print(PARROT_INTERP, ARGIN(const char *command))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
 char PDB_program_end(PARROT_INTERP)
         __attribute__nonnull__(1);
 
@@ -372,9 +374,14 @@
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_debugger_start __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_PDB_backtrace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_PDB_load_source __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(command))
+#define ASSERT_ARGS_PDB_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(command))
 #define ASSERT_ARGS_PDB_script_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(command))
@@ -385,8 +392,6 @@
 #define ASSERT_ARGS_PDB_assign __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(command))
-#define ASSERT_ARGS_PDB_backtrace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_PDB_break __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_PDB_check_condition __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -443,9 +448,6 @@
     , PARROT_ASSERT_ARG(command))
 #define ASSERT_ARGS_PDB_next __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_PDB_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(command))
 #define ASSERT_ARGS_PDB_program_end __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_PDB_run_command __attribute__unused__ int _ASSERT_ARGS_CHECK = (\

Modified: branches/gsoc_nfg/include/parrot/exceptions.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/exceptions.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/exceptions.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -90,6 +90,7 @@
     CONTROL_ERROR,
     CONTROL_TAKE,
     CONTROL_LEAVE,
+    CONTROL_EXIT,
 
     CONTROL_LOOP_NEXT,
     CONTROL_LOOP_LAST,

Modified: branches/gsoc_nfg/include/parrot/gc_api.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/gc_api.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/gc_api.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -93,10 +93,10 @@
 
 /* &end_gen */
 
-#define GC_trace_stack_FLAG    (UINTVAL)(1 << 0)   /* trace system areas and stack */
-#define GC_trace_normal        (UINTVAL)(1 << 0)   /* the same */
-#define GC_lazy_FLAG           (UINTVAL)(1 << 1)   /* timely destruction run */
-#define GC_finish_FLAG         (UINTVAL)(1 << 2)   /* on Parrot exit: mark (almost) all PMCs dead and */
+#define GC_trace_stack_FLAG    (UINTVAL)(1 << 1)   /* trace system areas and stack */
+#define GC_trace_normal_FLAG   (UINTVAL)(1 << 1)   /* the same */
+#define GC_lazy_FLAG           (UINTVAL)(1 << 2)   /* timely destruction run */
+#define GC_finish_FLAG         (UINTVAL)(1 << 3)   /* on Parrot exit: mark (almost) all PMCs dead and */
                                                    /* garbage collect. */
 
 /* HEADERIZER BEGIN: src/gc/api.c */

Modified: branches/gsoc_nfg/include/parrot/interpreter.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/interpreter.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/interpreter.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -522,15 +522,6 @@
         __attribute__nonnull__(3)
         __attribute__nonnull__(4);
 
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-INTVAL sysinfo_i(SHIM_INTERP, INTVAL info_wanted);
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-STRING * sysinfo_s(PARROT_INTERP, INTVAL info_wanted)
-        __attribute__nonnull__(1);
-
 #define ASSERT_ARGS_interpinfo __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_interpinfo_p __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -557,9 +548,6 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(func) \
     , PARROT_ASSERT_ARG(name))
-#define ASSERT_ARGS_sysinfo_i __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_sysinfo_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: src/interp/inter_misc.c */
 

Modified: branches/gsoc_nfg/include/parrot/io.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/io.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/io.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -222,6 +222,10 @@
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
+PIOOFF_T Parrot_io_make_offset32(INTVAL hi, INTVAL lo);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 PMC * Parrot_io_new_pmc(PARROT_INTERP, INTVAL flags)
         __attribute__nonnull__(1);
@@ -342,9 +346,6 @@
         FUNC_MODIFIES(*pmc);
 
 PARROT_WARN_UNUSED_RESULT
-PIOOFF_T Parrot_io_make_offset32(INTVAL hi, INTVAL lo);
-
-PARROT_WARN_UNUSED_RESULT
 PIOOFF_T Parrot_io_make_offset_pmc(PARROT_INTERP, ARGMOD(PMC *pmc))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
@@ -378,6 +379,7 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(pmc))
 #define ASSERT_ARGS_Parrot_io_make_offset __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_io_make_offset32 __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_Parrot_io_new_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_io_open __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -420,7 +422,6 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(pmc) \
     , PARROT_ASSERT_ARG(buffer))
-#define ASSERT_ARGS_Parrot_io_make_offset32 __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_Parrot_io_make_offset_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(pmc))

Modified: branches/gsoc_nfg/include/parrot/misc.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/misc.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/misc.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -83,6 +83,13 @@
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+PMC* Parrot_tm_to_array(PARROT_INTERP, ARGIN(const struct tm *tm))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
 INTVAL Parrot_uint_rand(INTVAL how_random);
 
 PARROT_CONST_FUNCTION
@@ -102,12 +109,6 @@
         __attribute__nonnull__(4)
         FUNC_MODIFIES(*data);
 
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-PMC* tm_to_array(PARROT_INTERP, ARGIN(const struct tm *tm))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
 #define ASSERT_ARGS_Parrot_byte_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(base) \
     , PARROT_ASSERT_ARG(search))
@@ -123,6 +124,9 @@
     , PARROT_ASSERT_ARG(src_regs) \
     , PARROT_ASSERT_ARG(info))
 #define ASSERT_ARGS_Parrot_srand __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_tm_to_array __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(tm))
 #define ASSERT_ARGS_Parrot_uint_rand __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_floatval_mod __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_intval_mod __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
@@ -130,9 +134,6 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(data) \
     , PARROT_ASSERT_ARG(cmp))
-#define ASSERT_ARGS_tm_to_array __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(tm))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: src/utils.c */
 

Modified: branches/gsoc_nfg/include/parrot/oplib/core_ops.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/oplib/core_ops.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/oplib/core_ops.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -11,7 +11,8 @@
  * This file is generated automatically from 'src/ops/core.ops' (and possibly other
  * .ops files). by ops2c.nqp.
  *
- * Any changes made here will be lost!
+ * Any changes made here will be lost!  To regenerate this file after making
+ * changes to any ops, use the bootstap-ops makefile target.
  *
  */
 
@@ -140,108 +141,34 @@
  opcode_t * Parrot_annotations_p_sc(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_band_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_band_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_band_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_band_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_band_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_band_i_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_band_i_ic_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_band_i_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_band_p_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_band_p_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_band_p_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bands_p_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bands_p_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bands_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bands_s_s_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bands_s_sc_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bands_s_s_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bands_p_p_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bands_p_p_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bands_p_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bnot_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bnot_i_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bnot_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bnot_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bnots_s_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bnots_s_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bnots_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bnots_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_bor_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_bor_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bor_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bor_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bor_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_bor_i_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_bor_i_ic_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_bor_i_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bor_p_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bor_p_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bor_p_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bors_p_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bors_p_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bors_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bors_s_s_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bors_s_sc_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bors_s_s_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bors_p_p_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bors_p_p_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bors_p_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_shl_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_shl_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shl_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shl_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shl_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_shl_i_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_shl_i_ic_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_shl_i_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shl_p_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shl_p_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shl_p_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_shr_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_shr_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shr_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shr_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shr_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_shr_i_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_shr_i_ic_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_shr_i_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shr_p_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shr_p_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_shr_p_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_lsr_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_lsr_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_lsr_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_lsr_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_lsr_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_lsr_i_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_lsr_i_ic_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_lsr_i_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_lsr_p_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_lsr_p_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_lsr_p_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_rot_i_i_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_rot_i_ic_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_rot_i_i_ic_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_bxor_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_bxor_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxor_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxor_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxor_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_bxor_i_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_bxor_i_ic_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_bxor_i_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxor_p_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxor_p_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxor_p_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxors_p_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxors_p_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxors_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxors_s_s_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxors_s_sc_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxors_s_s_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxors_p_p_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxors_p_p_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_bxors_p_p_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_eq_i_i_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_eq_ic_i_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_eq_i_ic_ic(opcode_t *, PARROT_INTERP);
@@ -439,30 +366,6 @@
  opcode_t * Parrot_xor_i_ic_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_xor_i_i_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_xor_p_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_debug_init(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_debug_load_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_debug_break(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_debug_print(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_backtrace(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_getline_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_getfile_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_close_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_fdopen_p_i_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_fdopen_p_ic_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_fdopen_p_i_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_fdopen_p_ic_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_getstdin_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_getstdout_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_getstderr_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_setstdin_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_setstdout_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_setstderr_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_open_p_s_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_open_p_sc_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_open_p_s_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_open_p_sc_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_open_p_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_open_p_sc(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_print_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_print_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_print_n(opcode_t *, PARROT_INTERP);
@@ -477,13 +380,6 @@
  opcode_t * Parrot_say_s(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_say_sc(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_say_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_printerr_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_printerr_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_printerr_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_printerr_nc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_printerr_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_printerr_sc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_printerr_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_print_p_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_print_p_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_print_p_n(opcode_t *, PARROT_INTERP);
@@ -491,35 +387,9 @@
  opcode_t * Parrot_print_p_s(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_print_p_sc(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_print_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_read_s_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_read_s_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_read_s_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_read_s_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_readline_s_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_peek_s(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_peek_s_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_stat_i_s_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_stat_i_sc_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_stat_i_s_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_stat_i_sc_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_stat_i_i_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_stat_i_ic_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_stat_i_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_stat_i_ic_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_i_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_ic_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_ic_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_i_i_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_ic_i_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_i_ic_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_ic_ic_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_i_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_ic_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_i_ic_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_seek_p_ic_ic_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_tell_i_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_tell_i_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getstdin_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getstdout_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getstderr_p(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_abs_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_abs_n(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_abs_i_i(opcode_t *, PARROT_INTERP);
@@ -546,17 +416,6 @@
  opcode_t * Parrot_add_p_p_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_add_p_p_n(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_add_p_p_nc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_i_i_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_i_ic_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_i_i_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_p_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_p_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_p_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_n_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_n_nc_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_n_n_nc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_p_p_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cmod_p_p_nc(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_dec_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_dec_n(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_dec_p(opcode_t *, PARROT_INTERP);
@@ -657,18 +516,6 @@
  opcode_t * Parrot_neg_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_neg_n_n(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_neg_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_n_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_n_nc_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_n_n_nc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_p_p_p(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_p_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_p_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_p_p_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_p_p_nc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_n_n_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_n_nc_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_n_n_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_pow_n_nc_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sub_i_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sub_i_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sub_n_n(opcode_t *, PARROT_INTERP);
@@ -690,25 +537,6 @@
  opcode_t * Parrot_sub_p_p_n(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sub_p_p_nc(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sqrt_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_acos_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_asec_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_asin_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_atan_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_atan_n_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_atan_n_nc_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_atan_n_n_nc(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cos_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_cosh_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_exp_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_ln_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_log10_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_log2_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sec_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sech_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sin_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sinh_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_tan_n_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_tanh_n_n(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_callmethodcc_p_s(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_callmethodcc_p_sc(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_callmethodcc_p_p(opcode_t *, PARROT_INTERP);
@@ -1147,18 +975,6 @@
  opcode_t * Parrot_err_s_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_time_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_time_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_gmtime_s_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_gmtime_s_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_localtime_s_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_localtime_s_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_decodetime_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_decodetime_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_decodelocaltime_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_decodelocaltime_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sysinfo_s_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sysinfo_s_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sysinfo_i_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sysinfo_i_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sleep_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sleep_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sleep_n(opcode_t *, PARROT_INTERP);

Modified: branches/gsoc_nfg/include/parrot/oplib/ops.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/oplib/ops.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/oplib/ops.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -11,7 +11,8 @@
  * This file is generated automatically from 'src/ops/core.ops' (and possibly other
  * .ops files). by ops2c.nqp.
  *
- * Any changes made here will be lost!
+ * Any changes made here will be lost!  To regenerate this file after making
+ * changes to any ops, use the bootstap-ops makefile target.
  *
  */
 
@@ -135,1155 +136,970 @@
     PARROT_OP_annotations_p_sc,                /* 116 */
     PARROT_OP_band_i_i,                        /* 117 */
     PARROT_OP_band_i_ic,                       /* 118 */
-    PARROT_OP_band_p_i,                        /* 119 */
-    PARROT_OP_band_p_ic,                       /* 120 */
-    PARROT_OP_band_p_p,                        /* 121 */
-    PARROT_OP_band_i_i_i,                      /* 122 */
-    PARROT_OP_band_i_ic_i,                     /* 123 */
-    PARROT_OP_band_i_i_ic,                     /* 124 */
-    PARROT_OP_band_p_p_i,                      /* 125 */
-    PARROT_OP_band_p_p_ic,                     /* 126 */
-    PARROT_OP_band_p_p_p,                      /* 127 */
-    PARROT_OP_bands_p_s,                       /* 128 */
-    PARROT_OP_bands_p_sc,                      /* 129 */
-    PARROT_OP_bands_p_p,                       /* 130 */
-    PARROT_OP_bands_s_s_s,                     /* 131 */
-    PARROT_OP_bands_s_sc_s,                    /* 132 */
-    PARROT_OP_bands_s_s_sc,                    /* 133 */
-    PARROT_OP_bands_p_p_s,                     /* 134 */
-    PARROT_OP_bands_p_p_sc,                    /* 135 */
-    PARROT_OP_bands_p_p_p,                     /* 136 */
-    PARROT_OP_bnot_i,                          /* 137 */
-    PARROT_OP_bnot_i_i,                        /* 138 */
-    PARROT_OP_bnot_p,                          /* 139 */
-    PARROT_OP_bnot_p_p,                        /* 140 */
-    PARROT_OP_bnots_s_s,                       /* 141 */
-    PARROT_OP_bnots_s_sc,                      /* 142 */
-    PARROT_OP_bnots_p,                         /* 143 */
-    PARROT_OP_bnots_p_p,                       /* 144 */
-    PARROT_OP_bor_i_i,                         /* 145 */
-    PARROT_OP_bor_i_ic,                        /* 146 */
-    PARROT_OP_bor_p_i,                         /* 147 */
-    PARROT_OP_bor_p_ic,                        /* 148 */
-    PARROT_OP_bor_p_p,                         /* 149 */
-    PARROT_OP_bor_i_i_i,                       /* 150 */
-    PARROT_OP_bor_i_ic_i,                      /* 151 */
-    PARROT_OP_bor_i_i_ic,                      /* 152 */
-    PARROT_OP_bor_p_p_i,                       /* 153 */
-    PARROT_OP_bor_p_p_ic,                      /* 154 */
-    PARROT_OP_bor_p_p_p,                       /* 155 */
-    PARROT_OP_bors_p_s,                        /* 156 */
-    PARROT_OP_bors_p_sc,                       /* 157 */
-    PARROT_OP_bors_p_p,                        /* 158 */
-    PARROT_OP_bors_s_s_s,                      /* 159 */
-    PARROT_OP_bors_s_sc_s,                     /* 160 */
-    PARROT_OP_bors_s_s_sc,                     /* 161 */
-    PARROT_OP_bors_p_p_s,                      /* 162 */
-    PARROT_OP_bors_p_p_sc,                     /* 163 */
-    PARROT_OP_bors_p_p_p,                      /* 164 */
-    PARROT_OP_shl_i_i,                         /* 165 */
-    PARROT_OP_shl_i_ic,                        /* 166 */
-    PARROT_OP_shl_p_i,                         /* 167 */
-    PARROT_OP_shl_p_ic,                        /* 168 */
-    PARROT_OP_shl_p_p,                         /* 169 */
-    PARROT_OP_shl_i_i_i,                       /* 170 */
-    PARROT_OP_shl_i_ic_i,                      /* 171 */
-    PARROT_OP_shl_i_i_ic,                      /* 172 */
-    PARROT_OP_shl_p_p_i,                       /* 173 */
-    PARROT_OP_shl_p_p_ic,                      /* 174 */
-    PARROT_OP_shl_p_p_p,                       /* 175 */
-    PARROT_OP_shr_i_i,                         /* 176 */
-    PARROT_OP_shr_i_ic,                        /* 177 */
-    PARROT_OP_shr_p_i,                         /* 178 */
-    PARROT_OP_shr_p_ic,                        /* 179 */
-    PARROT_OP_shr_p_p,                         /* 180 */
-    PARROT_OP_shr_i_i_i,                       /* 181 */
-    PARROT_OP_shr_i_ic_i,                      /* 182 */
-    PARROT_OP_shr_i_i_ic,                      /* 183 */
-    PARROT_OP_shr_p_p_i,                       /* 184 */
-    PARROT_OP_shr_p_p_ic,                      /* 185 */
-    PARROT_OP_shr_p_p_p,                       /* 186 */
-    PARROT_OP_lsr_i_i,                         /* 187 */
-    PARROT_OP_lsr_i_ic,                        /* 188 */
-    PARROT_OP_lsr_p_i,                         /* 189 */
-    PARROT_OP_lsr_p_ic,                        /* 190 */
-    PARROT_OP_lsr_p_p,                         /* 191 */
-    PARROT_OP_lsr_i_i_i,                       /* 192 */
-    PARROT_OP_lsr_i_ic_i,                      /* 193 */
-    PARROT_OP_lsr_i_i_ic,                      /* 194 */
-    PARROT_OP_lsr_p_p_i,                       /* 195 */
-    PARROT_OP_lsr_p_p_ic,                      /* 196 */
-    PARROT_OP_lsr_p_p_p,                       /* 197 */
-    PARROT_OP_rot_i_i_i_ic,                    /* 198 */
-    PARROT_OP_rot_i_ic_i_ic,                   /* 199 */
-    PARROT_OP_rot_i_i_ic_ic,                   /* 200 */
-    PARROT_OP_bxor_i_i,                        /* 201 */
-    PARROT_OP_bxor_i_ic,                       /* 202 */
-    PARROT_OP_bxor_p_i,                        /* 203 */
-    PARROT_OP_bxor_p_ic,                       /* 204 */
-    PARROT_OP_bxor_p_p,                        /* 205 */
-    PARROT_OP_bxor_i_i_i,                      /* 206 */
-    PARROT_OP_bxor_i_ic_i,                     /* 207 */
-    PARROT_OP_bxor_i_i_ic,                     /* 208 */
-    PARROT_OP_bxor_p_p_i,                      /* 209 */
-    PARROT_OP_bxor_p_p_ic,                     /* 210 */
-    PARROT_OP_bxor_p_p_p,                      /* 211 */
-    PARROT_OP_bxors_p_s,                       /* 212 */
-    PARROT_OP_bxors_p_sc,                      /* 213 */
-    PARROT_OP_bxors_p_p,                       /* 214 */
-    PARROT_OP_bxors_s_s_s,                     /* 215 */
-    PARROT_OP_bxors_s_sc_s,                    /* 216 */
-    PARROT_OP_bxors_s_s_sc,                    /* 217 */
-    PARROT_OP_bxors_p_p_s,                     /* 218 */
-    PARROT_OP_bxors_p_p_sc,                    /* 219 */
-    PARROT_OP_bxors_p_p_p,                     /* 220 */
-    PARROT_OP_eq_i_i_ic,                       /* 221 */
-    PARROT_OP_eq_ic_i_ic,                      /* 222 */
-    PARROT_OP_eq_i_ic_ic,                      /* 223 */
-    PARROT_OP_eq_n_n_ic,                       /* 224 */
-    PARROT_OP_eq_nc_n_ic,                      /* 225 */
-    PARROT_OP_eq_n_nc_ic,                      /* 226 */
-    PARROT_OP_eq_s_s_ic,                       /* 227 */
-    PARROT_OP_eq_sc_s_ic,                      /* 228 */
-    PARROT_OP_eq_s_sc_ic,                      /* 229 */
-    PARROT_OP_eq_p_p_ic,                       /* 230 */
-    PARROT_OP_eq_p_i_ic,                       /* 231 */
-    PARROT_OP_eq_p_ic_ic,                      /* 232 */
-    PARROT_OP_eq_p_n_ic,                       /* 233 */
-    PARROT_OP_eq_p_nc_ic,                      /* 234 */
-    PARROT_OP_eq_p_s_ic,                       /* 235 */
-    PARROT_OP_eq_p_sc_ic,                      /* 236 */
-    PARROT_OP_eq_str_p_p_ic,                   /* 237 */
-    PARROT_OP_eq_num_p_p_ic,                   /* 238 */
-    PARROT_OP_eq_addr_s_s_ic,                  /* 239 */
-    PARROT_OP_eq_addr_sc_s_ic,                 /* 240 */
-    PARROT_OP_eq_addr_s_sc_ic,                 /* 241 */
-    PARROT_OP_eq_addr_sc_sc_ic,                /* 242 */
-    PARROT_OP_eq_addr_p_p_ic,                  /* 243 */
-    PARROT_OP_ne_i_i_ic,                       /* 244 */
-    PARROT_OP_ne_ic_i_ic,                      /* 245 */
-    PARROT_OP_ne_i_ic_ic,                      /* 246 */
-    PARROT_OP_ne_n_n_ic,                       /* 247 */
-    PARROT_OP_ne_nc_n_ic,                      /* 248 */
-    PARROT_OP_ne_n_nc_ic,                      /* 249 */
-    PARROT_OP_ne_s_s_ic,                       /* 250 */
-    PARROT_OP_ne_sc_s_ic,                      /* 251 */
-    PARROT_OP_ne_s_sc_ic,                      /* 252 */
-    PARROT_OP_ne_p_p_ic,                       /* 253 */
-    PARROT_OP_ne_p_i_ic,                       /* 254 */
-    PARROT_OP_ne_p_ic_ic,                      /* 255 */
-    PARROT_OP_ne_p_n_ic,                       /* 256 */
-    PARROT_OP_ne_p_nc_ic,                      /* 257 */
-    PARROT_OP_ne_p_s_ic,                       /* 258 */
-    PARROT_OP_ne_p_sc_ic,                      /* 259 */
-    PARROT_OP_ne_str_p_p_ic,                   /* 260 */
-    PARROT_OP_ne_num_p_p_ic,                   /* 261 */
-    PARROT_OP_ne_addr_s_s_ic,                  /* 262 */
-    PARROT_OP_ne_addr_sc_s_ic,                 /* 263 */
-    PARROT_OP_ne_addr_s_sc_ic,                 /* 264 */
-    PARROT_OP_ne_addr_sc_sc_ic,                /* 265 */
-    PARROT_OP_ne_addr_p_p_ic,                  /* 266 */
-    PARROT_OP_lt_i_i_ic,                       /* 267 */
-    PARROT_OP_lt_ic_i_ic,                      /* 268 */
-    PARROT_OP_lt_i_ic_ic,                      /* 269 */
-    PARROT_OP_lt_n_n_ic,                       /* 270 */
-    PARROT_OP_lt_nc_n_ic,                      /* 271 */
-    PARROT_OP_lt_n_nc_ic,                      /* 272 */
-    PARROT_OP_lt_s_s_ic,                       /* 273 */
-    PARROT_OP_lt_sc_s_ic,                      /* 274 */
-    PARROT_OP_lt_s_sc_ic,                      /* 275 */
-    PARROT_OP_lt_p_p_ic,                       /* 276 */
-    PARROT_OP_lt_p_i_ic,                       /* 277 */
-    PARROT_OP_lt_p_ic_ic,                      /* 278 */
-    PARROT_OP_lt_p_n_ic,                       /* 279 */
-    PARROT_OP_lt_p_nc_ic,                      /* 280 */
-    PARROT_OP_lt_p_s_ic,                       /* 281 */
-    PARROT_OP_lt_p_sc_ic,                      /* 282 */
-    PARROT_OP_lt_str_p_p_ic,                   /* 283 */
-    PARROT_OP_lt_num_p_p_ic,                   /* 284 */
-    PARROT_OP_le_i_i_ic,                       /* 285 */
-    PARROT_OP_le_ic_i_ic,                      /* 286 */
-    PARROT_OP_le_i_ic_ic,                      /* 287 */
-    PARROT_OP_le_n_n_ic,                       /* 288 */
-    PARROT_OP_le_nc_n_ic,                      /* 289 */
-    PARROT_OP_le_n_nc_ic,                      /* 290 */
-    PARROT_OP_le_s_s_ic,                       /* 291 */
-    PARROT_OP_le_sc_s_ic,                      /* 292 */
-    PARROT_OP_le_s_sc_ic,                      /* 293 */
-    PARROT_OP_le_p_p_ic,                       /* 294 */
-    PARROT_OP_le_p_i_ic,                       /* 295 */
-    PARROT_OP_le_p_ic_ic,                      /* 296 */
-    PARROT_OP_le_p_n_ic,                       /* 297 */
-    PARROT_OP_le_p_nc_ic,                      /* 298 */
-    PARROT_OP_le_p_s_ic,                       /* 299 */
-    PARROT_OP_le_p_sc_ic,                      /* 300 */
-    PARROT_OP_le_str_p_p_ic,                   /* 301 */
-    PARROT_OP_le_num_p_p_ic,                   /* 302 */
-    PARROT_OP_gt_p_p_ic,                       /* 303 */
-    PARROT_OP_gt_p_i_ic,                       /* 304 */
-    PARROT_OP_gt_p_ic_ic,                      /* 305 */
-    PARROT_OP_gt_p_n_ic,                       /* 306 */
-    PARROT_OP_gt_p_nc_ic,                      /* 307 */
-    PARROT_OP_gt_p_s_ic,                       /* 308 */
-    PARROT_OP_gt_p_sc_ic,                      /* 309 */
-    PARROT_OP_gt_str_p_p_ic,                   /* 310 */
-    PARROT_OP_gt_num_p_p_ic,                   /* 311 */
-    PARROT_OP_ge_p_p_ic,                       /* 312 */
-    PARROT_OP_ge_p_i_ic,                       /* 313 */
-    PARROT_OP_ge_p_ic_ic,                      /* 314 */
-    PARROT_OP_ge_p_n_ic,                       /* 315 */
-    PARROT_OP_ge_p_nc_ic,                      /* 316 */
-    PARROT_OP_ge_p_s_ic,                       /* 317 */
-    PARROT_OP_ge_p_sc_ic,                      /* 318 */
-    PARROT_OP_ge_str_p_p_ic,                   /* 319 */
-    PARROT_OP_ge_num_p_p_ic,                   /* 320 */
-    PARROT_OP_if_null_p_ic,                    /* 321 */
-    PARROT_OP_if_null_s_ic,                    /* 322 */
-    PARROT_OP_unless_null_p_ic,                /* 323 */
-    PARROT_OP_unless_null_s_ic,                /* 324 */
-    PARROT_OP_cmp_i_i_i,                       /* 325 */
-    PARROT_OP_cmp_i_ic_i,                      /* 326 */
-    PARROT_OP_cmp_i_i_ic,                      /* 327 */
-    PARROT_OP_cmp_i_n_n,                       /* 328 */
-    PARROT_OP_cmp_i_nc_n,                      /* 329 */
-    PARROT_OP_cmp_i_n_nc,                      /* 330 */
-    PARROT_OP_cmp_i_s_s,                       /* 331 */
-    PARROT_OP_cmp_i_sc_s,                      /* 332 */
-    PARROT_OP_cmp_i_s_sc,                      /* 333 */
-    PARROT_OP_cmp_i_p_p,                       /* 334 */
-    PARROT_OP_cmp_i_p_i,                       /* 335 */
-    PARROT_OP_cmp_i_p_ic,                      /* 336 */
-    PARROT_OP_cmp_i_p_n,                       /* 337 */
-    PARROT_OP_cmp_i_p_nc,                      /* 338 */
-    PARROT_OP_cmp_i_p_s,                       /* 339 */
-    PARROT_OP_cmp_i_p_sc,                      /* 340 */
-    PARROT_OP_cmp_str_i_p_p,                   /* 341 */
-    PARROT_OP_cmp_num_i_p_p,                   /* 342 */
-    PARROT_OP_cmp_pmc_p_p_p,                   /* 343 */
-    PARROT_OP_issame_i_p_p,                    /* 344 */
-    PARROT_OP_issame_i_s_s,                    /* 345 */
-    PARROT_OP_issame_i_sc_s,                   /* 346 */
-    PARROT_OP_issame_i_s_sc,                   /* 347 */
-    PARROT_OP_issame_i_sc_sc,                  /* 348 */
-    PARROT_OP_isntsame_i_p_p,                  /* 349 */
-    PARROT_OP_isntsame_i_s_s,                  /* 350 */
-    PARROT_OP_isntsame_i_sc_s,                 /* 351 */
-    PARROT_OP_isntsame_i_s_sc,                 /* 352 */
-    PARROT_OP_isntsame_i_sc_sc,                /* 353 */
-    PARROT_OP_istrue_i_p,                      /* 354 */
-    PARROT_OP_isfalse_i_p,                     /* 355 */
-    PARROT_OP_isnull_i_p,                      /* 356 */
-    PARROT_OP_isnull_i_pc,                     /* 357 */
-    PARROT_OP_isnull_i_s,                      /* 358 */
-    PARROT_OP_isnull_i_sc,                     /* 359 */
-    PARROT_OP_isgt_i_p_p,                      /* 360 */
-    PARROT_OP_isge_i_p_p,                      /* 361 */
-    PARROT_OP_isle_i_i_i,                      /* 362 */
-    PARROT_OP_isle_i_ic_i,                     /* 363 */
-    PARROT_OP_isle_i_i_ic,                     /* 364 */
-    PARROT_OP_isle_i_n_n,                      /* 365 */
-    PARROT_OP_isle_i_nc_n,                     /* 366 */
-    PARROT_OP_isle_i_n_nc,                     /* 367 */
-    PARROT_OP_isle_i_s_s,                      /* 368 */
-    PARROT_OP_isle_i_sc_s,                     /* 369 */
-    PARROT_OP_isle_i_s_sc,                     /* 370 */
-    PARROT_OP_isle_i_p_p,                      /* 371 */
-    PARROT_OP_islt_i_i_i,                      /* 372 */
-    PARROT_OP_islt_i_ic_i,                     /* 373 */
-    PARROT_OP_islt_i_i_ic,                     /* 374 */
-    PARROT_OP_islt_i_n_n,                      /* 375 */
-    PARROT_OP_islt_i_nc_n,                     /* 376 */
-    PARROT_OP_islt_i_n_nc,                     /* 377 */
-    PARROT_OP_islt_i_s_s,                      /* 378 */
-    PARROT_OP_islt_i_sc_s,                     /* 379 */
-    PARROT_OP_islt_i_s_sc,                     /* 380 */
-    PARROT_OP_islt_i_p_p,                      /* 381 */
-    PARROT_OP_iseq_i_i_i,                      /* 382 */
-    PARROT_OP_iseq_i_ic_i,                     /* 383 */
-    PARROT_OP_iseq_i_i_ic,                     /* 384 */
-    PARROT_OP_iseq_i_n_n,                      /* 385 */
-    PARROT_OP_iseq_i_nc_n,                     /* 386 */
-    PARROT_OP_iseq_i_n_nc,                     /* 387 */
-    PARROT_OP_iseq_i_s_s,                      /* 388 */
-    PARROT_OP_iseq_i_sc_s,                     /* 389 */
-    PARROT_OP_iseq_i_s_sc,                     /* 390 */
-    PARROT_OP_iseq_i_p_p,                      /* 391 */
-    PARROT_OP_isne_i_i_i,                      /* 392 */
-    PARROT_OP_isne_i_ic_i,                     /* 393 */
-    PARROT_OP_isne_i_i_ic,                     /* 394 */
-    PARROT_OP_isne_i_n_n,                      /* 395 */
-    PARROT_OP_isne_i_nc_n,                     /* 396 */
-    PARROT_OP_isne_i_n_nc,                     /* 397 */
-    PARROT_OP_isne_i_s_s,                      /* 398 */
-    PARROT_OP_isne_i_sc_s,                     /* 399 */
-    PARROT_OP_isne_i_s_sc,                     /* 400 */
-    PARROT_OP_isne_i_p_p,                      /* 401 */
-    PARROT_OP_and_i_i_i,                       /* 402 */
-    PARROT_OP_and_i_ic_i,                      /* 403 */
-    PARROT_OP_and_i_i_ic,                      /* 404 */
-    PARROT_OP_and_p_p_p,                       /* 405 */
-    PARROT_OP_not_i,                           /* 406 */
-    PARROT_OP_not_i_i,                         /* 407 */
-    PARROT_OP_not_p,                           /* 408 */
-    PARROT_OP_not_p_p,                         /* 409 */
-    PARROT_OP_or_i_i_i,                        /* 410 */
-    PARROT_OP_or_i_ic_i,                       /* 411 */
-    PARROT_OP_or_i_i_ic,                       /* 412 */
-    PARROT_OP_or_p_p_p,                        /* 413 */
-    PARROT_OP_xor_i_i_i,                       /* 414 */
-    PARROT_OP_xor_i_ic_i,                      /* 415 */
-    PARROT_OP_xor_i_i_ic,                      /* 416 */
-    PARROT_OP_xor_p_p_p,                       /* 417 */
-    PARROT_OP_debug_init,                      /* 418 */
-    PARROT_OP_debug_load_sc,                   /* 419 */
-    PARROT_OP_debug_break,                     /* 420 */
-    PARROT_OP_debug_print,                     /* 421 */
-    PARROT_OP_backtrace,                       /* 422 */
-    PARROT_OP_getline_i,                       /* 423 */
-    PARROT_OP_getfile_s,                       /* 424 */
-    PARROT_OP_close_p,                         /* 425 */
-    PARROT_OP_fdopen_p_i_s,                    /* 426 */
-    PARROT_OP_fdopen_p_ic_s,                   /* 427 */
-    PARROT_OP_fdopen_p_i_sc,                   /* 428 */
-    PARROT_OP_fdopen_p_ic_sc,                  /* 429 */
-    PARROT_OP_getstdin_p,                      /* 430 */
-    PARROT_OP_getstdout_p,                     /* 431 */
-    PARROT_OP_getstderr_p,                     /* 432 */
-    PARROT_OP_setstdin_p,                      /* 433 */
-    PARROT_OP_setstdout_p,                     /* 434 */
-    PARROT_OP_setstderr_p,                     /* 435 */
-    PARROT_OP_open_p_s_s,                      /* 436 */
-    PARROT_OP_open_p_sc_s,                     /* 437 */
-    PARROT_OP_open_p_s_sc,                     /* 438 */
-    PARROT_OP_open_p_sc_sc,                    /* 439 */
-    PARROT_OP_open_p_s,                        /* 440 */
-    PARROT_OP_open_p_sc,                       /* 441 */
-    PARROT_OP_print_i,                         /* 442 */
-    PARROT_OP_print_ic,                        /* 443 */
-    PARROT_OP_print_n,                         /* 444 */
-    PARROT_OP_print_nc,                        /* 445 */
-    PARROT_OP_print_s,                         /* 446 */
-    PARROT_OP_print_sc,                        /* 447 */
-    PARROT_OP_print_p,                         /* 448 */
-    PARROT_OP_say_i,                           /* 449 */
-    PARROT_OP_say_ic,                          /* 450 */
-    PARROT_OP_say_n,                           /* 451 */
-    PARROT_OP_say_nc,                          /* 452 */
-    PARROT_OP_say_s,                           /* 453 */
-    PARROT_OP_say_sc,                          /* 454 */
-    PARROT_OP_say_p,                           /* 455 */
-    PARROT_OP_printerr_i,                      /* 456 */
-    PARROT_OP_printerr_ic,                     /* 457 */
-    PARROT_OP_printerr_n,                      /* 458 */
-    PARROT_OP_printerr_nc,                     /* 459 */
-    PARROT_OP_printerr_s,                      /* 460 */
-    PARROT_OP_printerr_sc,                     /* 461 */
-    PARROT_OP_printerr_p,                      /* 462 */
-    PARROT_OP_print_p_i,                       /* 463 */
-    PARROT_OP_print_p_ic,                      /* 464 */
-    PARROT_OP_print_p_n,                       /* 465 */
-    PARROT_OP_print_p_nc,                      /* 466 */
-    PARROT_OP_print_p_s,                       /* 467 */
-    PARROT_OP_print_p_sc,                      /* 468 */
-    PARROT_OP_print_p_p,                       /* 469 */
-    PARROT_OP_read_s_i,                        /* 470 */
-    PARROT_OP_read_s_ic,                       /* 471 */
-    PARROT_OP_read_s_p_i,                      /* 472 */
-    PARROT_OP_read_s_p_ic,                     /* 473 */
-    PARROT_OP_readline_s_p,                    /* 474 */
-    PARROT_OP_peek_s,                          /* 475 */
-    PARROT_OP_peek_s_p,                        /* 476 */
-    PARROT_OP_stat_i_s_i,                      /* 477 */
-    PARROT_OP_stat_i_sc_i,                     /* 478 */
-    PARROT_OP_stat_i_s_ic,                     /* 479 */
-    PARROT_OP_stat_i_sc_ic,                    /* 480 */
-    PARROT_OP_stat_i_i_i,                      /* 481 */
-    PARROT_OP_stat_i_ic_i,                     /* 482 */
-    PARROT_OP_stat_i_i_ic,                     /* 483 */
-    PARROT_OP_stat_i_ic_ic,                    /* 484 */
-    PARROT_OP_seek_p_i_i,                      /* 485 */
-    PARROT_OP_seek_p_ic_i,                     /* 486 */
-    PARROT_OP_seek_p_i_ic,                     /* 487 */
-    PARROT_OP_seek_p_ic_ic,                    /* 488 */
-    PARROT_OP_seek_p_i_i_i,                    /* 489 */
-    PARROT_OP_seek_p_ic_i_i,                   /* 490 */
-    PARROT_OP_seek_p_i_ic_i,                   /* 491 */
-    PARROT_OP_seek_p_ic_ic_i,                  /* 492 */
-    PARROT_OP_seek_p_i_i_ic,                   /* 493 */
-    PARROT_OP_seek_p_ic_i_ic,                  /* 494 */
-    PARROT_OP_seek_p_i_ic_ic,                  /* 495 */
-    PARROT_OP_seek_p_ic_ic_ic,                 /* 496 */
-    PARROT_OP_tell_i_p,                        /* 497 */
-    PARROT_OP_tell_i_i_p,                      /* 498 */
-    PARROT_OP_abs_i,                           /* 499 */
-    PARROT_OP_abs_n,                           /* 500 */
-    PARROT_OP_abs_i_i,                         /* 501 */
-    PARROT_OP_abs_n_n,                         /* 502 */
-    PARROT_OP_abs_p,                           /* 503 */
-    PARROT_OP_abs_p_p,                         /* 504 */
-    PARROT_OP_add_i_i,                         /* 505 */
-    PARROT_OP_add_i_ic,                        /* 506 */
-    PARROT_OP_add_n_n,                         /* 507 */
-    PARROT_OP_add_n_nc,                        /* 508 */
-    PARROT_OP_add_p_p,                         /* 509 */
-    PARROT_OP_add_p_i,                         /* 510 */
-    PARROT_OP_add_p_ic,                        /* 511 */
-    PARROT_OP_add_p_n,                         /* 512 */
-    PARROT_OP_add_p_nc,                        /* 513 */
-    PARROT_OP_add_i_i_i,                       /* 514 */
-    PARROT_OP_add_i_ic_i,                      /* 515 */
-    PARROT_OP_add_i_i_ic,                      /* 516 */
-    PARROT_OP_add_n_n_n,                       /* 517 */
-    PARROT_OP_add_n_nc_n,                      /* 518 */
-    PARROT_OP_add_n_n_nc,                      /* 519 */
-    PARROT_OP_add_p_p_p,                       /* 520 */
-    PARROT_OP_add_p_p_i,                       /* 521 */
-    PARROT_OP_add_p_p_ic,                      /* 522 */
-    PARROT_OP_add_p_p_n,                       /* 523 */
-    PARROT_OP_add_p_p_nc,                      /* 524 */
-    PARROT_OP_cmod_i_i_i,                      /* 525 */
-    PARROT_OP_cmod_i_ic_i,                     /* 526 */
-    PARROT_OP_cmod_i_i_ic,                     /* 527 */
-    PARROT_OP_cmod_p_p_i,                      /* 528 */
-    PARROT_OP_cmod_p_p_ic,                     /* 529 */
-    PARROT_OP_cmod_p_p_p,                      /* 530 */
-    PARROT_OP_cmod_n_n_n,                      /* 531 */
-    PARROT_OP_cmod_n_nc_n,                     /* 532 */
-    PARROT_OP_cmod_n_n_nc,                     /* 533 */
-    PARROT_OP_cmod_p_p_n,                      /* 534 */
-    PARROT_OP_cmod_p_p_nc,                     /* 535 */
-    PARROT_OP_dec_i,                           /* 536 */
-    PARROT_OP_dec_n,                           /* 537 */
-    PARROT_OP_dec_p,                           /* 538 */
-    PARROT_OP_div_i_i,                         /* 539 */
-    PARROT_OP_div_i_ic,                        /* 540 */
-    PARROT_OP_div_n_n,                         /* 541 */
-    PARROT_OP_div_n_nc,                        /* 542 */
-    PARROT_OP_div_p_p,                         /* 543 */
-    PARROT_OP_div_p_i,                         /* 544 */
-    PARROT_OP_div_p_ic,                        /* 545 */
-    PARROT_OP_div_p_n,                         /* 546 */
-    PARROT_OP_div_p_nc,                        /* 547 */
-    PARROT_OP_div_i_i_i,                       /* 548 */
-    PARROT_OP_div_i_ic_i,                      /* 549 */
-    PARROT_OP_div_i_i_ic,                      /* 550 */
-    PARROT_OP_div_i_ic_ic,                     /* 551 */
-    PARROT_OP_div_n_n_n,                       /* 552 */
-    PARROT_OP_div_n_nc_n,                      /* 553 */
-    PARROT_OP_div_n_n_nc,                      /* 554 */
-    PARROT_OP_div_n_nc_nc,                     /* 555 */
-    PARROT_OP_div_p_p_p,                       /* 556 */
-    PARROT_OP_div_p_p_i,                       /* 557 */
-    PARROT_OP_div_p_p_ic,                      /* 558 */
-    PARROT_OP_div_p_p_n,                       /* 559 */
-    PARROT_OP_div_p_p_nc,                      /* 560 */
-    PARROT_OP_fdiv_i_i,                        /* 561 */
-    PARROT_OP_fdiv_i_ic,                       /* 562 */
-    PARROT_OP_fdiv_n_n,                        /* 563 */
-    PARROT_OP_fdiv_n_nc,                       /* 564 */
-    PARROT_OP_fdiv_p_p,                        /* 565 */
-    PARROT_OP_fdiv_p_i,                        /* 566 */
-    PARROT_OP_fdiv_p_ic,                       /* 567 */
-    PARROT_OP_fdiv_p_n,                        /* 568 */
-    PARROT_OP_fdiv_p_nc,                       /* 569 */
-    PARROT_OP_fdiv_i_i_i,                      /* 570 */
-    PARROT_OP_fdiv_i_ic_i,                     /* 571 */
-    PARROT_OP_fdiv_i_i_ic,                     /* 572 */
-    PARROT_OP_fdiv_n_n_n,                      /* 573 */
-    PARROT_OP_fdiv_n_nc_n,                     /* 574 */
-    PARROT_OP_fdiv_n_n_nc,                     /* 575 */
-    PARROT_OP_fdiv_p_p_p,                      /* 576 */
-    PARROT_OP_fdiv_p_p_i,                      /* 577 */
-    PARROT_OP_fdiv_p_p_ic,                     /* 578 */
-    PARROT_OP_fdiv_p_p_n,                      /* 579 */
-    PARROT_OP_fdiv_p_p_nc,                     /* 580 */
-    PARROT_OP_ceil_n,                          /* 581 */
-    PARROT_OP_ceil_i_n,                        /* 582 */
-    PARROT_OP_ceil_n_n,                        /* 583 */
-    PARROT_OP_floor_n,                         /* 584 */
-    PARROT_OP_floor_i_n,                       /* 585 */
-    PARROT_OP_floor_n_n,                       /* 586 */
-    PARROT_OP_inc_i,                           /* 587 */
-    PARROT_OP_inc_n,                           /* 588 */
-    PARROT_OP_inc_p,                           /* 589 */
-    PARROT_OP_mod_i_i,                         /* 590 */
-    PARROT_OP_mod_i_ic,                        /* 591 */
-    PARROT_OP_mod_n_n,                         /* 592 */
-    PARROT_OP_mod_n_nc,                        /* 593 */
-    PARROT_OP_mod_p_p,                         /* 594 */
-    PARROT_OP_mod_p_i,                         /* 595 */
-    PARROT_OP_mod_p_ic,                        /* 596 */
-    PARROT_OP_mod_p_n,                         /* 597 */
-    PARROT_OP_mod_p_nc,                        /* 598 */
-    PARROT_OP_mod_i_i_i,                       /* 599 */
-    PARROT_OP_mod_i_ic_i,                      /* 600 */
-    PARROT_OP_mod_i_i_ic,                      /* 601 */
-    PARROT_OP_mod_n_n_n,                       /* 602 */
-    PARROT_OP_mod_n_nc_n,                      /* 603 */
-    PARROT_OP_mod_n_n_nc,                      /* 604 */
-    PARROT_OP_mod_p_p_p,                       /* 605 */
-    PARROT_OP_mod_p_p_i,                       /* 606 */
-    PARROT_OP_mod_p_p_ic,                      /* 607 */
-    PARROT_OP_mod_p_p_n,                       /* 608 */
-    PARROT_OP_mod_p_p_nc,                      /* 609 */
-    PARROT_OP_mul_i_i,                         /* 610 */
-    PARROT_OP_mul_i_ic,                        /* 611 */
-    PARROT_OP_mul_n_n,                         /* 612 */
-    PARROT_OP_mul_n_nc,                        /* 613 */
-    PARROT_OP_mul_p_p,                         /* 614 */
-    PARROT_OP_mul_p_i,                         /* 615 */
-    PARROT_OP_mul_p_ic,                        /* 616 */
-    PARROT_OP_mul_p_n,                         /* 617 */
-    PARROT_OP_mul_p_nc,                        /* 618 */
-    PARROT_OP_mul_i_i_i,                       /* 619 */
-    PARROT_OP_mul_i_ic_i,                      /* 620 */
-    PARROT_OP_mul_i_i_ic,                      /* 621 */
-    PARROT_OP_mul_n_n_n,                       /* 622 */
-    PARROT_OP_mul_n_nc_n,                      /* 623 */
-    PARROT_OP_mul_n_n_nc,                      /* 624 */
-    PARROT_OP_mul_p_p_p,                       /* 625 */
-    PARROT_OP_mul_p_p_i,                       /* 626 */
-    PARROT_OP_mul_p_p_ic,                      /* 627 */
-    PARROT_OP_mul_p_p_n,                       /* 628 */
-    PARROT_OP_mul_p_p_nc,                      /* 629 */
-    PARROT_OP_neg_i,                           /* 630 */
-    PARROT_OP_neg_n,                           /* 631 */
-    PARROT_OP_neg_p,                           /* 632 */
-    PARROT_OP_neg_i_i,                         /* 633 */
-    PARROT_OP_neg_n_n,                         /* 634 */
-    PARROT_OP_neg_p_p,                         /* 635 */
-    PARROT_OP_pow_n_n_n,                       /* 636 */
-    PARROT_OP_pow_n_nc_n,                      /* 637 */
-    PARROT_OP_pow_n_n_nc,                      /* 638 */
-    PARROT_OP_pow_p_p_p,                       /* 639 */
-    PARROT_OP_pow_p_p_i,                       /* 640 */
-    PARROT_OP_pow_p_p_ic,                      /* 641 */
-    PARROT_OP_pow_p_p_n,                       /* 642 */
-    PARROT_OP_pow_p_p_nc,                      /* 643 */
-    PARROT_OP_pow_n_n_i,                       /* 644 */
-    PARROT_OP_pow_n_nc_i,                      /* 645 */
-    PARROT_OP_pow_n_n_ic,                      /* 646 */
-    PARROT_OP_pow_n_nc_ic,                     /* 647 */
-    PARROT_OP_sub_i_i,                         /* 648 */
-    PARROT_OP_sub_i_ic,                        /* 649 */
-    PARROT_OP_sub_n_n,                         /* 650 */
-    PARROT_OP_sub_n_nc,                        /* 651 */
-    PARROT_OP_sub_p_p,                         /* 652 */
-    PARROT_OP_sub_p_i,                         /* 653 */
-    PARROT_OP_sub_p_ic,                        /* 654 */
-    PARROT_OP_sub_p_n,                         /* 655 */
-    PARROT_OP_sub_p_nc,                        /* 656 */
-    PARROT_OP_sub_i_i_i,                       /* 657 */
-    PARROT_OP_sub_i_ic_i,                      /* 658 */
-    PARROT_OP_sub_i_i_ic,                      /* 659 */
-    PARROT_OP_sub_n_n_n,                       /* 660 */
-    PARROT_OP_sub_n_nc_n,                      /* 661 */
-    PARROT_OP_sub_n_n_nc,                      /* 662 */
-    PARROT_OP_sub_p_p_p,                       /* 663 */
-    PARROT_OP_sub_p_p_i,                       /* 664 */
-    PARROT_OP_sub_p_p_ic,                      /* 665 */
-    PARROT_OP_sub_p_p_n,                       /* 666 */
-    PARROT_OP_sub_p_p_nc,                      /* 667 */
-    PARROT_OP_sqrt_n_n,                        /* 668 */
-    PARROT_OP_acos_n_n,                        /* 669 */
-    PARROT_OP_asec_n_n,                        /* 670 */
-    PARROT_OP_asin_n_n,                        /* 671 */
-    PARROT_OP_atan_n_n,                        /* 672 */
-    PARROT_OP_atan_n_n_n,                      /* 673 */
-    PARROT_OP_atan_n_nc_n,                     /* 674 */
-    PARROT_OP_atan_n_n_nc,                     /* 675 */
-    PARROT_OP_cos_n_n,                         /* 676 */
-    PARROT_OP_cosh_n_n,                        /* 677 */
-    PARROT_OP_exp_n_n,                         /* 678 */
-    PARROT_OP_ln_n_n,                          /* 679 */
-    PARROT_OP_log10_n_n,                       /* 680 */
-    PARROT_OP_log2_n_n,                        /* 681 */
-    PARROT_OP_sec_n_n,                         /* 682 */
-    PARROT_OP_sech_n_n,                        /* 683 */
-    PARROT_OP_sin_n_n,                         /* 684 */
-    PARROT_OP_sinh_n_n,                        /* 685 */
-    PARROT_OP_tan_n_n,                         /* 686 */
-    PARROT_OP_tanh_n_n,                        /* 687 */
-    PARROT_OP_callmethodcc_p_s,                /* 688 */
-    PARROT_OP_callmethodcc_p_sc,               /* 689 */
-    PARROT_OP_callmethodcc_p_p,                /* 690 */
-    PARROT_OP_callmethod_p_s_p,                /* 691 */
-    PARROT_OP_callmethod_p_sc_p,               /* 692 */
-    PARROT_OP_callmethod_p_p_p,                /* 693 */
-    PARROT_OP_tailcallmethod_p_s,              /* 694 */
-    PARROT_OP_tailcallmethod_p_sc,             /* 695 */
-    PARROT_OP_tailcallmethod_p_p,              /* 696 */
-    PARROT_OP_addmethod_p_s_p,                 /* 697 */
-    PARROT_OP_addmethod_p_sc_p,                /* 698 */
-    PARROT_OP_can_i_p_s,                       /* 699 */
-    PARROT_OP_can_i_p_sc,                      /* 700 */
-    PARROT_OP_does_i_p_s,                      /* 701 */
-    PARROT_OP_does_i_p_sc,                     /* 702 */
-    PARROT_OP_does_i_p_p,                      /* 703 */
-    PARROT_OP_does_i_p_pc,                     /* 704 */
-    PARROT_OP_isa_i_p_s,                       /* 705 */
-    PARROT_OP_isa_i_p_sc,                      /* 706 */
-    PARROT_OP_isa_i_p_p,                       /* 707 */
-    PARROT_OP_isa_i_p_pc,                      /* 708 */
-    PARROT_OP_newclass_p_s,                    /* 709 */
-    PARROT_OP_newclass_p_sc,                   /* 710 */
-    PARROT_OP_newclass_p_p,                    /* 711 */
-    PARROT_OP_newclass_p_pc,                   /* 712 */
-    PARROT_OP_subclass_p_p,                    /* 713 */
-    PARROT_OP_subclass_p_pc,                   /* 714 */
-    PARROT_OP_subclass_p_p_s,                  /* 715 */
-    PARROT_OP_subclass_p_pc_s,                 /* 716 */
-    PARROT_OP_subclass_p_p_sc,                 /* 717 */
-    PARROT_OP_subclass_p_pc_sc,                /* 718 */
-    PARROT_OP_subclass_p_p_p,                  /* 719 */
-    PARROT_OP_subclass_p_pc_p,                 /* 720 */
-    PARROT_OP_subclass_p_p_pc,                 /* 721 */
-    PARROT_OP_subclass_p_pc_pc,                /* 722 */
-    PARROT_OP_subclass_p_s,                    /* 723 */
-    PARROT_OP_subclass_p_sc,                   /* 724 */
-    PARROT_OP_subclass_p_s_s,                  /* 725 */
-    PARROT_OP_subclass_p_sc_s,                 /* 726 */
-    PARROT_OP_subclass_p_s_sc,                 /* 727 */
-    PARROT_OP_subclass_p_sc_sc,                /* 728 */
-    PARROT_OP_subclass_p_s_p,                  /* 729 */
-    PARROT_OP_subclass_p_sc_p,                 /* 730 */
-    PARROT_OP_subclass_p_s_pc,                 /* 731 */
-    PARROT_OP_subclass_p_sc_pc,                /* 732 */
-    PARROT_OP_get_class_p_s,                   /* 733 */
-    PARROT_OP_get_class_p_sc,                  /* 734 */
-    PARROT_OP_get_class_p_p,                   /* 735 */
-    PARROT_OP_get_class_p_pc,                  /* 736 */
-    PARROT_OP_class_p_p,                       /* 737 */
-    PARROT_OP_addparent_p_p,                   /* 738 */
-    PARROT_OP_removeparent_p_p,                /* 739 */
-    PARROT_OP_addrole_p_p,                     /* 740 */
-    PARROT_OP_addattribute_p_s,                /* 741 */
-    PARROT_OP_addattribute_p_sc,               /* 742 */
-    PARROT_OP_removeattribute_p_s,             /* 743 */
-    PARROT_OP_removeattribute_p_sc,            /* 744 */
-    PARROT_OP_getattribute_p_p_s,              /* 745 */
-    PARROT_OP_getattribute_p_p_sc,             /* 746 */
-    PARROT_OP_getattribute_p_p_p_s,            /* 747 */
-    PARROT_OP_getattribute_p_p_pc_s,           /* 748 */
-    PARROT_OP_getattribute_p_p_p_sc,           /* 749 */
-    PARROT_OP_getattribute_p_p_pc_sc,          /* 750 */
-    PARROT_OP_setattribute_p_s_p,              /* 751 */
-    PARROT_OP_setattribute_p_sc_p,             /* 752 */
-    PARROT_OP_setattribute_p_p_s_p,            /* 753 */
-    PARROT_OP_setattribute_p_pc_s_p,           /* 754 */
-    PARROT_OP_setattribute_p_p_sc_p,           /* 755 */
-    PARROT_OP_setattribute_p_pc_sc_p,          /* 756 */
-    PARROT_OP_inspect_p_p,                     /* 757 */
-    PARROT_OP_inspect_p_pc,                    /* 758 */
-    PARROT_OP_inspect_p_p_s,                   /* 759 */
-    PARROT_OP_inspect_p_pc_s,                  /* 760 */
-    PARROT_OP_inspect_p_p_sc,                  /* 761 */
-    PARROT_OP_inspect_p_pc_sc,                 /* 762 */
-    PARROT_OP_new_p_s,                         /* 763 */
-    PARROT_OP_new_p_sc,                        /* 764 */
-    PARROT_OP_new_p_s_p,                       /* 765 */
-    PARROT_OP_new_p_sc_p,                      /* 766 */
-    PARROT_OP_new_p_s_pc,                      /* 767 */
-    PARROT_OP_new_p_sc_pc,                     /* 768 */
-    PARROT_OP_new_p_p,                         /* 769 */
-    PARROT_OP_new_p_pc,                        /* 770 */
-    PARROT_OP_new_p_p_p,                       /* 771 */
-    PARROT_OP_new_p_pc_p,                      /* 772 */
-    PARROT_OP_new_p_p_pc,                      /* 773 */
-    PARROT_OP_new_p_pc_pc,                     /* 774 */
-    PARROT_OP_root_new_p_p,                    /* 775 */
-    PARROT_OP_root_new_p_pc,                   /* 776 */
-    PARROT_OP_root_new_p_p_p,                  /* 777 */
-    PARROT_OP_root_new_p_pc_p,                 /* 778 */
-    PARROT_OP_root_new_p_p_pc,                 /* 779 */
-    PARROT_OP_root_new_p_pc_pc,                /* 780 */
-    PARROT_OP_typeof_s_p,                      /* 781 */
-    PARROT_OP_typeof_p_p,                      /* 782 */
-    PARROT_OP_get_repr_s_p,                    /* 783 */
-    PARROT_OP_find_method_p_p_s,               /* 784 */
-    PARROT_OP_find_method_p_p_sc,              /* 785 */
-    PARROT_OP_defined_i_p,                     /* 786 */
-    PARROT_OP_defined_i_p_ki,                  /* 787 */
-    PARROT_OP_defined_i_p_kic,                 /* 788 */
-    PARROT_OP_defined_i_p_k,                   /* 789 */
-    PARROT_OP_defined_i_p_kc,                  /* 790 */
-    PARROT_OP_exists_i_p_ki,                   /* 791 */
-    PARROT_OP_exists_i_p_kic,                  /* 792 */
-    PARROT_OP_exists_i_p_k,                    /* 793 */
-    PARROT_OP_exists_i_p_kc,                   /* 794 */
-    PARROT_OP_delete_p_k,                      /* 795 */
-    PARROT_OP_delete_p_kc,                     /* 796 */
-    PARROT_OP_delete_p_ki,                     /* 797 */
-    PARROT_OP_delete_p_kic,                    /* 798 */
-    PARROT_OP_elements_i_p,                    /* 799 */
-    PARROT_OP_push_p_i,                        /* 800 */
-    PARROT_OP_push_p_ic,                       /* 801 */
-    PARROT_OP_push_p_n,                        /* 802 */
-    PARROT_OP_push_p_nc,                       /* 803 */
-    PARROT_OP_push_p_s,                        /* 804 */
-    PARROT_OP_push_p_sc,                       /* 805 */
-    PARROT_OP_push_p_p,                        /* 806 */
-    PARROT_OP_pop_i_p,                         /* 807 */
-    PARROT_OP_pop_n_p,                         /* 808 */
-    PARROT_OP_pop_s_p,                         /* 809 */
-    PARROT_OP_pop_p_p,                         /* 810 */
-    PARROT_OP_unshift_p_i,                     /* 811 */
-    PARROT_OP_unshift_p_ic,                    /* 812 */
-    PARROT_OP_unshift_p_n,                     /* 813 */
-    PARROT_OP_unshift_p_nc,                    /* 814 */
-    PARROT_OP_unshift_p_s,                     /* 815 */
-    PARROT_OP_unshift_p_sc,                    /* 816 */
-    PARROT_OP_unshift_p_p,                     /* 817 */
-    PARROT_OP_shift_i_p,                       /* 818 */
-    PARROT_OP_shift_n_p,                       /* 819 */
-    PARROT_OP_shift_s_p,                       /* 820 */
-    PARROT_OP_shift_p_p,                       /* 821 */
-    PARROT_OP_splice_p_p_i_i,                  /* 822 */
-    PARROT_OP_splice_p_p_ic_i,                 /* 823 */
-    PARROT_OP_splice_p_p_i_ic,                 /* 824 */
-    PARROT_OP_splice_p_p_ic_ic,                /* 825 */
-    PARROT_OP_setprop_p_s_p,                   /* 826 */
-    PARROT_OP_setprop_p_sc_p,                  /* 827 */
-    PARROT_OP_getprop_p_s_p,                   /* 828 */
-    PARROT_OP_getprop_p_sc_p,                  /* 829 */
-    PARROT_OP_delprop_p_s,                     /* 830 */
-    PARROT_OP_delprop_p_sc,                    /* 831 */
-    PARROT_OP_prophash_p_p,                    /* 832 */
-    PARROT_OP_freeze_s_p,                      /* 833 */
-    PARROT_OP_thaw_p_s,                        /* 834 */
-    PARROT_OP_thaw_p_sc,                       /* 835 */
-    PARROT_OP_add_multi_s_s_p,                 /* 836 */
-    PARROT_OP_add_multi_sc_s_p,                /* 837 */
-    PARROT_OP_add_multi_s_sc_p,                /* 838 */
-    PARROT_OP_add_multi_sc_sc_p,               /* 839 */
-    PARROT_OP_find_multi_p_s_s,                /* 840 */
-    PARROT_OP_find_multi_p_sc_s,               /* 841 */
-    PARROT_OP_find_multi_p_s_sc,               /* 842 */
-    PARROT_OP_find_multi_p_sc_sc,              /* 843 */
-    PARROT_OP_register_p,                      /* 844 */
-    PARROT_OP_unregister_p,                    /* 845 */
-    PARROT_OP_box_p_i,                         /* 846 */
-    PARROT_OP_box_p_ic,                        /* 847 */
-    PARROT_OP_box_p_n,                         /* 848 */
-    PARROT_OP_box_p_nc,                        /* 849 */
-    PARROT_OP_box_p_s,                         /* 850 */
-    PARROT_OP_box_p_sc,                        /* 851 */
-    PARROT_OP_iter_p_p,                        /* 852 */
-    PARROT_OP_morph_p_p,                       /* 853 */
-    PARROT_OP_morph_p_pc,                      /* 854 */
-    PARROT_OP_clone_s_s,                       /* 855 */
-    PARROT_OP_clone_s_sc,                      /* 856 */
-    PARROT_OP_set_i_i,                         /* 857 */
-    PARROT_OP_set_i_ic,                        /* 858 */
-    PARROT_OP_set_i_n,                         /* 859 */
-    PARROT_OP_set_i_nc,                        /* 860 */
-    PARROT_OP_set_i_s,                         /* 861 */
-    PARROT_OP_set_i_sc,                        /* 862 */
-    PARROT_OP_set_n_n,                         /* 863 */
-    PARROT_OP_set_n_nc,                        /* 864 */
-    PARROT_OP_set_n_i,                         /* 865 */
-    PARROT_OP_set_n_ic,                        /* 866 */
-    PARROT_OP_set_n_s,                         /* 867 */
-    PARROT_OP_set_n_sc,                        /* 868 */
-    PARROT_OP_set_n_p,                         /* 869 */
-    PARROT_OP_set_s_p,                         /* 870 */
-    PARROT_OP_set_s_s,                         /* 871 */
-    PARROT_OP_set_s_sc,                        /* 872 */
-    PARROT_OP_set_s_i,                         /* 873 */
-    PARROT_OP_set_s_ic,                        /* 874 */
-    PARROT_OP_set_s_n,                         /* 875 */
-    PARROT_OP_set_s_nc,                        /* 876 */
-    PARROT_OP_set_p_pc,                        /* 877 */
-    PARROT_OP_set_p_p,                         /* 878 */
-    PARROT_OP_set_p_i,                         /* 879 */
-    PARROT_OP_set_p_ic,                        /* 880 */
-    PARROT_OP_set_p_n,                         /* 881 */
-    PARROT_OP_set_p_nc,                        /* 882 */
-    PARROT_OP_set_p_s,                         /* 883 */
-    PARROT_OP_set_p_sc,                        /* 884 */
-    PARROT_OP_set_i_p,                         /* 885 */
-    PARROT_OP_assign_p_p,                      /* 886 */
-    PARROT_OP_assign_p_i,                      /* 887 */
-    PARROT_OP_assign_p_ic,                     /* 888 */
-    PARROT_OP_assign_p_n,                      /* 889 */
-    PARROT_OP_assign_p_nc,                     /* 890 */
-    PARROT_OP_assign_p_s,                      /* 891 */
-    PARROT_OP_assign_p_sc,                     /* 892 */
-    PARROT_OP_assign_s_s,                      /* 893 */
-    PARROT_OP_assign_s_sc,                     /* 894 */
-    PARROT_OP_setref_p_p,                      /* 895 */
-    PARROT_OP_deref_p_p,                       /* 896 */
-    PARROT_OP_set_p_ki_i,                      /* 897 */
-    PARROT_OP_set_p_kic_i,                     /* 898 */
-    PARROT_OP_set_p_ki_ic,                     /* 899 */
-    PARROT_OP_set_p_kic_ic,                    /* 900 */
-    PARROT_OP_set_p_ki_n,                      /* 901 */
-    PARROT_OP_set_p_kic_n,                     /* 902 */
-    PARROT_OP_set_p_ki_nc,                     /* 903 */
-    PARROT_OP_set_p_kic_nc,                    /* 904 */
-    PARROT_OP_set_p_ki_s,                      /* 905 */
-    PARROT_OP_set_p_kic_s,                     /* 906 */
-    PARROT_OP_set_p_ki_sc,                     /* 907 */
-    PARROT_OP_set_p_kic_sc,                    /* 908 */
-    PARROT_OP_set_p_ki_p,                      /* 909 */
-    PARROT_OP_set_p_kic_p,                     /* 910 */
-    PARROT_OP_set_i_p_ki,                      /* 911 */
-    PARROT_OP_set_i_p_kic,                     /* 912 */
-    PARROT_OP_set_n_p_ki,                      /* 913 */
-    PARROT_OP_set_n_p_kic,                     /* 914 */
-    PARROT_OP_set_s_p_ki,                      /* 915 */
-    PARROT_OP_set_s_p_kic,                     /* 916 */
-    PARROT_OP_set_p_p_ki,                      /* 917 */
-    PARROT_OP_set_p_p_kic,                     /* 918 */
-    PARROT_OP_set_p_k_i,                       /* 919 */
-    PARROT_OP_set_p_kc_i,                      /* 920 */
-    PARROT_OP_set_p_k_ic,                      /* 921 */
-    PARROT_OP_set_p_kc_ic,                     /* 922 */
-    PARROT_OP_set_p_k_n,                       /* 923 */
-    PARROT_OP_set_p_kc_n,                      /* 924 */
-    PARROT_OP_set_p_k_nc,                      /* 925 */
-    PARROT_OP_set_p_kc_nc,                     /* 926 */
-    PARROT_OP_set_p_k_s,                       /* 927 */
-    PARROT_OP_set_p_kc_s,                      /* 928 */
-    PARROT_OP_set_p_k_sc,                      /* 929 */
-    PARROT_OP_set_p_kc_sc,                     /* 930 */
-    PARROT_OP_set_p_k_p,                       /* 931 */
-    PARROT_OP_set_p_kc_p,                      /* 932 */
-    PARROT_OP_set_i_p_k,                       /* 933 */
-    PARROT_OP_set_i_p_kc,                      /* 934 */
-    PARROT_OP_set_n_p_k,                       /* 935 */
-    PARROT_OP_set_n_p_kc,                      /* 936 */
-    PARROT_OP_set_s_p_k,                       /* 937 */
-    PARROT_OP_set_s_p_kc,                      /* 938 */
-    PARROT_OP_set_p_p_k,                       /* 939 */
-    PARROT_OP_set_p_p_kc,                      /* 940 */
-    PARROT_OP_clone_p_p,                       /* 941 */
-    PARROT_OP_clone_p_p_p,                     /* 942 */
-    PARROT_OP_clone_p_p_pc,                    /* 943 */
-    PARROT_OP_copy_p_p,                        /* 944 */
-    PARROT_OP_null_s,                          /* 945 */
-    PARROT_OP_null_i,                          /* 946 */
-    PARROT_OP_null_p,                          /* 947 */
-    PARROT_OP_null_n,                          /* 948 */
-    PARROT_OP_ord_i_s,                         /* 949 */
-    PARROT_OP_ord_i_sc,                        /* 950 */
-    PARROT_OP_ord_i_s_i,                       /* 951 */
-    PARROT_OP_ord_i_sc_i,                      /* 952 */
-    PARROT_OP_ord_i_s_ic,                      /* 953 */
-    PARROT_OP_ord_i_sc_ic,                     /* 954 */
-    PARROT_OP_chr_s_i,                         /* 955 */
-    PARROT_OP_chr_s_ic,                        /* 956 */
-    PARROT_OP_chopn_s_s_i,                     /* 957 */
-    PARROT_OP_chopn_s_sc_i,                    /* 958 */
-    PARROT_OP_chopn_s_s_ic,                    /* 959 */
-    PARROT_OP_chopn_s_sc_ic,                   /* 960 */
-    PARROT_OP_concat_s_s,                      /* 961 */
-    PARROT_OP_concat_s_sc,                     /* 962 */
-    PARROT_OP_concat_p_p,                      /* 963 */
-    PARROT_OP_concat_p_s,                      /* 964 */
-    PARROT_OP_concat_p_sc,                     /* 965 */
-    PARROT_OP_concat_s_s_s,                    /* 966 */
-    PARROT_OP_concat_s_sc_s,                   /* 967 */
-    PARROT_OP_concat_s_s_sc,                   /* 968 */
-    PARROT_OP_concat_p_p_s,                    /* 969 */
-    PARROT_OP_concat_p_p_sc,                   /* 970 */
-    PARROT_OP_concat_p_p_p,                    /* 971 */
-    PARROT_OP_repeat_s_s_i,                    /* 972 */
-    PARROT_OP_repeat_s_sc_i,                   /* 973 */
-    PARROT_OP_repeat_s_s_ic,                   /* 974 */
-    PARROT_OP_repeat_s_sc_ic,                  /* 975 */
-    PARROT_OP_repeat_p_p_i,                    /* 976 */
-    PARROT_OP_repeat_p_p_ic,                   /* 977 */
-    PARROT_OP_repeat_p_p_p,                    /* 978 */
-    PARROT_OP_repeat_p_i,                      /* 979 */
-    PARROT_OP_repeat_p_ic,                     /* 980 */
-    PARROT_OP_repeat_p_p,                      /* 981 */
-    PARROT_OP_length_i_s,                      /* 982 */
-    PARROT_OP_length_i_sc,                     /* 983 */
-    PARROT_OP_bytelength_i_s,                  /* 984 */
-    PARROT_OP_bytelength_i_sc,                 /* 985 */
-    PARROT_OP_pin_s,                           /* 986 */
-    PARROT_OP_unpin_s,                         /* 987 */
-    PARROT_OP_substr_s_s_i,                    /* 988 */
-    PARROT_OP_substr_s_sc_i,                   /* 989 */
-    PARROT_OP_substr_s_s_ic,                   /* 990 */
-    PARROT_OP_substr_s_sc_ic,                  /* 991 */
-    PARROT_OP_substr_s_s_i_i,                  /* 992 */
-    PARROT_OP_substr_s_sc_i_i,                 /* 993 */
-    PARROT_OP_substr_s_s_ic_i,                 /* 994 */
-    PARROT_OP_substr_s_sc_ic_i,                /* 995 */
-    PARROT_OP_substr_s_s_i_ic,                 /* 996 */
-    PARROT_OP_substr_s_sc_i_ic,                /* 997 */
-    PARROT_OP_substr_s_s_ic_ic,                /* 998 */
-    PARROT_OP_substr_s_sc_ic_ic,               /* 999 */
-    PARROT_OP_substr_s_p_i_i,                  /* 1000 */
-    PARROT_OP_substr_s_p_ic_i,                 /* 1001 */
-    PARROT_OP_substr_s_p_i_ic,                 /* 1002 */
-    PARROT_OP_substr_s_p_ic_ic,                /* 1003 */
-    PARROT_OP_replace_s_s_i_i_s,               /* 1004 */
-    PARROT_OP_replace_s_sc_i_i_s,              /* 1005 */
-    PARROT_OP_replace_s_s_ic_i_s,              /* 1006 */
-    PARROT_OP_replace_s_sc_ic_i_s,             /* 1007 */
-    PARROT_OP_replace_s_s_i_ic_s,              /* 1008 */
-    PARROT_OP_replace_s_sc_i_ic_s,             /* 1009 */
-    PARROT_OP_replace_s_s_ic_ic_s,             /* 1010 */
-    PARROT_OP_replace_s_sc_ic_ic_s,            /* 1011 */
-    PARROT_OP_replace_s_s_i_i_sc,              /* 1012 */
-    PARROT_OP_replace_s_sc_i_i_sc,             /* 1013 */
-    PARROT_OP_replace_s_s_ic_i_sc,             /* 1014 */
-    PARROT_OP_replace_s_sc_ic_i_sc,            /* 1015 */
-    PARROT_OP_replace_s_s_i_ic_sc,             /* 1016 */
-    PARROT_OP_replace_s_sc_i_ic_sc,            /* 1017 */
-    PARROT_OP_replace_s_s_ic_ic_sc,            /* 1018 */
-    PARROT_OP_replace_s_sc_ic_ic_sc,           /* 1019 */
-    PARROT_OP_index_i_s_s,                     /* 1020 */
-    PARROT_OP_index_i_sc_s,                    /* 1021 */
-    PARROT_OP_index_i_s_sc,                    /* 1022 */
-    PARROT_OP_index_i_sc_sc,                   /* 1023 */
-    PARROT_OP_index_i_s_s_i,                   /* 1024 */
-    PARROT_OP_index_i_sc_s_i,                  /* 1025 */
-    PARROT_OP_index_i_s_sc_i,                  /* 1026 */
-    PARROT_OP_index_i_sc_sc_i,                 /* 1027 */
-    PARROT_OP_index_i_s_s_ic,                  /* 1028 */
-    PARROT_OP_index_i_sc_s_ic,                 /* 1029 */
-    PARROT_OP_index_i_s_sc_ic,                 /* 1030 */
-    PARROT_OP_index_i_sc_sc_ic,                /* 1031 */
-    PARROT_OP_sprintf_s_s_p,                   /* 1032 */
-    PARROT_OP_sprintf_s_sc_p,                  /* 1033 */
-    PARROT_OP_sprintf_p_p_p,                   /* 1034 */
-    PARROT_OP_new_s,                           /* 1035 */
-    PARROT_OP_new_s_i,                         /* 1036 */
-    PARROT_OP_new_s_ic,                        /* 1037 */
-    PARROT_OP_stringinfo_i_s_i,                /* 1038 */
-    PARROT_OP_stringinfo_i_sc_i,               /* 1039 */
-    PARROT_OP_stringinfo_i_s_ic,               /* 1040 */
-    PARROT_OP_stringinfo_i_sc_ic,              /* 1041 */
-    PARROT_OP_upcase_s_s,                      /* 1042 */
-    PARROT_OP_upcase_s_sc,                     /* 1043 */
-    PARROT_OP_downcase_s_s,                    /* 1044 */
-    PARROT_OP_downcase_s_sc,                   /* 1045 */
-    PARROT_OP_titlecase_s_s,                   /* 1046 */
-    PARROT_OP_titlecase_s_sc,                  /* 1047 */
-    PARROT_OP_join_s_s_p,                      /* 1048 */
-    PARROT_OP_join_s_sc_p,                     /* 1049 */
-    PARROT_OP_split_p_s_s,                     /* 1050 */
-    PARROT_OP_split_p_sc_s,                    /* 1051 */
-    PARROT_OP_split_p_s_sc,                    /* 1052 */
-    PARROT_OP_split_p_sc_sc,                   /* 1053 */
-    PARROT_OP_charset_i_s,                     /* 1054 */
-    PARROT_OP_charset_i_sc,                    /* 1055 */
-    PARROT_OP_charsetname_s_i,                 /* 1056 */
-    PARROT_OP_charsetname_s_ic,                /* 1057 */
-    PARROT_OP_find_charset_i_s,                /* 1058 */
-    PARROT_OP_find_charset_i_sc,               /* 1059 */
-    PARROT_OP_trans_charset_s_s_i,             /* 1060 */
-    PARROT_OP_trans_charset_s_sc_i,            /* 1061 */
-    PARROT_OP_trans_charset_s_s_ic,            /* 1062 */
-    PARROT_OP_trans_charset_s_sc_ic,           /* 1063 */
-    PARROT_OP_encoding_i_s,                    /* 1064 */
-    PARROT_OP_encoding_i_sc,                   /* 1065 */
-    PARROT_OP_encodingname_s_i,                /* 1066 */
-    PARROT_OP_encodingname_s_ic,               /* 1067 */
-    PARROT_OP_find_encoding_i_s,               /* 1068 */
-    PARROT_OP_find_encoding_i_sc,              /* 1069 */
-    PARROT_OP_trans_encoding_s_s_i,            /* 1070 */
-    PARROT_OP_trans_encoding_s_sc_i,           /* 1071 */
-    PARROT_OP_trans_encoding_s_s_ic,           /* 1072 */
-    PARROT_OP_trans_encoding_s_sc_ic,          /* 1073 */
-    PARROT_OP_is_cclass_i_i_s_i,               /* 1074 */
-    PARROT_OP_is_cclass_i_ic_s_i,              /* 1075 */
-    PARROT_OP_is_cclass_i_i_sc_i,              /* 1076 */
-    PARROT_OP_is_cclass_i_ic_sc_i,             /* 1077 */
-    PARROT_OP_is_cclass_i_i_s_ic,              /* 1078 */
-    PARROT_OP_is_cclass_i_ic_s_ic,             /* 1079 */
-    PARROT_OP_is_cclass_i_i_sc_ic,             /* 1080 */
-    PARROT_OP_is_cclass_i_ic_sc_ic,            /* 1081 */
-    PARROT_OP_find_cclass_i_i_s_i_i,           /* 1082 */
-    PARROT_OP_find_cclass_i_ic_s_i_i,          /* 1083 */
-    PARROT_OP_find_cclass_i_i_sc_i_i,          /* 1084 */
-    PARROT_OP_find_cclass_i_ic_sc_i_i,         /* 1085 */
-    PARROT_OP_find_cclass_i_i_s_ic_i,          /* 1086 */
-    PARROT_OP_find_cclass_i_ic_s_ic_i,         /* 1087 */
-    PARROT_OP_find_cclass_i_i_sc_ic_i,         /* 1088 */
-    PARROT_OP_find_cclass_i_ic_sc_ic_i,        /* 1089 */
-    PARROT_OP_find_cclass_i_i_s_i_ic,          /* 1090 */
-    PARROT_OP_find_cclass_i_ic_s_i_ic,         /* 1091 */
-    PARROT_OP_find_cclass_i_i_sc_i_ic,         /* 1092 */
-    PARROT_OP_find_cclass_i_ic_sc_i_ic,        /* 1093 */
-    PARROT_OP_find_cclass_i_i_s_ic_ic,         /* 1094 */
-    PARROT_OP_find_cclass_i_ic_s_ic_ic,        /* 1095 */
-    PARROT_OP_find_cclass_i_i_sc_ic_ic,        /* 1096 */
-    PARROT_OP_find_cclass_i_ic_sc_ic_ic,       /* 1097 */
-    PARROT_OP_find_not_cclass_i_i_s_i_i,       /* 1098 */
-    PARROT_OP_find_not_cclass_i_ic_s_i_i,      /* 1099 */
-    PARROT_OP_find_not_cclass_i_i_sc_i_i,      /* 1100 */
-    PARROT_OP_find_not_cclass_i_ic_sc_i_i,     /* 1101 */
-    PARROT_OP_find_not_cclass_i_i_s_ic_i,      /* 1102 */
-    PARROT_OP_find_not_cclass_i_ic_s_ic_i,     /* 1103 */
-    PARROT_OP_find_not_cclass_i_i_sc_ic_i,     /* 1104 */
-    PARROT_OP_find_not_cclass_i_ic_sc_ic_i,    /* 1105 */
-    PARROT_OP_find_not_cclass_i_i_s_i_ic,      /* 1106 */
-    PARROT_OP_find_not_cclass_i_ic_s_i_ic,     /* 1107 */
-    PARROT_OP_find_not_cclass_i_i_sc_i_ic,     /* 1108 */
-    PARROT_OP_find_not_cclass_i_ic_sc_i_ic,    /* 1109 */
-    PARROT_OP_find_not_cclass_i_i_s_ic_ic,     /* 1110 */
-    PARROT_OP_find_not_cclass_i_ic_s_ic_ic,    /* 1111 */
-    PARROT_OP_find_not_cclass_i_i_sc_ic_ic,    /* 1112 */
-    PARROT_OP_find_not_cclass_i_ic_sc_ic_ic,   /* 1113 */
-    PARROT_OP_escape_s_s,                      /* 1114 */
-    PARROT_OP_compose_s_s,                     /* 1115 */
-    PARROT_OP_compose_s_sc,                    /* 1116 */
-    PARROT_OP_spawnw_i_s,                      /* 1117 */
-    PARROT_OP_spawnw_i_sc,                     /* 1118 */
-    PARROT_OP_spawnw_i_p,                      /* 1119 */
-    PARROT_OP_err_i,                           /* 1120 */
-    PARROT_OP_err_s,                           /* 1121 */
-    PARROT_OP_err_s_i,                         /* 1122 */
-    PARROT_OP_err_s_ic,                        /* 1123 */
-    PARROT_OP_time_i,                          /* 1124 */
-    PARROT_OP_time_n,                          /* 1125 */
-    PARROT_OP_gmtime_s_i,                      /* 1126 */
-    PARROT_OP_gmtime_s_ic,                     /* 1127 */
-    PARROT_OP_localtime_s_i,                   /* 1128 */
-    PARROT_OP_localtime_s_ic,                  /* 1129 */
-    PARROT_OP_decodetime_p_i,                  /* 1130 */
-    PARROT_OP_decodetime_p_ic,                 /* 1131 */
-    PARROT_OP_decodelocaltime_p_i,             /* 1132 */
-    PARROT_OP_decodelocaltime_p_ic,            /* 1133 */
-    PARROT_OP_sysinfo_s_i,                     /* 1134 */
-    PARROT_OP_sysinfo_s_ic,                    /* 1135 */
-    PARROT_OP_sysinfo_i_i,                     /* 1136 */
-    PARROT_OP_sysinfo_i_ic,                    /* 1137 */
-    PARROT_OP_sleep_i,                         /* 1138 */
-    PARROT_OP_sleep_ic,                        /* 1139 */
-    PARROT_OP_sleep_n,                         /* 1140 */
-    PARROT_OP_sleep_nc,                        /* 1141 */
-    PARROT_OP_store_lex_s_p,                   /* 1142 */
-    PARROT_OP_store_lex_sc_p,                  /* 1143 */
-    PARROT_OP_store_dynamic_lex_s_p,           /* 1144 */
-    PARROT_OP_store_dynamic_lex_sc_p,          /* 1145 */
-    PARROT_OP_find_lex_p_s,                    /* 1146 */
-    PARROT_OP_find_lex_p_sc,                   /* 1147 */
-    PARROT_OP_find_dynamic_lex_p_s,            /* 1148 */
-    PARROT_OP_find_dynamic_lex_p_sc,           /* 1149 */
-    PARROT_OP_find_caller_lex_p_s,             /* 1150 */
-    PARROT_OP_find_caller_lex_p_sc,            /* 1151 */
-    PARROT_OP_get_namespace_p,                 /* 1152 */
-    PARROT_OP_get_namespace_p_p,               /* 1153 */
-    PARROT_OP_get_namespace_p_pc,              /* 1154 */
-    PARROT_OP_get_hll_namespace_p,             /* 1155 */
-    PARROT_OP_get_hll_namespace_p_p,           /* 1156 */
-    PARROT_OP_get_hll_namespace_p_pc,          /* 1157 */
-    PARROT_OP_get_root_namespace_p,            /* 1158 */
-    PARROT_OP_get_root_namespace_p_p,          /* 1159 */
-    PARROT_OP_get_root_namespace_p_pc,         /* 1160 */
-    PARROT_OP_get_global_p_s,                  /* 1161 */
-    PARROT_OP_get_global_p_sc,                 /* 1162 */
-    PARROT_OP_get_global_p_p_s,                /* 1163 */
-    PARROT_OP_get_global_p_pc_s,               /* 1164 */
-    PARROT_OP_get_global_p_p_sc,               /* 1165 */
-    PARROT_OP_get_global_p_pc_sc,              /* 1166 */
-    PARROT_OP_get_hll_global_p_s,              /* 1167 */
-    PARROT_OP_get_hll_global_p_sc,             /* 1168 */
-    PARROT_OP_get_hll_global_p_p_s,            /* 1169 */
-    PARROT_OP_get_hll_global_p_pc_s,           /* 1170 */
-    PARROT_OP_get_hll_global_p_p_sc,           /* 1171 */
-    PARROT_OP_get_hll_global_p_pc_sc,          /* 1172 */
-    PARROT_OP_get_root_global_p_s,             /* 1173 */
-    PARROT_OP_get_root_global_p_sc,            /* 1174 */
-    PARROT_OP_get_root_global_p_p_s,           /* 1175 */
-    PARROT_OP_get_root_global_p_pc_s,          /* 1176 */
-    PARROT_OP_get_root_global_p_p_sc,          /* 1177 */
-    PARROT_OP_get_root_global_p_pc_sc,         /* 1178 */
-    PARROT_OP_set_global_s_p,                  /* 1179 */
-    PARROT_OP_set_global_sc_p,                 /* 1180 */
-    PARROT_OP_set_global_p_s_p,                /* 1181 */
-    PARROT_OP_set_global_pc_s_p,               /* 1182 */
-    PARROT_OP_set_global_p_sc_p,               /* 1183 */
-    PARROT_OP_set_global_pc_sc_p,              /* 1184 */
-    PARROT_OP_set_hll_global_s_p,              /* 1185 */
-    PARROT_OP_set_hll_global_sc_p,             /* 1186 */
-    PARROT_OP_set_hll_global_p_s_p,            /* 1187 */
-    PARROT_OP_set_hll_global_pc_s_p,           /* 1188 */
-    PARROT_OP_set_hll_global_p_sc_p,           /* 1189 */
-    PARROT_OP_set_hll_global_pc_sc_p,          /* 1190 */
-    PARROT_OP_set_root_global_s_p,             /* 1191 */
-    PARROT_OP_set_root_global_sc_p,            /* 1192 */
-    PARROT_OP_set_root_global_p_s_p,           /* 1193 */
-    PARROT_OP_set_root_global_pc_s_p,          /* 1194 */
-    PARROT_OP_set_root_global_p_sc_p,          /* 1195 */
-    PARROT_OP_set_root_global_pc_sc_p,         /* 1196 */
-    PARROT_OP_find_name_p_s,                   /* 1197 */
-    PARROT_OP_find_name_p_sc,                  /* 1198 */
-    PARROT_OP_find_sub_not_null_p_s,           /* 1199 */
-    PARROT_OP_find_sub_not_null_p_sc,          /* 1200 */
-    PARROT_OP_trap,                            /* 1201 */
-    PARROT_OP_set_label_p_ic,                  /* 1202 */
-    PARROT_OP_get_label_i_p,                   /* 1203 */
-    PARROT_OP_fetch_p_p_p_p,                   /* 1204 */
-    PARROT_OP_fetch_p_pc_p_p,                  /* 1205 */
-    PARROT_OP_fetch_p_p_pc_p,                  /* 1206 */
-    PARROT_OP_fetch_p_pc_pc_p,                 /* 1207 */
-    PARROT_OP_fetch_p_p_p_pc,                  /* 1208 */
-    PARROT_OP_fetch_p_pc_p_pc,                 /* 1209 */
-    PARROT_OP_fetch_p_p_pc_pc,                 /* 1210 */
-    PARROT_OP_fetch_p_pc_pc_pc,                /* 1211 */
-    PARROT_OP_fetch_p_p_i_p,                   /* 1212 */
-    PARROT_OP_fetch_p_pc_i_p,                  /* 1213 */
-    PARROT_OP_fetch_p_p_ic_p,                  /* 1214 */
-    PARROT_OP_fetch_p_pc_ic_p,                 /* 1215 */
-    PARROT_OP_fetch_p_p_i_pc,                  /* 1216 */
-    PARROT_OP_fetch_p_pc_i_pc,                 /* 1217 */
-    PARROT_OP_fetch_p_p_ic_pc,                 /* 1218 */
-    PARROT_OP_fetch_p_pc_ic_pc,                /* 1219 */
-    PARROT_OP_fetch_p_p_s_p,                   /* 1220 */
-    PARROT_OP_fetch_p_pc_s_p,                  /* 1221 */
-    PARROT_OP_fetch_p_p_sc_p,                  /* 1222 */
-    PARROT_OP_fetch_p_pc_sc_p,                 /* 1223 */
-    PARROT_OP_fetch_p_p_s_pc,                  /* 1224 */
-    PARROT_OP_fetch_p_pc_s_pc,                 /* 1225 */
-    PARROT_OP_fetch_p_p_sc_pc,                 /* 1226 */
-    PARROT_OP_fetch_p_pc_sc_pc,                /* 1227 */
-    PARROT_OP_vivify_p_p_p_p,                  /* 1228 */
-    PARROT_OP_vivify_p_pc_p_p,                 /* 1229 */
-    PARROT_OP_vivify_p_p_pc_p,                 /* 1230 */
-    PARROT_OP_vivify_p_pc_pc_p,                /* 1231 */
-    PARROT_OP_vivify_p_p_p_pc,                 /* 1232 */
-    PARROT_OP_vivify_p_pc_p_pc,                /* 1233 */
-    PARROT_OP_vivify_p_p_pc_pc,                /* 1234 */
-    PARROT_OP_vivify_p_pc_pc_pc,               /* 1235 */
-    PARROT_OP_vivify_p_p_i_p,                  /* 1236 */
-    PARROT_OP_vivify_p_pc_i_p,                 /* 1237 */
-    PARROT_OP_vivify_p_p_ic_p,                 /* 1238 */
-    PARROT_OP_vivify_p_pc_ic_p,                /* 1239 */
-    PARROT_OP_vivify_p_p_i_pc,                 /* 1240 */
-    PARROT_OP_vivify_p_pc_i_pc,                /* 1241 */
-    PARROT_OP_vivify_p_p_ic_pc,                /* 1242 */
-    PARROT_OP_vivify_p_pc_ic_pc,               /* 1243 */
-    PARROT_OP_vivify_p_p_s_p,                  /* 1244 */
-    PARROT_OP_vivify_p_pc_s_p,                 /* 1245 */
-    PARROT_OP_vivify_p_p_sc_p,                 /* 1246 */
-    PARROT_OP_vivify_p_pc_sc_p,                /* 1247 */
-    PARROT_OP_vivify_p_p_s_pc,                 /* 1248 */
-    PARROT_OP_vivify_p_pc_s_pc,                /* 1249 */
-    PARROT_OP_vivify_p_p_sc_pc,                /* 1250 */
-    PARROT_OP_vivify_p_pc_sc_pc,               /* 1251 */
-    PARROT_OP_new_p_s_i,                       /* 1252 */
-    PARROT_OP_new_p_sc_i,                      /* 1253 */
-    PARROT_OP_new_p_s_ic,                      /* 1254 */
-    PARROT_OP_new_p_sc_ic,                     /* 1255 */
-    PARROT_OP_new_p_p_i,                       /* 1256 */
-    PARROT_OP_new_p_pc_i,                      /* 1257 */
-    PARROT_OP_new_p_p_ic,                      /* 1258 */
-    PARROT_OP_new_p_pc_ic,                     /* 1259 */
-    PARROT_OP_root_new_p_p_i,                  /* 1260 */
-    PARROT_OP_root_new_p_pc_i,                 /* 1261 */
-    PARROT_OP_root_new_p_p_ic,                 /* 1262 */
-    PARROT_OP_root_new_p_pc_ic,                /* 1263 */
-    PARROT_OP_find_codepoint_i_s,              /* 1264 */
-    PARROT_OP_find_codepoint_i_sc,             /* 1265 */
-    PARROT_OP_finalize_p,                      /* 1266 */
-    PARROT_OP_finalize_pc                      /* 1267 */
+    PARROT_OP_band_i_i_i,                      /* 119 */
+    PARROT_OP_band_i_ic_i,                     /* 120 */
+    PARROT_OP_band_i_i_ic,                     /* 121 */
+    PARROT_OP_bor_i_i,                         /* 122 */
+    PARROT_OP_bor_i_ic,                        /* 123 */
+    PARROT_OP_bor_i_i_i,                       /* 124 */
+    PARROT_OP_bor_i_ic_i,                      /* 125 */
+    PARROT_OP_bor_i_i_ic,                      /* 126 */
+    PARROT_OP_shl_i_i,                         /* 127 */
+    PARROT_OP_shl_i_ic,                        /* 128 */
+    PARROT_OP_shl_i_i_i,                       /* 129 */
+    PARROT_OP_shl_i_ic_i,                      /* 130 */
+    PARROT_OP_shl_i_i_ic,                      /* 131 */
+    PARROT_OP_shr_i_i,                         /* 132 */
+    PARROT_OP_shr_i_ic,                        /* 133 */
+    PARROT_OP_shr_i_i_i,                       /* 134 */
+    PARROT_OP_shr_i_ic_i,                      /* 135 */
+    PARROT_OP_shr_i_i_ic,                      /* 136 */
+    PARROT_OP_lsr_i_i,                         /* 137 */
+    PARROT_OP_lsr_i_ic,                        /* 138 */
+    PARROT_OP_lsr_i_i_i,                       /* 139 */
+    PARROT_OP_lsr_i_ic_i,                      /* 140 */
+    PARROT_OP_lsr_i_i_ic,                      /* 141 */
+    PARROT_OP_bxor_i_i,                        /* 142 */
+    PARROT_OP_bxor_i_ic,                       /* 143 */
+    PARROT_OP_bxor_i_i_i,                      /* 144 */
+    PARROT_OP_bxor_i_ic_i,                     /* 145 */
+    PARROT_OP_bxor_i_i_ic,                     /* 146 */
+    PARROT_OP_eq_i_i_ic,                       /* 147 */
+    PARROT_OP_eq_ic_i_ic,                      /* 148 */
+    PARROT_OP_eq_i_ic_ic,                      /* 149 */
+    PARROT_OP_eq_n_n_ic,                       /* 150 */
+    PARROT_OP_eq_nc_n_ic,                      /* 151 */
+    PARROT_OP_eq_n_nc_ic,                      /* 152 */
+    PARROT_OP_eq_s_s_ic,                       /* 153 */
+    PARROT_OP_eq_sc_s_ic,                      /* 154 */
+    PARROT_OP_eq_s_sc_ic,                      /* 155 */
+    PARROT_OP_eq_p_p_ic,                       /* 156 */
+    PARROT_OP_eq_p_i_ic,                       /* 157 */
+    PARROT_OP_eq_p_ic_ic,                      /* 158 */
+    PARROT_OP_eq_p_n_ic,                       /* 159 */
+    PARROT_OP_eq_p_nc_ic,                      /* 160 */
+    PARROT_OP_eq_p_s_ic,                       /* 161 */
+    PARROT_OP_eq_p_sc_ic,                      /* 162 */
+    PARROT_OP_eq_str_p_p_ic,                   /* 163 */
+    PARROT_OP_eq_num_p_p_ic,                   /* 164 */
+    PARROT_OP_eq_addr_s_s_ic,                  /* 165 */
+    PARROT_OP_eq_addr_sc_s_ic,                 /* 166 */
+    PARROT_OP_eq_addr_s_sc_ic,                 /* 167 */
+    PARROT_OP_eq_addr_sc_sc_ic,                /* 168 */
+    PARROT_OP_eq_addr_p_p_ic,                  /* 169 */
+    PARROT_OP_ne_i_i_ic,                       /* 170 */
+    PARROT_OP_ne_ic_i_ic,                      /* 171 */
+    PARROT_OP_ne_i_ic_ic,                      /* 172 */
+    PARROT_OP_ne_n_n_ic,                       /* 173 */
+    PARROT_OP_ne_nc_n_ic,                      /* 174 */
+    PARROT_OP_ne_n_nc_ic,                      /* 175 */
+    PARROT_OP_ne_s_s_ic,                       /* 176 */
+    PARROT_OP_ne_sc_s_ic,                      /* 177 */
+    PARROT_OP_ne_s_sc_ic,                      /* 178 */
+    PARROT_OP_ne_p_p_ic,                       /* 179 */
+    PARROT_OP_ne_p_i_ic,                       /* 180 */
+    PARROT_OP_ne_p_ic_ic,                      /* 181 */
+    PARROT_OP_ne_p_n_ic,                       /* 182 */
+    PARROT_OP_ne_p_nc_ic,                      /* 183 */
+    PARROT_OP_ne_p_s_ic,                       /* 184 */
+    PARROT_OP_ne_p_sc_ic,                      /* 185 */
+    PARROT_OP_ne_str_p_p_ic,                   /* 186 */
+    PARROT_OP_ne_num_p_p_ic,                   /* 187 */
+    PARROT_OP_ne_addr_s_s_ic,                  /* 188 */
+    PARROT_OP_ne_addr_sc_s_ic,                 /* 189 */
+    PARROT_OP_ne_addr_s_sc_ic,                 /* 190 */
+    PARROT_OP_ne_addr_sc_sc_ic,                /* 191 */
+    PARROT_OP_ne_addr_p_p_ic,                  /* 192 */
+    PARROT_OP_lt_i_i_ic,                       /* 193 */
+    PARROT_OP_lt_ic_i_ic,                      /* 194 */
+    PARROT_OP_lt_i_ic_ic,                      /* 195 */
+    PARROT_OP_lt_n_n_ic,                       /* 196 */
+    PARROT_OP_lt_nc_n_ic,                      /* 197 */
+    PARROT_OP_lt_n_nc_ic,                      /* 198 */
+    PARROT_OP_lt_s_s_ic,                       /* 199 */
+    PARROT_OP_lt_sc_s_ic,                      /* 200 */
+    PARROT_OP_lt_s_sc_ic,                      /* 201 */
+    PARROT_OP_lt_p_p_ic,                       /* 202 */
+    PARROT_OP_lt_p_i_ic,                       /* 203 */
+    PARROT_OP_lt_p_ic_ic,                      /* 204 */
+    PARROT_OP_lt_p_n_ic,                       /* 205 */
+    PARROT_OP_lt_p_nc_ic,                      /* 206 */
+    PARROT_OP_lt_p_s_ic,                       /* 207 */
+    PARROT_OP_lt_p_sc_ic,                      /* 208 */
+    PARROT_OP_lt_str_p_p_ic,                   /* 209 */
+    PARROT_OP_lt_num_p_p_ic,                   /* 210 */
+    PARROT_OP_le_i_i_ic,                       /* 211 */
+    PARROT_OP_le_ic_i_ic,                      /* 212 */
+    PARROT_OP_le_i_ic_ic,                      /* 213 */
+    PARROT_OP_le_n_n_ic,                       /* 214 */
+    PARROT_OP_le_nc_n_ic,                      /* 215 */
+    PARROT_OP_le_n_nc_ic,                      /* 216 */
+    PARROT_OP_le_s_s_ic,                       /* 217 */
+    PARROT_OP_le_sc_s_ic,                      /* 218 */
+    PARROT_OP_le_s_sc_ic,                      /* 219 */
+    PARROT_OP_le_p_p_ic,                       /* 220 */
+    PARROT_OP_le_p_i_ic,                       /* 221 */
+    PARROT_OP_le_p_ic_ic,                      /* 222 */
+    PARROT_OP_le_p_n_ic,                       /* 223 */
+    PARROT_OP_le_p_nc_ic,                      /* 224 */
+    PARROT_OP_le_p_s_ic,                       /* 225 */
+    PARROT_OP_le_p_sc_ic,                      /* 226 */
+    PARROT_OP_le_str_p_p_ic,                   /* 227 */
+    PARROT_OP_le_num_p_p_ic,                   /* 228 */
+    PARROT_OP_gt_p_p_ic,                       /* 229 */
+    PARROT_OP_gt_p_i_ic,                       /* 230 */
+    PARROT_OP_gt_p_ic_ic,                      /* 231 */
+    PARROT_OP_gt_p_n_ic,                       /* 232 */
+    PARROT_OP_gt_p_nc_ic,                      /* 233 */
+    PARROT_OP_gt_p_s_ic,                       /* 234 */
+    PARROT_OP_gt_p_sc_ic,                      /* 235 */
+    PARROT_OP_gt_str_p_p_ic,                   /* 236 */
+    PARROT_OP_gt_num_p_p_ic,                   /* 237 */
+    PARROT_OP_ge_p_p_ic,                       /* 238 */
+    PARROT_OP_ge_p_i_ic,                       /* 239 */
+    PARROT_OP_ge_p_ic_ic,                      /* 240 */
+    PARROT_OP_ge_p_n_ic,                       /* 241 */
+    PARROT_OP_ge_p_nc_ic,                      /* 242 */
+    PARROT_OP_ge_p_s_ic,                       /* 243 */
+    PARROT_OP_ge_p_sc_ic,                      /* 244 */
+    PARROT_OP_ge_str_p_p_ic,                   /* 245 */
+    PARROT_OP_ge_num_p_p_ic,                   /* 246 */
+    PARROT_OP_if_null_p_ic,                    /* 247 */
+    PARROT_OP_if_null_s_ic,                    /* 248 */
+    PARROT_OP_unless_null_p_ic,                /* 249 */
+    PARROT_OP_unless_null_s_ic,                /* 250 */
+    PARROT_OP_cmp_i_i_i,                       /* 251 */
+    PARROT_OP_cmp_i_ic_i,                      /* 252 */
+    PARROT_OP_cmp_i_i_ic,                      /* 253 */
+    PARROT_OP_cmp_i_n_n,                       /* 254 */
+    PARROT_OP_cmp_i_nc_n,                      /* 255 */
+    PARROT_OP_cmp_i_n_nc,                      /* 256 */
+    PARROT_OP_cmp_i_s_s,                       /* 257 */
+    PARROT_OP_cmp_i_sc_s,                      /* 258 */
+    PARROT_OP_cmp_i_s_sc,                      /* 259 */
+    PARROT_OP_cmp_i_p_p,                       /* 260 */
+    PARROT_OP_cmp_i_p_i,                       /* 261 */
+    PARROT_OP_cmp_i_p_ic,                      /* 262 */
+    PARROT_OP_cmp_i_p_n,                       /* 263 */
+    PARROT_OP_cmp_i_p_nc,                      /* 264 */
+    PARROT_OP_cmp_i_p_s,                       /* 265 */
+    PARROT_OP_cmp_i_p_sc,                      /* 266 */
+    PARROT_OP_cmp_str_i_p_p,                   /* 267 */
+    PARROT_OP_cmp_num_i_p_p,                   /* 268 */
+    PARROT_OP_cmp_pmc_p_p_p,                   /* 269 */
+    PARROT_OP_issame_i_p_p,                    /* 270 */
+    PARROT_OP_issame_i_s_s,                    /* 271 */
+    PARROT_OP_issame_i_sc_s,                   /* 272 */
+    PARROT_OP_issame_i_s_sc,                   /* 273 */
+    PARROT_OP_issame_i_sc_sc,                  /* 274 */
+    PARROT_OP_isntsame_i_p_p,                  /* 275 */
+    PARROT_OP_isntsame_i_s_s,                  /* 276 */
+    PARROT_OP_isntsame_i_sc_s,                 /* 277 */
+    PARROT_OP_isntsame_i_s_sc,                 /* 278 */
+    PARROT_OP_isntsame_i_sc_sc,                /* 279 */
+    PARROT_OP_istrue_i_p,                      /* 280 */
+    PARROT_OP_isfalse_i_p,                     /* 281 */
+    PARROT_OP_isnull_i_p,                      /* 282 */
+    PARROT_OP_isnull_i_pc,                     /* 283 */
+    PARROT_OP_isnull_i_s,                      /* 284 */
+    PARROT_OP_isnull_i_sc,                     /* 285 */
+    PARROT_OP_isgt_i_p_p,                      /* 286 */
+    PARROT_OP_isge_i_p_p,                      /* 287 */
+    PARROT_OP_isle_i_i_i,                      /* 288 */
+    PARROT_OP_isle_i_ic_i,                     /* 289 */
+    PARROT_OP_isle_i_i_ic,                     /* 290 */
+    PARROT_OP_isle_i_n_n,                      /* 291 */
+    PARROT_OP_isle_i_nc_n,                     /* 292 */
+    PARROT_OP_isle_i_n_nc,                     /* 293 */
+    PARROT_OP_isle_i_s_s,                      /* 294 */
+    PARROT_OP_isle_i_sc_s,                     /* 295 */
+    PARROT_OP_isle_i_s_sc,                     /* 296 */
+    PARROT_OP_isle_i_p_p,                      /* 297 */
+    PARROT_OP_islt_i_i_i,                      /* 298 */
+    PARROT_OP_islt_i_ic_i,                     /* 299 */
+    PARROT_OP_islt_i_i_ic,                     /* 300 */
+    PARROT_OP_islt_i_n_n,                      /* 301 */
+    PARROT_OP_islt_i_nc_n,                     /* 302 */
+    PARROT_OP_islt_i_n_nc,                     /* 303 */
+    PARROT_OP_islt_i_s_s,                      /* 304 */
+    PARROT_OP_islt_i_sc_s,                     /* 305 */
+    PARROT_OP_islt_i_s_sc,                     /* 306 */
+    PARROT_OP_islt_i_p_p,                      /* 307 */
+    PARROT_OP_iseq_i_i_i,                      /* 308 */
+    PARROT_OP_iseq_i_ic_i,                     /* 309 */
+    PARROT_OP_iseq_i_i_ic,                     /* 310 */
+    PARROT_OP_iseq_i_n_n,                      /* 311 */
+    PARROT_OP_iseq_i_nc_n,                     /* 312 */
+    PARROT_OP_iseq_i_n_nc,                     /* 313 */
+    PARROT_OP_iseq_i_s_s,                      /* 314 */
+    PARROT_OP_iseq_i_sc_s,                     /* 315 */
+    PARROT_OP_iseq_i_s_sc,                     /* 316 */
+    PARROT_OP_iseq_i_p_p,                      /* 317 */
+    PARROT_OP_isne_i_i_i,                      /* 318 */
+    PARROT_OP_isne_i_ic_i,                     /* 319 */
+    PARROT_OP_isne_i_i_ic,                     /* 320 */
+    PARROT_OP_isne_i_n_n,                      /* 321 */
+    PARROT_OP_isne_i_nc_n,                     /* 322 */
+    PARROT_OP_isne_i_n_nc,                     /* 323 */
+    PARROT_OP_isne_i_s_s,                      /* 324 */
+    PARROT_OP_isne_i_sc_s,                     /* 325 */
+    PARROT_OP_isne_i_s_sc,                     /* 326 */
+    PARROT_OP_isne_i_p_p,                      /* 327 */
+    PARROT_OP_and_i_i_i,                       /* 328 */
+    PARROT_OP_and_i_ic_i,                      /* 329 */
+    PARROT_OP_and_i_i_ic,                      /* 330 */
+    PARROT_OP_and_p_p_p,                       /* 331 */
+    PARROT_OP_not_i,                           /* 332 */
+    PARROT_OP_not_i_i,                         /* 333 */
+    PARROT_OP_not_p,                           /* 334 */
+    PARROT_OP_not_p_p,                         /* 335 */
+    PARROT_OP_or_i_i_i,                        /* 336 */
+    PARROT_OP_or_i_ic_i,                       /* 337 */
+    PARROT_OP_or_i_i_ic,                       /* 338 */
+    PARROT_OP_or_p_p_p,                        /* 339 */
+    PARROT_OP_xor_i_i_i,                       /* 340 */
+    PARROT_OP_xor_i_ic_i,                      /* 341 */
+    PARROT_OP_xor_i_i_ic,                      /* 342 */
+    PARROT_OP_xor_p_p_p,                       /* 343 */
+    PARROT_OP_print_i,                         /* 344 */
+    PARROT_OP_print_ic,                        /* 345 */
+    PARROT_OP_print_n,                         /* 346 */
+    PARROT_OP_print_nc,                        /* 347 */
+    PARROT_OP_print_s,                         /* 348 */
+    PARROT_OP_print_sc,                        /* 349 */
+    PARROT_OP_print_p,                         /* 350 */
+    PARROT_OP_say_i,                           /* 351 */
+    PARROT_OP_say_ic,                          /* 352 */
+    PARROT_OP_say_n,                           /* 353 */
+    PARROT_OP_say_nc,                          /* 354 */
+    PARROT_OP_say_s,                           /* 355 */
+    PARROT_OP_say_sc,                          /* 356 */
+    PARROT_OP_say_p,                           /* 357 */
+    PARROT_OP_print_p_i,                       /* 358 */
+    PARROT_OP_print_p_ic,                      /* 359 */
+    PARROT_OP_print_p_n,                       /* 360 */
+    PARROT_OP_print_p_nc,                      /* 361 */
+    PARROT_OP_print_p_s,                       /* 362 */
+    PARROT_OP_print_p_sc,                      /* 363 */
+    PARROT_OP_print_p_p,                       /* 364 */
+    PARROT_OP_getstdin_p,                      /* 365 */
+    PARROT_OP_getstdout_p,                     /* 366 */
+    PARROT_OP_getstderr_p,                     /* 367 */
+    PARROT_OP_abs_i,                           /* 368 */
+    PARROT_OP_abs_n,                           /* 369 */
+    PARROT_OP_abs_i_i,                         /* 370 */
+    PARROT_OP_abs_n_n,                         /* 371 */
+    PARROT_OP_abs_p,                           /* 372 */
+    PARROT_OP_abs_p_p,                         /* 373 */
+    PARROT_OP_add_i_i,                         /* 374 */
+    PARROT_OP_add_i_ic,                        /* 375 */
+    PARROT_OP_add_n_n,                         /* 376 */
+    PARROT_OP_add_n_nc,                        /* 377 */
+    PARROT_OP_add_p_p,                         /* 378 */
+    PARROT_OP_add_p_i,                         /* 379 */
+    PARROT_OP_add_p_ic,                        /* 380 */
+    PARROT_OP_add_p_n,                         /* 381 */
+    PARROT_OP_add_p_nc,                        /* 382 */
+    PARROT_OP_add_i_i_i,                       /* 383 */
+    PARROT_OP_add_i_ic_i,                      /* 384 */
+    PARROT_OP_add_i_i_ic,                      /* 385 */
+    PARROT_OP_add_n_n_n,                       /* 386 */
+    PARROT_OP_add_n_nc_n,                      /* 387 */
+    PARROT_OP_add_n_n_nc,                      /* 388 */
+    PARROT_OP_add_p_p_p,                       /* 389 */
+    PARROT_OP_add_p_p_i,                       /* 390 */
+    PARROT_OP_add_p_p_ic,                      /* 391 */
+    PARROT_OP_add_p_p_n,                       /* 392 */
+    PARROT_OP_add_p_p_nc,                      /* 393 */
+    PARROT_OP_dec_i,                           /* 394 */
+    PARROT_OP_dec_n,                           /* 395 */
+    PARROT_OP_dec_p,                           /* 396 */
+    PARROT_OP_div_i_i,                         /* 397 */
+    PARROT_OP_div_i_ic,                        /* 398 */
+    PARROT_OP_div_n_n,                         /* 399 */
+    PARROT_OP_div_n_nc,                        /* 400 */
+    PARROT_OP_div_p_p,                         /* 401 */
+    PARROT_OP_div_p_i,                         /* 402 */
+    PARROT_OP_div_p_ic,                        /* 403 */
+    PARROT_OP_div_p_n,                         /* 404 */
+    PARROT_OP_div_p_nc,                        /* 405 */
+    PARROT_OP_div_i_i_i,                       /* 406 */
+    PARROT_OP_div_i_ic_i,                      /* 407 */
+    PARROT_OP_div_i_i_ic,                      /* 408 */
+    PARROT_OP_div_i_ic_ic,                     /* 409 */
+    PARROT_OP_div_n_n_n,                       /* 410 */
+    PARROT_OP_div_n_nc_n,                      /* 411 */
+    PARROT_OP_div_n_n_nc,                      /* 412 */
+    PARROT_OP_div_n_nc_nc,                     /* 413 */
+    PARROT_OP_div_p_p_p,                       /* 414 */
+    PARROT_OP_div_p_p_i,                       /* 415 */
+    PARROT_OP_div_p_p_ic,                      /* 416 */
+    PARROT_OP_div_p_p_n,                       /* 417 */
+    PARROT_OP_div_p_p_nc,                      /* 418 */
+    PARROT_OP_fdiv_i_i,                        /* 419 */
+    PARROT_OP_fdiv_i_ic,                       /* 420 */
+    PARROT_OP_fdiv_n_n,                        /* 421 */
+    PARROT_OP_fdiv_n_nc,                       /* 422 */
+    PARROT_OP_fdiv_p_p,                        /* 423 */
+    PARROT_OP_fdiv_p_i,                        /* 424 */
+    PARROT_OP_fdiv_p_ic,                       /* 425 */
+    PARROT_OP_fdiv_p_n,                        /* 426 */
+    PARROT_OP_fdiv_p_nc,                       /* 427 */
+    PARROT_OP_fdiv_i_i_i,                      /* 428 */
+    PARROT_OP_fdiv_i_ic_i,                     /* 429 */
+    PARROT_OP_fdiv_i_i_ic,                     /* 430 */
+    PARROT_OP_fdiv_n_n_n,                      /* 431 */
+    PARROT_OP_fdiv_n_nc_n,                     /* 432 */
+    PARROT_OP_fdiv_n_n_nc,                     /* 433 */
+    PARROT_OP_fdiv_p_p_p,                      /* 434 */
+    PARROT_OP_fdiv_p_p_i,                      /* 435 */
+    PARROT_OP_fdiv_p_p_ic,                     /* 436 */
+    PARROT_OP_fdiv_p_p_n,                      /* 437 */
+    PARROT_OP_fdiv_p_p_nc,                     /* 438 */
+    PARROT_OP_ceil_n,                          /* 439 */
+    PARROT_OP_ceil_i_n,                        /* 440 */
+    PARROT_OP_ceil_n_n,                        /* 441 */
+    PARROT_OP_floor_n,                         /* 442 */
+    PARROT_OP_floor_i_n,                       /* 443 */
+    PARROT_OP_floor_n_n,                       /* 444 */
+    PARROT_OP_inc_i,                           /* 445 */
+    PARROT_OP_inc_n,                           /* 446 */
+    PARROT_OP_inc_p,                           /* 447 */
+    PARROT_OP_mod_i_i,                         /* 448 */
+    PARROT_OP_mod_i_ic,                        /* 449 */
+    PARROT_OP_mod_n_n,                         /* 450 */
+    PARROT_OP_mod_n_nc,                        /* 451 */
+    PARROT_OP_mod_p_p,                         /* 452 */
+    PARROT_OP_mod_p_i,                         /* 453 */
+    PARROT_OP_mod_p_ic,                        /* 454 */
+    PARROT_OP_mod_p_n,                         /* 455 */
+    PARROT_OP_mod_p_nc,                        /* 456 */
+    PARROT_OP_mod_i_i_i,                       /* 457 */
+    PARROT_OP_mod_i_ic_i,                      /* 458 */
+    PARROT_OP_mod_i_i_ic,                      /* 459 */
+    PARROT_OP_mod_n_n_n,                       /* 460 */
+    PARROT_OP_mod_n_nc_n,                      /* 461 */
+    PARROT_OP_mod_n_n_nc,                      /* 462 */
+    PARROT_OP_mod_p_p_p,                       /* 463 */
+    PARROT_OP_mod_p_p_i,                       /* 464 */
+    PARROT_OP_mod_p_p_ic,                      /* 465 */
+    PARROT_OP_mod_p_p_n,                       /* 466 */
+    PARROT_OP_mod_p_p_nc,                      /* 467 */
+    PARROT_OP_mul_i_i,                         /* 468 */
+    PARROT_OP_mul_i_ic,                        /* 469 */
+    PARROT_OP_mul_n_n,                         /* 470 */
+    PARROT_OP_mul_n_nc,                        /* 471 */
+    PARROT_OP_mul_p_p,                         /* 472 */
+    PARROT_OP_mul_p_i,                         /* 473 */
+    PARROT_OP_mul_p_ic,                        /* 474 */
+    PARROT_OP_mul_p_n,                         /* 475 */
+    PARROT_OP_mul_p_nc,                        /* 476 */
+    PARROT_OP_mul_i_i_i,                       /* 477 */
+    PARROT_OP_mul_i_ic_i,                      /* 478 */
+    PARROT_OP_mul_i_i_ic,                      /* 479 */
+    PARROT_OP_mul_n_n_n,                       /* 480 */
+    PARROT_OP_mul_n_nc_n,                      /* 481 */
+    PARROT_OP_mul_n_n_nc,                      /* 482 */
+    PARROT_OP_mul_p_p_p,                       /* 483 */
+    PARROT_OP_mul_p_p_i,                       /* 484 */
+    PARROT_OP_mul_p_p_ic,                      /* 485 */
+    PARROT_OP_mul_p_p_n,                       /* 486 */
+    PARROT_OP_mul_p_p_nc,                      /* 487 */
+    PARROT_OP_neg_i,                           /* 488 */
+    PARROT_OP_neg_n,                           /* 489 */
+    PARROT_OP_neg_p,                           /* 490 */
+    PARROT_OP_neg_i_i,                         /* 491 */
+    PARROT_OP_neg_n_n,                         /* 492 */
+    PARROT_OP_neg_p_p,                         /* 493 */
+    PARROT_OP_sub_i_i,                         /* 494 */
+    PARROT_OP_sub_i_ic,                        /* 495 */
+    PARROT_OP_sub_n_n,                         /* 496 */
+    PARROT_OP_sub_n_nc,                        /* 497 */
+    PARROT_OP_sub_p_p,                         /* 498 */
+    PARROT_OP_sub_p_i,                         /* 499 */
+    PARROT_OP_sub_p_ic,                        /* 500 */
+    PARROT_OP_sub_p_n,                         /* 501 */
+    PARROT_OP_sub_p_nc,                        /* 502 */
+    PARROT_OP_sub_i_i_i,                       /* 503 */
+    PARROT_OP_sub_i_ic_i,                      /* 504 */
+    PARROT_OP_sub_i_i_ic,                      /* 505 */
+    PARROT_OP_sub_n_n_n,                       /* 506 */
+    PARROT_OP_sub_n_nc_n,                      /* 507 */
+    PARROT_OP_sub_n_n_nc,                      /* 508 */
+    PARROT_OP_sub_p_p_p,                       /* 509 */
+    PARROT_OP_sub_p_p_i,                       /* 510 */
+    PARROT_OP_sub_p_p_ic,                      /* 511 */
+    PARROT_OP_sub_p_p_n,                       /* 512 */
+    PARROT_OP_sub_p_p_nc,                      /* 513 */
+    PARROT_OP_sqrt_n_n,                        /* 514 */
+    PARROT_OP_callmethodcc_p_s,                /* 515 */
+    PARROT_OP_callmethodcc_p_sc,               /* 516 */
+    PARROT_OP_callmethodcc_p_p,                /* 517 */
+    PARROT_OP_callmethod_p_s_p,                /* 518 */
+    PARROT_OP_callmethod_p_sc_p,               /* 519 */
+    PARROT_OP_callmethod_p_p_p,                /* 520 */
+    PARROT_OP_tailcallmethod_p_s,              /* 521 */
+    PARROT_OP_tailcallmethod_p_sc,             /* 522 */
+    PARROT_OP_tailcallmethod_p_p,              /* 523 */
+    PARROT_OP_addmethod_p_s_p,                 /* 524 */
+    PARROT_OP_addmethod_p_sc_p,                /* 525 */
+    PARROT_OP_can_i_p_s,                       /* 526 */
+    PARROT_OP_can_i_p_sc,                      /* 527 */
+    PARROT_OP_does_i_p_s,                      /* 528 */
+    PARROT_OP_does_i_p_sc,                     /* 529 */
+    PARROT_OP_does_i_p_p,                      /* 530 */
+    PARROT_OP_does_i_p_pc,                     /* 531 */
+    PARROT_OP_isa_i_p_s,                       /* 532 */
+    PARROT_OP_isa_i_p_sc,                      /* 533 */
+    PARROT_OP_isa_i_p_p,                       /* 534 */
+    PARROT_OP_isa_i_p_pc,                      /* 535 */
+    PARROT_OP_newclass_p_s,                    /* 536 */
+    PARROT_OP_newclass_p_sc,                   /* 537 */
+    PARROT_OP_newclass_p_p,                    /* 538 */
+    PARROT_OP_newclass_p_pc,                   /* 539 */
+    PARROT_OP_subclass_p_p,                    /* 540 */
+    PARROT_OP_subclass_p_pc,                   /* 541 */
+    PARROT_OP_subclass_p_p_s,                  /* 542 */
+    PARROT_OP_subclass_p_pc_s,                 /* 543 */
+    PARROT_OP_subclass_p_p_sc,                 /* 544 */
+    PARROT_OP_subclass_p_pc_sc,                /* 545 */
+    PARROT_OP_subclass_p_p_p,                  /* 546 */
+    PARROT_OP_subclass_p_pc_p,                 /* 547 */
+    PARROT_OP_subclass_p_p_pc,                 /* 548 */
+    PARROT_OP_subclass_p_pc_pc,                /* 549 */
+    PARROT_OP_subclass_p_s,                    /* 550 */
+    PARROT_OP_subclass_p_sc,                   /* 551 */
+    PARROT_OP_subclass_p_s_s,                  /* 552 */
+    PARROT_OP_subclass_p_sc_s,                 /* 553 */
+    PARROT_OP_subclass_p_s_sc,                 /* 554 */
+    PARROT_OP_subclass_p_sc_sc,                /* 555 */
+    PARROT_OP_subclass_p_s_p,                  /* 556 */
+    PARROT_OP_subclass_p_sc_p,                 /* 557 */
+    PARROT_OP_subclass_p_s_pc,                 /* 558 */
+    PARROT_OP_subclass_p_sc_pc,                /* 559 */
+    PARROT_OP_get_class_p_s,                   /* 560 */
+    PARROT_OP_get_class_p_sc,                  /* 561 */
+    PARROT_OP_get_class_p_p,                   /* 562 */
+    PARROT_OP_get_class_p_pc,                  /* 563 */
+    PARROT_OP_class_p_p,                       /* 564 */
+    PARROT_OP_addparent_p_p,                   /* 565 */
+    PARROT_OP_removeparent_p_p,                /* 566 */
+    PARROT_OP_addrole_p_p,                     /* 567 */
+    PARROT_OP_addattribute_p_s,                /* 568 */
+    PARROT_OP_addattribute_p_sc,               /* 569 */
+    PARROT_OP_removeattribute_p_s,             /* 570 */
+    PARROT_OP_removeattribute_p_sc,            /* 571 */
+    PARROT_OP_getattribute_p_p_s,              /* 572 */
+    PARROT_OP_getattribute_p_p_sc,             /* 573 */
+    PARROT_OP_getattribute_p_p_p_s,            /* 574 */
+    PARROT_OP_getattribute_p_p_pc_s,           /* 575 */
+    PARROT_OP_getattribute_p_p_p_sc,           /* 576 */
+    PARROT_OP_getattribute_p_p_pc_sc,          /* 577 */
+    PARROT_OP_setattribute_p_s_p,              /* 578 */
+    PARROT_OP_setattribute_p_sc_p,             /* 579 */
+    PARROT_OP_setattribute_p_p_s_p,            /* 580 */
+    PARROT_OP_setattribute_p_pc_s_p,           /* 581 */
+    PARROT_OP_setattribute_p_p_sc_p,           /* 582 */
+    PARROT_OP_setattribute_p_pc_sc_p,          /* 583 */
+    PARROT_OP_inspect_p_p,                     /* 584 */
+    PARROT_OP_inspect_p_pc,                    /* 585 */
+    PARROT_OP_inspect_p_p_s,                   /* 586 */
+    PARROT_OP_inspect_p_pc_s,                  /* 587 */
+    PARROT_OP_inspect_p_p_sc,                  /* 588 */
+    PARROT_OP_inspect_p_pc_sc,                 /* 589 */
+    PARROT_OP_new_p_s,                         /* 590 */
+    PARROT_OP_new_p_sc,                        /* 591 */
+    PARROT_OP_new_p_s_p,                       /* 592 */
+    PARROT_OP_new_p_sc_p,                      /* 593 */
+    PARROT_OP_new_p_s_pc,                      /* 594 */
+    PARROT_OP_new_p_sc_pc,                     /* 595 */
+    PARROT_OP_new_p_p,                         /* 596 */
+    PARROT_OP_new_p_pc,                        /* 597 */
+    PARROT_OP_new_p_p_p,                       /* 598 */
+    PARROT_OP_new_p_pc_p,                      /* 599 */
+    PARROT_OP_new_p_p_pc,                      /* 600 */
+    PARROT_OP_new_p_pc_pc,                     /* 601 */
+    PARROT_OP_root_new_p_p,                    /* 602 */
+    PARROT_OP_root_new_p_pc,                   /* 603 */
+    PARROT_OP_root_new_p_p_p,                  /* 604 */
+    PARROT_OP_root_new_p_pc_p,                 /* 605 */
+    PARROT_OP_root_new_p_p_pc,                 /* 606 */
+    PARROT_OP_root_new_p_pc_pc,                /* 607 */
+    PARROT_OP_typeof_s_p,                      /* 608 */
+    PARROT_OP_typeof_p_p,                      /* 609 */
+    PARROT_OP_get_repr_s_p,                    /* 610 */
+    PARROT_OP_find_method_p_p_s,               /* 611 */
+    PARROT_OP_find_method_p_p_sc,              /* 612 */
+    PARROT_OP_defined_i_p,                     /* 613 */
+    PARROT_OP_defined_i_p_ki,                  /* 614 */
+    PARROT_OP_defined_i_p_kic,                 /* 615 */
+    PARROT_OP_defined_i_p_k,                   /* 616 */
+    PARROT_OP_defined_i_p_kc,                  /* 617 */
+    PARROT_OP_exists_i_p_ki,                   /* 618 */
+    PARROT_OP_exists_i_p_kic,                  /* 619 */
+    PARROT_OP_exists_i_p_k,                    /* 620 */
+    PARROT_OP_exists_i_p_kc,                   /* 621 */
+    PARROT_OP_delete_p_k,                      /* 622 */
+    PARROT_OP_delete_p_kc,                     /* 623 */
+    PARROT_OP_delete_p_ki,                     /* 624 */
+    PARROT_OP_delete_p_kic,                    /* 625 */
+    PARROT_OP_elements_i_p,                    /* 626 */
+    PARROT_OP_push_p_i,                        /* 627 */
+    PARROT_OP_push_p_ic,                       /* 628 */
+    PARROT_OP_push_p_n,                        /* 629 */
+    PARROT_OP_push_p_nc,                       /* 630 */
+    PARROT_OP_push_p_s,                        /* 631 */
+    PARROT_OP_push_p_sc,                       /* 632 */
+    PARROT_OP_push_p_p,                        /* 633 */
+    PARROT_OP_pop_i_p,                         /* 634 */
+    PARROT_OP_pop_n_p,                         /* 635 */
+    PARROT_OP_pop_s_p,                         /* 636 */
+    PARROT_OP_pop_p_p,                         /* 637 */
+    PARROT_OP_unshift_p_i,                     /* 638 */
+    PARROT_OP_unshift_p_ic,                    /* 639 */
+    PARROT_OP_unshift_p_n,                     /* 640 */
+    PARROT_OP_unshift_p_nc,                    /* 641 */
+    PARROT_OP_unshift_p_s,                     /* 642 */
+    PARROT_OP_unshift_p_sc,                    /* 643 */
+    PARROT_OP_unshift_p_p,                     /* 644 */
+    PARROT_OP_shift_i_p,                       /* 645 */
+    PARROT_OP_shift_n_p,                       /* 646 */
+    PARROT_OP_shift_s_p,                       /* 647 */
+    PARROT_OP_shift_p_p,                       /* 648 */
+    PARROT_OP_splice_p_p_i_i,                  /* 649 */
+    PARROT_OP_splice_p_p_ic_i,                 /* 650 */
+    PARROT_OP_splice_p_p_i_ic,                 /* 651 */
+    PARROT_OP_splice_p_p_ic_ic,                /* 652 */
+    PARROT_OP_setprop_p_s_p,                   /* 653 */
+    PARROT_OP_setprop_p_sc_p,                  /* 654 */
+    PARROT_OP_getprop_p_s_p,                   /* 655 */
+    PARROT_OP_getprop_p_sc_p,                  /* 656 */
+    PARROT_OP_delprop_p_s,                     /* 657 */
+    PARROT_OP_delprop_p_sc,                    /* 658 */
+    PARROT_OP_prophash_p_p,                    /* 659 */
+    PARROT_OP_freeze_s_p,                      /* 660 */
+    PARROT_OP_thaw_p_s,                        /* 661 */
+    PARROT_OP_thaw_p_sc,                       /* 662 */
+    PARROT_OP_add_multi_s_s_p,                 /* 663 */
+    PARROT_OP_add_multi_sc_s_p,                /* 664 */
+    PARROT_OP_add_multi_s_sc_p,                /* 665 */
+    PARROT_OP_add_multi_sc_sc_p,               /* 666 */
+    PARROT_OP_find_multi_p_s_s,                /* 667 */
+    PARROT_OP_find_multi_p_sc_s,               /* 668 */
+    PARROT_OP_find_multi_p_s_sc,               /* 669 */
+    PARROT_OP_find_multi_p_sc_sc,              /* 670 */
+    PARROT_OP_register_p,                      /* 671 */
+    PARROT_OP_unregister_p,                    /* 672 */
+    PARROT_OP_box_p_i,                         /* 673 */
+    PARROT_OP_box_p_ic,                        /* 674 */
+    PARROT_OP_box_p_n,                         /* 675 */
+    PARROT_OP_box_p_nc,                        /* 676 */
+    PARROT_OP_box_p_s,                         /* 677 */
+    PARROT_OP_box_p_sc,                        /* 678 */
+    PARROT_OP_iter_p_p,                        /* 679 */
+    PARROT_OP_morph_p_p,                       /* 680 */
+    PARROT_OP_morph_p_pc,                      /* 681 */
+    PARROT_OP_clone_s_s,                       /* 682 */
+    PARROT_OP_clone_s_sc,                      /* 683 */
+    PARROT_OP_set_i_i,                         /* 684 */
+    PARROT_OP_set_i_ic,                        /* 685 */
+    PARROT_OP_set_i_n,                         /* 686 */
+    PARROT_OP_set_i_nc,                        /* 687 */
+    PARROT_OP_set_i_s,                         /* 688 */
+    PARROT_OP_set_i_sc,                        /* 689 */
+    PARROT_OP_set_n_n,                         /* 690 */
+    PARROT_OP_set_n_nc,                        /* 691 */
+    PARROT_OP_set_n_i,                         /* 692 */
+    PARROT_OP_set_n_ic,                        /* 693 */
+    PARROT_OP_set_n_s,                         /* 694 */
+    PARROT_OP_set_n_sc,                        /* 695 */
+    PARROT_OP_set_n_p,                         /* 696 */
+    PARROT_OP_set_s_p,                         /* 697 */
+    PARROT_OP_set_s_s,                         /* 698 */
+    PARROT_OP_set_s_sc,                        /* 699 */
+    PARROT_OP_set_s_i,                         /* 700 */
+    PARROT_OP_set_s_ic,                        /* 701 */
+    PARROT_OP_set_s_n,                         /* 702 */
+    PARROT_OP_set_s_nc,                        /* 703 */
+    PARROT_OP_set_p_pc,                        /* 704 */
+    PARROT_OP_set_p_p,                         /* 705 */
+    PARROT_OP_set_p_i,                         /* 706 */
+    PARROT_OP_set_p_ic,                        /* 707 */
+    PARROT_OP_set_p_n,                         /* 708 */
+    PARROT_OP_set_p_nc,                        /* 709 */
+    PARROT_OP_set_p_s,                         /* 710 */
+    PARROT_OP_set_p_sc,                        /* 711 */
+    PARROT_OP_set_i_p,                         /* 712 */
+    PARROT_OP_assign_p_p,                      /* 713 */
+    PARROT_OP_assign_p_i,                      /* 714 */
+    PARROT_OP_assign_p_ic,                     /* 715 */
+    PARROT_OP_assign_p_n,                      /* 716 */
+    PARROT_OP_assign_p_nc,                     /* 717 */
+    PARROT_OP_assign_p_s,                      /* 718 */
+    PARROT_OP_assign_p_sc,                     /* 719 */
+    PARROT_OP_assign_s_s,                      /* 720 */
+    PARROT_OP_assign_s_sc,                     /* 721 */
+    PARROT_OP_setref_p_p,                      /* 722 */
+    PARROT_OP_deref_p_p,                       /* 723 */
+    PARROT_OP_set_p_ki_i,                      /* 724 */
+    PARROT_OP_set_p_kic_i,                     /* 725 */
+    PARROT_OP_set_p_ki_ic,                     /* 726 */
+    PARROT_OP_set_p_kic_ic,                    /* 727 */
+    PARROT_OP_set_p_ki_n,                      /* 728 */
+    PARROT_OP_set_p_kic_n,                     /* 729 */
+    PARROT_OP_set_p_ki_nc,                     /* 730 */
+    PARROT_OP_set_p_kic_nc,                    /* 731 */
+    PARROT_OP_set_p_ki_s,                      /* 732 */
+    PARROT_OP_set_p_kic_s,                     /* 733 */
+    PARROT_OP_set_p_ki_sc,                     /* 734 */
+    PARROT_OP_set_p_kic_sc,                    /* 735 */
+    PARROT_OP_set_p_ki_p,                      /* 736 */
+    PARROT_OP_set_p_kic_p,                     /* 737 */
+    PARROT_OP_set_i_p_ki,                      /* 738 */
+    PARROT_OP_set_i_p_kic,                     /* 739 */
+    PARROT_OP_set_n_p_ki,                      /* 740 */
+    PARROT_OP_set_n_p_kic,                     /* 741 */
+    PARROT_OP_set_s_p_ki,                      /* 742 */
+    PARROT_OP_set_s_p_kic,                     /* 743 */
+    PARROT_OP_set_p_p_ki,                      /* 744 */
+    PARROT_OP_set_p_p_kic,                     /* 745 */
+    PARROT_OP_set_p_k_i,                       /* 746 */
+    PARROT_OP_set_p_kc_i,                      /* 747 */
+    PARROT_OP_set_p_k_ic,                      /* 748 */
+    PARROT_OP_set_p_kc_ic,                     /* 749 */
+    PARROT_OP_set_p_k_n,                       /* 750 */
+    PARROT_OP_set_p_kc_n,                      /* 751 */
+    PARROT_OP_set_p_k_nc,                      /* 752 */
+    PARROT_OP_set_p_kc_nc,                     /* 753 */
+    PARROT_OP_set_p_k_s,                       /* 754 */
+    PARROT_OP_set_p_kc_s,                      /* 755 */
+    PARROT_OP_set_p_k_sc,                      /* 756 */
+    PARROT_OP_set_p_kc_sc,                     /* 757 */
+    PARROT_OP_set_p_k_p,                       /* 758 */
+    PARROT_OP_set_p_kc_p,                      /* 759 */
+    PARROT_OP_set_i_p_k,                       /* 760 */
+    PARROT_OP_set_i_p_kc,                      /* 761 */
+    PARROT_OP_set_n_p_k,                       /* 762 */
+    PARROT_OP_set_n_p_kc,                      /* 763 */
+    PARROT_OP_set_s_p_k,                       /* 764 */
+    PARROT_OP_set_s_p_kc,                      /* 765 */
+    PARROT_OP_set_p_p_k,                       /* 766 */
+    PARROT_OP_set_p_p_kc,                      /* 767 */
+    PARROT_OP_clone_p_p,                       /* 768 */
+    PARROT_OP_clone_p_p_p,                     /* 769 */
+    PARROT_OP_clone_p_p_pc,                    /* 770 */
+    PARROT_OP_copy_p_p,                        /* 771 */
+    PARROT_OP_null_s,                          /* 772 */
+    PARROT_OP_null_i,                          /* 773 */
+    PARROT_OP_null_p,                          /* 774 */
+    PARROT_OP_null_n,                          /* 775 */
+    PARROT_OP_ord_i_s,                         /* 776 */
+    PARROT_OP_ord_i_sc,                        /* 777 */
+    PARROT_OP_ord_i_s_i,                       /* 778 */
+    PARROT_OP_ord_i_sc_i,                      /* 779 */
+    PARROT_OP_ord_i_s_ic,                      /* 780 */
+    PARROT_OP_ord_i_sc_ic,                     /* 781 */
+    PARROT_OP_chr_s_i,                         /* 782 */
+    PARROT_OP_chr_s_ic,                        /* 783 */
+    PARROT_OP_chopn_s_s_i,                     /* 784 */
+    PARROT_OP_chopn_s_sc_i,                    /* 785 */
+    PARROT_OP_chopn_s_s_ic,                    /* 786 */
+    PARROT_OP_chopn_s_sc_ic,                   /* 787 */
+    PARROT_OP_concat_s_s,                      /* 788 */
+    PARROT_OP_concat_s_sc,                     /* 789 */
+    PARROT_OP_concat_p_p,                      /* 790 */
+    PARROT_OP_concat_p_s,                      /* 791 */
+    PARROT_OP_concat_p_sc,                     /* 792 */
+    PARROT_OP_concat_s_s_s,                    /* 793 */
+    PARROT_OP_concat_s_sc_s,                   /* 794 */
+    PARROT_OP_concat_s_s_sc,                   /* 795 */
+    PARROT_OP_concat_p_p_s,                    /* 796 */
+    PARROT_OP_concat_p_p_sc,                   /* 797 */
+    PARROT_OP_concat_p_p_p,                    /* 798 */
+    PARROT_OP_repeat_s_s_i,                    /* 799 */
+    PARROT_OP_repeat_s_sc_i,                   /* 800 */
+    PARROT_OP_repeat_s_s_ic,                   /* 801 */
+    PARROT_OP_repeat_s_sc_ic,                  /* 802 */
+    PARROT_OP_repeat_p_p_i,                    /* 803 */
+    PARROT_OP_repeat_p_p_ic,                   /* 804 */
+    PARROT_OP_repeat_p_p_p,                    /* 805 */
+    PARROT_OP_repeat_p_i,                      /* 806 */
+    PARROT_OP_repeat_p_ic,                     /* 807 */
+    PARROT_OP_repeat_p_p,                      /* 808 */
+    PARROT_OP_length_i_s,                      /* 809 */
+    PARROT_OP_length_i_sc,                     /* 810 */
+    PARROT_OP_bytelength_i_s,                  /* 811 */
+    PARROT_OP_bytelength_i_sc,                 /* 812 */
+    PARROT_OP_pin_s,                           /* 813 */
+    PARROT_OP_unpin_s,                         /* 814 */
+    PARROT_OP_substr_s_s_i,                    /* 815 */
+    PARROT_OP_substr_s_sc_i,                   /* 816 */
+    PARROT_OP_substr_s_s_ic,                   /* 817 */
+    PARROT_OP_substr_s_sc_ic,                  /* 818 */
+    PARROT_OP_substr_s_s_i_i,                  /* 819 */
+    PARROT_OP_substr_s_sc_i_i,                 /* 820 */
+    PARROT_OP_substr_s_s_ic_i,                 /* 821 */
+    PARROT_OP_substr_s_sc_ic_i,                /* 822 */
+    PARROT_OP_substr_s_s_i_ic,                 /* 823 */
+    PARROT_OP_substr_s_sc_i_ic,                /* 824 */
+    PARROT_OP_substr_s_s_ic_ic,                /* 825 */
+    PARROT_OP_substr_s_sc_ic_ic,               /* 826 */
+    PARROT_OP_substr_s_p_i_i,                  /* 827 */
+    PARROT_OP_substr_s_p_ic_i,                 /* 828 */
+    PARROT_OP_substr_s_p_i_ic,                 /* 829 */
+    PARROT_OP_substr_s_p_ic_ic,                /* 830 */
+    PARROT_OP_replace_s_s_i_i_s,               /* 831 */
+    PARROT_OP_replace_s_sc_i_i_s,              /* 832 */
+    PARROT_OP_replace_s_s_ic_i_s,              /* 833 */
+    PARROT_OP_replace_s_sc_ic_i_s,             /* 834 */
+    PARROT_OP_replace_s_s_i_ic_s,              /* 835 */
+    PARROT_OP_replace_s_sc_i_ic_s,             /* 836 */
+    PARROT_OP_replace_s_s_ic_ic_s,             /* 837 */
+    PARROT_OP_replace_s_sc_ic_ic_s,            /* 838 */
+    PARROT_OP_replace_s_s_i_i_sc,              /* 839 */
+    PARROT_OP_replace_s_sc_i_i_sc,             /* 840 */
+    PARROT_OP_replace_s_s_ic_i_sc,             /* 841 */
+    PARROT_OP_replace_s_sc_ic_i_sc,            /* 842 */
+    PARROT_OP_replace_s_s_i_ic_sc,             /* 843 */
+    PARROT_OP_replace_s_sc_i_ic_sc,            /* 844 */
+    PARROT_OP_replace_s_s_ic_ic_sc,            /* 845 */
+    PARROT_OP_replace_s_sc_ic_ic_sc,           /* 846 */
+    PARROT_OP_index_i_s_s,                     /* 847 */
+    PARROT_OP_index_i_sc_s,                    /* 848 */
+    PARROT_OP_index_i_s_sc,                    /* 849 */
+    PARROT_OP_index_i_sc_sc,                   /* 850 */
+    PARROT_OP_index_i_s_s_i,                   /* 851 */
+    PARROT_OP_index_i_sc_s_i,                  /* 852 */
+    PARROT_OP_index_i_s_sc_i,                  /* 853 */
+    PARROT_OP_index_i_sc_sc_i,                 /* 854 */
+    PARROT_OP_index_i_s_s_ic,                  /* 855 */
+    PARROT_OP_index_i_sc_s_ic,                 /* 856 */
+    PARROT_OP_index_i_s_sc_ic,                 /* 857 */
+    PARROT_OP_index_i_sc_sc_ic,                /* 858 */
+    PARROT_OP_sprintf_s_s_p,                   /* 859 */
+    PARROT_OP_sprintf_s_sc_p,                  /* 860 */
+    PARROT_OP_sprintf_p_p_p,                   /* 861 */
+    PARROT_OP_new_s,                           /* 862 */
+    PARROT_OP_new_s_i,                         /* 863 */
+    PARROT_OP_new_s_ic,                        /* 864 */
+    PARROT_OP_stringinfo_i_s_i,                /* 865 */
+    PARROT_OP_stringinfo_i_sc_i,               /* 866 */
+    PARROT_OP_stringinfo_i_s_ic,               /* 867 */
+    PARROT_OP_stringinfo_i_sc_ic,              /* 868 */
+    PARROT_OP_upcase_s_s,                      /* 869 */
+    PARROT_OP_upcase_s_sc,                     /* 870 */
+    PARROT_OP_downcase_s_s,                    /* 871 */
+    PARROT_OP_downcase_s_sc,                   /* 872 */
+    PARROT_OP_titlecase_s_s,                   /* 873 */
+    PARROT_OP_titlecase_s_sc,                  /* 874 */
+    PARROT_OP_join_s_s_p,                      /* 875 */
+    PARROT_OP_join_s_sc_p,                     /* 876 */
+    PARROT_OP_split_p_s_s,                     /* 877 */
+    PARROT_OP_split_p_sc_s,                    /* 878 */
+    PARROT_OP_split_p_s_sc,                    /* 879 */
+    PARROT_OP_split_p_sc_sc,                   /* 880 */
+    PARROT_OP_charset_i_s,                     /* 881 */
+    PARROT_OP_charset_i_sc,                    /* 882 */
+    PARROT_OP_charsetname_s_i,                 /* 883 */
+    PARROT_OP_charsetname_s_ic,                /* 884 */
+    PARROT_OP_find_charset_i_s,                /* 885 */
+    PARROT_OP_find_charset_i_sc,               /* 886 */
+    PARROT_OP_trans_charset_s_s_i,             /* 887 */
+    PARROT_OP_trans_charset_s_sc_i,            /* 888 */
+    PARROT_OP_trans_charset_s_s_ic,            /* 889 */
+    PARROT_OP_trans_charset_s_sc_ic,           /* 890 */
+    PARROT_OP_encoding_i_s,                    /* 891 */
+    PARROT_OP_encoding_i_sc,                   /* 892 */
+    PARROT_OP_encodingname_s_i,                /* 893 */
+    PARROT_OP_encodingname_s_ic,               /* 894 */
+    PARROT_OP_find_encoding_i_s,               /* 895 */
+    PARROT_OP_find_encoding_i_sc,              /* 896 */
+    PARROT_OP_trans_encoding_s_s_i,            /* 897 */
+    PARROT_OP_trans_encoding_s_sc_i,           /* 898 */
+    PARROT_OP_trans_encoding_s_s_ic,           /* 899 */
+    PARROT_OP_trans_encoding_s_sc_ic,          /* 900 */
+    PARROT_OP_is_cclass_i_i_s_i,               /* 901 */
+    PARROT_OP_is_cclass_i_ic_s_i,              /* 902 */
+    PARROT_OP_is_cclass_i_i_sc_i,              /* 903 */
+    PARROT_OP_is_cclass_i_ic_sc_i,             /* 904 */
+    PARROT_OP_is_cclass_i_i_s_ic,              /* 905 */
+    PARROT_OP_is_cclass_i_ic_s_ic,             /* 906 */
+    PARROT_OP_is_cclass_i_i_sc_ic,             /* 907 */
+    PARROT_OP_is_cclass_i_ic_sc_ic,            /* 908 */
+    PARROT_OP_find_cclass_i_i_s_i_i,           /* 909 */
+    PARROT_OP_find_cclass_i_ic_s_i_i,          /* 910 */
+    PARROT_OP_find_cclass_i_i_sc_i_i,          /* 911 */
+    PARROT_OP_find_cclass_i_ic_sc_i_i,         /* 912 */
+    PARROT_OP_find_cclass_i_i_s_ic_i,          /* 913 */
+    PARROT_OP_find_cclass_i_ic_s_ic_i,         /* 914 */
+    PARROT_OP_find_cclass_i_i_sc_ic_i,         /* 915 */
+    PARROT_OP_find_cclass_i_ic_sc_ic_i,        /* 916 */
+    PARROT_OP_find_cclass_i_i_s_i_ic,          /* 917 */
+    PARROT_OP_find_cclass_i_ic_s_i_ic,         /* 918 */
+    PARROT_OP_find_cclass_i_i_sc_i_ic,         /* 919 */
+    PARROT_OP_find_cclass_i_ic_sc_i_ic,        /* 920 */
+    PARROT_OP_find_cclass_i_i_s_ic_ic,         /* 921 */
+    PARROT_OP_find_cclass_i_ic_s_ic_ic,        /* 922 */
+    PARROT_OP_find_cclass_i_i_sc_ic_ic,        /* 923 */
+    PARROT_OP_find_cclass_i_ic_sc_ic_ic,       /* 924 */
+    PARROT_OP_find_not_cclass_i_i_s_i_i,       /* 925 */
+    PARROT_OP_find_not_cclass_i_ic_s_i_i,      /* 926 */
+    PARROT_OP_find_not_cclass_i_i_sc_i_i,      /* 927 */
+    PARROT_OP_find_not_cclass_i_ic_sc_i_i,     /* 928 */
+    PARROT_OP_find_not_cclass_i_i_s_ic_i,      /* 929 */
+    PARROT_OP_find_not_cclass_i_ic_s_ic_i,     /* 930 */
+    PARROT_OP_find_not_cclass_i_i_sc_ic_i,     /* 931 */
+    PARROT_OP_find_not_cclass_i_ic_sc_ic_i,    /* 932 */
+    PARROT_OP_find_not_cclass_i_i_s_i_ic,      /* 933 */
+    PARROT_OP_find_not_cclass_i_ic_s_i_ic,     /* 934 */
+    PARROT_OP_find_not_cclass_i_i_sc_i_ic,     /* 935 */
+    PARROT_OP_find_not_cclass_i_ic_sc_i_ic,    /* 936 */
+    PARROT_OP_find_not_cclass_i_i_s_ic_ic,     /* 937 */
+    PARROT_OP_find_not_cclass_i_ic_s_ic_ic,    /* 938 */
+    PARROT_OP_find_not_cclass_i_i_sc_ic_ic,    /* 939 */
+    PARROT_OP_find_not_cclass_i_ic_sc_ic_ic,   /* 940 */
+    PARROT_OP_escape_s_s,                      /* 941 */
+    PARROT_OP_compose_s_s,                     /* 942 */
+    PARROT_OP_compose_s_sc,                    /* 943 */
+    PARROT_OP_spawnw_i_s,                      /* 944 */
+    PARROT_OP_spawnw_i_sc,                     /* 945 */
+    PARROT_OP_spawnw_i_p,                      /* 946 */
+    PARROT_OP_err_i,                           /* 947 */
+    PARROT_OP_err_s,                           /* 948 */
+    PARROT_OP_err_s_i,                         /* 949 */
+    PARROT_OP_err_s_ic,                        /* 950 */
+    PARROT_OP_time_i,                          /* 951 */
+    PARROT_OP_time_n,                          /* 952 */
+    PARROT_OP_sleep_i,                         /* 953 */
+    PARROT_OP_sleep_ic,                        /* 954 */
+    PARROT_OP_sleep_n,                         /* 955 */
+    PARROT_OP_sleep_nc,                        /* 956 */
+    PARROT_OP_store_lex_s_p,                   /* 957 */
+    PARROT_OP_store_lex_sc_p,                  /* 958 */
+    PARROT_OP_store_dynamic_lex_s_p,           /* 959 */
+    PARROT_OP_store_dynamic_lex_sc_p,          /* 960 */
+    PARROT_OP_find_lex_p_s,                    /* 961 */
+    PARROT_OP_find_lex_p_sc,                   /* 962 */
+    PARROT_OP_find_dynamic_lex_p_s,            /* 963 */
+    PARROT_OP_find_dynamic_lex_p_sc,           /* 964 */
+    PARROT_OP_find_caller_lex_p_s,             /* 965 */
+    PARROT_OP_find_caller_lex_p_sc,            /* 966 */
+    PARROT_OP_get_namespace_p,                 /* 967 */
+    PARROT_OP_get_namespace_p_p,               /* 968 */
+    PARROT_OP_get_namespace_p_pc,              /* 969 */
+    PARROT_OP_get_hll_namespace_p,             /* 970 */
+    PARROT_OP_get_hll_namespace_p_p,           /* 971 */
+    PARROT_OP_get_hll_namespace_p_pc,          /* 972 */
+    PARROT_OP_get_root_namespace_p,            /* 973 */
+    PARROT_OP_get_root_namespace_p_p,          /* 974 */
+    PARROT_OP_get_root_namespace_p_pc,         /* 975 */
+    PARROT_OP_get_global_p_s,                  /* 976 */
+    PARROT_OP_get_global_p_sc,                 /* 977 */
+    PARROT_OP_get_global_p_p_s,                /* 978 */
+    PARROT_OP_get_global_p_pc_s,               /* 979 */
+    PARROT_OP_get_global_p_p_sc,               /* 980 */
+    PARROT_OP_get_global_p_pc_sc,              /* 981 */
+    PARROT_OP_get_hll_global_p_s,              /* 982 */
+    PARROT_OP_get_hll_global_p_sc,             /* 983 */
+    PARROT_OP_get_hll_global_p_p_s,            /* 984 */
+    PARROT_OP_get_hll_global_p_pc_s,           /* 985 */
+    PARROT_OP_get_hll_global_p_p_sc,           /* 986 */
+    PARROT_OP_get_hll_global_p_pc_sc,          /* 987 */
+    PARROT_OP_get_root_global_p_s,             /* 988 */
+    PARROT_OP_get_root_global_p_sc,            /* 989 */
+    PARROT_OP_get_root_global_p_p_s,           /* 990 */
+    PARROT_OP_get_root_global_p_pc_s,          /* 991 */
+    PARROT_OP_get_root_global_p_p_sc,          /* 992 */
+    PARROT_OP_get_root_global_p_pc_sc,         /* 993 */
+    PARROT_OP_set_global_s_p,                  /* 994 */
+    PARROT_OP_set_global_sc_p,                 /* 995 */
+    PARROT_OP_set_global_p_s_p,                /* 996 */
+    PARROT_OP_set_global_pc_s_p,               /* 997 */
+    PARROT_OP_set_global_p_sc_p,               /* 998 */
+    PARROT_OP_set_global_pc_sc_p,              /* 999 */
+    PARROT_OP_set_hll_global_s_p,              /* 1000 */
+    PARROT_OP_set_hll_global_sc_p,             /* 1001 */
+    PARROT_OP_set_hll_global_p_s_p,            /* 1002 */
+    PARROT_OP_set_hll_global_pc_s_p,           /* 1003 */
+    PARROT_OP_set_hll_global_p_sc_p,           /* 1004 */
+    PARROT_OP_set_hll_global_pc_sc_p,          /* 1005 */
+    PARROT_OP_set_root_global_s_p,             /* 1006 */
+    PARROT_OP_set_root_global_sc_p,            /* 1007 */
+    PARROT_OP_set_root_global_p_s_p,           /* 1008 */
+    PARROT_OP_set_root_global_pc_s_p,          /* 1009 */
+    PARROT_OP_set_root_global_p_sc_p,          /* 1010 */
+    PARROT_OP_set_root_global_pc_sc_p,         /* 1011 */
+    PARROT_OP_find_name_p_s,                   /* 1012 */
+    PARROT_OP_find_name_p_sc,                  /* 1013 */
+    PARROT_OP_find_sub_not_null_p_s,           /* 1014 */
+    PARROT_OP_find_sub_not_null_p_sc,          /* 1015 */
+    PARROT_OP_trap,                            /* 1016 */
+    PARROT_OP_set_label_p_ic,                  /* 1017 */
+    PARROT_OP_get_label_i_p,                   /* 1018 */
+    PARROT_OP_fetch_p_p_p_p,                   /* 1019 */
+    PARROT_OP_fetch_p_pc_p_p,                  /* 1020 */
+    PARROT_OP_fetch_p_p_pc_p,                  /* 1021 */
+    PARROT_OP_fetch_p_pc_pc_p,                 /* 1022 */
+    PARROT_OP_fetch_p_p_p_pc,                  /* 1023 */
+    PARROT_OP_fetch_p_pc_p_pc,                 /* 1024 */
+    PARROT_OP_fetch_p_p_pc_pc,                 /* 1025 */
+    PARROT_OP_fetch_p_pc_pc_pc,                /* 1026 */
+    PARROT_OP_fetch_p_p_i_p,                   /* 1027 */
+    PARROT_OP_fetch_p_pc_i_p,                  /* 1028 */
+    PARROT_OP_fetch_p_p_ic_p,                  /* 1029 */
+    PARROT_OP_fetch_p_pc_ic_p,                 /* 1030 */
+    PARROT_OP_fetch_p_p_i_pc,                  /* 1031 */
+    PARROT_OP_fetch_p_pc_i_pc,                 /* 1032 */
+    PARROT_OP_fetch_p_p_ic_pc,                 /* 1033 */
+    PARROT_OP_fetch_p_pc_ic_pc,                /* 1034 */
+    PARROT_OP_fetch_p_p_s_p,                   /* 1035 */
+    PARROT_OP_fetch_p_pc_s_p,                  /* 1036 */
+    PARROT_OP_fetch_p_p_sc_p,                  /* 1037 */
+    PARROT_OP_fetch_p_pc_sc_p,                 /* 1038 */
+    PARROT_OP_fetch_p_p_s_pc,                  /* 1039 */
+    PARROT_OP_fetch_p_pc_s_pc,                 /* 1040 */
+    PARROT_OP_fetch_p_p_sc_pc,                 /* 1041 */
+    PARROT_OP_fetch_p_pc_sc_pc,                /* 1042 */
+    PARROT_OP_vivify_p_p_p_p,                  /* 1043 */
+    PARROT_OP_vivify_p_pc_p_p,                 /* 1044 */
+    PARROT_OP_vivify_p_p_pc_p,                 /* 1045 */
+    PARROT_OP_vivify_p_pc_pc_p,                /* 1046 */
+    PARROT_OP_vivify_p_p_p_pc,                 /* 1047 */
+    PARROT_OP_vivify_p_pc_p_pc,                /* 1048 */
+    PARROT_OP_vivify_p_p_pc_pc,                /* 1049 */
+    PARROT_OP_vivify_p_pc_pc_pc,               /* 1050 */
+    PARROT_OP_vivify_p_p_i_p,                  /* 1051 */
+    PARROT_OP_vivify_p_pc_i_p,                 /* 1052 */
+    PARROT_OP_vivify_p_p_ic_p,                 /* 1053 */
+    PARROT_OP_vivify_p_pc_ic_p,                /* 1054 */
+    PARROT_OP_vivify_p_p_i_pc,                 /* 1055 */
+    PARROT_OP_vivify_p_pc_i_pc,                /* 1056 */
+    PARROT_OP_vivify_p_p_ic_pc,                /* 1057 */
+    PARROT_OP_vivify_p_pc_ic_pc,               /* 1058 */
+    PARROT_OP_vivify_p_p_s_p,                  /* 1059 */
+    PARROT_OP_vivify_p_pc_s_p,                 /* 1060 */
+    PARROT_OP_vivify_p_p_sc_p,                 /* 1061 */
+    PARROT_OP_vivify_p_pc_sc_p,                /* 1062 */
+    PARROT_OP_vivify_p_p_s_pc,                 /* 1063 */
+    PARROT_OP_vivify_p_pc_s_pc,                /* 1064 */
+    PARROT_OP_vivify_p_p_sc_pc,                /* 1065 */
+    PARROT_OP_vivify_p_pc_sc_pc,               /* 1066 */
+    PARROT_OP_new_p_s_i,                       /* 1067 */
+    PARROT_OP_new_p_sc_i,                      /* 1068 */
+    PARROT_OP_new_p_s_ic,                      /* 1069 */
+    PARROT_OP_new_p_sc_ic,                     /* 1070 */
+    PARROT_OP_new_p_p_i,                       /* 1071 */
+    PARROT_OP_new_p_pc_i,                      /* 1072 */
+    PARROT_OP_new_p_p_ic,                      /* 1073 */
+    PARROT_OP_new_p_pc_ic,                     /* 1074 */
+    PARROT_OP_root_new_p_p_i,                  /* 1075 */
+    PARROT_OP_root_new_p_pc_i,                 /* 1076 */
+    PARROT_OP_root_new_p_p_ic,                 /* 1077 */
+    PARROT_OP_root_new_p_pc_ic,                /* 1078 */
+    PARROT_OP_find_codepoint_i_s,              /* 1079 */
+    PARROT_OP_find_codepoint_i_sc,             /* 1080 */
+    PARROT_OP_finalize_p,                      /* 1081 */
+    PARROT_OP_finalize_pc                      /* 1082 */
 
 } parrot_opcode_enums;
 

Modified: branches/gsoc_nfg/include/parrot/opsenum.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/opsenum.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/opsenum.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -11,7 +11,8 @@
  * This file is generated automatically from 'src/ops/core.ops' (and possibly other
  * .ops files). by ops2c.nqp.
  *
- * Any changes made here will be lost!
+ * Any changes made here will be lost!  To regenerate this file after making
+ * changes to any ops, use the bootstap-ops makefile target.
  *
  */
 enum OPS_ENUM {
@@ -134,1155 +135,970 @@
     enum_ops_annotations_p_sc              =  116,
     enum_ops_band_i_i                      =  117,
     enum_ops_band_i_ic                     =  118,
-    enum_ops_band_p_i                      =  119,
-    enum_ops_band_p_ic                     =  120,
-    enum_ops_band_p_p                      =  121,
-    enum_ops_band_i_i_i                    =  122,
-    enum_ops_band_i_ic_i                   =  123,
-    enum_ops_band_i_i_ic                   =  124,
-    enum_ops_band_p_p_i                    =  125,
-    enum_ops_band_p_p_ic                   =  126,
-    enum_ops_band_p_p_p                    =  127,
-    enum_ops_bands_p_s                     =  128,
-    enum_ops_bands_p_sc                    =  129,
-    enum_ops_bands_p_p                     =  130,
-    enum_ops_bands_s_s_s                   =  131,
-    enum_ops_bands_s_sc_s                  =  132,
-    enum_ops_bands_s_s_sc                  =  133,
-    enum_ops_bands_p_p_s                   =  134,
-    enum_ops_bands_p_p_sc                  =  135,
-    enum_ops_bands_p_p_p                   =  136,
-    enum_ops_bnot_i                        =  137,
-    enum_ops_bnot_i_i                      =  138,
-    enum_ops_bnot_p                        =  139,
-    enum_ops_bnot_p_p                      =  140,
-    enum_ops_bnots_s_s                     =  141,
-    enum_ops_bnots_s_sc                    =  142,
-    enum_ops_bnots_p                       =  143,
-    enum_ops_bnots_p_p                     =  144,
-    enum_ops_bor_i_i                       =  145,
-    enum_ops_bor_i_ic                      =  146,
-    enum_ops_bor_p_i                       =  147,
-    enum_ops_bor_p_ic                      =  148,
-    enum_ops_bor_p_p                       =  149,
-    enum_ops_bor_i_i_i                     =  150,
-    enum_ops_bor_i_ic_i                    =  151,
-    enum_ops_bor_i_i_ic                    =  152,
-    enum_ops_bor_p_p_i                     =  153,
-    enum_ops_bor_p_p_ic                    =  154,
-    enum_ops_bor_p_p_p                     =  155,
-    enum_ops_bors_p_s                      =  156,
-    enum_ops_bors_p_sc                     =  157,
-    enum_ops_bors_p_p                      =  158,
-    enum_ops_bors_s_s_s                    =  159,
-    enum_ops_bors_s_sc_s                   =  160,
-    enum_ops_bors_s_s_sc                   =  161,
-    enum_ops_bors_p_p_s                    =  162,
-    enum_ops_bors_p_p_sc                   =  163,
-    enum_ops_bors_p_p_p                    =  164,
-    enum_ops_shl_i_i                       =  165,
-    enum_ops_shl_i_ic                      =  166,
-    enum_ops_shl_p_i                       =  167,
-    enum_ops_shl_p_ic                      =  168,
-    enum_ops_shl_p_p                       =  169,
-    enum_ops_shl_i_i_i                     =  170,
-    enum_ops_shl_i_ic_i                    =  171,
-    enum_ops_shl_i_i_ic                    =  172,
-    enum_ops_shl_p_p_i                     =  173,
-    enum_ops_shl_p_p_ic                    =  174,
-    enum_ops_shl_p_p_p                     =  175,
-    enum_ops_shr_i_i                       =  176,
-    enum_ops_shr_i_ic                      =  177,
-    enum_ops_shr_p_i                       =  178,
-    enum_ops_shr_p_ic                      =  179,
-    enum_ops_shr_p_p                       =  180,
-    enum_ops_shr_i_i_i                     =  181,
-    enum_ops_shr_i_ic_i                    =  182,
-    enum_ops_shr_i_i_ic                    =  183,
-    enum_ops_shr_p_p_i                     =  184,
-    enum_ops_shr_p_p_ic                    =  185,
-    enum_ops_shr_p_p_p                     =  186,
-    enum_ops_lsr_i_i                       =  187,
-    enum_ops_lsr_i_ic                      =  188,
-    enum_ops_lsr_p_i                       =  189,
-    enum_ops_lsr_p_ic                      =  190,
-    enum_ops_lsr_p_p                       =  191,
-    enum_ops_lsr_i_i_i                     =  192,
-    enum_ops_lsr_i_ic_i                    =  193,
-    enum_ops_lsr_i_i_ic                    =  194,
-    enum_ops_lsr_p_p_i                     =  195,
-    enum_ops_lsr_p_p_ic                    =  196,
-    enum_ops_lsr_p_p_p                     =  197,
-    enum_ops_rot_i_i_i_ic                  =  198,
-    enum_ops_rot_i_ic_i_ic                 =  199,
-    enum_ops_rot_i_i_ic_ic                 =  200,
-    enum_ops_bxor_i_i                      =  201,
-    enum_ops_bxor_i_ic                     =  202,
-    enum_ops_bxor_p_i                      =  203,
-    enum_ops_bxor_p_ic                     =  204,
-    enum_ops_bxor_p_p                      =  205,
-    enum_ops_bxor_i_i_i                    =  206,
-    enum_ops_bxor_i_ic_i                   =  207,
-    enum_ops_bxor_i_i_ic                   =  208,
-    enum_ops_bxor_p_p_i                    =  209,
-    enum_ops_bxor_p_p_ic                   =  210,
-    enum_ops_bxor_p_p_p                    =  211,
-    enum_ops_bxors_p_s                     =  212,
-    enum_ops_bxors_p_sc                    =  213,
-    enum_ops_bxors_p_p                     =  214,
-    enum_ops_bxors_s_s_s                   =  215,
-    enum_ops_bxors_s_sc_s                  =  216,
-    enum_ops_bxors_s_s_sc                  =  217,
-    enum_ops_bxors_p_p_s                   =  218,
-    enum_ops_bxors_p_p_sc                  =  219,
-    enum_ops_bxors_p_p_p                   =  220,
-    enum_ops_eq_i_i_ic                     =  221,
-    enum_ops_eq_ic_i_ic                    =  222,
-    enum_ops_eq_i_ic_ic                    =  223,
-    enum_ops_eq_n_n_ic                     =  224,
-    enum_ops_eq_nc_n_ic                    =  225,
-    enum_ops_eq_n_nc_ic                    =  226,
-    enum_ops_eq_s_s_ic                     =  227,
-    enum_ops_eq_sc_s_ic                    =  228,
-    enum_ops_eq_s_sc_ic                    =  229,
-    enum_ops_eq_p_p_ic                     =  230,
-    enum_ops_eq_p_i_ic                     =  231,
-    enum_ops_eq_p_ic_ic                    =  232,
-    enum_ops_eq_p_n_ic                     =  233,
-    enum_ops_eq_p_nc_ic                    =  234,
-    enum_ops_eq_p_s_ic                     =  235,
-    enum_ops_eq_p_sc_ic                    =  236,
-    enum_ops_eq_str_p_p_ic                 =  237,
-    enum_ops_eq_num_p_p_ic                 =  238,
-    enum_ops_eq_addr_s_s_ic                =  239,
-    enum_ops_eq_addr_sc_s_ic               =  240,
-    enum_ops_eq_addr_s_sc_ic               =  241,
-    enum_ops_eq_addr_sc_sc_ic              =  242,
-    enum_ops_eq_addr_p_p_ic                =  243,
-    enum_ops_ne_i_i_ic                     =  244,
-    enum_ops_ne_ic_i_ic                    =  245,
-    enum_ops_ne_i_ic_ic                    =  246,
-    enum_ops_ne_n_n_ic                     =  247,
-    enum_ops_ne_nc_n_ic                    =  248,
-    enum_ops_ne_n_nc_ic                    =  249,
-    enum_ops_ne_s_s_ic                     =  250,
-    enum_ops_ne_sc_s_ic                    =  251,
-    enum_ops_ne_s_sc_ic                    =  252,
-    enum_ops_ne_p_p_ic                     =  253,
-    enum_ops_ne_p_i_ic                     =  254,
-    enum_ops_ne_p_ic_ic                    =  255,
-    enum_ops_ne_p_n_ic                     =  256,
-    enum_ops_ne_p_nc_ic                    =  257,
-    enum_ops_ne_p_s_ic                     =  258,
-    enum_ops_ne_p_sc_ic                    =  259,
-    enum_ops_ne_str_p_p_ic                 =  260,
-    enum_ops_ne_num_p_p_ic                 =  261,
-    enum_ops_ne_addr_s_s_ic                =  262,
-    enum_ops_ne_addr_sc_s_ic               =  263,
-    enum_ops_ne_addr_s_sc_ic               =  264,
-    enum_ops_ne_addr_sc_sc_ic              =  265,
-    enum_ops_ne_addr_p_p_ic                =  266,
-    enum_ops_lt_i_i_ic                     =  267,
-    enum_ops_lt_ic_i_ic                    =  268,
-    enum_ops_lt_i_ic_ic                    =  269,
-    enum_ops_lt_n_n_ic                     =  270,
-    enum_ops_lt_nc_n_ic                    =  271,
-    enum_ops_lt_n_nc_ic                    =  272,
-    enum_ops_lt_s_s_ic                     =  273,
-    enum_ops_lt_sc_s_ic                    =  274,
-    enum_ops_lt_s_sc_ic                    =  275,
-    enum_ops_lt_p_p_ic                     =  276,
-    enum_ops_lt_p_i_ic                     =  277,
-    enum_ops_lt_p_ic_ic                    =  278,
-    enum_ops_lt_p_n_ic                     =  279,
-    enum_ops_lt_p_nc_ic                    =  280,
-    enum_ops_lt_p_s_ic                     =  281,
-    enum_ops_lt_p_sc_ic                    =  282,
-    enum_ops_lt_str_p_p_ic                 =  283,
-    enum_ops_lt_num_p_p_ic                 =  284,
-    enum_ops_le_i_i_ic                     =  285,
-    enum_ops_le_ic_i_ic                    =  286,
-    enum_ops_le_i_ic_ic                    =  287,
-    enum_ops_le_n_n_ic                     =  288,
-    enum_ops_le_nc_n_ic                    =  289,
-    enum_ops_le_n_nc_ic                    =  290,
-    enum_ops_le_s_s_ic                     =  291,
-    enum_ops_le_sc_s_ic                    =  292,
-    enum_ops_le_s_sc_ic                    =  293,
-    enum_ops_le_p_p_ic                     =  294,
-    enum_ops_le_p_i_ic                     =  295,
-    enum_ops_le_p_ic_ic                    =  296,
-    enum_ops_le_p_n_ic                     =  297,
-    enum_ops_le_p_nc_ic                    =  298,
-    enum_ops_le_p_s_ic                     =  299,
-    enum_ops_le_p_sc_ic                    =  300,
-    enum_ops_le_str_p_p_ic                 =  301,
-    enum_ops_le_num_p_p_ic                 =  302,
-    enum_ops_gt_p_p_ic                     =  303,
-    enum_ops_gt_p_i_ic                     =  304,
-    enum_ops_gt_p_ic_ic                    =  305,
-    enum_ops_gt_p_n_ic                     =  306,
-    enum_ops_gt_p_nc_ic                    =  307,
-    enum_ops_gt_p_s_ic                     =  308,
-    enum_ops_gt_p_sc_ic                    =  309,
-    enum_ops_gt_str_p_p_ic                 =  310,
-    enum_ops_gt_num_p_p_ic                 =  311,
-    enum_ops_ge_p_p_ic                     =  312,
-    enum_ops_ge_p_i_ic                     =  313,
-    enum_ops_ge_p_ic_ic                    =  314,
-    enum_ops_ge_p_n_ic                     =  315,
-    enum_ops_ge_p_nc_ic                    =  316,
-    enum_ops_ge_p_s_ic                     =  317,
-    enum_ops_ge_p_sc_ic                    =  318,
-    enum_ops_ge_str_p_p_ic                 =  319,
-    enum_ops_ge_num_p_p_ic                 =  320,
-    enum_ops_if_null_p_ic                  =  321,
-    enum_ops_if_null_s_ic                  =  322,
-    enum_ops_unless_null_p_ic              =  323,
-    enum_ops_unless_null_s_ic              =  324,
-    enum_ops_cmp_i_i_i                     =  325,
-    enum_ops_cmp_i_ic_i                    =  326,
-    enum_ops_cmp_i_i_ic                    =  327,
-    enum_ops_cmp_i_n_n                     =  328,
-    enum_ops_cmp_i_nc_n                    =  329,
-    enum_ops_cmp_i_n_nc                    =  330,
-    enum_ops_cmp_i_s_s                     =  331,
-    enum_ops_cmp_i_sc_s                    =  332,
-    enum_ops_cmp_i_s_sc                    =  333,
-    enum_ops_cmp_i_p_p                     =  334,
-    enum_ops_cmp_i_p_i                     =  335,
-    enum_ops_cmp_i_p_ic                    =  336,
-    enum_ops_cmp_i_p_n                     =  337,
-    enum_ops_cmp_i_p_nc                    =  338,
-    enum_ops_cmp_i_p_s                     =  339,
-    enum_ops_cmp_i_p_sc                    =  340,
-    enum_ops_cmp_str_i_p_p                 =  341,
-    enum_ops_cmp_num_i_p_p                 =  342,
-    enum_ops_cmp_pmc_p_p_p                 =  343,
-    enum_ops_issame_i_p_p                  =  344,
-    enum_ops_issame_i_s_s                  =  345,
-    enum_ops_issame_i_sc_s                 =  346,
-    enum_ops_issame_i_s_sc                 =  347,
-    enum_ops_issame_i_sc_sc                =  348,
-    enum_ops_isntsame_i_p_p                =  349,
-    enum_ops_isntsame_i_s_s                =  350,
-    enum_ops_isntsame_i_sc_s               =  351,
-    enum_ops_isntsame_i_s_sc               =  352,
-    enum_ops_isntsame_i_sc_sc              =  353,
-    enum_ops_istrue_i_p                    =  354,
-    enum_ops_isfalse_i_p                   =  355,
-    enum_ops_isnull_i_p                    =  356,
-    enum_ops_isnull_i_pc                   =  357,
-    enum_ops_isnull_i_s                    =  358,
-    enum_ops_isnull_i_sc                   =  359,
-    enum_ops_isgt_i_p_p                    =  360,
-    enum_ops_isge_i_p_p                    =  361,
-    enum_ops_isle_i_i_i                    =  362,
-    enum_ops_isle_i_ic_i                   =  363,
-    enum_ops_isle_i_i_ic                   =  364,
-    enum_ops_isle_i_n_n                    =  365,
-    enum_ops_isle_i_nc_n                   =  366,
-    enum_ops_isle_i_n_nc                   =  367,
-    enum_ops_isle_i_s_s                    =  368,
-    enum_ops_isle_i_sc_s                   =  369,
-    enum_ops_isle_i_s_sc                   =  370,
-    enum_ops_isle_i_p_p                    =  371,
-    enum_ops_islt_i_i_i                    =  372,
-    enum_ops_islt_i_ic_i                   =  373,
-    enum_ops_islt_i_i_ic                   =  374,
-    enum_ops_islt_i_n_n                    =  375,
-    enum_ops_islt_i_nc_n                   =  376,
-    enum_ops_islt_i_n_nc                   =  377,
-    enum_ops_islt_i_s_s                    =  378,
-    enum_ops_islt_i_sc_s                   =  379,
-    enum_ops_islt_i_s_sc                   =  380,
-    enum_ops_islt_i_p_p                    =  381,
-    enum_ops_iseq_i_i_i                    =  382,
-    enum_ops_iseq_i_ic_i                   =  383,
-    enum_ops_iseq_i_i_ic                   =  384,
-    enum_ops_iseq_i_n_n                    =  385,
-    enum_ops_iseq_i_nc_n                   =  386,
-    enum_ops_iseq_i_n_nc                   =  387,
-    enum_ops_iseq_i_s_s                    =  388,
-    enum_ops_iseq_i_sc_s                   =  389,
-    enum_ops_iseq_i_s_sc                   =  390,
-    enum_ops_iseq_i_p_p                    =  391,
-    enum_ops_isne_i_i_i                    =  392,
-    enum_ops_isne_i_ic_i                   =  393,
-    enum_ops_isne_i_i_ic                   =  394,
-    enum_ops_isne_i_n_n                    =  395,
-    enum_ops_isne_i_nc_n                   =  396,
-    enum_ops_isne_i_n_nc                   =  397,
-    enum_ops_isne_i_s_s                    =  398,
-    enum_ops_isne_i_sc_s                   =  399,
-    enum_ops_isne_i_s_sc                   =  400,
-    enum_ops_isne_i_p_p                    =  401,
-    enum_ops_and_i_i_i                     =  402,
-    enum_ops_and_i_ic_i                    =  403,
-    enum_ops_and_i_i_ic                    =  404,
-    enum_ops_and_p_p_p                     =  405,
-    enum_ops_not_i                         =  406,
-    enum_ops_not_i_i                       =  407,
-    enum_ops_not_p                         =  408,
-    enum_ops_not_p_p                       =  409,
-    enum_ops_or_i_i_i                      =  410,
-    enum_ops_or_i_ic_i                     =  411,
-    enum_ops_or_i_i_ic                     =  412,
-    enum_ops_or_p_p_p                      =  413,
-    enum_ops_xor_i_i_i                     =  414,
-    enum_ops_xor_i_ic_i                    =  415,
-    enum_ops_xor_i_i_ic                    =  416,
-    enum_ops_xor_p_p_p                     =  417,
-    enum_ops_debug_init                    =  418,
-    enum_ops_debug_load_sc                 =  419,
-    enum_ops_debug_break                   =  420,
-    enum_ops_debug_print                   =  421,
-    enum_ops_backtrace                     =  422,
-    enum_ops_getline_i                     =  423,
-    enum_ops_getfile_s                     =  424,
-    enum_ops_close_p                       =  425,
-    enum_ops_fdopen_p_i_s                  =  426,
-    enum_ops_fdopen_p_ic_s                 =  427,
-    enum_ops_fdopen_p_i_sc                 =  428,
-    enum_ops_fdopen_p_ic_sc                =  429,
-    enum_ops_getstdin_p                    =  430,
-    enum_ops_getstdout_p                   =  431,
-    enum_ops_getstderr_p                   =  432,
-    enum_ops_setstdin_p                    =  433,
-    enum_ops_setstdout_p                   =  434,
-    enum_ops_setstderr_p                   =  435,
-    enum_ops_open_p_s_s                    =  436,
-    enum_ops_open_p_sc_s                   =  437,
-    enum_ops_open_p_s_sc                   =  438,
-    enum_ops_open_p_sc_sc                  =  439,
-    enum_ops_open_p_s                      =  440,
-    enum_ops_open_p_sc                     =  441,
-    enum_ops_print_i                       =  442,
-    enum_ops_print_ic                      =  443,
-    enum_ops_print_n                       =  444,
-    enum_ops_print_nc                      =  445,
-    enum_ops_print_s                       =  446,
-    enum_ops_print_sc                      =  447,
-    enum_ops_print_p                       =  448,
-    enum_ops_say_i                         =  449,
-    enum_ops_say_ic                        =  450,
-    enum_ops_say_n                         =  451,
-    enum_ops_say_nc                        =  452,
-    enum_ops_say_s                         =  453,
-    enum_ops_say_sc                        =  454,
-    enum_ops_say_p                         =  455,
-    enum_ops_printerr_i                    =  456,
-    enum_ops_printerr_ic                   =  457,
-    enum_ops_printerr_n                    =  458,
-    enum_ops_printerr_nc                   =  459,
-    enum_ops_printerr_s                    =  460,
-    enum_ops_printerr_sc                   =  461,
-    enum_ops_printerr_p                    =  462,
-    enum_ops_print_p_i                     =  463,
-    enum_ops_print_p_ic                    =  464,
-    enum_ops_print_p_n                     =  465,
-    enum_ops_print_p_nc                    =  466,
-    enum_ops_print_p_s                     =  467,
-    enum_ops_print_p_sc                    =  468,
-    enum_ops_print_p_p                     =  469,
-    enum_ops_read_s_i                      =  470,
-    enum_ops_read_s_ic                     =  471,
-    enum_ops_read_s_p_i                    =  472,
-    enum_ops_read_s_p_ic                   =  473,
-    enum_ops_readline_s_p                  =  474,
-    enum_ops_peek_s                        =  475,
-    enum_ops_peek_s_p                      =  476,
-    enum_ops_stat_i_s_i                    =  477,
-    enum_ops_stat_i_sc_i                   =  478,
-    enum_ops_stat_i_s_ic                   =  479,
-    enum_ops_stat_i_sc_ic                  =  480,
-    enum_ops_stat_i_i_i                    =  481,
-    enum_ops_stat_i_ic_i                   =  482,
-    enum_ops_stat_i_i_ic                   =  483,
-    enum_ops_stat_i_ic_ic                  =  484,
-    enum_ops_seek_p_i_i                    =  485,
-    enum_ops_seek_p_ic_i                   =  486,
-    enum_ops_seek_p_i_ic                   =  487,
-    enum_ops_seek_p_ic_ic                  =  488,
-    enum_ops_seek_p_i_i_i                  =  489,
-    enum_ops_seek_p_ic_i_i                 =  490,
-    enum_ops_seek_p_i_ic_i                 =  491,
-    enum_ops_seek_p_ic_ic_i                =  492,
-    enum_ops_seek_p_i_i_ic                 =  493,
-    enum_ops_seek_p_ic_i_ic                =  494,
-    enum_ops_seek_p_i_ic_ic                =  495,
-    enum_ops_seek_p_ic_ic_ic               =  496,
-    enum_ops_tell_i_p                      =  497,
-    enum_ops_tell_i_i_p                    =  498,
-    enum_ops_abs_i                         =  499,
-    enum_ops_abs_n                         =  500,
-    enum_ops_abs_i_i                       =  501,
-    enum_ops_abs_n_n                       =  502,
-    enum_ops_abs_p                         =  503,
-    enum_ops_abs_p_p                       =  504,
-    enum_ops_add_i_i                       =  505,
-    enum_ops_add_i_ic                      =  506,
-    enum_ops_add_n_n                       =  507,
-    enum_ops_add_n_nc                      =  508,
-    enum_ops_add_p_p                       =  509,
-    enum_ops_add_p_i                       =  510,
-    enum_ops_add_p_ic                      =  511,
-    enum_ops_add_p_n                       =  512,
-    enum_ops_add_p_nc                      =  513,
-    enum_ops_add_i_i_i                     =  514,
-    enum_ops_add_i_ic_i                    =  515,
-    enum_ops_add_i_i_ic                    =  516,
-    enum_ops_add_n_n_n                     =  517,
-    enum_ops_add_n_nc_n                    =  518,
-    enum_ops_add_n_n_nc                    =  519,
-    enum_ops_add_p_p_p                     =  520,
-    enum_ops_add_p_p_i                     =  521,
-    enum_ops_add_p_p_ic                    =  522,
-    enum_ops_add_p_p_n                     =  523,
-    enum_ops_add_p_p_nc                    =  524,
-    enum_ops_cmod_i_i_i                    =  525,
-    enum_ops_cmod_i_ic_i                   =  526,
-    enum_ops_cmod_i_i_ic                   =  527,
-    enum_ops_cmod_p_p_i                    =  528,
-    enum_ops_cmod_p_p_ic                   =  529,
-    enum_ops_cmod_p_p_p                    =  530,
-    enum_ops_cmod_n_n_n                    =  531,
-    enum_ops_cmod_n_nc_n                   =  532,
-    enum_ops_cmod_n_n_nc                   =  533,
-    enum_ops_cmod_p_p_n                    =  534,
-    enum_ops_cmod_p_p_nc                   =  535,
-    enum_ops_dec_i                         =  536,
-    enum_ops_dec_n                         =  537,
-    enum_ops_dec_p                         =  538,
-    enum_ops_div_i_i                       =  539,
-    enum_ops_div_i_ic                      =  540,
-    enum_ops_div_n_n                       =  541,
-    enum_ops_div_n_nc                      =  542,
-    enum_ops_div_p_p                       =  543,
-    enum_ops_div_p_i                       =  544,
-    enum_ops_div_p_ic                      =  545,
-    enum_ops_div_p_n                       =  546,
-    enum_ops_div_p_nc                      =  547,
-    enum_ops_div_i_i_i                     =  548,
-    enum_ops_div_i_ic_i                    =  549,
-    enum_ops_div_i_i_ic                    =  550,
-    enum_ops_div_i_ic_ic                   =  551,
-    enum_ops_div_n_n_n                     =  552,
-    enum_ops_div_n_nc_n                    =  553,
-    enum_ops_div_n_n_nc                    =  554,
-    enum_ops_div_n_nc_nc                   =  555,
-    enum_ops_div_p_p_p                     =  556,
-    enum_ops_div_p_p_i                     =  557,
-    enum_ops_div_p_p_ic                    =  558,
-    enum_ops_div_p_p_n                     =  559,
-    enum_ops_div_p_p_nc                    =  560,
-    enum_ops_fdiv_i_i                      =  561,
-    enum_ops_fdiv_i_ic                     =  562,
-    enum_ops_fdiv_n_n                      =  563,
-    enum_ops_fdiv_n_nc                     =  564,
-    enum_ops_fdiv_p_p                      =  565,
-    enum_ops_fdiv_p_i                      =  566,
-    enum_ops_fdiv_p_ic                     =  567,
-    enum_ops_fdiv_p_n                      =  568,
-    enum_ops_fdiv_p_nc                     =  569,
-    enum_ops_fdiv_i_i_i                    =  570,
-    enum_ops_fdiv_i_ic_i                   =  571,
-    enum_ops_fdiv_i_i_ic                   =  572,
-    enum_ops_fdiv_n_n_n                    =  573,
-    enum_ops_fdiv_n_nc_n                   =  574,
-    enum_ops_fdiv_n_n_nc                   =  575,
-    enum_ops_fdiv_p_p_p                    =  576,
-    enum_ops_fdiv_p_p_i                    =  577,
-    enum_ops_fdiv_p_p_ic                   =  578,
-    enum_ops_fdiv_p_p_n                    =  579,
-    enum_ops_fdiv_p_p_nc                   =  580,
-    enum_ops_ceil_n                        =  581,
-    enum_ops_ceil_i_n                      =  582,
-    enum_ops_ceil_n_n                      =  583,
-    enum_ops_floor_n                       =  584,
-    enum_ops_floor_i_n                     =  585,
-    enum_ops_floor_n_n                     =  586,
-    enum_ops_inc_i                         =  587,
-    enum_ops_inc_n                         =  588,
-    enum_ops_inc_p                         =  589,
-    enum_ops_mod_i_i                       =  590,
-    enum_ops_mod_i_ic                      =  591,
-    enum_ops_mod_n_n                       =  592,
-    enum_ops_mod_n_nc                      =  593,
-    enum_ops_mod_p_p                       =  594,
-    enum_ops_mod_p_i                       =  595,
-    enum_ops_mod_p_ic                      =  596,
-    enum_ops_mod_p_n                       =  597,
-    enum_ops_mod_p_nc                      =  598,
-    enum_ops_mod_i_i_i                     =  599,
-    enum_ops_mod_i_ic_i                    =  600,
-    enum_ops_mod_i_i_ic                    =  601,
-    enum_ops_mod_n_n_n                     =  602,
-    enum_ops_mod_n_nc_n                    =  603,
-    enum_ops_mod_n_n_nc                    =  604,
-    enum_ops_mod_p_p_p                     =  605,
-    enum_ops_mod_p_p_i                     =  606,
-    enum_ops_mod_p_p_ic                    =  607,
-    enum_ops_mod_p_p_n                     =  608,
-    enum_ops_mod_p_p_nc                    =  609,
-    enum_ops_mul_i_i                       =  610,
-    enum_ops_mul_i_ic                      =  611,
-    enum_ops_mul_n_n                       =  612,
-    enum_ops_mul_n_nc                      =  613,
-    enum_ops_mul_p_p                       =  614,
-    enum_ops_mul_p_i                       =  615,
-    enum_ops_mul_p_ic                      =  616,
-    enum_ops_mul_p_n                       =  617,
-    enum_ops_mul_p_nc                      =  618,
-    enum_ops_mul_i_i_i                     =  619,
-    enum_ops_mul_i_ic_i                    =  620,
-    enum_ops_mul_i_i_ic                    =  621,
-    enum_ops_mul_n_n_n                     =  622,
-    enum_ops_mul_n_nc_n                    =  623,
-    enum_ops_mul_n_n_nc                    =  624,
-    enum_ops_mul_p_p_p                     =  625,
-    enum_ops_mul_p_p_i                     =  626,
-    enum_ops_mul_p_p_ic                    =  627,
-    enum_ops_mul_p_p_n                     =  628,
-    enum_ops_mul_p_p_nc                    =  629,
-    enum_ops_neg_i                         =  630,
-    enum_ops_neg_n                         =  631,
-    enum_ops_neg_p                         =  632,
-    enum_ops_neg_i_i                       =  633,
-    enum_ops_neg_n_n                       =  634,
-    enum_ops_neg_p_p                       =  635,
-    enum_ops_pow_n_n_n                     =  636,
-    enum_ops_pow_n_nc_n                    =  637,
-    enum_ops_pow_n_n_nc                    =  638,
-    enum_ops_pow_p_p_p                     =  639,
-    enum_ops_pow_p_p_i                     =  640,
-    enum_ops_pow_p_p_ic                    =  641,
-    enum_ops_pow_p_p_n                     =  642,
-    enum_ops_pow_p_p_nc                    =  643,
-    enum_ops_pow_n_n_i                     =  644,
-    enum_ops_pow_n_nc_i                    =  645,
-    enum_ops_pow_n_n_ic                    =  646,
-    enum_ops_pow_n_nc_ic                   =  647,
-    enum_ops_sub_i_i                       =  648,
-    enum_ops_sub_i_ic                      =  649,
-    enum_ops_sub_n_n                       =  650,
-    enum_ops_sub_n_nc                      =  651,
-    enum_ops_sub_p_p                       =  652,
-    enum_ops_sub_p_i                       =  653,
-    enum_ops_sub_p_ic                      =  654,
-    enum_ops_sub_p_n                       =  655,
-    enum_ops_sub_p_nc                      =  656,
-    enum_ops_sub_i_i_i                     =  657,
-    enum_ops_sub_i_ic_i                    =  658,
-    enum_ops_sub_i_i_ic                    =  659,
-    enum_ops_sub_n_n_n                     =  660,
-    enum_ops_sub_n_nc_n                    =  661,
-    enum_ops_sub_n_n_nc                    =  662,
-    enum_ops_sub_p_p_p                     =  663,
-    enum_ops_sub_p_p_i                     =  664,
-    enum_ops_sub_p_p_ic                    =  665,
-    enum_ops_sub_p_p_n                     =  666,
-    enum_ops_sub_p_p_nc                    =  667,
-    enum_ops_sqrt_n_n                      =  668,
-    enum_ops_acos_n_n                      =  669,
-    enum_ops_asec_n_n                      =  670,
-    enum_ops_asin_n_n                      =  671,
-    enum_ops_atan_n_n                      =  672,
-    enum_ops_atan_n_n_n                    =  673,
-    enum_ops_atan_n_nc_n                   =  674,
-    enum_ops_atan_n_n_nc                   =  675,
-    enum_ops_cos_n_n                       =  676,
-    enum_ops_cosh_n_n                      =  677,
-    enum_ops_exp_n_n                       =  678,
-    enum_ops_ln_n_n                        =  679,
-    enum_ops_log10_n_n                     =  680,
-    enum_ops_log2_n_n                      =  681,
-    enum_ops_sec_n_n                       =  682,
-    enum_ops_sech_n_n                      =  683,
-    enum_ops_sin_n_n                       =  684,
-    enum_ops_sinh_n_n                      =  685,
-    enum_ops_tan_n_n                       =  686,
-    enum_ops_tanh_n_n                      =  687,
-    enum_ops_callmethodcc_p_s              =  688,
-    enum_ops_callmethodcc_p_sc             =  689,
-    enum_ops_callmethodcc_p_p              =  690,
-    enum_ops_callmethod_p_s_p              =  691,
-    enum_ops_callmethod_p_sc_p             =  692,
-    enum_ops_callmethod_p_p_p              =  693,
-    enum_ops_tailcallmethod_p_s            =  694,
-    enum_ops_tailcallmethod_p_sc           =  695,
-    enum_ops_tailcallmethod_p_p            =  696,
-    enum_ops_addmethod_p_s_p               =  697,
-    enum_ops_addmethod_p_sc_p              =  698,
-    enum_ops_can_i_p_s                     =  699,
-    enum_ops_can_i_p_sc                    =  700,
-    enum_ops_does_i_p_s                    =  701,
-    enum_ops_does_i_p_sc                   =  702,
-    enum_ops_does_i_p_p                    =  703,
-    enum_ops_does_i_p_pc                   =  704,
-    enum_ops_isa_i_p_s                     =  705,
-    enum_ops_isa_i_p_sc                    =  706,
-    enum_ops_isa_i_p_p                     =  707,
-    enum_ops_isa_i_p_pc                    =  708,
-    enum_ops_newclass_p_s                  =  709,
-    enum_ops_newclass_p_sc                 =  710,
-    enum_ops_newclass_p_p                  =  711,
-    enum_ops_newclass_p_pc                 =  712,
-    enum_ops_subclass_p_p                  =  713,
-    enum_ops_subclass_p_pc                 =  714,
-    enum_ops_subclass_p_p_s                =  715,
-    enum_ops_subclass_p_pc_s               =  716,
-    enum_ops_subclass_p_p_sc               =  717,
-    enum_ops_subclass_p_pc_sc              =  718,
-    enum_ops_subclass_p_p_p                =  719,
-    enum_ops_subclass_p_pc_p               =  720,
-    enum_ops_subclass_p_p_pc               =  721,
-    enum_ops_subclass_p_pc_pc              =  722,
-    enum_ops_subclass_p_s                  =  723,
-    enum_ops_subclass_p_sc                 =  724,
-    enum_ops_subclass_p_s_s                =  725,
-    enum_ops_subclass_p_sc_s               =  726,
-    enum_ops_subclass_p_s_sc               =  727,
-    enum_ops_subclass_p_sc_sc              =  728,
-    enum_ops_subclass_p_s_p                =  729,
-    enum_ops_subclass_p_sc_p               =  730,
-    enum_ops_subclass_p_s_pc               =  731,
-    enum_ops_subclass_p_sc_pc              =  732,
-    enum_ops_get_class_p_s                 =  733,
-    enum_ops_get_class_p_sc                =  734,
-    enum_ops_get_class_p_p                 =  735,
-    enum_ops_get_class_p_pc                =  736,
-    enum_ops_class_p_p                     =  737,
-    enum_ops_addparent_p_p                 =  738,
-    enum_ops_removeparent_p_p              =  739,
-    enum_ops_addrole_p_p                   =  740,
-    enum_ops_addattribute_p_s              =  741,
-    enum_ops_addattribute_p_sc             =  742,
-    enum_ops_removeattribute_p_s           =  743,
-    enum_ops_removeattribute_p_sc          =  744,
-    enum_ops_getattribute_p_p_s            =  745,
-    enum_ops_getattribute_p_p_sc           =  746,
-    enum_ops_getattribute_p_p_p_s          =  747,
-    enum_ops_getattribute_p_p_pc_s         =  748,
-    enum_ops_getattribute_p_p_p_sc         =  749,
-    enum_ops_getattribute_p_p_pc_sc        =  750,
-    enum_ops_setattribute_p_s_p            =  751,
-    enum_ops_setattribute_p_sc_p           =  752,
-    enum_ops_setattribute_p_p_s_p          =  753,
-    enum_ops_setattribute_p_pc_s_p         =  754,
-    enum_ops_setattribute_p_p_sc_p         =  755,
-    enum_ops_setattribute_p_pc_sc_p        =  756,
-    enum_ops_inspect_p_p                   =  757,
-    enum_ops_inspect_p_pc                  =  758,
-    enum_ops_inspect_p_p_s                 =  759,
-    enum_ops_inspect_p_pc_s                =  760,
-    enum_ops_inspect_p_p_sc                =  761,
-    enum_ops_inspect_p_pc_sc               =  762,
-    enum_ops_new_p_s                       =  763,
-    enum_ops_new_p_sc                      =  764,
-    enum_ops_new_p_s_p                     =  765,
-    enum_ops_new_p_sc_p                    =  766,
-    enum_ops_new_p_s_pc                    =  767,
-    enum_ops_new_p_sc_pc                   =  768,
-    enum_ops_new_p_p                       =  769,
-    enum_ops_new_p_pc                      =  770,
-    enum_ops_new_p_p_p                     =  771,
-    enum_ops_new_p_pc_p                    =  772,
-    enum_ops_new_p_p_pc                    =  773,
-    enum_ops_new_p_pc_pc                   =  774,
-    enum_ops_root_new_p_p                  =  775,
-    enum_ops_root_new_p_pc                 =  776,
-    enum_ops_root_new_p_p_p                =  777,
-    enum_ops_root_new_p_pc_p               =  778,
-    enum_ops_root_new_p_p_pc               =  779,
-    enum_ops_root_new_p_pc_pc              =  780,
-    enum_ops_typeof_s_p                    =  781,
-    enum_ops_typeof_p_p                    =  782,
-    enum_ops_get_repr_s_p                  =  783,
-    enum_ops_find_method_p_p_s             =  784,
-    enum_ops_find_method_p_p_sc            =  785,
-    enum_ops_defined_i_p                   =  786,
-    enum_ops_defined_i_p_ki                =  787,
-    enum_ops_defined_i_p_kic               =  788,
-    enum_ops_defined_i_p_k                 =  789,
-    enum_ops_defined_i_p_kc                =  790,
-    enum_ops_exists_i_p_ki                 =  791,
-    enum_ops_exists_i_p_kic                =  792,
-    enum_ops_exists_i_p_k                  =  793,
-    enum_ops_exists_i_p_kc                 =  794,
-    enum_ops_delete_p_k                    =  795,
-    enum_ops_delete_p_kc                   =  796,
-    enum_ops_delete_p_ki                   =  797,
-    enum_ops_delete_p_kic                  =  798,
-    enum_ops_elements_i_p                  =  799,
-    enum_ops_push_p_i                      =  800,
-    enum_ops_push_p_ic                     =  801,
-    enum_ops_push_p_n                      =  802,
-    enum_ops_push_p_nc                     =  803,
-    enum_ops_push_p_s                      =  804,
-    enum_ops_push_p_sc                     =  805,
-    enum_ops_push_p_p                      =  806,
-    enum_ops_pop_i_p                       =  807,
-    enum_ops_pop_n_p                       =  808,
-    enum_ops_pop_s_p                       =  809,
-    enum_ops_pop_p_p                       =  810,
-    enum_ops_unshift_p_i                   =  811,
-    enum_ops_unshift_p_ic                  =  812,
-    enum_ops_unshift_p_n                   =  813,
-    enum_ops_unshift_p_nc                  =  814,
-    enum_ops_unshift_p_s                   =  815,
-    enum_ops_unshift_p_sc                  =  816,
-    enum_ops_unshift_p_p                   =  817,
-    enum_ops_shift_i_p                     =  818,
-    enum_ops_shift_n_p                     =  819,
-    enum_ops_shift_s_p                     =  820,
-    enum_ops_shift_p_p                     =  821,
-    enum_ops_splice_p_p_i_i                =  822,
-    enum_ops_splice_p_p_ic_i               =  823,
-    enum_ops_splice_p_p_i_ic               =  824,
-    enum_ops_splice_p_p_ic_ic              =  825,
-    enum_ops_setprop_p_s_p                 =  826,
-    enum_ops_setprop_p_sc_p                =  827,
-    enum_ops_getprop_p_s_p                 =  828,
-    enum_ops_getprop_p_sc_p                =  829,
-    enum_ops_delprop_p_s                   =  830,
-    enum_ops_delprop_p_sc                  =  831,
-    enum_ops_prophash_p_p                  =  832,
-    enum_ops_freeze_s_p                    =  833,
-    enum_ops_thaw_p_s                      =  834,
-    enum_ops_thaw_p_sc                     =  835,
-    enum_ops_add_multi_s_s_p               =  836,
-    enum_ops_add_multi_sc_s_p              =  837,
-    enum_ops_add_multi_s_sc_p              =  838,
-    enum_ops_add_multi_sc_sc_p             =  839,
-    enum_ops_find_multi_p_s_s              =  840,
-    enum_ops_find_multi_p_sc_s             =  841,
-    enum_ops_find_multi_p_s_sc             =  842,
-    enum_ops_find_multi_p_sc_sc            =  843,
-    enum_ops_register_p                    =  844,
-    enum_ops_unregister_p                  =  845,
-    enum_ops_box_p_i                       =  846,
-    enum_ops_box_p_ic                      =  847,
-    enum_ops_box_p_n                       =  848,
-    enum_ops_box_p_nc                      =  849,
-    enum_ops_box_p_s                       =  850,
-    enum_ops_box_p_sc                      =  851,
-    enum_ops_iter_p_p                      =  852,
-    enum_ops_morph_p_p                     =  853,
-    enum_ops_morph_p_pc                    =  854,
-    enum_ops_clone_s_s                     =  855,
-    enum_ops_clone_s_sc                    =  856,
-    enum_ops_set_i_i                       =  857,
-    enum_ops_set_i_ic                      =  858,
-    enum_ops_set_i_n                       =  859,
-    enum_ops_set_i_nc                      =  860,
-    enum_ops_set_i_s                       =  861,
-    enum_ops_set_i_sc                      =  862,
-    enum_ops_set_n_n                       =  863,
-    enum_ops_set_n_nc                      =  864,
-    enum_ops_set_n_i                       =  865,
-    enum_ops_set_n_ic                      =  866,
-    enum_ops_set_n_s                       =  867,
-    enum_ops_set_n_sc                      =  868,
-    enum_ops_set_n_p                       =  869,
-    enum_ops_set_s_p                       =  870,
-    enum_ops_set_s_s                       =  871,
-    enum_ops_set_s_sc                      =  872,
-    enum_ops_set_s_i                       =  873,
-    enum_ops_set_s_ic                      =  874,
-    enum_ops_set_s_n                       =  875,
-    enum_ops_set_s_nc                      =  876,
-    enum_ops_set_p_pc                      =  877,
-    enum_ops_set_p_p                       =  878,
-    enum_ops_set_p_i                       =  879,
-    enum_ops_set_p_ic                      =  880,
-    enum_ops_set_p_n                       =  881,
-    enum_ops_set_p_nc                      =  882,
-    enum_ops_set_p_s                       =  883,
-    enum_ops_set_p_sc                      =  884,
-    enum_ops_set_i_p                       =  885,
-    enum_ops_assign_p_p                    =  886,
-    enum_ops_assign_p_i                    =  887,
-    enum_ops_assign_p_ic                   =  888,
-    enum_ops_assign_p_n                    =  889,
-    enum_ops_assign_p_nc                   =  890,
-    enum_ops_assign_p_s                    =  891,
-    enum_ops_assign_p_sc                   =  892,
-    enum_ops_assign_s_s                    =  893,
-    enum_ops_assign_s_sc                   =  894,
-    enum_ops_setref_p_p                    =  895,
-    enum_ops_deref_p_p                     =  896,
-    enum_ops_set_p_ki_i                    =  897,
-    enum_ops_set_p_kic_i                   =  898,
-    enum_ops_set_p_ki_ic                   =  899,
-    enum_ops_set_p_kic_ic                  =  900,
-    enum_ops_set_p_ki_n                    =  901,
-    enum_ops_set_p_kic_n                   =  902,
-    enum_ops_set_p_ki_nc                   =  903,
-    enum_ops_set_p_kic_nc                  =  904,
-    enum_ops_set_p_ki_s                    =  905,
-    enum_ops_set_p_kic_s                   =  906,
-    enum_ops_set_p_ki_sc                   =  907,
-    enum_ops_set_p_kic_sc                  =  908,
-    enum_ops_set_p_ki_p                    =  909,
-    enum_ops_set_p_kic_p                   =  910,
-    enum_ops_set_i_p_ki                    =  911,
-    enum_ops_set_i_p_kic                   =  912,
-    enum_ops_set_n_p_ki                    =  913,
-    enum_ops_set_n_p_kic                   =  914,
-    enum_ops_set_s_p_ki                    =  915,
-    enum_ops_set_s_p_kic                   =  916,
-    enum_ops_set_p_p_ki                    =  917,
-    enum_ops_set_p_p_kic                   =  918,
-    enum_ops_set_p_k_i                     =  919,
-    enum_ops_set_p_kc_i                    =  920,
-    enum_ops_set_p_k_ic                    =  921,
-    enum_ops_set_p_kc_ic                   =  922,
-    enum_ops_set_p_k_n                     =  923,
-    enum_ops_set_p_kc_n                    =  924,
-    enum_ops_set_p_k_nc                    =  925,
-    enum_ops_set_p_kc_nc                   =  926,
-    enum_ops_set_p_k_s                     =  927,
-    enum_ops_set_p_kc_s                    =  928,
-    enum_ops_set_p_k_sc                    =  929,
-    enum_ops_set_p_kc_sc                   =  930,
-    enum_ops_set_p_k_p                     =  931,
-    enum_ops_set_p_kc_p                    =  932,
-    enum_ops_set_i_p_k                     =  933,
-    enum_ops_set_i_p_kc                    =  934,
-    enum_ops_set_n_p_k                     =  935,
-    enum_ops_set_n_p_kc                    =  936,
-    enum_ops_set_s_p_k                     =  937,
-    enum_ops_set_s_p_kc                    =  938,
-    enum_ops_set_p_p_k                     =  939,
-    enum_ops_set_p_p_kc                    =  940,
-    enum_ops_clone_p_p                     =  941,
-    enum_ops_clone_p_p_p                   =  942,
-    enum_ops_clone_p_p_pc                  =  943,
-    enum_ops_copy_p_p                      =  944,
-    enum_ops_null_s                        =  945,
-    enum_ops_null_i                        =  946,
-    enum_ops_null_p                        =  947,
-    enum_ops_null_n                        =  948,
-    enum_ops_ord_i_s                       =  949,
-    enum_ops_ord_i_sc                      =  950,
-    enum_ops_ord_i_s_i                     =  951,
-    enum_ops_ord_i_sc_i                    =  952,
-    enum_ops_ord_i_s_ic                    =  953,
-    enum_ops_ord_i_sc_ic                   =  954,
-    enum_ops_chr_s_i                       =  955,
-    enum_ops_chr_s_ic                      =  956,
-    enum_ops_chopn_s_s_i                   =  957,
-    enum_ops_chopn_s_sc_i                  =  958,
-    enum_ops_chopn_s_s_ic                  =  959,
-    enum_ops_chopn_s_sc_ic                 =  960,
-    enum_ops_concat_s_s                    =  961,
-    enum_ops_concat_s_sc                   =  962,
-    enum_ops_concat_p_p                    =  963,
-    enum_ops_concat_p_s                    =  964,
-    enum_ops_concat_p_sc                   =  965,
-    enum_ops_concat_s_s_s                  =  966,
-    enum_ops_concat_s_sc_s                 =  967,
-    enum_ops_concat_s_s_sc                 =  968,
-    enum_ops_concat_p_p_s                  =  969,
-    enum_ops_concat_p_p_sc                 =  970,
-    enum_ops_concat_p_p_p                  =  971,
-    enum_ops_repeat_s_s_i                  =  972,
-    enum_ops_repeat_s_sc_i                 =  973,
-    enum_ops_repeat_s_s_ic                 =  974,
-    enum_ops_repeat_s_sc_ic                =  975,
-    enum_ops_repeat_p_p_i                  =  976,
-    enum_ops_repeat_p_p_ic                 =  977,
-    enum_ops_repeat_p_p_p                  =  978,
-    enum_ops_repeat_p_i                    =  979,
-    enum_ops_repeat_p_ic                   =  980,
-    enum_ops_repeat_p_p                    =  981,
-    enum_ops_length_i_s                    =  982,
-    enum_ops_length_i_sc                   =  983,
-    enum_ops_bytelength_i_s                =  984,
-    enum_ops_bytelength_i_sc               =  985,
-    enum_ops_pin_s                         =  986,
-    enum_ops_unpin_s                       =  987,
-    enum_ops_substr_s_s_i                  =  988,
-    enum_ops_substr_s_sc_i                 =  989,
-    enum_ops_substr_s_s_ic                 =  990,
-    enum_ops_substr_s_sc_ic                =  991,
-    enum_ops_substr_s_s_i_i                =  992,
-    enum_ops_substr_s_sc_i_i               =  993,
-    enum_ops_substr_s_s_ic_i               =  994,
-    enum_ops_substr_s_sc_ic_i              =  995,
-    enum_ops_substr_s_s_i_ic               =  996,
-    enum_ops_substr_s_sc_i_ic              =  997,
-    enum_ops_substr_s_s_ic_ic              =  998,
-    enum_ops_substr_s_sc_ic_ic             =  999,
-    enum_ops_substr_s_p_i_i                = 1000,
-    enum_ops_substr_s_p_ic_i               = 1001,
-    enum_ops_substr_s_p_i_ic               = 1002,
-    enum_ops_substr_s_p_ic_ic              = 1003,
-    enum_ops_replace_s_s_i_i_s             = 1004,
-    enum_ops_replace_s_sc_i_i_s            = 1005,
-    enum_ops_replace_s_s_ic_i_s            = 1006,
-    enum_ops_replace_s_sc_ic_i_s           = 1007,
-    enum_ops_replace_s_s_i_ic_s            = 1008,
-    enum_ops_replace_s_sc_i_ic_s           = 1009,
-    enum_ops_replace_s_s_ic_ic_s           = 1010,
-    enum_ops_replace_s_sc_ic_ic_s          = 1011,
-    enum_ops_replace_s_s_i_i_sc            = 1012,
-    enum_ops_replace_s_sc_i_i_sc           = 1013,
-    enum_ops_replace_s_s_ic_i_sc           = 1014,
-    enum_ops_replace_s_sc_ic_i_sc          = 1015,
-    enum_ops_replace_s_s_i_ic_sc           = 1016,
-    enum_ops_replace_s_sc_i_ic_sc          = 1017,
-    enum_ops_replace_s_s_ic_ic_sc          = 1018,
-    enum_ops_replace_s_sc_ic_ic_sc         = 1019,
-    enum_ops_index_i_s_s                   = 1020,
-    enum_ops_index_i_sc_s                  = 1021,
-    enum_ops_index_i_s_sc                  = 1022,
-    enum_ops_index_i_sc_sc                 = 1023,
-    enum_ops_index_i_s_s_i                 = 1024,
-    enum_ops_index_i_sc_s_i                = 1025,
-    enum_ops_index_i_s_sc_i                = 1026,
-    enum_ops_index_i_sc_sc_i               = 1027,
-    enum_ops_index_i_s_s_ic                = 1028,
-    enum_ops_index_i_sc_s_ic               = 1029,
-    enum_ops_index_i_s_sc_ic               = 1030,
-    enum_ops_index_i_sc_sc_ic              = 1031,
-    enum_ops_sprintf_s_s_p                 = 1032,
-    enum_ops_sprintf_s_sc_p                = 1033,
-    enum_ops_sprintf_p_p_p                 = 1034,
-    enum_ops_new_s                         = 1035,
-    enum_ops_new_s_i                       = 1036,
-    enum_ops_new_s_ic                      = 1037,
-    enum_ops_stringinfo_i_s_i              = 1038,
-    enum_ops_stringinfo_i_sc_i             = 1039,
-    enum_ops_stringinfo_i_s_ic             = 1040,
-    enum_ops_stringinfo_i_sc_ic            = 1041,
-    enum_ops_upcase_s_s                    = 1042,
-    enum_ops_upcase_s_sc                   = 1043,
-    enum_ops_downcase_s_s                  = 1044,
-    enum_ops_downcase_s_sc                 = 1045,
-    enum_ops_titlecase_s_s                 = 1046,
-    enum_ops_titlecase_s_sc                = 1047,
-    enum_ops_join_s_s_p                    = 1048,
-    enum_ops_join_s_sc_p                   = 1049,
-    enum_ops_split_p_s_s                   = 1050,
-    enum_ops_split_p_sc_s                  = 1051,
-    enum_ops_split_p_s_sc                  = 1052,
-    enum_ops_split_p_sc_sc                 = 1053,
-    enum_ops_charset_i_s                   = 1054,
-    enum_ops_charset_i_sc                  = 1055,
-    enum_ops_charsetname_s_i               = 1056,
-    enum_ops_charsetname_s_ic              = 1057,
-    enum_ops_find_charset_i_s              = 1058,
-    enum_ops_find_charset_i_sc             = 1059,
-    enum_ops_trans_charset_s_s_i           = 1060,
-    enum_ops_trans_charset_s_sc_i          = 1061,
-    enum_ops_trans_charset_s_s_ic          = 1062,
-    enum_ops_trans_charset_s_sc_ic         = 1063,
-    enum_ops_encoding_i_s                  = 1064,
-    enum_ops_encoding_i_sc                 = 1065,
-    enum_ops_encodingname_s_i              = 1066,
-    enum_ops_encodingname_s_ic             = 1067,
-    enum_ops_find_encoding_i_s             = 1068,
-    enum_ops_find_encoding_i_sc            = 1069,
-    enum_ops_trans_encoding_s_s_i          = 1070,
-    enum_ops_trans_encoding_s_sc_i         = 1071,
-    enum_ops_trans_encoding_s_s_ic         = 1072,
-    enum_ops_trans_encoding_s_sc_ic        = 1073,
-    enum_ops_is_cclass_i_i_s_i             = 1074,
-    enum_ops_is_cclass_i_ic_s_i            = 1075,
-    enum_ops_is_cclass_i_i_sc_i            = 1076,
-    enum_ops_is_cclass_i_ic_sc_i           = 1077,
-    enum_ops_is_cclass_i_i_s_ic            = 1078,
-    enum_ops_is_cclass_i_ic_s_ic           = 1079,
-    enum_ops_is_cclass_i_i_sc_ic           = 1080,
-    enum_ops_is_cclass_i_ic_sc_ic          = 1081,
-    enum_ops_find_cclass_i_i_s_i_i         = 1082,
-    enum_ops_find_cclass_i_ic_s_i_i        = 1083,
-    enum_ops_find_cclass_i_i_sc_i_i        = 1084,
-    enum_ops_find_cclass_i_ic_sc_i_i       = 1085,
-    enum_ops_find_cclass_i_i_s_ic_i        = 1086,
-    enum_ops_find_cclass_i_ic_s_ic_i       = 1087,
-    enum_ops_find_cclass_i_i_sc_ic_i       = 1088,
-    enum_ops_find_cclass_i_ic_sc_ic_i      = 1089,
-    enum_ops_find_cclass_i_i_s_i_ic        = 1090,
-    enum_ops_find_cclass_i_ic_s_i_ic       = 1091,
-    enum_ops_find_cclass_i_i_sc_i_ic       = 1092,
-    enum_ops_find_cclass_i_ic_sc_i_ic      = 1093,
-    enum_ops_find_cclass_i_i_s_ic_ic       = 1094,
-    enum_ops_find_cclass_i_ic_s_ic_ic      = 1095,
-    enum_ops_find_cclass_i_i_sc_ic_ic      = 1096,
-    enum_ops_find_cclass_i_ic_sc_ic_ic     = 1097,
-    enum_ops_find_not_cclass_i_i_s_i_i     = 1098,
-    enum_ops_find_not_cclass_i_ic_s_i_i    = 1099,
-    enum_ops_find_not_cclass_i_i_sc_i_i    = 1100,
-    enum_ops_find_not_cclass_i_ic_sc_i_i   = 1101,
-    enum_ops_find_not_cclass_i_i_s_ic_i    = 1102,
-    enum_ops_find_not_cclass_i_ic_s_ic_i   = 1103,
-    enum_ops_find_not_cclass_i_i_sc_ic_i   = 1104,
-    enum_ops_find_not_cclass_i_ic_sc_ic_i  = 1105,
-    enum_ops_find_not_cclass_i_i_s_i_ic    = 1106,
-    enum_ops_find_not_cclass_i_ic_s_i_ic   = 1107,
-    enum_ops_find_not_cclass_i_i_sc_i_ic   = 1108,
-    enum_ops_find_not_cclass_i_ic_sc_i_ic  = 1109,
-    enum_ops_find_not_cclass_i_i_s_ic_ic   = 1110,
-    enum_ops_find_not_cclass_i_ic_s_ic_ic  = 1111,
-    enum_ops_find_not_cclass_i_i_sc_ic_ic  = 1112,
-    enum_ops_find_not_cclass_i_ic_sc_ic_ic = 1113,
-    enum_ops_escape_s_s                    = 1114,
-    enum_ops_compose_s_s                   = 1115,
-    enum_ops_compose_s_sc                  = 1116,
-    enum_ops_spawnw_i_s                    = 1117,
-    enum_ops_spawnw_i_sc                   = 1118,
-    enum_ops_spawnw_i_p                    = 1119,
-    enum_ops_err_i                         = 1120,
-    enum_ops_err_s                         = 1121,
-    enum_ops_err_s_i                       = 1122,
-    enum_ops_err_s_ic                      = 1123,
-    enum_ops_time_i                        = 1124,
-    enum_ops_time_n                        = 1125,
-    enum_ops_gmtime_s_i                    = 1126,
-    enum_ops_gmtime_s_ic                   = 1127,
-    enum_ops_localtime_s_i                 = 1128,
-    enum_ops_localtime_s_ic                = 1129,
-    enum_ops_decodetime_p_i                = 1130,
-    enum_ops_decodetime_p_ic               = 1131,
-    enum_ops_decodelocaltime_p_i           = 1132,
-    enum_ops_decodelocaltime_p_ic          = 1133,
-    enum_ops_sysinfo_s_i                   = 1134,
-    enum_ops_sysinfo_s_ic                  = 1135,
-    enum_ops_sysinfo_i_i                   = 1136,
-    enum_ops_sysinfo_i_ic                  = 1137,
-    enum_ops_sleep_i                       = 1138,
-    enum_ops_sleep_ic                      = 1139,
-    enum_ops_sleep_n                       = 1140,
-    enum_ops_sleep_nc                      = 1141,
-    enum_ops_store_lex_s_p                 = 1142,
-    enum_ops_store_lex_sc_p                = 1143,
-    enum_ops_store_dynamic_lex_s_p         = 1144,
-    enum_ops_store_dynamic_lex_sc_p        = 1145,
-    enum_ops_find_lex_p_s                  = 1146,
-    enum_ops_find_lex_p_sc                 = 1147,
-    enum_ops_find_dynamic_lex_p_s          = 1148,
-    enum_ops_find_dynamic_lex_p_sc         = 1149,
-    enum_ops_find_caller_lex_p_s           = 1150,
-    enum_ops_find_caller_lex_p_sc          = 1151,
-    enum_ops_get_namespace_p               = 1152,
-    enum_ops_get_namespace_p_p             = 1153,
-    enum_ops_get_namespace_p_pc            = 1154,
-    enum_ops_get_hll_namespace_p           = 1155,
-    enum_ops_get_hll_namespace_p_p         = 1156,
-    enum_ops_get_hll_namespace_p_pc        = 1157,
-    enum_ops_get_root_namespace_p          = 1158,
-    enum_ops_get_root_namespace_p_p        = 1159,
-    enum_ops_get_root_namespace_p_pc       = 1160,
-    enum_ops_get_global_p_s                = 1161,
-    enum_ops_get_global_p_sc               = 1162,
-    enum_ops_get_global_p_p_s              = 1163,
-    enum_ops_get_global_p_pc_s             = 1164,
-    enum_ops_get_global_p_p_sc             = 1165,
-    enum_ops_get_global_p_pc_sc            = 1166,
-    enum_ops_get_hll_global_p_s            = 1167,
-    enum_ops_get_hll_global_p_sc           = 1168,
-    enum_ops_get_hll_global_p_p_s          = 1169,
-    enum_ops_get_hll_global_p_pc_s         = 1170,
-    enum_ops_get_hll_global_p_p_sc         = 1171,
-    enum_ops_get_hll_global_p_pc_sc        = 1172,
-    enum_ops_get_root_global_p_s           = 1173,
-    enum_ops_get_root_global_p_sc          = 1174,
-    enum_ops_get_root_global_p_p_s         = 1175,
-    enum_ops_get_root_global_p_pc_s        = 1176,
-    enum_ops_get_root_global_p_p_sc        = 1177,
-    enum_ops_get_root_global_p_pc_sc       = 1178,
-    enum_ops_set_global_s_p                = 1179,
-    enum_ops_set_global_sc_p               = 1180,
-    enum_ops_set_global_p_s_p              = 1181,
-    enum_ops_set_global_pc_s_p             = 1182,
-    enum_ops_set_global_p_sc_p             = 1183,
-    enum_ops_set_global_pc_sc_p            = 1184,
-    enum_ops_set_hll_global_s_p            = 1185,
-    enum_ops_set_hll_global_sc_p           = 1186,
-    enum_ops_set_hll_global_p_s_p          = 1187,
-    enum_ops_set_hll_global_pc_s_p         = 1188,
-    enum_ops_set_hll_global_p_sc_p         = 1189,
-    enum_ops_set_hll_global_pc_sc_p        = 1190,
-    enum_ops_set_root_global_s_p           = 1191,
-    enum_ops_set_root_global_sc_p          = 1192,
-    enum_ops_set_root_global_p_s_p         = 1193,
-    enum_ops_set_root_global_pc_s_p        = 1194,
-    enum_ops_set_root_global_p_sc_p        = 1195,
-    enum_ops_set_root_global_pc_sc_p       = 1196,
-    enum_ops_find_name_p_s                 = 1197,
-    enum_ops_find_name_p_sc                = 1198,
-    enum_ops_find_sub_not_null_p_s         = 1199,
-    enum_ops_find_sub_not_null_p_sc        = 1200,
-    enum_ops_trap                          = 1201,
-    enum_ops_set_label_p_ic                = 1202,
-    enum_ops_get_label_i_p                 = 1203,
-    enum_ops_fetch_p_p_p_p                 = 1204,
-    enum_ops_fetch_p_pc_p_p                = 1205,
-    enum_ops_fetch_p_p_pc_p                = 1206,
-    enum_ops_fetch_p_pc_pc_p               = 1207,
-    enum_ops_fetch_p_p_p_pc                = 1208,
-    enum_ops_fetch_p_pc_p_pc               = 1209,
-    enum_ops_fetch_p_p_pc_pc               = 1210,
-    enum_ops_fetch_p_pc_pc_pc              = 1211,
-    enum_ops_fetch_p_p_i_p                 = 1212,
-    enum_ops_fetch_p_pc_i_p                = 1213,
-    enum_ops_fetch_p_p_ic_p                = 1214,
-    enum_ops_fetch_p_pc_ic_p               = 1215,
-    enum_ops_fetch_p_p_i_pc                = 1216,
-    enum_ops_fetch_p_pc_i_pc               = 1217,
-    enum_ops_fetch_p_p_ic_pc               = 1218,
-    enum_ops_fetch_p_pc_ic_pc              = 1219,
-    enum_ops_fetch_p_p_s_p                 = 1220,
-    enum_ops_fetch_p_pc_s_p                = 1221,
-    enum_ops_fetch_p_p_sc_p                = 1222,
-    enum_ops_fetch_p_pc_sc_p               = 1223,
-    enum_ops_fetch_p_p_s_pc                = 1224,
-    enum_ops_fetch_p_pc_s_pc               = 1225,
-    enum_ops_fetch_p_p_sc_pc               = 1226,
-    enum_ops_fetch_p_pc_sc_pc              = 1227,
-    enum_ops_vivify_p_p_p_p                = 1228,
-    enum_ops_vivify_p_pc_p_p               = 1229,
-    enum_ops_vivify_p_p_pc_p               = 1230,
-    enum_ops_vivify_p_pc_pc_p              = 1231,
-    enum_ops_vivify_p_p_p_pc               = 1232,
-    enum_ops_vivify_p_pc_p_pc              = 1233,
-    enum_ops_vivify_p_p_pc_pc              = 1234,
-    enum_ops_vivify_p_pc_pc_pc             = 1235,
-    enum_ops_vivify_p_p_i_p                = 1236,
-    enum_ops_vivify_p_pc_i_p               = 1237,
-    enum_ops_vivify_p_p_ic_p               = 1238,
-    enum_ops_vivify_p_pc_ic_p              = 1239,
-    enum_ops_vivify_p_p_i_pc               = 1240,
-    enum_ops_vivify_p_pc_i_pc              = 1241,
-    enum_ops_vivify_p_p_ic_pc              = 1242,
-    enum_ops_vivify_p_pc_ic_pc             = 1243,
-    enum_ops_vivify_p_p_s_p                = 1244,
-    enum_ops_vivify_p_pc_s_p               = 1245,
-    enum_ops_vivify_p_p_sc_p               = 1246,
-    enum_ops_vivify_p_pc_sc_p              = 1247,
-    enum_ops_vivify_p_p_s_pc               = 1248,
-    enum_ops_vivify_p_pc_s_pc              = 1249,
-    enum_ops_vivify_p_p_sc_pc              = 1250,
-    enum_ops_vivify_p_pc_sc_pc             = 1251,
-    enum_ops_new_p_s_i                     = 1252,
-    enum_ops_new_p_sc_i                    = 1253,
-    enum_ops_new_p_s_ic                    = 1254,
-    enum_ops_new_p_sc_ic                   = 1255,
-    enum_ops_new_p_p_i                     = 1256,
-    enum_ops_new_p_pc_i                    = 1257,
-    enum_ops_new_p_p_ic                    = 1258,
-    enum_ops_new_p_pc_ic                   = 1259,
-    enum_ops_root_new_p_p_i                = 1260,
-    enum_ops_root_new_p_pc_i               = 1261,
-    enum_ops_root_new_p_p_ic               = 1262,
-    enum_ops_root_new_p_pc_ic              = 1263,
-    enum_ops_find_codepoint_i_s            = 1264,
-    enum_ops_find_codepoint_i_sc           = 1265,
-    enum_ops_finalize_p                    = 1266,
-    enum_ops_finalize_pc                   = 1267,
+    enum_ops_band_i_i_i                    =  119,
+    enum_ops_band_i_ic_i                   =  120,
+    enum_ops_band_i_i_ic                   =  121,
+    enum_ops_bor_i_i                       =  122,
+    enum_ops_bor_i_ic                      =  123,
+    enum_ops_bor_i_i_i                     =  124,
+    enum_ops_bor_i_ic_i                    =  125,
+    enum_ops_bor_i_i_ic                    =  126,
+    enum_ops_shl_i_i                       =  127,
+    enum_ops_shl_i_ic                      =  128,
+    enum_ops_shl_i_i_i                     =  129,
+    enum_ops_shl_i_ic_i                    =  130,
+    enum_ops_shl_i_i_ic                    =  131,
+    enum_ops_shr_i_i                       =  132,
+    enum_ops_shr_i_ic                      =  133,
+    enum_ops_shr_i_i_i                     =  134,
+    enum_ops_shr_i_ic_i                    =  135,
+    enum_ops_shr_i_i_ic                    =  136,
+    enum_ops_lsr_i_i                       =  137,
+    enum_ops_lsr_i_ic                      =  138,
+    enum_ops_lsr_i_i_i                     =  139,
+    enum_ops_lsr_i_ic_i                    =  140,
+    enum_ops_lsr_i_i_ic                    =  141,
+    enum_ops_bxor_i_i                      =  142,
+    enum_ops_bxor_i_ic                     =  143,
+    enum_ops_bxor_i_i_i                    =  144,
+    enum_ops_bxor_i_ic_i                   =  145,
+    enum_ops_bxor_i_i_ic                   =  146,
+    enum_ops_eq_i_i_ic                     =  147,
+    enum_ops_eq_ic_i_ic                    =  148,
+    enum_ops_eq_i_ic_ic                    =  149,
+    enum_ops_eq_n_n_ic                     =  150,
+    enum_ops_eq_nc_n_ic                    =  151,
+    enum_ops_eq_n_nc_ic                    =  152,
+    enum_ops_eq_s_s_ic                     =  153,
+    enum_ops_eq_sc_s_ic                    =  154,
+    enum_ops_eq_s_sc_ic                    =  155,
+    enum_ops_eq_p_p_ic                     =  156,
+    enum_ops_eq_p_i_ic                     =  157,
+    enum_ops_eq_p_ic_ic                    =  158,
+    enum_ops_eq_p_n_ic                     =  159,
+    enum_ops_eq_p_nc_ic                    =  160,
+    enum_ops_eq_p_s_ic                     =  161,
+    enum_ops_eq_p_sc_ic                    =  162,
+    enum_ops_eq_str_p_p_ic                 =  163,
+    enum_ops_eq_num_p_p_ic                 =  164,
+    enum_ops_eq_addr_s_s_ic                =  165,
+    enum_ops_eq_addr_sc_s_ic               =  166,
+    enum_ops_eq_addr_s_sc_ic               =  167,
+    enum_ops_eq_addr_sc_sc_ic              =  168,
+    enum_ops_eq_addr_p_p_ic                =  169,
+    enum_ops_ne_i_i_ic                     =  170,
+    enum_ops_ne_ic_i_ic                    =  171,
+    enum_ops_ne_i_ic_ic                    =  172,
+    enum_ops_ne_n_n_ic                     =  173,
+    enum_ops_ne_nc_n_ic                    =  174,
+    enum_ops_ne_n_nc_ic                    =  175,
+    enum_ops_ne_s_s_ic                     =  176,
+    enum_ops_ne_sc_s_ic                    =  177,
+    enum_ops_ne_s_sc_ic                    =  178,
+    enum_ops_ne_p_p_ic                     =  179,
+    enum_ops_ne_p_i_ic                     =  180,
+    enum_ops_ne_p_ic_ic                    =  181,
+    enum_ops_ne_p_n_ic                     =  182,
+    enum_ops_ne_p_nc_ic                    =  183,
+    enum_ops_ne_p_s_ic                     =  184,
+    enum_ops_ne_p_sc_ic                    =  185,
+    enum_ops_ne_str_p_p_ic                 =  186,
+    enum_ops_ne_num_p_p_ic                 =  187,
+    enum_ops_ne_addr_s_s_ic                =  188,
+    enum_ops_ne_addr_sc_s_ic               =  189,
+    enum_ops_ne_addr_s_sc_ic               =  190,
+    enum_ops_ne_addr_sc_sc_ic              =  191,
+    enum_ops_ne_addr_p_p_ic                =  192,
+    enum_ops_lt_i_i_ic                     =  193,
+    enum_ops_lt_ic_i_ic                    =  194,
+    enum_ops_lt_i_ic_ic                    =  195,
+    enum_ops_lt_n_n_ic                     =  196,
+    enum_ops_lt_nc_n_ic                    =  197,
+    enum_ops_lt_n_nc_ic                    =  198,
+    enum_ops_lt_s_s_ic                     =  199,
+    enum_ops_lt_sc_s_ic                    =  200,
+    enum_ops_lt_s_sc_ic                    =  201,
+    enum_ops_lt_p_p_ic                     =  202,
+    enum_ops_lt_p_i_ic                     =  203,
+    enum_ops_lt_p_ic_ic                    =  204,
+    enum_ops_lt_p_n_ic                     =  205,
+    enum_ops_lt_p_nc_ic                    =  206,
+    enum_ops_lt_p_s_ic                     =  207,
+    enum_ops_lt_p_sc_ic                    =  208,
+    enum_ops_lt_str_p_p_ic                 =  209,
+    enum_ops_lt_num_p_p_ic                 =  210,
+    enum_ops_le_i_i_ic                     =  211,
+    enum_ops_le_ic_i_ic                    =  212,
+    enum_ops_le_i_ic_ic                    =  213,
+    enum_ops_le_n_n_ic                     =  214,
+    enum_ops_le_nc_n_ic                    =  215,
+    enum_ops_le_n_nc_ic                    =  216,
+    enum_ops_le_s_s_ic                     =  217,
+    enum_ops_le_sc_s_ic                    =  218,
+    enum_ops_le_s_sc_ic                    =  219,
+    enum_ops_le_p_p_ic                     =  220,
+    enum_ops_le_p_i_ic                     =  221,
+    enum_ops_le_p_ic_ic                    =  222,
+    enum_ops_le_p_n_ic                     =  223,
+    enum_ops_le_p_nc_ic                    =  224,
+    enum_ops_le_p_s_ic                     =  225,
+    enum_ops_le_p_sc_ic                    =  226,
+    enum_ops_le_str_p_p_ic                 =  227,
+    enum_ops_le_num_p_p_ic                 =  228,
+    enum_ops_gt_p_p_ic                     =  229,
+    enum_ops_gt_p_i_ic                     =  230,
+    enum_ops_gt_p_ic_ic                    =  231,
+    enum_ops_gt_p_n_ic                     =  232,
+    enum_ops_gt_p_nc_ic                    =  233,
+    enum_ops_gt_p_s_ic                     =  234,
+    enum_ops_gt_p_sc_ic                    =  235,
+    enum_ops_gt_str_p_p_ic                 =  236,
+    enum_ops_gt_num_p_p_ic                 =  237,
+    enum_ops_ge_p_p_ic                     =  238,
+    enum_ops_ge_p_i_ic                     =  239,
+    enum_ops_ge_p_ic_ic                    =  240,
+    enum_ops_ge_p_n_ic                     =  241,
+    enum_ops_ge_p_nc_ic                    =  242,
+    enum_ops_ge_p_s_ic                     =  243,
+    enum_ops_ge_p_sc_ic                    =  244,
+    enum_ops_ge_str_p_p_ic                 =  245,
+    enum_ops_ge_num_p_p_ic                 =  246,
+    enum_ops_if_null_p_ic                  =  247,
+    enum_ops_if_null_s_ic                  =  248,
+    enum_ops_unless_null_p_ic              =  249,
+    enum_ops_unless_null_s_ic              =  250,
+    enum_ops_cmp_i_i_i                     =  251,
+    enum_ops_cmp_i_ic_i                    =  252,
+    enum_ops_cmp_i_i_ic                    =  253,
+    enum_ops_cmp_i_n_n                     =  254,
+    enum_ops_cmp_i_nc_n                    =  255,
+    enum_ops_cmp_i_n_nc                    =  256,
+    enum_ops_cmp_i_s_s                     =  257,
+    enum_ops_cmp_i_sc_s                    =  258,
+    enum_ops_cmp_i_s_sc                    =  259,
+    enum_ops_cmp_i_p_p                     =  260,
+    enum_ops_cmp_i_p_i                     =  261,
+    enum_ops_cmp_i_p_ic                    =  262,
+    enum_ops_cmp_i_p_n                     =  263,
+    enum_ops_cmp_i_p_nc                    =  264,
+    enum_ops_cmp_i_p_s                     =  265,
+    enum_ops_cmp_i_p_sc                    =  266,
+    enum_ops_cmp_str_i_p_p                 =  267,
+    enum_ops_cmp_num_i_p_p                 =  268,
+    enum_ops_cmp_pmc_p_p_p                 =  269,
+    enum_ops_issame_i_p_p                  =  270,
+    enum_ops_issame_i_s_s                  =  271,
+    enum_ops_issame_i_sc_s                 =  272,
+    enum_ops_issame_i_s_sc                 =  273,
+    enum_ops_issame_i_sc_sc                =  274,
+    enum_ops_isntsame_i_p_p                =  275,
+    enum_ops_isntsame_i_s_s                =  276,
+    enum_ops_isntsame_i_sc_s               =  277,
+    enum_ops_isntsame_i_s_sc               =  278,
+    enum_ops_isntsame_i_sc_sc              =  279,
+    enum_ops_istrue_i_p                    =  280,
+    enum_ops_isfalse_i_p                   =  281,
+    enum_ops_isnull_i_p                    =  282,
+    enum_ops_isnull_i_pc                   =  283,
+    enum_ops_isnull_i_s                    =  284,
+    enum_ops_isnull_i_sc                   =  285,
+    enum_ops_isgt_i_p_p                    =  286,
+    enum_ops_isge_i_p_p                    =  287,
+    enum_ops_isle_i_i_i                    =  288,
+    enum_ops_isle_i_ic_i                   =  289,
+    enum_ops_isle_i_i_ic                   =  290,
+    enum_ops_isle_i_n_n                    =  291,
+    enum_ops_isle_i_nc_n                   =  292,
+    enum_ops_isle_i_n_nc                   =  293,
+    enum_ops_isle_i_s_s                    =  294,
+    enum_ops_isle_i_sc_s                   =  295,
+    enum_ops_isle_i_s_sc                   =  296,
+    enum_ops_isle_i_p_p                    =  297,
+    enum_ops_islt_i_i_i                    =  298,
+    enum_ops_islt_i_ic_i                   =  299,
+    enum_ops_islt_i_i_ic                   =  300,
+    enum_ops_islt_i_n_n                    =  301,
+    enum_ops_islt_i_nc_n                   =  302,
+    enum_ops_islt_i_n_nc                   =  303,
+    enum_ops_islt_i_s_s                    =  304,
+    enum_ops_islt_i_sc_s                   =  305,
+    enum_ops_islt_i_s_sc                   =  306,
+    enum_ops_islt_i_p_p                    =  307,
+    enum_ops_iseq_i_i_i                    =  308,
+    enum_ops_iseq_i_ic_i                   =  309,
+    enum_ops_iseq_i_i_ic                   =  310,
+    enum_ops_iseq_i_n_n                    =  311,
+    enum_ops_iseq_i_nc_n                   =  312,
+    enum_ops_iseq_i_n_nc                   =  313,
+    enum_ops_iseq_i_s_s                    =  314,
+    enum_ops_iseq_i_sc_s                   =  315,
+    enum_ops_iseq_i_s_sc                   =  316,
+    enum_ops_iseq_i_p_p                    =  317,
+    enum_ops_isne_i_i_i                    =  318,
+    enum_ops_isne_i_ic_i                   =  319,
+    enum_ops_isne_i_i_ic                   =  320,
+    enum_ops_isne_i_n_n                    =  321,
+    enum_ops_isne_i_nc_n                   =  322,
+    enum_ops_isne_i_n_nc                   =  323,
+    enum_ops_isne_i_s_s                    =  324,
+    enum_ops_isne_i_sc_s                   =  325,
+    enum_ops_isne_i_s_sc                   =  326,
+    enum_ops_isne_i_p_p                    =  327,
+    enum_ops_and_i_i_i                     =  328,
+    enum_ops_and_i_ic_i                    =  329,
+    enum_ops_and_i_i_ic                    =  330,
+    enum_ops_and_p_p_p                     =  331,
+    enum_ops_not_i                         =  332,
+    enum_ops_not_i_i                       =  333,
+    enum_ops_not_p                         =  334,
+    enum_ops_not_p_p                       =  335,
+    enum_ops_or_i_i_i                      =  336,
+    enum_ops_or_i_ic_i                     =  337,
+    enum_ops_or_i_i_ic                     =  338,
+    enum_ops_or_p_p_p                      =  339,
+    enum_ops_xor_i_i_i                     =  340,
+    enum_ops_xor_i_ic_i                    =  341,
+    enum_ops_xor_i_i_ic                    =  342,
+    enum_ops_xor_p_p_p                     =  343,
+    enum_ops_print_i                       =  344,
+    enum_ops_print_ic                      =  345,
+    enum_ops_print_n                       =  346,
+    enum_ops_print_nc                      =  347,
+    enum_ops_print_s                       =  348,
+    enum_ops_print_sc                      =  349,
+    enum_ops_print_p                       =  350,
+    enum_ops_say_i                         =  351,
+    enum_ops_say_ic                        =  352,
+    enum_ops_say_n                         =  353,
+    enum_ops_say_nc                        =  354,
+    enum_ops_say_s                         =  355,
+    enum_ops_say_sc                        =  356,
+    enum_ops_say_p                         =  357,
+    enum_ops_print_p_i                     =  358,
+    enum_ops_print_p_ic                    =  359,
+    enum_ops_print_p_n                     =  360,
+    enum_ops_print_p_nc                    =  361,
+    enum_ops_print_p_s                     =  362,
+    enum_ops_print_p_sc                    =  363,
+    enum_ops_print_p_p                     =  364,
+    enum_ops_getstdin_p                    =  365,
+    enum_ops_getstdout_p                   =  366,
+    enum_ops_getstderr_p                   =  367,
+    enum_ops_abs_i                         =  368,
+    enum_ops_abs_n                         =  369,
+    enum_ops_abs_i_i                       =  370,
+    enum_ops_abs_n_n                       =  371,
+    enum_ops_abs_p                         =  372,
+    enum_ops_abs_p_p                       =  373,
+    enum_ops_add_i_i                       =  374,
+    enum_ops_add_i_ic                      =  375,
+    enum_ops_add_n_n                       =  376,
+    enum_ops_add_n_nc                      =  377,
+    enum_ops_add_p_p                       =  378,
+    enum_ops_add_p_i                       =  379,
+    enum_ops_add_p_ic                      =  380,
+    enum_ops_add_p_n                       =  381,
+    enum_ops_add_p_nc                      =  382,
+    enum_ops_add_i_i_i                     =  383,
+    enum_ops_add_i_ic_i                    =  384,
+    enum_ops_add_i_i_ic                    =  385,
+    enum_ops_add_n_n_n                     =  386,
+    enum_ops_add_n_nc_n                    =  387,
+    enum_ops_add_n_n_nc                    =  388,
+    enum_ops_add_p_p_p                     =  389,
+    enum_ops_add_p_p_i                     =  390,
+    enum_ops_add_p_p_ic                    =  391,
+    enum_ops_add_p_p_n                     =  392,
+    enum_ops_add_p_p_nc                    =  393,
+    enum_ops_dec_i                         =  394,
+    enum_ops_dec_n                         =  395,
+    enum_ops_dec_p                         =  396,
+    enum_ops_div_i_i                       =  397,
+    enum_ops_div_i_ic                      =  398,
+    enum_ops_div_n_n                       =  399,
+    enum_ops_div_n_nc                      =  400,
+    enum_ops_div_p_p                       =  401,
+    enum_ops_div_p_i                       =  402,
+    enum_ops_div_p_ic                      =  403,
+    enum_ops_div_p_n                       =  404,
+    enum_ops_div_p_nc                      =  405,
+    enum_ops_div_i_i_i                     =  406,
+    enum_ops_div_i_ic_i                    =  407,
+    enum_ops_div_i_i_ic                    =  408,
+    enum_ops_div_i_ic_ic                   =  409,
+    enum_ops_div_n_n_n                     =  410,
+    enum_ops_div_n_nc_n                    =  411,
+    enum_ops_div_n_n_nc                    =  412,
+    enum_ops_div_n_nc_nc                   =  413,
+    enum_ops_div_p_p_p                     =  414,
+    enum_ops_div_p_p_i                     =  415,
+    enum_ops_div_p_p_ic                    =  416,
+    enum_ops_div_p_p_n                     =  417,
+    enum_ops_div_p_p_nc                    =  418,
+    enum_ops_fdiv_i_i                      =  419,
+    enum_ops_fdiv_i_ic                     =  420,
+    enum_ops_fdiv_n_n                      =  421,
+    enum_ops_fdiv_n_nc                     =  422,
+    enum_ops_fdiv_p_p                      =  423,
+    enum_ops_fdiv_p_i                      =  424,
+    enum_ops_fdiv_p_ic                     =  425,
+    enum_ops_fdiv_p_n                      =  426,
+    enum_ops_fdiv_p_nc                     =  427,
+    enum_ops_fdiv_i_i_i                    =  428,
+    enum_ops_fdiv_i_ic_i                   =  429,
+    enum_ops_fdiv_i_i_ic                   =  430,
+    enum_ops_fdiv_n_n_n                    =  431,
+    enum_ops_fdiv_n_nc_n                   =  432,
+    enum_ops_fdiv_n_n_nc                   =  433,
+    enum_ops_fdiv_p_p_p                    =  434,
+    enum_ops_fdiv_p_p_i                    =  435,
+    enum_ops_fdiv_p_p_ic                   =  436,
+    enum_ops_fdiv_p_p_n                    =  437,
+    enum_ops_fdiv_p_p_nc                   =  438,
+    enum_ops_ceil_n                        =  439,
+    enum_ops_ceil_i_n                      =  440,
+    enum_ops_ceil_n_n                      =  441,
+    enum_ops_floor_n                       =  442,
+    enum_ops_floor_i_n                     =  443,
+    enum_ops_floor_n_n                     =  444,
+    enum_ops_inc_i                         =  445,
+    enum_ops_inc_n                         =  446,
+    enum_ops_inc_p                         =  447,
+    enum_ops_mod_i_i                       =  448,
+    enum_ops_mod_i_ic                      =  449,
+    enum_ops_mod_n_n                       =  450,
+    enum_ops_mod_n_nc                      =  451,
+    enum_ops_mod_p_p                       =  452,
+    enum_ops_mod_p_i                       =  453,
+    enum_ops_mod_p_ic                      =  454,
+    enum_ops_mod_p_n                       =  455,
+    enum_ops_mod_p_nc                      =  456,
+    enum_ops_mod_i_i_i                     =  457,
+    enum_ops_mod_i_ic_i                    =  458,
+    enum_ops_mod_i_i_ic                    =  459,
+    enum_ops_mod_n_n_n                     =  460,
+    enum_ops_mod_n_nc_n                    =  461,
+    enum_ops_mod_n_n_nc                    =  462,
+    enum_ops_mod_p_p_p                     =  463,
+    enum_ops_mod_p_p_i                     =  464,
+    enum_ops_mod_p_p_ic                    =  465,
+    enum_ops_mod_p_p_n                     =  466,
+    enum_ops_mod_p_p_nc                    =  467,
+    enum_ops_mul_i_i                       =  468,
+    enum_ops_mul_i_ic                      =  469,
+    enum_ops_mul_n_n                       =  470,
+    enum_ops_mul_n_nc                      =  471,
+    enum_ops_mul_p_p                       =  472,
+    enum_ops_mul_p_i                       =  473,
+    enum_ops_mul_p_ic                      =  474,
+    enum_ops_mul_p_n                       =  475,
+    enum_ops_mul_p_nc                      =  476,
+    enum_ops_mul_i_i_i                     =  477,
+    enum_ops_mul_i_ic_i                    =  478,
+    enum_ops_mul_i_i_ic                    =  479,
+    enum_ops_mul_n_n_n                     =  480,
+    enum_ops_mul_n_nc_n                    =  481,
+    enum_ops_mul_n_n_nc                    =  482,
+    enum_ops_mul_p_p_p                     =  483,
+    enum_ops_mul_p_p_i                     =  484,
+    enum_ops_mul_p_p_ic                    =  485,
+    enum_ops_mul_p_p_n                     =  486,
+    enum_ops_mul_p_p_nc                    =  487,
+    enum_ops_neg_i                         =  488,
+    enum_ops_neg_n                         =  489,
+    enum_ops_neg_p                         =  490,
+    enum_ops_neg_i_i                       =  491,
+    enum_ops_neg_n_n                       =  492,
+    enum_ops_neg_p_p                       =  493,
+    enum_ops_sub_i_i                       =  494,
+    enum_ops_sub_i_ic                      =  495,
+    enum_ops_sub_n_n                       =  496,
+    enum_ops_sub_n_nc                      =  497,
+    enum_ops_sub_p_p                       =  498,
+    enum_ops_sub_p_i                       =  499,
+    enum_ops_sub_p_ic                      =  500,
+    enum_ops_sub_p_n                       =  501,
+    enum_ops_sub_p_nc                      =  502,
+    enum_ops_sub_i_i_i                     =  503,
+    enum_ops_sub_i_ic_i                    =  504,
+    enum_ops_sub_i_i_ic                    =  505,
+    enum_ops_sub_n_n_n                     =  506,
+    enum_ops_sub_n_nc_n                    =  507,
+    enum_ops_sub_n_n_nc                    =  508,
+    enum_ops_sub_p_p_p                     =  509,
+    enum_ops_sub_p_p_i                     =  510,
+    enum_ops_sub_p_p_ic                    =  511,
+    enum_ops_sub_p_p_n                     =  512,
+    enum_ops_sub_p_p_nc                    =  513,
+    enum_ops_sqrt_n_n                      =  514,
+    enum_ops_callmethodcc_p_s              =  515,
+    enum_ops_callmethodcc_p_sc             =  516,
+    enum_ops_callmethodcc_p_p              =  517,
+    enum_ops_callmethod_p_s_p              =  518,
+    enum_ops_callmethod_p_sc_p             =  519,
+    enum_ops_callmethod_p_p_p              =  520,
+    enum_ops_tailcallmethod_p_s            =  521,
+    enum_ops_tailcallmethod_p_sc           =  522,
+    enum_ops_tailcallmethod_p_p            =  523,
+    enum_ops_addmethod_p_s_p               =  524,
+    enum_ops_addmethod_p_sc_p              =  525,
+    enum_ops_can_i_p_s                     =  526,
+    enum_ops_can_i_p_sc                    =  527,
+    enum_ops_does_i_p_s                    =  528,
+    enum_ops_does_i_p_sc                   =  529,
+    enum_ops_does_i_p_p                    =  530,
+    enum_ops_does_i_p_pc                   =  531,
+    enum_ops_isa_i_p_s                     =  532,
+    enum_ops_isa_i_p_sc                    =  533,
+    enum_ops_isa_i_p_p                     =  534,
+    enum_ops_isa_i_p_pc                    =  535,
+    enum_ops_newclass_p_s                  =  536,
+    enum_ops_newclass_p_sc                 =  537,
+    enum_ops_newclass_p_p                  =  538,
+    enum_ops_newclass_p_pc                 =  539,
+    enum_ops_subclass_p_p                  =  540,
+    enum_ops_subclass_p_pc                 =  541,
+    enum_ops_subclass_p_p_s                =  542,
+    enum_ops_subclass_p_pc_s               =  543,
+    enum_ops_subclass_p_p_sc               =  544,
+    enum_ops_subclass_p_pc_sc              =  545,
+    enum_ops_subclass_p_p_p                =  546,
+    enum_ops_subclass_p_pc_p               =  547,
+    enum_ops_subclass_p_p_pc               =  548,
+    enum_ops_subclass_p_pc_pc              =  549,
+    enum_ops_subclass_p_s                  =  550,
+    enum_ops_subclass_p_sc                 =  551,
+    enum_ops_subclass_p_s_s                =  552,
+    enum_ops_subclass_p_sc_s               =  553,
+    enum_ops_subclass_p_s_sc               =  554,
+    enum_ops_subclass_p_sc_sc              =  555,
+    enum_ops_subclass_p_s_p                =  556,
+    enum_ops_subclass_p_sc_p               =  557,
+    enum_ops_subclass_p_s_pc               =  558,
+    enum_ops_subclass_p_sc_pc              =  559,
+    enum_ops_get_class_p_s                 =  560,
+    enum_ops_get_class_p_sc                =  561,
+    enum_ops_get_class_p_p                 =  562,
+    enum_ops_get_class_p_pc                =  563,
+    enum_ops_class_p_p                     =  564,
+    enum_ops_addparent_p_p                 =  565,
+    enum_ops_removeparent_p_p              =  566,
+    enum_ops_addrole_p_p                   =  567,
+    enum_ops_addattribute_p_s              =  568,
+    enum_ops_addattribute_p_sc             =  569,
+    enum_ops_removeattribute_p_s           =  570,
+    enum_ops_removeattribute_p_sc          =  571,
+    enum_ops_getattribute_p_p_s            =  572,
+    enum_ops_getattribute_p_p_sc           =  573,
+    enum_ops_getattribute_p_p_p_s          =  574,
+    enum_ops_getattribute_p_p_pc_s         =  575,
+    enum_ops_getattribute_p_p_p_sc         =  576,
+    enum_ops_getattribute_p_p_pc_sc        =  577,
+    enum_ops_setattribute_p_s_p            =  578,
+    enum_ops_setattribute_p_sc_p           =  579,
+    enum_ops_setattribute_p_p_s_p          =  580,
+    enum_ops_setattribute_p_pc_s_p         =  581,
+    enum_ops_setattribute_p_p_sc_p         =  582,
+    enum_ops_setattribute_p_pc_sc_p        =  583,
+    enum_ops_inspect_p_p                   =  584,
+    enum_ops_inspect_p_pc                  =  585,
+    enum_ops_inspect_p_p_s                 =  586,
+    enum_ops_inspect_p_pc_s                =  587,
+    enum_ops_inspect_p_p_sc                =  588,
+    enum_ops_inspect_p_pc_sc               =  589,
+    enum_ops_new_p_s                       =  590,
+    enum_ops_new_p_sc                      =  591,
+    enum_ops_new_p_s_p                     =  592,
+    enum_ops_new_p_sc_p                    =  593,
+    enum_ops_new_p_s_pc                    =  594,
+    enum_ops_new_p_sc_pc                   =  595,
+    enum_ops_new_p_p                       =  596,
+    enum_ops_new_p_pc                      =  597,
+    enum_ops_new_p_p_p                     =  598,
+    enum_ops_new_p_pc_p                    =  599,
+    enum_ops_new_p_p_pc                    =  600,
+    enum_ops_new_p_pc_pc                   =  601,
+    enum_ops_root_new_p_p                  =  602,
+    enum_ops_root_new_p_pc                 =  603,
+    enum_ops_root_new_p_p_p                =  604,
+    enum_ops_root_new_p_pc_p               =  605,
+    enum_ops_root_new_p_p_pc               =  606,
+    enum_ops_root_new_p_pc_pc              =  607,
+    enum_ops_typeof_s_p                    =  608,
+    enum_ops_typeof_p_p                    =  609,
+    enum_ops_get_repr_s_p                  =  610,
+    enum_ops_find_method_p_p_s             =  611,
+    enum_ops_find_method_p_p_sc            =  612,
+    enum_ops_defined_i_p                   =  613,
+    enum_ops_defined_i_p_ki                =  614,
+    enum_ops_defined_i_p_kic               =  615,
+    enum_ops_defined_i_p_k                 =  616,
+    enum_ops_defined_i_p_kc                =  617,
+    enum_ops_exists_i_p_ki                 =  618,
+    enum_ops_exists_i_p_kic                =  619,
+    enum_ops_exists_i_p_k                  =  620,
+    enum_ops_exists_i_p_kc                 =  621,
+    enum_ops_delete_p_k                    =  622,
+    enum_ops_delete_p_kc                   =  623,
+    enum_ops_delete_p_ki                   =  624,
+    enum_ops_delete_p_kic                  =  625,
+    enum_ops_elements_i_p                  =  626,
+    enum_ops_push_p_i                      =  627,
+    enum_ops_push_p_ic                     =  628,
+    enum_ops_push_p_n                      =  629,
+    enum_ops_push_p_nc                     =  630,
+    enum_ops_push_p_s                      =  631,
+    enum_ops_push_p_sc                     =  632,
+    enum_ops_push_p_p                      =  633,
+    enum_ops_pop_i_p                       =  634,
+    enum_ops_pop_n_p                       =  635,
+    enum_ops_pop_s_p                       =  636,
+    enum_ops_pop_p_p                       =  637,
+    enum_ops_unshift_p_i                   =  638,
+    enum_ops_unshift_p_ic                  =  639,
+    enum_ops_unshift_p_n                   =  640,
+    enum_ops_unshift_p_nc                  =  641,
+    enum_ops_unshift_p_s                   =  642,
+    enum_ops_unshift_p_sc                  =  643,
+    enum_ops_unshift_p_p                   =  644,
+    enum_ops_shift_i_p                     =  645,
+    enum_ops_shift_n_p                     =  646,
+    enum_ops_shift_s_p                     =  647,
+    enum_ops_shift_p_p                     =  648,
+    enum_ops_splice_p_p_i_i                =  649,
+    enum_ops_splice_p_p_ic_i               =  650,
+    enum_ops_splice_p_p_i_ic               =  651,
+    enum_ops_splice_p_p_ic_ic              =  652,
+    enum_ops_setprop_p_s_p                 =  653,
+    enum_ops_setprop_p_sc_p                =  654,
+    enum_ops_getprop_p_s_p                 =  655,
+    enum_ops_getprop_p_sc_p                =  656,
+    enum_ops_delprop_p_s                   =  657,
+    enum_ops_delprop_p_sc                  =  658,
+    enum_ops_prophash_p_p                  =  659,
+    enum_ops_freeze_s_p                    =  660,
+    enum_ops_thaw_p_s                      =  661,
+    enum_ops_thaw_p_sc                     =  662,
+    enum_ops_add_multi_s_s_p               =  663,
+    enum_ops_add_multi_sc_s_p              =  664,
+    enum_ops_add_multi_s_sc_p              =  665,
+    enum_ops_add_multi_sc_sc_p             =  666,
+    enum_ops_find_multi_p_s_s              =  667,
+    enum_ops_find_multi_p_sc_s             =  668,
+    enum_ops_find_multi_p_s_sc             =  669,
+    enum_ops_find_multi_p_sc_sc            =  670,
+    enum_ops_register_p                    =  671,
+    enum_ops_unregister_p                  =  672,
+    enum_ops_box_p_i                       =  673,
+    enum_ops_box_p_ic                      =  674,
+    enum_ops_box_p_n                       =  675,
+    enum_ops_box_p_nc                      =  676,
+    enum_ops_box_p_s                       =  677,
+    enum_ops_box_p_sc                      =  678,
+    enum_ops_iter_p_p                      =  679,
+    enum_ops_morph_p_p                     =  680,
+    enum_ops_morph_p_pc                    =  681,
+    enum_ops_clone_s_s                     =  682,
+    enum_ops_clone_s_sc                    =  683,
+    enum_ops_set_i_i                       =  684,
+    enum_ops_set_i_ic                      =  685,
+    enum_ops_set_i_n                       =  686,
+    enum_ops_set_i_nc                      =  687,
+    enum_ops_set_i_s                       =  688,
+    enum_ops_set_i_sc                      =  689,
+    enum_ops_set_n_n                       =  690,
+    enum_ops_set_n_nc                      =  691,
+    enum_ops_set_n_i                       =  692,
+    enum_ops_set_n_ic                      =  693,
+    enum_ops_set_n_s                       =  694,
+    enum_ops_set_n_sc                      =  695,
+    enum_ops_set_n_p                       =  696,
+    enum_ops_set_s_p                       =  697,
+    enum_ops_set_s_s                       =  698,
+    enum_ops_set_s_sc                      =  699,
+    enum_ops_set_s_i                       =  700,
+    enum_ops_set_s_ic                      =  701,
+    enum_ops_set_s_n                       =  702,
+    enum_ops_set_s_nc                      =  703,
+    enum_ops_set_p_pc                      =  704,
+    enum_ops_set_p_p                       =  705,
+    enum_ops_set_p_i                       =  706,
+    enum_ops_set_p_ic                      =  707,
+    enum_ops_set_p_n                       =  708,
+    enum_ops_set_p_nc                      =  709,
+    enum_ops_set_p_s                       =  710,
+    enum_ops_set_p_sc                      =  711,
+    enum_ops_set_i_p                       =  712,
+    enum_ops_assign_p_p                    =  713,
+    enum_ops_assign_p_i                    =  714,
+    enum_ops_assign_p_ic                   =  715,
+    enum_ops_assign_p_n                    =  716,
+    enum_ops_assign_p_nc                   =  717,
+    enum_ops_assign_p_s                    =  718,
+    enum_ops_assign_p_sc                   =  719,
+    enum_ops_assign_s_s                    =  720,
+    enum_ops_assign_s_sc                   =  721,
+    enum_ops_setref_p_p                    =  722,
+    enum_ops_deref_p_p                     =  723,
+    enum_ops_set_p_ki_i                    =  724,
+    enum_ops_set_p_kic_i                   =  725,
+    enum_ops_set_p_ki_ic                   =  726,
+    enum_ops_set_p_kic_ic                  =  727,
+    enum_ops_set_p_ki_n                    =  728,
+    enum_ops_set_p_kic_n                   =  729,
+    enum_ops_set_p_ki_nc                   =  730,
+    enum_ops_set_p_kic_nc                  =  731,
+    enum_ops_set_p_ki_s                    =  732,
+    enum_ops_set_p_kic_s                   =  733,
+    enum_ops_set_p_ki_sc                   =  734,
+    enum_ops_set_p_kic_sc                  =  735,
+    enum_ops_set_p_ki_p                    =  736,
+    enum_ops_set_p_kic_p                   =  737,
+    enum_ops_set_i_p_ki                    =  738,
+    enum_ops_set_i_p_kic                   =  739,
+    enum_ops_set_n_p_ki                    =  740,
+    enum_ops_set_n_p_kic                   =  741,
+    enum_ops_set_s_p_ki                    =  742,
+    enum_ops_set_s_p_kic                   =  743,
+    enum_ops_set_p_p_ki                    =  744,
+    enum_ops_set_p_p_kic                   =  745,
+    enum_ops_set_p_k_i                     =  746,
+    enum_ops_set_p_kc_i                    =  747,
+    enum_ops_set_p_k_ic                    =  748,
+    enum_ops_set_p_kc_ic                   =  749,
+    enum_ops_set_p_k_n                     =  750,
+    enum_ops_set_p_kc_n                    =  751,
+    enum_ops_set_p_k_nc                    =  752,
+    enum_ops_set_p_kc_nc                   =  753,
+    enum_ops_set_p_k_s                     =  754,
+    enum_ops_set_p_kc_s                    =  755,
+    enum_ops_set_p_k_sc                    =  756,
+    enum_ops_set_p_kc_sc                   =  757,
+    enum_ops_set_p_k_p                     =  758,
+    enum_ops_set_p_kc_p                    =  759,
+    enum_ops_set_i_p_k                     =  760,
+    enum_ops_set_i_p_kc                    =  761,
+    enum_ops_set_n_p_k                     =  762,
+    enum_ops_set_n_p_kc                    =  763,
+    enum_ops_set_s_p_k                     =  764,
+    enum_ops_set_s_p_kc                    =  765,
+    enum_ops_set_p_p_k                     =  766,
+    enum_ops_set_p_p_kc                    =  767,
+    enum_ops_clone_p_p                     =  768,
+    enum_ops_clone_p_p_p                   =  769,
+    enum_ops_clone_p_p_pc                  =  770,
+    enum_ops_copy_p_p                      =  771,
+    enum_ops_null_s                        =  772,
+    enum_ops_null_i                        =  773,
+    enum_ops_null_p                        =  774,
+    enum_ops_null_n                        =  775,
+    enum_ops_ord_i_s                       =  776,
+    enum_ops_ord_i_sc                      =  777,
+    enum_ops_ord_i_s_i                     =  778,
+    enum_ops_ord_i_sc_i                    =  779,
+    enum_ops_ord_i_s_ic                    =  780,
+    enum_ops_ord_i_sc_ic                   =  781,
+    enum_ops_chr_s_i                       =  782,
+    enum_ops_chr_s_ic                      =  783,
+    enum_ops_chopn_s_s_i                   =  784,
+    enum_ops_chopn_s_sc_i                  =  785,
+    enum_ops_chopn_s_s_ic                  =  786,
+    enum_ops_chopn_s_sc_ic                 =  787,
+    enum_ops_concat_s_s                    =  788,
+    enum_ops_concat_s_sc                   =  789,
+    enum_ops_concat_p_p                    =  790,
+    enum_ops_concat_p_s                    =  791,
+    enum_ops_concat_p_sc                   =  792,
+    enum_ops_concat_s_s_s                  =  793,
+    enum_ops_concat_s_sc_s                 =  794,
+    enum_ops_concat_s_s_sc                 =  795,
+    enum_ops_concat_p_p_s                  =  796,
+    enum_ops_concat_p_p_sc                 =  797,
+    enum_ops_concat_p_p_p                  =  798,
+    enum_ops_repeat_s_s_i                  =  799,
+    enum_ops_repeat_s_sc_i                 =  800,
+    enum_ops_repeat_s_s_ic                 =  801,
+    enum_ops_repeat_s_sc_ic                =  802,
+    enum_ops_repeat_p_p_i                  =  803,
+    enum_ops_repeat_p_p_ic                 =  804,
+    enum_ops_repeat_p_p_p                  =  805,
+    enum_ops_repeat_p_i                    =  806,
+    enum_ops_repeat_p_ic                   =  807,
+    enum_ops_repeat_p_p                    =  808,
+    enum_ops_length_i_s                    =  809,
+    enum_ops_length_i_sc                   =  810,
+    enum_ops_bytelength_i_s                =  811,
+    enum_ops_bytelength_i_sc               =  812,
+    enum_ops_pin_s                         =  813,
+    enum_ops_unpin_s                       =  814,
+    enum_ops_substr_s_s_i                  =  815,
+    enum_ops_substr_s_sc_i                 =  816,
+    enum_ops_substr_s_s_ic                 =  817,
+    enum_ops_substr_s_sc_ic                =  818,
+    enum_ops_substr_s_s_i_i                =  819,
+    enum_ops_substr_s_sc_i_i               =  820,
+    enum_ops_substr_s_s_ic_i               =  821,
+    enum_ops_substr_s_sc_ic_i              =  822,
+    enum_ops_substr_s_s_i_ic               =  823,
+    enum_ops_substr_s_sc_i_ic              =  824,
+    enum_ops_substr_s_s_ic_ic              =  825,
+    enum_ops_substr_s_sc_ic_ic             =  826,
+    enum_ops_substr_s_p_i_i                =  827,
+    enum_ops_substr_s_p_ic_i               =  828,
+    enum_ops_substr_s_p_i_ic               =  829,
+    enum_ops_substr_s_p_ic_ic              =  830,
+    enum_ops_replace_s_s_i_i_s             =  831,
+    enum_ops_replace_s_sc_i_i_s            =  832,
+    enum_ops_replace_s_s_ic_i_s            =  833,
+    enum_ops_replace_s_sc_ic_i_s           =  834,
+    enum_ops_replace_s_s_i_ic_s            =  835,
+    enum_ops_replace_s_sc_i_ic_s           =  836,
+    enum_ops_replace_s_s_ic_ic_s           =  837,
+    enum_ops_replace_s_sc_ic_ic_s          =  838,
+    enum_ops_replace_s_s_i_i_sc            =  839,
+    enum_ops_replace_s_sc_i_i_sc           =  840,
+    enum_ops_replace_s_s_ic_i_sc           =  841,
+    enum_ops_replace_s_sc_ic_i_sc          =  842,
+    enum_ops_replace_s_s_i_ic_sc           =  843,
+    enum_ops_replace_s_sc_i_ic_sc          =  844,
+    enum_ops_replace_s_s_ic_ic_sc          =  845,
+    enum_ops_replace_s_sc_ic_ic_sc         =  846,
+    enum_ops_index_i_s_s                   =  847,
+    enum_ops_index_i_sc_s                  =  848,
+    enum_ops_index_i_s_sc                  =  849,
+    enum_ops_index_i_sc_sc                 =  850,
+    enum_ops_index_i_s_s_i                 =  851,
+    enum_ops_index_i_sc_s_i                =  852,
+    enum_ops_index_i_s_sc_i                =  853,
+    enum_ops_index_i_sc_sc_i               =  854,
+    enum_ops_index_i_s_s_ic                =  855,
+    enum_ops_index_i_sc_s_ic               =  856,
+    enum_ops_index_i_s_sc_ic               =  857,
+    enum_ops_index_i_sc_sc_ic              =  858,
+    enum_ops_sprintf_s_s_p                 =  859,
+    enum_ops_sprintf_s_sc_p                =  860,
+    enum_ops_sprintf_p_p_p                 =  861,
+    enum_ops_new_s                         =  862,
+    enum_ops_new_s_i                       =  863,
+    enum_ops_new_s_ic                      =  864,
+    enum_ops_stringinfo_i_s_i              =  865,
+    enum_ops_stringinfo_i_sc_i             =  866,
+    enum_ops_stringinfo_i_s_ic             =  867,
+    enum_ops_stringinfo_i_sc_ic            =  868,
+    enum_ops_upcase_s_s                    =  869,
+    enum_ops_upcase_s_sc                   =  870,
+    enum_ops_downcase_s_s                  =  871,
+    enum_ops_downcase_s_sc                 =  872,
+    enum_ops_titlecase_s_s                 =  873,
+    enum_ops_titlecase_s_sc                =  874,
+    enum_ops_join_s_s_p                    =  875,
+    enum_ops_join_s_sc_p                   =  876,
+    enum_ops_split_p_s_s                   =  877,
+    enum_ops_split_p_sc_s                  =  878,
+    enum_ops_split_p_s_sc                  =  879,
+    enum_ops_split_p_sc_sc                 =  880,
+    enum_ops_charset_i_s                   =  881,
+    enum_ops_charset_i_sc                  =  882,
+    enum_ops_charsetname_s_i               =  883,
+    enum_ops_charsetname_s_ic              =  884,
+    enum_ops_find_charset_i_s              =  885,
+    enum_ops_find_charset_i_sc             =  886,
+    enum_ops_trans_charset_s_s_i           =  887,
+    enum_ops_trans_charset_s_sc_i          =  888,
+    enum_ops_trans_charset_s_s_ic          =  889,
+    enum_ops_trans_charset_s_sc_ic         =  890,
+    enum_ops_encoding_i_s                  =  891,
+    enum_ops_encoding_i_sc                 =  892,
+    enum_ops_encodingname_s_i              =  893,
+    enum_ops_encodingname_s_ic             =  894,
+    enum_ops_find_encoding_i_s             =  895,
+    enum_ops_find_encoding_i_sc            =  896,
+    enum_ops_trans_encoding_s_s_i          =  897,
+    enum_ops_trans_encoding_s_sc_i         =  898,
+    enum_ops_trans_encoding_s_s_ic         =  899,
+    enum_ops_trans_encoding_s_sc_ic        =  900,
+    enum_ops_is_cclass_i_i_s_i             =  901,
+    enum_ops_is_cclass_i_ic_s_i            =  902,
+    enum_ops_is_cclass_i_i_sc_i            =  903,
+    enum_ops_is_cclass_i_ic_sc_i           =  904,
+    enum_ops_is_cclass_i_i_s_ic            =  905,
+    enum_ops_is_cclass_i_ic_s_ic           =  906,
+    enum_ops_is_cclass_i_i_sc_ic           =  907,
+    enum_ops_is_cclass_i_ic_sc_ic          =  908,
+    enum_ops_find_cclass_i_i_s_i_i         =  909,
+    enum_ops_find_cclass_i_ic_s_i_i        =  910,
+    enum_ops_find_cclass_i_i_sc_i_i        =  911,
+    enum_ops_find_cclass_i_ic_sc_i_i       =  912,
+    enum_ops_find_cclass_i_i_s_ic_i        =  913,
+    enum_ops_find_cclass_i_ic_s_ic_i       =  914,
+    enum_ops_find_cclass_i_i_sc_ic_i       =  915,
+    enum_ops_find_cclass_i_ic_sc_ic_i      =  916,
+    enum_ops_find_cclass_i_i_s_i_ic        =  917,
+    enum_ops_find_cclass_i_ic_s_i_ic       =  918,
+    enum_ops_find_cclass_i_i_sc_i_ic       =  919,
+    enum_ops_find_cclass_i_ic_sc_i_ic      =  920,
+    enum_ops_find_cclass_i_i_s_ic_ic       =  921,
+    enum_ops_find_cclass_i_ic_s_ic_ic      =  922,
+    enum_ops_find_cclass_i_i_sc_ic_ic      =  923,
+    enum_ops_find_cclass_i_ic_sc_ic_ic     =  924,
+    enum_ops_find_not_cclass_i_i_s_i_i     =  925,
+    enum_ops_find_not_cclass_i_ic_s_i_i    =  926,
+    enum_ops_find_not_cclass_i_i_sc_i_i    =  927,
+    enum_ops_find_not_cclass_i_ic_sc_i_i   =  928,
+    enum_ops_find_not_cclass_i_i_s_ic_i    =  929,
+    enum_ops_find_not_cclass_i_ic_s_ic_i   =  930,
+    enum_ops_find_not_cclass_i_i_sc_ic_i   =  931,
+    enum_ops_find_not_cclass_i_ic_sc_ic_i  =  932,
+    enum_ops_find_not_cclass_i_i_s_i_ic    =  933,
+    enum_ops_find_not_cclass_i_ic_s_i_ic   =  934,
+    enum_ops_find_not_cclass_i_i_sc_i_ic   =  935,
+    enum_ops_find_not_cclass_i_ic_sc_i_ic  =  936,
+    enum_ops_find_not_cclass_i_i_s_ic_ic   =  937,
+    enum_ops_find_not_cclass_i_ic_s_ic_ic  =  938,
+    enum_ops_find_not_cclass_i_i_sc_ic_ic  =  939,
+    enum_ops_find_not_cclass_i_ic_sc_ic_ic =  940,
+    enum_ops_escape_s_s                    =  941,
+    enum_ops_compose_s_s                   =  942,
+    enum_ops_compose_s_sc                  =  943,
+    enum_ops_spawnw_i_s                    =  944,
+    enum_ops_spawnw_i_sc                   =  945,
+    enum_ops_spawnw_i_p                    =  946,
+    enum_ops_err_i                         =  947,
+    enum_ops_err_s                         =  948,
+    enum_ops_err_s_i                       =  949,
+    enum_ops_err_s_ic                      =  950,
+    enum_ops_time_i                        =  951,
+    enum_ops_time_n                        =  952,
+    enum_ops_sleep_i                       =  953,
+    enum_ops_sleep_ic                      =  954,
+    enum_ops_sleep_n                       =  955,
+    enum_ops_sleep_nc                      =  956,
+    enum_ops_store_lex_s_p                 =  957,
+    enum_ops_store_lex_sc_p                =  958,
+    enum_ops_store_dynamic_lex_s_p         =  959,
+    enum_ops_store_dynamic_lex_sc_p        =  960,
+    enum_ops_find_lex_p_s                  =  961,
+    enum_ops_find_lex_p_sc                 =  962,
+    enum_ops_find_dynamic_lex_p_s          =  963,
+    enum_ops_find_dynamic_lex_p_sc         =  964,
+    enum_ops_find_caller_lex_p_s           =  965,
+    enum_ops_find_caller_lex_p_sc          =  966,
+    enum_ops_get_namespace_p               =  967,
+    enum_ops_get_namespace_p_p             =  968,
+    enum_ops_get_namespace_p_pc            =  969,
+    enum_ops_get_hll_namespace_p           =  970,
+    enum_ops_get_hll_namespace_p_p         =  971,
+    enum_ops_get_hll_namespace_p_pc        =  972,
+    enum_ops_get_root_namespace_p          =  973,
+    enum_ops_get_root_namespace_p_p        =  974,
+    enum_ops_get_root_namespace_p_pc       =  975,
+    enum_ops_get_global_p_s                =  976,
+    enum_ops_get_global_p_sc               =  977,
+    enum_ops_get_global_p_p_s              =  978,
+    enum_ops_get_global_p_pc_s             =  979,
+    enum_ops_get_global_p_p_sc             =  980,
+    enum_ops_get_global_p_pc_sc            =  981,
+    enum_ops_get_hll_global_p_s            =  982,
+    enum_ops_get_hll_global_p_sc           =  983,
+    enum_ops_get_hll_global_p_p_s          =  984,
+    enum_ops_get_hll_global_p_pc_s         =  985,
+    enum_ops_get_hll_global_p_p_sc         =  986,
+    enum_ops_get_hll_global_p_pc_sc        =  987,
+    enum_ops_get_root_global_p_s           =  988,
+    enum_ops_get_root_global_p_sc          =  989,
+    enum_ops_get_root_global_p_p_s         =  990,
+    enum_ops_get_root_global_p_pc_s        =  991,
+    enum_ops_get_root_global_p_p_sc        =  992,
+    enum_ops_get_root_global_p_pc_sc       =  993,
+    enum_ops_set_global_s_p                =  994,
+    enum_ops_set_global_sc_p               =  995,
+    enum_ops_set_global_p_s_p              =  996,
+    enum_ops_set_global_pc_s_p             =  997,
+    enum_ops_set_global_p_sc_p             =  998,
+    enum_ops_set_global_pc_sc_p            =  999,
+    enum_ops_set_hll_global_s_p            = 1000,
+    enum_ops_set_hll_global_sc_p           = 1001,
+    enum_ops_set_hll_global_p_s_p          = 1002,
+    enum_ops_set_hll_global_pc_s_p         = 1003,
+    enum_ops_set_hll_global_p_sc_p         = 1004,
+    enum_ops_set_hll_global_pc_sc_p        = 1005,
+    enum_ops_set_root_global_s_p           = 1006,
+    enum_ops_set_root_global_sc_p          = 1007,
+    enum_ops_set_root_global_p_s_p         = 1008,
+    enum_ops_set_root_global_pc_s_p        = 1009,
+    enum_ops_set_root_global_p_sc_p        = 1010,
+    enum_ops_set_root_global_pc_sc_p       = 1011,
+    enum_ops_find_name_p_s                 = 1012,
+    enum_ops_find_name_p_sc                = 1013,
+    enum_ops_find_sub_not_null_p_s         = 1014,
+    enum_ops_find_sub_not_null_p_sc        = 1015,
+    enum_ops_trap                          = 1016,
+    enum_ops_set_label_p_ic                = 1017,
+    enum_ops_get_label_i_p                 = 1018,
+    enum_ops_fetch_p_p_p_p                 = 1019,
+    enum_ops_fetch_p_pc_p_p                = 1020,
+    enum_ops_fetch_p_p_pc_p                = 1021,
+    enum_ops_fetch_p_pc_pc_p               = 1022,
+    enum_ops_fetch_p_p_p_pc                = 1023,
+    enum_ops_fetch_p_pc_p_pc               = 1024,
+    enum_ops_fetch_p_p_pc_pc               = 1025,
+    enum_ops_fetch_p_pc_pc_pc              = 1026,
+    enum_ops_fetch_p_p_i_p                 = 1027,
+    enum_ops_fetch_p_pc_i_p                = 1028,
+    enum_ops_fetch_p_p_ic_p                = 1029,
+    enum_ops_fetch_p_pc_ic_p               = 1030,
+    enum_ops_fetch_p_p_i_pc                = 1031,
+    enum_ops_fetch_p_pc_i_pc               = 1032,
+    enum_ops_fetch_p_p_ic_pc               = 1033,
+    enum_ops_fetch_p_pc_ic_pc              = 1034,
+    enum_ops_fetch_p_p_s_p                 = 1035,
+    enum_ops_fetch_p_pc_s_p                = 1036,
+    enum_ops_fetch_p_p_sc_p                = 1037,
+    enum_ops_fetch_p_pc_sc_p               = 1038,
+    enum_ops_fetch_p_p_s_pc                = 1039,
+    enum_ops_fetch_p_pc_s_pc               = 1040,
+    enum_ops_fetch_p_p_sc_pc               = 1041,
+    enum_ops_fetch_p_pc_sc_pc              = 1042,
+    enum_ops_vivify_p_p_p_p                = 1043,
+    enum_ops_vivify_p_pc_p_p               = 1044,
+    enum_ops_vivify_p_p_pc_p               = 1045,
+    enum_ops_vivify_p_pc_pc_p              = 1046,
+    enum_ops_vivify_p_p_p_pc               = 1047,
+    enum_ops_vivify_p_pc_p_pc              = 1048,
+    enum_ops_vivify_p_p_pc_pc              = 1049,
+    enum_ops_vivify_p_pc_pc_pc             = 1050,
+    enum_ops_vivify_p_p_i_p                = 1051,
+    enum_ops_vivify_p_pc_i_p               = 1052,
+    enum_ops_vivify_p_p_ic_p               = 1053,
+    enum_ops_vivify_p_pc_ic_p              = 1054,
+    enum_ops_vivify_p_p_i_pc               = 1055,
+    enum_ops_vivify_p_pc_i_pc              = 1056,
+    enum_ops_vivify_p_p_ic_pc              = 1057,
+    enum_ops_vivify_p_pc_ic_pc             = 1058,
+    enum_ops_vivify_p_p_s_p                = 1059,
+    enum_ops_vivify_p_pc_s_p               = 1060,
+    enum_ops_vivify_p_p_sc_p               = 1061,
+    enum_ops_vivify_p_pc_sc_p              = 1062,
+    enum_ops_vivify_p_p_s_pc               = 1063,
+    enum_ops_vivify_p_pc_s_pc              = 1064,
+    enum_ops_vivify_p_p_sc_pc              = 1065,
+    enum_ops_vivify_p_pc_sc_pc             = 1066,
+    enum_ops_new_p_s_i                     = 1067,
+    enum_ops_new_p_sc_i                    = 1068,
+    enum_ops_new_p_s_ic                    = 1069,
+    enum_ops_new_p_sc_ic                   = 1070,
+    enum_ops_new_p_p_i                     = 1071,
+    enum_ops_new_p_pc_i                    = 1072,
+    enum_ops_new_p_p_ic                    = 1073,
+    enum_ops_new_p_pc_ic                   = 1074,
+    enum_ops_root_new_p_p_i                = 1075,
+    enum_ops_root_new_p_pc_i               = 1076,
+    enum_ops_root_new_p_p_ic               = 1077,
+    enum_ops_root_new_p_pc_ic              = 1078,
+    enum_ops_find_codepoint_i_s            = 1079,
+    enum_ops_find_codepoint_i_sc           = 1080,
+    enum_ops_finalize_p                    = 1081,
+    enum_ops_finalize_pc                   = 1082,
 };
 
 

Modified: branches/gsoc_nfg/include/parrot/packfile.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/packfile.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/packfile.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -222,7 +222,6 @@
 
 typedef enum {
     enum_fixup_none,
-    enum_fixup_label,
     enum_fixup_sub
 } enum_fixup_t;
 

Modified: branches/gsoc_nfg/include/parrot/platform_interface.h
==============================================================================
--- branches/gsoc_nfg/include/parrot/platform_interface.h	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/include/parrot/platform_interface.h	Mon Jun  7 18:03:08 2010	(r47436)
@@ -57,8 +57,14 @@
 void Parrot_usleep(unsigned int microseconds);
 INTVAL Parrot_intval_time(void);
 FLOATVAL Parrot_floatval_time(void);
+
+PARROT_EXPORT
 struct tm * Parrot_gmtime_r(const time_t *, struct tm *);
+
+PARROT_EXPORT
 struct tm * Parrot_localtime_r(const time_t *, struct tm *);
+
+PARROT_EXPORT
 char* Parrot_asctime_r(const struct tm*, char *);
 
 /*

Modified: branches/gsoc_nfg/lib/Parrot/Configure.pm
==============================================================================
--- branches/gsoc_nfg/lib/Parrot/Configure.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/lib/Parrot/Configure.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -21,6 +21,7 @@
 
     $conf->add_steps(@steps);
     $conf->runsteps;
+    $conf->debug(@messages);
 
 =head1 DESCRIPTION
 
@@ -554,6 +555,22 @@
     return;
 }
 
+=item * C<debug()>
+
+When C<--verbose> is requested, or when a particular configuration step is
+specified in C<--verbose-step>, this method prints its arguments as a string
+on STDOUT.
+
+=cut
+
+sub debug {
+    my ($conf, @messages) = @_;
+    if ($conf->options->get('verbose')) {
+        print join('' => @messages);
+    }
+    return 1;
+}
+
 =back
 
 =head1 CREDITS

Modified: branches/gsoc_nfg/lib/Parrot/Configure/Step/List.pm
==============================================================================
--- branches/gsoc_nfg/lib/Parrot/Configure/Step/List.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/lib/Parrot/Configure/Step/List.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -48,7 +48,6 @@
     auto::socklen_t
     auto::neg_0
     auto::env
-    auto::extra_nci_thunks
     auto::thread
     auto::gmp
     auto::readline

Modified: branches/gsoc_nfg/lib/Parrot/Harness/DefaultTests.pm
==============================================================================
--- branches/gsoc_nfg/lib/Parrot/Harness/DefaultTests.pm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/lib/Parrot/Harness/DefaultTests.pm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -65,7 +65,6 @@
     t/pmc/*.t
     t/oo/*.t
     t/native_pbc/*.t
-    t/dynpmc/*.t
 );
 
 # core tests are run unless --runcore-tests is present.  Typically

Modified: branches/gsoc_nfg/runtime/parrot/library/Archive/Tar.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/Archive/Tar.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/Archive/Tar.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -14,6 +14,7 @@
 =cut
 
 .include 'stat.pasm'
+.loadlib 'io_ops'
 
 =head3 Class Archive;Tar;File
 
@@ -438,8 +439,11 @@
 .sub '_error' :method
     .param pmc args :slurpy
     $S0 = join '', args
-    printerr $S0
-    printerr "\n"
+    $P0 = getinterp
+    .include 'stdio.pasm'
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'($S0)
+    $P1.'print'("\n")
 .end
 
 =back

Modified: branches/gsoc_nfg/runtime/parrot/library/Archive/Zip.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/Archive/Zip.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/Archive/Zip.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -13,6 +13,8 @@
 
 =cut
 
+.loadlib 'sys_ops'
+.loadlib 'io_ops'
 .include 'stat.pasm'
 .include 'tm.pasm'
 
@@ -43,8 +45,11 @@
 .sub '_printError'
     .param pmc args :slurpy
     $S0 = join '', args
-    printerr $S0
-    printerr "\n"
+    $P0 = getinterp
+    .include 'stdio.pasm'
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'($S0)
+    $P1.'print'("\n")
 .end
 
 .sub '_ioError' :method
@@ -388,11 +393,11 @@
 .sub '_refreshLocalFileHeader' :method
     .param pmc fh
     .local int here
-    here = tell fh
+    here = fh.'tell'()
     $P0 = getattribute self, 'writeLocalHeaderRelativeOffset'
     $I0 = $P0
     $I0 += SIGNATURE_LENGTH
-    seek fh, $I0, 0
+    fh.'seek'($I0, 0)
     .local string header, fileName, localExtraField
     .const string VERSION = 20
     header = self.'pack_v'(VERSION)
@@ -428,7 +433,7 @@
     if $I0 goto L2
     .tailcall self.'_ioError'('re-writing local header')
   L2:
-    seek fh, here, 0
+    fh.'seek'(here, 0)
     .return (AZ_OK)
 .end
 
@@ -597,7 +602,7 @@
     .return ('', AZ_OK)
   L1:
     $P0 = self.'fh'()
-    $S0 = read $P0, chunkSize
+    $S0 = $P0.'read'(chunkSize)
     unless $S0 == '' goto L2
     $I0 = self.'_ioError'("reading data")
     .return ($S0, $I0)
@@ -647,7 +652,7 @@
     .return ($I0)
   L1:
     $P0 = self.'fh'()
-    seek $P0, 0, 0
+    $P0.'seek'(0, 0)
     .return (AZ_OK)
 .end
 

Modified: branches/gsoc_nfg/runtime/parrot/library/CGI/QueryHash.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/CGI/QueryHash.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/CGI/QueryHash.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -69,9 +69,11 @@
         .local int len
         content_length  = my_env['CONTENT_LENGTH']
         len             = content_length
-        in              = getstdin
-        query           = read in, len
-        close in
+        $P0             = getinterp
+        .include 'stdio.pasm'
+        in              = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+        query           = in.'read'(len)
+        in.'close'()
         #_dumper( query, 'queryPOST:' )
         query_hash = parse( query )
 

Modified: branches/gsoc_nfg/runtime/parrot/library/Config/JSON.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/Config/JSON.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/Config/JSON.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -25,7 +25,8 @@
     .local string text
     .local pmc fh
 
-    fh = open filename, 'r'
+    fh = new ['FileHandle']
+    fh.'open'(filename, 'r')
     if fh goto slurp_file
     $P0 = new 'Exception'
     $S0 = concat "Can't open file: ", filename
@@ -75,10 +76,11 @@
     output = _json( config, expanded )
 
     # write out the file..
-    $P1 = open filename, 'w'
+    $P1 = new ['FileHandle']
+    $P1.'open'(filename, 'w')
     print $P1, output
     print $P1, "\n"
-    close $P1
+    $P1.'close'()
 
 .end
 

Modified: branches/gsoc_nfg/runtime/parrot/library/Configure/genfile.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/Configure/genfile.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/Configure/genfile.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -38,6 +38,7 @@
 
 =cut
 
+.loadlib 'sys_ops'
 .include 'sysinfo.pasm'
 
 .sub 'genfile'
@@ -356,13 +357,16 @@
     .param string str
     .param int pos
     .param string msg
-    printerr "in '"
-    printerr str
-    printerr "' at "
-    printerr pos
-    printerr " : "
-    printerr msg
-    printerr "\n"
+    $P0 = getinterp
+    .include 'stdio.pasm'
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("in '")
+    $P1.'print'(str)
+    $P1.'print'("' at ")
+    $P1.'print'(pos)
+    $P1.'print'(" : ")
+    $P1.'print'(msg)
+    $P1.'print'("\n")
 .end
 
 .sub 'interpolate_var'
@@ -401,9 +405,12 @@
     $I1 = $I3
     goto L8
   L7:
-    printerr "\tunknown config: "
-    printerr $S1
-    printerr "\n"
+    $P0 = getinterp
+    .include 'stdio.pasm'
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("\tunknown config: ")
+    $P1.'print'($S1)
+    $P1.'print'("\n")
   L6:
     $I0 = $I3 + 1
     goto L3

Modified: branches/gsoc_nfg/runtime/parrot/library/Crow.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/Crow.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/Crow.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -15,8 +15,8 @@
     getopts = new ['Getopt';'Obj']
     getopts.'notOptStop'(1)
 
-    getopts = push 'help|h'
-    getopts = push 'type|t=s'
+    push getopts, 'help|h'
+    push getopts, 'type|t=s'
 
     .local pmc opts
     opts = getopts.'get_options'(args)
@@ -65,7 +65,8 @@
     .local pmc newsfile
     .local string buf, news, start
 
-    newsfile = open 'NEWS', 'r'
+    newsfile = new ['FileHandle']
+    newsfile.'open'('NEWS', 'r')
 
     ## find the start of the news item for this version
     start    = concat 'New in ', version
@@ -73,12 +74,12 @@
   before:
     $I0 = newsfile.'eof'()
     if $I0 goto err_news
-    buf      = readline newsfile
+    buf      = newsfile.'readline'()
     $I0      = index buf, start
     if  $I0 != 0 goto before
 
   blank:
-    buf      = readline newsfile
+    buf      = newsfile.'readline'()
     $I0      = index buf, "\n"
     if  $I0 == 0 goto blank
     $I0      = index buf, "\r"
@@ -86,7 +87,7 @@
     news    .= buf
 
   item:
-    buf      = readline newsfile
+    buf      = newsfile.'readline'()
     $I0      = index buf, "\n"
     if  $I0 == 0 goto done
     $I0      = index buf, "\r"

Modified: branches/gsoc_nfg/runtime/parrot/library/Digest/MD5.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/Digest/MD5.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/Digest/MD5.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -49,6 +49,8 @@
 
 =cut
 
+.loadlib 'bit_ops'
+
 ###########################################################################
 # Export function entries to globals
 

Modified: branches/gsoc_nfg/runtime/parrot/library/HTTP/Message.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/HTTP/Message.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/HTTP/Message.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -20,6 +20,8 @@
 
 .namespace ['HTTP';'Date']
 
+.loadlib 'io_ops' # XXX avoids segfaults for some reason (see TT #1663)
+.loadlib 'sys_ops'
 .include 'tm.pasm'
 
 .sub 'time2str'

Modified: branches/gsoc_nfg/runtime/parrot/library/LWP/Protocol.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/LWP/Protocol.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/LWP/Protocol.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -85,6 +85,7 @@
 
 .namespace ['LWP';'Protocol';'file']
 
+.loadlib 'io_ops'
 .include 'stat.pasm'
 
 .sub '' :init :load :anon

Modified: branches/gsoc_nfg/runtime/parrot/library/LWP/UserAgent.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/LWP/UserAgent.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/LWP/UserAgent.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -17,6 +17,7 @@
 =cut
 
 .namespace ['LWP';'UserAgent']
+.loadlib 'io_ops'
 
 .sub '' :init :load :anon
     load_bytecode 'URI.pbc'

Modified: branches/gsoc_nfg/runtime/parrot/library/PGE/Util.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/PGE/Util.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/PGE/Util.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -132,7 +132,10 @@
     message .= $S0
     message .= "\n"
   emit_message:
-    printerr message
+    $P0 = getinterp
+    .include 'stdio.pasm'
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'(message)
 
     mob.'to'(pos)
     .return (mob)

Modified: branches/gsoc_nfg/runtime/parrot/library/Stream/ParrotIO.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/Stream/ParrotIO.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/Stream/ParrotIO.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -56,7 +56,8 @@
     .param string mode
     .local pmc pio
 
-    open pio, name, mode
+    pio = new ['FileHandle']
+    pio.'open'(name, mode)
     assign self, pio
 .end
 
@@ -100,7 +101,7 @@
 
     bs = self."blockSize"()
     pio = self."source"()
-    read str, pio, bs
+    str = pio.'read'(bs)
     length $I0, str
     if $I0 > 0 goto OK
     self."close"()

Modified: branches/gsoc_nfg/runtime/parrot/library/TAP/Harness.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/TAP/Harness.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/TAP/Harness.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -226,7 +226,7 @@
     .param pmc parser
     $P0 = parser.'delete_spool'()
     if null $P0 goto L1
-    close $P0
+    $P0.'close'()
   L1:
 .end
 

Modified: branches/gsoc_nfg/runtime/parrot/library/TAP/Parser.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/TAP/Parser.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/TAP/Parser.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -908,14 +908,14 @@
     push_eh _handler
     $P0.'open'(filename, 'r')
     pop_eh
-    $S0 = readline $P0
+    $S0 = $P0.'readline'()
     $I0 = index $S0, '#!'
     unless $I0 == 0 goto L1
-    close $P0
+    $P0.'close'()
     $S0 = _get_exec($S0)
     .tailcall self.'exec'($S0, filename)
   L1:
-    seek $P0, 0, 0
+    $P0.'seek'(0, 0)
     setattribute self, 'stream', $P0
     .return ()
   _handler:
@@ -1010,7 +1010,7 @@
     st = box 'INIT'
     .lex 'state', st
   L2:
-    $S0 = readline stream
+    $S0 = stream.'readline'()
     if $S0 == '' goto L3
     $S0 = chomp($S0)
     .local pmc token
@@ -1034,7 +1034,7 @@
     .yield (token)
     goto L2
   L3:
-    close stream
+    stream.'close'()
     $I0 = can stream, 'exit_status'
     unless $I0 goto L7
     $I0 = stream.'exit_status'()
@@ -1085,9 +1085,12 @@
     set st, $S0
     goto L5
   L2:
-    printerr "Unhandled token type: "
-    printerr type
-    printerr "\n"
+    $P0 = getinterp
+    .include 'stdio.pasm'
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("Unhandled token type: ")
+    $P1.'print'(type)
+    $P1.'print'("\n")
   L5:
 .end
 

Modified: branches/gsoc_nfg/runtime/parrot/library/Test/Builder/Output.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/Test/Builder/Output.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/Test/Builder/Output.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -57,14 +57,18 @@
 	.local pmc output
 	.local pmc diag_output
 
+        .include 'stdio.pasm'
+
 	output = args['output']
 	unless null output goto CHECK_ERROR_OUTPUT
-	getstdout output
+        $P0 = getinterp
+        output = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
 
   CHECK_ERROR_OUTPUT:
 	diag_output = args['diag_output']
 	unless null diag_output goto SET_OUTPUT
-	getstderr diag_output
+        $P0 = getinterp
+        diag_output = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
 
   SET_OUTPUT:
 	setattribute self, "output", output
@@ -144,7 +148,7 @@
     if i == 0 goto LINE_OK
   	line       = lines[i]
   	first_char = substr line, 0, 1
-	eq_str first_char, '#', LINE_OK
+	if first_char == '#' goto LINE_OK
 
 	.local string new_line
 	new_line = '# '
@@ -184,7 +188,7 @@
 
 	.local string first_char
 	first_char = substr message, 0, 1
-	eq_str first_char, '#', WRITE_MESSAGE
+	if first_char == '#' goto WRITE_MESSAGE
 
 	first_char = '# '
 	concat first_char, message

Modified: branches/gsoc_nfg/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/distutils.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/distutils.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -132,6 +132,31 @@
 
 =head2 EXAMPLES
 
+    $ cat hello.pir
+    .sub 'main' :main
+        say 'hello world!'
+    .end
+
+    $ cat setup.pir
+    .sub 'main' :main
+        .param pmc args
+        $S0 = shift args
+        load_bytecode 'distutils.pbc'
+
+        $P0 = new 'Hash'
+        $P1 = new 'Hash'
+        $P1['hello.pbc'] = 'hello.pir'
+        $P0['pbc_pir'] = $P1
+        $P2 = new 'Hash'
+        $P2['parrot-hello'] = 'hello.pbc'
+        $P0['installable_pbc'] = $P2
+        .tailcall setup(args :flat, $P0 :flat :named)
+    .end
+
+    $ parrot setup.pir
+    $ parrot setup.pir install
+    $ parrot setup clean
+
 L<http://github.com/fperrad/parrot-MT19937/blob/master/setup.pir>
 
 L<http://github.com/fperrad/markdown/blob/master/setup.pir>
@@ -172,6 +197,9 @@
 
 =cut
 
+.loadlib 'io_ops' # workaround TT #1663
+.loadlib 'sys_ops'
+
 .sub '__onload' :load :init :anon
     load_bytecode 'osutils.pbc'
     $P0 = new 'Hash'
@@ -340,7 +368,7 @@
     run_step('usage', kv :flat :named)
   L12:
     pop_eh
-    end
+    .return ()
   _handler:
     .local pmc ex
     .get_results (ex)
@@ -3679,7 +3707,8 @@
 .end
 
 .sub 'get_timestamp' :anon
-    $P0 = open 'date --rfc-2822', 'rp'
+    $P0 = new 'FileHandle'
+    $P0.'open'('date --rfc-2822', 'rp')
     $S0 = $P0.'readline'()
     $P0.'close'()
     $S0 = chopn $S0, 1
@@ -4481,7 +4510,8 @@
     system(cmd, verbose :named('verbose'), 1 :named('ignore_error'))
     unlink(srcname, verbose :named('verbose'))
 
-    $P0 = open exename, 'rp'
+    $P0 = new 'FileHandle'
+    $P0.'open'(exename, 'rp')
     $S0 = $P0.'readall'()
     $P0.'close'()
 
@@ -4518,6 +4548,36 @@
     .return ($I0)
 .end
 
+=item runtests
+
+=cut
+
+.sub 'runtests' :multi()
+    .param pmc files :slurpy
+    .param pmc opts :slurpy :named
+    load_bytecode 'TAP/Harness.pbc'
+    .local pmc harness
+    harness = new ['TAP';'Harness']
+    harness.'process_args'(opts)
+    .local pmc aggregate
+    aggregate = harness.'runtests'(files)
+    $I0 = aggregate.'has_errors'()
+    unless $I0 goto L1
+    $I0 = exists opts['ignore_error']
+    unless $I0 goto L2
+    $I0 = opts['ignore_error']
+    if $I0 goto L1
+  L2:
+    die "test fails"
+  L1:
+.end
+
+.sub 'runtests' :multi(ResizableStringArray,Hash)
+    .param pmc array
+    .param pmc hash
+    .tailcall runtests(array :flat, hash :flat :named)
+.end
+
 =back
 
 =head1 AUTHOR

Modified: branches/gsoc_nfg/runtime/parrot/library/osutils.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/osutils.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/osutils.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -45,6 +45,7 @@
     .return ($I0)
 .end
 
+.loadlib 'io_ops'
 .include 'stat.pasm'
 
 .sub 'file_exists'

Modified: branches/gsoc_nfg/runtime/parrot/library/parrotlib.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/parrotlib.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/parrotlib.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -127,32 +127,46 @@
 .sub dynext_location
     .param string request
     .param string ext
+
+    .local pmc    os
     .local string name
 
+    $P0 = loadlib 'os'
+    os = new ['OS']
+
     name = request
-    stat $I0, name, 0
-    if $I0 goto END
+    push_eh FILE_NOT_FOUND_1
+    # OS.stat throws on file not found
+    os.'stat'(name)
+    goto END
 
+FILE_NOT_FOUND_1:
     name = concat request, ext
-    stat $I0, name, 0
-    if $I0 goto END
+    push_eh FILE_NOT_FOUND_2
+    os.'stat'(name)
+    goto END
 
+FILE_NOT_FOUND_2:
     name = concat "runtime/parrot/dynext/", request
-    stat $I0, name, 0
-    if $I0 goto END
+    push_eh FILE_NOT_FOUND_3
+    os.'stat'(name)
+    goto END
 
+FILE_NOT_FOUND_3:
     name = concat "runtime/parrot/dynext/", request
     name = concat name, ext
-    stat $I0, name, 0
-    if $I0 goto END
+    push_eh FILE_NOT_FOUND_4
+    os.'stat'(name)
+    goto END
 
+FILE_NOT_FOUND_4:
     # file not found, give the OS a chance to locate it
     name = concat request, ext
+    .return (name)
 
 END:
-    .begin_return
-    .set_return name
-    .end_return
+    pop_eh
+    .return (name)
 .end
 
 
@@ -187,10 +201,18 @@
     path = $P0
 
     $S0 = concat path, name
-    stat $I0, $S0, 0
-    if $I0 goto OK
+    $P0 = loadlib 'os'
+    $P0 = new ['OS']
+    push_eh FILE_NOT_FOUND
+        # OS.stat throws on file not found
+        $P0.'stat'($S0)
+    pop_eh
+    goto END
+
+FILE_NOT_FOUND:
     null $S0
-OK:
+
+END:
     .begin_return
     .set_return $S0
     .end_return

Modified: branches/gsoc_nfg/runtime/parrot/library/pcre.pir
==============================================================================
--- branches/gsoc_nfg/runtime/parrot/library/pcre.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/runtime/parrot/library/pcre.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -45,6 +45,7 @@
 
 =cut
 
+.loadlib 'sys_ops'
 .include "sysinfo.pasm"
 
 .sub init

Modified: branches/gsoc_nfg/src/debug.c
==============================================================================
--- branches/gsoc_nfg/src/debug.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/debug.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -3071,6 +3071,7 @@
 
 */
 
+PARROT_EXPORT
 void
 PDB_print(PARROT_INTERP, ARGIN(const char *command))
 {
@@ -3183,6 +3184,7 @@
 
 */
 
+PARROT_EXPORT
 void
 PDB_backtrace(PARROT_INTERP)
 {

Modified: branches/gsoc_nfg/src/dynoplibs/Defines.in
==============================================================================
--- branches/gsoc_nfg/src/dynoplibs/Defines.in	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/dynoplibs/Defines.in	Mon Jun  7 18:03:08 2010	(r47436)
@@ -2,6 +2,11 @@
     $(DYNEXT_DIR)/obscure_ops$(LOAD_EXT) \
     $(DYNEXT_DIR)/math_ops$(LOAD_EXT) \
     $(DYNEXT_DIR)/deprecated_ops$(LOAD_EXT) \
+    $(DYNEXT_DIR)/trans_ops$(LOAD_EXT) \
+    $(DYNEXT_DIR)/bit_ops$(LOAD_EXT) \
+    $(DYNEXT_DIR)/debug_ops$(LOAD_EXT) \
+    $(DYNEXT_DIR)/sys_ops$(LOAD_EXT) \
+    $(DYNEXT_DIR)/io_ops$(LOAD_EXT) \
 
 DYNOPLIBS_CLEANUPS = \
     src/dynoplibs/*.c \

Modified: branches/gsoc_nfg/src/dynoplibs/Rules.in
==============================================================================
--- branches/gsoc_nfg/src/dynoplibs/Rules.in	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/dynoplibs/Rules.in	Mon Jun  7 18:03:08 2010	(r47436)
@@ -7,6 +7,8 @@
     $(PARROT_H_HEADERS) \
     include/parrot/runcore_api.h
 
+#########################
+
 $(DYNEXT_DIR)/obscure_ops$(LOAD_EXT): src/dynoplibs/obscure_ops$(O) $(LIBPARROT)
 	$(LD) @ld_out@$@ src/dynoplibs/obscure_ops$(O) $(LINKARGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
@@ -20,6 +22,7 @@
 src/dynoplibs/obscure_ops.c: src/dynoplibs/obscure.ops $(OPS2C)
 	$(OPS2C) --dynamic src/dynoplibs/obscure.ops --quiet
 
+#########################
 
 $(DYNEXT_DIR)/math_ops$(LOAD_EXT): src/dynoplibs/math_ops$(O) $(LIBPARROT)
 	$(LD) @ld_out@$@ src/dynoplibs/math_ops$(O) $(LINKARGS)
@@ -34,6 +37,7 @@
 
 src/dynoplibs/math_ops.h: src/dynoplibs/math_ops.c
 
+#########################
 
 $(DYNEXT_DIR)/deprecated_ops$(LOAD_EXT): src/dynoplibs/deprecated_ops$(O) $(LIBPARROT)
 	$(LD) @ld_out@$@ src/dynoplibs/deprecated_ops$(O) $(LINKARGS)
@@ -47,3 +51,79 @@
 
 src/dynoplibs/deprecated_ops.c: src/dynoplibs/deprecated.ops $(OPS2C)
 	$(OPS2C) --dynamic src/dynoplibs/deprecated.ops --quiet
+
+#########################
+
+$(DYNEXT_DIR)/trans_ops$(LOAD_EXT): src/dynoplibs/trans_ops$(O) $(LIBPARROT)
+	$(LD) @ld_out@$@ src/dynoplibs/trans_ops$(O) $(LINKARGS)
+#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
+
+src/dynoplibs/trans_ops$(O): $(DYNOP_O_DEPS) \
+    src/dynoplibs/trans_ops.c src/dynoplibs/trans_ops.h
+
+src/dynoplibs/trans_ops.h: src/dynoplibs/trans_ops.c
+
+src/dynoplibs/trans_ops.c: src/dynoplibs/trans.ops $(OPS2C)
+	$(OPS2C) --dynamic src/dynoplibs/trans.ops --quiet
+
+#########################
+
+$(DYNEXT_DIR)/bit_ops$(LOAD_EXT): src/dynoplibs/bit_ops$(O) $(LIBPARROT)
+	$(LD) @ld_out@$@ src/dynoplibs/bit_ops$(O) $(LINKARGS)
+#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
+
+src/dynoplibs/bit_ops$(O): $(DYNOP_O_DEPS) \
+    src/dynoplibs/bit_ops.c src/dynoplibs/bit_ops.h
+
+src/dynoplibs/bit_ops.h: src/dynoplibs/bit_ops.c
+
+src/dynoplibs/bit_ops.c: src/dynoplibs/bit.ops $(OPS2C)
+	$(OPS2C) --dynamic src/dynoplibs/bit.ops --quiet
+
+#########################
+
+$(DYNEXT_DIR)/debug_ops$(LOAD_EXT): src/dynoplibs/debug_ops$(O) $(LIBPARROT)
+	$(LD) @ld_out@$@ src/dynoplibs/debug_ops$(O) $(LINKARGS)
+#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
+
+src/dynoplibs/debug_ops$(O): $(DYNOP_O_DEPS) \
+    src/dynoplibs/debug_ops.c src/dynoplibs/debug_ops.h
+
+src/dynoplibs/debug_ops.h: src/dynoplibs/debug_ops.c
+
+src/dynoplibs/debug_ops.c: src/dynoplibs/debug.ops $(OPS2C)
+	$(OPS2C) --dynamic src/dynoplibs/debug.ops --quiet
+
+#########################
+
+$(DYNEXT_DIR)/sys_ops$(LOAD_EXT): src/dynoplibs/sys_ops$(O) $(LIBPARROT)
+	$(LD) @ld_out@$@ src/dynoplibs/sys_ops$(O) $(LINKARGS)
+#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
+
+src/dynoplibs/sys_ops$(O): $(DYNOP_O_DEPS) \
+    src/dynoplibs/sys_ops.c src/dynoplibs/sys_ops.h
+
+src/dynoplibs/sys_ops.h: src/dynoplibs/sys_ops.c
+
+src/dynoplibs/sys_ops.c: src/dynoplibs/sys.ops $(OPS2C)
+	$(OPS2C) --dynamic src/dynoplibs/sys.ops --quiet
+
+#########################
+
+$(DYNEXT_DIR)/io_ops$(LOAD_EXT): src/dynoplibs/io_ops$(O) $(LIBPARROT)
+	$(LD) @ld_out@$@ src/dynoplibs/io_ops$(O) $(LINKARGS)
+#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
+
+src/dynoplibs/io_ops$(O): $(DYNOP_O_DEPS) \
+    src/dynoplibs/io_ops.c src/dynoplibs/io_ops.h
+
+src/dynoplibs/io_ops.h: src/dynoplibs/io_ops.c
+
+src/dynoplibs/io_ops.c: src/dynoplibs/io.ops $(OPS2C)
+	$(OPS2C) --dynamic src/dynoplibs/io.ops --quiet
+

Copied: branches/gsoc_nfg/src/dynoplibs/bit.ops (from r47434, trunk/src/dynoplibs/bit.ops)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/src/dynoplibs/bit.ops	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/src/dynoplibs/bit.ops)
@@ -0,0 +1,542 @@
+/*
+ * $Id$
+** bit.ops
+*/
+
+BEGIN_OPS_PREAMBLE
+ /* Signed shift operator that is compatible with PMC shifts.  This is
+  * guaranteed to produce the same result as bitwise_left_shift_internal modulo
+  * word size, ignoring the fact that Parrot integers are always signed.  This
+  * usually gives the same answer regardless whether you shift PMC operands and
+  * then assign to an I-reg, or move the operands to I-regs and do the shift
+  * there -- except when the true result is between 2^{w-1} and 2^w (where w is
+  * the word size), in which case the high order bit is taken as the sign,
+  * giving a truncated result that is 2^w lower.
+  */
+#define bit_shift_left(number, bits) \
+    ((bits) >= 8*INTVAL_SIZE     ? 0                    \
+     : (bits) >= 0               ? (number) << (bits)   \
+     : (bits) > -8*INTVAL_SIZE   ? (number) >> -(bits)   \
+     : 0)
+
+END_OPS_PREAMBLE
+
+=head1 NAME
+
+bit.ops - Bitwise Opcodes Dynoplib
+
+=head1 DESCRIPTION
+
+Operations that deal with bits directly, either individually
+or in groups.
+
+The variant with an appended B<s> like B<bands> work on strings.
+
+=over 4
+
+=cut
+
+########################################
+
+=item B<band>(invar PMC, in INT)
+
+=item B<band>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<and> of the corresponding bits
+from $1 and $2.
+
+=item B<band>(invar PMC, invar PMC, in INT)
+
+=item B<band>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<and> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op band(invar PMC, in INT) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $1);
+    const INTVAL b = a & $2;
+    VTABLE_set_integer_native(interp, $1, b);
+}
+
+inline op band(invar PMC, invar PMC) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $1);
+    const INTVAL b = VTABLE_get_integer(interp, $2);
+    VTABLE_set_integer_native(interp, $1, a & b);
+}
+
+inline op band(invar PMC, invar PMC, in INT) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $2);
+    VTABLE_set_integer_native(interp, $1, a & $3);
+}
+
+inline op band(invar PMC, invar PMC, invar PMC) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $2);
+    const INTVAL b = VTABLE_get_integer(interp, $3);
+    VTABLE_set_integer_native(interp, $1, a & b);
+}
+
+=item B<bands>(invar PMC, in STR)
+
+=item B<bands>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<and> of the corresponding bits
+from $1 and $2.
+
+=item B<bands>(out STR, in STR, in STR)
+
+=item B<bands>(invar PMC, invar PMC, in STR)
+
+=item B<bands>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<and> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op bands(invar PMC, in STR) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $1);
+    STRING * const b = Parrot_str_bitwise_and(interp, a, $2);
+    VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bands(invar PMC, invar PMC) :base_core {
+    STRING * a = VTABLE_get_string(interp, $1);
+    STRING * const b = VTABLE_get_string(interp, $2);
+    a = Parrot_str_bitwise_and(interp, a, b);
+    VTABLE_set_string_native(interp, $1, a);
+}
+
+inline op bands(out STR, in STR, in STR) :base_core {
+    $1 = Parrot_str_bitwise_and(interp, $2, $3);
+}
+
+inline op bands(invar PMC, invar PMC, in STR) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $2);
+    STRING * const b = Parrot_str_bitwise_and(interp, a, $3);
+    VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bands(invar PMC, invar PMC, invar PMC) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $2);
+    STRING * const b = VTABLE_get_string(interp, $3);
+    STRING * const c = Parrot_str_bitwise_and(interp, a, b);
+    VTABLE_set_string_native(interp, $1, c);
+}
+
+########################################
+
+=item B<bor>(invar PMC, in INT)
+
+=item B<bor>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<or> of the corresponding bits
+from $1 and $2.
+
+=item B<bor>(invar PMC, invar PMC, in INT)
+
+=item B<bor>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<or> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op bor(invar PMC, in INT) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $1);
+    VTABLE_set_integer_native(interp, $1, a | $2);
+}
+
+inline op bor(invar PMC, invar PMC) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $1);
+    const INTVAL b = VTABLE_get_integer(interp, $2);
+    VTABLE_set_integer_native(interp, $1, a | b);
+}
+
+inline op bor(invar PMC, invar PMC, in INT) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $2);
+    VTABLE_set_integer_native(interp, $1, a | $3);
+}
+
+inline op bor(invar PMC, invar PMC, invar PMC) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $2);
+    const INTVAL b = VTABLE_get_integer(interp, $3);
+    VTABLE_set_integer_native(interp, $1, a | b);
+}
+
+########################################
+
+=item B<bors>(invar PMC, in STR)
+
+=item B<bors>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<or> of the corresponding bits
+from $1 and $2.
+
+=item B<bors>(out STR, in STR, in STR)
+
+=item B<bors>(invar PMC, invar PMC, in STR)
+
+=item B<bors>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<or> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op bors(invar PMC, in STR) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $1);
+    STRING * const b = Parrot_str_bitwise_or(interp, a, $2);
+    VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bors(invar PMC, invar PMC) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $1);
+    STRING * const b = VTABLE_get_string(interp, $2);
+    STRING * const c = Parrot_str_bitwise_or(interp, a, b);
+    VTABLE_set_string_native(interp, $1, c);
+}
+
+inline op bors(out STR, in STR, in STR) :base_core {
+    $1 = Parrot_str_bitwise_or(interp, $2, $3);
+}
+
+inline op bors(invar PMC, invar PMC, in STR) :base_core {
+    STRING * const b = VTABLE_get_string(interp, $2);
+    STRING * const c = Parrot_str_bitwise_or(interp, b, $3);
+    VTABLE_set_string_native(interp, $1, c);
+}
+
+inline op bors(invar PMC, invar PMC, invar PMC) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $2);
+    STRING * const b = VTABLE_get_string(interp, $3);
+    STRING * const c = Parrot_str_bitwise_or(interp, a, b);
+    VTABLE_set_string_native(interp, $1, c);
+}
+
+########################################
+
+=item B<shl>(invar PMC, in INT)
+
+=item B<shl>(invar PMC, invar PMC)
+
+Shift left $1 by $2 bits.
+
+=item B<shl>(invar PMC, invar PMC, in INT)
+
+=item B<shl>(invar PMC, invar PMC, invar PMC)
+
+Set $1 to the value of $2 shifted left by $3 bits.
+
+=cut
+
+inline op shl(invar PMC, in INT) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $1);
+    const INTVAL b = bit_shift_left(a, $2);
+    VTABLE_set_integer_native(interp, $1, b);
+}
+
+inline op shl(invar PMC, invar PMC) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $1);
+    const INTVAL b = VTABLE_get_integer(interp, $2);
+    const INTVAL c = bit_shift_left(a, b);
+    VTABLE_set_integer_native(interp, $1, c);
+}
+
+inline op shl(invar PMC, invar PMC, in INT) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $2);
+    const INTVAL b = bit_shift_left(a, $3);
+    VTABLE_set_integer_native(interp, $1, b);
+}
+
+inline op shl(invar PMC, invar PMC, invar PMC) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $2);
+    const INTVAL b = VTABLE_get_integer(interp, $3);
+    const INTVAL c = bit_shift_left(a, b);
+    VTABLE_set_integer_native(interp, $1, c);
+}
+
+########################################
+
+=item B<shr>(invar PMC, in INT)
+
+=item B<shr>(invar PMC, invar PMC)
+
+Shift right $1 by $2 bits.
+
+=item B<shr>(invar PMC, invar PMC, in INT)
+
+=item B<shr>(invar PMC, invar PMC, invar PMC)
+
+Set $1 to the value of $2 shifted right by $3 bits.
+
+=cut
+
+inline op shr(invar PMC, in INT) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $1);
+    const INTVAL b = bit_shift_left(a, -$2);
+    VTABLE_set_integer_native(interp, $1, b);
+}
+
+inline op shr(invar PMC, invar PMC) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $1);
+    const INTVAL b = VTABLE_get_integer(interp, $2);
+    const INTVAL c = bit_shift_left(a, -b);
+    VTABLE_set_integer_native(interp, $1, c);
+}
+
+inline op shr(invar PMC, invar PMC, in INT) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $2);
+    const INTVAL c = bit_shift_left(a, -$3);
+    VTABLE_set_integer_native(interp, $1, c);
+}
+
+inline op shr(invar PMC, invar PMC, invar PMC) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $2);
+    const INTVAL b = VTABLE_get_integer(interp, $3);
+    const INTVAL c = bit_shift_left(a, -b);
+    VTABLE_set_integer_native(interp, $1, c);
+}
+
+########################################
+
+=item B<bnot>(inout INT)
+
+=item B<bnot>(invar PMC)
+
+Sets $1 to C<bitwise not> $1 inplace.
+
+=item B<bnot>(out INT, in INT)
+
+=item B<bnot>(out PMC, invar PMC)
+
+=cut
+
+inline op bnot(inout INT) :base_core {
+    $1 = ~ $1;
+}
+
+inline op bnot(out INT, in INT) :base_core {
+    $1 = ~ $2;
+}
+
+inline op bnot(invar PMC) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $1);
+    VTABLE_set_integer_native(interp, $1, ~a);
+}
+
+inline op bnot(out PMC, invar PMC) :base_core {
+    const INTVAL a = VTABLE_get_integer(interp, $2);
+    PMC * const b = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+    VTABLE_set_integer_native(interp, b, ~a);
+    $1 = b;
+}
+
+=item B<bnots>(invar PMC)
+
+=item B<bnots>(out STR, in STR)
+
+=item B<bnots>(out PMC, invar PMC)
+
+=cut
+
+inline op bnots(out STR, in STR) :base_core {
+    $1 = Parrot_str_bitwise_not(interp, $2);
+}
+
+inline op bnots(invar PMC) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $1);
+    STRING * const b = Parrot_str_bitwise_not(interp, a);
+    VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bnots(out PMC, invar PMC) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $2);
+    STRING * const b = Parrot_str_bitwise_not(interp, a);
+    VTABLE_set_string_native(interp, $1, b);
+}
+
+########################################
+
+=item B<lsr>(invar PMC, in INT)
+
+=item B<lsr>(invar PMC, invar PMC)
+
+Shift $1 logically shifted right by $2 bits.
+
+=item B<lsr>(invar PMC, invar PMC, in INT)
+
+=item B<lsr>(invar PMC, invar PMC, invar PMC)
+
+Set $1 to the value of $2 logically shifted right by $3 bits.
+
+=cut
+
+inline op lsr(invar PMC, in INT) :base_core {
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+    const UINTVAL b = a >> $2;
+    VTABLE_set_integer_native(interp, $1, (INTVAL)b);
+}
+
+inline op lsr(invar PMC, invar PMC) :base_core {
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
+    const UINTVAL c = a >> b;
+    VTABLE_set_integer_native(interp, $1, (INTVAL)c);
+}
+
+inline op lsr(invar PMC, invar PMC, in INT) :base_core {
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+    const UINTVAL b = (UINTVAL)$3;
+    const UINTVAL c = a >> b;
+    VTABLE_set_integer_native(interp, $1, (INTVAL)c);
+}
+
+inline op lsr(invar PMC, invar PMC, invar PMC) :base_core {
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
+    const UINTVAL c = a >> b;
+    VTABLE_set_integer_native(interp, $3, (INTVAL)c);
+}
+
+=item B<rot>(out INT, in INT, in INT, inconst INT)
+
+Rotate $2 left or right by $3 and place result in $1.
+$4 is the amount of bits to rotate, 32 bit on a 32-bit CPU and 32 or 64
+on a 64-bit CPU. If the rotate count is negative a rotate right by ($3+$4)
+is performed.
+
+=cut
+
+inline op rot(out INT, in INT, in INT, inconst INT) {
+    const INTVAL r = $2;
+    INTVAL s = $3;
+    const INTVAL w = $4;
+    INTVAL d, t;
+    if (s < 0)
+        s += w;
+    d = r << s;
+    t = w - s;
+    t = (INTVAL)((UINTVAL)r >> t);
+    d |= t;
+    $1 = d;
+}
+
+########################################
+
+=item B<bxor>(invar PMC, in INT)
+
+=item B<bxor>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<xor> of the corresponding bits
+from $1 and $2.
+
+=item B<bxor>(invar PMC, invar PMC, in INT)
+
+=item B<bxor>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<xor> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op bxor(invar PMC, in INT) :base_core {
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+    const UINTVAL b = a ^ $2;
+    VTABLE_set_integer_native(interp, $1, (INTVAL)b);
+}
+
+inline op bxor(invar PMC, invar PMC) :base_core {
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
+    const UINTVAL c = a ^ b;
+    VTABLE_set_integer_native(interp, $1, (INTVAL)c);
+}
+
+inline op bxor(invar PMC, invar PMC, in INT) :base_core {
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+    const UINTVAL b = a ^ $3;
+    VTABLE_set_integer_native(interp, $1, (INTVAL)b);
+}
+
+inline op bxor(invar PMC, invar PMC, invar PMC) :base_core {
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
+    const UINTVAL c = a ^ b;
+    VTABLE_set_integer_native(interp, $1, (INTVAL)c);
+}
+
+########################################
+
+=item B<bxors>(invar PMC, in STR)
+
+=item B<bxors>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<xor> of the corresponding bits
+from $1 and $2.
+
+=item B<bxors>(out STR, in STR, in STR)
+
+=item B<bxors>(invar PMC, invar PMC, in STR)
+
+=item B<bxors>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<xor> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op bxors(invar PMC, in STR) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $1);
+    STRING * const b = Parrot_str_bitwise_xor(interp, a, $2);
+    VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bxors(invar PMC, invar PMC) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $1);
+    STRING * const b = VTABLE_get_string(interp, $2);
+    STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
+    VTABLE_set_string_native(interp, $1, c);
+}
+
+inline op bxors(out STR, in STR, in STR) :base_core {
+    $1 = Parrot_str_bitwise_xor(interp, $2, $3);
+}
+
+inline op bxors(invar PMC, invar PMC, in STR) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $2);
+    STRING * const b = Parrot_str_bitwise_xor(interp, a, $3);
+    VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bxors(invar PMC, invar PMC, invar PMC) :base_core {
+    STRING * const a = VTABLE_get_string(interp, $2);
+    STRING * const b = VTABLE_get_string(interp, $3);
+    STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
+    VTABLE_set_string_native(interp, $1, c);
+}
+
+=back
+
+=cut
+
+###############################################################################
+
+=head1 COPYRIGHT
+
+Copyright (C) 2001-2010, Parrot Foundation.
+
+=head1 LICENSE
+
+This program is free software. It is subject to the same license
+as the Parrot interpreter itself.
+
+=cut
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Copied: branches/gsoc_nfg/src/dynoplibs/debug.ops (from r47434, trunk/src/dynoplibs/debug.ops)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/src/dynoplibs/debug.ops	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/src/dynoplibs/debug.ops)
@@ -0,0 +1,146 @@
+/*
+ * $Id$
+ * Copyright (C) 2002-2008, Parrot Foundation.
+ */
+
+/*
+** debug.ops
+*/
+
+=head1 NAME
+
+debug.ops - Debugging Opcodes
+
+=cut
+
+=head1 DESCRIPTION
+
+Parrot debugger
+
+=cut
+
+=head1 HISTORY
+
+Initial version by Daniel Grunblatt on 2002.5.19
+
+=cut
+
+###############################################################################
+
+=head2 Parrot debug operations
+
+=over 4
+
+=cut
+
+########################################
+
+=item B<debug_init>()
+
+Init the Parrot debugger, must be called before any other debug op.
+
+=cut
+
+op debug_init() :base_debug {
+    Parrot_debugger_init(interp);
+}
+
+########################################
+
+=item B<debug_load>(inconst STR)
+
+Load a Parrot source file for the current program.
+
+=cut
+
+op debug_load(inconst STR) :base_debug {
+    Parrot_debugger_load(interp, $1);
+}
+
+########################################
+
+=item B<debug_break>()
+
+Break execution and drop into the debugger.
+If we are already into the debugger and is the first time we are
+called set a breakpoint.
+
+When you re run/continue the program begin debugged it will pay
+no attention to the debug ops.
+
+=cut
+
+op debug_break() :base_debug {
+    Parrot_debugger_break(interp, cur_opcode);
+}
+
+########################################
+
+=item B<debug_print>()
+
+Print all the Parrot registers at once.
+
+=cut
+
+op debug_print() :base_debug {
+    if (!interp->pdb) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+            EXCEPTION_INVALID_OPERATION,
+            "Initialize debugger with debug_init before using debug_print");
+        goto ADDRESS(handler);
+    }
+
+    if (!(interp->pdb->state & PDB_BREAK)) {
+        PDB_print(interp, "I");
+        PDB_print(interp, "N");
+        PDB_print(interp, "S");
+        PDB_print(interp, "P");
+    }
+}
+
+=item B<backtrace>()
+
+Print a backtrace.
+
+=cut
+
+op backtrace() :base_debug {
+    PDB_backtrace(interp);
+}
+
+#######################################
+
+=item B<getline>(out INT)
+
+Get the current line number.
+
+=cut
+
+inline op getline(out INT) {
+    Parrot_Context_info info;
+    Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
+    $1 = info.line;
+}
+
+=item B<getfile>(out STR)
+
+Get the name of the current file.
+
+=cut
+
+inline op getfile(out STR) {
+    Parrot_Context_info info;
+    Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
+    $1 = info.file;
+}
+
+=back
+
+=cut
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Copied: branches/gsoc_nfg/src/dynoplibs/io.ops (from r47434, trunk/src/dynoplibs/io.ops)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/src/dynoplibs/io.ops	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/src/dynoplibs/io.ops)
@@ -0,0 +1,342 @@
+/*
+ * $Id$
+ * Copyright (C) 2010, Parrot Foundation.
+** io.ops
+*/
+
+=head1 NAME
+
+io.ops - Extended I/O Dynops
+
+=head1 DESCRIPTION
+
+A richer I/O API than that available in core Parrot.
+
+=over 4
+
+=cut
+
+BEGIN_OPS_PREAMBLE
+#include "../io/io_private.h"
+END_OPS_PREAMBLE
+
+##########################################
+
+=item B<stat>(out INT, in STR, in INT)
+
+=item B<stat>(out INT, in INT, in INT)
+
+Stat the file. Return stat element $3 for file $2 into $1. The queryable
+items currently are:
+
+ EXISTS     0
+ FILESIZE   1
+ ISDIR      2
+ ISDEV      3
+ CREATETIME 4 (Time file was created)
+ ACCESSTIME 5 (Time file was last accessed)
+ MODIFYTIME 6 (Time file data was changed)
+ CHANGETIME 7 (Time file metadata was changed)
+ BACKUPTIME 8 (Time of last backup)
+ UID        9
+ GID        10
+
+
+=cut
+
+op stat(out INT, in STR, in INT) {
+    $1 = Parrot_stat_info_intval(interp, $2, $3);
+}
+
+op stat(out INT, in INT, in INT) {
+    $1 = Parrot_fstat_info_intval(interp, $2, $3);
+}
+
+##########################################
+
+=item B<read>(out STR, in INT)
+
+Read up to N bytes from standard input stream
+
+=item B<read>(out STR, invar PMC, in INT)
+
+Read up to N bytes from IO PMC stream.
+
+=cut
+
+op read(out STR, in INT) :base_io {
+    $1 = Parrot_io_reads(interp, _PIO_STDIN(interp), (size_t)$2);
+}
+
+op read(out STR, invar PMC, in INT) :base_io {
+    $1 = Parrot_io_reads(interp, $2, (size_t)$3);
+}
+
+=item B<readline>(out STR, invar PMC)
+
+Read a line up to EOL from filehandle $2.
+This switches the filehandle to linebuffer-mode.
+
+=cut
+
+inline op readline(out STR, invar PMC) :base_io {
+    $1 = Parrot_io_readline(interp, $2);
+}
+
+##########################################
+
+=item B<printerr>(in INT)
+
+=item B<printerr>(in NUM)
+
+=item B<printerr>(in STR)
+
+=item B<printerr>(invar PMC)
+
+Print $1 to standard error.
+
+=cut
+
+op printerr(in INT) :base_io {
+    Parrot_io_eprintf(interp, INTVAL_FMT, $1);
+}
+
+op printerr(in NUM) :base_io {
+    Parrot_io_eprintf(interp, FLOATVAL_FMT, $1);
+}
+
+op printerr(in STR) :base_io {
+    STRING * const s = $1;
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDERR(interp), s);
+}
+
+op printerr(invar PMC) :base_io {
+    PMC * const p = $1;
+    STRING * const s = (VTABLE_get_string(interp, p));
+    if (s)
+        Parrot_io_putps(interp, _PIO_STDERR(interp), s);
+}
+
+##########################################
+
+=item B<seek>(invar PMC, in INT, in INT)
+
+seek:
+Set file position to offset $2 on IO stream $1. 'whence' is
+indicated by the value in $3. The valid values for 'whence' are:
+
+ Value      Meaning
+ 0          Seek from the beginning of the file
+ 1          Seek from the current position
+ 2          Seek from the end of the file
+
+[ Note: the above values for 'whence' is just an educated guess
+at this point ]
+
+=item B<seek>(invar PMC, in INT, in INT, in INT)
+
+64bit seek:
+Set file position to offset ($2 << 32 | $3) on IO stream $1. 'whence' is
+indicated by the value in $4. This allows 64-bit seeks with only 32-bit
+INTVALS.
+
+=cut
+
+op seek(invar PMC, in INT, in INT) :base_io {
+    if ($1) {
+        if (Parrot_io_seek(interp, $1, Parrot_io_make_offset($2), $3) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+                EXCEPTION_PIO_ERROR,
+                "seek failed (32bit)");
+            goto ADDRESS(handler);
+        }
+    }
+}
+
+op seek(invar PMC, in INT, in INT, in INT) :base_io {
+    if ($1) {
+        if (Parrot_io_seek(interp, $1, Parrot_io_make_offset32($2, $3), $4) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+                EXCEPTION_PIO_ERROR,
+                "seek failed (64bit)");
+            goto ADDRESS(handler);
+        }
+    }
+}
+
+=item B<tell>(out INT, invar PMC)
+
+tell:
+Get the current file position of stream $2 and store it in $1.
+On systems where INTVAL is 32bit the result will be truncated if the
+position is beyond 2 GiB
+
+=item B<tell>(out INT, out INT, invar PMC)
+
+64bit tell:
+Get the current file positon of stream $3 in two parts of 32-bit each
+($1 = pos >> 32, $2 = pos & 0xffffffff).
+
+=cut
+
+op tell(out INT, invar PMC) :base_io {
+    if ($2)
+        $1 = (INTVAL)Parrot_io_tell(interp, $2);
+}
+
+op tell(out INT, out INT, invar PMC) :base_io {
+    if ($3) {
+        PIOOFF_T pos;
+        pos = Parrot_io_tell(interp, $3);
+        $1 = (INTVAL)(pos >> 31);
+        $2 = (INTVAL)(pos & 0xffffffff);
+    }
+}
+
+##########################################
+
+=item B<peek>(out STR)
+
+Returns the next byte from standard input, but does not
+remove it from the stream.
+
+=item B<peek>(out STR, invar PMC)
+
+Reads the next byte from an IO PMC, but does not
+remove it from the stream.
+
+=cut
+
+op peek(out STR) :base_io {
+    STRING ** const s = &$1;
+
+    *s = NULL;
+    if (Parrot_io_peek(interp, _PIO_STDIN(interp), s) < 0) {
+        $1 = STRINGNULL;
+    }
+}
+
+op peek(out STR, invar PMC) :base_io {
+    STRING ** const s = &$1;
+
+    *s = NULL;
+    if (Parrot_io_peek(interp, $2, s) < 0) {
+        $1 = STRINGNULL;
+    }
+}
+
+#########################################
+
+=item B<open>(out PMC, in STR, in STR)
+
+Open URL (file, address, database, in core image) named $2 with
+a mode string in $3 and create an IO object in $1.
+
+The mode consists of a string of characters specified in any order:
+
+ r : read
+ w : write
+ a : append (Note: you must specify "wa", not just "a")
+ p : pipe
+
+=item B<open>(out PMC, in STR)
+
+Open URL (file, address, database, in core image) named $2 with
+read mode and create an IO object in $1.
+
+=cut
+
+inline op open(out PMC, in STR, in STR) :filesys_open {
+    if (STRING_IS_NULL($2) || STRING_IS_NULL($3)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+            EXCEPTION_UNEXPECTED_NULL, "Invalid open");
+        goto ADDRESS(handler);
+    }
+    else {
+        $1 = Parrot_io_open(interp, PMCNULL, $2, $3);
+        PARROT_ASSERT(! PMC_IS_NULL($1));
+    }
+}
+
+inline op open(out PMC, in STR) :filesys_open {
+    if (STRING_IS_NULL($2)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+            EXCEPTION_UNEXPECTED_NULL, "Invalid open");
+        goto ADDRESS(handler);
+    }
+    else {
+        $1 = Parrot_io_open(interp, PMCNULL, $2, NULL);
+        PARROT_ASSERT(! PMC_IS_NULL($1));
+    }
+}
+
+########################################
+
+=item B<close>(invar PMC)
+
+Close IO object $1
+
+=cut
+
+inline op close(invar PMC) :base_io {
+    Parrot_io_close(interp, $1);
+}
+
+########################################
+
+=item B<fdopen>(out PMC, in INT, in STR)
+
+Create ParrotIO object in $1 as a copy of file descriptor $2.
+
+=cut
+
+inline op fdopen(out PMC, in INT, in STR) :filesys_open {
+    $1 = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)$2, $3);
+    if (!$1)
+        $1 = Parrot_pmc_new(interp, enum_class_Undef);
+}
+
+#########################################
+
+=item B<setstdin>(invar PMC)
+
+Sets the standard input for a bare C<read> op to go to the supplied PMC.
+Call C<getstdin> first if you care about retaining the previous PMC.
+
+=item B<setstdout>(invar PMC)
+
+Sets the standard output for a bare C<print> op to go to the supplied PMC.
+Call C<getstdout> first if you care about retaining the previous PMC.
+
+=item B<setstderr>(invar PMC)
+
+Sets the standard error for a bare C<printerr> op to go to the supplied PMC.
+Call C<getstderr> first if you care about retaining the previous PMC.
+
+=cut
+
+inline op setstdin(invar PMC) :base_io {
+    _PIO_STDIN(interp) = $1;
+}
+
+inline op setstdout(invar PMC) :base_io {
+    _PIO_STDOUT(interp) = $1;
+}
+
+inline op setstderr(invar PMC) :base_io {
+    _PIO_STDERR(interp) = $1;
+}
+
+########################################
+
+=back
+
+=cut
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Modified: branches/gsoc_nfg/src/dynoplibs/math.ops
==============================================================================
--- branches/gsoc_nfg/src/dynoplibs/math.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/dynoplibs/math.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -25,7 +25,169 @@
 
 =cut
 
-=over
+=head2 General Math
+
+=over 4
+
+=cut
+
+########################################
+
+=item B<cmod>(out INT, in INT, in INT)
+
+=item B<cmod>(invar PMC, invar PMC, in INT)
+
+=item B<cmod>(invar PMC, invar PMC, invar PMC)
+
+NOTE: This "uncorrected mod" algorithm uses the C language's built-in
+mod operator (x % y), which is
+
+    ... the remainder when x is divided by y, and thus is zero
+    when y divides x exactly.
+    ...
+    The direction of truncation for / and the sign of the result
+    for % are machine-dependent for negative operands, as is the
+    action taken on overflow or underflow.
+                                                     -- [1], page 41
+
+Also:
+
+    ... if the second operand is 0, the result is undefined.
+    Otherwise, it is always true that (a/b)*b + a%b is equal to z. If
+    both operands are non-negative, then the remainder is non-
+    negative and smaller than the divisor; if not, it is guaranteed
+    only that the absolute value of the remainder is smaller than
+    the absolute value of the divisor.
+                                                     -- [1], page 205
+
+This op is provided for those who need it (such as speed-sensitive
+applications with heavy use of mod, but using it only with positive
+arguments), but a more mathematically useful mod based on ** floor(x/y)
+and defined with y == 0 is provided by the mod op.
+
+  [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
+      Language*, Second Edition. Prentice Hall, 1988.
+
+If the denominator is zero, a 'Divide by zero' exception is thrown.
+
+=cut
+
+inline op cmod(out INT, in INT, in INT) :base_core {
+    INTVAL den = $3;
+    if ($3 == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        goto ADDRESS(handler);
+    }
+    $1 = $2 % den;
+}
+
+inline op cmod(invar PMC, invar PMC, in INT) :base_core {
+    INTVAL result;
+
+    if ($3 == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        goto ADDRESS(handler);
+    }
+
+    result = VTABLE_get_integer(interp, $2) % $3;
+
+    $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+    VTABLE_set_integer_native(interp, $1, result);
+}
+
+inline op cmod(invar PMC, invar PMC, invar PMC) :base_core {
+    INTVAL result;
+    INTVAL value = VTABLE_get_integer(interp, $3);
+
+    if (value == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        goto ADDRESS(handler);
+    }
+
+    result = VTABLE_get_integer(interp, $2) % value;
+
+    $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+    VTABLE_set_integer_native(interp, $1, result);
+}
+
+########################################
+
+=item B<cmod>(out NUM, in NUM, in NUM)
+
+=item B<cmod>(invar PMC, invar PMC, in NUM)
+
+NOTE: This "uncorrected mod" algorithm uses the built-in C math library's
+fmod() function, which computes
+
+    ... the remainder of dividing x by y. The return value is
+    x - n * y, where n is the quotient of x / y, rounded towards
+    zero to an integer.
+                                -- fmod() manpage on RedHat Linux 7.0
+
+In addition, fmod() returns
+
+    the remainder, unless y is zero, when the function fails and
+    errno is set.
+
+According to page 251 of [1], the result when y is zero is implementation-
+defined.
+
+This op is provided for those who need it, but a more mathematically
+useful numeric mod based on floor(x/y) instead of truncate(x/y) and
+defined with y == 0 is provided by the mod op.
+
+  [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
+      Language*, Second Edition. Prentice Hall, 1988.
+
+If the denominator is zero, a 'Divide by zero' exception is thrown.
+
+=cut
+
+inline op cmod(out NUM, in NUM, in NUM) :base_core {
+    FLOATVAL den = $3;
+    if (FLOAT_IS_ZERO($3)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        goto ADDRESS(handler);
+    }
+    $1 = fmod($2, den);
+}
+
+inline op cmod(invar PMC, invar PMC, in NUM) :base_core {
+    FLOATVAL result;
+    FLOATVAL value = $3;
+
+    if (FLOAT_IS_ZERO(value)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        goto ADDRESS(handler);
+    }
+
+    result = fmod(VTABLE_get_integer(interp, $2), value);
+
+    $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+    VTABLE_set_integer_native(interp, $1, (INTVAL) result);
+}
+
+=back
+
+=cut
+
+###############################################################################
+
+=head2 Pseudorandom number operations
+
+These operations perform various pseudorandom number operations.
+
+=over 4
 
 =item B<rand>(out NUM)
 
@@ -109,6 +271,8 @@
 
 =back
 
+=cut
+
 =head1 COPYRIGHT
 
 Copyright (C) 2001-2009, Parrot Foundation.

Copied: branches/gsoc_nfg/src/dynoplibs/sys.ops (from r47434, trunk/src/dynoplibs/sys.ops)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/src/dynoplibs/sys.ops	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/src/dynoplibs/sys.ops)
@@ -0,0 +1,280 @@
+/*
+ * $Id$
+** sys.ops
+*/
+
+=head1 NAME
+
+sys.ops - System Interaction Dynops
+
+=head1 DESCRIPTION
+
+Operations that allow the user to interact with the system.
+
+=over 4
+
+=cut
+
+BEGIN_OPS_PREAMBLE
+
+#ifdef PARROT_HAS_HEADER_SYSUTSNAME
+#  include <sys/utsname.h>
+#endif
+
+END_OPS_PREAMBLE
+
+########################################
+
+=item B<gmtime>(out STR, in INT)
+
+Take the integer, which represents GMT epoch-seconds, and turn it into a
+formatted string.
+
+=item B<localtime>(out STR, in INT)
+
+Take the integer, which represents GMT epoch-seconds, and turn it into a
+formatted string. The time is adjusted to localtime before formatting.
+
+=item B<decodetime>(out PMC, in INT)
+
+Take the integer, which represents GMT epoch-seconds, and return an Array
+PMC which represents the decoded time. The array elements are
+(include "tm.pasm" for the constants):
+
+=over 4
+
+=item 0, .TM_SEC
+
+Seconds (0-60)
+
+=item 1, .TM_MIN
+
+Minutes (0-59)
+
+=item 2, .TM_HOUR
+
+Hours (0-23)
+
+=item 3, .TM_MDAY
+
+Day of month (1-31)
+
+=item 4, .TM_MON
+
+Month of year (1-12) (Note, B<actual> month, not month - 1)
+
+=item 5, .TM_YEAR
+
+Year (note, B<actual> year. The year 2004 comes back as 2004, not 104)
+
+=item 6, .TM_WDAY
+
+Day of week. Sunday is day 0
+
+=item 7, .TM_YDAY
+
+Day of year (0-365)
+
+=item 8, .TM_ISDST
+
+Daylight savings/summer time in effect
+
+=back
+
+Timezone name will be GMT and offset will be 0, since the time is taken and
+decoded as GMT.
+
+=item B<decodelocaltime>(out PMC, in INT)
+
+Take the passed in  integer, which represents GMT epoch-seconds, and return
+an array as in decodetime. The time is first shifted to localtime before
+decoding.
+
+=cut
+
+op gmtime(out STR, in INT) {
+    struct tm tm;
+    const time_t t = (time_t) $2;
+    char resultbuffer[26];
+    Parrot_gmtime_r(&t, &tm);
+    Parrot_asctime_r(&tm, resultbuffer);
+    $1 = Parrot_str_new(interp, resultbuffer, 25);
+}
+
+op localtime(out STR, in INT) {
+    struct tm tm;
+    const time_t t = (time_t) $2;
+    char resultbuffer[26];
+    Parrot_localtime_r(&t, &tm);
+    Parrot_asctime_r(&tm, resultbuffer);
+    $1 = Parrot_str_new(interp, resultbuffer, 25);
+}
+
+op decodetime(out PMC, in INT) {
+    struct tm tm;
+    const time_t t = (time_t) $2;
+    Parrot_gmtime_r(&t, &tm);
+    $1 = Parrot_tm_to_array(interp, &tm);
+}
+
+op decodelocaltime(out PMC, in INT) {
+    struct tm tm;
+    const time_t t = (time_t) $2;
+    Parrot_localtime_r(&t, &tm);
+    $1 = Parrot_tm_to_array(interp, &tm);
+}
+
+########################################
+
+=item B<sysinfo>(out STR, in INT)
+
+Return system information. The values it returns depends on what you
+ask. They are:
+
+=over 4
+
+=item C<PARROT_INTSIZE> The size of a platform integer
+
+=item C<PARROT_FLOATSIZE> The size of a platform float
+
+=item C<PARROT_POINTERSIZE> The size of a platform pointer (Largest possible data pointer)
+
+=item C<PARROT_INTMAX> The maximum value of a platform integer
+
+=item C<PARROT_INTMIN> The minimum value of a platform integer
+
+=back
+
+=item B<sysinfo>(out INT, in INT)
+
+Return system information. The values it returns depends on what you
+ask. They are:
+
+=over 4
+
+=item C<PARROT_OS> The OS name
+
+This is something like "OS X", "MacOS", "Windows", or "VMS".
+
+=item C<PARROT_OS_VERSION> The OS version string
+
+This is the current (hopefully) OS Version. For OSes that have plain
+version numbers it will be the version number. For OSes that name
+their versions, it will be the version name.
+
+On HP/UX, this may be something like 11.2, while on Windows it may be
+"95", "98", "2000", "NT", "ME", or "XP".
+
+=item C<PARROT_OS_VERSION_NUMBER> The OS version number string
+
+On OSes that don't name themselves, this will be the same as what's
+returned in the OS version string. On OSes that I<do> name themselves,
+this will be a more specific version number. In all cases it is OS
+dependent.
+
+=item C<CPU_ARCH> The CPU architecture
+
+The name of the CPU family, such as "VAX", "Alpha", "PPC", or "x86".
+
+=item C<CPU_TYPE> The CPU model
+
+The model name of the current system's CPU. This is something like
+"EV68", "Athlon", or "Pentium III".
+
+=back
+
+Note that some of these values may be set at Parrot compile time,
+rather than at runtime, if the system has no reliable way to fetch the
+data dynamically, or if there is no way the value can change. Also,
+the value returned may be somewhat misleading--Parrot running under a
+VirtualPC window will report "Windows" as its OS and "x86" as its CPU,
+even if it's really running on an OS X system.
+
+=cut
+
+inline op sysinfo(out STR, in INT) {
+    switch ($2) {
+      case PARROT_OS:
+        $1 = Parrot_str_new_constant(interp, BUILD_OS_NAME);
+        break;
+
+#ifdef PARROT_HAS_HEADER_SYSUTSNAME
+      case PARROT_OS_VERSION:
+        {
+            struct utsname info;
+            if (uname(&info) == 0) {
+                $1 = string_make(interp, info.version, strlen(info.version), "ascii", 0);
+            }
+        }
+        break;
+
+      case PARROT_OS_VERSION_NUMBER:
+        {
+            struct utsname info;
+            if (uname(&info) == 0) {
+                $1 = string_make(interp, info.release, strlen(info.version), "ascii", 0);
+            }
+        }
+        break;
+#endif
+
+      case CPU_ARCH:
+        $1 = string_make(interp, PARROT_CPU_ARCH, sizeof (PARROT_CPU_ARCH) - 1, "ascii", 0);
+        break;
+
+      case CPU_TYPE:
+      default:
+        $1 = string_from_literal(interp, "");
+        break;
+    }
+}
+
+inline op sysinfo(out INT, in INT) {
+    switch ($2) {
+      case PARROT_INTSIZE:
+        $1 = sizeof (INTVAL);
+        break;
+
+      case PARROT_FLOATSIZE:
+        $1 = sizeof (FLOATVAL);
+        break;
+
+      case PARROT_POINTERSIZE:
+        $1 = sizeof (void *);
+        break;
+
+      case PARROT_INTMIN:
+        $1 = PARROT_INTVAL_MIN;
+        break;
+
+      case PARROT_INTMAX:
+        $1 = PARROT_INTVAL_MAX;
+        break;
+
+      default:
+        $1 = -1;
+        break;
+    }
+}
+
+###############################################################################
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright (C) 2010, Parrot Foundation.
+
+=head1 LICENSE
+
+This program is free software. It is subject to the same license
+as the Parrot interp itself.
+
+=cut
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Copied: branches/gsoc_nfg/src/dynoplibs/trans.ops (from r47434, trunk/src/dynoplibs/trans.ops)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/src/dynoplibs/trans.ops	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/src/dynoplibs/trans.ops)
@@ -0,0 +1,320 @@
+/*
+ * $Id$
+ * trans.ops
+ */
+
+=head1 NAME
+
+trans.ops - Transcendental Opcodes
+
+=head1 DESCRIPTION
+
+Addition library of operations to perform various transcendental operations such
+as logarithmics and trigonometrics.
+
+To use this library of ops, add this directive to your PIR:
+
+  .loadlib 'trans_ops'
+
+=over 4
+
+=cut
+
+########################################
+
+=item B<acos>(out NUM, in NUM)
+
+Set $1 to the arc cosine (in radians) of $2.
+
+=cut
+
+inline op acos(out NUM, in NUM) :base_math {
+    $1 = acos((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<asec>(out NUM, in NUM)
+
+Set $1 to the arc secant (in radians) of $2.
+
+=cut
+
+inline op asec(out NUM, in NUM) :base_math {
+    $1 = acos(((FLOATVAL)1) / ((FLOATVAL)$2));
+}
+
+########################################
+
+
+=item B<asin>(out NUM, in NUM)
+
+Set $1 to the arc sine (in radians) of $2.
+
+=cut
+
+inline op asin(out NUM, in NUM) :base_math {
+    $1 = asin((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<atan>(out NUM, in NUM)
+
+=item B<atan>(out NUM, in NUM, in NUM)
+
+The two-argument versions set $1 to the arc tangent (in radians) of $2.
+
+The three-argument versions set $1 to the arc tangent (in radians) of
+$2 / $3, taking account of the signs of the arguments in determining the
+quadrant of the result.
+
+=cut
+
+inline op atan(out NUM, in NUM) :base_math {
+    $1 = atan((FLOATVAL)$2);
+}
+
+inline op atan(out NUM, in NUM, in NUM) :base_math {
+    $1 = atan2((FLOATVAL)$2, (FLOATVAL)$3);
+}
+
+########################################
+
+=item B<cos>(out NUM, in NUM)
+
+Set $1 to the cosine of $2 (given in radians).
+
+=cut
+
+inline op cos(out NUM, in NUM) :base_math {
+    $1 = cos((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<cosh>(out NUM, in NUM)
+
+Set $1 to the hyperbolic cosine of $2 (given in radians).
+
+=cut
+
+inline op cosh(out NUM, in NUM) :base_math {
+    $1 = cosh((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<exp>(out NUM, in NUM)
+
+Set $1 to I<e> raised to the power $2. I<e> is the base of the natural
+logarithm.
+
+=cut
+
+inline op exp(out NUM, in NUM) :base_math {
+    $1 = exp((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<ln>(out NUM, in NUM)
+
+Set $1 to the natural (base I<e>) logarithm of $2.
+
+=cut
+
+inline op ln(out NUM, in NUM) :base_math {
+    $1 = log((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<log10>(out NUM, in NUM)
+
+Set $1 to the base 10 logarithm of $2.
+
+=cut
+
+inline op log10(out NUM, in NUM) :base_math {
+    $1 = log10((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<log2>(out NUM, in NUM)
+
+Set $1 to the base 2 logarithm of $2.
+
+=cut
+
+op log2(out NUM, in NUM) :base_math {
+    FLOATVAL temp = log((FLOATVAL)2.0);
+    $1 = log((FLOATVAL)$2) / temp;
+}
+
+########################################
+
+=item B<sec>(out NUM, in NUM)
+
+Set $1 to the secant of $2 (given in radians).
+
+=cut
+
+inline op sec(out NUM, in NUM) :base_math {
+    $1 = ((FLOATVAL)1) / cos((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<sech>(out NUM, in NUM)
+
+Set $1 to the hyperbolic secant of $2 (given in radians).
+
+=cut
+
+inline op sech(out NUM, in NUM) :base_math {
+    $1 = ((FLOATVAL)1) / cosh((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<sin>(out NUM, in NUM)
+
+Set $1 to the sine of $2 (given in radians).
+
+=cut
+
+inline op sin(out NUM, in NUM) :base_math {
+    $1 = sin((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<sinh>(out NUM, in NUM)
+
+Set $1 to the hyperbolic sine of $2 (given in radians).
+
+=cut
+
+inline op sinh(out NUM, in NUM) :base_math {
+    $1 = sinh((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<tan>(out NUM, in NUM)
+
+Set $1 to the tangent of $2 (given in radians).
+
+=cut
+
+inline op tan(out NUM, in NUM) :base_math {
+    $1 = tan((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<tanh>(out NUM, in NUM)
+
+Set $1 to the hyperbolic tangent of $2 (given in radians).
+
+=cut
+
+inline op tanh(out NUM, in NUM) :base_math {
+    $1 = tanh((FLOATVAL)$2);
+}
+
+=item B<pow>(out NUM, in NUM, in NUM)
+
+=item B<pow>(out NUM, in NUM, in INT)
+
+=item B<pow>(invar PMC, invar PMC, invar PMC)
+
+=item B<pow>(invar PMC, invar PMC, in INT)
+
+=item B<pow>(invar PMC, invar PMC, in NUM)
+
+Set $1 to $2 raised to the power $3.
+
+=cut
+
+inline op pow(out NUM, in NUM, in NUM) :base_core {
+    $1 = pow((FLOATVAL)$2, (FLOATVAL)$3);
+}
+
+inline op pow(invar PMC, invar PMC, invar PMC) :base_core {
+    const FLOATVAL a = VTABLE_get_number(interp, $2);
+    const FLOATVAL b = VTABLE_get_number(interp, $3);
+    const FLOATVAL c = pow(a, b);
+    if (PMC_IS_NULL($1))
+        $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+    else
+        $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
+    VTABLE_set_number_native(interp, $1, c);
+}
+
+inline op pow(invar PMC, invar PMC, in INT) :base_core {
+    const FLOATVAL a = VTABLE_get_number(interp, $2);
+    const FLOATVAL b = (FLOATVAL)$3;
+    const FLOATVAL c = pow(a, b);
+    if (PMC_IS_NULL($1))
+        $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+    else
+        $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
+    VTABLE_set_number_native(interp, $1, c);
+}
+
+inline op pow(invar PMC, invar PMC, in NUM) :base_core {
+    const FLOATVAL a = VTABLE_get_number(interp, $2);
+    const FLOATVAL c = pow(a, $3);
+    if (PMC_IS_NULL($1))
+        $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+    else
+        $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
+    VTABLE_set_number_native(interp, $1, c);
+}
+
+inline op pow(out NUM, in NUM, in INT) :base_core {
+    FLOATVAL n2 = $2;
+    FLOATVAL res = 1.0;
+    INTVAL   e  = $3;
+    int s = 1;
+    if (e != 0) {
+        if (e < 0) {
+            s = -1;
+            e = -e;
+        }
+    }
+    while (e) {
+        if (e & 1) {
+            res *= n2;
+        }
+        n2 *= n2;
+        e >>= 1;
+    }
+    if (s < 0) {
+        res = 1.0/res;
+    }
+    $1 = res;
+}
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright (C) 2010-2010, Parrot Foundation.
+
+=head1 LICENSE
+
+This program is free software. It is subject to the same license
+as the Parrot interpreter itself.
+
+=cut
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Modified: branches/gsoc_nfg/src/exceptions.c
==============================================================================
--- branches/gsoc_nfg/src/exceptions.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/exceptions.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -206,7 +206,13 @@
 {
     ASSERT_ARGS(Parrot_ex_throw_from_op)
     opcode_t   *address;
-    PMC * const handler = Parrot_cx_find_handler_local(interp, exception);
+    PMC        *handler;
+
+    /* Note the thrower. */
+    VTABLE_set_attr_str(interp, exception, CONST_STRING(interp, "thrower"), CURRENT_CONTEXT(interp));
+
+    /* Locate the handler, if there is one. */
+    handler = Parrot_cx_find_handler_local(interp, exception);
     if (PMC_IS_NULL(handler)) {
         STRING * const message     = VTABLE_get_string(interp, exception);
         const INTVAL   severity    = VTABLE_get_integer_keyed_str(interp, exception, CONST_STRING(interp, "severity"));
@@ -354,10 +360,8 @@
     }
 
     /* Note the thrower.
-     * XXX TT #596 - pass in current context instead when we have context PMCs. */
-    /* Don't split line. It will break CONST_STRING handling */
-    VTABLE_set_attr_str(interp, exception, CONST_STRING(interp, "thrower"), Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp)));
-
+     * Don't split line. It will break CONST_STRING handling. */
+    VTABLE_set_attr_str(interp, exception, CONST_STRING(interp, "thrower"), CURRENT_CONTEXT(interp));
 
     /* it's a C exception handler */
     if (PObj_get_FLAGS(handler) & SUB_FLAG_C_HANDLER) {

Modified: branches/gsoc_nfg/src/interp/inter_misc.c
==============================================================================
--- branches/gsoc_nfg/src/interp/inter_misc.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/interp/inter_misc.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -27,10 +27,6 @@
 
 #include "parrot/has_header.h"
 
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
-#  include <sys/utsname.h>
-#endif
-
 /* HEADERIZER HFILE: include/parrot/interpreter.h */
 
 /*
@@ -169,7 +165,7 @@
 Parrot_compile_file(PARROT_INTERP, ARGIN(const char *fullname), ARGOUT(STRING **error))
 {
     ASSERT_ARGS(Parrot_compile_file)
-    return IMCC_compile_file_s(interp, fullname, error);
+    return imcc_compile_file(interp, fullname, error);
 }
 
 /*
@@ -365,106 +361,6 @@
 }
 
 /*
-
-=item C<INTVAL sysinfo_i(PARROT_INTERP, INTVAL info_wanted)>
-
-Returns the system info.
-
-C<info_wanted> is one of:
-
-    PARROT_INTSIZE
-    PARROT_FLOATSIZE
-    PARROT_POINTERSIZE
-    PARROT_INTMAX
-    PARROT_INTMIN
-
-In unknown info is requested then -1 is returned.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-INTVAL
-sysinfo_i(SHIM_INTERP, INTVAL info_wanted)
-{
-    ASSERT_ARGS(sysinfo_i)
-    switch (info_wanted) {
-      case PARROT_INTSIZE:
-        return sizeof (INTVAL);
-      case PARROT_FLOATSIZE:
-        return sizeof (FLOATVAL);
-      case PARROT_POINTERSIZE:
-        return sizeof (void *);
-      case PARROT_INTMIN:
-        return PARROT_INTVAL_MIN;
-      case PARROT_INTMAX:
-        return PARROT_INTVAL_MAX;
-      default:
-        return -1;
-    }
-}
-
-/*
-
-=item C<STRING * sysinfo_s(PARROT_INTERP, INTVAL info_wanted)>
-
-Returns the system info string.
-
-C<info_wanted> is one of:
-
-    PARROT_OS
-    PARROT_OS_VERSION
-    PARROT_OS_VERSION_NUMBER
-    CPU_ARCH
-    CPU_TYPE
-
-If unknown info is requested then an empty string is returned.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-STRING *
-sysinfo_s(PARROT_INTERP, INTVAL info_wanted)
-{
-    ASSERT_ARGS(sysinfo_s)
-    switch (info_wanted) {
-      case PARROT_OS:
-        return Parrot_str_new_constant(interp, BUILD_OS_NAME);
-      case PARROT_OS_VERSION:
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
-        {
-            struct utsname info;
-            if (uname(&info) == 0) {
-                return string_make(interp, info.version, strlen(info.version), "ascii", 0);
-            }
-        }
-#endif
-        break;
-      case PARROT_OS_VERSION_NUMBER:
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
-        {
-            struct utsname info;
-            if (uname(&info) == 0) {
-                return string_make(interp, info.release, strlen(info.version), "ascii", 0);
-            }
-        }
-#endif
-        break;
-      case CPU_ARCH:
-        return string_make(interp, PARROT_CPU_ARCH, sizeof (PARROT_CPU_ARCH) - 1, "ascii", 0);
-      case CPU_TYPE:
-      default:
-        break;
-    }
-    return CONST_STRING(interp, "");
-}
-
-/*
  * Local variables:
  *   c-file-style: "parrot"
  * End:

Modified: branches/gsoc_nfg/src/io/api.c
==============================================================================
--- branches/gsoc_nfg/src/io/api.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/io/api.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -888,6 +888,7 @@
 
 */
 
+PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
 PIOOFF_T
 Parrot_io_make_offset32(INTVAL hi, INTVAL lo)

Modified: branches/gsoc_nfg/src/oo.c
==============================================================================
--- branches/gsoc_nfg/src/oo.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/oo.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -268,7 +268,6 @@
     /* Now clone attributes list.class. */
     cloned_guts               = (Parrot_Object_attributes *) PMC_data(cloned);
     cloned_guts->_class       = obj->_class;
-    cloned_guts->attrib_store = NULL; /* XXX Do we need to set ->attrib_store twice? */
     cloned_guts->attrib_store = VTABLE_clone(interp, obj->attrib_store);
     num_attrs                 = VTABLE_elements(interp, cloned_guts->attrib_store);
     for (i = 0; i < num_attrs; ++i) {

Modified: branches/gsoc_nfg/src/ops/bit.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/bit.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/bit.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -32,6 +32,9 @@
 
 The variant with an appended B<s> like B<bands> work on strings.
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
 =over 4
 
 =cut
@@ -40,19 +43,11 @@
 
 =item B<band>(inout INT, in INT)
 
-=item B<band>(invar PMC, in INT)
-
-=item B<band>(invar PMC, invar PMC)
-
 Set the bits of $1 according to the B<and> of the corresponding bits
 from $1 and $2.
 
 =item B<band>(out INT, in INT, in INT)
 
-=item B<band>(invar PMC, invar PMC, in INT)
-
-=item B<band>(invar PMC, invar PMC, invar PMC)
-
 Set the bits of $1 according to the B<and> of the corresponding bits
 from $2 and $3.
 
@@ -62,156 +57,19 @@
     $1 &= $2;
 }
 
-inline op band(invar PMC, in INT) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $1);
-    const INTVAL b = a & $2;
-    VTABLE_set_integer_native(interp, $1, b);
-}
-
-inline op band(invar PMC, invar PMC) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $1);
-    const INTVAL b = VTABLE_get_integer(interp, $2);
-    VTABLE_set_integer_native(interp, $1, a & b);
-}
-
 inline op band(out INT, in INT, in INT) :base_core {
     $1 = $2 & $3;
 }
 
-inline op band(invar PMC, invar PMC, in INT) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $2);
-    VTABLE_set_integer_native(interp, $1, a & $3);
-}
-
-inline op band(invar PMC, invar PMC, invar PMC) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $2);
-    const INTVAL b = VTABLE_get_integer(interp, $3);
-    VTABLE_set_integer_native(interp, $1, a & b);
-}
-
-=item B<bands>(invar PMC, in STR)
-
-=item B<bands>(invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<and> of the corresponding bits
-from $1 and $2.
-
-=item B<bands>(out STR, in STR, in STR)
-
-=item B<bands>(invar PMC, invar PMC, in STR)
-
-=item B<bands>(invar PMC, invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<and> of the corresponding bits
-from $2 and $3.
-
-=cut
-
-inline op bands(invar PMC, in STR) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $1);
-    STRING * const b = Parrot_str_bitwise_and(interp, a, $2);
-    VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bands(invar PMC, invar PMC) :base_core {
-    STRING * a = VTABLE_get_string(interp, $1);
-    STRING * const b = VTABLE_get_string(interp, $2);
-    a = Parrot_str_bitwise_and(interp, a, b);
-    VTABLE_set_string_native(interp, $1, a);
-}
-
-inline op bands(out STR, in STR, in STR) :base_core {
-    $1 = Parrot_str_bitwise_and(interp, $2, $3);
-}
-
-inline op bands(invar PMC, invar PMC, in STR) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $2);
-    STRING * const b = Parrot_str_bitwise_and(interp, a, $3);
-    VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bands(invar PMC, invar PMC, invar PMC) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $2);
-    STRING * const b = VTABLE_get_string(interp, $3);
-    STRING * const c = Parrot_str_bitwise_and(interp, a, b);
-    VTABLE_set_string_native(interp, $1, c);
-}
-
-########################################
-
-=item B<bnot>(inout INT)
-
-=item B<bnot>(invar PMC)
-
-Sets $1 to C<bitwise not> $1 inplace.
-
-=item B<bnot>(out INT, in INT)
-
-=item B<bnot>(out PMC, invar PMC)
-
-=cut
-
-inline op bnot(inout INT) :base_core {
-    $1 = ~ $1;
-}
-
-inline op bnot(out INT, in INT) :base_core {
-    $1 = ~ $2;
-}
-
-inline op bnot(invar PMC) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $1);
-    VTABLE_set_integer_native(interp, $1, ~a);
-}
-
-inline op bnot(out PMC, invar PMC) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $2);
-    PMC * const b = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
-    VTABLE_set_integer_native(interp, b, ~a);
-    $1 = b;
-}
-
-=item B<bnots>(invar PMC)
-
-=item B<bnots>(out STR, in STR)
-
-=item B<bnots>(out PMC, invar PMC)
-
-=cut
-
-inline op bnots(out STR, in STR) :base_core {
-    $1 = Parrot_str_bitwise_not(interp, $2);
-}
-
-inline op bnots(invar PMC) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $1);
-    STRING * const b = Parrot_str_bitwise_not(interp, a);
-    VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bnots(out PMC, invar PMC) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $2);
-    STRING * const b = Parrot_str_bitwise_not(interp, a);
-    VTABLE_set_string_native(interp, $1, b);
-}
-
 ########################################
 
 =item B<bor>(inout INT, in INT)
 
-=item B<bor>(invar PMC, in INT)
-
-=item B<bor>(invar PMC, invar PMC)
-
 Set the bits of $1 according to the B<or> of the corresponding bits
 from $1 and $2.
 
 =item B<bor>(out INT, in INT, in INT)
 
-=item B<bor>(invar PMC, invar PMC, in INT)
-
-=item B<bor>(invar PMC, invar PMC, invar PMC)
-
 Set the bits of $1 according to the B<or> of the corresponding bits
 from $2 and $3.
 
@@ -221,96 +79,18 @@
     $1 |= $2;
 }
 
-inline op bor(invar PMC, in INT) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $1);
-    VTABLE_set_integer_native(interp, $1, a | $2);
-}
-
-inline op bor(invar PMC, invar PMC) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $1);
-    const INTVAL b = VTABLE_get_integer(interp, $2);
-    VTABLE_set_integer_native(interp, $1, a | b);
-}
-
 inline op bor(out INT, in INT, in INT) :base_core {
     $1 = $2 | $3;
 }
 
-inline op bor(invar PMC, invar PMC, in INT) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $2);
-    VTABLE_set_integer_native(interp, $1, a | $3);
-}
-
-inline op bor(invar PMC, invar PMC, invar PMC) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $2);
-    const INTVAL b = VTABLE_get_integer(interp, $3);
-    VTABLE_set_integer_native(interp, $1, a | b);
-}
-
-=item B<bors>(invar PMC, in STR)
-
-=item B<bors>(invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<or> of the corresponding bits
-from $1 and $2.
-
-=item B<bors>(out STR, in STR, in STR)
-
-=item B<bors>(invar PMC, invar PMC, in STR)
-
-=item B<bors>(invar PMC, invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<or> of the corresponding bits
-from $2 and $3.
-
-=cut
-
-inline op bors(invar PMC, in STR) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $1);
-    STRING * const b = Parrot_str_bitwise_or(interp, a, $2);
-    VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bors(invar PMC, invar PMC) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $1);
-    STRING * const b = VTABLE_get_string(interp, $2);
-    STRING * const c = Parrot_str_bitwise_or(interp, a, b);
-    VTABLE_set_string_native(interp, $1, c);
-}
-
-inline op bors(out STR, in STR, in STR) :base_core {
-    $1 = Parrot_str_bitwise_or(interp, $2, $3);
-}
-
-inline op bors(invar PMC, invar PMC, in STR) :base_core {
-    STRING * const b = VTABLE_get_string(interp, $2);
-    STRING * const c = Parrot_str_bitwise_or(interp, b, $3);
-    VTABLE_set_string_native(interp, $1, c);
-}
-
-inline op bors(invar PMC, invar PMC, invar PMC) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $2);
-    STRING * const b = VTABLE_get_string(interp, $3);
-    STRING * const c = Parrot_str_bitwise_or(interp, a, b);
-    VTABLE_set_string_native(interp, $1, c);
-}
-
 ########################################
 
 =item B<shl>(inout INT, in INT)
 
-=item B<shl>(invar PMC, in INT)
-
-=item B<shl>(invar PMC, invar PMC)
-
 Shift left $1 by $2 bits.
 
 =item B<shl>(out INT, in INT, in INT)
 
-=item B<shl>(invar PMC, invar PMC, in INT)
-
-=item B<shl>(invar PMC, invar PMC, invar PMC)
-
 Set $1 to the value of $2 shifted left by $3 bits.
 
 =cut
@@ -319,52 +99,18 @@
     $1 = bit_shift_left($1, $2);
 }
 
-inline op shl(invar PMC, in INT) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $1);
-    const INTVAL b = bit_shift_left(a, $2);
-    VTABLE_set_integer_native(interp, $1, b);
-}
-
-inline op shl(invar PMC, invar PMC) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $1);
-    const INTVAL b = VTABLE_get_integer(interp, $2);
-    const INTVAL c = bit_shift_left(a, b);
-    VTABLE_set_integer_native(interp, $1, c);
-}
-
 inline op shl(out INT, in INT, in INT) :base_core {
     $1 = bit_shift_left($2, $3);
 }
 
-inline op shl(invar PMC, invar PMC, in INT) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $2);
-    const INTVAL b = bit_shift_left(a, $3);
-    VTABLE_set_integer_native(interp, $1, b);
-}
-
-inline op shl(invar PMC, invar PMC, invar PMC) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $2);
-    const INTVAL b = VTABLE_get_integer(interp, $3);
-    const INTVAL c = bit_shift_left(a, b);
-    VTABLE_set_integer_native(interp, $1, c);
-}
-
 ########################################
 
 =item B<shr>(inout INT, in INT)
 
-=item B<shr>(invar PMC, in INT)
-
-=item B<shr>(invar PMC, invar PMC)
-
 Shift right $1 by $2 bits.
 
 =item B<shr>(out INT, in INT, in INT)
 
-=item B<shr>(invar PMC, invar PMC, in INT)
-
-=item B<shr>(invar PMC, invar PMC, invar PMC)
-
 Set $1 to the value of $2 shifted right by $3 bits.
 
 =cut
@@ -374,53 +120,19 @@
     $1 = bit_shift_left($1, signed_shift);
 }
 
-inline op shr(invar PMC, in INT) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $1);
-    const INTVAL b = bit_shift_left(a, -$2);
-    VTABLE_set_integer_native(interp, $1, b);
-}
-
-inline op shr(invar PMC, invar PMC) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $1);
-    const INTVAL b = VTABLE_get_integer(interp, $2);
-    const INTVAL c = bit_shift_left(a, -b);
-    VTABLE_set_integer_native(interp, $1, c);
-}
-
 inline op shr(out INT, in INT, in INT) :base_core {
     const INTVAL signed_shift = -$3;
     $1 = bit_shift_left($2, signed_shift);
 }
 
-inline op shr(invar PMC, invar PMC, in INT) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $2);
-    const INTVAL c = bit_shift_left(a, -$3);
-    VTABLE_set_integer_native(interp, $1, c);
-}
-
-inline op shr(invar PMC, invar PMC, invar PMC) :base_core {
-    const INTVAL a = VTABLE_get_integer(interp, $2);
-    const INTVAL b = VTABLE_get_integer(interp, $3);
-    const INTVAL c = bit_shift_left(a, -b);
-    VTABLE_set_integer_native(interp, $1, c);
-}
-
 ########################################
 
 =item B<lsr>(out INT, in INT)
 
-=item B<lsr>(invar PMC, in INT)
-
-=item B<lsr>(invar PMC, invar PMC)
-
 Shift $1 logically shifted right by $2 bits.
 
 =item B<lsr>(out INT, in INT, in INT)
 
-=item B<lsr>(invar PMC, invar PMC, in INT)
-
-=item B<lsr>(invar PMC, invar PMC, invar PMC)
-
 Set $1 to the value of $2 logically shifted right by $3 bits.
 
 =cut
@@ -431,77 +143,19 @@
     $1 = (INTVAL)b;
 }
 
-inline op lsr(invar PMC, in INT) :base_core {
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
-    const UINTVAL b = a >> $2;
-    VTABLE_set_integer_native(interp, $1, (INTVAL)b);
-}
-
-inline op lsr(invar PMC, invar PMC) :base_core {
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
-    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
-    const UINTVAL c = a >> b;
-    VTABLE_set_integer_native(interp, $1, (INTVAL)c);
-}
-
 inline op lsr(out INT, in INT, in INT) :base_core {
     $1 = (INTVAL)((UINTVAL)$2 >> $3);
 }
 
-inline op lsr(invar PMC, invar PMC, in INT) :base_core {
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
-    const UINTVAL b = (UINTVAL)$3;
-    const UINTVAL c = a >> b;
-    VTABLE_set_integer_native(interp, $1, (INTVAL)c);
-}
-
-inline op lsr(invar PMC, invar PMC, invar PMC) :base_core {
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
-    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
-    const UINTVAL c = a >> b;
-    VTABLE_set_integer_native(interp, $3, (INTVAL)c);
-}
-
-=item B<rot>(out INT, in INT, in INT, inconst INT)
-
-Rotate $2 left or right by $3 and place result in $1.
-$4 is the amount of bits to rotate, 32 bit on a 32-bit CPU and 32 or 64
-on a 64-bit CPU. If the rotate count is negative a rotate right by ($3+$4)
-is performed.
-
-=cut
-
-inline op rot(out INT, in INT, in INT, inconst INT) {
-    const INTVAL r = $2;
-    INTVAL s = $3;
-    const INTVAL w = $4;
-    INTVAL d, t;
-    if (s < 0)
-        s += w;
-    d = r << s;
-    t = w - s;
-    t = (INTVAL)((UINTVAL)r >> t);
-    d |= t;
-    $1 = d;
-}
-
 ########################################
 
 =item B<bxor>(inout INT, in INT)
 
-=item B<bxor>(invar PMC, in INT)
-
-=item B<bxor>(invar PMC, invar PMC)
-
 Set the bits of $1 according to the B<xor> of the corresponding bits
 from $1 and $2.
 
 =item B<bxor>(out INT, in INT, in INT)
 
-=item B<bxor>(invar PMC, invar PMC, in INT)
-
-=item B<bxor>(invar PMC, invar PMC, invar PMC)
-
 Set the bits of $1 according to the B<xor> of the corresponding bits
 from $2 and $3.
 
@@ -511,84 +165,10 @@
     $1 ^= $2;
 }
 
-inline op bxor(invar PMC, in INT) :base_core {
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
-    const UINTVAL b = a ^ $2;
-    VTABLE_set_integer_native(interp, $1, (INTVAL)b);
-}
-
-inline op bxor(invar PMC, invar PMC) :base_core {
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
-    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
-    const UINTVAL c = a ^ b;
-    VTABLE_set_integer_native(interp, $1, (INTVAL)c);
-}
-
 inline op bxor(out INT, in INT, in INT) :base_core {
     $1 = $2 ^ $3;
 }
 
-inline op bxor(invar PMC, invar PMC, in INT) :base_core {
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
-    const UINTVAL b = a ^ $3;
-    VTABLE_set_integer_native(interp, $1, (INTVAL)b);
-}
-
-inline op bxor(invar PMC, invar PMC, invar PMC) :base_core {
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
-    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
-    const UINTVAL c = a ^ b;
-    VTABLE_set_integer_native(interp, $1, (INTVAL)c);
-}
-
-=item B<bxors>(invar PMC, in STR)
-
-=item B<bxors>(invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<xor> of the corresponding bits
-from $1 and $2.
-
-=item B<bxors>(out STR, in STR, in STR)
-
-=item B<bxors>(invar PMC, invar PMC, in STR)
-
-=item B<bxors>(invar PMC, invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<xor> of the corresponding bits
-from $2 and $3.
-
-=cut
-
-inline op bxors(invar PMC, in STR) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $1);
-    STRING * const b = Parrot_str_bitwise_xor(interp, a, $2);
-    VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bxors(invar PMC, invar PMC) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $1);
-    STRING * const b = VTABLE_get_string(interp, $2);
-    STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
-    VTABLE_set_string_native(interp, $1, c);
-}
-
-inline op bxors(out STR, in STR, in STR) :base_core {
-    $1 = Parrot_str_bitwise_xor(interp, $2, $3);
-}
-
-inline op bxors(invar PMC, invar PMC, in STR) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $2);
-    STRING * const b = Parrot_str_bitwise_xor(interp, a, $3);
-    VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bxors(invar PMC, invar PMC, invar PMC) :base_core {
-    STRING * const a = VTABLE_get_string(interp, $2);
-    STRING * const b = VTABLE_get_string(interp, $3);
-    STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
-    VTABLE_set_string_native(interp, $1, c);
-}
-
 =back
 
 =cut

Modified: branches/gsoc_nfg/src/ops/cmp.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/cmp.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/cmp.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -15,6 +15,9 @@
 Some of these operations affect control flow directly; others
 do not.
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
 =cut
 
 ###############################################################################

Modified: branches/gsoc_nfg/src/ops/core.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/core.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/core.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -26,6 +26,9 @@
 Core operations are primarily flow control and interpreter
 introspection.
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
 =cut
 
 # ' for emacs
@@ -379,6 +382,8 @@
     PMC      * const signature = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+
     if (!PMC_IS_NULL(signature))
         Parrot_pcc_set_object(interp, signature, NULL);
     interp->current_cont   = NEED_CONTINUATION;
@@ -393,6 +398,8 @@
     PMC * const signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+
     if (!PMC_IS_NULL(signature))
         Parrot_pcc_set_object(interp, signature, NULL);
     interp->current_cont   = $2;
@@ -819,7 +826,8 @@
     opcode_t        *dest;
     opcode_t * const ret       = expr NEXT();
     PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
-    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, $1, NULL);
+    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit,
+                                                           CONTROL_EXIT, NULL);
 
     VTABLE_set_pointer(interp, resume, ret);
 
@@ -1103,7 +1111,7 @@
 
 op sweep(inconst INT) {
     if ($1)
-        Parrot_gc_mark_and_sweep(interp, 0);
+        Parrot_gc_mark_and_sweep(interp, GC_trace_normal_FLAG);
     else
         if (Parrot_gc_impatient_pmcs(interp))
             Parrot_gc_mark_and_sweep(interp, GC_lazy_FLAG);

Modified: branches/gsoc_nfg/src/ops/core_ops.c
==============================================================================
--- branches/gsoc_nfg/src/ops/core_ops.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/core_ops.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -5,7 +5,8 @@
  * This file is generated automatically from 'src/ops/core.ops' (and possibly other
  * .ops files). by ops2c.nqp.
  *
- * Any changes made here will be lost!
+ * Any changes made here will be lost!  To regenerate this file after making
+ * changes to any ops, use the bootstap-ops makefile target.
  *
  */
 
@@ -61,13 +62,14 @@
 
 
 
-INTVAL core_numops = 1269;
+INTVAL core_numops = 1084;
 
 /*
 ** Op Function Table:
 */
 
-static op_func_t core_op_func_table[1269] = {  Parrot_end,                                        /*      0 */
+static op_func_t core_op_func_table[1084] = {
+  Parrot_end,                                        /*      0 */
   Parrot_noop,                                       /*      1 */
   Parrot_check_events,                               /*      2 */
   Parrot_check_events__,                             /*      3 */
@@ -186,1155 +188,970 @@
   Parrot_annotations_p_sc,                           /*    116 */
   Parrot_band_i_i,                                   /*    117 */
   Parrot_band_i_ic,                                  /*    118 */
-  Parrot_band_p_i,                                   /*    119 */
-  Parrot_band_p_ic,                                  /*    120 */
-  Parrot_band_p_p,                                   /*    121 */
-  Parrot_band_i_i_i,                                 /*    122 */
-  Parrot_band_i_ic_i,                                /*    123 */
-  Parrot_band_i_i_ic,                                /*    124 */
-  Parrot_band_p_p_i,                                 /*    125 */
-  Parrot_band_p_p_ic,                                /*    126 */
-  Parrot_band_p_p_p,                                 /*    127 */
-  Parrot_bands_p_s,                                  /*    128 */
-  Parrot_bands_p_sc,                                 /*    129 */
-  Parrot_bands_p_p,                                  /*    130 */
-  Parrot_bands_s_s_s,                                /*    131 */
-  Parrot_bands_s_sc_s,                               /*    132 */
-  Parrot_bands_s_s_sc,                               /*    133 */
-  Parrot_bands_p_p_s,                                /*    134 */
-  Parrot_bands_p_p_sc,                               /*    135 */
-  Parrot_bands_p_p_p,                                /*    136 */
-  Parrot_bnot_i,                                     /*    137 */
-  Parrot_bnot_i_i,                                   /*    138 */
-  Parrot_bnot_p,                                     /*    139 */
-  Parrot_bnot_p_p,                                   /*    140 */
-  Parrot_bnots_s_s,                                  /*    141 */
-  Parrot_bnots_s_sc,                                 /*    142 */
-  Parrot_bnots_p,                                    /*    143 */
-  Parrot_bnots_p_p,                                  /*    144 */
-  Parrot_bor_i_i,                                    /*    145 */
-  Parrot_bor_i_ic,                                   /*    146 */
-  Parrot_bor_p_i,                                    /*    147 */
-  Parrot_bor_p_ic,                                   /*    148 */
-  Parrot_bor_p_p,                                    /*    149 */
-  Parrot_bor_i_i_i,                                  /*    150 */
-  Parrot_bor_i_ic_i,                                 /*    151 */
-  Parrot_bor_i_i_ic,                                 /*    152 */
-  Parrot_bor_p_p_i,                                  /*    153 */
-  Parrot_bor_p_p_ic,                                 /*    154 */
-  Parrot_bor_p_p_p,                                  /*    155 */
-  Parrot_bors_p_s,                                   /*    156 */
-  Parrot_bors_p_sc,                                  /*    157 */
-  Parrot_bors_p_p,                                   /*    158 */
-  Parrot_bors_s_s_s,                                 /*    159 */
-  Parrot_bors_s_sc_s,                                /*    160 */
-  Parrot_bors_s_s_sc,                                /*    161 */
-  Parrot_bors_p_p_s,                                 /*    162 */
-  Parrot_bors_p_p_sc,                                /*    163 */
-  Parrot_bors_p_p_p,                                 /*    164 */
-  Parrot_shl_i_i,                                    /*    165 */
-  Parrot_shl_i_ic,                                   /*    166 */
-  Parrot_shl_p_i,                                    /*    167 */
-  Parrot_shl_p_ic,                                   /*    168 */
-  Parrot_shl_p_p,                                    /*    169 */
-  Parrot_shl_i_i_i,                                  /*    170 */
-  Parrot_shl_i_ic_i,                                 /*    171 */
-  Parrot_shl_i_i_ic,                                 /*    172 */
-  Parrot_shl_p_p_i,                                  /*    173 */
-  Parrot_shl_p_p_ic,                                 /*    174 */
-  Parrot_shl_p_p_p,                                  /*    175 */
-  Parrot_shr_i_i,                                    /*    176 */
-  Parrot_shr_i_ic,                                   /*    177 */
-  Parrot_shr_p_i,                                    /*    178 */
-  Parrot_shr_p_ic,                                   /*    179 */
-  Parrot_shr_p_p,                                    /*    180 */
-  Parrot_shr_i_i_i,                                  /*    181 */
-  Parrot_shr_i_ic_i,                                 /*    182 */
-  Parrot_shr_i_i_ic,                                 /*    183 */
-  Parrot_shr_p_p_i,                                  /*    184 */
-  Parrot_shr_p_p_ic,                                 /*    185 */
-  Parrot_shr_p_p_p,                                  /*    186 */
-  Parrot_lsr_i_i,                                    /*    187 */
-  Parrot_lsr_i_ic,                                   /*    188 */
-  Parrot_lsr_p_i,                                    /*    189 */
-  Parrot_lsr_p_ic,                                   /*    190 */
-  Parrot_lsr_p_p,                                    /*    191 */
-  Parrot_lsr_i_i_i,                                  /*    192 */
-  Parrot_lsr_i_ic_i,                                 /*    193 */
-  Parrot_lsr_i_i_ic,                                 /*    194 */
-  Parrot_lsr_p_p_i,                                  /*    195 */
-  Parrot_lsr_p_p_ic,                                 /*    196 */
-  Parrot_lsr_p_p_p,                                  /*    197 */
-  Parrot_rot_i_i_i_ic,                               /*    198 */
-  Parrot_rot_i_ic_i_ic,                              /*    199 */
-  Parrot_rot_i_i_ic_ic,                              /*    200 */
-  Parrot_bxor_i_i,                                   /*    201 */
-  Parrot_bxor_i_ic,                                  /*    202 */
-  Parrot_bxor_p_i,                                   /*    203 */
-  Parrot_bxor_p_ic,                                  /*    204 */
-  Parrot_bxor_p_p,                                   /*    205 */
-  Parrot_bxor_i_i_i,                                 /*    206 */
-  Parrot_bxor_i_ic_i,                                /*    207 */
-  Parrot_bxor_i_i_ic,                                /*    208 */
-  Parrot_bxor_p_p_i,                                 /*    209 */
-  Parrot_bxor_p_p_ic,                                /*    210 */
-  Parrot_bxor_p_p_p,                                 /*    211 */
-  Parrot_bxors_p_s,                                  /*    212 */
-  Parrot_bxors_p_sc,                                 /*    213 */
-  Parrot_bxors_p_p,                                  /*    214 */
-  Parrot_bxors_s_s_s,                                /*    215 */
-  Parrot_bxors_s_sc_s,                               /*    216 */
-  Parrot_bxors_s_s_sc,                               /*    217 */
-  Parrot_bxors_p_p_s,                                /*    218 */
-  Parrot_bxors_p_p_sc,                               /*    219 */
-  Parrot_bxors_p_p_p,                                /*    220 */
-  Parrot_eq_i_i_ic,                                  /*    221 */
-  Parrot_eq_ic_i_ic,                                 /*    222 */
-  Parrot_eq_i_ic_ic,                                 /*    223 */
-  Parrot_eq_n_n_ic,                                  /*    224 */
-  Parrot_eq_nc_n_ic,                                 /*    225 */
-  Parrot_eq_n_nc_ic,                                 /*    226 */
-  Parrot_eq_s_s_ic,                                  /*    227 */
-  Parrot_eq_sc_s_ic,                                 /*    228 */
-  Parrot_eq_s_sc_ic,                                 /*    229 */
-  Parrot_eq_p_p_ic,                                  /*    230 */
-  Parrot_eq_p_i_ic,                                  /*    231 */
-  Parrot_eq_p_ic_ic,                                 /*    232 */
-  Parrot_eq_p_n_ic,                                  /*    233 */
-  Parrot_eq_p_nc_ic,                                 /*    234 */
-  Parrot_eq_p_s_ic,                                  /*    235 */
-  Parrot_eq_p_sc_ic,                                 /*    236 */
-  Parrot_eq_str_p_p_ic,                              /*    237 */
-  Parrot_eq_num_p_p_ic,                              /*    238 */
-  Parrot_eq_addr_s_s_ic,                             /*    239 */
-  Parrot_eq_addr_sc_s_ic,                            /*    240 */
-  Parrot_eq_addr_s_sc_ic,                            /*    241 */
-  Parrot_eq_addr_sc_sc_ic,                           /*    242 */
-  Parrot_eq_addr_p_p_ic,                             /*    243 */
-  Parrot_ne_i_i_ic,                                  /*    244 */
-  Parrot_ne_ic_i_ic,                                 /*    245 */
-  Parrot_ne_i_ic_ic,                                 /*    246 */
-  Parrot_ne_n_n_ic,                                  /*    247 */
-  Parrot_ne_nc_n_ic,                                 /*    248 */
-  Parrot_ne_n_nc_ic,                                 /*    249 */
-  Parrot_ne_s_s_ic,                                  /*    250 */
-  Parrot_ne_sc_s_ic,                                 /*    251 */
-  Parrot_ne_s_sc_ic,                                 /*    252 */
-  Parrot_ne_p_p_ic,                                  /*    253 */
-  Parrot_ne_p_i_ic,                                  /*    254 */
-  Parrot_ne_p_ic_ic,                                 /*    255 */
-  Parrot_ne_p_n_ic,                                  /*    256 */
-  Parrot_ne_p_nc_ic,                                 /*    257 */
-  Parrot_ne_p_s_ic,                                  /*    258 */
-  Parrot_ne_p_sc_ic,                                 /*    259 */
-  Parrot_ne_str_p_p_ic,                              /*    260 */
-  Parrot_ne_num_p_p_ic,                              /*    261 */
-  Parrot_ne_addr_s_s_ic,                             /*    262 */
-  Parrot_ne_addr_sc_s_ic,                            /*    263 */
-  Parrot_ne_addr_s_sc_ic,                            /*    264 */
-  Parrot_ne_addr_sc_sc_ic,                           /*    265 */
-  Parrot_ne_addr_p_p_ic,                             /*    266 */
-  Parrot_lt_i_i_ic,                                  /*    267 */
-  Parrot_lt_ic_i_ic,                                 /*    268 */
-  Parrot_lt_i_ic_ic,                                 /*    269 */
-  Parrot_lt_n_n_ic,                                  /*    270 */
-  Parrot_lt_nc_n_ic,                                 /*    271 */
-  Parrot_lt_n_nc_ic,                                 /*    272 */
-  Parrot_lt_s_s_ic,                                  /*    273 */
-  Parrot_lt_sc_s_ic,                                 /*    274 */
-  Parrot_lt_s_sc_ic,                                 /*    275 */
-  Parrot_lt_p_p_ic,                                  /*    276 */
-  Parrot_lt_p_i_ic,                                  /*    277 */
-  Parrot_lt_p_ic_ic,                                 /*    278 */
-  Parrot_lt_p_n_ic,                                  /*    279 */
-  Parrot_lt_p_nc_ic,                                 /*    280 */
-  Parrot_lt_p_s_ic,                                  /*    281 */
-  Parrot_lt_p_sc_ic,                                 /*    282 */
-  Parrot_lt_str_p_p_ic,                              /*    283 */
-  Parrot_lt_num_p_p_ic,                              /*    284 */
-  Parrot_le_i_i_ic,                                  /*    285 */
-  Parrot_le_ic_i_ic,                                 /*    286 */
-  Parrot_le_i_ic_ic,                                 /*    287 */
-  Parrot_le_n_n_ic,                                  /*    288 */
-  Parrot_le_nc_n_ic,                                 /*    289 */
-  Parrot_le_n_nc_ic,                                 /*    290 */
-  Parrot_le_s_s_ic,                                  /*    291 */
-  Parrot_le_sc_s_ic,                                 /*    292 */
-  Parrot_le_s_sc_ic,                                 /*    293 */
-  Parrot_le_p_p_ic,                                  /*    294 */
-  Parrot_le_p_i_ic,                                  /*    295 */
-  Parrot_le_p_ic_ic,                                 /*    296 */
-  Parrot_le_p_n_ic,                                  /*    297 */
-  Parrot_le_p_nc_ic,                                 /*    298 */
-  Parrot_le_p_s_ic,                                  /*    299 */
-  Parrot_le_p_sc_ic,                                 /*    300 */
-  Parrot_le_str_p_p_ic,                              /*    301 */
-  Parrot_le_num_p_p_ic,                              /*    302 */
-  Parrot_gt_p_p_ic,                                  /*    303 */
-  Parrot_gt_p_i_ic,                                  /*    304 */
-  Parrot_gt_p_ic_ic,                                 /*    305 */
-  Parrot_gt_p_n_ic,                                  /*    306 */
-  Parrot_gt_p_nc_ic,                                 /*    307 */
-  Parrot_gt_p_s_ic,                                  /*    308 */
-  Parrot_gt_p_sc_ic,                                 /*    309 */
-  Parrot_gt_str_p_p_ic,                              /*    310 */
-  Parrot_gt_num_p_p_ic,                              /*    311 */
-  Parrot_ge_p_p_ic,                                  /*    312 */
-  Parrot_ge_p_i_ic,                                  /*    313 */
-  Parrot_ge_p_ic_ic,                                 /*    314 */
-  Parrot_ge_p_n_ic,                                  /*    315 */
-  Parrot_ge_p_nc_ic,                                 /*    316 */
-  Parrot_ge_p_s_ic,                                  /*    317 */
-  Parrot_ge_p_sc_ic,                                 /*    318 */
-  Parrot_ge_str_p_p_ic,                              /*    319 */
-  Parrot_ge_num_p_p_ic,                              /*    320 */
-  Parrot_if_null_p_ic,                               /*    321 */
-  Parrot_if_null_s_ic,                               /*    322 */
-  Parrot_unless_null_p_ic,                           /*    323 */
-  Parrot_unless_null_s_ic,                           /*    324 */
-  Parrot_cmp_i_i_i,                                  /*    325 */
-  Parrot_cmp_i_ic_i,                                 /*    326 */
-  Parrot_cmp_i_i_ic,                                 /*    327 */
-  Parrot_cmp_i_n_n,                                  /*    328 */
-  Parrot_cmp_i_nc_n,                                 /*    329 */
-  Parrot_cmp_i_n_nc,                                 /*    330 */
-  Parrot_cmp_i_s_s,                                  /*    331 */
-  Parrot_cmp_i_sc_s,                                 /*    332 */
-  Parrot_cmp_i_s_sc,                                 /*    333 */
-  Parrot_cmp_i_p_p,                                  /*    334 */
-  Parrot_cmp_i_p_i,                                  /*    335 */
-  Parrot_cmp_i_p_ic,                                 /*    336 */
-  Parrot_cmp_i_p_n,                                  /*    337 */
-  Parrot_cmp_i_p_nc,                                 /*    338 */
-  Parrot_cmp_i_p_s,                                  /*    339 */
-  Parrot_cmp_i_p_sc,                                 /*    340 */
-  Parrot_cmp_str_i_p_p,                              /*    341 */
-  Parrot_cmp_num_i_p_p,                              /*    342 */
-  Parrot_cmp_pmc_p_p_p,                              /*    343 */
-  Parrot_issame_i_p_p,                               /*    344 */
-  Parrot_issame_i_s_s,                               /*    345 */
-  Parrot_issame_i_sc_s,                              /*    346 */
-  Parrot_issame_i_s_sc,                              /*    347 */
-  Parrot_issame_i_sc_sc,                             /*    348 */
-  Parrot_isntsame_i_p_p,                             /*    349 */
-  Parrot_isntsame_i_s_s,                             /*    350 */
-  Parrot_isntsame_i_sc_s,                            /*    351 */
-  Parrot_isntsame_i_s_sc,                            /*    352 */
-  Parrot_isntsame_i_sc_sc,                           /*    353 */
-  Parrot_istrue_i_p,                                 /*    354 */
-  Parrot_isfalse_i_p,                                /*    355 */
-  Parrot_isnull_i_p,                                 /*    356 */
-  Parrot_isnull_i_pc,                                /*    357 */
-  Parrot_isnull_i_s,                                 /*    358 */
-  Parrot_isnull_i_sc,                                /*    359 */
-  Parrot_isgt_i_p_p,                                 /*    360 */
-  Parrot_isge_i_p_p,                                 /*    361 */
-  Parrot_isle_i_i_i,                                 /*    362 */
-  Parrot_isle_i_ic_i,                                /*    363 */
-  Parrot_isle_i_i_ic,                                /*    364 */
-  Parrot_isle_i_n_n,                                 /*    365 */
-  Parrot_isle_i_nc_n,                                /*    366 */
-  Parrot_isle_i_n_nc,                                /*    367 */
-  Parrot_isle_i_s_s,                                 /*    368 */
-  Parrot_isle_i_sc_s,                                /*    369 */
-  Parrot_isle_i_s_sc,                                /*    370 */
-  Parrot_isle_i_p_p,                                 /*    371 */
-  Parrot_islt_i_i_i,                                 /*    372 */
-  Parrot_islt_i_ic_i,                                /*    373 */
-  Parrot_islt_i_i_ic,                                /*    374 */
-  Parrot_islt_i_n_n,                                 /*    375 */
-  Parrot_islt_i_nc_n,                                /*    376 */
-  Parrot_islt_i_n_nc,                                /*    377 */
-  Parrot_islt_i_s_s,                                 /*    378 */
-  Parrot_islt_i_sc_s,                                /*    379 */
-  Parrot_islt_i_s_sc,                                /*    380 */
-  Parrot_islt_i_p_p,                                 /*    381 */
-  Parrot_iseq_i_i_i,                                 /*    382 */
-  Parrot_iseq_i_ic_i,                                /*    383 */
-  Parrot_iseq_i_i_ic,                                /*    384 */
-  Parrot_iseq_i_n_n,                                 /*    385 */
-  Parrot_iseq_i_nc_n,                                /*    386 */
-  Parrot_iseq_i_n_nc,                                /*    387 */
-  Parrot_iseq_i_s_s,                                 /*    388 */
-  Parrot_iseq_i_sc_s,                                /*    389 */
-  Parrot_iseq_i_s_sc,                                /*    390 */
-  Parrot_iseq_i_p_p,                                 /*    391 */
-  Parrot_isne_i_i_i,                                 /*    392 */
-  Parrot_isne_i_ic_i,                                /*    393 */
-  Parrot_isne_i_i_ic,                                /*    394 */
-  Parrot_isne_i_n_n,                                 /*    395 */
-  Parrot_isne_i_nc_n,                                /*    396 */
-  Parrot_isne_i_n_nc,                                /*    397 */
-  Parrot_isne_i_s_s,                                 /*    398 */
-  Parrot_isne_i_sc_s,                                /*    399 */
-  Parrot_isne_i_s_sc,                                /*    400 */
-  Parrot_isne_i_p_p,                                 /*    401 */
-  Parrot_and_i_i_i,                                  /*    402 */
-  Parrot_and_i_ic_i,                                 /*    403 */
-  Parrot_and_i_i_ic,                                 /*    404 */
-  Parrot_and_p_p_p,                                  /*    405 */
-  Parrot_not_i,                                      /*    406 */
-  Parrot_not_i_i,                                    /*    407 */
-  Parrot_not_p,                                      /*    408 */
-  Parrot_not_p_p,                                    /*    409 */
-  Parrot_or_i_i_i,                                   /*    410 */
-  Parrot_or_i_ic_i,                                  /*    411 */
-  Parrot_or_i_i_ic,                                  /*    412 */
-  Parrot_or_p_p_p,                                   /*    413 */
-  Parrot_xor_i_i_i,                                  /*    414 */
-  Parrot_xor_i_ic_i,                                 /*    415 */
-  Parrot_xor_i_i_ic,                                 /*    416 */
-  Parrot_xor_p_p_p,                                  /*    417 */
-  Parrot_debug_init,                                 /*    418 */
-  Parrot_debug_load_sc,                              /*    419 */
-  Parrot_debug_break,                                /*    420 */
-  Parrot_debug_print,                                /*    421 */
-  Parrot_backtrace,                                  /*    422 */
-  Parrot_getline_i,                                  /*    423 */
-  Parrot_getfile_s,                                  /*    424 */
-  Parrot_close_p,                                    /*    425 */
-  Parrot_fdopen_p_i_s,                               /*    426 */
-  Parrot_fdopen_p_ic_s,                              /*    427 */
-  Parrot_fdopen_p_i_sc,                              /*    428 */
-  Parrot_fdopen_p_ic_sc,                             /*    429 */
-  Parrot_getstdin_p,                                 /*    430 */
-  Parrot_getstdout_p,                                /*    431 */
-  Parrot_getstderr_p,                                /*    432 */
-  Parrot_setstdin_p,                                 /*    433 */
-  Parrot_setstdout_p,                                /*    434 */
-  Parrot_setstderr_p,                                /*    435 */
-  Parrot_open_p_s_s,                                 /*    436 */
-  Parrot_open_p_sc_s,                                /*    437 */
-  Parrot_open_p_s_sc,                                /*    438 */
-  Parrot_open_p_sc_sc,                               /*    439 */
-  Parrot_open_p_s,                                   /*    440 */
-  Parrot_open_p_sc,                                  /*    441 */
-  Parrot_print_i,                                    /*    442 */
-  Parrot_print_ic,                                   /*    443 */
-  Parrot_print_n,                                    /*    444 */
-  Parrot_print_nc,                                   /*    445 */
-  Parrot_print_s,                                    /*    446 */
-  Parrot_print_sc,                                   /*    447 */
-  Parrot_print_p,                                    /*    448 */
-  Parrot_say_i,                                      /*    449 */
-  Parrot_say_ic,                                     /*    450 */
-  Parrot_say_n,                                      /*    451 */
-  Parrot_say_nc,                                     /*    452 */
-  Parrot_say_s,                                      /*    453 */
-  Parrot_say_sc,                                     /*    454 */
-  Parrot_say_p,                                      /*    455 */
-  Parrot_printerr_i,                                 /*    456 */
-  Parrot_printerr_ic,                                /*    457 */
-  Parrot_printerr_n,                                 /*    458 */
-  Parrot_printerr_nc,                                /*    459 */
-  Parrot_printerr_s,                                 /*    460 */
-  Parrot_printerr_sc,                                /*    461 */
-  Parrot_printerr_p,                                 /*    462 */
-  Parrot_print_p_i,                                  /*    463 */
-  Parrot_print_p_ic,                                 /*    464 */
-  Parrot_print_p_n,                                  /*    465 */
-  Parrot_print_p_nc,                                 /*    466 */
-  Parrot_print_p_s,                                  /*    467 */
-  Parrot_print_p_sc,                                 /*    468 */
-  Parrot_print_p_p,                                  /*    469 */
-  Parrot_read_s_i,                                   /*    470 */
-  Parrot_read_s_ic,                                  /*    471 */
-  Parrot_read_s_p_i,                                 /*    472 */
-  Parrot_read_s_p_ic,                                /*    473 */
-  Parrot_readline_s_p,                               /*    474 */
-  Parrot_peek_s,                                     /*    475 */
-  Parrot_peek_s_p,                                   /*    476 */
-  Parrot_stat_i_s_i,                                 /*    477 */
-  Parrot_stat_i_sc_i,                                /*    478 */
-  Parrot_stat_i_s_ic,                                /*    479 */
-  Parrot_stat_i_sc_ic,                               /*    480 */
-  Parrot_stat_i_i_i,                                 /*    481 */
-  Parrot_stat_i_ic_i,                                /*    482 */
-  Parrot_stat_i_i_ic,                                /*    483 */
-  Parrot_stat_i_ic_ic,                               /*    484 */
-  Parrot_seek_p_i_i,                                 /*    485 */
-  Parrot_seek_p_ic_i,                                /*    486 */
-  Parrot_seek_p_i_ic,                                /*    487 */
-  Parrot_seek_p_ic_ic,                               /*    488 */
-  Parrot_seek_p_i_i_i,                               /*    489 */
-  Parrot_seek_p_ic_i_i,                              /*    490 */
-  Parrot_seek_p_i_ic_i,                              /*    491 */
-  Parrot_seek_p_ic_ic_i,                             /*    492 */
-  Parrot_seek_p_i_i_ic,                              /*    493 */
-  Parrot_seek_p_ic_i_ic,                             /*    494 */
-  Parrot_seek_p_i_ic_ic,                             /*    495 */
-  Parrot_seek_p_ic_ic_ic,                            /*    496 */
-  Parrot_tell_i_p,                                   /*    497 */
-  Parrot_tell_i_i_p,                                 /*    498 */
-  Parrot_abs_i,                                      /*    499 */
-  Parrot_abs_n,                                      /*    500 */
-  Parrot_abs_i_i,                                    /*    501 */
-  Parrot_abs_n_n,                                    /*    502 */
-  Parrot_abs_p,                                      /*    503 */
-  Parrot_abs_p_p,                                    /*    504 */
-  Parrot_add_i_i,                                    /*    505 */
-  Parrot_add_i_ic,                                   /*    506 */
-  Parrot_add_n_n,                                    /*    507 */
-  Parrot_add_n_nc,                                   /*    508 */
-  Parrot_add_p_p,                                    /*    509 */
-  Parrot_add_p_i,                                    /*    510 */
-  Parrot_add_p_ic,                                   /*    511 */
-  Parrot_add_p_n,                                    /*    512 */
-  Parrot_add_p_nc,                                   /*    513 */
-  Parrot_add_i_i_i,                                  /*    514 */
-  Parrot_add_i_ic_i,                                 /*    515 */
-  Parrot_add_i_i_ic,                                 /*    516 */
-  Parrot_add_n_n_n,                                  /*    517 */
-  Parrot_add_n_nc_n,                                 /*    518 */
-  Parrot_add_n_n_nc,                                 /*    519 */
-  Parrot_add_p_p_p,                                  /*    520 */
-  Parrot_add_p_p_i,                                  /*    521 */
-  Parrot_add_p_p_ic,                                 /*    522 */
-  Parrot_add_p_p_n,                                  /*    523 */
-  Parrot_add_p_p_nc,                                 /*    524 */
-  Parrot_cmod_i_i_i,                                 /*    525 */
-  Parrot_cmod_i_ic_i,                                /*    526 */
-  Parrot_cmod_i_i_ic,                                /*    527 */
-  Parrot_cmod_p_p_i,                                 /*    528 */
-  Parrot_cmod_p_p_ic,                                /*    529 */
-  Parrot_cmod_p_p_p,                                 /*    530 */
-  Parrot_cmod_n_n_n,                                 /*    531 */
-  Parrot_cmod_n_nc_n,                                /*    532 */
-  Parrot_cmod_n_n_nc,                                /*    533 */
-  Parrot_cmod_p_p_n,                                 /*    534 */
-  Parrot_cmod_p_p_nc,                                /*    535 */
-  Parrot_dec_i,                                      /*    536 */
-  Parrot_dec_n,                                      /*    537 */
-  Parrot_dec_p,                                      /*    538 */
-  Parrot_div_i_i,                                    /*    539 */
-  Parrot_div_i_ic,                                   /*    540 */
-  Parrot_div_n_n,                                    /*    541 */
-  Parrot_div_n_nc,                                   /*    542 */
-  Parrot_div_p_p,                                    /*    543 */
-  Parrot_div_p_i,                                    /*    544 */
-  Parrot_div_p_ic,                                   /*    545 */
-  Parrot_div_p_n,                                    /*    546 */
-  Parrot_div_p_nc,                                   /*    547 */
-  Parrot_div_i_i_i,                                  /*    548 */
-  Parrot_div_i_ic_i,                                 /*    549 */
-  Parrot_div_i_i_ic,                                 /*    550 */
-  Parrot_div_i_ic_ic,                                /*    551 */
-  Parrot_div_n_n_n,                                  /*    552 */
-  Parrot_div_n_nc_n,                                 /*    553 */
-  Parrot_div_n_n_nc,                                 /*    554 */
-  Parrot_div_n_nc_nc,                                /*    555 */
-  Parrot_div_p_p_p,                                  /*    556 */
-  Parrot_div_p_p_i,                                  /*    557 */
-  Parrot_div_p_p_ic,                                 /*    558 */
-  Parrot_div_p_p_n,                                  /*    559 */
-  Parrot_div_p_p_nc,                                 /*    560 */
-  Parrot_fdiv_i_i,                                   /*    561 */
-  Parrot_fdiv_i_ic,                                  /*    562 */
-  Parrot_fdiv_n_n,                                   /*    563 */
-  Parrot_fdiv_n_nc,                                  /*    564 */
-  Parrot_fdiv_p_p,                                   /*    565 */
-  Parrot_fdiv_p_i,                                   /*    566 */
-  Parrot_fdiv_p_ic,                                  /*    567 */
-  Parrot_fdiv_p_n,                                   /*    568 */
-  Parrot_fdiv_p_nc,                                  /*    569 */
-  Parrot_fdiv_i_i_i,                                 /*    570 */
-  Parrot_fdiv_i_ic_i,                                /*    571 */
-  Parrot_fdiv_i_i_ic,                                /*    572 */
-  Parrot_fdiv_n_n_n,                                 /*    573 */
-  Parrot_fdiv_n_nc_n,                                /*    574 */
-  Parrot_fdiv_n_n_nc,                                /*    575 */
-  Parrot_fdiv_p_p_p,                                 /*    576 */
-  Parrot_fdiv_p_p_i,                                 /*    577 */
-  Parrot_fdiv_p_p_ic,                                /*    578 */
-  Parrot_fdiv_p_p_n,                                 /*    579 */
-  Parrot_fdiv_p_p_nc,                                /*    580 */
-  Parrot_ceil_n,                                     /*    581 */
-  Parrot_ceil_i_n,                                   /*    582 */
-  Parrot_ceil_n_n,                                   /*    583 */
-  Parrot_floor_n,                                    /*    584 */
-  Parrot_floor_i_n,                                  /*    585 */
-  Parrot_floor_n_n,                                  /*    586 */
-  Parrot_inc_i,                                      /*    587 */
-  Parrot_inc_n,                                      /*    588 */
-  Parrot_inc_p,                                      /*    589 */
-  Parrot_mod_i_i,                                    /*    590 */
-  Parrot_mod_i_ic,                                   /*    591 */
-  Parrot_mod_n_n,                                    /*    592 */
-  Parrot_mod_n_nc,                                   /*    593 */
-  Parrot_mod_p_p,                                    /*    594 */
-  Parrot_mod_p_i,                                    /*    595 */
-  Parrot_mod_p_ic,                                   /*    596 */
-  Parrot_mod_p_n,                                    /*    597 */
-  Parrot_mod_p_nc,                                   /*    598 */
-  Parrot_mod_i_i_i,                                  /*    599 */
-  Parrot_mod_i_ic_i,                                 /*    600 */
-  Parrot_mod_i_i_ic,                                 /*    601 */
-  Parrot_mod_n_n_n,                                  /*    602 */
-  Parrot_mod_n_nc_n,                                 /*    603 */
-  Parrot_mod_n_n_nc,                                 /*    604 */
-  Parrot_mod_p_p_p,                                  /*    605 */
-  Parrot_mod_p_p_i,                                  /*    606 */
-  Parrot_mod_p_p_ic,                                 /*    607 */
-  Parrot_mod_p_p_n,                                  /*    608 */
-  Parrot_mod_p_p_nc,                                 /*    609 */
-  Parrot_mul_i_i,                                    /*    610 */
-  Parrot_mul_i_ic,                                   /*    611 */
-  Parrot_mul_n_n,                                    /*    612 */
-  Parrot_mul_n_nc,                                   /*    613 */
-  Parrot_mul_p_p,                                    /*    614 */
-  Parrot_mul_p_i,                                    /*    615 */
-  Parrot_mul_p_ic,                                   /*    616 */
-  Parrot_mul_p_n,                                    /*    617 */
-  Parrot_mul_p_nc,                                   /*    618 */
-  Parrot_mul_i_i_i,                                  /*    619 */
-  Parrot_mul_i_ic_i,                                 /*    620 */
-  Parrot_mul_i_i_ic,                                 /*    621 */
-  Parrot_mul_n_n_n,                                  /*    622 */
-  Parrot_mul_n_nc_n,                                 /*    623 */
-  Parrot_mul_n_n_nc,                                 /*    624 */
-  Parrot_mul_p_p_p,                                  /*    625 */
-  Parrot_mul_p_p_i,                                  /*    626 */
-  Parrot_mul_p_p_ic,                                 /*    627 */
-  Parrot_mul_p_p_n,                                  /*    628 */
-  Parrot_mul_p_p_nc,                                 /*    629 */
-  Parrot_neg_i,                                      /*    630 */
-  Parrot_neg_n,                                      /*    631 */
-  Parrot_neg_p,                                      /*    632 */
-  Parrot_neg_i_i,                                    /*    633 */
-  Parrot_neg_n_n,                                    /*    634 */
-  Parrot_neg_p_p,                                    /*    635 */
-  Parrot_pow_n_n_n,                                  /*    636 */
-  Parrot_pow_n_nc_n,                                 /*    637 */
-  Parrot_pow_n_n_nc,                                 /*    638 */
-  Parrot_pow_p_p_p,                                  /*    639 */
-  Parrot_pow_p_p_i,                                  /*    640 */
-  Parrot_pow_p_p_ic,                                 /*    641 */
-  Parrot_pow_p_p_n,                                  /*    642 */
-  Parrot_pow_p_p_nc,                                 /*    643 */
-  Parrot_pow_n_n_i,                                  /*    644 */
-  Parrot_pow_n_nc_i,                                 /*    645 */
-  Parrot_pow_n_n_ic,                                 /*    646 */
-  Parrot_pow_n_nc_ic,                                /*    647 */
-  Parrot_sub_i_i,                                    /*    648 */
-  Parrot_sub_i_ic,                                   /*    649 */
-  Parrot_sub_n_n,                                    /*    650 */
-  Parrot_sub_n_nc,                                   /*    651 */
-  Parrot_sub_p_p,                                    /*    652 */
-  Parrot_sub_p_i,                                    /*    653 */
-  Parrot_sub_p_ic,                                   /*    654 */
-  Parrot_sub_p_n,                                    /*    655 */
-  Parrot_sub_p_nc,                                   /*    656 */
-  Parrot_sub_i_i_i,                                  /*    657 */
-  Parrot_sub_i_ic_i,                                 /*    658 */
-  Parrot_sub_i_i_ic,                                 /*    659 */
-  Parrot_sub_n_n_n,                                  /*    660 */
-  Parrot_sub_n_nc_n,                                 /*    661 */
-  Parrot_sub_n_n_nc,                                 /*    662 */
-  Parrot_sub_p_p_p,                                  /*    663 */
-  Parrot_sub_p_p_i,                                  /*    664 */
-  Parrot_sub_p_p_ic,                                 /*    665 */
-  Parrot_sub_p_p_n,                                  /*    666 */
-  Parrot_sub_p_p_nc,                                 /*    667 */
-  Parrot_sqrt_n_n,                                   /*    668 */
-  Parrot_acos_n_n,                                   /*    669 */
-  Parrot_asec_n_n,                                   /*    670 */
-  Parrot_asin_n_n,                                   /*    671 */
-  Parrot_atan_n_n,                                   /*    672 */
-  Parrot_atan_n_n_n,                                 /*    673 */
-  Parrot_atan_n_nc_n,                                /*    674 */
-  Parrot_atan_n_n_nc,                                /*    675 */
-  Parrot_cos_n_n,                                    /*    676 */
-  Parrot_cosh_n_n,                                   /*    677 */
-  Parrot_exp_n_n,                                    /*    678 */
-  Parrot_ln_n_n,                                     /*    679 */
-  Parrot_log10_n_n,                                  /*    680 */
-  Parrot_log2_n_n,                                   /*    681 */
-  Parrot_sec_n_n,                                    /*    682 */
-  Parrot_sech_n_n,                                   /*    683 */
-  Parrot_sin_n_n,                                    /*    684 */
-  Parrot_sinh_n_n,                                   /*    685 */
-  Parrot_tan_n_n,                                    /*    686 */
-  Parrot_tanh_n_n,                                   /*    687 */
-  Parrot_callmethodcc_p_s,                           /*    688 */
-  Parrot_callmethodcc_p_sc,                          /*    689 */
-  Parrot_callmethodcc_p_p,                           /*    690 */
-  Parrot_callmethod_p_s_p,                           /*    691 */
-  Parrot_callmethod_p_sc_p,                          /*    692 */
-  Parrot_callmethod_p_p_p,                           /*    693 */
-  Parrot_tailcallmethod_p_s,                         /*    694 */
-  Parrot_tailcallmethod_p_sc,                        /*    695 */
-  Parrot_tailcallmethod_p_p,                         /*    696 */
-  Parrot_addmethod_p_s_p,                            /*    697 */
-  Parrot_addmethod_p_sc_p,                           /*    698 */
-  Parrot_can_i_p_s,                                  /*    699 */
-  Parrot_can_i_p_sc,                                 /*    700 */
-  Parrot_does_i_p_s,                                 /*    701 */
-  Parrot_does_i_p_sc,                                /*    702 */
-  Parrot_does_i_p_p,                                 /*    703 */
-  Parrot_does_i_p_pc,                                /*    704 */
-  Parrot_isa_i_p_s,                                  /*    705 */
-  Parrot_isa_i_p_sc,                                 /*    706 */
-  Parrot_isa_i_p_p,                                  /*    707 */
-  Parrot_isa_i_p_pc,                                 /*    708 */
-  Parrot_newclass_p_s,                               /*    709 */
-  Parrot_newclass_p_sc,                              /*    710 */
-  Parrot_newclass_p_p,                               /*    711 */
-  Parrot_newclass_p_pc,                              /*    712 */
-  Parrot_subclass_p_p,                               /*    713 */
-  Parrot_subclass_p_pc,                              /*    714 */
-  Parrot_subclass_p_p_s,                             /*    715 */
-  Parrot_subclass_p_pc_s,                            /*    716 */
-  Parrot_subclass_p_p_sc,                            /*    717 */
-  Parrot_subclass_p_pc_sc,                           /*    718 */
-  Parrot_subclass_p_p_p,                             /*    719 */
-  Parrot_subclass_p_pc_p,                            /*    720 */
-  Parrot_subclass_p_p_pc,                            /*    721 */
-  Parrot_subclass_p_pc_pc,                           /*    722 */
-  Parrot_subclass_p_s,                               /*    723 */
-  Parrot_subclass_p_sc,                              /*    724 */
-  Parrot_subclass_p_s_s,                             /*    725 */
-  Parrot_subclass_p_sc_s,                            /*    726 */
-  Parrot_subclass_p_s_sc,                            /*    727 */
-  Parrot_subclass_p_sc_sc,                           /*    728 */
-  Parrot_subclass_p_s_p,                             /*    729 */
-  Parrot_subclass_p_sc_p,                            /*    730 */
-  Parrot_subclass_p_s_pc,                            /*    731 */
-  Parrot_subclass_p_sc_pc,                           /*    732 */
-  Parrot_get_class_p_s,                              /*    733 */
-  Parrot_get_class_p_sc,                             /*    734 */
-  Parrot_get_class_p_p,                              /*    735 */
-  Parrot_get_class_p_pc,                             /*    736 */
-  Parrot_class_p_p,                                  /*    737 */
-  Parrot_addparent_p_p,                              /*    738 */
-  Parrot_removeparent_p_p,                           /*    739 */
-  Parrot_addrole_p_p,                                /*    740 */
-  Parrot_addattribute_p_s,                           /*    741 */
-  Parrot_addattribute_p_sc,                          /*    742 */
-  Parrot_removeattribute_p_s,                        /*    743 */
-  Parrot_removeattribute_p_sc,                       /*    744 */
-  Parrot_getattribute_p_p_s,                         /*    745 */
-  Parrot_getattribute_p_p_sc,                        /*    746 */
-  Parrot_getattribute_p_p_p_s,                       /*    747 */
-  Parrot_getattribute_p_p_pc_s,                      /*    748 */
-  Parrot_getattribute_p_p_p_sc,                      /*    749 */
-  Parrot_getattribute_p_p_pc_sc,                     /*    750 */
-  Parrot_setattribute_p_s_p,                         /*    751 */
-  Parrot_setattribute_p_sc_p,                        /*    752 */
-  Parrot_setattribute_p_p_s_p,                       /*    753 */
-  Parrot_setattribute_p_pc_s_p,                      /*    754 */
-  Parrot_setattribute_p_p_sc_p,                      /*    755 */
-  Parrot_setattribute_p_pc_sc_p,                     /*    756 */
-  Parrot_inspect_p_p,                                /*    757 */
-  Parrot_inspect_p_pc,                               /*    758 */
-  Parrot_inspect_p_p_s,                              /*    759 */
-  Parrot_inspect_p_pc_s,                             /*    760 */
-  Parrot_inspect_p_p_sc,                             /*    761 */
-  Parrot_inspect_p_pc_sc,                            /*    762 */
-  Parrot_new_p_s,                                    /*    763 */
-  Parrot_new_p_sc,                                   /*    764 */
-  Parrot_new_p_s_p,                                  /*    765 */
-  Parrot_new_p_sc_p,                                 /*    766 */
-  Parrot_new_p_s_pc,                                 /*    767 */
-  Parrot_new_p_sc_pc,                                /*    768 */
-  Parrot_new_p_p,                                    /*    769 */
-  Parrot_new_p_pc,                                   /*    770 */
-  Parrot_new_p_p_p,                                  /*    771 */
-  Parrot_new_p_pc_p,                                 /*    772 */
-  Parrot_new_p_p_pc,                                 /*    773 */
-  Parrot_new_p_pc_pc,                                /*    774 */
-  Parrot_root_new_p_p,                               /*    775 */
-  Parrot_root_new_p_pc,                              /*    776 */
-  Parrot_root_new_p_p_p,                             /*    777 */
-  Parrot_root_new_p_pc_p,                            /*    778 */
-  Parrot_root_new_p_p_pc,                            /*    779 */
-  Parrot_root_new_p_pc_pc,                           /*    780 */
-  Parrot_typeof_s_p,                                 /*    781 */
-  Parrot_typeof_p_p,                                 /*    782 */
-  Parrot_get_repr_s_p,                               /*    783 */
-  Parrot_find_method_p_p_s,                          /*    784 */
-  Parrot_find_method_p_p_sc,                         /*    785 */
-  Parrot_defined_i_p,                                /*    786 */
-  Parrot_defined_i_p_ki,                             /*    787 */
-  Parrot_defined_i_p_kic,                            /*    788 */
-  Parrot_defined_i_p_k,                              /*    789 */
-  Parrot_defined_i_p_kc,                             /*    790 */
-  Parrot_exists_i_p_ki,                              /*    791 */
-  Parrot_exists_i_p_kic,                             /*    792 */
-  Parrot_exists_i_p_k,                               /*    793 */
-  Parrot_exists_i_p_kc,                              /*    794 */
-  Parrot_delete_p_k,                                 /*    795 */
-  Parrot_delete_p_kc,                                /*    796 */
-  Parrot_delete_p_ki,                                /*    797 */
-  Parrot_delete_p_kic,                               /*    798 */
-  Parrot_elements_i_p,                               /*    799 */
-  Parrot_push_p_i,                                   /*    800 */
-  Parrot_push_p_ic,                                  /*    801 */
-  Parrot_push_p_n,                                   /*    802 */
-  Parrot_push_p_nc,                                  /*    803 */
-  Parrot_push_p_s,                                   /*    804 */
-  Parrot_push_p_sc,                                  /*    805 */
-  Parrot_push_p_p,                                   /*    806 */
-  Parrot_pop_i_p,                                    /*    807 */
-  Parrot_pop_n_p,                                    /*    808 */
-  Parrot_pop_s_p,                                    /*    809 */
-  Parrot_pop_p_p,                                    /*    810 */
-  Parrot_unshift_p_i,                                /*    811 */
-  Parrot_unshift_p_ic,                               /*    812 */
-  Parrot_unshift_p_n,                                /*    813 */
-  Parrot_unshift_p_nc,                               /*    814 */
-  Parrot_unshift_p_s,                                /*    815 */
-  Parrot_unshift_p_sc,                               /*    816 */
-  Parrot_unshift_p_p,                                /*    817 */
-  Parrot_shift_i_p,                                  /*    818 */
-  Parrot_shift_n_p,                                  /*    819 */
-  Parrot_shift_s_p,                                  /*    820 */
-  Parrot_shift_p_p,                                  /*    821 */
-  Parrot_splice_p_p_i_i,                             /*    822 */
-  Parrot_splice_p_p_ic_i,                            /*    823 */
-  Parrot_splice_p_p_i_ic,                            /*    824 */
-  Parrot_splice_p_p_ic_ic,                           /*    825 */
-  Parrot_setprop_p_s_p,                              /*    826 */
-  Parrot_setprop_p_sc_p,                             /*    827 */
-  Parrot_getprop_p_s_p,                              /*    828 */
-  Parrot_getprop_p_sc_p,                             /*    829 */
-  Parrot_delprop_p_s,                                /*    830 */
-  Parrot_delprop_p_sc,                               /*    831 */
-  Parrot_prophash_p_p,                               /*    832 */
-  Parrot_freeze_s_p,                                 /*    833 */
-  Parrot_thaw_p_s,                                   /*    834 */
-  Parrot_thaw_p_sc,                                  /*    835 */
-  Parrot_add_multi_s_s_p,                            /*    836 */
-  Parrot_add_multi_sc_s_p,                           /*    837 */
-  Parrot_add_multi_s_sc_p,                           /*    838 */
-  Parrot_add_multi_sc_sc_p,                          /*    839 */
-  Parrot_find_multi_p_s_s,                           /*    840 */
-  Parrot_find_multi_p_sc_s,                          /*    841 */
-  Parrot_find_multi_p_s_sc,                          /*    842 */
-  Parrot_find_multi_p_sc_sc,                         /*    843 */
-  Parrot_register_p,                                 /*    844 */
-  Parrot_unregister_p,                               /*    845 */
-  Parrot_box_p_i,                                    /*    846 */
-  Parrot_box_p_ic,                                   /*    847 */
-  Parrot_box_p_n,                                    /*    848 */
-  Parrot_box_p_nc,                                   /*    849 */
-  Parrot_box_p_s,                                    /*    850 */
-  Parrot_box_p_sc,                                   /*    851 */
-  Parrot_iter_p_p,                                   /*    852 */
-  Parrot_morph_p_p,                                  /*    853 */
-  Parrot_morph_p_pc,                                 /*    854 */
-  Parrot_clone_s_s,                                  /*    855 */
-  Parrot_clone_s_sc,                                 /*    856 */
-  Parrot_set_i_i,                                    /*    857 */
-  Parrot_set_i_ic,                                   /*    858 */
-  Parrot_set_i_n,                                    /*    859 */
-  Parrot_set_i_nc,                                   /*    860 */
-  Parrot_set_i_s,                                    /*    861 */
-  Parrot_set_i_sc,                                   /*    862 */
-  Parrot_set_n_n,                                    /*    863 */
-  Parrot_set_n_nc,                                   /*    864 */
-  Parrot_set_n_i,                                    /*    865 */
-  Parrot_set_n_ic,                                   /*    866 */
-  Parrot_set_n_s,                                    /*    867 */
-  Parrot_set_n_sc,                                   /*    868 */
-  Parrot_set_n_p,                                    /*    869 */
-  Parrot_set_s_p,                                    /*    870 */
-  Parrot_set_s_s,                                    /*    871 */
-  Parrot_set_s_sc,                                   /*    872 */
-  Parrot_set_s_i,                                    /*    873 */
-  Parrot_set_s_ic,                                   /*    874 */
-  Parrot_set_s_n,                                    /*    875 */
-  Parrot_set_s_nc,                                   /*    876 */
-  Parrot_set_p_pc,                                   /*    877 */
-  Parrot_set_p_p,                                    /*    878 */
-  Parrot_set_p_i,                                    /*    879 */
-  Parrot_set_p_ic,                                   /*    880 */
-  Parrot_set_p_n,                                    /*    881 */
-  Parrot_set_p_nc,                                   /*    882 */
-  Parrot_set_p_s,                                    /*    883 */
-  Parrot_set_p_sc,                                   /*    884 */
-  Parrot_set_i_p,                                    /*    885 */
-  Parrot_assign_p_p,                                 /*    886 */
-  Parrot_assign_p_i,                                 /*    887 */
-  Parrot_assign_p_ic,                                /*    888 */
-  Parrot_assign_p_n,                                 /*    889 */
-  Parrot_assign_p_nc,                                /*    890 */
-  Parrot_assign_p_s,                                 /*    891 */
-  Parrot_assign_p_sc,                                /*    892 */
-  Parrot_assign_s_s,                                 /*    893 */
-  Parrot_assign_s_sc,                                /*    894 */
-  Parrot_setref_p_p,                                 /*    895 */
-  Parrot_deref_p_p,                                  /*    896 */
-  Parrot_set_p_ki_i,                                 /*    897 */
-  Parrot_set_p_kic_i,                                /*    898 */
-  Parrot_set_p_ki_ic,                                /*    899 */
-  Parrot_set_p_kic_ic,                               /*    900 */
-  Parrot_set_p_ki_n,                                 /*    901 */
-  Parrot_set_p_kic_n,                                /*    902 */
-  Parrot_set_p_ki_nc,                                /*    903 */
-  Parrot_set_p_kic_nc,                               /*    904 */
-  Parrot_set_p_ki_s,                                 /*    905 */
-  Parrot_set_p_kic_s,                                /*    906 */
-  Parrot_set_p_ki_sc,                                /*    907 */
-  Parrot_set_p_kic_sc,                               /*    908 */
-  Parrot_set_p_ki_p,                                 /*    909 */
-  Parrot_set_p_kic_p,                                /*    910 */
-  Parrot_set_i_p_ki,                                 /*    911 */
-  Parrot_set_i_p_kic,                                /*    912 */
-  Parrot_set_n_p_ki,                                 /*    913 */
-  Parrot_set_n_p_kic,                                /*    914 */
-  Parrot_set_s_p_ki,                                 /*    915 */
-  Parrot_set_s_p_kic,                                /*    916 */
-  Parrot_set_p_p_ki,                                 /*    917 */
-  Parrot_set_p_p_kic,                                /*    918 */
-  Parrot_set_p_k_i,                                  /*    919 */
-  Parrot_set_p_kc_i,                                 /*    920 */
-  Parrot_set_p_k_ic,                                 /*    921 */
-  Parrot_set_p_kc_ic,                                /*    922 */
-  Parrot_set_p_k_n,                                  /*    923 */
-  Parrot_set_p_kc_n,                                 /*    924 */
-  Parrot_set_p_k_nc,                                 /*    925 */
-  Parrot_set_p_kc_nc,                                /*    926 */
-  Parrot_set_p_k_s,                                  /*    927 */
-  Parrot_set_p_kc_s,                                 /*    928 */
-  Parrot_set_p_k_sc,                                 /*    929 */
-  Parrot_set_p_kc_sc,                                /*    930 */
-  Parrot_set_p_k_p,                                  /*    931 */
-  Parrot_set_p_kc_p,                                 /*    932 */
-  Parrot_set_i_p_k,                                  /*    933 */
-  Parrot_set_i_p_kc,                                 /*    934 */
-  Parrot_set_n_p_k,                                  /*    935 */
-  Parrot_set_n_p_kc,                                 /*    936 */
-  Parrot_set_s_p_k,                                  /*    937 */
-  Parrot_set_s_p_kc,                                 /*    938 */
-  Parrot_set_p_p_k,                                  /*    939 */
-  Parrot_set_p_p_kc,                                 /*    940 */
-  Parrot_clone_p_p,                                  /*    941 */
-  Parrot_clone_p_p_p,                                /*    942 */
-  Parrot_clone_p_p_pc,                               /*    943 */
-  Parrot_copy_p_p,                                   /*    944 */
-  Parrot_null_s,                                     /*    945 */
-  Parrot_null_i,                                     /*    946 */
-  Parrot_null_p,                                     /*    947 */
-  Parrot_null_n,                                     /*    948 */
-  Parrot_ord_i_s,                                    /*    949 */
-  Parrot_ord_i_sc,                                   /*    950 */
-  Parrot_ord_i_s_i,                                  /*    951 */
-  Parrot_ord_i_sc_i,                                 /*    952 */
-  Parrot_ord_i_s_ic,                                 /*    953 */
-  Parrot_ord_i_sc_ic,                                /*    954 */
-  Parrot_chr_s_i,                                    /*    955 */
-  Parrot_chr_s_ic,                                   /*    956 */
-  Parrot_chopn_s_s_i,                                /*    957 */
-  Parrot_chopn_s_sc_i,                               /*    958 */
-  Parrot_chopn_s_s_ic,                               /*    959 */
-  Parrot_chopn_s_sc_ic,                              /*    960 */
-  Parrot_concat_s_s,                                 /*    961 */
-  Parrot_concat_s_sc,                                /*    962 */
-  Parrot_concat_p_p,                                 /*    963 */
-  Parrot_concat_p_s,                                 /*    964 */
-  Parrot_concat_p_sc,                                /*    965 */
-  Parrot_concat_s_s_s,                               /*    966 */
-  Parrot_concat_s_sc_s,                              /*    967 */
-  Parrot_concat_s_s_sc,                              /*    968 */
-  Parrot_concat_p_p_s,                               /*    969 */
-  Parrot_concat_p_p_sc,                              /*    970 */
-  Parrot_concat_p_p_p,                               /*    971 */
-  Parrot_repeat_s_s_i,                               /*    972 */
-  Parrot_repeat_s_sc_i,                              /*    973 */
-  Parrot_repeat_s_s_ic,                              /*    974 */
-  Parrot_repeat_s_sc_ic,                             /*    975 */
-  Parrot_repeat_p_p_i,                               /*    976 */
-  Parrot_repeat_p_p_ic,                              /*    977 */
-  Parrot_repeat_p_p_p,                               /*    978 */
-  Parrot_repeat_p_i,                                 /*    979 */
-  Parrot_repeat_p_ic,                                /*    980 */
-  Parrot_repeat_p_p,                                 /*    981 */
-  Parrot_length_i_s,                                 /*    982 */
-  Parrot_length_i_sc,                                /*    983 */
-  Parrot_bytelength_i_s,                             /*    984 */
-  Parrot_bytelength_i_sc,                            /*    985 */
-  Parrot_pin_s,                                      /*    986 */
-  Parrot_unpin_s,                                    /*    987 */
-  Parrot_substr_s_s_i,                               /*    988 */
-  Parrot_substr_s_sc_i,                              /*    989 */
-  Parrot_substr_s_s_ic,                              /*    990 */
-  Parrot_substr_s_sc_ic,                             /*    991 */
-  Parrot_substr_s_s_i_i,                             /*    992 */
-  Parrot_substr_s_sc_i_i,                            /*    993 */
-  Parrot_substr_s_s_ic_i,                            /*    994 */
-  Parrot_substr_s_sc_ic_i,                           /*    995 */
-  Parrot_substr_s_s_i_ic,                            /*    996 */
-  Parrot_substr_s_sc_i_ic,                           /*    997 */
-  Parrot_substr_s_s_ic_ic,                           /*    998 */
-  Parrot_substr_s_sc_ic_ic,                          /*    999 */
-  Parrot_substr_s_p_i_i,                             /*   1000 */
-  Parrot_substr_s_p_ic_i,                            /*   1001 */
-  Parrot_substr_s_p_i_ic,                            /*   1002 */
-  Parrot_substr_s_p_ic_ic,                           /*   1003 */
-  Parrot_replace_s_s_i_i_s,                          /*   1004 */
-  Parrot_replace_s_sc_i_i_s,                         /*   1005 */
-  Parrot_replace_s_s_ic_i_s,                         /*   1006 */
-  Parrot_replace_s_sc_ic_i_s,                        /*   1007 */
-  Parrot_replace_s_s_i_ic_s,                         /*   1008 */
-  Parrot_replace_s_sc_i_ic_s,                        /*   1009 */
-  Parrot_replace_s_s_ic_ic_s,                        /*   1010 */
-  Parrot_replace_s_sc_ic_ic_s,                       /*   1011 */
-  Parrot_replace_s_s_i_i_sc,                         /*   1012 */
-  Parrot_replace_s_sc_i_i_sc,                        /*   1013 */
-  Parrot_replace_s_s_ic_i_sc,                        /*   1014 */
-  Parrot_replace_s_sc_ic_i_sc,                       /*   1015 */
-  Parrot_replace_s_s_i_ic_sc,                        /*   1016 */
-  Parrot_replace_s_sc_i_ic_sc,                       /*   1017 */
-  Parrot_replace_s_s_ic_ic_sc,                       /*   1018 */
-  Parrot_replace_s_sc_ic_ic_sc,                      /*   1019 */
-  Parrot_index_i_s_s,                                /*   1020 */
-  Parrot_index_i_sc_s,                               /*   1021 */
-  Parrot_index_i_s_sc,                               /*   1022 */
-  Parrot_index_i_sc_sc,                              /*   1023 */
-  Parrot_index_i_s_s_i,                              /*   1024 */
-  Parrot_index_i_sc_s_i,                             /*   1025 */
-  Parrot_index_i_s_sc_i,                             /*   1026 */
-  Parrot_index_i_sc_sc_i,                            /*   1027 */
-  Parrot_index_i_s_s_ic,                             /*   1028 */
-  Parrot_index_i_sc_s_ic,                            /*   1029 */
-  Parrot_index_i_s_sc_ic,                            /*   1030 */
-  Parrot_index_i_sc_sc_ic,                           /*   1031 */
-  Parrot_sprintf_s_s_p,                              /*   1032 */
-  Parrot_sprintf_s_sc_p,                             /*   1033 */
-  Parrot_sprintf_p_p_p,                              /*   1034 */
-  Parrot_new_s,                                      /*   1035 */
-  Parrot_new_s_i,                                    /*   1036 */
-  Parrot_new_s_ic,                                   /*   1037 */
-  Parrot_stringinfo_i_s_i,                           /*   1038 */
-  Parrot_stringinfo_i_sc_i,                          /*   1039 */
-  Parrot_stringinfo_i_s_ic,                          /*   1040 */
-  Parrot_stringinfo_i_sc_ic,                         /*   1041 */
-  Parrot_upcase_s_s,                                 /*   1042 */
-  Parrot_upcase_s_sc,                                /*   1043 */
-  Parrot_downcase_s_s,                               /*   1044 */
-  Parrot_downcase_s_sc,                              /*   1045 */
-  Parrot_titlecase_s_s,                              /*   1046 */
-  Parrot_titlecase_s_sc,                             /*   1047 */
-  Parrot_join_s_s_p,                                 /*   1048 */
-  Parrot_join_s_sc_p,                                /*   1049 */
-  Parrot_split_p_s_s,                                /*   1050 */
-  Parrot_split_p_sc_s,                               /*   1051 */
-  Parrot_split_p_s_sc,                               /*   1052 */
-  Parrot_split_p_sc_sc,                              /*   1053 */
-  Parrot_charset_i_s,                                /*   1054 */
-  Parrot_charset_i_sc,                               /*   1055 */
-  Parrot_charsetname_s_i,                            /*   1056 */
-  Parrot_charsetname_s_ic,                           /*   1057 */
-  Parrot_find_charset_i_s,                           /*   1058 */
-  Parrot_find_charset_i_sc,                          /*   1059 */
-  Parrot_trans_charset_s_s_i,                        /*   1060 */
-  Parrot_trans_charset_s_sc_i,                       /*   1061 */
-  Parrot_trans_charset_s_s_ic,                       /*   1062 */
-  Parrot_trans_charset_s_sc_ic,                      /*   1063 */
-  Parrot_encoding_i_s,                               /*   1064 */
-  Parrot_encoding_i_sc,                              /*   1065 */
-  Parrot_encodingname_s_i,                           /*   1066 */
-  Parrot_encodingname_s_ic,                          /*   1067 */
-  Parrot_find_encoding_i_s,                          /*   1068 */
-  Parrot_find_encoding_i_sc,                         /*   1069 */
-  Parrot_trans_encoding_s_s_i,                       /*   1070 */
-  Parrot_trans_encoding_s_sc_i,                      /*   1071 */
-  Parrot_trans_encoding_s_s_ic,                      /*   1072 */
-  Parrot_trans_encoding_s_sc_ic,                     /*   1073 */
-  Parrot_is_cclass_i_i_s_i,                          /*   1074 */
-  Parrot_is_cclass_i_ic_s_i,                         /*   1075 */
-  Parrot_is_cclass_i_i_sc_i,                         /*   1076 */
-  Parrot_is_cclass_i_ic_sc_i,                        /*   1077 */
-  Parrot_is_cclass_i_i_s_ic,                         /*   1078 */
-  Parrot_is_cclass_i_ic_s_ic,                        /*   1079 */
-  Parrot_is_cclass_i_i_sc_ic,                        /*   1080 */
-  Parrot_is_cclass_i_ic_sc_ic,                       /*   1081 */
-  Parrot_find_cclass_i_i_s_i_i,                      /*   1082 */
-  Parrot_find_cclass_i_ic_s_i_i,                     /*   1083 */
-  Parrot_find_cclass_i_i_sc_i_i,                     /*   1084 */
-  Parrot_find_cclass_i_ic_sc_i_i,                    /*   1085 */
-  Parrot_find_cclass_i_i_s_ic_i,                     /*   1086 */
-  Parrot_find_cclass_i_ic_s_ic_i,                    /*   1087 */
-  Parrot_find_cclass_i_i_sc_ic_i,                    /*   1088 */
-  Parrot_find_cclass_i_ic_sc_ic_i,                   /*   1089 */
-  Parrot_find_cclass_i_i_s_i_ic,                     /*   1090 */
-  Parrot_find_cclass_i_ic_s_i_ic,                    /*   1091 */
-  Parrot_find_cclass_i_i_sc_i_ic,                    /*   1092 */
-  Parrot_find_cclass_i_ic_sc_i_ic,                   /*   1093 */
-  Parrot_find_cclass_i_i_s_ic_ic,                    /*   1094 */
-  Parrot_find_cclass_i_ic_s_ic_ic,                   /*   1095 */
-  Parrot_find_cclass_i_i_sc_ic_ic,                   /*   1096 */
-  Parrot_find_cclass_i_ic_sc_ic_ic,                  /*   1097 */
-  Parrot_find_not_cclass_i_i_s_i_i,                  /*   1098 */
-  Parrot_find_not_cclass_i_ic_s_i_i,                 /*   1099 */
-  Parrot_find_not_cclass_i_i_sc_i_i,                 /*   1100 */
-  Parrot_find_not_cclass_i_ic_sc_i_i,                /*   1101 */
-  Parrot_find_not_cclass_i_i_s_ic_i,                 /*   1102 */
-  Parrot_find_not_cclass_i_ic_s_ic_i,                /*   1103 */
-  Parrot_find_not_cclass_i_i_sc_ic_i,                /*   1104 */
-  Parrot_find_not_cclass_i_ic_sc_ic_i,               /*   1105 */
-  Parrot_find_not_cclass_i_i_s_i_ic,                 /*   1106 */
-  Parrot_find_not_cclass_i_ic_s_i_ic,                /*   1107 */
-  Parrot_find_not_cclass_i_i_sc_i_ic,                /*   1108 */
-  Parrot_find_not_cclass_i_ic_sc_i_ic,               /*   1109 */
-  Parrot_find_not_cclass_i_i_s_ic_ic,                /*   1110 */
-  Parrot_find_not_cclass_i_ic_s_ic_ic,               /*   1111 */
-  Parrot_find_not_cclass_i_i_sc_ic_ic,               /*   1112 */
-  Parrot_find_not_cclass_i_ic_sc_ic_ic,              /*   1113 */
-  Parrot_escape_s_s,                                 /*   1114 */
-  Parrot_compose_s_s,                                /*   1115 */
-  Parrot_compose_s_sc,                               /*   1116 */
-  Parrot_spawnw_i_s,                                 /*   1117 */
-  Parrot_spawnw_i_sc,                                /*   1118 */
-  Parrot_spawnw_i_p,                                 /*   1119 */
-  Parrot_err_i,                                      /*   1120 */
-  Parrot_err_s,                                      /*   1121 */
-  Parrot_err_s_i,                                    /*   1122 */
-  Parrot_err_s_ic,                                   /*   1123 */
-  Parrot_time_i,                                     /*   1124 */
-  Parrot_time_n,                                     /*   1125 */
-  Parrot_gmtime_s_i,                                 /*   1126 */
-  Parrot_gmtime_s_ic,                                /*   1127 */
-  Parrot_localtime_s_i,                              /*   1128 */
-  Parrot_localtime_s_ic,                             /*   1129 */
-  Parrot_decodetime_p_i,                             /*   1130 */
-  Parrot_decodetime_p_ic,                            /*   1131 */
-  Parrot_decodelocaltime_p_i,                        /*   1132 */
-  Parrot_decodelocaltime_p_ic,                       /*   1133 */
-  Parrot_sysinfo_s_i,                                /*   1134 */
-  Parrot_sysinfo_s_ic,                               /*   1135 */
-  Parrot_sysinfo_i_i,                                /*   1136 */
-  Parrot_sysinfo_i_ic,                               /*   1137 */
-  Parrot_sleep_i,                                    /*   1138 */
-  Parrot_sleep_ic,                                   /*   1139 */
-  Parrot_sleep_n,                                    /*   1140 */
-  Parrot_sleep_nc,                                   /*   1141 */
-  Parrot_store_lex_s_p,                              /*   1142 */
-  Parrot_store_lex_sc_p,                             /*   1143 */
-  Parrot_store_dynamic_lex_s_p,                      /*   1144 */
-  Parrot_store_dynamic_lex_sc_p,                     /*   1145 */
-  Parrot_find_lex_p_s,                               /*   1146 */
-  Parrot_find_lex_p_sc,                              /*   1147 */
-  Parrot_find_dynamic_lex_p_s,                       /*   1148 */
-  Parrot_find_dynamic_lex_p_sc,                      /*   1149 */
-  Parrot_find_caller_lex_p_s,                        /*   1150 */
-  Parrot_find_caller_lex_p_sc,                       /*   1151 */
-  Parrot_get_namespace_p,                            /*   1152 */
-  Parrot_get_namespace_p_p,                          /*   1153 */
-  Parrot_get_namespace_p_pc,                         /*   1154 */
-  Parrot_get_hll_namespace_p,                        /*   1155 */
-  Parrot_get_hll_namespace_p_p,                      /*   1156 */
-  Parrot_get_hll_namespace_p_pc,                     /*   1157 */
-  Parrot_get_root_namespace_p,                       /*   1158 */
-  Parrot_get_root_namespace_p_p,                     /*   1159 */
-  Parrot_get_root_namespace_p_pc,                    /*   1160 */
-  Parrot_get_global_p_s,                             /*   1161 */
-  Parrot_get_global_p_sc,                            /*   1162 */
-  Parrot_get_global_p_p_s,                           /*   1163 */
-  Parrot_get_global_p_pc_s,                          /*   1164 */
-  Parrot_get_global_p_p_sc,                          /*   1165 */
-  Parrot_get_global_p_pc_sc,                         /*   1166 */
-  Parrot_get_hll_global_p_s,                         /*   1167 */
-  Parrot_get_hll_global_p_sc,                        /*   1168 */
-  Parrot_get_hll_global_p_p_s,                       /*   1169 */
-  Parrot_get_hll_global_p_pc_s,                      /*   1170 */
-  Parrot_get_hll_global_p_p_sc,                      /*   1171 */
-  Parrot_get_hll_global_p_pc_sc,                     /*   1172 */
-  Parrot_get_root_global_p_s,                        /*   1173 */
-  Parrot_get_root_global_p_sc,                       /*   1174 */
-  Parrot_get_root_global_p_p_s,                      /*   1175 */
-  Parrot_get_root_global_p_pc_s,                     /*   1176 */
-  Parrot_get_root_global_p_p_sc,                     /*   1177 */
-  Parrot_get_root_global_p_pc_sc,                    /*   1178 */
-  Parrot_set_global_s_p,                             /*   1179 */
-  Parrot_set_global_sc_p,                            /*   1180 */
-  Parrot_set_global_p_s_p,                           /*   1181 */
-  Parrot_set_global_pc_s_p,                          /*   1182 */
-  Parrot_set_global_p_sc_p,                          /*   1183 */
-  Parrot_set_global_pc_sc_p,                         /*   1184 */
-  Parrot_set_hll_global_s_p,                         /*   1185 */
-  Parrot_set_hll_global_sc_p,                        /*   1186 */
-  Parrot_set_hll_global_p_s_p,                       /*   1187 */
-  Parrot_set_hll_global_pc_s_p,                      /*   1188 */
-  Parrot_set_hll_global_p_sc_p,                      /*   1189 */
-  Parrot_set_hll_global_pc_sc_p,                     /*   1190 */
-  Parrot_set_root_global_s_p,                        /*   1191 */
-  Parrot_set_root_global_sc_p,                       /*   1192 */
-  Parrot_set_root_global_p_s_p,                      /*   1193 */
-  Parrot_set_root_global_pc_s_p,                     /*   1194 */
-  Parrot_set_root_global_p_sc_p,                     /*   1195 */
-  Parrot_set_root_global_pc_sc_p,                    /*   1196 */
-  Parrot_find_name_p_s,                              /*   1197 */
-  Parrot_find_name_p_sc,                             /*   1198 */
-  Parrot_find_sub_not_null_p_s,                      /*   1199 */
-  Parrot_find_sub_not_null_p_sc,                     /*   1200 */
-  Parrot_trap,                                       /*   1201 */
-  Parrot_set_label_p_ic,                             /*   1202 */
-  Parrot_get_label_i_p,                              /*   1203 */
-  Parrot_fetch_p_p_p_p,                              /*   1204 */
-  Parrot_fetch_p_pc_p_p,                             /*   1205 */
-  Parrot_fetch_p_p_pc_p,                             /*   1206 */
-  Parrot_fetch_p_pc_pc_p,                            /*   1207 */
-  Parrot_fetch_p_p_p_pc,                             /*   1208 */
-  Parrot_fetch_p_pc_p_pc,                            /*   1209 */
-  Parrot_fetch_p_p_pc_pc,                            /*   1210 */
-  Parrot_fetch_p_pc_pc_pc,                           /*   1211 */
-  Parrot_fetch_p_p_i_p,                              /*   1212 */
-  Parrot_fetch_p_pc_i_p,                             /*   1213 */
-  Parrot_fetch_p_p_ic_p,                             /*   1214 */
-  Parrot_fetch_p_pc_ic_p,                            /*   1215 */
-  Parrot_fetch_p_p_i_pc,                             /*   1216 */
-  Parrot_fetch_p_pc_i_pc,                            /*   1217 */
-  Parrot_fetch_p_p_ic_pc,                            /*   1218 */
-  Parrot_fetch_p_pc_ic_pc,                           /*   1219 */
-  Parrot_fetch_p_p_s_p,                              /*   1220 */
-  Parrot_fetch_p_pc_s_p,                             /*   1221 */
-  Parrot_fetch_p_p_sc_p,                             /*   1222 */
-  Parrot_fetch_p_pc_sc_p,                            /*   1223 */
-  Parrot_fetch_p_p_s_pc,                             /*   1224 */
-  Parrot_fetch_p_pc_s_pc,                            /*   1225 */
-  Parrot_fetch_p_p_sc_pc,                            /*   1226 */
-  Parrot_fetch_p_pc_sc_pc,                           /*   1227 */
-  Parrot_vivify_p_p_p_p,                             /*   1228 */
-  Parrot_vivify_p_pc_p_p,                            /*   1229 */
-  Parrot_vivify_p_p_pc_p,                            /*   1230 */
-  Parrot_vivify_p_pc_pc_p,                           /*   1231 */
-  Parrot_vivify_p_p_p_pc,                            /*   1232 */
-  Parrot_vivify_p_pc_p_pc,                           /*   1233 */
-  Parrot_vivify_p_p_pc_pc,                           /*   1234 */
-  Parrot_vivify_p_pc_pc_pc,                          /*   1235 */
-  Parrot_vivify_p_p_i_p,                             /*   1236 */
-  Parrot_vivify_p_pc_i_p,                            /*   1237 */
-  Parrot_vivify_p_p_ic_p,                            /*   1238 */
-  Parrot_vivify_p_pc_ic_p,                           /*   1239 */
-  Parrot_vivify_p_p_i_pc,                            /*   1240 */
-  Parrot_vivify_p_pc_i_pc,                           /*   1241 */
-  Parrot_vivify_p_p_ic_pc,                           /*   1242 */
-  Parrot_vivify_p_pc_ic_pc,                          /*   1243 */
-  Parrot_vivify_p_p_s_p,                             /*   1244 */
-  Parrot_vivify_p_pc_s_p,                            /*   1245 */
-  Parrot_vivify_p_p_sc_p,                            /*   1246 */
-  Parrot_vivify_p_pc_sc_p,                           /*   1247 */
-  Parrot_vivify_p_p_s_pc,                            /*   1248 */
-  Parrot_vivify_p_pc_s_pc,                           /*   1249 */
-  Parrot_vivify_p_p_sc_pc,                           /*   1250 */
-  Parrot_vivify_p_pc_sc_pc,                          /*   1251 */
-  Parrot_new_p_s_i,                                  /*   1252 */
-  Parrot_new_p_sc_i,                                 /*   1253 */
-  Parrot_new_p_s_ic,                                 /*   1254 */
-  Parrot_new_p_sc_ic,                                /*   1255 */
-  Parrot_new_p_p_i,                                  /*   1256 */
-  Parrot_new_p_pc_i,                                 /*   1257 */
-  Parrot_new_p_p_ic,                                 /*   1258 */
-  Parrot_new_p_pc_ic,                                /*   1259 */
-  Parrot_root_new_p_p_i,                             /*   1260 */
-  Parrot_root_new_p_pc_i,                            /*   1261 */
-  Parrot_root_new_p_p_ic,                            /*   1262 */
-  Parrot_root_new_p_pc_ic,                           /*   1263 */
-  Parrot_find_codepoint_i_s,                         /*   1264 */
-  Parrot_find_codepoint_i_sc,                        /*   1265 */
-  Parrot_finalize_p,                                 /*   1266 */
-  Parrot_finalize_pc,                                /*   1267 */
+  Parrot_band_i_i_i,                                 /*    119 */
+  Parrot_band_i_ic_i,                                /*    120 */
+  Parrot_band_i_i_ic,                                /*    121 */
+  Parrot_bor_i_i,                                    /*    122 */
+  Parrot_bor_i_ic,                                   /*    123 */
+  Parrot_bor_i_i_i,                                  /*    124 */
+  Parrot_bor_i_ic_i,                                 /*    125 */
+  Parrot_bor_i_i_ic,                                 /*    126 */
+  Parrot_shl_i_i,                                    /*    127 */
+  Parrot_shl_i_ic,                                   /*    128 */
+  Parrot_shl_i_i_i,                                  /*    129 */
+  Parrot_shl_i_ic_i,                                 /*    130 */
+  Parrot_shl_i_i_ic,                                 /*    131 */
+  Parrot_shr_i_i,                                    /*    132 */
+  Parrot_shr_i_ic,                                   /*    133 */
+  Parrot_shr_i_i_i,                                  /*    134 */
+  Parrot_shr_i_ic_i,                                 /*    135 */
+  Parrot_shr_i_i_ic,                                 /*    136 */
+  Parrot_lsr_i_i,                                    /*    137 */
+  Parrot_lsr_i_ic,                                   /*    138 */
+  Parrot_lsr_i_i_i,                                  /*    139 */
+  Parrot_lsr_i_ic_i,                                 /*    140 */
+  Parrot_lsr_i_i_ic,                                 /*    141 */
+  Parrot_bxor_i_i,                                   /*    142 */
+  Parrot_bxor_i_ic,                                  /*    143 */
+  Parrot_bxor_i_i_i,                                 /*    144 */
+  Parrot_bxor_i_ic_i,                                /*    145 */
+  Parrot_bxor_i_i_ic,                                /*    146 */
+  Parrot_eq_i_i_ic,                                  /*    147 */
+  Parrot_eq_ic_i_ic,                                 /*    148 */
+  Parrot_eq_i_ic_ic,                                 /*    149 */
+  Parrot_eq_n_n_ic,                                  /*    150 */
+  Parrot_eq_nc_n_ic,                                 /*    151 */
+  Parrot_eq_n_nc_ic,                                 /*    152 */
+  Parrot_eq_s_s_ic,                                  /*    153 */
+  Parrot_eq_sc_s_ic,                                 /*    154 */
+  Parrot_eq_s_sc_ic,                                 /*    155 */
+  Parrot_eq_p_p_ic,                                  /*    156 */
+  Parrot_eq_p_i_ic,                                  /*    157 */
+  Parrot_eq_p_ic_ic,                                 /*    158 */
+  Parrot_eq_p_n_ic,                                  /*    159 */
+  Parrot_eq_p_nc_ic,                                 /*    160 */
+  Parrot_eq_p_s_ic,                                  /*    161 */
+  Parrot_eq_p_sc_ic,                                 /*    162 */
+  Parrot_eq_str_p_p_ic,                              /*    163 */
+  Parrot_eq_num_p_p_ic,                              /*    164 */
+  Parrot_eq_addr_s_s_ic,                             /*    165 */
+  Parrot_eq_addr_sc_s_ic,                            /*    166 */
+  Parrot_eq_addr_s_sc_ic,                            /*    167 */
+  Parrot_eq_addr_sc_sc_ic,                           /*    168 */
+  Parrot_eq_addr_p_p_ic,                             /*    169 */
+  Parrot_ne_i_i_ic,                                  /*    170 */
+  Parrot_ne_ic_i_ic,                                 /*    171 */
+  Parrot_ne_i_ic_ic,                                 /*    172 */
+  Parrot_ne_n_n_ic,                                  /*    173 */
+  Parrot_ne_nc_n_ic,                                 /*    174 */
+  Parrot_ne_n_nc_ic,                                 /*    175 */
+  Parrot_ne_s_s_ic,                                  /*    176 */
+  Parrot_ne_sc_s_ic,                                 /*    177 */
+  Parrot_ne_s_sc_ic,                                 /*    178 */
+  Parrot_ne_p_p_ic,                                  /*    179 */
+  Parrot_ne_p_i_ic,                                  /*    180 */
+  Parrot_ne_p_ic_ic,                                 /*    181 */
+  Parrot_ne_p_n_ic,                                  /*    182 */
+  Parrot_ne_p_nc_ic,                                 /*    183 */
+  Parrot_ne_p_s_ic,                                  /*    184 */
+  Parrot_ne_p_sc_ic,                                 /*    185 */
+  Parrot_ne_str_p_p_ic,                              /*    186 */
+  Parrot_ne_num_p_p_ic,                              /*    187 */
+  Parrot_ne_addr_s_s_ic,                             /*    188 */
+  Parrot_ne_addr_sc_s_ic,                            /*    189 */
+  Parrot_ne_addr_s_sc_ic,                            /*    190 */
+  Parrot_ne_addr_sc_sc_ic,                           /*    191 */
+  Parrot_ne_addr_p_p_ic,                             /*    192 */
+  Parrot_lt_i_i_ic,                                  /*    193 */
+  Parrot_lt_ic_i_ic,                                 /*    194 */
+  Parrot_lt_i_ic_ic,                                 /*    195 */
+  Parrot_lt_n_n_ic,                                  /*    196 */
+  Parrot_lt_nc_n_ic,                                 /*    197 */
+  Parrot_lt_n_nc_ic,                                 /*    198 */
+  Parrot_lt_s_s_ic,                                  /*    199 */
+  Parrot_lt_sc_s_ic,                                 /*    200 */
+  Parrot_lt_s_sc_ic,                                 /*    201 */
+  Parrot_lt_p_p_ic,                                  /*    202 */
+  Parrot_lt_p_i_ic,                                  /*    203 */
+  Parrot_lt_p_ic_ic,                                 /*    204 */
+  Parrot_lt_p_n_ic,                                  /*    205 */
+  Parrot_lt_p_nc_ic,                                 /*    206 */
+  Parrot_lt_p_s_ic,                                  /*    207 */
+  Parrot_lt_p_sc_ic,                                 /*    208 */
+  Parrot_lt_str_p_p_ic,                              /*    209 */
+  Parrot_lt_num_p_p_ic,                              /*    210 */
+  Parrot_le_i_i_ic,                                  /*    211 */
+  Parrot_le_ic_i_ic,                                 /*    212 */
+  Parrot_le_i_ic_ic,                                 /*    213 */
+  Parrot_le_n_n_ic,                                  /*    214 */
+  Parrot_le_nc_n_ic,                                 /*    215 */
+  Parrot_le_n_nc_ic,                                 /*    216 */
+  Parrot_le_s_s_ic,                                  /*    217 */
+  Parrot_le_sc_s_ic,                                 /*    218 */
+  Parrot_le_s_sc_ic,                                 /*    219 */
+  Parrot_le_p_p_ic,                                  /*    220 */
+  Parrot_le_p_i_ic,                                  /*    221 */
+  Parrot_le_p_ic_ic,                                 /*    222 */
+  Parrot_le_p_n_ic,                                  /*    223 */
+  Parrot_le_p_nc_ic,                                 /*    224 */
+  Parrot_le_p_s_ic,                                  /*    225 */
+  Parrot_le_p_sc_ic,                                 /*    226 */
+  Parrot_le_str_p_p_ic,                              /*    227 */
+  Parrot_le_num_p_p_ic,                              /*    228 */
+  Parrot_gt_p_p_ic,                                  /*    229 */
+  Parrot_gt_p_i_ic,                                  /*    230 */
+  Parrot_gt_p_ic_ic,                                 /*    231 */
+  Parrot_gt_p_n_ic,                                  /*    232 */
+  Parrot_gt_p_nc_ic,                                 /*    233 */
+  Parrot_gt_p_s_ic,                                  /*    234 */
+  Parrot_gt_p_sc_ic,                                 /*    235 */
+  Parrot_gt_str_p_p_ic,                              /*    236 */
+  Parrot_gt_num_p_p_ic,                              /*    237 */
+  Parrot_ge_p_p_ic,                                  /*    238 */
+  Parrot_ge_p_i_ic,                                  /*    239 */
+  Parrot_ge_p_ic_ic,                                 /*    240 */
+  Parrot_ge_p_n_ic,                                  /*    241 */
+  Parrot_ge_p_nc_ic,                                 /*    242 */
+  Parrot_ge_p_s_ic,                                  /*    243 */
+  Parrot_ge_p_sc_ic,                                 /*    244 */
+  Parrot_ge_str_p_p_ic,                              /*    245 */
+  Parrot_ge_num_p_p_ic,                              /*    246 */
+  Parrot_if_null_p_ic,                               /*    247 */
+  Parrot_if_null_s_ic,                               /*    248 */
+  Parrot_unless_null_p_ic,                           /*    249 */
+  Parrot_unless_null_s_ic,                           /*    250 */
+  Parrot_cmp_i_i_i,                                  /*    251 */
+  Parrot_cmp_i_ic_i,                                 /*    252 */
+  Parrot_cmp_i_i_ic,                                 /*    253 */
+  Parrot_cmp_i_n_n,                                  /*    254 */
+  Parrot_cmp_i_nc_n,                                 /*    255 */
+  Parrot_cmp_i_n_nc,                                 /*    256 */
+  Parrot_cmp_i_s_s,                                  /*    257 */
+  Parrot_cmp_i_sc_s,                                 /*    258 */
+  Parrot_cmp_i_s_sc,                                 /*    259 */
+  Parrot_cmp_i_p_p,                                  /*    260 */
+  Parrot_cmp_i_p_i,                                  /*    261 */
+  Parrot_cmp_i_p_ic,                                 /*    262 */
+  Parrot_cmp_i_p_n,                                  /*    263 */
+  Parrot_cmp_i_p_nc,                                 /*    264 */
+  Parrot_cmp_i_p_s,                                  /*    265 */
+  Parrot_cmp_i_p_sc,                                 /*    266 */
+  Parrot_cmp_str_i_p_p,                              /*    267 */
+  Parrot_cmp_num_i_p_p,                              /*    268 */
+  Parrot_cmp_pmc_p_p_p,                              /*    269 */
+  Parrot_issame_i_p_p,                               /*    270 */
+  Parrot_issame_i_s_s,                               /*    271 */
+  Parrot_issame_i_sc_s,                              /*    272 */
+  Parrot_issame_i_s_sc,                              /*    273 */
+  Parrot_issame_i_sc_sc,                             /*    274 */
+  Parrot_isntsame_i_p_p,                             /*    275 */
+  Parrot_isntsame_i_s_s,                             /*    276 */
+  Parrot_isntsame_i_sc_s,                            /*    277 */
+  Parrot_isntsame_i_s_sc,                            /*    278 */
+  Parrot_isntsame_i_sc_sc,                           /*    279 */
+  Parrot_istrue_i_p,                                 /*    280 */
+  Parrot_isfalse_i_p,                                /*    281 */
+  Parrot_isnull_i_p,                                 /*    282 */
+  Parrot_isnull_i_pc,                                /*    283 */
+  Parrot_isnull_i_s,                                 /*    284 */
+  Parrot_isnull_i_sc,                                /*    285 */
+  Parrot_isgt_i_p_p,                                 /*    286 */
+  Parrot_isge_i_p_p,                                 /*    287 */
+  Parrot_isle_i_i_i,                                 /*    288 */
+  Parrot_isle_i_ic_i,                                /*    289 */
+  Parrot_isle_i_i_ic,                                /*    290 */
+  Parrot_isle_i_n_n,                                 /*    291 */
+  Parrot_isle_i_nc_n,                                /*    292 */
+  Parrot_isle_i_n_nc,                                /*    293 */
+  Parrot_isle_i_s_s,                                 /*    294 */
+  Parrot_isle_i_sc_s,                                /*    295 */
+  Parrot_isle_i_s_sc,                                /*    296 */
+  Parrot_isle_i_p_p,                                 /*    297 */
+  Parrot_islt_i_i_i,                                 /*    298 */
+  Parrot_islt_i_ic_i,                                /*    299 */
+  Parrot_islt_i_i_ic,                                /*    300 */
+  Parrot_islt_i_n_n,                                 /*    301 */
+  Parrot_islt_i_nc_n,                                /*    302 */
+  Parrot_islt_i_n_nc,                                /*    303 */
+  Parrot_islt_i_s_s,                                 /*    304 */
+  Parrot_islt_i_sc_s,                                /*    305 */
+  Parrot_islt_i_s_sc,                                /*    306 */
+  Parrot_islt_i_p_p,                                 /*    307 */
+  Parrot_iseq_i_i_i,                                 /*    308 */
+  Parrot_iseq_i_ic_i,                                /*    309 */
+  Parrot_iseq_i_i_ic,                                /*    310 */
+  Parrot_iseq_i_n_n,                                 /*    311 */
+  Parrot_iseq_i_nc_n,                                /*    312 */
+  Parrot_iseq_i_n_nc,                                /*    313 */
+  Parrot_iseq_i_s_s,                                 /*    314 */
+  Parrot_iseq_i_sc_s,                                /*    315 */
+  Parrot_iseq_i_s_sc,                                /*    316 */
+  Parrot_iseq_i_p_p,                                 /*    317 */
+  Parrot_isne_i_i_i,                                 /*    318 */
+  Parrot_isne_i_ic_i,                                /*    319 */
+  Parrot_isne_i_i_ic,                                /*    320 */
+  Parrot_isne_i_n_n,                                 /*    321 */
+  Parrot_isne_i_nc_n,                                /*    322 */
+  Parrot_isne_i_n_nc,                                /*    323 */
+  Parrot_isne_i_s_s,                                 /*    324 */
+  Parrot_isne_i_sc_s,                                /*    325 */
+  Parrot_isne_i_s_sc,                                /*    326 */
+  Parrot_isne_i_p_p,                                 /*    327 */
+  Parrot_and_i_i_i,                                  /*    328 */
+  Parrot_and_i_ic_i,                                 /*    329 */
+  Parrot_and_i_i_ic,                                 /*    330 */
+  Parrot_and_p_p_p,                                  /*    331 */
+  Parrot_not_i,                                      /*    332 */
+  Parrot_not_i_i,                                    /*    333 */
+  Parrot_not_p,                                      /*    334 */
+  Parrot_not_p_p,                                    /*    335 */
+  Parrot_or_i_i_i,                                   /*    336 */
+  Parrot_or_i_ic_i,                                  /*    337 */
+  Parrot_or_i_i_ic,                                  /*    338 */
+  Parrot_or_p_p_p,                                   /*    339 */
+  Parrot_xor_i_i_i,                                  /*    340 */
+  Parrot_xor_i_ic_i,                                 /*    341 */
+  Parrot_xor_i_i_ic,                                 /*    342 */
+  Parrot_xor_p_p_p,                                  /*    343 */
+  Parrot_print_i,                                    /*    344 */
+  Parrot_print_ic,                                   /*    345 */
+  Parrot_print_n,                                    /*    346 */
+  Parrot_print_nc,                                   /*    347 */
+  Parrot_print_s,                                    /*    348 */
+  Parrot_print_sc,                                   /*    349 */
+  Parrot_print_p,                                    /*    350 */
+  Parrot_say_i,                                      /*    351 */
+  Parrot_say_ic,                                     /*    352 */
+  Parrot_say_n,                                      /*    353 */
+  Parrot_say_nc,                                     /*    354 */
+  Parrot_say_s,                                      /*    355 */
+  Parrot_say_sc,                                     /*    356 */
+  Parrot_say_p,                                      /*    357 */
+  Parrot_print_p_i,                                  /*    358 */
+  Parrot_print_p_ic,                                 /*    359 */
+  Parrot_print_p_n,                                  /*    360 */
+  Parrot_print_p_nc,                                 /*    361 */
+  Parrot_print_p_s,                                  /*    362 */
+  Parrot_print_p_sc,                                 /*    363 */
+  Parrot_print_p_p,                                  /*    364 */
+  Parrot_getstdin_p,                                 /*    365 */
+  Parrot_getstdout_p,                                /*    366 */
+  Parrot_getstderr_p,                                /*    367 */
+  Parrot_abs_i,                                      /*    368 */
+  Parrot_abs_n,                                      /*    369 */
+  Parrot_abs_i_i,                                    /*    370 */
+  Parrot_abs_n_n,                                    /*    371 */
+  Parrot_abs_p,                                      /*    372 */
+  Parrot_abs_p_p,                                    /*    373 */
+  Parrot_add_i_i,                                    /*    374 */
+  Parrot_add_i_ic,                                   /*    375 */
+  Parrot_add_n_n,                                    /*    376 */
+  Parrot_add_n_nc,                                   /*    377 */
+  Parrot_add_p_p,                                    /*    378 */
+  Parrot_add_p_i,                                    /*    379 */
+  Parrot_add_p_ic,                                   /*    380 */
+  Parrot_add_p_n,                                    /*    381 */
+  Parrot_add_p_nc,                                   /*    382 */
+  Parrot_add_i_i_i,                                  /*    383 */
+  Parrot_add_i_ic_i,                                 /*    384 */
+  Parrot_add_i_i_ic,                                 /*    385 */
+  Parrot_add_n_n_n,                                  /*    386 */
+  Parrot_add_n_nc_n,                                 /*    387 */
+  Parrot_add_n_n_nc,                                 /*    388 */
+  Parrot_add_p_p_p,                                  /*    389 */
+  Parrot_add_p_p_i,                                  /*    390 */
+  Parrot_add_p_p_ic,                                 /*    391 */
+  Parrot_add_p_p_n,                                  /*    392 */
+  Parrot_add_p_p_nc,                                 /*    393 */
+  Parrot_dec_i,                                      /*    394 */
+  Parrot_dec_n,                                      /*    395 */
+  Parrot_dec_p,                                      /*    396 */
+  Parrot_div_i_i,                                    /*    397 */
+  Parrot_div_i_ic,                                   /*    398 */
+  Parrot_div_n_n,                                    /*    399 */
+  Parrot_div_n_nc,                                   /*    400 */
+  Parrot_div_p_p,                                    /*    401 */
+  Parrot_div_p_i,                                    /*    402 */
+  Parrot_div_p_ic,                                   /*    403 */
+  Parrot_div_p_n,                                    /*    404 */
+  Parrot_div_p_nc,                                   /*    405 */
+  Parrot_div_i_i_i,                                  /*    406 */
+  Parrot_div_i_ic_i,                                 /*    407 */
+  Parrot_div_i_i_ic,                                 /*    408 */
+  Parrot_div_i_ic_ic,                                /*    409 */
+  Parrot_div_n_n_n,                                  /*    410 */
+  Parrot_div_n_nc_n,                                 /*    411 */
+  Parrot_div_n_n_nc,                                 /*    412 */
+  Parrot_div_n_nc_nc,                                /*    413 */
+  Parrot_div_p_p_p,                                  /*    414 */
+  Parrot_div_p_p_i,                                  /*    415 */
+  Parrot_div_p_p_ic,                                 /*    416 */
+  Parrot_div_p_p_n,                                  /*    417 */
+  Parrot_div_p_p_nc,                                 /*    418 */
+  Parrot_fdiv_i_i,                                   /*    419 */
+  Parrot_fdiv_i_ic,                                  /*    420 */
+  Parrot_fdiv_n_n,                                   /*    421 */
+  Parrot_fdiv_n_nc,                                  /*    422 */
+  Parrot_fdiv_p_p,                                   /*    423 */
+  Parrot_fdiv_p_i,                                   /*    424 */
+  Parrot_fdiv_p_ic,                                  /*    425 */
+  Parrot_fdiv_p_n,                                   /*    426 */
+  Parrot_fdiv_p_nc,                                  /*    427 */
+  Parrot_fdiv_i_i_i,                                 /*    428 */
+  Parrot_fdiv_i_ic_i,                                /*    429 */
+  Parrot_fdiv_i_i_ic,                                /*    430 */
+  Parrot_fdiv_n_n_n,                                 /*    431 */
+  Parrot_fdiv_n_nc_n,                                /*    432 */
+  Parrot_fdiv_n_n_nc,                                /*    433 */
+  Parrot_fdiv_p_p_p,                                 /*    434 */
+  Parrot_fdiv_p_p_i,                                 /*    435 */
+  Parrot_fdiv_p_p_ic,                                /*    436 */
+  Parrot_fdiv_p_p_n,                                 /*    437 */
+  Parrot_fdiv_p_p_nc,                                /*    438 */
+  Parrot_ceil_n,                                     /*    439 */
+  Parrot_ceil_i_n,                                   /*    440 */
+  Parrot_ceil_n_n,                                   /*    441 */
+  Parrot_floor_n,                                    /*    442 */
+  Parrot_floor_i_n,                                  /*    443 */
+  Parrot_floor_n_n,                                  /*    444 */
+  Parrot_inc_i,                                      /*    445 */
+  Parrot_inc_n,                                      /*    446 */
+  Parrot_inc_p,                                      /*    447 */
+  Parrot_mod_i_i,                                    /*    448 */
+  Parrot_mod_i_ic,                                   /*    449 */
+  Parrot_mod_n_n,                                    /*    450 */
+  Parrot_mod_n_nc,                                   /*    451 */
+  Parrot_mod_p_p,                                    /*    452 */
+  Parrot_mod_p_i,                                    /*    453 */
+  Parrot_mod_p_ic,                                   /*    454 */
+  Parrot_mod_p_n,                                    /*    455 */
+  Parrot_mod_p_nc,                                   /*    456 */
+  Parrot_mod_i_i_i,                                  /*    457 */
+  Parrot_mod_i_ic_i,                                 /*    458 */
+  Parrot_mod_i_i_ic,                                 /*    459 */
+  Parrot_mod_n_n_n,                                  /*    460 */
+  Parrot_mod_n_nc_n,                                 /*    461 */
+  Parrot_mod_n_n_nc,                                 /*    462 */
+  Parrot_mod_p_p_p,                                  /*    463 */
+  Parrot_mod_p_p_i,                                  /*    464 */
+  Parrot_mod_p_p_ic,                                 /*    465 */
+  Parrot_mod_p_p_n,                                  /*    466 */
+  Parrot_mod_p_p_nc,                                 /*    467 */
+  Parrot_mul_i_i,                                    /*    468 */
+  Parrot_mul_i_ic,                                   /*    469 */
+  Parrot_mul_n_n,                                    /*    470 */
+  Parrot_mul_n_nc,                                   /*    471 */
+  Parrot_mul_p_p,                                    /*    472 */
+  Parrot_mul_p_i,                                    /*    473 */
+  Parrot_mul_p_ic,                                   /*    474 */
+  Parrot_mul_p_n,                                    /*    475 */
+  Parrot_mul_p_nc,                                   /*    476 */
+  Parrot_mul_i_i_i,                                  /*    477 */
+  Parrot_mul_i_ic_i,                                 /*    478 */
+  Parrot_mul_i_i_ic,                                 /*    479 */
+  Parrot_mul_n_n_n,                                  /*    480 */
+  Parrot_mul_n_nc_n,                                 /*    481 */
+  Parrot_mul_n_n_nc,                                 /*    482 */
+  Parrot_mul_p_p_p,                                  /*    483 */
+  Parrot_mul_p_p_i,                                  /*    484 */
+  Parrot_mul_p_p_ic,                                 /*    485 */
+  Parrot_mul_p_p_n,                                  /*    486 */
+  Parrot_mul_p_p_nc,                                 /*    487 */
+  Parrot_neg_i,                                      /*    488 */
+  Parrot_neg_n,                                      /*    489 */
+  Parrot_neg_p,                                      /*    490 */
+  Parrot_neg_i_i,                                    /*    491 */
+  Parrot_neg_n_n,                                    /*    492 */
+  Parrot_neg_p_p,                                    /*    493 */
+  Parrot_sub_i_i,                                    /*    494 */
+  Parrot_sub_i_ic,                                   /*    495 */
+  Parrot_sub_n_n,                                    /*    496 */
+  Parrot_sub_n_nc,                                   /*    497 */
+  Parrot_sub_p_p,                                    /*    498 */
+  Parrot_sub_p_i,                                    /*    499 */
+  Parrot_sub_p_ic,                                   /*    500 */
+  Parrot_sub_p_n,                                    /*    501 */
+  Parrot_sub_p_nc,                                   /*    502 */
+  Parrot_sub_i_i_i,                                  /*    503 */
+  Parrot_sub_i_ic_i,                                 /*    504 */
+  Parrot_sub_i_i_ic,                                 /*    505 */
+  Parrot_sub_n_n_n,                                  /*    506 */
+  Parrot_sub_n_nc_n,                                 /*    507 */
+  Parrot_sub_n_n_nc,                                 /*    508 */
+  Parrot_sub_p_p_p,                                  /*    509 */
+  Parrot_sub_p_p_i,                                  /*    510 */
+  Parrot_sub_p_p_ic,                                 /*    511 */
+  Parrot_sub_p_p_n,                                  /*    512 */
+  Parrot_sub_p_p_nc,                                 /*    513 */
+  Parrot_sqrt_n_n,                                   /*    514 */
+  Parrot_callmethodcc_p_s,                           /*    515 */
+  Parrot_callmethodcc_p_sc,                          /*    516 */
+  Parrot_callmethodcc_p_p,                           /*    517 */
+  Parrot_callmethod_p_s_p,                           /*    518 */
+  Parrot_callmethod_p_sc_p,                          /*    519 */
+  Parrot_callmethod_p_p_p,                           /*    520 */
+  Parrot_tailcallmethod_p_s,                         /*    521 */
+  Parrot_tailcallmethod_p_sc,                        /*    522 */
+  Parrot_tailcallmethod_p_p,                         /*    523 */
+  Parrot_addmethod_p_s_p,                            /*    524 */
+  Parrot_addmethod_p_sc_p,                           /*    525 */
+  Parrot_can_i_p_s,                                  /*    526 */
+  Parrot_can_i_p_sc,                                 /*    527 */
+  Parrot_does_i_p_s,                                 /*    528 */
+  Parrot_does_i_p_sc,                                /*    529 */
+  Parrot_does_i_p_p,                                 /*    530 */
+  Parrot_does_i_p_pc,                                /*    531 */
+  Parrot_isa_i_p_s,                                  /*    532 */
+  Parrot_isa_i_p_sc,                                 /*    533 */
+  Parrot_isa_i_p_p,                                  /*    534 */
+  Parrot_isa_i_p_pc,                                 /*    535 */
+  Parrot_newclass_p_s,                               /*    536 */
+  Parrot_newclass_p_sc,                              /*    537 */
+  Parrot_newclass_p_p,                               /*    538 */
+  Parrot_newclass_p_pc,                              /*    539 */
+  Parrot_subclass_p_p,                               /*    540 */
+  Parrot_subclass_p_pc,                              /*    541 */
+  Parrot_subclass_p_p_s,                             /*    542 */
+  Parrot_subclass_p_pc_s,                            /*    543 */
+  Parrot_subclass_p_p_sc,                            /*    544 */
+  Parrot_subclass_p_pc_sc,                           /*    545 */
+  Parrot_subclass_p_p_p,                             /*    546 */
+  Parrot_subclass_p_pc_p,                            /*    547 */
+  Parrot_subclass_p_p_pc,                            /*    548 */
+  Parrot_subclass_p_pc_pc,                           /*    549 */
+  Parrot_subclass_p_s,                               /*    550 */
+  Parrot_subclass_p_sc,                              /*    551 */
+  Parrot_subclass_p_s_s,                             /*    552 */
+  Parrot_subclass_p_sc_s,                            /*    553 */
+  Parrot_subclass_p_s_sc,                            /*    554 */
+  Parrot_subclass_p_sc_sc,                           /*    555 */
+  Parrot_subclass_p_s_p,                             /*    556 */
+  Parrot_subclass_p_sc_p,                            /*    557 */
+  Parrot_subclass_p_s_pc,                            /*    558 */
+  Parrot_subclass_p_sc_pc,                           /*    559 */
+  Parrot_get_class_p_s,                              /*    560 */
+  Parrot_get_class_p_sc,                             /*    561 */
+  Parrot_get_class_p_p,                              /*    562 */
+  Parrot_get_class_p_pc,                             /*    563 */
+  Parrot_class_p_p,                                  /*    564 */
+  Parrot_addparent_p_p,                              /*    565 */
+  Parrot_removeparent_p_p,                           /*    566 */
+  Parrot_addrole_p_p,                                /*    567 */
+  Parrot_addattribute_p_s,                           /*    568 */
+  Parrot_addattribute_p_sc,                          /*    569 */
+  Parrot_removeattribute_p_s,                        /*    570 */
+  Parrot_removeattribute_p_sc,                       /*    571 */
+  Parrot_getattribute_p_p_s,                         /*    572 */
+  Parrot_getattribute_p_p_sc,                        /*    573 */
+  Parrot_getattribute_p_p_p_s,                       /*    574 */
+  Parrot_getattribute_p_p_pc_s,                      /*    575 */
+  Parrot_getattribute_p_p_p_sc,                      /*    576 */
+  Parrot_getattribute_p_p_pc_sc,                     /*    577 */
+  Parrot_setattribute_p_s_p,                         /*    578 */
+  Parrot_setattribute_p_sc_p,                        /*    579 */
+  Parrot_setattribute_p_p_s_p,                       /*    580 */
+  Parrot_setattribute_p_pc_s_p,                      /*    581 */
+  Parrot_setattribute_p_p_sc_p,                      /*    582 */
+  Parrot_setattribute_p_pc_sc_p,                     /*    583 */
+  Parrot_inspect_p_p,                                /*    584 */
+  Parrot_inspect_p_pc,                               /*    585 */
+  Parrot_inspect_p_p_s,                              /*    586 */
+  Parrot_inspect_p_pc_s,                             /*    587 */
+  Parrot_inspect_p_p_sc,                             /*    588 */
+  Parrot_inspect_p_pc_sc,                            /*    589 */
+  Parrot_new_p_s,                                    /*    590 */
+  Parrot_new_p_sc,                                   /*    591 */
+  Parrot_new_p_s_p,                                  /*    592 */
+  Parrot_new_p_sc_p,                                 /*    593 */
+  Parrot_new_p_s_pc,                                 /*    594 */
+  Parrot_new_p_sc_pc,                                /*    595 */
+  Parrot_new_p_p,                                    /*    596 */
+  Parrot_new_p_pc,                                   /*    597 */
+  Parrot_new_p_p_p,                                  /*    598 */
+  Parrot_new_p_pc_p,                                 /*    599 */
+  Parrot_new_p_p_pc,                                 /*    600 */
+  Parrot_new_p_pc_pc,                                /*    601 */
+  Parrot_root_new_p_p,                               /*    602 */
+  Parrot_root_new_p_pc,                              /*    603 */
+  Parrot_root_new_p_p_p,                             /*    604 */
+  Parrot_root_new_p_pc_p,                            /*    605 */
+  Parrot_root_new_p_p_pc,                            /*    606 */
+  Parrot_root_new_p_pc_pc,                           /*    607 */
+  Parrot_typeof_s_p,                                 /*    608 */
+  Parrot_typeof_p_p,                                 /*    609 */
+  Parrot_get_repr_s_p,                               /*    610 */
+  Parrot_find_method_p_p_s,                          /*    611 */
+  Parrot_find_method_p_p_sc,                         /*    612 */
+  Parrot_defined_i_p,                                /*    613 */
+  Parrot_defined_i_p_ki,                             /*    614 */
+  Parrot_defined_i_p_kic,                            /*    615 */
+  Parrot_defined_i_p_k,                              /*    616 */
+  Parrot_defined_i_p_kc,                             /*    617 */
+  Parrot_exists_i_p_ki,                              /*    618 */
+  Parrot_exists_i_p_kic,                             /*    619 */
+  Parrot_exists_i_p_k,                               /*    620 */
+  Parrot_exists_i_p_kc,                              /*    621 */
+  Parrot_delete_p_k,                                 /*    622 */
+  Parrot_delete_p_kc,                                /*    623 */
+  Parrot_delete_p_ki,                                /*    624 */
+  Parrot_delete_p_kic,                               /*    625 */
+  Parrot_elements_i_p,                               /*    626 */
+  Parrot_push_p_i,                                   /*    627 */
+  Parrot_push_p_ic,                                  /*    628 */
+  Parrot_push_p_n,                                   /*    629 */
+  Parrot_push_p_nc,                                  /*    630 */
+  Parrot_push_p_s,                                   /*    631 */
+  Parrot_push_p_sc,                                  /*    632 */
+  Parrot_push_p_p,                                   /*    633 */
+  Parrot_pop_i_p,                                    /*    634 */
+  Parrot_pop_n_p,                                    /*    635 */
+  Parrot_pop_s_p,                                    /*    636 */
+  Parrot_pop_p_p,                                    /*    637 */
+  Parrot_unshift_p_i,                                /*    638 */
+  Parrot_unshift_p_ic,                               /*    639 */
+  Parrot_unshift_p_n,                                /*    640 */
+  Parrot_unshift_p_nc,                               /*    641 */
+  Parrot_unshift_p_s,                                /*    642 */
+  Parrot_unshift_p_sc,                               /*    643 */
+  Parrot_unshift_p_p,                                /*    644 */
+  Parrot_shift_i_p,                                  /*    645 */
+  Parrot_shift_n_p,                                  /*    646 */
+  Parrot_shift_s_p,                                  /*    647 */
+  Parrot_shift_p_p,                                  /*    648 */
+  Parrot_splice_p_p_i_i,                             /*    649 */
+  Parrot_splice_p_p_ic_i,                            /*    650 */
+  Parrot_splice_p_p_i_ic,                            /*    651 */
+  Parrot_splice_p_p_ic_ic,                           /*    652 */
+  Parrot_setprop_p_s_p,                              /*    653 */
+  Parrot_setprop_p_sc_p,                             /*    654 */
+  Parrot_getprop_p_s_p,                              /*    655 */
+  Parrot_getprop_p_sc_p,                             /*    656 */
+  Parrot_delprop_p_s,                                /*    657 */
+  Parrot_delprop_p_sc,                               /*    658 */
+  Parrot_prophash_p_p,                               /*    659 */
+  Parrot_freeze_s_p,                                 /*    660 */
+  Parrot_thaw_p_s,                                   /*    661 */
+  Parrot_thaw_p_sc,                                  /*    662 */
+  Parrot_add_multi_s_s_p,                            /*    663 */
+  Parrot_add_multi_sc_s_p,                           /*    664 */
+  Parrot_add_multi_s_sc_p,                           /*    665 */
+  Parrot_add_multi_sc_sc_p,                          /*    666 */
+  Parrot_find_multi_p_s_s,                           /*    667 */
+  Parrot_find_multi_p_sc_s,                          /*    668 */
+  Parrot_find_multi_p_s_sc,                          /*    669 */
+  Parrot_find_multi_p_sc_sc,                         /*    670 */
+  Parrot_register_p,                                 /*    671 */
+  Parrot_unregister_p,                               /*    672 */
+  Parrot_box_p_i,                                    /*    673 */
+  Parrot_box_p_ic,                                   /*    674 */
+  Parrot_box_p_n,                                    /*    675 */
+  Parrot_box_p_nc,                                   /*    676 */
+  Parrot_box_p_s,                                    /*    677 */
+  Parrot_box_p_sc,                                   /*    678 */
+  Parrot_iter_p_p,                                   /*    679 */
+  Parrot_morph_p_p,                                  /*    680 */
+  Parrot_morph_p_pc,                                 /*    681 */
+  Parrot_clone_s_s,                                  /*    682 */
+  Parrot_clone_s_sc,                                 /*    683 */
+  Parrot_set_i_i,                                    /*    684 */
+  Parrot_set_i_ic,                                   /*    685 */
+  Parrot_set_i_n,                                    /*    686 */
+  Parrot_set_i_nc,                                   /*    687 */
+  Parrot_set_i_s,                                    /*    688 */
+  Parrot_set_i_sc,                                   /*    689 */
+  Parrot_set_n_n,                                    /*    690 */
+  Parrot_set_n_nc,                                   /*    691 */
+  Parrot_set_n_i,                                    /*    692 */
+  Parrot_set_n_ic,                                   /*    693 */
+  Parrot_set_n_s,                                    /*    694 */
+  Parrot_set_n_sc,                                   /*    695 */
+  Parrot_set_n_p,                                    /*    696 */
+  Parrot_set_s_p,                                    /*    697 */
+  Parrot_set_s_s,                                    /*    698 */
+  Parrot_set_s_sc,                                   /*    699 */
+  Parrot_set_s_i,                                    /*    700 */
+  Parrot_set_s_ic,                                   /*    701 */
+  Parrot_set_s_n,                                    /*    702 */
+  Parrot_set_s_nc,                                   /*    703 */
+  Parrot_set_p_pc,                                   /*    704 */
+  Parrot_set_p_p,                                    /*    705 */
+  Parrot_set_p_i,                                    /*    706 */
+  Parrot_set_p_ic,                                   /*    707 */
+  Parrot_set_p_n,                                    /*    708 */
+  Parrot_set_p_nc,                                   /*    709 */
+  Parrot_set_p_s,                                    /*    710 */
+  Parrot_set_p_sc,                                   /*    711 */
+  Parrot_set_i_p,                                    /*    712 */
+  Parrot_assign_p_p,                                 /*    713 */
+  Parrot_assign_p_i,                                 /*    714 */
+  Parrot_assign_p_ic,                                /*    715 */
+  Parrot_assign_p_n,                                 /*    716 */
+  Parrot_assign_p_nc,                                /*    717 */
+  Parrot_assign_p_s,                                 /*    718 */
+  Parrot_assign_p_sc,                                /*    719 */
+  Parrot_assign_s_s,                                 /*    720 */
+  Parrot_assign_s_sc,                                /*    721 */
+  Parrot_setref_p_p,                                 /*    722 */
+  Parrot_deref_p_p,                                  /*    723 */
+  Parrot_set_p_ki_i,                                 /*    724 */
+  Parrot_set_p_kic_i,                                /*    725 */
+  Parrot_set_p_ki_ic,                                /*    726 */
+  Parrot_set_p_kic_ic,                               /*    727 */
+  Parrot_set_p_ki_n,                                 /*    728 */
+  Parrot_set_p_kic_n,                                /*    729 */
+  Parrot_set_p_ki_nc,                                /*    730 */
+  Parrot_set_p_kic_nc,                               /*    731 */
+  Parrot_set_p_ki_s,                                 /*    732 */
+  Parrot_set_p_kic_s,                                /*    733 */
+  Parrot_set_p_ki_sc,                                /*    734 */
+  Parrot_set_p_kic_sc,                               /*    735 */
+  Parrot_set_p_ki_p,                                 /*    736 */
+  Parrot_set_p_kic_p,                                /*    737 */
+  Parrot_set_i_p_ki,                                 /*    738 */
+  Parrot_set_i_p_kic,                                /*    739 */
+  Parrot_set_n_p_ki,                                 /*    740 */
+  Parrot_set_n_p_kic,                                /*    741 */
+  Parrot_set_s_p_ki,                                 /*    742 */
+  Parrot_set_s_p_kic,                                /*    743 */
+  Parrot_set_p_p_ki,                                 /*    744 */
+  Parrot_set_p_p_kic,                                /*    745 */
+  Parrot_set_p_k_i,                                  /*    746 */
+  Parrot_set_p_kc_i,                                 /*    747 */
+  Parrot_set_p_k_ic,                                 /*    748 */
+  Parrot_set_p_kc_ic,                                /*    749 */
+  Parrot_set_p_k_n,                                  /*    750 */
+  Parrot_set_p_kc_n,                                 /*    751 */
+  Parrot_set_p_k_nc,                                 /*    752 */
+  Parrot_set_p_kc_nc,                                /*    753 */
+  Parrot_set_p_k_s,                                  /*    754 */
+  Parrot_set_p_kc_s,                                 /*    755 */
+  Parrot_set_p_k_sc,                                 /*    756 */
+  Parrot_set_p_kc_sc,                                /*    757 */
+  Parrot_set_p_k_p,                                  /*    758 */
+  Parrot_set_p_kc_p,                                 /*    759 */
+  Parrot_set_i_p_k,                                  /*    760 */
+  Parrot_set_i_p_kc,                                 /*    761 */
+  Parrot_set_n_p_k,                                  /*    762 */
+  Parrot_set_n_p_kc,                                 /*    763 */
+  Parrot_set_s_p_k,                                  /*    764 */
+  Parrot_set_s_p_kc,                                 /*    765 */
+  Parrot_set_p_p_k,                                  /*    766 */
+  Parrot_set_p_p_kc,                                 /*    767 */
+  Parrot_clone_p_p,                                  /*    768 */
+  Parrot_clone_p_p_p,                                /*    769 */
+  Parrot_clone_p_p_pc,                               /*    770 */
+  Parrot_copy_p_p,                                   /*    771 */
+  Parrot_null_s,                                     /*    772 */
+  Parrot_null_i,                                     /*    773 */
+  Parrot_null_p,                                     /*    774 */
+  Parrot_null_n,                                     /*    775 */
+  Parrot_ord_i_s,                                    /*    776 */
+  Parrot_ord_i_sc,                                   /*    777 */
+  Parrot_ord_i_s_i,                                  /*    778 */
+  Parrot_ord_i_sc_i,                                 /*    779 */
+  Parrot_ord_i_s_ic,                                 /*    780 */
+  Parrot_ord_i_sc_ic,                                /*    781 */
+  Parrot_chr_s_i,                                    /*    782 */
+  Parrot_chr_s_ic,                                   /*    783 */
+  Parrot_chopn_s_s_i,                                /*    784 */
+  Parrot_chopn_s_sc_i,                               /*    785 */
+  Parrot_chopn_s_s_ic,                               /*    786 */
+  Parrot_chopn_s_sc_ic,                              /*    787 */
+  Parrot_concat_s_s,                                 /*    788 */
+  Parrot_concat_s_sc,                                /*    789 */
+  Parrot_concat_p_p,                                 /*    790 */
+  Parrot_concat_p_s,                                 /*    791 */
+  Parrot_concat_p_sc,                                /*    792 */
+  Parrot_concat_s_s_s,                               /*    793 */
+  Parrot_concat_s_sc_s,                              /*    794 */
+  Parrot_concat_s_s_sc,                              /*    795 */
+  Parrot_concat_p_p_s,                               /*    796 */
+  Parrot_concat_p_p_sc,                              /*    797 */
+  Parrot_concat_p_p_p,                               /*    798 */
+  Parrot_repeat_s_s_i,                               /*    799 */
+  Parrot_repeat_s_sc_i,                              /*    800 */
+  Parrot_repeat_s_s_ic,                              /*    801 */
+  Parrot_repeat_s_sc_ic,                             /*    802 */
+  Parrot_repeat_p_p_i,                               /*    803 */
+  Parrot_repeat_p_p_ic,                              /*    804 */
+  Parrot_repeat_p_p_p,                               /*    805 */
+  Parrot_repeat_p_i,                                 /*    806 */
+  Parrot_repeat_p_ic,                                /*    807 */
+  Parrot_repeat_p_p,                                 /*    808 */
+  Parrot_length_i_s,                                 /*    809 */
+  Parrot_length_i_sc,                                /*    810 */
+  Parrot_bytelength_i_s,                             /*    811 */
+  Parrot_bytelength_i_sc,                            /*    812 */
+  Parrot_pin_s,                                      /*    813 */
+  Parrot_unpin_s,                                    /*    814 */
+  Parrot_substr_s_s_i,                               /*    815 */
+  Parrot_substr_s_sc_i,                              /*    816 */
+  Parrot_substr_s_s_ic,                              /*    817 */
+  Parrot_substr_s_sc_ic,                             /*    818 */
+  Parrot_substr_s_s_i_i,                             /*    819 */
+  Parrot_substr_s_sc_i_i,                            /*    820 */
+  Parrot_substr_s_s_ic_i,                            /*    821 */
+  Parrot_substr_s_sc_ic_i,                           /*    822 */
+  Parrot_substr_s_s_i_ic,                            /*    823 */
+  Parrot_substr_s_sc_i_ic,                           /*    824 */
+  Parrot_substr_s_s_ic_ic,                           /*    825 */
+  Parrot_substr_s_sc_ic_ic,                          /*    826 */
+  Parrot_substr_s_p_i_i,                             /*    827 */
+  Parrot_substr_s_p_ic_i,                            /*    828 */
+  Parrot_substr_s_p_i_ic,                            /*    829 */
+  Parrot_substr_s_p_ic_ic,                           /*    830 */
+  Parrot_replace_s_s_i_i_s,                          /*    831 */
+  Parrot_replace_s_sc_i_i_s,                         /*    832 */
+  Parrot_replace_s_s_ic_i_s,                         /*    833 */
+  Parrot_replace_s_sc_ic_i_s,                        /*    834 */
+  Parrot_replace_s_s_i_ic_s,                         /*    835 */
+  Parrot_replace_s_sc_i_ic_s,                        /*    836 */
+  Parrot_replace_s_s_ic_ic_s,                        /*    837 */
+  Parrot_replace_s_sc_ic_ic_s,                       /*    838 */
+  Parrot_replace_s_s_i_i_sc,                         /*    839 */
+  Parrot_replace_s_sc_i_i_sc,                        /*    840 */
+  Parrot_replace_s_s_ic_i_sc,                        /*    841 */
+  Parrot_replace_s_sc_ic_i_sc,                       /*    842 */
+  Parrot_replace_s_s_i_ic_sc,                        /*    843 */
+  Parrot_replace_s_sc_i_ic_sc,                       /*    844 */
+  Parrot_replace_s_s_ic_ic_sc,                       /*    845 */
+  Parrot_replace_s_sc_ic_ic_sc,                      /*    846 */
+  Parrot_index_i_s_s,                                /*    847 */
+  Parrot_index_i_sc_s,                               /*    848 */
+  Parrot_index_i_s_sc,                               /*    849 */
+  Parrot_index_i_sc_sc,                              /*    850 */
+  Parrot_index_i_s_s_i,                              /*    851 */
+  Parrot_index_i_sc_s_i,                             /*    852 */
+  Parrot_index_i_s_sc_i,                             /*    853 */
+  Parrot_index_i_sc_sc_i,                            /*    854 */
+  Parrot_index_i_s_s_ic,                             /*    855 */
+  Parrot_index_i_sc_s_ic,                            /*    856 */
+  Parrot_index_i_s_sc_ic,                            /*    857 */
+  Parrot_index_i_sc_sc_ic,                           /*    858 */
+  Parrot_sprintf_s_s_p,                              /*    859 */
+  Parrot_sprintf_s_sc_p,                             /*    860 */
+  Parrot_sprintf_p_p_p,                              /*    861 */
+  Parrot_new_s,                                      /*    862 */
+  Parrot_new_s_i,                                    /*    863 */
+  Parrot_new_s_ic,                                   /*    864 */
+  Parrot_stringinfo_i_s_i,                           /*    865 */
+  Parrot_stringinfo_i_sc_i,                          /*    866 */
+  Parrot_stringinfo_i_s_ic,                          /*    867 */
+  Parrot_stringinfo_i_sc_ic,                         /*    868 */
+  Parrot_upcase_s_s,                                 /*    869 */
+  Parrot_upcase_s_sc,                                /*    870 */
+  Parrot_downcase_s_s,                               /*    871 */
+  Parrot_downcase_s_sc,                              /*    872 */
+  Parrot_titlecase_s_s,                              /*    873 */
+  Parrot_titlecase_s_sc,                             /*    874 */
+  Parrot_join_s_s_p,                                 /*    875 */
+  Parrot_join_s_sc_p,                                /*    876 */
+  Parrot_split_p_s_s,                                /*    877 */
+  Parrot_split_p_sc_s,                               /*    878 */
+  Parrot_split_p_s_sc,                               /*    879 */
+  Parrot_split_p_sc_sc,                              /*    880 */
+  Parrot_charset_i_s,                                /*    881 */
+  Parrot_charset_i_sc,                               /*    882 */
+  Parrot_charsetname_s_i,                            /*    883 */
+  Parrot_charsetname_s_ic,                           /*    884 */
+  Parrot_find_charset_i_s,                           /*    885 */
+  Parrot_find_charset_i_sc,                          /*    886 */
+  Parrot_trans_charset_s_s_i,                        /*    887 */
+  Parrot_trans_charset_s_sc_i,                       /*    888 */
+  Parrot_trans_charset_s_s_ic,                       /*    889 */
+  Parrot_trans_charset_s_sc_ic,                      /*    890 */
+  Parrot_encoding_i_s,                               /*    891 */
+  Parrot_encoding_i_sc,                              /*    892 */
+  Parrot_encodingname_s_i,                           /*    893 */
+  Parrot_encodingname_s_ic,                          /*    894 */
+  Parrot_find_encoding_i_s,                          /*    895 */
+  Parrot_find_encoding_i_sc,                         /*    896 */
+  Parrot_trans_encoding_s_s_i,                       /*    897 */
+  Parrot_trans_encoding_s_sc_i,                      /*    898 */
+  Parrot_trans_encoding_s_s_ic,                      /*    899 */
+  Parrot_trans_encoding_s_sc_ic,                     /*    900 */
+  Parrot_is_cclass_i_i_s_i,                          /*    901 */
+  Parrot_is_cclass_i_ic_s_i,                         /*    902 */
+  Parrot_is_cclass_i_i_sc_i,                         /*    903 */
+  Parrot_is_cclass_i_ic_sc_i,                        /*    904 */
+  Parrot_is_cclass_i_i_s_ic,                         /*    905 */
+  Parrot_is_cclass_i_ic_s_ic,                        /*    906 */
+  Parrot_is_cclass_i_i_sc_ic,                        /*    907 */
+  Parrot_is_cclass_i_ic_sc_ic,                       /*    908 */
+  Parrot_find_cclass_i_i_s_i_i,                      /*    909 */
+  Parrot_find_cclass_i_ic_s_i_i,                     /*    910 */
+  Parrot_find_cclass_i_i_sc_i_i,                     /*    911 */
+  Parrot_find_cclass_i_ic_sc_i_i,                    /*    912 */
+  Parrot_find_cclass_i_i_s_ic_i,                     /*    913 */
+  Parrot_find_cclass_i_ic_s_ic_i,                    /*    914 */
+  Parrot_find_cclass_i_i_sc_ic_i,                    /*    915 */
+  Parrot_find_cclass_i_ic_sc_ic_i,                   /*    916 */
+  Parrot_find_cclass_i_i_s_i_ic,                     /*    917 */
+  Parrot_find_cclass_i_ic_s_i_ic,                    /*    918 */
+  Parrot_find_cclass_i_i_sc_i_ic,                    /*    919 */
+  Parrot_find_cclass_i_ic_sc_i_ic,                   /*    920 */
+  Parrot_find_cclass_i_i_s_ic_ic,                    /*    921 */
+  Parrot_find_cclass_i_ic_s_ic_ic,                   /*    922 */
+  Parrot_find_cclass_i_i_sc_ic_ic,                   /*    923 */
+  Parrot_find_cclass_i_ic_sc_ic_ic,                  /*    924 */
+  Parrot_find_not_cclass_i_i_s_i_i,                  /*    925 */
+  Parrot_find_not_cclass_i_ic_s_i_i,                 /*    926 */
+  Parrot_find_not_cclass_i_i_sc_i_i,                 /*    927 */
+  Parrot_find_not_cclass_i_ic_sc_i_i,                /*    928 */
+  Parrot_find_not_cclass_i_i_s_ic_i,                 /*    929 */
+  Parrot_find_not_cclass_i_ic_s_ic_i,                /*    930 */
+  Parrot_find_not_cclass_i_i_sc_ic_i,                /*    931 */
+  Parrot_find_not_cclass_i_ic_sc_ic_i,               /*    932 */
+  Parrot_find_not_cclass_i_i_s_i_ic,                 /*    933 */
+  Parrot_find_not_cclass_i_ic_s_i_ic,                /*    934 */
+  Parrot_find_not_cclass_i_i_sc_i_ic,                /*    935 */
+  Parrot_find_not_cclass_i_ic_sc_i_ic,               /*    936 */
+  Parrot_find_not_cclass_i_i_s_ic_ic,                /*    937 */
+  Parrot_find_not_cclass_i_ic_s_ic_ic,               /*    938 */
+  Parrot_find_not_cclass_i_i_sc_ic_ic,               /*    939 */
+  Parrot_find_not_cclass_i_ic_sc_ic_ic,              /*    940 */
+  Parrot_escape_s_s,                                 /*    941 */
+  Parrot_compose_s_s,                                /*    942 */
+  Parrot_compose_s_sc,                               /*    943 */
+  Parrot_spawnw_i_s,                                 /*    944 */
+  Parrot_spawnw_i_sc,                                /*    945 */
+  Parrot_spawnw_i_p,                                 /*    946 */
+  Parrot_err_i,                                      /*    947 */
+  Parrot_err_s,                                      /*    948 */
+  Parrot_err_s_i,                                    /*    949 */
+  Parrot_err_s_ic,                                   /*    950 */
+  Parrot_time_i,                                     /*    951 */
+  Parrot_time_n,                                     /*    952 */
+  Parrot_sleep_i,                                    /*    953 */
+  Parrot_sleep_ic,                                   /*    954 */
+  Parrot_sleep_n,                                    /*    955 */
+  Parrot_sleep_nc,                                   /*    956 */
+  Parrot_store_lex_s_p,                              /*    957 */
+  Parrot_store_lex_sc_p,                             /*    958 */
+  Parrot_store_dynamic_lex_s_p,                      /*    959 */
+  Parrot_store_dynamic_lex_sc_p,                     /*    960 */
+  Parrot_find_lex_p_s,                               /*    961 */
+  Parrot_find_lex_p_sc,                              /*    962 */
+  Parrot_find_dynamic_lex_p_s,                       /*    963 */
+  Parrot_find_dynamic_lex_p_sc,                      /*    964 */
+  Parrot_find_caller_lex_p_s,                        /*    965 */
+  Parrot_find_caller_lex_p_sc,                       /*    966 */
+  Parrot_get_namespace_p,                            /*    967 */
+  Parrot_get_namespace_p_p,                          /*    968 */
+  Parrot_get_namespace_p_pc,                         /*    969 */
+  Parrot_get_hll_namespace_p,                        /*    970 */
+  Parrot_get_hll_namespace_p_p,                      /*    971 */
+  Parrot_get_hll_namespace_p_pc,                     /*    972 */
+  Parrot_get_root_namespace_p,                       /*    973 */
+  Parrot_get_root_namespace_p_p,                     /*    974 */
+  Parrot_get_root_namespace_p_pc,                    /*    975 */
+  Parrot_get_global_p_s,                             /*    976 */
+  Parrot_get_global_p_sc,                            /*    977 */
+  Parrot_get_global_p_p_s,                           /*    978 */
+  Parrot_get_global_p_pc_s,                          /*    979 */
+  Parrot_get_global_p_p_sc,                          /*    980 */
+  Parrot_get_global_p_pc_sc,                         /*    981 */
+  Parrot_get_hll_global_p_s,                         /*    982 */
+  Parrot_get_hll_global_p_sc,                        /*    983 */
+  Parrot_get_hll_global_p_p_s,                       /*    984 */
+  Parrot_get_hll_global_p_pc_s,                      /*    985 */
+  Parrot_get_hll_global_p_p_sc,                      /*    986 */
+  Parrot_get_hll_global_p_pc_sc,                     /*    987 */
+  Parrot_get_root_global_p_s,                        /*    988 */
+  Parrot_get_root_global_p_sc,                       /*    989 */
+  Parrot_get_root_global_p_p_s,                      /*    990 */
+  Parrot_get_root_global_p_pc_s,                     /*    991 */
+  Parrot_get_root_global_p_p_sc,                     /*    992 */
+  Parrot_get_root_global_p_pc_sc,                    /*    993 */
+  Parrot_set_global_s_p,                             /*    994 */
+  Parrot_set_global_sc_p,                            /*    995 */
+  Parrot_set_global_p_s_p,                           /*    996 */
+  Parrot_set_global_pc_s_p,                          /*    997 */
+  Parrot_set_global_p_sc_p,                          /*    998 */
+  Parrot_set_global_pc_sc_p,                         /*    999 */
+  Parrot_set_hll_global_s_p,                         /*   1000 */
+  Parrot_set_hll_global_sc_p,                        /*   1001 */
+  Parrot_set_hll_global_p_s_p,                       /*   1002 */
+  Parrot_set_hll_global_pc_s_p,                      /*   1003 */
+  Parrot_set_hll_global_p_sc_p,                      /*   1004 */
+  Parrot_set_hll_global_pc_sc_p,                     /*   1005 */
+  Parrot_set_root_global_s_p,                        /*   1006 */
+  Parrot_set_root_global_sc_p,                       /*   1007 */
+  Parrot_set_root_global_p_s_p,                      /*   1008 */
+  Parrot_set_root_global_pc_s_p,                     /*   1009 */
+  Parrot_set_root_global_p_sc_p,                     /*   1010 */
+  Parrot_set_root_global_pc_sc_p,                    /*   1011 */
+  Parrot_find_name_p_s,                              /*   1012 */
+  Parrot_find_name_p_sc,                             /*   1013 */
+  Parrot_find_sub_not_null_p_s,                      /*   1014 */
+  Parrot_find_sub_not_null_p_sc,                     /*   1015 */
+  Parrot_trap,                                       /*   1016 */
+  Parrot_set_label_p_ic,                             /*   1017 */
+  Parrot_get_label_i_p,                              /*   1018 */
+  Parrot_fetch_p_p_p_p,                              /*   1019 */
+  Parrot_fetch_p_pc_p_p,                             /*   1020 */
+  Parrot_fetch_p_p_pc_p,                             /*   1021 */
+  Parrot_fetch_p_pc_pc_p,                            /*   1022 */
+  Parrot_fetch_p_p_p_pc,                             /*   1023 */
+  Parrot_fetch_p_pc_p_pc,                            /*   1024 */
+  Parrot_fetch_p_p_pc_pc,                            /*   1025 */
+  Parrot_fetch_p_pc_pc_pc,                           /*   1026 */
+  Parrot_fetch_p_p_i_p,                              /*   1027 */
+  Parrot_fetch_p_pc_i_p,                             /*   1028 */
+  Parrot_fetch_p_p_ic_p,                             /*   1029 */
+  Parrot_fetch_p_pc_ic_p,                            /*   1030 */
+  Parrot_fetch_p_p_i_pc,                             /*   1031 */
+  Parrot_fetch_p_pc_i_pc,                            /*   1032 */
+  Parrot_fetch_p_p_ic_pc,                            /*   1033 */
+  Parrot_fetch_p_pc_ic_pc,                           /*   1034 */
+  Parrot_fetch_p_p_s_p,                              /*   1035 */
+  Parrot_fetch_p_pc_s_p,                             /*   1036 */
+  Parrot_fetch_p_p_sc_p,                             /*   1037 */
+  Parrot_fetch_p_pc_sc_p,                            /*   1038 */
+  Parrot_fetch_p_p_s_pc,                             /*   1039 */
+  Parrot_fetch_p_pc_s_pc,                            /*   1040 */
+  Parrot_fetch_p_p_sc_pc,                            /*   1041 */
+  Parrot_fetch_p_pc_sc_pc,                           /*   1042 */
+  Parrot_vivify_p_p_p_p,                             /*   1043 */
+  Parrot_vivify_p_pc_p_p,                            /*   1044 */
+  Parrot_vivify_p_p_pc_p,                            /*   1045 */
+  Parrot_vivify_p_pc_pc_p,                           /*   1046 */
+  Parrot_vivify_p_p_p_pc,                            /*   1047 */
+  Parrot_vivify_p_pc_p_pc,                           /*   1048 */
+  Parrot_vivify_p_p_pc_pc,                           /*   1049 */
+  Parrot_vivify_p_pc_pc_pc,                          /*   1050 */
+  Parrot_vivify_p_p_i_p,                             /*   1051 */
+  Parrot_vivify_p_pc_i_p,                            /*   1052 */
+  Parrot_vivify_p_p_ic_p,                            /*   1053 */
+  Parrot_vivify_p_pc_ic_p,                           /*   1054 */
+  Parrot_vivify_p_p_i_pc,                            /*   1055 */
+  Parrot_vivify_p_pc_i_pc,                           /*   1056 */
+  Parrot_vivify_p_p_ic_pc,                           /*   1057 */
+  Parrot_vivify_p_pc_ic_pc,                          /*   1058 */
+  Parrot_vivify_p_p_s_p,                             /*   1059 */
+  Parrot_vivify_p_pc_s_p,                            /*   1060 */
+  Parrot_vivify_p_p_sc_p,                            /*   1061 */
+  Parrot_vivify_p_pc_sc_p,                           /*   1062 */
+  Parrot_vivify_p_p_s_pc,                            /*   1063 */
+  Parrot_vivify_p_pc_s_pc,                           /*   1064 */
+  Parrot_vivify_p_p_sc_pc,                           /*   1065 */
+  Parrot_vivify_p_pc_sc_pc,                          /*   1066 */
+  Parrot_new_p_s_i,                                  /*   1067 */
+  Parrot_new_p_sc_i,                                 /*   1068 */
+  Parrot_new_p_s_ic,                                 /*   1069 */
+  Parrot_new_p_sc_ic,                                /*   1070 */
+  Parrot_new_p_p_i,                                  /*   1071 */
+  Parrot_new_p_pc_i,                                 /*   1072 */
+  Parrot_new_p_p_ic,                                 /*   1073 */
+  Parrot_new_p_pc_ic,                                /*   1074 */
+  Parrot_root_new_p_p_i,                             /*   1075 */
+  Parrot_root_new_p_pc_i,                            /*   1076 */
+  Parrot_root_new_p_p_ic,                            /*   1077 */
+  Parrot_root_new_p_pc_ic,                           /*   1078 */
+  Parrot_find_codepoint_i_s,                         /*   1079 */
+  Parrot_find_codepoint_i_sc,                        /*   1080 */
+  Parrot_finalize_p,                                 /*   1081 */
+  Parrot_finalize_pc,                                /*   1082 */
 
   NULL /* NULL function pointer */
 };
@@ -1345,7 +1162,7 @@
 ** Op Info Table:
 */
 
-static op_info_t core_op_info_table[1269] = {
+static op_info_t core_op_info_table[1084] = {
   { /* 0 */
     /* type PARROT_INLINE_OP, */
     "end",
@@ -2777,1424 +2594,1424 @@
   { /* 119 */
     /* type PARROT_INLINE_OP, */
     "band",
-    "band_p_i",
-    "Parrot_band_p_i",
+    "band_i_i_i",
+    "Parrot_band_i_i_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 120 */
     /* type PARROT_INLINE_OP, */
     "band",
-    "band_p_ic",
-    "Parrot_band_p_ic",
+    "band_i_ic_i",
+    "Parrot_band_i_ic_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 121 */
     /* type PARROT_INLINE_OP, */
     "band",
-    "band_p_p",
-    "Parrot_band_p_p",
+    "band_i_i_ic",
+    "Parrot_band_i_i_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 122 */
     /* type PARROT_INLINE_OP, */
-    "band",
-    "band_i_i_i",
-    "Parrot_band_i_i_i",
+    "bor",
+    "bor_i_i",
+    "Parrot_bor_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 123 */
     /* type PARROT_INLINE_OP, */
-    "band",
-    "band_i_ic_i",
-    "Parrot_band_i_ic_i",
+    "bor",
+    "bor_i_ic",
+    "Parrot_bor_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 124 */
     /* type PARROT_INLINE_OP, */
-    "band",
-    "band_i_i_ic",
-    "Parrot_band_i_i_ic",
+    "bor",
+    "bor_i_i_i",
+    "Parrot_bor_i_i_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 125 */
     /* type PARROT_INLINE_OP, */
-    "band",
-    "band_p_p_i",
-    "Parrot_band_p_p_i",
+    "bor",
+    "bor_i_ic_i",
+    "Parrot_bor_i_ic_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 126 */
     /* type PARROT_INLINE_OP, */
-    "band",
-    "band_p_p_ic",
-    "Parrot_band_p_p_ic",
+    "bor",
+    "bor_i_i_ic",
+    "Parrot_bor_i_i_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 127 */
     /* type PARROT_INLINE_OP, */
-    "band",
-    "band_p_p_p",
-    "Parrot_band_p_p_p",
+    "shl",
+    "shl_i_i",
+    "Parrot_shl_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 128 */
     /* type PARROT_INLINE_OP, */
-    "bands",
-    "bands_p_s",
-    "Parrot_bands_p_s",
+    "shl",
+    "shl_i_ic",
+    "Parrot_shl_i_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 129 */
     /* type PARROT_INLINE_OP, */
-    "bands",
-    "bands_p_sc",
-    "Parrot_bands_p_sc",
+    "shl",
+    "shl_i_i_i",
+    "Parrot_shl_i_i_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 130 */
     /* type PARROT_INLINE_OP, */
-    "bands",
-    "bands_p_p",
-    "Parrot_bands_p_p",
+    "shl",
+    "shl_i_ic_i",
+    "Parrot_shl_i_ic_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 131 */
     /* type PARROT_INLINE_OP, */
-    "bands",
-    "bands_s_s_s",
-    "Parrot_bands_s_s_s",
+    "shl",
+    "shl_i_i_ic",
+    "Parrot_shl_i_i_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 132 */
     /* type PARROT_INLINE_OP, */
-    "bands",
-    "bands_s_sc_s",
-    "Parrot_bands_s_sc_s",
+    "shr",
+    "shr_i_i",
+    "Parrot_shr_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 133 */
     /* type PARROT_INLINE_OP, */
-    "bands",
-    "bands_s_s_sc",
-    "Parrot_bands_s_s_sc",
+    "shr",
+    "shr_i_ic",
+    "Parrot_shr_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 134 */
     /* type PARROT_INLINE_OP, */
-    "bands",
-    "bands_p_p_s",
-    "Parrot_bands_p_p_s",
+    "shr",
+    "shr_i_i_i",
+    "Parrot_shr_i_i_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 135 */
     /* type PARROT_INLINE_OP, */
-    "bands",
-    "bands_p_p_sc",
-    "Parrot_bands_p_p_sc",
+    "shr",
+    "shr_i_ic_i",
+    "Parrot_shr_i_ic_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 136 */
     /* type PARROT_INLINE_OP, */
-    "bands",
-    "bands_p_p_p",
-    "Parrot_bands_p_p_p",
+    "shr",
+    "shr_i_i_ic",
+    "Parrot_shr_i_i_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 137 */
     /* type PARROT_INLINE_OP, */
-    "bnot",
-    "bnot_i",
-    "Parrot_bnot_i",
+    "lsr",
+    "lsr_i_i",
+    "Parrot_lsr_i_i",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 138 */
     /* type PARROT_INLINE_OP, */
-    "bnot",
-    "bnot_i_i",
-    "Parrot_bnot_i_i",
+    "lsr",
+    "lsr_i_ic",
+    "Parrot_lsr_i_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 139 */
     /* type PARROT_INLINE_OP, */
-    "bnot",
-    "bnot_p",
-    "Parrot_bnot_p",
+    "lsr",
+    "lsr_i_i_i",
+    "Parrot_lsr_i_i_i",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 140 */
     /* type PARROT_INLINE_OP, */
-    "bnot",
-    "bnot_p_p",
-    "Parrot_bnot_p_p",
+    "lsr",
+    "lsr_i_ic_i",
+    "Parrot_lsr_i_ic_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 141 */
     /* type PARROT_INLINE_OP, */
-    "bnots",
-    "bnots_s_s",
-    "Parrot_bnots_s_s",
+    "lsr",
+    "lsr_i_i_ic",
+    "Parrot_lsr_i_i_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 142 */
     /* type PARROT_INLINE_OP, */
-    "bnots",
-    "bnots_s_sc",
-    "Parrot_bnots_s_sc",
+    "bxor",
+    "bxor_i_i",
+    "Parrot_bxor_i_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 143 */
     /* type PARROT_INLINE_OP, */
-    "bnots",
-    "bnots_p",
-    "Parrot_bnots_p",
+    "bxor",
+    "bxor_i_ic",
+    "Parrot_bxor_i_ic",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 144 */
     /* type PARROT_INLINE_OP, */
-    "bnots",
-    "bnots_p_p",
-    "Parrot_bnots_p_p",
+    "bxor",
+    "bxor_i_i_i",
+    "Parrot_bxor_i_i_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 145 */
     /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_i_i",
-    "Parrot_bor_i_i",
+    "bxor",
+    "bxor_i_ic_i",
+    "Parrot_bxor_i_ic_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 146 */
     /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_i_ic",
-    "Parrot_bor_i_ic",
+    "bxor",
+    "bxor_i_i_ic",
+    "Parrot_bxor_i_i_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 147 */
     /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_p_i",
-    "Parrot_bor_p_i",
+    "eq",
+    "eq_i_i_ic",
+    "Parrot_eq_i_i_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 148 */
     /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_p_ic",
-    "Parrot_bor_p_ic",
+    "eq",
+    "eq_ic_i_ic",
+    "Parrot_eq_ic_i_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 149 */
     /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_p_p",
-    "Parrot_bor_p_p",
+    "eq",
+    "eq_i_ic_ic",
+    "Parrot_eq_i_ic_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 150 */
     /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_i_i_i",
-    "Parrot_bor_i_i_i",
+    "eq",
+    "eq_n_n_ic",
+    "Parrot_eq_n_n_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 151 */
     /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_i_ic_i",
-    "Parrot_bor_i_ic_i",
+    "eq",
+    "eq_nc_n_ic",
+    "Parrot_eq_nc_n_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 152 */
     /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_i_i_ic",
-    "Parrot_bor_i_i_ic",
+    "eq",
+    "eq_n_nc_ic",
+    "Parrot_eq_n_nc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 153 */
-    /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_p_p_i",
-    "Parrot_bor_p_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_s_s_ic",
+    "Parrot_eq_s_s_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 154 */
-    /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_p_p_ic",
-    "Parrot_bor_p_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_sc_s_ic",
+    "Parrot_eq_sc_s_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 155 */
-    /* type PARROT_INLINE_OP, */
-    "bor",
-    "bor_p_p_p",
-    "Parrot_bor_p_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_s_sc_ic",
+    "Parrot_eq_s_sc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 156 */
-    /* type PARROT_INLINE_OP, */
-    "bors",
-    "bors_p_s",
-    "Parrot_bors_p_s",
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_p_ic",
+    "Parrot_eq_p_p_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 157 */
-    /* type PARROT_INLINE_OP, */
-    "bors",
-    "bors_p_sc",
-    "Parrot_bors_p_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_i_ic",
+    "Parrot_eq_p_i_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 158 */
-    /* type PARROT_INLINE_OP, */
-    "bors",
-    "bors_p_p",
-    "Parrot_bors_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_ic_ic",
+    "Parrot_eq_p_ic_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 159 */
-    /* type PARROT_INLINE_OP, */
-    "bors",
-    "bors_s_s_s",
-    "Parrot_bors_s_s_s",
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_n_ic",
+    "Parrot_eq_p_n_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 160 */
-    /* type PARROT_INLINE_OP, */
-    "bors",
-    "bors_s_sc_s",
-    "Parrot_bors_s_sc_s",
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_nc_ic",
+    "Parrot_eq_p_nc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 161 */
-    /* type PARROT_INLINE_OP, */
-    "bors",
-    "bors_s_s_sc",
-    "Parrot_bors_s_s_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_s_ic",
+    "Parrot_eq_p_s_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 162 */
-    /* type PARROT_INLINE_OP, */
-    "bors",
-    "bors_p_p_s",
-    "Parrot_bors_p_p_s",
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_sc_ic",
+    "Parrot_eq_p_sc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 163 */
-    /* type PARROT_INLINE_OP, */
-    "bors",
-    "bors_p_p_sc",
-    "Parrot_bors_p_p_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "eq_str",
+    "eq_str_p_p_ic",
+    "Parrot_eq_str_p_p_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 164 */
-    /* type PARROT_INLINE_OP, */
-    "bors",
-    "bors_p_p_p",
-    "Parrot_bors_p_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "eq_num",
+    "eq_num_p_p_ic",
+    "Parrot_eq_num_p_p_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 165 */
-    /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_i_i",
-    "Parrot_shl_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "eq_addr",
+    "eq_addr_s_s_ic",
+    "Parrot_eq_addr_s_s_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 166 */
-    /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_i_ic",
-    "Parrot_shl_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "eq_addr",
+    "eq_addr_sc_s_ic",
+    "Parrot_eq_addr_sc_s_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 167 */
-    /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_p_i",
-    "Parrot_shl_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "eq_addr",
+    "eq_addr_s_sc_ic",
+    "Parrot_eq_addr_s_sc_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 168 */
-    /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_p_ic",
-    "Parrot_shl_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "eq_addr",
+    "eq_addr_sc_sc_ic",
+    "Parrot_eq_addr_sc_sc_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 169 */
-    /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_p_p",
-    "Parrot_shl_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "eq_addr",
+    "eq_addr_p_p_ic",
+    "Parrot_eq_addr_p_p_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 170 */
     /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_i_i_i",
-    "Parrot_shl_i_i_i",
+    "ne",
+    "ne_i_i_ic",
+    "Parrot_ne_i_i_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 171 */
     /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_i_ic_i",
-    "Parrot_shl_i_ic_i",
+    "ne",
+    "ne_ic_i_ic",
+    "Parrot_ne_ic_i_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 172 */
     /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_i_i_ic",
-    "Parrot_shl_i_i_ic",
+    "ne",
+    "ne_i_ic_ic",
+    "Parrot_ne_i_ic_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 173 */
     /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_p_p_i",
-    "Parrot_shl_p_p_i",
+    "ne",
+    "ne_n_n_ic",
+    "Parrot_ne_n_n_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 174 */
     /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_p_p_ic",
-    "Parrot_shl_p_p_ic",
+    "ne",
+    "ne_nc_n_ic",
+    "Parrot_ne_nc_n_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 175 */
     /* type PARROT_INLINE_OP, */
-    "shl",
-    "shl_p_p_p",
-    "Parrot_shl_p_p_p",
+    "ne",
+    "ne_n_nc_ic",
+    "Parrot_ne_n_nc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 176 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_i_i",
-    "Parrot_shr_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_s_s_ic",
+    "Parrot_ne_s_s_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 177 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_i_ic",
-    "Parrot_shr_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_sc_s_ic",
+    "Parrot_ne_sc_s_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 178 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_p_i",
-    "Parrot_shr_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_s_sc_ic",
+    "Parrot_ne_s_sc_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 179 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_p_ic",
-    "Parrot_shr_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_p_ic",
+    "Parrot_ne_p_p_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 180 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_p_p",
-    "Parrot_shr_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_i_ic",
+    "Parrot_ne_p_i_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 181 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_i_i_i",
-    "Parrot_shr_i_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_ic_ic",
+    "Parrot_ne_p_ic_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
   { /* 182 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_i_ic_i",
-    "Parrot_shr_i_ic_i",
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_n_ic",
+    "Parrot_ne_p_n_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 183 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_i_i_ic",
-    "Parrot_shr_i_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_nc_ic",
+    "Parrot_ne_p_nc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 184 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_p_p_i",
-    "Parrot_shr_p_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_s_ic",
+    "Parrot_ne_p_s_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 185 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_p_p_ic",
-    "Parrot_shr_p_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_sc_ic",
+    "Parrot_ne_p_sc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 186 */
-    /* type PARROT_INLINE_OP, */
-    "shr",
-    "shr_p_p_p",
-    "Parrot_shr_p_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "ne_str",
+    "ne_str_p_p_ic",
+    "Parrot_ne_str_p_p_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 187 */
-    /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_i_i",
-    "Parrot_lsr_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "ne_num",
+    "ne_num_p_p_ic",
+    "Parrot_ne_num_p_p_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 188 */
-    /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_i_ic",
-    "Parrot_lsr_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "ne_addr",
+    "ne_addr_s_s_ic",
+    "Parrot_ne_addr_s_s_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 189 */
-    /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_p_i",
-    "Parrot_lsr_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "ne_addr",
+    "ne_addr_sc_s_ic",
+    "Parrot_ne_addr_sc_s_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 190 */
-    /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_p_ic",
-    "Parrot_lsr_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "ne_addr",
+    "ne_addr_s_sc_ic",
+    "Parrot_ne_addr_s_sc_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 191 */
-    /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_p_p",
-    "Parrot_lsr_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "ne_addr",
+    "ne_addr_sc_sc_ic",
+    "Parrot_ne_addr_sc_sc_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 192 */
-    /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_i_i_i",
-    "Parrot_lsr_i_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "ne_addr",
+    "ne_addr_p_p_ic",
+    "Parrot_ne_addr_p_p_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 193 */
     /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_i_ic_i",
-    "Parrot_lsr_i_ic_i",
+    "lt",
+    "lt_i_i_ic",
+    "Parrot_lt_i_i_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 194 */
     /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_i_i_ic",
-    "Parrot_lsr_i_i_ic",
+    "lt",
+    "lt_ic_i_ic",
+    "Parrot_lt_ic_i_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 195 */
     /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_p_p_i",
-    "Parrot_lsr_p_p_i",
+    "lt",
+    "lt_i_ic_ic",
+    "Parrot_lt_i_ic_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 196 */
     /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_p_p_ic",
-    "Parrot_lsr_p_p_ic",
+    "lt",
+    "lt_n_n_ic",
+    "Parrot_lt_n_n_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 197 */
     /* type PARROT_INLINE_OP, */
-    "lsr",
-    "lsr_p_p_p",
-    "Parrot_lsr_p_p_p",
+    "lt",
+    "lt_nc_n_ic",
+    "Parrot_lt_nc_n_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 198 */
     /* type PARROT_INLINE_OP, */
-    "rot",
-    "rot_i_i_i_ic",
-    "Parrot_rot_i_i_i_ic",
+    "lt",
+    "lt_n_nc_ic",
+    "Parrot_lt_n_nc_ic",
     /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 199 */
-    /* type PARROT_INLINE_OP, */
-    "rot",
-    "rot_i_ic_i_ic",
-    "Parrot_rot_i_ic_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_s_s_ic",
+    "Parrot_lt_s_s_ic",
     /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 200 */
-    /* type PARROT_INLINE_OP, */
-    "rot",
-    "rot_i_i_ic_ic",
-    "Parrot_rot_i_i_ic_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_sc_s_ic",
+    "Parrot_lt_sc_s_ic",
     /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 201 */
-    /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_i_i",
-    "Parrot_bxor_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_s_sc_ic",
+    "Parrot_lt_s_sc_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 202 */
-    /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_i_ic",
-    "Parrot_bxor_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_p_ic",
+    "Parrot_lt_p_p_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 203 */
-    /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_p_i",
-    "Parrot_bxor_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_i_ic",
+    "Parrot_lt_p_i_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 204 */
-    /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_p_ic",
-    "Parrot_bxor_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_ic_ic",
+    "Parrot_lt_p_ic_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 205 */
-    /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_p_p",
-    "Parrot_bxor_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_n_ic",
+    "Parrot_lt_p_n_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 206 */
-    /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_i_i_i",
-    "Parrot_bxor_i_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_nc_ic",
+    "Parrot_lt_p_nc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 207 */
-    /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_i_ic_i",
-    "Parrot_bxor_i_ic_i",
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_s_ic",
+    "Parrot_lt_p_s_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 208 */
-    /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_i_i_ic",
-    "Parrot_bxor_i_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_sc_ic",
+    "Parrot_lt_p_sc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 209 */
-    /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_p_p_i",
-    "Parrot_bxor_p_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "lt_str",
+    "lt_str_p_p_ic",
+    "Parrot_lt_str_p_p_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 210 */
-    /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_p_p_ic",
-    "Parrot_bxor_p_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "lt_num",
+    "lt_num_p_p_ic",
+    "Parrot_lt_num_p_p_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 211 */
     /* type PARROT_INLINE_OP, */
-    "bxor",
-    "bxor_p_p_p",
-    "Parrot_bxor_p_p_p",
+    "le",
+    "le_i_i_ic",
+    "Parrot_le_i_i_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 212 */
     /* type PARROT_INLINE_OP, */
-    "bxors",
-    "bxors_p_s",
-    "Parrot_bxors_p_s",
+    "le",
+    "le_ic_i_ic",
+    "Parrot_le_ic_i_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 213 */
     /* type PARROT_INLINE_OP, */
-    "bxors",
-    "bxors_p_sc",
-    "Parrot_bxors_p_sc",
+    "le",
+    "le_i_ic_ic",
+    "Parrot_le_i_ic_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 214 */
     /* type PARROT_INLINE_OP, */
-    "bxors",
-    "bxors_p_p",
-    "Parrot_bxors_p_p",
+    "le",
+    "le_n_n_ic",
+    "Parrot_le_n_n_ic",
     /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 215 */
     /* type PARROT_INLINE_OP, */
-    "bxors",
-    "bxors_s_s_s",
-    "Parrot_bxors_s_s_s",
+    "le",
+    "le_nc_n_ic",
+    "Parrot_le_nc_n_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 216 */
     /* type PARROT_INLINE_OP, */
-    "bxors",
-    "bxors_s_sc_s",
-    "Parrot_bxors_s_sc_s",
+    "le",
+    "le_n_nc_ic",
+    "Parrot_le_n_nc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 217 */
-    /* type PARROT_INLINE_OP, */
-    "bxors",
-    "bxors_s_s_sc",
-    "Parrot_bxors_s_s_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_s_s_ic",
+    "Parrot_le_s_s_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
   },
   { /* 218 */
-    /* type PARROT_INLINE_OP, */
-    "bxors",
-    "bxors_p_p_s",
-    "Parrot_bxors_p_p_s",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_sc_s_ic",
+    "Parrot_le_sc_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 219 */
-    /* type PARROT_INLINE_OP, */
-    "bxors",
-    "bxors_p_p_sc",
-    "Parrot_bxors_p_p_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_s_sc_ic",
+    "Parrot_le_s_sc_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 220 */
-    /* type PARROT_INLINE_OP, */
-    "bxors",
-    "bxors_p_p_p",
-    "Parrot_bxors_p_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_p_ic",
+    "Parrot_le_p_p_ic",
     /* "",  body */
-    0,
+    PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 1 }
   },
   { /* 221 */
-    /* type PARROT_INLINE_OP, */
-    "eq",
-    "eq_i_i_ic",
-    "Parrot_eq_i_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_i_ic",
+    "Parrot_le_p_i_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 222 */
-    /* type PARROT_INLINE_OP, */
-    "eq",
-    "eq_ic_i_ic",
-    "Parrot_eq_ic_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_ic_ic",
+    "Parrot_le_p_ic_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 223 */
-    /* type PARROT_INLINE_OP, */
-    "eq",
-    "eq_i_ic_ic",
-    "Parrot_eq_i_ic_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_n_ic",
+    "Parrot_le_p_n_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 224 */
-    /* type PARROT_INLINE_OP, */
-    "eq",
-    "eq_n_n_ic",
-    "Parrot_eq_n_n_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_nc_ic",
+    "Parrot_le_p_nc_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 225 */
-    /* type PARROT_INLINE_OP, */
-    "eq",
-    "eq_nc_n_ic",
-    "Parrot_eq_nc_n_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_s_ic",
+    "Parrot_le_p_s_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 226 */
-    /* type PARROT_INLINE_OP, */
-    "eq",
-    "eq_n_nc_ic",
-    "Parrot_eq_n_nc_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_sc_ic",
+    "Parrot_le_p_sc_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 227 */
     /* type PARROT_FUNCTION_OP, */
-    "eq",
-    "eq_s_s_ic",
-    "Parrot_eq_s_s_ic",
+    "le_str",
+    "le_str_p_p_ic",
+    "Parrot_le_str_p_p_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 228 */
     /* type PARROT_FUNCTION_OP, */
-    "eq",
-    "eq_sc_s_ic",
-    "Parrot_eq_sc_s_ic",
+    "le_num",
+    "le_num_p_p_ic",
+    "Parrot_le_num_p_p_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 229 */
     /* type PARROT_FUNCTION_OP, */
-    "eq",
-    "eq_s_sc_ic",
-    "Parrot_eq_s_sc_ic",
+    "gt",
+    "gt_p_p_ic",
+    "Parrot_gt_p_p_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 230 */
     /* type PARROT_FUNCTION_OP, */
-    "eq",
-    "eq_p_p_ic",
-    "Parrot_eq_p_p_ic",
+    "gt",
+    "gt_p_i_ic",
+    "Parrot_gt_p_i_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 231 */
     /* type PARROT_FUNCTION_OP, */
-    "eq",
-    "eq_p_i_ic",
-    "Parrot_eq_p_i_ic",
+    "gt",
+    "gt_p_ic_ic",
+    "Parrot_gt_p_ic_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 232 */
     /* type PARROT_FUNCTION_OP, */
-    "eq",
-    "eq_p_ic_ic",
-    "Parrot_eq_p_ic_ic",
+    "gt",
+    "gt_p_n_ic",
+    "Parrot_gt_p_n_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 233 */
     /* type PARROT_FUNCTION_OP, */
-    "eq",
-    "eq_p_n_ic",
-    "Parrot_eq_p_n_ic",
+    "gt",
+    "gt_p_nc_ic",
+    "Parrot_gt_p_nc_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 234 */
     /* type PARROT_FUNCTION_OP, */
-    "eq",
-    "eq_p_nc_ic",
-    "Parrot_eq_p_nc_ic",
+    "gt",
+    "gt_p_s_ic",
+    "Parrot_gt_p_s_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 235 */
     /* type PARROT_FUNCTION_OP, */
-    "eq",
-    "eq_p_s_ic",
-    "Parrot_eq_p_s_ic",
+    "gt",
+    "gt_p_sc_ic",
+    "Parrot_gt_p_sc_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 236 */
     /* type PARROT_FUNCTION_OP, */
-    "eq",
-    "eq_p_sc_ic",
-    "Parrot_eq_p_sc_ic",
+    "gt_str",
+    "gt_str_p_p_ic",
+    "Parrot_gt_str_p_p_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 237 */
     /* type PARROT_FUNCTION_OP, */
-    "eq_str",
-    "eq_str_p_p_ic",
-    "Parrot_eq_str_p_p_ic",
+    "gt_num",
+    "gt_num_p_p_ic",
+    "Parrot_gt_num_p_p_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
@@ -4204,9 +4021,9 @@
   },
   { /* 238 */
     /* type PARROT_FUNCTION_OP, */
-    "eq_num",
-    "eq_num_p_p_ic",
-    "Parrot_eq_num_p_p_ic",
+    "ge",
+    "ge_p_p_ic",
+    "Parrot_ge_p_p_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
@@ -4216,1041 +4033,957 @@
   },
   { /* 239 */
     /* type PARROT_FUNCTION_OP, */
-    "eq_addr",
-    "eq_addr_s_s_ic",
-    "Parrot_eq_addr_s_s_ic",
+    "ge",
+    "ge_p_i_ic",
+    "Parrot_ge_p_i_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 240 */
     /* type PARROT_FUNCTION_OP, */
-    "eq_addr",
-    "eq_addr_sc_s_ic",
-    "Parrot_eq_addr_sc_s_ic",
+    "ge",
+    "ge_p_ic_ic",
+    "Parrot_ge_p_ic_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 241 */
     /* type PARROT_FUNCTION_OP, */
-    "eq_addr",
-    "eq_addr_s_sc_ic",
-    "Parrot_eq_addr_s_sc_ic",
+    "ge",
+    "ge_p_n_ic",
+    "Parrot_ge_p_n_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 242 */
     /* type PARROT_FUNCTION_OP, */
-    "eq_addr",
-    "eq_addr_sc_sc_ic",
-    "Parrot_eq_addr_sc_sc_ic",
+    "ge",
+    "ge_p_nc_ic",
+    "Parrot_ge_p_nc_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 243 */
     /* type PARROT_FUNCTION_OP, */
-    "eq_addr",
-    "eq_addr_p_p_ic",
-    "Parrot_eq_addr_p_p_ic",
+    "ge",
+    "ge_p_s_ic",
+    "Parrot_ge_p_s_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 244 */
-    /* type PARROT_INLINE_OP, */
-    "ne",
-    "ne_i_i_ic",
-    "Parrot_ne_i_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "ge",
+    "ge_p_sc_ic",
+    "Parrot_ge_p_sc_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 245 */
-    /* type PARROT_INLINE_OP, */
-    "ne",
-    "ne_ic_i_ic",
-    "Parrot_ne_ic_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "ge_str",
+    "ge_str_p_p_ic",
+    "Parrot_ge_str_p_p_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 246 */
-    /* type PARROT_INLINE_OP, */
-    "ne",
-    "ne_i_ic_ic",
-    "Parrot_ne_i_ic_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "ge_num",
+    "ge_num_p_p_ic",
+    "Parrot_ge_num_p_p_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 1 }
   },
   { /* 247 */
-    /* type PARROT_INLINE_OP, */
-    "ne",
-    "ne_n_n_ic",
-    "Parrot_ne_n_n_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "if_null",
+    "if_null_p_ic",
+    "Parrot_if_null_p_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
   },
   { /* 248 */
-    /* type PARROT_INLINE_OP, */
-    "ne",
-    "ne_nc_n_ic",
-    "Parrot_ne_nc_n_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "if_null",
+    "if_null_s_ic",
+    "Parrot_if_null_s_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
   },
   { /* 249 */
-    /* type PARROT_INLINE_OP, */
-    "ne",
-    "ne_n_nc_ic",
-    "Parrot_ne_n_nc_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "unless_null",
+    "unless_null_p_ic",
+    "Parrot_unless_null_p_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
   },
   { /* 250 */
     /* type PARROT_FUNCTION_OP, */
-    "ne",
-    "ne_s_s_ic",
-    "Parrot_ne_s_s_ic",
+    "unless_null",
+    "unless_null_s_ic",
+    "Parrot_unless_null_s_ic",
     /* "",  body */
     PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
   },
   { /* 251 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne",
-    "ne_sc_s_ic",
-    "Parrot_ne_sc_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_i_i",
+    "Parrot_cmp_i_i_i",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 252 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne",
-    "ne_s_sc_ic",
-    "Parrot_ne_s_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_ic_i",
+    "Parrot_cmp_i_ic_i",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 253 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne",
-    "ne_p_p_ic",
-    "Parrot_ne_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_i_ic",
+    "Parrot_cmp_i_i_ic",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 254 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne",
-    "ne_p_i_ic",
-    "Parrot_ne_p_i_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_n_n",
+    "Parrot_cmp_i_n_n",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 255 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne",
-    "ne_p_ic_ic",
-    "Parrot_ne_p_ic_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_nc_n",
+    "Parrot_cmp_i_nc_n",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 256 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne",
-    "ne_p_n_ic",
-    "Parrot_ne_p_n_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_n_nc",
+    "Parrot_cmp_i_n_nc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 257 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne",
-    "ne_p_nc_ic",
-    "Parrot_ne_p_nc_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_s_s",
+    "Parrot_cmp_i_s_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 258 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne",
-    "ne_p_s_ic",
-    "Parrot_ne_p_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_sc_s",
+    "Parrot_cmp_i_sc_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 259 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne",
-    "ne_p_sc_ic",
-    "Parrot_ne_p_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_s_sc",
+    "Parrot_cmp_i_s_sc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 260 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne_str",
-    "ne_str_p_p_ic",
-    "Parrot_ne_str_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_p",
+    "Parrot_cmp_i_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 261 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne_num",
-    "ne_num_p_p_ic",
-    "Parrot_ne_num_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_i",
+    "Parrot_cmp_i_p_i",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 262 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne_addr",
-    "ne_addr_s_s_ic",
-    "Parrot_ne_addr_s_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_ic",
+    "Parrot_cmp_i_p_ic",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 263 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne_addr",
-    "ne_addr_sc_s_ic",
-    "Parrot_ne_addr_sc_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_n",
+    "Parrot_cmp_i_p_n",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 264 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne_addr",
-    "ne_addr_s_sc_ic",
-    "Parrot_ne_addr_s_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_nc",
+    "Parrot_cmp_i_p_nc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 265 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne_addr",
-    "ne_addr_sc_sc_ic",
-    "Parrot_ne_addr_sc_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_s",
+    "Parrot_cmp_i_p_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 266 */
-    /* type PARROT_FUNCTION_OP, */
-    "ne_addr",
-    "ne_addr_p_p_ic",
-    "Parrot_ne_addr_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_sc",
+    "Parrot_cmp_i_p_sc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 267 */
     /* type PARROT_INLINE_OP, */
-    "lt",
-    "lt_i_i_ic",
-    "Parrot_lt_i_i_ic",
+    "cmp_str",
+    "cmp_str_i_p_p",
+    "Parrot_cmp_str_i_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 268 */
     /* type PARROT_INLINE_OP, */
-    "lt",
-    "lt_ic_i_ic",
-    "Parrot_lt_ic_i_ic",
+    "cmp_num",
+    "cmp_num_i_p_p",
+    "Parrot_cmp_num_i_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 269 */
     /* type PARROT_INLINE_OP, */
-    "lt",
-    "lt_i_ic_ic",
-    "Parrot_lt_i_ic_ic",
+    "cmp_pmc",
+    "cmp_pmc_p_p_p",
+    "Parrot_cmp_pmc_p_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 270 */
     /* type PARROT_INLINE_OP, */
-    "lt",
-    "lt_n_n_ic",
-    "Parrot_lt_n_n_ic",
+    "issame",
+    "issame_i_p_p",
+    "Parrot_issame_i_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 271 */
     /* type PARROT_INLINE_OP, */
-    "lt",
-    "lt_nc_n_ic",
-    "Parrot_lt_nc_n_ic",
+    "issame",
+    "issame_i_s_s",
+    "Parrot_issame_i_s_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 272 */
     /* type PARROT_INLINE_OP, */
-    "lt",
-    "lt_n_nc_ic",
-    "Parrot_lt_n_nc_ic",
+    "issame",
+    "issame_i_sc_s",
+    "Parrot_issame_i_sc_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 273 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt",
-    "lt_s_s_ic",
-    "Parrot_lt_s_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "issame",
+    "issame_i_s_sc",
+    "Parrot_issame_i_s_sc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 274 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt",
-    "lt_sc_s_ic",
-    "Parrot_lt_sc_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "issame",
+    "issame_i_sc_sc",
+    "Parrot_issame_i_sc_sc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 275 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt",
-    "lt_s_sc_ic",
-    "Parrot_lt_s_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "isntsame",
+    "isntsame_i_p_p",
+    "Parrot_isntsame_i_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 276 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt",
-    "lt_p_p_ic",
-    "Parrot_lt_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "isntsame",
+    "isntsame_i_s_s",
+    "Parrot_isntsame_i_s_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 277 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt",
-    "lt_p_i_ic",
-    "Parrot_lt_p_i_ic",
+    /* type PARROT_INLINE_OP, */
+    "isntsame",
+    "isntsame_i_sc_s",
+    "Parrot_isntsame_i_sc_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 278 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt",
-    "lt_p_ic_ic",
-    "Parrot_lt_p_ic_ic",
+    /* type PARROT_INLINE_OP, */
+    "isntsame",
+    "isntsame_i_s_sc",
+    "Parrot_isntsame_i_s_sc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 279 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt",
-    "lt_p_n_ic",
-    "Parrot_lt_p_n_ic",
+    /* type PARROT_INLINE_OP, */
+    "isntsame",
+    "isntsame_i_sc_sc",
+    "Parrot_isntsame_i_sc_sc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
-  },
-  { /* 280 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt",
-    "lt_p_nc_ic",
-    "Parrot_lt_p_nc_ic",
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 280 */
+    /* type PARROT_INLINE_OP, */
+    "istrue",
+    "istrue_i_p",
+    "Parrot_istrue_i_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 281 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt",
-    "lt_p_s_ic",
-    "Parrot_lt_p_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "isfalse",
+    "isfalse_i_p",
+    "Parrot_isfalse_i_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 282 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt",
-    "lt_p_sc_ic",
-    "Parrot_lt_p_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "isnull",
+    "isnull_i_p",
+    "Parrot_isnull_i_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 283 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt_str",
-    "lt_str_p_p_ic",
-    "Parrot_lt_str_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "isnull",
+    "isnull_i_pc",
+    "Parrot_isnull_i_pc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 284 */
-    /* type PARROT_FUNCTION_OP, */
-    "lt_num",
-    "lt_num_p_p_ic",
-    "Parrot_lt_num_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "isnull",
+    "isnull_i_s",
+    "Parrot_isnull_i_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 285 */
     /* type PARROT_INLINE_OP, */
-    "le",
-    "le_i_i_ic",
-    "Parrot_le_i_i_ic",
+    "isnull",
+    "isnull_i_sc",
+    "Parrot_isnull_i_sc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 286 */
     /* type PARROT_INLINE_OP, */
-    "le",
-    "le_ic_i_ic",
-    "Parrot_le_ic_i_ic",
+    "isgt",
+    "isgt_i_p_p",
+    "Parrot_isgt_i_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 287 */
     /* type PARROT_INLINE_OP, */
-    "le",
-    "le_i_ic_ic",
-    "Parrot_le_i_ic_ic",
+    "isge",
+    "isge_i_p_p",
+    "Parrot_isge_i_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 288 */
     /* type PARROT_INLINE_OP, */
-    "le",
-    "le_n_n_ic",
-    "Parrot_le_n_n_ic",
+    "isle",
+    "isle_i_i_i",
+    "Parrot_isle_i_i_i",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 289 */
     /* type PARROT_INLINE_OP, */
-    "le",
-    "le_nc_n_ic",
-    "Parrot_le_nc_n_ic",
+    "isle",
+    "isle_i_ic_i",
+    "Parrot_isle_i_ic_i",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 290 */
     /* type PARROT_INLINE_OP, */
-    "le",
-    "le_n_nc_ic",
-    "Parrot_le_n_nc_ic",
+    "isle",
+    "isle_i_i_ic",
+    "Parrot_isle_i_i_ic",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 291 */
-    /* type PARROT_FUNCTION_OP, */
-    "le",
-    "le_s_s_ic",
-    "Parrot_le_s_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_n_n",
+    "Parrot_isle_i_n_n",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 292 */
-    /* type PARROT_FUNCTION_OP, */
-    "le",
-    "le_sc_s_ic",
-    "Parrot_le_sc_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_nc_n",
+    "Parrot_isle_i_nc_n",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 293 */
-    /* type PARROT_FUNCTION_OP, */
-    "le",
-    "le_s_sc_ic",
-    "Parrot_le_s_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_n_nc",
+    "Parrot_isle_i_n_nc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 294 */
-    /* type PARROT_FUNCTION_OP, */
-    "le",
-    "le_p_p_ic",
-    "Parrot_le_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_s_s",
+    "Parrot_isle_i_s_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 295 */
-    /* type PARROT_FUNCTION_OP, */
-    "le",
-    "le_p_i_ic",
-    "Parrot_le_p_i_ic",
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_sc_s",
+    "Parrot_isle_i_sc_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 296 */
-    /* type PARROT_FUNCTION_OP, */
-    "le",
-    "le_p_ic_ic",
-    "Parrot_le_p_ic_ic",
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_s_sc",
+    "Parrot_isle_i_s_sc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 297 */
-    /* type PARROT_FUNCTION_OP, */
-    "le",
-    "le_p_n_ic",
-    "Parrot_le_p_n_ic",
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_p_p",
+    "Parrot_isle_i_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 298 */
-    /* type PARROT_FUNCTION_OP, */
-    "le",
-    "le_p_nc_ic",
-    "Parrot_le_p_nc_ic",
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_i_i",
+    "Parrot_islt_i_i_i",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 299 */
-    /* type PARROT_FUNCTION_OP, */
-    "le",
-    "le_p_s_ic",
-    "Parrot_le_p_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_ic_i",
+    "Parrot_islt_i_ic_i",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 300 */
-    /* type PARROT_FUNCTION_OP, */
-    "le",
-    "le_p_sc_ic",
-    "Parrot_le_p_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_i_ic",
+    "Parrot_islt_i_i_ic",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 301 */
-    /* type PARROT_FUNCTION_OP, */
-    "le_str",
-    "le_str_p_p_ic",
-    "Parrot_le_str_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_n_n",
+    "Parrot_islt_i_n_n",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 302 */
-    /* type PARROT_FUNCTION_OP, */
-    "le_num",
-    "le_num_p_p_ic",
-    "Parrot_le_num_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_nc_n",
+    "Parrot_islt_i_nc_n",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 303 */
-    /* type PARROT_FUNCTION_OP, */
-    "gt",
-    "gt_p_p_ic",
-    "Parrot_gt_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_n_nc",
+    "Parrot_islt_i_n_nc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 304 */
-    /* type PARROT_FUNCTION_OP, */
-    "gt",
-    "gt_p_i_ic",
-    "Parrot_gt_p_i_ic",
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_s_s",
+    "Parrot_islt_i_s_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 305 */
-    /* type PARROT_FUNCTION_OP, */
-    "gt",
-    "gt_p_ic_ic",
-    "Parrot_gt_p_ic_ic",
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_sc_s",
+    "Parrot_islt_i_sc_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 306 */
-    /* type PARROT_FUNCTION_OP, */
-    "gt",
-    "gt_p_n_ic",
-    "Parrot_gt_p_n_ic",
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_s_sc",
+    "Parrot_islt_i_s_sc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 307 */
-    /* type PARROT_FUNCTION_OP, */
-    "gt",
-    "gt_p_nc_ic",
-    "Parrot_gt_p_nc_ic",
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_p_p",
+    "Parrot_islt_i_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 308 */
-    /* type PARROT_FUNCTION_OP, */
-    "gt",
-    "gt_p_s_ic",
-    "Parrot_gt_p_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_i_i",
+    "Parrot_iseq_i_i_i",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 309 */
-    /* type PARROT_FUNCTION_OP, */
-    "gt",
-    "gt_p_sc_ic",
-    "Parrot_gt_p_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_ic_i",
+    "Parrot_iseq_i_ic_i",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 310 */
-    /* type PARROT_FUNCTION_OP, */
-    "gt_str",
-    "gt_str_p_p_ic",
-    "Parrot_gt_str_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_i_ic",
+    "Parrot_iseq_i_i_ic",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 311 */
-    /* type PARROT_FUNCTION_OP, */
-    "gt_num",
-    "gt_num_p_p_ic",
-    "Parrot_gt_num_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_n_n",
+    "Parrot_iseq_i_n_n",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 312 */
-    /* type PARROT_FUNCTION_OP, */
-    "ge",
-    "ge_p_p_ic",
-    "Parrot_ge_p_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_nc_n",
+    "Parrot_iseq_i_nc_n",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 313 */
-    /* type PARROT_FUNCTION_OP, */
-    "ge",
-    "ge_p_i_ic",
-    "Parrot_ge_p_i_ic",
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_n_nc",
+    "Parrot_iseq_i_n_nc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 314 */
-    /* type PARROT_FUNCTION_OP, */
-    "ge",
-    "ge_p_ic_ic",
-    "Parrot_ge_p_ic_ic",
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_s_s",
+    "Parrot_iseq_i_s_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 315 */
-    /* type PARROT_FUNCTION_OP, */
-    "ge",
-    "ge_p_n_ic",
-    "Parrot_ge_p_n_ic",
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_sc_s",
+    "Parrot_iseq_i_sc_s",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 316 */
-    /* type PARROT_FUNCTION_OP, */
-    "ge",
-    "ge_p_nc_ic",
-    "Parrot_ge_p_nc_ic",
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_s_sc",
+    "Parrot_iseq_i_s_sc",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 317 */
-    /* type PARROT_FUNCTION_OP, */
-    "ge",
-    "ge_p_s_ic",
-    "Parrot_ge_p_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_p_p",
+    "Parrot_iseq_i_p_p",
     /* "",  body */
-    PARROT_JUMP_RELATIVE,
+    0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 318 */
-    /* type PARROT_FUNCTION_OP, */
-    "ge",
-    "ge_p_sc_ic",
-    "Parrot_ge_p_sc_ic",
-    /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
-  },
-  { /* 319 */
-    /* type PARROT_FUNCTION_OP, */
-    "ge_str",
-    "ge_str_p_p_ic",
-    "Parrot_ge_str_p_p_ic",
-    /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
-  },
-  { /* 320 */
-    /* type PARROT_FUNCTION_OP, */
-    "ge_num",
-    "ge_num_p_p_ic",
-    "Parrot_ge_num_p_p_ic",
-    /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
-  },
-  { /* 321 */
-    /* type PARROT_FUNCTION_OP, */
-    "if_null",
-    "if_null_p_ic",
-    "Parrot_if_null_p_ic",
-    /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
-  },
-  { /* 322 */
-    /* type PARROT_FUNCTION_OP, */
-    "if_null",
-    "if_null_s_ic",
-    "Parrot_if_null_s_ic",
-    /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
-  },
-  { /* 323 */
-    /* type PARROT_FUNCTION_OP, */
-    "unless_null",
-    "unless_null_p_ic",
-    "Parrot_unless_null_p_ic",
-    /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
-  },
-  { /* 324 */
-    /* type PARROT_FUNCTION_OP, */
-    "unless_null",
-    "unless_null_s_ic",
-    "Parrot_unless_null_s_ic",
-    /* "",  body */
-    PARROT_JUMP_RELATIVE,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
-  },
-  { /* 325 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_i_i",
-    "Parrot_cmp_i_i_i",
+    "isne",
+    "isne_i_i_i",
+    "Parrot_isne_i_i_i",
     /* "",  body */
     0,
     4,
@@ -5258,11 +4991,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 326 */
+  { /* 319 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_ic_i",
-    "Parrot_cmp_i_ic_i",
+    "isne",
+    "isne_i_ic_i",
+    "Parrot_isne_i_ic_i",
     /* "",  body */
     0,
     4,
@@ -5270,11 +5003,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 327 */
+  { /* 320 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_i_ic",
-    "Parrot_cmp_i_i_ic",
+    "isne",
+    "isne_i_i_ic",
+    "Parrot_isne_i_i_ic",
     /* "",  body */
     0,
     4,
@@ -5282,11 +5015,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 328 */
+  { /* 321 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_n_n",
-    "Parrot_cmp_i_n_n",
+    "isne",
+    "isne_i_n_n",
+    "Parrot_isne_i_n_n",
     /* "",  body */
     0,
     4,
@@ -5294,11 +5027,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 329 */
+  { /* 322 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_nc_n",
-    "Parrot_cmp_i_nc_n",
+    "isne",
+    "isne_i_nc_n",
+    "Parrot_isne_i_nc_n",
     /* "",  body */
     0,
     4,
@@ -5306,11 +5039,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 330 */
+  { /* 323 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_n_nc",
-    "Parrot_cmp_i_n_nc",
+    "isne",
+    "isne_i_n_nc",
+    "Parrot_isne_i_n_nc",
     /* "",  body */
     0,
     4,
@@ -5318,11 +5051,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 331 */
+  { /* 324 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_s_s",
-    "Parrot_cmp_i_s_s",
+    "isne",
+    "isne_i_s_s",
+    "Parrot_isne_i_s_s",
     /* "",  body */
     0,
     4,
@@ -5330,11 +5063,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 332 */
+  { /* 325 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_sc_s",
-    "Parrot_cmp_i_sc_s",
+    "isne",
+    "isne_i_sc_s",
+    "Parrot_isne_i_sc_s",
     /* "",  body */
     0,
     4,
@@ -5342,11 +5075,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 333 */
+  { /* 326 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_s_sc",
-    "Parrot_cmp_i_s_sc",
+    "isne",
+    "isne_i_s_sc",
+    "Parrot_isne_i_s_sc",
     /* "",  body */
     0,
     4,
@@ -5354,11 +5087,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 334 */
+  { /* 327 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_p_p",
-    "Parrot_cmp_i_p_p",
+    "isne",
+    "isne_i_p_p",
+    "Parrot_isne_i_p_p",
     /* "",  body */
     0,
     4,
@@ -5366,2111 +5099,2063 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 335 */
+  { /* 328 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_p_i",
-    "Parrot_cmp_i_p_i",
+    "and",
+    "and_i_i_i",
+    "Parrot_and_i_i_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 336 */
+  { /* 329 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_p_ic",
-    "Parrot_cmp_i_p_ic",
+    "and",
+    "and_i_ic_i",
+    "Parrot_and_i_ic_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 337 */
+  { /* 330 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_p_n",
-    "Parrot_cmp_i_p_n",
+    "and",
+    "and_i_i_ic",
+    "Parrot_and_i_i_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 338 */
+  { /* 331 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_p_nc",
-    "Parrot_cmp_i_p_nc",
+    "and",
+    "and_p_p_p",
+    "Parrot_and_p_p_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 339 */
+  { /* 332 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_p_s",
-    "Parrot_cmp_i_p_s",
+    "not",
+    "not_i",
+    "Parrot_not_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
   },
-  { /* 340 */
+  { /* 333 */
     /* type PARROT_INLINE_OP, */
-    "cmp",
-    "cmp_i_p_sc",
-    "Parrot_cmp_i_p_sc",
+    "not",
+    "not_i_i",
+    "Parrot_not_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
-  { /* 341 */
+  { /* 334 */
     /* type PARROT_INLINE_OP, */
-    "cmp_str",
-    "cmp_str_i_p_p",
-    "Parrot_cmp_str_i_p_p",
+    "not",
+    "not_p",
+    "Parrot_not_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
-  { /* 342 */
+  { /* 335 */
     /* type PARROT_INLINE_OP, */
-    "cmp_num",
-    "cmp_num_i_p_p",
-    "Parrot_cmp_num_i_p_p",
+    "not",
+    "not_p_p",
+    "Parrot_not_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
-  { /* 343 */
+  { /* 336 */
     /* type PARROT_INLINE_OP, */
-    "cmp_pmc",
-    "cmp_pmc_p_p_p",
-    "Parrot_cmp_pmc_p_p_p",
+    "or",
+    "or_i_i_i",
+    "Parrot_or_i_i_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 344 */
+  { /* 337 */
     /* type PARROT_INLINE_OP, */
-    "issame",
-    "issame_i_p_p",
-    "Parrot_issame_i_p_p",
+    "or",
+    "or_i_ic_i",
+    "Parrot_or_i_ic_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 345 */
+  { /* 338 */
     /* type PARROT_INLINE_OP, */
-    "issame",
-    "issame_i_s_s",
-    "Parrot_issame_i_s_s",
+    "or",
+    "or_i_i_ic",
+    "Parrot_or_i_i_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 346 */
+  { /* 339 */
     /* type PARROT_INLINE_OP, */
-    "issame",
-    "issame_i_sc_s",
-    "Parrot_issame_i_sc_s",
+    "or",
+    "or_p_p_p",
+    "Parrot_or_p_p_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 347 */
+  { /* 340 */
     /* type PARROT_INLINE_OP, */
-    "issame",
-    "issame_i_s_sc",
-    "Parrot_issame_i_s_sc",
+    "xor",
+    "xor_i_i_i",
+    "Parrot_xor_i_i_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 348 */
+  { /* 341 */
     /* type PARROT_INLINE_OP, */
-    "issame",
-    "issame_i_sc_sc",
-    "Parrot_issame_i_sc_sc",
+    "xor",
+    "xor_i_ic_i",
+    "Parrot_xor_i_ic_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 349 */
+  { /* 342 */
     /* type PARROT_INLINE_OP, */
-    "isntsame",
-    "isntsame_i_p_p",
-    "Parrot_isntsame_i_p_p",
+    "xor",
+    "xor_i_i_ic",
+    "Parrot_xor_i_i_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 350 */
+  { /* 343 */
     /* type PARROT_INLINE_OP, */
-    "isntsame",
-    "isntsame_i_s_s",
-    "Parrot_isntsame_i_s_s",
+    "xor",
+    "xor_p_p_p",
+    "Parrot_xor_p_p_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 351 */
+  { /* 344 */
     /* type PARROT_INLINE_OP, */
-    "isntsame",
-    "isntsame_i_sc_s",
-    "Parrot_isntsame_i_sc_s",
+    "print",
+    "print_i",
+    "Parrot_print_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
-  { /* 352 */
+  { /* 345 */
     /* type PARROT_INLINE_OP, */
-    "isntsame",
-    "isntsame_i_s_sc",
-    "Parrot_isntsame_i_s_sc",
+    "print",
+    "print_ic",
+    "Parrot_print_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
-  { /* 353 */
+  { /* 346 */
     /* type PARROT_INLINE_OP, */
-    "isntsame",
-    "isntsame_i_sc_sc",
-    "Parrot_isntsame_i_sc_sc",
+    "print",
+    "print_n",
+    "Parrot_print_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
-  { /* 354 */
+  { /* 347 */
     /* type PARROT_INLINE_OP, */
-    "istrue",
-    "istrue_i_p",
-    "Parrot_istrue_i_p",
+    "print",
+    "print_nc",
+    "Parrot_print_nc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
-  { /* 355 */
+  { /* 348 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_s",
+    "Parrot_print_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 349 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_sc",
+    "Parrot_print_sc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 350 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p",
+    "Parrot_print_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 351 */
     /* type PARROT_INLINE_OP, */
-    "isfalse",
-    "isfalse_i_p",
-    "Parrot_isfalse_i_p",
+    "say",
+    "say_i",
+    "Parrot_say_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
-  { /* 356 */
+  { /* 352 */
     /* type PARROT_INLINE_OP, */
-    "isnull",
-    "isnull_i_p",
-    "Parrot_isnull_i_p",
+    "say",
+    "say_ic",
+    "Parrot_say_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
-  { /* 357 */
+  { /* 353 */
     /* type PARROT_INLINE_OP, */
-    "isnull",
-    "isnull_i_pc",
-    "Parrot_isnull_i_pc",
+    "say",
+    "say_n",
+    "Parrot_say_n",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
-  { /* 358 */
+  { /* 354 */
     /* type PARROT_INLINE_OP, */
-    "isnull",
-    "isnull_i_s",
-    "Parrot_isnull_i_s",
+    "say",
+    "say_nc",
+    "Parrot_say_nc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 355 */
+    /* type PARROT_FUNCTION_OP, */
+    "say",
+    "say_s",
+    "Parrot_say_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 356 */
+    /* type PARROT_FUNCTION_OP, */
+    "say",
+    "say_sc",
+    "Parrot_say_sc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 357 */
+    /* type PARROT_FUNCTION_OP, */
+    "say",
+    "say_p",
+    "Parrot_say_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 358 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_i",
+    "Parrot_print_p_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 359 */
-    /* type PARROT_INLINE_OP, */
-    "isnull",
-    "isnull_i_sc",
-    "Parrot_isnull_i_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_ic",
+    "Parrot_print_p_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 360 */
-    /* type PARROT_INLINE_OP, */
-    "isgt",
-    "isgt_i_p_p",
-    "Parrot_isgt_i_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_n",
+    "Parrot_print_p_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 361 */
-    /* type PARROT_INLINE_OP, */
-    "isge",
-    "isge_i_p_p",
-    "Parrot_isge_i_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_nc",
+    "Parrot_print_p_nc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 362 */
-    /* type PARROT_INLINE_OP, */
-    "isle",
-    "isle_i_i_i",
-    "Parrot_isle_i_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_s",
+    "Parrot_print_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 363 */
-    /* type PARROT_INLINE_OP, */
-    "isle",
-    "isle_i_ic_i",
-    "Parrot_isle_i_ic_i",
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_sc",
+    "Parrot_print_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 364 */
-    /* type PARROT_INLINE_OP, */
-    "isle",
-    "isle_i_i_ic",
-    "Parrot_isle_i_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_p",
+    "Parrot_print_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 365 */
     /* type PARROT_INLINE_OP, */
-    "isle",
-    "isle_i_n_n",
-    "Parrot_isle_i_n_n",
+    "getstdin",
+    "getstdin_p",
+    "Parrot_getstdin_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 366 */
     /* type PARROT_INLINE_OP, */
-    "isle",
-    "isle_i_nc_n",
-    "Parrot_isle_i_nc_n",
+    "getstdout",
+    "getstdout_p",
+    "Parrot_getstdout_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 367 */
     /* type PARROT_INLINE_OP, */
-    "isle",
-    "isle_i_n_nc",
-    "Parrot_isle_i_n_nc",
+    "getstderr",
+    "getstderr_p",
+    "Parrot_getstderr_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 368 */
     /* type PARROT_INLINE_OP, */
-    "isle",
-    "isle_i_s_s",
-    "Parrot_isle_i_s_s",
+    "abs",
+    "abs_i",
+    "Parrot_abs_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
   },
   { /* 369 */
     /* type PARROT_INLINE_OP, */
-    "isle",
-    "isle_i_sc_s",
-    "Parrot_isle_i_sc_s",
+    "abs",
+    "abs_n",
+    "Parrot_abs_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
   },
   { /* 370 */
     /* type PARROT_INLINE_OP, */
-    "isle",
-    "isle_i_s_sc",
-    "Parrot_isle_i_s_sc",
+    "abs",
+    "abs_i_i",
+    "Parrot_abs_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 371 */
     /* type PARROT_INLINE_OP, */
-    "isle",
-    "isle_i_p_p",
-    "Parrot_isle_i_p_p",
+    "abs",
+    "abs_n_n",
+    "Parrot_abs_n_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 372 */
     /* type PARROT_INLINE_OP, */
-    "islt",
-    "islt_i_i_i",
-    "Parrot_islt_i_i_i",
+    "abs",
+    "abs_p",
+    "Parrot_abs_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
   { /* 373 */
     /* type PARROT_INLINE_OP, */
-    "islt",
-    "islt_i_ic_i",
-    "Parrot_islt_i_ic_i",
+    "abs",
+    "abs_p_p",
+    "Parrot_abs_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 374 */
     /* type PARROT_INLINE_OP, */
-    "islt",
-    "islt_i_i_ic",
-    "Parrot_islt_i_i_ic",
+    "add",
+    "add_i_i",
+    "Parrot_add_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 375 */
     /* type PARROT_INLINE_OP, */
-    "islt",
-    "islt_i_n_n",
-    "Parrot_islt_i_n_n",
+    "add",
+    "add_i_ic",
+    "Parrot_add_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 376 */
     /* type PARROT_INLINE_OP, */
-    "islt",
-    "islt_i_nc_n",
-    "Parrot_islt_i_nc_n",
+    "add",
+    "add_n_n",
+    "Parrot_add_n_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 377 */
     /* type PARROT_INLINE_OP, */
-    "islt",
-    "islt_i_n_nc",
-    "Parrot_islt_i_n_nc",
+    "add",
+    "add_n_nc",
+    "Parrot_add_n_nc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 378 */
     /* type PARROT_INLINE_OP, */
-    "islt",
-    "islt_i_s_s",
-    "Parrot_islt_i_s_s",
+    "add",
+    "add_p_p",
+    "Parrot_add_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 379 */
     /* type PARROT_INLINE_OP, */
-    "islt",
-    "islt_i_sc_s",
-    "Parrot_islt_i_sc_s",
+    "add",
+    "add_p_i",
+    "Parrot_add_p_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 380 */
     /* type PARROT_INLINE_OP, */
-    "islt",
-    "islt_i_s_sc",
-    "Parrot_islt_i_s_sc",
+    "add",
+    "add_p_ic",
+    "Parrot_add_p_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 381 */
     /* type PARROT_INLINE_OP, */
-    "islt",
-    "islt_i_p_p",
-    "Parrot_islt_i_p_p",
+    "add",
+    "add_p_n",
+    "Parrot_add_p_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 382 */
     /* type PARROT_INLINE_OP, */
-    "iseq",
-    "iseq_i_i_i",
-    "Parrot_iseq_i_i_i",
+    "add",
+    "add_p_nc",
+    "Parrot_add_p_nc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 383 */
     /* type PARROT_INLINE_OP, */
-    "iseq",
-    "iseq_i_ic_i",
-    "Parrot_iseq_i_ic_i",
+    "add",
+    "add_i_i_i",
+    "Parrot_add_i_i_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 384 */
     /* type PARROT_INLINE_OP, */
-    "iseq",
-    "iseq_i_i_ic",
-    "Parrot_iseq_i_i_ic",
+    "add",
+    "add_i_ic_i",
+    "Parrot_add_i_ic_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 385 */
     /* type PARROT_INLINE_OP, */
-    "iseq",
-    "iseq_i_n_n",
-    "Parrot_iseq_i_n_n",
+    "add",
+    "add_i_i_ic",
+    "Parrot_add_i_i_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 386 */
     /* type PARROT_INLINE_OP, */
-    "iseq",
-    "iseq_i_nc_n",
-    "Parrot_iseq_i_nc_n",
+    "add",
+    "add_n_n_n",
+    "Parrot_add_n_n_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 387 */
     /* type PARROT_INLINE_OP, */
-    "iseq",
-    "iseq_i_n_nc",
-    "Parrot_iseq_i_n_nc",
+    "add",
+    "add_n_nc_n",
+    "Parrot_add_n_nc_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 388 */
     /* type PARROT_INLINE_OP, */
-    "iseq",
-    "iseq_i_s_s",
-    "Parrot_iseq_i_s_s",
+    "add",
+    "add_n_n_nc",
+    "Parrot_add_n_n_nc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 389 */
     /* type PARROT_INLINE_OP, */
-    "iseq",
-    "iseq_i_sc_s",
-    "Parrot_iseq_i_sc_s",
+    "add",
+    "add_p_p_p",
+    "Parrot_add_p_p_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 390 */
     /* type PARROT_INLINE_OP, */
-    "iseq",
-    "iseq_i_s_sc",
-    "Parrot_iseq_i_s_sc",
+    "add",
+    "add_p_p_i",
+    "Parrot_add_p_p_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 391 */
     /* type PARROT_INLINE_OP, */
-    "iseq",
-    "iseq_i_p_p",
-    "Parrot_iseq_i_p_p",
+    "add",
+    "add_p_p_ic",
+    "Parrot_add_p_p_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 392 */
     /* type PARROT_INLINE_OP, */
-    "isne",
-    "isne_i_i_i",
-    "Parrot_isne_i_i_i",
+    "add",
+    "add_p_p_n",
+    "Parrot_add_p_p_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 393 */
     /* type PARROT_INLINE_OP, */
-    "isne",
-    "isne_i_ic_i",
-    "Parrot_isne_i_ic_i",
+    "add",
+    "add_p_p_nc",
+    "Parrot_add_p_p_nc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 394 */
     /* type PARROT_INLINE_OP, */
-    "isne",
-    "isne_i_i_ic",
-    "Parrot_isne_i_i_ic",
+    "dec",
+    "dec_i",
+    "Parrot_dec_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
   },
   { /* 395 */
     /* type PARROT_INLINE_OP, */
-    "isne",
-    "isne_i_n_n",
-    "Parrot_isne_i_n_n",
+    "dec",
+    "dec_n",
+    "Parrot_dec_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
   },
   { /* 396 */
     /* type PARROT_INLINE_OP, */
-    "isne",
-    "isne_i_nc_n",
-    "Parrot_isne_i_nc_n",
+    "dec",
+    "dec_p",
+    "Parrot_dec_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
   { /* 397 */
     /* type PARROT_INLINE_OP, */
-    "isne",
-    "isne_i_n_nc",
-    "Parrot_isne_i_n_nc",
+    "div",
+    "div_i_i",
+    "Parrot_div_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 398 */
     /* type PARROT_INLINE_OP, */
-    "isne",
-    "isne_i_s_s",
-    "Parrot_isne_i_s_s",
+    "div",
+    "div_i_ic",
+    "Parrot_div_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 399 */
     /* type PARROT_INLINE_OP, */
-    "isne",
-    "isne_i_sc_s",
-    "Parrot_isne_i_sc_s",
+    "div",
+    "div_n_n",
+    "Parrot_div_n_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 400 */
     /* type PARROT_INLINE_OP, */
-    "isne",
-    "isne_i_s_sc",
-    "Parrot_isne_i_s_sc",
+    "div",
+    "div_n_nc",
+    "Parrot_div_n_nc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 401 */
     /* type PARROT_INLINE_OP, */
-    "isne",
-    "isne_i_p_p",
-    "Parrot_isne_i_p_p",
+    "div",
+    "div_p_p",
+    "Parrot_div_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 402 */
     /* type PARROT_INLINE_OP, */
-    "and",
-    "and_i_i_i",
-    "Parrot_and_i_i_i",
+    "div",
+    "div_p_i",
+    "Parrot_div_p_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 403 */
     /* type PARROT_INLINE_OP, */
-    "and",
-    "and_i_ic_i",
-    "Parrot_and_i_ic_i",
+    "div",
+    "div_p_ic",
+    "Parrot_div_p_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 404 */
     /* type PARROT_INLINE_OP, */
-    "and",
-    "and_i_i_ic",
-    "Parrot_and_i_i_ic",
+    "div",
+    "div_p_n",
+    "Parrot_div_p_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 405 */
     /* type PARROT_INLINE_OP, */
-    "and",
-    "and_p_p_p",
-    "Parrot_and_p_p_p",
+    "div",
+    "div_p_nc",
+    "Parrot_div_p_nc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 406 */
     /* type PARROT_INLINE_OP, */
-    "not",
-    "not_i",
-    "Parrot_not_i",
+    "div",
+    "div_i_i_i",
+    "Parrot_div_i_i_i",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 407 */
     /* type PARROT_INLINE_OP, */
-    "not",
-    "not_i_i",
-    "Parrot_not_i_i",
+    "div",
+    "div_i_ic_i",
+    "Parrot_div_i_ic_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 408 */
     /* type PARROT_INLINE_OP, */
-    "not",
-    "not_p",
-    "Parrot_not_p",
+    "div",
+    "div_i_i_ic",
+    "Parrot_div_i_i_ic",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 409 */
     /* type PARROT_INLINE_OP, */
-    "not",
-    "not_p_p",
-    "Parrot_not_p_p",
+    "div",
+    "div_i_ic_ic",
+    "Parrot_div_i_ic_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 410 */
     /* type PARROT_INLINE_OP, */
-    "or",
-    "or_i_i_i",
-    "Parrot_or_i_i_i",
+    "div",
+    "div_n_n_n",
+    "Parrot_div_n_n_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 411 */
     /* type PARROT_INLINE_OP, */
-    "or",
-    "or_i_ic_i",
-    "Parrot_or_i_ic_i",
+    "div",
+    "div_n_nc_n",
+    "Parrot_div_n_nc_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 412 */
     /* type PARROT_INLINE_OP, */
-    "or",
-    "or_i_i_ic",
-    "Parrot_or_i_i_ic",
+    "div",
+    "div_n_n_nc",
+    "Parrot_div_n_n_nc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 413 */
     /* type PARROT_INLINE_OP, */
-    "or",
-    "or_p_p_p",
-    "Parrot_or_p_p_p",
+    "div",
+    "div_n_nc_nc",
+    "Parrot_div_n_nc_nc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 414 */
     /* type PARROT_INLINE_OP, */
-    "xor",
-    "xor_i_i_i",
-    "Parrot_xor_i_i_i",
+    "div",
+    "div_p_p_p",
+    "Parrot_div_p_p_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 415 */
     /* type PARROT_INLINE_OP, */
-    "xor",
-    "xor_i_ic_i",
-    "Parrot_xor_i_ic_i",
+    "div",
+    "div_p_p_i",
+    "Parrot_div_p_p_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 416 */
     /* type PARROT_INLINE_OP, */
-    "xor",
-    "xor_i_i_ic",
-    "Parrot_xor_i_i_ic",
+    "div",
+    "div_p_p_ic",
+    "Parrot_div_p_p_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 417 */
     /* type PARROT_INLINE_OP, */
-    "xor",
-    "xor_p_p_p",
-    "Parrot_xor_p_p_p",
+    "div",
+    "div_p_p_n",
+    "Parrot_div_p_p_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 418 */
-    /* type PARROT_FUNCTION_OP, */
-    "debug_init",
-    "debug_init",
-    "Parrot_debug_init",
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_p_nc",
+    "Parrot_div_p_p_nc",
     /* "",  body */
     0,
-    1,
-    { (arg_type_t) 0 },
-    { (arg_dir_t) 0 },
-    { 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 419 */
-    /* type PARROT_FUNCTION_OP, */
-    "debug_load",
-    "debug_load_sc",
-    "Parrot_debug_load_sc",
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_i_i",
+    "Parrot_fdiv_i_i",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 420 */
-    /* type PARROT_FUNCTION_OP, */
-    "debug_break",
-    "debug_break",
-    "Parrot_debug_break",
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_i_ic",
+    "Parrot_fdiv_i_ic",
     /* "",  body */
     0,
-    1,
-    { (arg_type_t) 0 },
-    { (arg_dir_t) 0 },
-    { 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 421 */
-    /* type PARROT_FUNCTION_OP, */
-    "debug_print",
-    "debug_print",
-    "Parrot_debug_print",
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_n_n",
+    "Parrot_fdiv_n_n",
     /* "",  body */
     0,
-    1,
-    { (arg_type_t) 0 },
-    { (arg_dir_t) 0 },
-    { 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 422 */
-    /* type PARROT_FUNCTION_OP, */
-    "backtrace",
-    "backtrace",
-    "Parrot_backtrace",
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_n_nc",
+    "Parrot_fdiv_n_nc",
     /* "",  body */
     0,
-    1,
-    { (arg_type_t) 0 },
-    { (arg_dir_t) 0 },
-    { 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 423 */
     /* type PARROT_INLINE_OP, */
-    "getline",
-    "getline_i",
-    "Parrot_getline_i",
+    "fdiv",
+    "fdiv_p_p",
+    "Parrot_fdiv_p_p",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 424 */
     /* type PARROT_INLINE_OP, */
-    "getfile",
-    "getfile_s",
-    "Parrot_getfile_s",
+    "fdiv",
+    "fdiv_p_i",
+    "Parrot_fdiv_p_i",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 425 */
     /* type PARROT_INLINE_OP, */
-    "close",
-    "close_p",
-    "Parrot_close_p",
+    "fdiv",
+    "fdiv_p_ic",
+    "Parrot_fdiv_p_ic",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 426 */
     /* type PARROT_INLINE_OP, */
-    "fdopen",
-    "fdopen_p_i_s",
-    "Parrot_fdopen_p_i_s",
+    "fdiv",
+    "fdiv_p_n",
+    "Parrot_fdiv_p_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 427 */
     /* type PARROT_INLINE_OP, */
-    "fdopen",
-    "fdopen_p_ic_s",
-    "Parrot_fdopen_p_ic_s",
+    "fdiv",
+    "fdiv_p_nc",
+    "Parrot_fdiv_p_nc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 428 */
     /* type PARROT_INLINE_OP, */
-    "fdopen",
-    "fdopen_p_i_sc",
-    "Parrot_fdopen_p_i_sc",
+    "fdiv",
+    "fdiv_i_i_i",
+    "Parrot_fdiv_i_i_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 429 */
     /* type PARROT_INLINE_OP, */
-    "fdopen",
-    "fdopen_p_ic_sc",
-    "Parrot_fdopen_p_ic_sc",
+    "fdiv",
+    "fdiv_i_ic_i",
+    "Parrot_fdiv_i_ic_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_SC },
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 430 */
     /* type PARROT_INLINE_OP, */
-    "getstdin",
-    "getstdin_p",
-    "Parrot_getstdin_p",
+    "fdiv",
+    "fdiv_i_i_ic",
+    "Parrot_fdiv_i_i_ic",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
-  },
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
   { /* 431 */
     /* type PARROT_INLINE_OP, */
-    "getstdout",
-    "getstdout_p",
-    "Parrot_getstdout_p",
+    "fdiv",
+    "fdiv_n_n_n",
+    "Parrot_fdiv_n_n_n",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 432 */
     /* type PARROT_INLINE_OP, */
-    "getstderr",
-    "getstderr_p",
-    "Parrot_getstderr_p",
+    "fdiv",
+    "fdiv_n_nc_n",
+    "Parrot_fdiv_n_nc_n",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 433 */
     /* type PARROT_INLINE_OP, */
-    "setstdin",
-    "setstdin_p",
-    "Parrot_setstdin_p",
+    "fdiv",
+    "fdiv_n_n_nc",
+    "Parrot_fdiv_n_n_nc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 434 */
     /* type PARROT_INLINE_OP, */
-    "setstdout",
-    "setstdout_p",
-    "Parrot_setstdout_p",
+    "fdiv",
+    "fdiv_p_p_p",
+    "Parrot_fdiv_p_p_p",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 435 */
     /* type PARROT_INLINE_OP, */
-    "setstderr",
-    "setstderr_p",
-    "Parrot_setstderr_p",
+    "fdiv",
+    "fdiv_p_p_i",
+    "Parrot_fdiv_p_p_i",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 436 */
     /* type PARROT_INLINE_OP, */
-    "open",
-    "open_p_s_s",
-    "Parrot_open_p_s_s",
+    "fdiv",
+    "fdiv_p_p_ic",
+    "Parrot_fdiv_p_p_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 437 */
     /* type PARROT_INLINE_OP, */
-    "open",
-    "open_p_sc_s",
-    "Parrot_open_p_sc_s",
+    "fdiv",
+    "fdiv_p_p_n",
+    "Parrot_fdiv_p_p_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 438 */
     /* type PARROT_INLINE_OP, */
-    "open",
-    "open_p_s_sc",
-    "Parrot_open_p_s_sc",
+    "fdiv",
+    "fdiv_p_p_nc",
+    "Parrot_fdiv_p_p_nc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 439 */
     /* type PARROT_INLINE_OP, */
-    "open",
-    "open_p_sc_sc",
-    "Parrot_open_p_sc_sc",
+    "ceil",
+    "ceil_n",
+    "Parrot_ceil_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
   },
   { /* 440 */
     /* type PARROT_INLINE_OP, */
-    "open",
-    "open_p_s",
-    "Parrot_open_p_s",
+    "ceil",
+    "ceil_i_n",
+    "Parrot_ceil_i_n",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARG_I, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 441 */
     /* type PARROT_INLINE_OP, */
-    "open",
-    "open_p_sc",
-    "Parrot_open_p_sc",
+    "ceil",
+    "ceil_n_n",
+    "Parrot_ceil_n_n",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 442 */
     /* type PARROT_INLINE_OP, */
-    "print",
-    "print_i",
-    "Parrot_print_i",
+    "floor",
+    "floor_n",
+    "Parrot_floor_n",
     /* "",  body */
     0,
     2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_IN },
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
     { 0 }
   },
   { /* 443 */
     /* type PARROT_INLINE_OP, */
-    "print",
-    "print_ic",
-    "Parrot_print_ic",
+    "floor",
+    "floor_i_n",
+    "Parrot_floor_i_n",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 444 */
     /* type PARROT_INLINE_OP, */
-    "print",
-    "print_n",
-    "Parrot_print_n",
+    "floor",
+    "floor_n_n",
+    "Parrot_floor_n_n",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 445 */
     /* type PARROT_INLINE_OP, */
-    "print",
-    "print_nc",
-    "Parrot_print_nc",
+    "inc",
+    "inc_i",
+    "Parrot_inc_i",
     /* "",  body */
     0,
     2,
-    { PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN },
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
     { 0 }
   },
   { /* 446 */
-    /* type PARROT_FUNCTION_OP, */
-    "print",
-    "print_s",
-    "Parrot_print_s",
+    /* type PARROT_INLINE_OP, */
+    "inc",
+    "inc_n",
+    "Parrot_inc_n",
     /* "",  body */
     0,
     2,
-    { PARROT_ARG_S },
-    { PARROT_ARGDIR_IN },
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
     { 0 }
   },
   { /* 447 */
-    /* type PARROT_FUNCTION_OP, */
-    "print",
-    "print_sc",
-    "Parrot_print_sc",
+    /* type PARROT_INLINE_OP, */
+    "inc",
+    "inc_p",
+    "Parrot_inc_p",
     /* "",  body */
     0,
     2,
-    { PARROT_ARG_SC },
+    { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
     { 0 }
   },
   { /* 448 */
     /* type PARROT_FUNCTION_OP, */
-    "print",
-    "print_p",
-    "Parrot_print_p",
+    "mod",
+    "mod_i_i",
+    "Parrot_mod_i_i",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 449 */
-    /* type PARROT_INLINE_OP, */
-    "say",
-    "say_i",
-    "Parrot_say_i",
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_i_ic",
+    "Parrot_mod_i_ic",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 450 */
-    /* type PARROT_INLINE_OP, */
-    "say",
-    "say_ic",
-    "Parrot_say_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_n_n",
+    "Parrot_mod_n_n",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 451 */
-    /* type PARROT_INLINE_OP, */
-    "say",
-    "say_n",
-    "Parrot_say_n",
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_n_nc",
+    "Parrot_mod_n_nc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 452 */
     /* type PARROT_INLINE_OP, */
-    "say",
-    "say_nc",
-    "Parrot_say_nc",
+    "mod",
+    "mod_p_p",
+    "Parrot_mod_p_p",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 453 */
-    /* type PARROT_FUNCTION_OP, */
-    "say",
-    "say_s",
-    "Parrot_say_s",
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_i",
+    "Parrot_mod_p_i",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_S },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 454 */
-    /* type PARROT_FUNCTION_OP, */
-    "say",
-    "say_sc",
-    "Parrot_say_sc",
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_ic",
+    "Parrot_mod_p_ic",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 455 */
-    /* type PARROT_FUNCTION_OP, */
-    "say",
-    "say_p",
-    "Parrot_say_p",
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_n",
+    "Parrot_mod_p_n",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 456 */
-    /* type PARROT_FUNCTION_OP, */
-    "printerr",
-    "printerr_i",
-    "Parrot_printerr_i",
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_nc",
+    "Parrot_mod_p_nc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 457 */
     /* type PARROT_FUNCTION_OP, */
-    "printerr",
-    "printerr_ic",
-    "Parrot_printerr_ic",
+    "mod",
+    "mod_i_i_i",
+    "Parrot_mod_i_i_i",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 458 */
     /* type PARROT_FUNCTION_OP, */
-    "printerr",
-    "printerr_n",
-    "Parrot_printerr_n",
+    "mod",
+    "mod_i_ic_i",
+    "Parrot_mod_i_ic_i",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 459 */
     /* type PARROT_FUNCTION_OP, */
-    "printerr",
-    "printerr_nc",
-    "Parrot_printerr_nc",
+    "mod",
+    "mod_i_i_ic",
+    "Parrot_mod_i_i_ic",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 460 */
     /* type PARROT_FUNCTION_OP, */
-    "printerr",
-    "printerr_s",
-    "Parrot_printerr_s",
+    "mod",
+    "mod_n_n_n",
+    "Parrot_mod_n_n_n",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_S },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 461 */
     /* type PARROT_FUNCTION_OP, */
-    "printerr",
-    "printerr_sc",
-    "Parrot_printerr_sc",
+    "mod",
+    "mod_n_nc_n",
+    "Parrot_mod_n_nc_n",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 462 */
     /* type PARROT_FUNCTION_OP, */
-    "printerr",
-    "printerr_p",
-    "Parrot_printerr_p",
+    "mod",
+    "mod_n_n_nc",
+    "Parrot_mod_n_n_nc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 463 */
-    /* type PARROT_FUNCTION_OP, */
-    "print",
-    "print_p_i",
-    "Parrot_print_p_i",
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p_p",
+    "Parrot_mod_p_p_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 464 */
-    /* type PARROT_FUNCTION_OP, */
-    "print",
-    "print_p_ic",
-    "Parrot_print_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p_i",
+    "Parrot_mod_p_p_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 465 */
-    /* type PARROT_FUNCTION_OP, */
-    "print",
-    "print_p_n",
-    "Parrot_print_p_n",
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p_ic",
+    "Parrot_mod_p_p_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 466 */
-    /* type PARROT_FUNCTION_OP, */
-    "print",
-    "print_p_nc",
-    "Parrot_print_p_nc",
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p_n",
+    "Parrot_mod_p_p_n",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 467 */
-    /* type PARROT_FUNCTION_OP, */
-    "print",
-    "print_p_s",
-    "Parrot_print_p_s",
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p_nc",
+    "Parrot_mod_p_p_nc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 468 */
-    /* type PARROT_FUNCTION_OP, */
-    "print",
-    "print_p_sc",
-    "Parrot_print_p_sc",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_i_i",
+    "Parrot_mul_i_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 469 */
-    /* type PARROT_FUNCTION_OP, */
-    "print",
-    "print_p_p",
-    "Parrot_print_p_p",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_i_ic",
+    "Parrot_mul_i_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 470 */
-    /* type PARROT_FUNCTION_OP, */
-    "read",
-    "read_s_i",
-    "Parrot_read_s_i",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_n_n",
+    "Parrot_mul_n_n",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 471 */
-    /* type PARROT_FUNCTION_OP, */
-    "read",
-    "read_s_ic",
-    "Parrot_read_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_n_nc",
+    "Parrot_mul_n_nc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 472 */
-    /* type PARROT_FUNCTION_OP, */
-    "read",
-    "read_s_p_i",
-    "Parrot_read_s_p_i",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p",
+    "Parrot_mul_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
   { /* 473 */
-    /* type PARROT_FUNCTION_OP, */
-    "read",
-    "read_s_p_ic",
-    "Parrot_read_s_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_i",
+    "Parrot_mul_p_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 474 */
     /* type PARROT_INLINE_OP, */
-    "readline",
-    "readline_s_p",
-    "Parrot_readline_s_p",
+    "mul",
+    "mul_p_ic",
+    "Parrot_mul_p_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 475 */
-    /* type PARROT_FUNCTION_OP, */
-    "peek",
-    "peek_s",
-    "Parrot_peek_s",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_n",
+    "Parrot_mul_p_n",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 476 */
-    /* type PARROT_FUNCTION_OP, */
-    "peek",
-    "peek_s_p",
-    "Parrot_peek_s_p",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_nc",
+    "Parrot_mul_p_nc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 477 */
-    /* type PARROT_FUNCTION_OP, */
-    "stat",
-    "stat_i_s_i",
-    "Parrot_stat_i_s_i",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_i_i_i",
+    "Parrot_mul_i_i_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 478 */
-    /* type PARROT_FUNCTION_OP, */
-    "stat",
-    "stat_i_sc_i",
-    "Parrot_stat_i_sc_i",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_i_ic_i",
+    "Parrot_mul_i_ic_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 479 */
-    /* type PARROT_FUNCTION_OP, */
-    "stat",
-    "stat_i_s_ic",
-    "Parrot_stat_i_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_i_i_ic",
+    "Parrot_mul_i_i_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 480 */
-    /* type PARROT_FUNCTION_OP, */
-    "stat",
-    "stat_i_sc_ic",
-    "Parrot_stat_i_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_n_n_n",
+    "Parrot_mul_n_n_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 481 */
-    /* type PARROT_FUNCTION_OP, */
-    "stat",
-    "stat_i_i_i",
-    "Parrot_stat_i_i_i",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_n_nc_n",
+    "Parrot_mul_n_nc_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 482 */
-    /* type PARROT_FUNCTION_OP, */
-    "stat",
-    "stat_i_ic_i",
-    "Parrot_stat_i_ic_i",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_n_n_nc",
+    "Parrot_mul_n_n_nc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 483 */
-    /* type PARROT_FUNCTION_OP, */
-    "stat",
-    "stat_i_i_ic",
-    "Parrot_stat_i_i_ic",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p_p",
+    "Parrot_mul_p_p_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 484 */
-    /* type PARROT_FUNCTION_OP, */
-    "stat",
-    "stat_i_ic_ic",
-    "Parrot_stat_i_ic_ic",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p_i",
+    "Parrot_mul_p_p_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 485 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_i_i",
-    "Parrot_seek_p_i_i",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p_ic",
+    "Parrot_mul_p_p_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 486 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_ic_i",
-    "Parrot_seek_p_ic_i",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p_n",
+    "Parrot_mul_p_p_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 487 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_i_ic",
-    "Parrot_seek_p_i_ic",
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p_nc",
+    "Parrot_mul_p_p_nc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 488 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_ic_ic",
-    "Parrot_seek_p_ic_ic",
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_i",
+    "Parrot_neg_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
   },
   { /* 489 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_i_i_i",
-    "Parrot_seek_p_i_i_i",
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_n",
+    "Parrot_neg_n",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
   },
   { /* 490 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_ic_i_i",
-    "Parrot_seek_p_ic_i_i",
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_p",
+    "Parrot_neg_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
   { /* 491 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_i_ic_i",
-    "Parrot_seek_p_i_ic_i",
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_i_i",
+    "Parrot_neg_i_i",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 492 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_ic_ic_i",
-    "Parrot_seek_p_ic_ic_i",
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_n_n",
+    "Parrot_neg_n_n",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 493 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_i_i_ic",
-    "Parrot_seek_p_i_i_ic",
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_p_p",
+    "Parrot_neg_p_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 494 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_ic_i_ic",
-    "Parrot_seek_p_ic_i_ic",
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_i_i",
+    "Parrot_sub_i_i",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 495 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_i_ic_ic",
-    "Parrot_seek_p_i_ic_ic",
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_i_ic",
+    "Parrot_sub_i_ic",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 496 */
-    /* type PARROT_FUNCTION_OP, */
-    "seek",
-    "seek_p_ic_ic_ic",
-    "Parrot_seek_p_ic_ic_ic",
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_n_n",
+    "Parrot_sub_n_n",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 497 */
-    /* type PARROT_FUNCTION_OP, */
-    "tell",
-    "tell_i_p",
-    "Parrot_tell_i_p",
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_n_nc",
+    "Parrot_sub_n_nc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 498 */
-    /* type PARROT_FUNCTION_OP, */
-    "tell",
-    "tell_i_i_p",
-    "Parrot_tell_i_i_p",
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_p",
+    "Parrot_sub_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 499 */
     /* type PARROT_INLINE_OP, */
-    "abs",
-    "abs_i",
-    "Parrot_abs_i",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
-  },
-  { /* 500 */
-    /* type PARROT_INLINE_OP, */
-    "abs",
-    "abs_n",
-    "Parrot_abs_n",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
-  },
-  { /* 501 */
-    /* type PARROT_INLINE_OP, */
-    "abs",
-    "abs_i_i",
-    "Parrot_abs_i_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 502 */
-    /* type PARROT_INLINE_OP, */
-    "abs",
-    "abs_n_n",
-    "Parrot_abs_n_n",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 503 */
-    /* type PARROT_INLINE_OP, */
-    "abs",
-    "abs_p",
-    "Parrot_abs_p",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
-  },
-  { /* 504 */
-    /* type PARROT_INLINE_OP, */
-    "abs",
-    "abs_p_p",
-    "Parrot_abs_p_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 505 */
-    /* type PARROT_INLINE_OP, */
-    "add",
-    "add_i_i",
-    "Parrot_add_i_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 506 */
-    /* type PARROT_INLINE_OP, */
-    "add",
-    "add_i_ic",
-    "Parrot_add_i_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 507 */
-    /* type PARROT_INLINE_OP, */
-    "add",
-    "add_n_n",
-    "Parrot_add_n_n",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 508 */
-    /* type PARROT_INLINE_OP, */
-    "add",
-    "add_n_nc",
-    "Parrot_add_n_nc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 509 */
-    /* type PARROT_INLINE_OP, */
-    "add",
-    "add_p_p",
-    "Parrot_add_p_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 510 */
-    /* type PARROT_INLINE_OP, */
-    "add",
-    "add_p_i",
-    "Parrot_add_p_i",
+    "sub",
+    "sub_p_i",
+    "Parrot_sub_p_i",
     /* "",  body */
     0,
     3,
@@ -7478,11 +7163,11 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 511 */
+  { /* 500 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_p_ic",
-    "Parrot_add_p_ic",
+    "sub",
+    "sub_p_ic",
+    "Parrot_sub_p_ic",
     /* "",  body */
     0,
     3,
@@ -7490,11 +7175,11 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 512 */
+  { /* 501 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_p_n",
-    "Parrot_add_p_n",
+    "sub",
+    "sub_p_n",
+    "Parrot_sub_p_n",
     /* "",  body */
     0,
     3,
@@ -7502,11 +7187,11 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 513 */
+  { /* 502 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_p_nc",
-    "Parrot_add_p_nc",
+    "sub",
+    "sub_p_nc",
+    "Parrot_sub_p_nc",
     /* "",  body */
     0,
     3,
@@ -7514,11 +7199,11 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 514 */
+  { /* 503 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_i_i_i",
-    "Parrot_add_i_i_i",
+    "sub",
+    "sub_i_i_i",
+    "Parrot_sub_i_i_i",
     /* "",  body */
     0,
     4,
@@ -7526,11 +7211,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 515 */
+  { /* 504 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_i_ic_i",
-    "Parrot_add_i_ic_i",
+    "sub",
+    "sub_i_ic_i",
+    "Parrot_sub_i_ic_i",
     /* "",  body */
     0,
     4,
@@ -7538,11 +7223,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 516 */
+  { /* 505 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_i_i_ic",
-    "Parrot_add_i_i_ic",
+    "sub",
+    "sub_i_i_ic",
+    "Parrot_sub_i_i_ic",
     /* "",  body */
     0,
     4,
@@ -7550,11 +7235,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 517 */
+  { /* 506 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_n_n_n",
-    "Parrot_add_n_n_n",
+    "sub",
+    "sub_n_n_n",
+    "Parrot_sub_n_n_n",
     /* "",  body */
     0,
     4,
@@ -7562,11 +7247,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 518 */
+  { /* 507 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_n_nc_n",
-    "Parrot_add_n_nc_n",
+    "sub",
+    "sub_n_nc_n",
+    "Parrot_sub_n_nc_n",
     /* "",  body */
     0,
     4,
@@ -7574,11 +7259,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 519 */
+  { /* 508 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_n_n_nc",
-    "Parrot_add_n_n_nc",
+    "sub",
+    "sub_n_n_nc",
+    "Parrot_sub_n_n_nc",
     /* "",  body */
     0,
     4,
@@ -7586,11 +7271,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 520 */
+  { /* 509 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_p_p_p",
-    "Parrot_add_p_p_p",
+    "sub",
+    "sub_p_p_p",
+    "Parrot_sub_p_p_p",
     /* "",  body */
     0,
     4,
@@ -7598,11 +7283,11 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 521 */
+  { /* 510 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_p_p_i",
-    "Parrot_add_p_p_i",
+    "sub",
+    "sub_p_p_i",
+    "Parrot_sub_p_p_i",
     /* "",  body */
     0,
     4,
@@ -7610,11 +7295,11 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 522 */
+  { /* 511 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_p_p_ic",
-    "Parrot_add_p_p_ic",
+    "sub",
+    "sub_p_p_ic",
+    "Parrot_sub_p_p_ic",
     /* "",  body */
     0,
     4,
@@ -7622,11 +7307,11 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 523 */
+  { /* 512 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_p_p_n",
-    "Parrot_add_p_p_n",
+    "sub",
+    "sub_p_p_n",
+    "Parrot_sub_p_p_n",
     /* "",  body */
     0,
     4,
@@ -7634,11 +7319,11 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 524 */
+  { /* 513 */
     /* type PARROT_INLINE_OP, */
-    "add",
-    "add_p_p_nc",
-    "Parrot_add_p_p_nc",
+    "sub",
+    "sub_p_p_nc",
+    "Parrot_sub_p_p_nc",
     /* "",  body */
     0,
     4,
@@ -7646,491 +7331,623 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 525 */
+  { /* 514 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_i_i_i",
-    "Parrot_cmod_i_i_i",
+    "sqrt",
+    "sqrt_n_n",
+    "Parrot_sqrt_n_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 515 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethodcc",
+    "callmethodcc_p_s",
+    "Parrot_callmethodcc_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 516 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethodcc",
+    "callmethodcc_p_sc",
+    "Parrot_callmethodcc_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 517 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethodcc",
+    "callmethodcc_p_p",
+    "Parrot_callmethodcc_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 518 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethod",
+    "callmethod_p_s_p",
+    "Parrot_callmethod_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 519 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethod",
+    "callmethod_p_sc_p",
+    "Parrot_callmethod_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 520 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethod",
+    "callmethod_p_p_p",
+    "Parrot_callmethod_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 521 */
+    /* type PARROT_FUNCTION_OP, */
+    "tailcallmethod",
+    "tailcallmethod_p_s",
+    "Parrot_tailcallmethod_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 522 */
+    /* type PARROT_FUNCTION_OP, */
+    "tailcallmethod",
+    "tailcallmethod_p_sc",
+    "Parrot_tailcallmethod_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 523 */
+    /* type PARROT_FUNCTION_OP, */
+    "tailcallmethod",
+    "tailcallmethod_p_p",
+    "Parrot_tailcallmethod_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 524 */
+    /* type PARROT_INLINE_OP, */
+    "addmethod",
+    "addmethod_p_s_p",
+    "Parrot_addmethod_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 525 */
+    /* type PARROT_INLINE_OP, */
+    "addmethod",
+    "addmethod_p_sc_p",
+    "Parrot_addmethod_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 526 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_i_ic_i",
-    "Parrot_cmod_i_ic_i",
+    "can",
+    "can_i_p_s",
+    "Parrot_can_i_p_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 527 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_i_i_ic",
-    "Parrot_cmod_i_i_ic",
+    "can",
+    "can_i_p_sc",
+    "Parrot_can_i_p_sc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 528 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_p_p_i",
-    "Parrot_cmod_p_p_i",
+    "does",
+    "does_i_p_s",
+    "Parrot_does_i_p_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 529 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_p_p_ic",
-    "Parrot_cmod_p_p_ic",
+    "does",
+    "does_i_p_sc",
+    "Parrot_does_i_p_sc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 530 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_p_p_p",
-    "Parrot_cmod_p_p_p",
+    "does",
+    "does_i_p_p",
+    "Parrot_does_i_p_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 531 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_n_n_n",
-    "Parrot_cmod_n_n_n",
+    "does",
+    "does_i_p_pc",
+    "Parrot_does_i_p_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 532 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_n_nc_n",
-    "Parrot_cmod_n_nc_n",
+    "isa",
+    "isa_i_p_s",
+    "Parrot_isa_i_p_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 533 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_n_n_nc",
-    "Parrot_cmod_n_n_nc",
+    "isa",
+    "isa_i_p_sc",
+    "Parrot_isa_i_p_sc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 534 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_p_p_n",
-    "Parrot_cmod_p_p_n",
+    "isa",
+    "isa_i_p_p",
+    "Parrot_isa_i_p_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 535 */
     /* type PARROT_INLINE_OP, */
-    "cmod",
-    "cmod_p_p_nc",
-    "Parrot_cmod_p_p_nc",
+    "isa",
+    "isa_i_p_pc",
+    "Parrot_isa_i_p_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 536 */
     /* type PARROT_INLINE_OP, */
-    "dec",
-    "dec_i",
-    "Parrot_dec_i",
+    "newclass",
+    "newclass_p_s",
+    "Parrot_newclass_p_s",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 537 */
     /* type PARROT_INLINE_OP, */
-    "dec",
-    "dec_n",
-    "Parrot_dec_n",
+    "newclass",
+    "newclass_p_sc",
+    "Parrot_newclass_p_sc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 538 */
     /* type PARROT_INLINE_OP, */
-    "dec",
-    "dec_p",
-    "Parrot_dec_p",
+    "newclass",
+    "newclass_p_p",
+    "Parrot_newclass_p_p",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 539 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_i_i",
-    "Parrot_div_i_i",
+    "newclass",
+    "newclass_p_pc",
+    "Parrot_newclass_p_pc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 540 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_i_ic",
-    "Parrot_div_i_ic",
+    "subclass",
+    "subclass_p_p",
+    "Parrot_subclass_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 541 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_n_n",
-    "Parrot_div_n_n",
+    "subclass",
+    "subclass_p_pc",
+    "Parrot_subclass_p_pc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 542 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_n_nc",
-    "Parrot_div_n_nc",
+    "subclass",
+    "subclass_p_p_s",
+    "Parrot_subclass_p_p_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 543 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_p_p",
-    "Parrot_div_p_p",
+    "subclass",
+    "subclass_p_pc_s",
+    "Parrot_subclass_p_pc_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 544 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_p_i",
-    "Parrot_div_p_i",
+    "subclass",
+    "subclass_p_p_sc",
+    "Parrot_subclass_p_p_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 545 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_p_ic",
-    "Parrot_div_p_ic",
+    "subclass",
+    "subclass_p_pc_sc",
+    "Parrot_subclass_p_pc_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 546 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_p_n",
-    "Parrot_div_p_n",
+    "subclass",
+    "subclass_p_p_p",
+    "Parrot_subclass_p_p_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 547 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_p_nc",
-    "Parrot_div_p_nc",
+    "subclass",
+    "subclass_p_pc_p",
+    "Parrot_subclass_p_pc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 548 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_i_i_i",
-    "Parrot_div_i_i_i",
+    "subclass",
+    "subclass_p_p_pc",
+    "Parrot_subclass_p_p_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 549 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_i_ic_i",
-    "Parrot_div_i_ic_i",
+    "subclass",
+    "subclass_p_pc_pc",
+    "Parrot_subclass_p_pc_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 550 */
-    /* type PARROT_INLINE_OP, */
-    "div",
-    "div_i_i_ic",
-    "Parrot_div_i_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_s",
+    "Parrot_subclass_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 551 */
-    /* type PARROT_INLINE_OP, */
-    "div",
-    "div_i_ic_ic",
-    "Parrot_div_i_ic_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_sc",
+    "Parrot_subclass_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 552 */
-    /* type PARROT_INLINE_OP, */
-    "div",
-    "div_n_n_n",
-    "Parrot_div_n_n_n",
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_s_s",
+    "Parrot_subclass_p_s_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 553 */
-    /* type PARROT_INLINE_OP, */
-    "div",
-    "div_n_nc_n",
-    "Parrot_div_n_nc_n",
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_sc_s",
+    "Parrot_subclass_p_sc_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 554 */
-    /* type PARROT_INLINE_OP, */
-    "div",
-    "div_n_n_nc",
-    "Parrot_div_n_n_nc",
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_s_sc",
+    "Parrot_subclass_p_s_sc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 555 */
-    /* type PARROT_INLINE_OP, */
-    "div",
-    "div_n_nc_nc",
-    "Parrot_div_n_nc_nc",
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_sc_sc",
+    "Parrot_subclass_p_sc_sc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_NC },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 556 */
-    /* type PARROT_INLINE_OP, */
-    "div",
-    "div_p_p_p",
-    "Parrot_div_p_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_s_p",
+    "Parrot_subclass_p_s_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 557 */
-    /* type PARROT_INLINE_OP, */
-    "div",
-    "div_p_p_i",
-    "Parrot_div_p_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_sc_p",
+    "Parrot_subclass_p_sc_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 558 */
-    /* type PARROT_INLINE_OP, */
-    "div",
-    "div_p_p_ic",
-    "Parrot_div_p_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_s_pc",
+    "Parrot_subclass_p_s_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 559 */
-    /* type PARROT_INLINE_OP, */
-    "div",
-    "div_p_p_n",
-    "Parrot_div_p_p_n",
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_sc_pc",
+    "Parrot_subclass_p_sc_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 560 */
     /* type PARROT_INLINE_OP, */
-    "div",
-    "div_p_p_nc",
-    "Parrot_div_p_p_nc",
+    "get_class",
+    "get_class_p_s",
+    "Parrot_get_class_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 561 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_i_i",
-    "Parrot_fdiv_i_i",
+    "get_class",
+    "get_class_p_sc",
+    "Parrot_get_class_p_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 562 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_i_ic",
-    "Parrot_fdiv_i_ic",
+    "get_class",
+    "get_class_p_p",
+    "Parrot_get_class_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 563 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_n_n",
-    "Parrot_fdiv_n_n",
+    "get_class",
+    "get_class_p_pc",
+    "Parrot_get_class_p_pc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 564 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_n_nc",
-    "Parrot_fdiv_n_nc",
+    "class",
+    "class_p_p",
+    "Parrot_class_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 565 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_p_p",
-    "Parrot_fdiv_p_p",
+    "addparent",
+    "addparent_p_p",
+    "Parrot_addparent_p_p",
     /* "",  body */
     0,
     3,
@@ -8140,2445 +7957,2433 @@
   },
   { /* 566 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_p_i",
-    "Parrot_fdiv_p_i",
+    "removeparent",
+    "removeparent_p_p",
+    "Parrot_removeparent_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 567 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_p_ic",
-    "Parrot_fdiv_p_ic",
+    "addrole",
+    "addrole_p_p",
+    "Parrot_addrole_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 568 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_p_n",
-    "Parrot_fdiv_p_n",
+    "addattribute",
+    "addattribute_p_s",
+    "Parrot_addattribute_p_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 569 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_p_nc",
-    "Parrot_fdiv_p_nc",
+    "addattribute",
+    "addattribute_p_sc",
+    "Parrot_addattribute_p_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 570 */
-    /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_i_i_i",
-    "Parrot_fdiv_i_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "removeattribute",
+    "removeattribute_p_s",
+    "Parrot_removeattribute_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 571 */
-    /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_i_ic_i",
-    "Parrot_fdiv_i_ic_i",
+    /* type PARROT_FUNCTION_OP, */
+    "removeattribute",
+    "removeattribute_p_sc",
+    "Parrot_removeattribute_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 572 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_i_i_ic",
-    "Parrot_fdiv_i_i_ic",
+    "getattribute",
+    "getattribute_p_p_s",
+    "Parrot_getattribute_p_p_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 573 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_n_n_n",
-    "Parrot_fdiv_n_n_n",
+    "getattribute",
+    "getattribute_p_p_sc",
+    "Parrot_getattribute_p_p_sc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 574 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_n_nc_n",
-    "Parrot_fdiv_n_nc_n",
+    "getattribute",
+    "getattribute_p_p_p_s",
+    "Parrot_getattribute_p_p_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 575 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_n_n_nc",
-    "Parrot_fdiv_n_n_nc",
+    "getattribute",
+    "getattribute_p_p_pc_s",
+    "Parrot_getattribute_p_p_pc_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 576 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_p_p_p",
-    "Parrot_fdiv_p_p_p",
+    "getattribute",
+    "getattribute_p_p_p_sc",
+    "Parrot_getattribute_p_p_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 577 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_p_p_i",
-    "Parrot_fdiv_p_p_i",
+    "getattribute",
+    "getattribute_p_p_pc_sc",
+    "Parrot_getattribute_p_p_pc_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 578 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_p_p_ic",
-    "Parrot_fdiv_p_p_ic",
+    "setattribute",
+    "setattribute_p_s_p",
+    "Parrot_setattribute_p_s_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 579 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_p_p_n",
-    "Parrot_fdiv_p_p_n",
+    "setattribute",
+    "setattribute_p_sc_p",
+    "Parrot_setattribute_p_sc_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 580 */
     /* type PARROT_INLINE_OP, */
-    "fdiv",
-    "fdiv_p_p_nc",
-    "Parrot_fdiv_p_p_nc",
+    "setattribute",
+    "setattribute_p_p_s_p",
+    "Parrot_setattribute_p_p_s_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 581 */
     /* type PARROT_INLINE_OP, */
-    "ceil",
-    "ceil_n",
-    "Parrot_ceil_n",
+    "setattribute",
+    "setattribute_p_pc_s_p",
+    "Parrot_setattribute_p_pc_s_p",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 582 */
     /* type PARROT_INLINE_OP, */
-    "ceil",
-    "ceil_i_n",
-    "Parrot_ceil_i_n",
+    "setattribute",
+    "setattribute_p_p_sc_p",
+    "Parrot_setattribute_p_p_sc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 583 */
     /* type PARROT_INLINE_OP, */
-    "ceil",
-    "ceil_n_n",
-    "Parrot_ceil_n_n",
+    "setattribute",
+    "setattribute_p_pc_sc_p",
+    "Parrot_setattribute_p_pc_sc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 584 */
     /* type PARROT_INLINE_OP, */
-    "floor",
-    "floor_n",
-    "Parrot_floor_n",
+    "inspect",
+    "inspect_p_p",
+    "Parrot_inspect_p_p",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 585 */
     /* type PARROT_INLINE_OP, */
-    "floor",
-    "floor_i_n",
-    "Parrot_floor_i_n",
+    "inspect",
+    "inspect_p_pc",
+    "Parrot_inspect_p_pc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_N },
+    { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 586 */
     /* type PARROT_INLINE_OP, */
-    "floor",
-    "floor_n_n",
-    "Parrot_floor_n_n",
+    "inspect",
+    "inspect_p_p_s",
+    "Parrot_inspect_p_p_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 587 */
     /* type PARROT_INLINE_OP, */
-    "inc",
-    "inc_i",
-    "Parrot_inc_i",
+    "inspect",
+    "inspect_p_pc_s",
+    "Parrot_inspect_p_pc_s",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 588 */
     /* type PARROT_INLINE_OP, */
-    "inc",
-    "inc_n",
-    "Parrot_inc_n",
+    "inspect",
+    "inspect_p_p_sc",
+    "Parrot_inspect_p_p_sc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 589 */
     /* type PARROT_INLINE_OP, */
-    "inc",
-    "inc_p",
-    "Parrot_inc_p",
+    "inspect",
+    "inspect_p_pc_sc",
+    "Parrot_inspect_p_pc_sc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 590 */
     /* type PARROT_FUNCTION_OP, */
-    "mod",
-    "mod_i_i",
-    "Parrot_mod_i_i",
+    "new",
+    "new_p_s",
+    "Parrot_new_p_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 591 */
     /* type PARROT_FUNCTION_OP, */
-    "mod",
-    "mod_i_ic",
-    "Parrot_mod_i_ic",
+    "new",
+    "new_p_sc",
+    "Parrot_new_p_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 592 */
     /* type PARROT_FUNCTION_OP, */
-    "mod",
-    "mod_n_n",
-    "Parrot_mod_n_n",
+    "new",
+    "new_p_s_p",
+    "Parrot_new_p_s_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 593 */
     /* type PARROT_FUNCTION_OP, */
-    "mod",
-    "mod_n_nc",
-    "Parrot_mod_n_nc",
+    "new",
+    "new_p_sc_p",
+    "Parrot_new_p_sc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 594 */
-    /* type PARROT_INLINE_OP, */
-    "mod",
-    "mod_p_p",
-    "Parrot_mod_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_s_pc",
+    "Parrot_new_p_s_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 595 */
-    /* type PARROT_INLINE_OP, */
-    "mod",
-    "mod_p_i",
-    "Parrot_mod_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_sc_pc",
+    "Parrot_new_p_sc_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 596 */
     /* type PARROT_INLINE_OP, */
-    "mod",
-    "mod_p_ic",
-    "Parrot_mod_p_ic",
+    "new",
+    "new_p_p",
+    "Parrot_new_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 597 */
     /* type PARROT_INLINE_OP, */
-    "mod",
-    "mod_p_n",
-    "Parrot_mod_p_n",
+    "new",
+    "new_p_pc",
+    "Parrot_new_p_pc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 598 */
-    /* type PARROT_INLINE_OP, */
-    "mod",
-    "mod_p_nc",
-    "Parrot_mod_p_nc",
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_p_p",
+    "Parrot_new_p_p_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 599 */
     /* type PARROT_FUNCTION_OP, */
-    "mod",
-    "mod_i_i_i",
-    "Parrot_mod_i_i_i",
+    "new",
+    "new_p_pc_p",
+    "Parrot_new_p_pc_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 600 */
     /* type PARROT_FUNCTION_OP, */
-    "mod",
-    "mod_i_ic_i",
-    "Parrot_mod_i_ic_i",
+    "new",
+    "new_p_p_pc",
+    "Parrot_new_p_p_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 601 */
     /* type PARROT_FUNCTION_OP, */
-    "mod",
-    "mod_i_i_ic",
-    "Parrot_mod_i_i_ic",
+    "new",
+    "new_p_pc_pc",
+    "Parrot_new_p_pc_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 602 */
     /* type PARROT_FUNCTION_OP, */
-    "mod",
-    "mod_n_n_n",
-    "Parrot_mod_n_n_n",
+    "root_new",
+    "root_new_p_p",
+    "Parrot_root_new_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 603 */
     /* type PARROT_FUNCTION_OP, */
-    "mod",
-    "mod_n_nc_n",
-    "Parrot_mod_n_nc_n",
+    "root_new",
+    "root_new_p_pc",
+    "Parrot_root_new_p_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 604 */
     /* type PARROT_FUNCTION_OP, */
-    "mod",
-    "mod_n_n_nc",
-    "Parrot_mod_n_n_nc",
+    "root_new",
+    "root_new_p_p_p",
+    "Parrot_root_new_p_p_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 605 */
-    /* type PARROT_INLINE_OP, */
-    "mod",
-    "mod_p_p_p",
-    "Parrot_mod_p_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_pc_p",
+    "Parrot_root_new_p_pc_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 606 */
-    /* type PARROT_INLINE_OP, */
-    "mod",
-    "mod_p_p_i",
-    "Parrot_mod_p_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_p_pc",
+    "Parrot_root_new_p_p_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 607 */
-    /* type PARROT_INLINE_OP, */
-    "mod",
-    "mod_p_p_ic",
-    "Parrot_mod_p_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_pc_pc",
+    "Parrot_root_new_p_pc_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 608 */
     /* type PARROT_INLINE_OP, */
-    "mod",
-    "mod_p_p_n",
-    "Parrot_mod_p_p_n",
+    "typeof",
+    "typeof_s_p",
+    "Parrot_typeof_s_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 609 */
     /* type PARROT_INLINE_OP, */
-    "mod",
-    "mod_p_p_nc",
-    "Parrot_mod_p_p_nc",
+    "typeof",
+    "typeof_p_p",
+    "Parrot_typeof_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 610 */
-    /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_i_i",
-    "Parrot_mul_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "get_repr",
+    "get_repr_s_p",
+    "Parrot_get_repr_s_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 611 */
-    /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_i_ic",
-    "Parrot_mul_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "find_method",
+    "find_method_p_p_s",
+    "Parrot_find_method_p_p_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 612 */
-    /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_n_n",
-    "Parrot_mul_n_n",
+    /* type PARROT_FUNCTION_OP, */
+    "find_method",
+    "find_method_p_p_sc",
+    "Parrot_find_method_p_p_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 613 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_n_nc",
-    "Parrot_mul_n_nc",
+    "defined",
+    "defined_i_p",
+    "Parrot_defined_i_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 614 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_p_p",
-    "Parrot_mul_p_p",
+    "defined",
+    "defined_i_p_ki",
+    "Parrot_defined_i_p_ki",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 615 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_p_i",
-    "Parrot_mul_p_i",
+    "defined",
+    "defined_i_p_kic",
+    "Parrot_defined_i_p_kic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 616 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_p_ic",
-    "Parrot_mul_p_ic",
+    "defined",
+    "defined_i_p_k",
+    "Parrot_defined_i_p_k",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 617 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_p_n",
-    "Parrot_mul_p_n",
+    "defined",
+    "defined_i_p_kc",
+    "Parrot_defined_i_p_kc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 618 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_p_nc",
-    "Parrot_mul_p_nc",
+    "exists",
+    "exists_i_p_ki",
+    "Parrot_exists_i_p_ki",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 619 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_i_i_i",
-    "Parrot_mul_i_i_i",
+    "exists",
+    "exists_i_p_kic",
+    "Parrot_exists_i_p_kic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 620 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_i_ic_i",
-    "Parrot_mul_i_ic_i",
+    "exists",
+    "exists_i_p_k",
+    "Parrot_exists_i_p_k",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 621 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_i_i_ic",
-    "Parrot_mul_i_i_ic",
+    "exists",
+    "exists_i_p_kc",
+    "Parrot_exists_i_p_kc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 622 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_n_n_n",
-    "Parrot_mul_n_n_n",
+    "delete",
+    "delete_p_k",
+    "Parrot_delete_p_k",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 623 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_n_nc_n",
-    "Parrot_mul_n_nc_n",
+    "delete",
+    "delete_p_kc",
+    "Parrot_delete_p_kc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 624 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_n_n_nc",
-    "Parrot_mul_n_n_nc",
+    "delete",
+    "delete_p_ki",
+    "Parrot_delete_p_ki",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 625 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_p_p_p",
-    "Parrot_mul_p_p_p",
+    "delete",
+    "delete_p_kic",
+    "Parrot_delete_p_kic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
+    3,
+    { PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
   { /* 626 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_p_p_i",
-    "Parrot_mul_p_p_i",
+    "elements",
+    "elements_i_p",
+    "Parrot_elements_i_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 627 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_p_p_ic",
-    "Parrot_mul_p_p_ic",
+    "push",
+    "push_p_i",
+    "Parrot_push_p_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 628 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_p_p_n",
-    "Parrot_mul_p_p_n",
+    "push",
+    "push_p_ic",
+    "Parrot_push_p_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 629 */
     /* type PARROT_INLINE_OP, */
-    "mul",
-    "mul_p_p_nc",
-    "Parrot_mul_p_p_nc",
+    "push",
+    "push_p_n",
+    "Parrot_push_p_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 630 */
     /* type PARROT_INLINE_OP, */
-    "neg",
-    "neg_i",
-    "Parrot_neg_i",
+    "push",
+    "push_p_nc",
+    "Parrot_push_p_nc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 631 */
     /* type PARROT_INLINE_OP, */
-    "neg",
-    "neg_n",
-    "Parrot_neg_n",
+    "push",
+    "push_p_s",
+    "Parrot_push_p_s",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 632 */
     /* type PARROT_INLINE_OP, */
-    "neg",
-    "neg_p",
-    "Parrot_neg_p",
+    "push",
+    "push_p_sc",
+    "Parrot_push_p_sc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 633 */
     /* type PARROT_INLINE_OP, */
-    "neg",
-    "neg_i_i",
-    "Parrot_neg_i_i",
+    "push",
+    "push_p_p",
+    "Parrot_push_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 634 */
     /* type PARROT_INLINE_OP, */
-    "neg",
-    "neg_n_n",
-    "Parrot_neg_n_n",
+    "pop",
+    "pop_i_p",
+    "Parrot_pop_i_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 635 */
     /* type PARROT_INLINE_OP, */
-    "neg",
-    "neg_p_p",
-    "Parrot_neg_p_p",
+    "pop",
+    "pop_n_p",
+    "Parrot_pop_n_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_N, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 636 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_n_n_n",
-    "Parrot_pow_n_n_n",
+    "pop",
+    "pop_s_p",
+    "Parrot_pop_s_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 637 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_n_nc_n",
-    "Parrot_pow_n_nc_n",
+    "pop",
+    "pop_p_p",
+    "Parrot_pop_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 638 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_n_n_nc",
-    "Parrot_pow_n_n_nc",
+    "unshift",
+    "unshift_p_i",
+    "Parrot_unshift_p_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 639 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_p_p_p",
-    "Parrot_pow_p_p_p",
+    "unshift",
+    "unshift_p_ic",
+    "Parrot_unshift_p_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 640 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_p_p_i",
-    "Parrot_pow_p_p_i",
+    "unshift",
+    "unshift_p_n",
+    "Parrot_unshift_p_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 641 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_p_p_ic",
-    "Parrot_pow_p_p_ic",
+    "unshift",
+    "unshift_p_nc",
+    "Parrot_unshift_p_nc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 642 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_p_p_n",
-    "Parrot_pow_p_p_n",
+    "unshift",
+    "unshift_p_s",
+    "Parrot_unshift_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 643 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_p_p_nc",
-    "Parrot_pow_p_p_nc",
+    "unshift",
+    "unshift_p_sc",
+    "Parrot_unshift_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 644 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_n_n_i",
-    "Parrot_pow_n_n_i",
+    "unshift",
+    "unshift_p_p",
+    "Parrot_unshift_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 645 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_n_nc_i",
-    "Parrot_pow_n_nc_i",
+    "shift",
+    "shift_i_p",
+    "Parrot_shift_i_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 646 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_n_n_ic",
-    "Parrot_pow_n_n_ic",
+    "shift",
+    "shift_n_p",
+    "Parrot_shift_n_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 647 */
     /* type PARROT_INLINE_OP, */
-    "pow",
-    "pow_n_nc_ic",
-    "Parrot_pow_n_nc_ic",
+    "shift",
+    "shift_s_p",
+    "Parrot_shift_s_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
   { /* 648 */
     /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_i_i",
-    "Parrot_sub_i_i",
+    "shift",
+    "shift_p_p",
+    "Parrot_shift_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 649 */
     /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_i_ic",
-    "Parrot_sub_i_ic",
+    "splice",
+    "splice_p_p_i_i",
+    "Parrot_splice_p_p_i_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 650 */
     /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_n_n",
-    "Parrot_sub_n_n",
+    "splice",
+    "splice_p_p_ic_i",
+    "Parrot_splice_p_p_ic_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 651 */
     /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_n_nc",
-    "Parrot_sub_n_nc",
+    "splice",
+    "splice_p_p_i_ic",
+    "Parrot_splice_p_p_i_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 652 */
     /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_p_p",
-    "Parrot_sub_p_p",
+    "splice",
+    "splice_p_p_ic_ic",
+    "Parrot_splice_p_p_ic_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 653 */
-    /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_p_i",
-    "Parrot_sub_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "setprop",
+    "setprop_p_s_p",
+    "Parrot_setprop_p_s_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 654 */
-    /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_p_ic",
-    "Parrot_sub_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "setprop",
+    "setprop_p_sc_p",
+    "Parrot_setprop_p_sc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 655 */
-    /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_p_n",
-    "Parrot_sub_p_n",
+    /* type PARROT_FUNCTION_OP, */
+    "getprop",
+    "getprop_p_s_p",
+    "Parrot_getprop_p_s_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 656 */
-    /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_p_nc",
-    "Parrot_sub_p_nc",
+    /* type PARROT_FUNCTION_OP, */
+    "getprop",
+    "getprop_p_sc_p",
+    "Parrot_getprop_p_sc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 657 */
-    /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_i_i_i",
-    "Parrot_sub_i_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "delprop",
+    "delprop_p_s",
+    "Parrot_delprop_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 658 */
-    /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_i_ic_i",
-    "Parrot_sub_i_ic_i",
+    /* type PARROT_FUNCTION_OP, */
+    "delprop",
+    "delprop_p_sc",
+    "Parrot_delprop_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 659 */
-    /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_i_i_ic",
-    "Parrot_sub_i_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "prophash",
+    "prophash_p_p",
+    "Parrot_prophash_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 660 */
-    /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_n_n_n",
-    "Parrot_sub_n_n_n",
+    /* type PARROT_FUNCTION_OP, */
+    "freeze",
+    "freeze_s_p",
+    "Parrot_freeze_s_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 661 */
-    /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_n_nc_n",
-    "Parrot_sub_n_nc_n",
+    /* type PARROT_FUNCTION_OP, */
+    "thaw",
+    "thaw_p_s",
+    "Parrot_thaw_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 662 */
-    /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_n_n_nc",
-    "Parrot_sub_n_n_nc",
+    /* type PARROT_FUNCTION_OP, */
+    "thaw",
+    "thaw_p_sc",
+    "Parrot_thaw_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 663 */
     /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_p_p_p",
-    "Parrot_sub_p_p_p",
+    "add_multi",
+    "add_multi_s_s_p",
+    "Parrot_add_multi_s_s_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 664 */
     /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_p_p_i",
-    "Parrot_sub_p_p_i",
+    "add_multi",
+    "add_multi_sc_s_p",
+    "Parrot_add_multi_sc_s_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 665 */
     /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_p_p_ic",
-    "Parrot_sub_p_p_ic",
+    "add_multi",
+    "add_multi_s_sc_p",
+    "Parrot_add_multi_s_sc_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 666 */
     /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_p_p_n",
-    "Parrot_sub_p_p_n",
+    "add_multi",
+    "add_multi_sc_sc_p",
+    "Parrot_add_multi_sc_sc_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 667 */
     /* type PARROT_INLINE_OP, */
-    "sub",
-    "sub_p_p_nc",
-    "Parrot_sub_p_p_nc",
+    "find_multi",
+    "find_multi_p_s_s",
+    "Parrot_find_multi_p_s_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 668 */
     /* type PARROT_INLINE_OP, */
-    "sqrt",
-    "sqrt_n_n",
-    "Parrot_sqrt_n_n",
+    "find_multi",
+    "find_multi_p_sc_s",
+    "Parrot_find_multi_p_sc_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 669 */
     /* type PARROT_INLINE_OP, */
-    "acos",
-    "acos_n_n",
-    "Parrot_acos_n_n",
+    "find_multi",
+    "find_multi_p_s_sc",
+    "Parrot_find_multi_p_s_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 670 */
     /* type PARROT_INLINE_OP, */
-    "asec",
-    "asec_n_n",
-    "Parrot_asec_n_n",
+    "find_multi",
+    "find_multi_p_sc_sc",
+    "Parrot_find_multi_p_sc_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 671 */
-    /* type PARROT_INLINE_OP, */
-    "asin",
-    "asin_n_n",
-    "Parrot_asin_n_n",
+    /* type PARROT_FUNCTION_OP, */
+    "register",
+    "register_p",
+    "Parrot_register_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
   { /* 672 */
-    /* type PARROT_INLINE_OP, */
-    "atan",
-    "atan_n_n",
-    "Parrot_atan_n_n",
+    /* type PARROT_FUNCTION_OP, */
+    "unregister",
+    "unregister_p",
+    "Parrot_unregister_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
   { /* 673 */
-    /* type PARROT_INLINE_OP, */
-    "atan",
-    "atan_n_n_n",
-    "Parrot_atan_n_n_n",
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_i",
+    "Parrot_box_p_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 674 */
-    /* type PARROT_INLINE_OP, */
-    "atan",
-    "atan_n_nc_n",
-    "Parrot_atan_n_nc_n",
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_ic",
+    "Parrot_box_p_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 675 */
-    /* type PARROT_INLINE_OP, */
-    "atan",
-    "atan_n_n_nc",
-    "Parrot_atan_n_n_nc",
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_n",
+    "Parrot_box_p_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 676 */
-    /* type PARROT_INLINE_OP, */
-    "cos",
-    "cos_n_n",
-    "Parrot_cos_n_n",
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_nc",
+    "Parrot_box_p_nc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 677 */
-    /* type PARROT_INLINE_OP, */
-    "cosh",
-    "cosh_n_n",
-    "Parrot_cosh_n_n",
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_s",
+    "Parrot_box_p_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 678 */
-    /* type PARROT_INLINE_OP, */
-    "exp",
-    "exp_n_n",
-    "Parrot_exp_n_n",
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_sc",
+    "Parrot_box_p_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 679 */
     /* type PARROT_INLINE_OP, */
-    "ln",
-    "ln_n_n",
-    "Parrot_ln_n_n",
+    "iter",
+    "iter_p_p",
+    "Parrot_iter_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 680 */
     /* type PARROT_INLINE_OP, */
-    "log10",
-    "log10_n_n",
-    "Parrot_log10_n_n",
+    "morph",
+    "morph_p_p",
+    "Parrot_morph_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 681 */
-    /* type PARROT_FUNCTION_OP, */
-    "log2",
-    "log2_n_n",
-    "Parrot_log2_n_n",
+    /* type PARROT_INLINE_OP, */
+    "morph",
+    "morph_p_pc",
+    "Parrot_morph_p_pc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 682 */
     /* type PARROT_INLINE_OP, */
-    "sec",
-    "sec_n_n",
-    "Parrot_sec_n_n",
+    "clone",
+    "clone_s_s",
+    "Parrot_clone_s_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 683 */
     /* type PARROT_INLINE_OP, */
-    "sech",
-    "sech_n_n",
-    "Parrot_sech_n_n",
+    "clone",
+    "clone_s_sc",
+    "Parrot_clone_s_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 684 */
     /* type PARROT_INLINE_OP, */
-    "sin",
-    "sin_n_n",
-    "Parrot_sin_n_n",
+    "set",
+    "set_i_i",
+    "Parrot_set_i_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 685 */
     /* type PARROT_INLINE_OP, */
-    "sinh",
-    "sinh_n_n",
-    "Parrot_sinh_n_n",
+    "set",
+    "set_i_ic",
+    "Parrot_set_i_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 686 */
     /* type PARROT_INLINE_OP, */
-    "tan",
-    "tan_n_n",
-    "Parrot_tan_n_n",
+    "set",
+    "set_i_n",
+    "Parrot_set_i_n",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_I, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 687 */
     /* type PARROT_INLINE_OP, */
-    "tanh",
-    "tanh_n_n",
-    "Parrot_tanh_n_n",
+    "set",
+    "set_i_nc",
+    "Parrot_set_i_nc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_I, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 688 */
-    /* type PARROT_FUNCTION_OP, */
-    "callmethodcc",
-    "callmethodcc_p_s",
-    "Parrot_callmethodcc_p_s",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_s",
+    "Parrot_set_i_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 689 */
-    /* type PARROT_FUNCTION_OP, */
-    "callmethodcc",
-    "callmethodcc_p_sc",
-    "Parrot_callmethodcc_p_sc",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_sc",
+    "Parrot_set_i_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 690 */
-    /* type PARROT_FUNCTION_OP, */
-    "callmethodcc",
-    "callmethodcc_p_p",
-    "Parrot_callmethodcc_p_p",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_n",
+    "Parrot_set_n_n",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 691 */
-    /* type PARROT_FUNCTION_OP, */
-    "callmethod",
-    "callmethod_p_s_p",
-    "Parrot_callmethod_p_s_p",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_nc",
+    "Parrot_set_n_nc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 692 */
-    /* type PARROT_FUNCTION_OP, */
-    "callmethod",
-    "callmethod_p_sc_p",
-    "Parrot_callmethod_p_sc_p",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_i",
+    "Parrot_set_n_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 693 */
-    /* type PARROT_FUNCTION_OP, */
-    "callmethod",
-    "callmethod_p_p_p",
-    "Parrot_callmethod_p_p_p",
+    3,
+    { PARROT_ARG_N, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 693 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_ic",
+    "Parrot_set_n_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 694 */
-    /* type PARROT_FUNCTION_OP, */
-    "tailcallmethod",
-    "tailcallmethod_p_s",
-    "Parrot_tailcallmethod_p_s",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_s",
+    "Parrot_set_n_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_N, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 695 */
-    /* type PARROT_FUNCTION_OP, */
-    "tailcallmethod",
-    "tailcallmethod_p_sc",
-    "Parrot_tailcallmethod_p_sc",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_sc",
+    "Parrot_set_n_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_N, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 696 */
-    /* type PARROT_FUNCTION_OP, */
-    "tailcallmethod",
-    "tailcallmethod_p_p",
-    "Parrot_tailcallmethod_p_p",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_p",
+    "Parrot_set_n_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_N, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 697 */
     /* type PARROT_INLINE_OP, */
-    "addmethod",
-    "addmethod_p_s_p",
-    "Parrot_addmethod_p_s_p",
+    "set",
+    "set_s_p",
+    "Parrot_set_s_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 698 */
     /* type PARROT_INLINE_OP, */
-    "addmethod",
-    "addmethod_p_sc_p",
-    "Parrot_addmethod_p_sc_p",
+    "set",
+    "set_s_s",
+    "Parrot_set_s_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 699 */
     /* type PARROT_INLINE_OP, */
-    "can",
-    "can_i_p_s",
-    "Parrot_can_i_p_s",
+    "set",
+    "set_s_sc",
+    "Parrot_set_s_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 700 */
     /* type PARROT_INLINE_OP, */
-    "can",
-    "can_i_p_sc",
-    "Parrot_can_i_p_sc",
+    "set",
+    "set_s_i",
+    "Parrot_set_s_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 701 */
     /* type PARROT_INLINE_OP, */
-    "does",
-    "does_i_p_s",
-    "Parrot_does_i_p_s",
+    "set",
+    "set_s_ic",
+    "Parrot_set_s_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 702 */
     /* type PARROT_INLINE_OP, */
-    "does",
-    "does_i_p_sc",
-    "Parrot_does_i_p_sc",
+    "set",
+    "set_s_n",
+    "Parrot_set_s_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 703 */
     /* type PARROT_INLINE_OP, */
-    "does",
-    "does_i_p_p",
-    "Parrot_does_i_p_p",
+    "set",
+    "set_s_nc",
+    "Parrot_set_s_nc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 704 */
     /* type PARROT_INLINE_OP, */
-    "does",
-    "does_i_p_pc",
-    "Parrot_does_i_p_pc",
+    "set",
+    "set_p_pc",
+    "Parrot_set_p_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 705 */
     /* type PARROT_INLINE_OP, */
-    "isa",
-    "isa_i_p_s",
-    "Parrot_isa_i_p_s",
+    "set",
+    "set_p_p",
+    "Parrot_set_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 706 */
     /* type PARROT_INLINE_OP, */
-    "isa",
-    "isa_i_p_sc",
-    "Parrot_isa_i_p_sc",
+    "set",
+    "set_p_i",
+    "Parrot_set_p_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 707 */
     /* type PARROT_INLINE_OP, */
-    "isa",
-    "isa_i_p_p",
-    "Parrot_isa_i_p_p",
+    "set",
+    "set_p_ic",
+    "Parrot_set_p_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 708 */
     /* type PARROT_INLINE_OP, */
-    "isa",
-    "isa_i_p_pc",
-    "Parrot_isa_i_p_pc",
+    "set",
+    "set_p_n",
+    "Parrot_set_p_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 709 */
     /* type PARROT_INLINE_OP, */
-    "newclass",
-    "newclass_p_s",
-    "Parrot_newclass_p_s",
+    "set",
+    "set_p_nc",
+    "Parrot_set_p_nc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 710 */
     /* type PARROT_INLINE_OP, */
-    "newclass",
-    "newclass_p_sc",
-    "Parrot_newclass_p_sc",
+    "set",
+    "set_p_s",
+    "Parrot_set_p_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 711 */
     /* type PARROT_INLINE_OP, */
-    "newclass",
-    "newclass_p_p",
-    "Parrot_newclass_p_p",
+    "set",
+    "set_p_sc",
+    "Parrot_set_p_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 712 */
     /* type PARROT_INLINE_OP, */
-    "newclass",
-    "newclass_p_pc",
-    "Parrot_newclass_p_pc",
+    "set",
+    "set_i_p",
+    "Parrot_set_i_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 713 */
     /* type PARROT_INLINE_OP, */
-    "subclass",
-    "subclass_p_p",
-    "Parrot_subclass_p_p",
+    "assign",
+    "assign_p_p",
+    "Parrot_assign_p_p",
     /* "",  body */
     0,
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 714 */
     /* type PARROT_INLINE_OP, */
-    "subclass",
-    "subclass_p_pc",
-    "Parrot_subclass_p_pc",
+    "assign",
+    "assign_p_i",
+    "Parrot_assign_p_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 715 */
     /* type PARROT_INLINE_OP, */
-    "subclass",
-    "subclass_p_p_s",
-    "Parrot_subclass_p_p_s",
+    "assign",
+    "assign_p_ic",
+    "Parrot_assign_p_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 716 */
     /* type PARROT_INLINE_OP, */
-    "subclass",
-    "subclass_p_pc_s",
-    "Parrot_subclass_p_pc_s",
+    "assign",
+    "assign_p_n",
+    "Parrot_assign_p_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 717 */
     /* type PARROT_INLINE_OP, */
-    "subclass",
-    "subclass_p_p_sc",
-    "Parrot_subclass_p_p_sc",
+    "assign",
+    "assign_p_nc",
+    "Parrot_assign_p_nc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 718 */
     /* type PARROT_INLINE_OP, */
-    "subclass",
-    "subclass_p_pc_sc",
-    "Parrot_subclass_p_pc_sc",
+    "assign",
+    "assign_p_s",
+    "Parrot_assign_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 719 */
     /* type PARROT_INLINE_OP, */
-    "subclass",
-    "subclass_p_p_p",
-    "Parrot_subclass_p_p_p",
+    "assign",
+    "assign_p_sc",
+    "Parrot_assign_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 720 */
     /* type PARROT_INLINE_OP, */
-    "subclass",
-    "subclass_p_pc_p",
-    "Parrot_subclass_p_pc_p",
+    "assign",
+    "assign_s_s",
+    "Parrot_assign_s_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 721 */
     /* type PARROT_INLINE_OP, */
-    "subclass",
-    "subclass_p_p_pc",
-    "Parrot_subclass_p_p_pc",
+    "assign",
+    "assign_s_sc",
+    "Parrot_assign_s_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 722 */
     /* type PARROT_INLINE_OP, */
-    "subclass",
-    "subclass_p_pc_pc",
-    "Parrot_subclass_p_pc_pc",
+    "setref",
+    "setref_p_p",
+    "Parrot_setref_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 723 */
-    /* type PARROT_FUNCTION_OP, */
-    "subclass",
-    "subclass_p_s",
-    "Parrot_subclass_p_s",
+    /* type PARROT_INLINE_OP, */
+    "deref",
+    "deref_p_p",
+    "Parrot_deref_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 724 */
-    /* type PARROT_FUNCTION_OP, */
-    "subclass",
-    "subclass_p_sc",
-    "Parrot_subclass_p_sc",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_i",
+    "Parrot_set_p_ki_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 725 */
-    /* type PARROT_FUNCTION_OP, */
-    "subclass",
-    "subclass_p_s_s",
-    "Parrot_subclass_p_s_s",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_i",
+    "Parrot_set_p_kic_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 726 */
-    /* type PARROT_FUNCTION_OP, */
-    "subclass",
-    "subclass_p_sc_s",
-    "Parrot_subclass_p_sc_s",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_ic",
+    "Parrot_set_p_ki_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 727 */
-    /* type PARROT_FUNCTION_OP, */
-    "subclass",
-    "subclass_p_s_sc",
-    "Parrot_subclass_p_s_sc",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_ic",
+    "Parrot_set_p_kic_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 728 */
-    /* type PARROT_FUNCTION_OP, */
-    "subclass",
-    "subclass_p_sc_sc",
-    "Parrot_subclass_p_sc_sc",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_n",
+    "Parrot_set_p_ki_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 729 */
-    /* type PARROT_FUNCTION_OP, */
-    "subclass",
-    "subclass_p_s_p",
-    "Parrot_subclass_p_s_p",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_n",
+    "Parrot_set_p_kic_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 730 */
-    /* type PARROT_FUNCTION_OP, */
-    "subclass",
-    "subclass_p_sc_p",
-    "Parrot_subclass_p_sc_p",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_nc",
+    "Parrot_set_p_ki_nc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 731 */
-    /* type PARROT_FUNCTION_OP, */
-    "subclass",
-    "subclass_p_s_pc",
-    "Parrot_subclass_p_s_pc",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_nc",
+    "Parrot_set_p_kic_nc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 732 */
-    /* type PARROT_FUNCTION_OP, */
-    "subclass",
-    "subclass_p_sc_pc",
-    "Parrot_subclass_p_sc_pc",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_s",
+    "Parrot_set_p_ki_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 733 */
     /* type PARROT_INLINE_OP, */
-    "get_class",
-    "get_class_p_s",
-    "Parrot_get_class_p_s",
+    "set",
+    "set_p_kic_s",
+    "Parrot_set_p_kic_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 734 */
     /* type PARROT_INLINE_OP, */
-    "get_class",
-    "get_class_p_sc",
-    "Parrot_get_class_p_sc",
+    "set",
+    "set_p_ki_sc",
+    "Parrot_set_p_ki_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 735 */
     /* type PARROT_INLINE_OP, */
-    "get_class",
-    "get_class_p_p",
-    "Parrot_get_class_p_p",
+    "set",
+    "set_p_kic_sc",
+    "Parrot_set_p_kic_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 736 */
     /* type PARROT_INLINE_OP, */
-    "get_class",
-    "get_class_p_pc",
-    "Parrot_get_class_p_pc",
+    "set",
+    "set_p_ki_p",
+    "Parrot_set_p_ki_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 737 */
     /* type PARROT_INLINE_OP, */
-    "class",
-    "class_p_p",
-    "Parrot_class_p_p",
+    "set",
+    "set_p_kic_p",
+    "Parrot_set_p_kic_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 738 */
     /* type PARROT_INLINE_OP, */
-    "addparent",
-    "addparent_p_p",
-    "Parrot_addparent_p_p",
+    "set",
+    "set_i_p_ki",
+    "Parrot_set_i_p_ki",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 739 */
     /* type PARROT_INLINE_OP, */
-    "removeparent",
-    "removeparent_p_p",
-    "Parrot_removeparent_p_p",
+    "set",
+    "set_i_p_kic",
+    "Parrot_set_i_p_kic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 740 */
     /* type PARROT_INLINE_OP, */
-    "addrole",
-    "addrole_p_p",
-    "Parrot_addrole_p_p",
+    "set",
+    "set_n_p_ki",
+    "Parrot_set_n_p_ki",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 741 */
     /* type PARROT_INLINE_OP, */
-    "addattribute",
-    "addattribute_p_s",
-    "Parrot_addattribute_p_s",
+    "set",
+    "set_n_p_kic",
+    "Parrot_set_n_p_kic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 742 */
     /* type PARROT_INLINE_OP, */
-    "addattribute",
-    "addattribute_p_sc",
-    "Parrot_addattribute_p_sc",
+    "set",
+    "set_s_p_ki",
+    "Parrot_set_s_p_ki",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 743 */
-    /* type PARROT_FUNCTION_OP, */
-    "removeattribute",
-    "removeattribute_p_s",
-    "Parrot_removeattribute_p_s",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_p_kic",
+    "Parrot_set_s_p_kic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 744 */
-    /* type PARROT_FUNCTION_OP, */
-    "removeattribute",
-    "removeattribute_p_sc",
-    "Parrot_removeattribute_p_sc",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_p_ki",
+    "Parrot_set_p_p_ki",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 745 */
     /* type PARROT_INLINE_OP, */
-    "getattribute",
-    "getattribute_p_p_s",
-    "Parrot_getattribute_p_p_s",
+    "set",
+    "set_p_p_kic",
+    "Parrot_set_p_p_kic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KIC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 746 */
     /* type PARROT_INLINE_OP, */
-    "getattribute",
-    "getattribute_p_p_sc",
-    "Parrot_getattribute_p_p_sc",
+    "set",
+    "set_p_k_i",
+    "Parrot_set_p_k_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 747 */
     /* type PARROT_INLINE_OP, */
-    "getattribute",
-    "getattribute_p_p_p_s",
-    "Parrot_getattribute_p_p_p_s",
+    "set",
+    "set_p_kc_i",
+    "Parrot_set_p_kc_i",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 748 */
     /* type PARROT_INLINE_OP, */
-    "getattribute",
-    "getattribute_p_p_pc_s",
-    "Parrot_getattribute_p_p_pc_s",
+    "set",
+    "set_p_k_ic",
+    "Parrot_set_p_k_ic",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 749 */
     /* type PARROT_INLINE_OP, */
-    "getattribute",
-    "getattribute_p_p_p_sc",
-    "Parrot_getattribute_p_p_p_sc",
+    "set",
+    "set_p_kc_ic",
+    "Parrot_set_p_kc_ic",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 750 */
     /* type PARROT_INLINE_OP, */
-    "getattribute",
-    "getattribute_p_p_pc_sc",
-    "Parrot_getattribute_p_p_pc_sc",
+    "set",
+    "set_p_k_n",
+    "Parrot_set_p_k_n",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 751 */
     /* type PARROT_INLINE_OP, */
-    "setattribute",
-    "setattribute_p_s_p",
-    "Parrot_setattribute_p_s_p",
+    "set",
+    "set_p_kc_n",
+    "Parrot_set_p_kc_n",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 752 */
     /* type PARROT_INLINE_OP, */
-    "setattribute",
-    "setattribute_p_sc_p",
-    "Parrot_setattribute_p_sc_p",
+    "set",
+    "set_p_k_nc",
+    "Parrot_set_p_k_nc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 753 */
     /* type PARROT_INLINE_OP, */
-    "setattribute",
-    "setattribute_p_p_s_p",
-    "Parrot_setattribute_p_p_s_p",
+    "set",
+    "set_p_kc_nc",
+    "Parrot_set_p_kc_nc",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 754 */
     /* type PARROT_INLINE_OP, */
-    "setattribute",
-    "setattribute_p_pc_s_p",
-    "Parrot_setattribute_p_pc_s_p",
+    "set",
+    "set_p_k_s",
+    "Parrot_set_p_k_s",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 755 */
     /* type PARROT_INLINE_OP, */
-    "setattribute",
-    "setattribute_p_p_sc_p",
-    "Parrot_setattribute_p_p_sc_p",
+    "set",
+    "set_p_kc_s",
+    "Parrot_set_p_kc_s",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 756 */
     /* type PARROT_INLINE_OP, */
-    "setattribute",
-    "setattribute_p_pc_sc_p",
-    "Parrot_setattribute_p_pc_sc_p",
+    "set",
+    "set_p_k_sc",
+    "Parrot_set_p_k_sc",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 757 */
     /* type PARROT_INLINE_OP, */
-    "inspect",
-    "inspect_p_p",
-    "Parrot_inspect_p_p",
+    "set",
+    "set_p_kc_sc",
+    "Parrot_set_p_kc_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 758 */
     /* type PARROT_INLINE_OP, */
-    "inspect",
-    "inspect_p_pc",
-    "Parrot_inspect_p_pc",
+    "set",
+    "set_p_k_p",
+    "Parrot_set_p_k_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 759 */
     /* type PARROT_INLINE_OP, */
-    "inspect",
-    "inspect_p_p_s",
-    "Parrot_inspect_p_p_s",
+    "set",
+    "set_p_kc_p",
+    "Parrot_set_p_kc_p",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 760 */
     /* type PARROT_INLINE_OP, */
-    "inspect",
-    "inspect_p_pc_s",
-    "Parrot_inspect_p_pc_s",
+    "set",
+    "set_i_p_k",
+    "Parrot_set_i_p_k",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 761 */
     /* type PARROT_INLINE_OP, */
-    "inspect",
-    "inspect_p_p_sc",
-    "Parrot_inspect_p_p_sc",
+    "set",
+    "set_i_p_kc",
+    "Parrot_set_i_p_kc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 762 */
     /* type PARROT_INLINE_OP, */
-    "inspect",
-    "inspect_p_pc_sc",
-    "Parrot_inspect_p_pc_sc",
+    "set",
+    "set_n_p_k",
+    "Parrot_set_n_p_k",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 763 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_s",
-    "Parrot_new_p_s",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_p_kc",
+    "Parrot_set_n_p_kc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 764 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_sc",
-    "Parrot_new_p_sc",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_p_k",
+    "Parrot_set_s_p_k",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 765 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_s_p",
-    "Parrot_new_p_s_p",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_p_kc",
+    "Parrot_set_s_p_kc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 766 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_sc_p",
-    "Parrot_new_p_sc_p",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_p_k",
+    "Parrot_set_p_p_k",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 767 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_s_pc",
-    "Parrot_new_p_s_pc",
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_p_kc",
+    "Parrot_set_p_p_kc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 768 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_sc_pc",
-    "Parrot_new_p_sc_pc",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 769 */
     /* type PARROT_INLINE_OP, */
-    "new",
-    "new_p_p",
-    "Parrot_new_p_p",
+    "clone",
+    "clone_p_p",
+    "Parrot_clone_p_p",
     /* "",  body */
     0,
     3,
@@ -10586,23 +10391,11 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 770 */
+  { /* 769 */
     /* type PARROT_INLINE_OP, */
-    "new",
-    "new_p_pc",
-    "Parrot_new_p_pc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 771 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_p_p",
-    "Parrot_new_p_p_p",
+    "clone",
+    "clone_p_p_p",
+    "Parrot_clone_p_p_p",
     /* "",  body */
     0,
     4,
@@ -10610,1199 +10403,1223 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 772 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_pc_p",
-    "Parrot_new_p_pc_p",
+  { /* 770 */
+    /* type PARROT_INLINE_OP, */
+    "clone",
+    "clone_p_p_pc",
+    "Parrot_clone_p_p_pc",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 773 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_p_pc",
-    "Parrot_new_p_p_pc",
+  { /* 771 */
+    /* type PARROT_INLINE_OP, */
+    "copy",
+    "copy_p_p",
+    "Parrot_copy_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 774 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_pc_pc",
-    "Parrot_new_p_pc_pc",
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 772 */
+    /* type PARROT_INLINE_OP, */
+    "null",
+    "null_s",
+    "Parrot_null_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 773 */
+    /* type PARROT_INLINE_OP, */
+    "null",
+    "null_i",
+    "Parrot_null_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 774 */
+    /* type PARROT_INLINE_OP, */
+    "null",
+    "null_p",
+    "Parrot_null_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 775 */
-    /* type PARROT_FUNCTION_OP, */
-    "root_new",
-    "root_new_p_p",
-    "Parrot_root_new_p_p",
+    /* type PARROT_INLINE_OP, */
+    "null",
+    "null_n",
+    "Parrot_null_n",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 776 */
-    /* type PARROT_FUNCTION_OP, */
-    "root_new",
-    "root_new_p_pc",
-    "Parrot_root_new_p_pc",
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_s",
+    "Parrot_ord_i_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 777 */
-    /* type PARROT_FUNCTION_OP, */
-    "root_new",
-    "root_new_p_p_p",
-    "Parrot_root_new_p_p_p",
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_sc",
+    "Parrot_ord_i_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 778 */
-    /* type PARROT_FUNCTION_OP, */
-    "root_new",
-    "root_new_p_pc_p",
-    "Parrot_root_new_p_pc_p",
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_s_i",
+    "Parrot_ord_i_s_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 779 */
-    /* type PARROT_FUNCTION_OP, */
-    "root_new",
-    "root_new_p_p_pc",
-    "Parrot_root_new_p_p_pc",
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_sc_i",
+    "Parrot_ord_i_sc_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 780 */
-    /* type PARROT_FUNCTION_OP, */
-    "root_new",
-    "root_new_p_pc_pc",
-    "Parrot_root_new_p_pc_pc",
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_s_ic",
+    "Parrot_ord_i_s_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 781 */
     /* type PARROT_INLINE_OP, */
-    "typeof",
-    "typeof_s_p",
-    "Parrot_typeof_s_p",
+    "ord",
+    "ord_i_sc_ic",
+    "Parrot_ord_i_sc_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 782 */
     /* type PARROT_INLINE_OP, */
-    "typeof",
-    "typeof_p_p",
-    "Parrot_typeof_p_p",
+    "chr",
+    "chr_s_i",
+    "Parrot_chr_s_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 783 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_repr",
-    "get_repr_s_p",
-    "Parrot_get_repr_s_p",
+    /* type PARROT_INLINE_OP, */
+    "chr",
+    "chr_s_ic",
+    "Parrot_chr_s_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 784 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_method",
-    "find_method_p_p_s",
-    "Parrot_find_method_p_p_s",
+    /* type PARROT_INLINE_OP, */
+    "chopn",
+    "chopn_s_s_i",
+    "Parrot_chopn_s_s_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 785 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_method",
-    "find_method_p_p_sc",
-    "Parrot_find_method_p_p_sc",
+    /* type PARROT_INLINE_OP, */
+    "chopn",
+    "chopn_s_sc_i",
+    "Parrot_chopn_s_sc_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 786 */
     /* type PARROT_INLINE_OP, */
-    "defined",
-    "defined_i_p",
-    "Parrot_defined_i_p",
+    "chopn",
+    "chopn_s_s_ic",
+    "Parrot_chopn_s_s_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 787 */
     /* type PARROT_INLINE_OP, */
-    "defined",
-    "defined_i_p_ki",
-    "Parrot_defined_i_p_ki",
+    "chopn",
+    "chopn_s_sc_ic",
+    "Parrot_chopn_s_sc_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 788 */
     /* type PARROT_INLINE_OP, */
-    "defined",
-    "defined_i_p_kic",
-    "Parrot_defined_i_p_kic",
+    "concat",
+    "concat_s_s",
+    "Parrot_concat_s_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 789 */
     /* type PARROT_INLINE_OP, */
-    "defined",
-    "defined_i_p_k",
-    "Parrot_defined_i_p_k",
+    "concat",
+    "concat_s_sc",
+    "Parrot_concat_s_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 790 */
     /* type PARROT_INLINE_OP, */
-    "defined",
-    "defined_i_p_kc",
-    "Parrot_defined_i_p_kc",
+    "concat",
+    "concat_p_p",
+    "Parrot_concat_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 791 */
     /* type PARROT_INLINE_OP, */
-    "exists",
-    "exists_i_p_ki",
-    "Parrot_exists_i_p_ki",
+    "concat",
+    "concat_p_s",
+    "Parrot_concat_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 792 */
     /* type PARROT_INLINE_OP, */
-    "exists",
-    "exists_i_p_kic",
-    "Parrot_exists_i_p_kic",
+    "concat",
+    "concat_p_sc",
+    "Parrot_concat_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 793 */
     /* type PARROT_INLINE_OP, */
-    "exists",
-    "exists_i_p_k",
-    "Parrot_exists_i_p_k",
+    "concat",
+    "concat_s_s_s",
+    "Parrot_concat_s_s_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 794 */
     /* type PARROT_INLINE_OP, */
-    "exists",
-    "exists_i_p_kc",
-    "Parrot_exists_i_p_kc",
+    "concat",
+    "concat_s_sc_s",
+    "Parrot_concat_s_sc_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 795 */
     /* type PARROT_INLINE_OP, */
-    "delete",
-    "delete_p_k",
-    "Parrot_delete_p_k",
+    "concat",
+    "concat_s_s_sc",
+    "Parrot_concat_s_s_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_K },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 796 */
     /* type PARROT_INLINE_OP, */
-    "delete",
-    "delete_p_kc",
-    "Parrot_delete_p_kc",
+    "concat",
+    "concat_p_p_s",
+    "Parrot_concat_p_p_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_KC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 797 */
     /* type PARROT_INLINE_OP, */
-    "delete",
-    "delete_p_ki",
-    "Parrot_delete_p_ki",
+    "concat",
+    "concat_p_p_sc",
+    "Parrot_concat_p_p_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_KI },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 798 */
     /* type PARROT_INLINE_OP, */
-    "delete",
-    "delete_p_kic",
-    "Parrot_delete_p_kic",
+    "concat",
+    "concat_p_p_p",
+    "Parrot_concat_p_p_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_KIC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 799 */
     /* type PARROT_INLINE_OP, */
-    "elements",
-    "elements_i_p",
-    "Parrot_elements_i_p",
+    "repeat",
+    "repeat_s_s_i",
+    "Parrot_repeat_s_s_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 800 */
     /* type PARROT_INLINE_OP, */
-    "push",
-    "push_p_i",
-    "Parrot_push_p_i",
+    "repeat",
+    "repeat_s_sc_i",
+    "Parrot_repeat_s_sc_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 801 */
     /* type PARROT_INLINE_OP, */
-    "push",
-    "push_p_ic",
-    "Parrot_push_p_ic",
+    "repeat",
+    "repeat_s_s_ic",
+    "Parrot_repeat_s_s_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 802 */
     /* type PARROT_INLINE_OP, */
-    "push",
-    "push_p_n",
-    "Parrot_push_p_n",
+    "repeat",
+    "repeat_s_sc_ic",
+    "Parrot_repeat_s_sc_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 803 */
     /* type PARROT_INLINE_OP, */
-    "push",
-    "push_p_nc",
-    "Parrot_push_p_nc",
+    "repeat",
+    "repeat_p_p_i",
+    "Parrot_repeat_p_p_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 804 */
     /* type PARROT_INLINE_OP, */
-    "push",
-    "push_p_s",
-    "Parrot_push_p_s",
+    "repeat",
+    "repeat_p_p_ic",
+    "Parrot_repeat_p_p_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 805 */
     /* type PARROT_INLINE_OP, */
-    "push",
-    "push_p_sc",
-    "Parrot_push_p_sc",
+    "repeat",
+    "repeat_p_p_p",
+    "Parrot_repeat_p_p_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 806 */
     /* type PARROT_INLINE_OP, */
-    "push",
-    "push_p_p",
-    "Parrot_push_p_p",
+    "repeat",
+    "repeat_p_i",
+    "Parrot_repeat_p_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 807 */
     /* type PARROT_INLINE_OP, */
-    "pop",
-    "pop_i_p",
-    "Parrot_pop_i_p",
+    "repeat",
+    "repeat_p_ic",
+    "Parrot_repeat_p_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 808 */
     /* type PARROT_INLINE_OP, */
-    "pop",
-    "pop_n_p",
-    "Parrot_pop_n_p",
+    "repeat",
+    "repeat_p_p",
+    "Parrot_repeat_p_p",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 809 */
     /* type PARROT_INLINE_OP, */
-    "pop",
-    "pop_s_p",
-    "Parrot_pop_s_p",
+    "length",
+    "length_i_s",
+    "Parrot_length_i_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 810 */
     /* type PARROT_INLINE_OP, */
-    "pop",
-    "pop_p_p",
-    "Parrot_pop_p_p",
+    "length",
+    "length_i_sc",
+    "Parrot_length_i_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 811 */
     /* type PARROT_INLINE_OP, */
-    "unshift",
-    "unshift_p_i",
-    "Parrot_unshift_p_i",
+    "bytelength",
+    "bytelength_i_s",
+    "Parrot_bytelength_i_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 812 */
     /* type PARROT_INLINE_OP, */
-    "unshift",
-    "unshift_p_ic",
-    "Parrot_unshift_p_ic",
+    "bytelength",
+    "bytelength_i_sc",
+    "Parrot_bytelength_i_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 813 */
-    /* type PARROT_INLINE_OP, */
-    "unshift",
-    "unshift_p_n",
-    "Parrot_unshift_p_n",
+    /* type PARROT_FUNCTION_OP, */
+    "pin",
+    "pin_s",
+    "Parrot_pin_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
   },
   { /* 814 */
-    /* type PARROT_INLINE_OP, */
-    "unshift",
-    "unshift_p_nc",
-    "Parrot_unshift_p_nc",
+    /* type PARROT_FUNCTION_OP, */
+    "unpin",
+    "unpin_s",
+    "Parrot_unpin_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
   },
   { /* 815 */
     /* type PARROT_INLINE_OP, */
-    "unshift",
-    "unshift_p_s",
-    "Parrot_unshift_p_s",
+    "substr",
+    "substr_s_s_i",
+    "Parrot_substr_s_s_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 816 */
     /* type PARROT_INLINE_OP, */
-    "unshift",
-    "unshift_p_sc",
-    "Parrot_unshift_p_sc",
+    "substr",
+    "substr_s_sc_i",
+    "Parrot_substr_s_sc_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 817 */
     /* type PARROT_INLINE_OP, */
-    "unshift",
-    "unshift_p_p",
-    "Parrot_unshift_p_p",
+    "substr",
+    "substr_s_s_ic",
+    "Parrot_substr_s_s_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 818 */
     /* type PARROT_INLINE_OP, */
-    "shift",
-    "shift_i_p",
-    "Parrot_shift_i_p",
+    "substr",
+    "substr_s_sc_ic",
+    "Parrot_substr_s_sc_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 819 */
     /* type PARROT_INLINE_OP, */
-    "shift",
-    "shift_n_p",
-    "Parrot_shift_n_p",
+    "substr",
+    "substr_s_s_i_i",
+    "Parrot_substr_s_s_i_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 820 */
     /* type PARROT_INLINE_OP, */
-    "shift",
-    "shift_s_p",
-    "Parrot_shift_s_p",
+    "substr",
+    "substr_s_sc_i_i",
+    "Parrot_substr_s_sc_i_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 821 */
     /* type PARROT_INLINE_OP, */
-    "shift",
-    "shift_p_p",
-    "Parrot_shift_p_p",
+    "substr",
+    "substr_s_s_ic_i",
+    "Parrot_substr_s_s_ic_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 822 */
     /* type PARROT_INLINE_OP, */
-    "splice",
-    "splice_p_p_i_i",
-    "Parrot_splice_p_p_i_i",
+    "substr",
+    "substr_s_sc_ic_i",
+    "Parrot_substr_s_sc_ic_i",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 823 */
     /* type PARROT_INLINE_OP, */
-    "splice",
-    "splice_p_p_ic_i",
-    "Parrot_splice_p_p_ic_i",
+    "substr",
+    "substr_s_s_i_ic",
+    "Parrot_substr_s_s_i_ic",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 824 */
     /* type PARROT_INLINE_OP, */
-    "splice",
-    "splice_p_p_i_ic",
-    "Parrot_splice_p_p_i_ic",
+    "substr",
+    "substr_s_sc_i_ic",
+    "Parrot_substr_s_sc_i_ic",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 825 */
     /* type PARROT_INLINE_OP, */
-    "splice",
-    "splice_p_p_ic_ic",
-    "Parrot_splice_p_p_ic_ic",
+    "substr",
+    "substr_s_s_ic_ic",
+    "Parrot_substr_s_s_ic_ic",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 826 */
-    /* type PARROT_FUNCTION_OP, */
-    "setprop",
-    "setprop_p_s_p",
-    "Parrot_setprop_p_s_p",
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_sc_ic_ic",
+    "Parrot_substr_s_sc_ic_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 827 */
-    /* type PARROT_FUNCTION_OP, */
-    "setprop",
-    "setprop_p_sc_p",
-    "Parrot_setprop_p_sc_p",
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_p_i_i",
+    "Parrot_substr_s_p_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 828 */
-    /* type PARROT_FUNCTION_OP, */
-    "getprop",
-    "getprop_p_s_p",
-    "Parrot_getprop_p_s_p",
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_p_ic_i",
+    "Parrot_substr_s_p_ic_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 829 */
-    /* type PARROT_FUNCTION_OP, */
-    "getprop",
-    "getprop_p_sc_p",
-    "Parrot_getprop_p_sc_p",
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_p_i_ic",
+    "Parrot_substr_s_p_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 830 */
-    /* type PARROT_FUNCTION_OP, */
-    "delprop",
-    "delprop_p_s",
-    "Parrot_delprop_p_s",
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_p_ic_ic",
+    "Parrot_substr_s_p_ic_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 831 */
-    /* type PARROT_FUNCTION_OP, */
-    "delprop",
-    "delprop_p_sc",
-    "Parrot_delprop_p_sc",
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_i_i_s",
+    "Parrot_replace_s_s_i_i_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 832 */
-    /* type PARROT_FUNCTION_OP, */
-    "prophash",
-    "prophash_p_p",
-    "Parrot_prophash_p_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_i_i_s",
+    "Parrot_replace_s_sc_i_i_s",
+    /* "",  body */
+    0,
+    6,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 833 */
-    /* type PARROT_FUNCTION_OP, */
-    "freeze",
-    "freeze_s_p",
-    "Parrot_freeze_s_p",
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_ic_i_s",
+    "Parrot_replace_s_s_ic_i_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 834 */
-    /* type PARROT_FUNCTION_OP, */
-    "thaw",
-    "thaw_p_s",
-    "Parrot_thaw_p_s",
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_ic_i_s",
+    "Parrot_replace_s_sc_ic_i_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 835 */
-    /* type PARROT_FUNCTION_OP, */
-    "thaw",
-    "thaw_p_sc",
-    "Parrot_thaw_p_sc",
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_i_ic_s",
+    "Parrot_replace_s_s_i_ic_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 836 */
     /* type PARROT_INLINE_OP, */
-    "add_multi",
-    "add_multi_s_s_p",
-    "Parrot_add_multi_s_s_p",
+    "replace",
+    "replace_s_sc_i_ic_s",
+    "Parrot_replace_s_sc_i_ic_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 837 */
     /* type PARROT_INLINE_OP, */
-    "add_multi",
-    "add_multi_sc_s_p",
-    "Parrot_add_multi_sc_s_p",
+    "replace",
+    "replace_s_s_ic_ic_s",
+    "Parrot_replace_s_s_ic_ic_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 838 */
     /* type PARROT_INLINE_OP, */
-    "add_multi",
-    "add_multi_s_sc_p",
-    "Parrot_add_multi_s_sc_p",
+    "replace",
+    "replace_s_sc_ic_ic_s",
+    "Parrot_replace_s_sc_ic_ic_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 839 */
     /* type PARROT_INLINE_OP, */
-    "add_multi",
-    "add_multi_sc_sc_p",
-    "Parrot_add_multi_sc_sc_p",
+    "replace",
+    "replace_s_s_i_i_sc",
+    "Parrot_replace_s_s_i_i_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 840 */
     /* type PARROT_INLINE_OP, */
-    "find_multi",
-    "find_multi_p_s_s",
-    "Parrot_find_multi_p_s_s",
+    "replace",
+    "replace_s_sc_i_i_sc",
+    "Parrot_replace_s_sc_i_i_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 841 */
     /* type PARROT_INLINE_OP, */
-    "find_multi",
-    "find_multi_p_sc_s",
-    "Parrot_find_multi_p_sc_s",
+    "replace",
+    "replace_s_s_ic_i_sc",
+    "Parrot_replace_s_s_ic_i_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 842 */
     /* type PARROT_INLINE_OP, */
-    "find_multi",
-    "find_multi_p_s_sc",
-    "Parrot_find_multi_p_s_sc",
+    "replace",
+    "replace_s_sc_ic_i_sc",
+    "Parrot_replace_s_sc_ic_i_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 843 */
     /* type PARROT_INLINE_OP, */
-    "find_multi",
-    "find_multi_p_sc_sc",
-    "Parrot_find_multi_p_sc_sc",
+    "replace",
+    "replace_s_s_i_ic_sc",
+    "Parrot_replace_s_s_i_ic_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 844 */
-    /* type PARROT_FUNCTION_OP, */
-    "register",
-    "register_p",
-    "Parrot_register_p",
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_i_ic_sc",
+    "Parrot_replace_s_sc_i_ic_sc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 845 */
-    /* type PARROT_FUNCTION_OP, */
-    "unregister",
-    "unregister_p",
-    "Parrot_unregister_p",
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_ic_ic_sc",
+    "Parrot_replace_s_s_ic_ic_sc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 846 */
-    /* type PARROT_FUNCTION_OP, */
-    "box",
-    "box_p_i",
-    "Parrot_box_p_i",
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_ic_ic_sc",
+    "Parrot_replace_s_sc_ic_ic_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    6,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 847 */
-    /* type PARROT_FUNCTION_OP, */
-    "box",
-    "box_p_ic",
-    "Parrot_box_p_ic",
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_s_s",
+    "Parrot_index_i_s_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 848 */
-    /* type PARROT_FUNCTION_OP, */
-    "box",
-    "box_p_n",
-    "Parrot_box_p_n",
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_sc_s",
+    "Parrot_index_i_sc_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 849 */
-    /* type PARROT_FUNCTION_OP, */
-    "box",
-    "box_p_nc",
-    "Parrot_box_p_nc",
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_s_sc",
+    "Parrot_index_i_s_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 850 */
-    /* type PARROT_FUNCTION_OP, */
-    "box",
-    "box_p_s",
-    "Parrot_box_p_s",
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_sc_sc",
+    "Parrot_index_i_sc_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 851 */
-    /* type PARROT_FUNCTION_OP, */
-    "box",
-    "box_p_sc",
-    "Parrot_box_p_sc",
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_s_s_i",
+    "Parrot_index_i_s_s_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 852 */
     /* type PARROT_INLINE_OP, */
-    "iter",
-    "iter_p_p",
-    "Parrot_iter_p_p",
+    "index",
+    "index_i_sc_s_i",
+    "Parrot_index_i_sc_s_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 853 */
     /* type PARROT_INLINE_OP, */
-    "morph",
-    "morph_p_p",
-    "Parrot_morph_p_p",
+    "index",
+    "index_i_s_sc_i",
+    "Parrot_index_i_s_sc_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 854 */
     /* type PARROT_INLINE_OP, */
-    "morph",
-    "morph_p_pc",
-    "Parrot_morph_p_pc",
+    "index",
+    "index_i_sc_sc_i",
+    "Parrot_index_i_sc_sc_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 855 */
     /* type PARROT_INLINE_OP, */
-    "clone",
-    "clone_s_s",
-    "Parrot_clone_s_s",
+    "index",
+    "index_i_s_s_ic",
+    "Parrot_index_i_s_s_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 856 */
     /* type PARROT_INLINE_OP, */
-    "clone",
-    "clone_s_sc",
-    "Parrot_clone_s_sc",
+    "index",
+    "index_i_sc_s_ic",
+    "Parrot_index_i_sc_s_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 857 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_i",
-    "Parrot_set_i_i",
+    "index",
+    "index_i_s_sc_ic",
+    "Parrot_index_i_s_sc_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 858 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_ic",
-    "Parrot_set_i_ic",
+    "index",
+    "index_i_sc_sc_ic",
+    "Parrot_index_i_sc_sc_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 859 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_n",
-    "Parrot_set_i_n",
+    "sprintf",
+    "sprintf_s_s_p",
+    "Parrot_sprintf_s_s_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 860 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_nc",
-    "Parrot_set_i_nc",
+    "sprintf",
+    "sprintf_s_sc_p",
+    "Parrot_sprintf_s_sc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 861 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_s",
-    "Parrot_set_i_s",
+    "sprintf",
+    "sprintf_p_p_p",
+    "Parrot_sprintf_p_p_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 862 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_sc",
-    "Parrot_set_i_sc",
+    "new",
+    "new_s",
+    "Parrot_new_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 863 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_n",
-    "Parrot_set_n_n",
+    "new",
+    "new_s_i",
+    "Parrot_new_s_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 864 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_nc",
-    "Parrot_set_n_nc",
+    "new",
+    "new_s_ic",
+    "Parrot_new_s_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 865 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_i",
-    "Parrot_set_n_i",
+    "stringinfo",
+    "stringinfo_i_s_i",
+    "Parrot_stringinfo_i_s_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 866 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_ic",
-    "Parrot_set_n_ic",
+    "stringinfo",
+    "stringinfo_i_sc_i",
+    "Parrot_stringinfo_i_sc_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 867 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_s",
-    "Parrot_set_n_s",
+    "stringinfo",
+    "stringinfo_i_s_ic",
+    "Parrot_stringinfo_i_s_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 868 */
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 868 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_sc",
-    "Parrot_set_n_sc",
+    "stringinfo",
+    "stringinfo_i_sc_ic",
+    "Parrot_stringinfo_i_sc_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_N, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 869 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_p",
-    "Parrot_set_n_p",
+    "upcase",
+    "upcase_s_s",
+    "Parrot_upcase_s_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_N, PARROT_ARG_P },
+    { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 870 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_p",
-    "Parrot_set_s_p",
+    "upcase",
+    "upcase_s_sc",
+    "Parrot_upcase_s_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 871 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_s",
-    "Parrot_set_s_s",
+    "downcase",
+    "downcase_s_s",
+    "Parrot_downcase_s_s",
     /* "",  body */
     0,
     3,
@@ -11812,9 +11629,9 @@
   },
   { /* 872 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_sc",
-    "Parrot_set_s_sc",
+    "downcase",
+    "downcase_s_sc",
+    "Parrot_downcase_s_sc",
     /* "",  body */
     0,
     3,
@@ -11824,7603 +11641,4279 @@
   },
   { /* 873 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_i",
-    "Parrot_set_s_i",
+    "titlecase",
+    "titlecase_s_s",
+    "Parrot_titlecase_s_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 874 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_ic",
-    "Parrot_set_s_ic",
+    "titlecase",
+    "titlecase_s_sc",
+    "Parrot_titlecase_s_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 875 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_n",
-    "Parrot_set_s_n",
+    /* type PARROT_FUNCTION_OP, */
+    "join",
+    "join_s_s_p",
+    "Parrot_join_s_s_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 876 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_nc",
-    "Parrot_set_s_nc",
+    /* type PARROT_FUNCTION_OP, */
+    "join",
+    "join_s_sc_p",
+    "Parrot_join_s_sc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_NC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 877 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_pc",
-    "Parrot_set_p_pc",
+    /* type PARROT_FUNCTION_OP, */
+    "split",
+    "split_p_s_s",
+    "Parrot_split_p_s_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 878 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_p",
-    "Parrot_set_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "split",
+    "split_p_sc_s",
+    "Parrot_split_p_sc_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 879 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_i",
-    "Parrot_set_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "split",
+    "split_p_s_sc",
+    "Parrot_split_p_s_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 880 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_ic",
-    "Parrot_set_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "split",
+    "split_p_sc_sc",
+    "Parrot_split_p_sc_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 881 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_n",
-    "Parrot_set_p_n",
+    /* type PARROT_FUNCTION_OP, */
+    "charset",
+    "charset_i_s",
+    "Parrot_charset_i_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 882 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_nc",
-    "Parrot_set_p_nc",
+    /* type PARROT_FUNCTION_OP, */
+    "charset",
+    "charset_i_sc",
+    "Parrot_charset_i_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 883 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_s",
-    "Parrot_set_p_s",
+    /* type PARROT_FUNCTION_OP, */
+    "charsetname",
+    "charsetname_s_i",
+    "Parrot_charsetname_s_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 884 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_sc",
-    "Parrot_set_p_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "charsetname",
+    "charsetname_s_ic",
+    "Parrot_charsetname_s_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 885 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_p",
-    "Parrot_set_i_p",
+    /* type PARROT_FUNCTION_OP, */
+    "find_charset",
+    "find_charset_i_s",
+    "Parrot_find_charset_i_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 886 */
-    /* type PARROT_INLINE_OP, */
-    "assign",
-    "assign_p_p",
-    "Parrot_assign_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "find_charset",
+    "find_charset_i_sc",
+    "Parrot_find_charset_i_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 887 */
-    /* type PARROT_INLINE_OP, */
-    "assign",
-    "assign_p_i",
-    "Parrot_assign_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "trans_charset",
+    "trans_charset_s_s_i",
+    "Parrot_trans_charset_s_s_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 888 */
-    /* type PARROT_INLINE_OP, */
-    "assign",
-    "assign_p_ic",
-    "Parrot_assign_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "trans_charset",
+    "trans_charset_s_sc_i",
+    "Parrot_trans_charset_s_sc_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 889 */
-    /* type PARROT_INLINE_OP, */
-    "assign",
-    "assign_p_n",
-    "Parrot_assign_p_n",
+    /* type PARROT_FUNCTION_OP, */
+    "trans_charset",
+    "trans_charset_s_s_ic",
+    "Parrot_trans_charset_s_s_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 890 */
-    /* type PARROT_INLINE_OP, */
-    "assign",
-    "assign_p_nc",
-    "Parrot_assign_p_nc",
+    /* type PARROT_FUNCTION_OP, */
+    "trans_charset",
+    "trans_charset_s_sc_ic",
+    "Parrot_trans_charset_s_sc_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 891 */
-    /* type PARROT_INLINE_OP, */
-    "assign",
-    "assign_p_s",
-    "Parrot_assign_p_s",
+    /* type PARROT_FUNCTION_OP, */
+    "encoding",
+    "encoding_i_s",
+    "Parrot_encoding_i_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 892 */
-    /* type PARROT_INLINE_OP, */
-    "assign",
-    "assign_p_sc",
-    "Parrot_assign_p_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "encoding",
+    "encoding_i_sc",
+    "Parrot_encoding_i_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 893 */
-    /* type PARROT_INLINE_OP, */
-    "assign",
-    "assign_s_s",
-    "Parrot_assign_s_s",
+    /* type PARROT_FUNCTION_OP, */
+    "encodingname",
+    "encodingname_s_i",
+    "Parrot_encodingname_s_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 894 */
-    /* type PARROT_INLINE_OP, */
-    "assign",
-    "assign_s_sc",
-    "Parrot_assign_s_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "encodingname",
+    "encodingname_s_ic",
+    "Parrot_encodingname_s_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 895 */
-    /* type PARROT_INLINE_OP, */
-    "setref",
-    "setref_p_p",
-    "Parrot_setref_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "find_encoding",
+    "find_encoding_i_s",
+    "Parrot_find_encoding_i_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 896 */
-    /* type PARROT_INLINE_OP, */
-    "deref",
-    "deref_p_p",
-    "Parrot_deref_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "find_encoding",
+    "find_encoding_i_sc",
+    "Parrot_find_encoding_i_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 897 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_ki_i",
-    "Parrot_set_p_ki_i",
+    /* type PARROT_FUNCTION_OP, */
+    "trans_encoding",
+    "trans_encoding_s_s_i",
+    "Parrot_trans_encoding_s_s_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 898 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kic_i",
-    "Parrot_set_p_kic_i",
+    /* type PARROT_FUNCTION_OP, */
+    "trans_encoding",
+    "trans_encoding_s_sc_i",
+    "Parrot_trans_encoding_s_sc_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 899 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_ki_ic",
-    "Parrot_set_p_ki_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "trans_encoding",
+    "trans_encoding_s_s_ic",
+    "Parrot_trans_encoding_s_s_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 900 */
-    /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kic_ic",
-    "Parrot_set_p_kic_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "trans_encoding",
+    "trans_encoding_s_sc_ic",
+    "Parrot_trans_encoding_s_sc_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 901 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_ki_n",
-    "Parrot_set_p_ki_n",
+    "is_cclass",
+    "is_cclass_i_i_s_i",
+    "Parrot_is_cclass_i_i_s_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 902 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kic_n",
-    "Parrot_set_p_kic_n",
+    "is_cclass",
+    "is_cclass_i_ic_s_i",
+    "Parrot_is_cclass_i_ic_s_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 903 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_ki_nc",
-    "Parrot_set_p_ki_nc",
+    "is_cclass",
+    "is_cclass_i_i_sc_i",
+    "Parrot_is_cclass_i_i_sc_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 904 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kic_nc",
-    "Parrot_set_p_kic_nc",
+    "is_cclass",
+    "is_cclass_i_ic_sc_i",
+    "Parrot_is_cclass_i_ic_sc_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 905 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_ki_s",
-    "Parrot_set_p_ki_s",
+    "is_cclass",
+    "is_cclass_i_i_s_ic",
+    "Parrot_is_cclass_i_i_s_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 906 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kic_s",
-    "Parrot_set_p_kic_s",
+    "is_cclass",
+    "is_cclass_i_ic_s_ic",
+    "Parrot_is_cclass_i_ic_s_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 907 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_ki_sc",
-    "Parrot_set_p_ki_sc",
+    "is_cclass",
+    "is_cclass_i_i_sc_ic",
+    "Parrot_is_cclass_i_i_sc_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 908 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kic_sc",
-    "Parrot_set_p_kic_sc",
+    "is_cclass",
+    "is_cclass_i_ic_sc_ic",
+    "Parrot_is_cclass_i_ic_sc_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 909 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_ki_p",
-    "Parrot_set_p_ki_p",
+    "find_cclass",
+    "find_cclass_i_i_s_i_i",
+    "Parrot_find_cclass_i_i_s_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 910 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kic_p",
-    "Parrot_set_p_kic_p",
+    "find_cclass",
+    "find_cclass_i_ic_s_i_i",
+    "Parrot_find_cclass_i_ic_s_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 911 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_p_ki",
-    "Parrot_set_i_p_ki",
+    "find_cclass",
+    "find_cclass_i_i_sc_i_i",
+    "Parrot_find_cclass_i_i_sc_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 912 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_p_kic",
-    "Parrot_set_i_p_kic",
+    "find_cclass",
+    "find_cclass_i_ic_sc_i_i",
+    "Parrot_find_cclass_i_ic_sc_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 913 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_p_ki",
-    "Parrot_set_n_p_ki",
+    "find_cclass",
+    "find_cclass_i_i_s_ic_i",
+    "Parrot_find_cclass_i_i_s_ic_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KI },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 914 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_p_kic",
-    "Parrot_set_n_p_kic",
+    "find_cclass",
+    "find_cclass_i_ic_s_ic_i",
+    "Parrot_find_cclass_i_ic_s_ic_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KIC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 915 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_p_ki",
-    "Parrot_set_s_p_ki",
+    "find_cclass",
+    "find_cclass_i_i_sc_ic_i",
+    "Parrot_find_cclass_i_i_sc_ic_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KI },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 916 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_p_kic",
-    "Parrot_set_s_p_kic",
+    "find_cclass",
+    "find_cclass_i_ic_sc_ic_i",
+    "Parrot_find_cclass_i_ic_sc_ic_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KIC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 917 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_p_ki",
-    "Parrot_set_p_p_ki",
+    "find_cclass",
+    "find_cclass_i_i_s_i_ic",
+    "Parrot_find_cclass_i_i_s_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KI },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 918 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_p_kic",
-    "Parrot_set_p_p_kic",
+    "find_cclass",
+    "find_cclass_i_ic_s_i_ic",
+    "Parrot_find_cclass_i_ic_s_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KIC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 919 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_k_i",
-    "Parrot_set_p_k_i",
+    "find_cclass",
+    "find_cclass_i_i_sc_i_ic",
+    "Parrot_find_cclass_i_i_sc_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 920 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kc_i",
-    "Parrot_set_p_kc_i",
+    "find_cclass",
+    "find_cclass_i_ic_sc_i_ic",
+    "Parrot_find_cclass_i_ic_sc_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 921 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_k_ic",
-    "Parrot_set_p_k_ic",
+    "find_cclass",
+    "find_cclass_i_i_s_ic_ic",
+    "Parrot_find_cclass_i_i_s_ic_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 922 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kc_ic",
-    "Parrot_set_p_kc_ic",
+    "find_cclass",
+    "find_cclass_i_ic_s_ic_ic",
+    "Parrot_find_cclass_i_ic_s_ic_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 923 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_k_n",
-    "Parrot_set_p_k_n",
+    "find_cclass",
+    "find_cclass_i_i_sc_ic_ic",
+    "Parrot_find_cclass_i_i_sc_ic_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 924 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kc_n",
-    "Parrot_set_p_kc_n",
+    "find_cclass",
+    "find_cclass_i_ic_sc_ic_ic",
+    "Parrot_find_cclass_i_ic_sc_ic_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_N },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 925 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_k_nc",
-    "Parrot_set_p_k_nc",
+    "find_not_cclass",
+    "find_not_cclass_i_i_s_i_i",
+    "Parrot_find_not_cclass_i_i_s_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 926 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kc_nc",
-    "Parrot_set_p_kc_nc",
+    "find_not_cclass",
+    "find_not_cclass_i_ic_s_i_i",
+    "Parrot_find_not_cclass_i_ic_s_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 927 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_k_s",
-    "Parrot_set_p_k_s",
+    "find_not_cclass",
+    "find_not_cclass_i_i_sc_i_i",
+    "Parrot_find_not_cclass_i_i_sc_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 928 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kc_s",
-    "Parrot_set_p_kc_s",
+    "find_not_cclass",
+    "find_not_cclass_i_ic_sc_i_i",
+    "Parrot_find_not_cclass_i_ic_sc_i_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 929 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_k_sc",
-    "Parrot_set_p_k_sc",
+    "find_not_cclass",
+    "find_not_cclass_i_i_s_ic_i",
+    "Parrot_find_not_cclass_i_i_s_ic_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 930 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kc_sc",
-    "Parrot_set_p_kc_sc",
+    "find_not_cclass",
+    "find_not_cclass_i_ic_s_ic_i",
+    "Parrot_find_not_cclass_i_ic_s_ic_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 931 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_k_p",
-    "Parrot_set_p_k_p",
+    "find_not_cclass",
+    "find_not_cclass_i_i_sc_ic_i",
+    "Parrot_find_not_cclass_i_i_sc_ic_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 932 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_kc_p",
-    "Parrot_set_p_kc_p",
+    "find_not_cclass",
+    "find_not_cclass_i_ic_sc_ic_i",
+    "Parrot_find_not_cclass_i_ic_sc_ic_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 933 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_p_k",
-    "Parrot_set_i_p_k",
+    "find_not_cclass",
+    "find_not_cclass_i_i_s_i_ic",
+    "Parrot_find_not_cclass_i_i_s_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 934 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_i_p_kc",
-    "Parrot_set_i_p_kc",
+    "find_not_cclass",
+    "find_not_cclass_i_ic_s_i_ic",
+    "Parrot_find_not_cclass_i_ic_s_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 935 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_p_k",
-    "Parrot_set_n_p_k",
+    "find_not_cclass",
+    "find_not_cclass_i_i_sc_i_ic",
+    "Parrot_find_not_cclass_i_i_sc_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_K },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 936 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_n_p_kc",
-    "Parrot_set_n_p_kc",
+    "find_not_cclass",
+    "find_not_cclass_i_ic_sc_i_ic",
+    "Parrot_find_not_cclass_i_ic_sc_i_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 937 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_p_k",
-    "Parrot_set_s_p_k",
+    "find_not_cclass",
+    "find_not_cclass_i_i_s_ic_ic",
+    "Parrot_find_not_cclass_i_i_s_ic_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_K },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 938 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_s_p_kc",
-    "Parrot_set_s_p_kc",
+    "find_not_cclass",
+    "find_not_cclass_i_ic_s_ic_ic",
+    "Parrot_find_not_cclass_i_ic_s_ic_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 939 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_p_k",
-    "Parrot_set_p_p_k",
+    "find_not_cclass",
+    "find_not_cclass_i_i_sc_ic_ic",
+    "Parrot_find_not_cclass_i_i_sc_ic_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_K },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 940 */
     /* type PARROT_INLINE_OP, */
-    "set",
-    "set_p_p_kc",
-    "Parrot_set_p_p_kc",
+    "find_not_cclass",
+    "find_not_cclass_i_ic_sc_ic_ic",
+    "Parrot_find_not_cclass_i_ic_sc_ic_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    6,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0, 0 }
   },
   { /* 941 */
-    /* type PARROT_INLINE_OP, */
-    "clone",
-    "clone_p_p",
-    "Parrot_clone_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "escape",
+    "escape_s_s",
+    "Parrot_escape_s_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 942 */
-    /* type PARROT_INLINE_OP, */
-    "clone",
-    "clone_p_p_p",
-    "Parrot_clone_p_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "compose",
+    "compose_s_s",
+    "Parrot_compose_s_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 943 */
-    /* type PARROT_INLINE_OP, */
-    "clone",
-    "clone_p_p_pc",
-    "Parrot_clone_p_p_pc",
+    /* type PARROT_FUNCTION_OP, */
+    "compose",
+    "compose_s_sc",
+    "Parrot_compose_s_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 944 */
     /* type PARROT_INLINE_OP, */
-    "copy",
-    "copy_p_p",
-    "Parrot_copy_p_p",
+    "spawnw",
+    "spawnw_i_s",
+    "Parrot_spawnw_i_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 945 */
     /* type PARROT_INLINE_OP, */
-    "null",
-    "null_s",
-    "Parrot_null_s",
-    /* "",  body */
+    "spawnw",
+    "spawnw_i_sc",
+    "Parrot_spawnw_i_sc",
+    /* "",  body */
     0,
-    2,
-    { PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 946 */
     /* type PARROT_INLINE_OP, */
-    "null",
-    "null_i",
-    "Parrot_null_i",
+    "spawnw",
+    "spawnw_i_p",
+    "Parrot_spawnw_i_p",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 947 */
     /* type PARROT_INLINE_OP, */
-    "null",
-    "null_p",
-    "Parrot_null_p",
+    "err",
+    "err_i",
+    "Parrot_err_i",
     /* "",  body */
     0,
     2,
-    { PARROT_ARG_P },
+    { PARROT_ARG_I },
     { PARROT_ARGDIR_OUT },
     { 0 }
   },
   { /* 948 */
-    /* type PARROT_INLINE_OP, */
-    "null",
-    "null_n",
-    "Parrot_null_n",
+    /* type PARROT_FUNCTION_OP, */
+    "err",
+    "err_s",
+    "Parrot_err_s",
     /* "",  body */
     0,
     2,
-    { PARROT_ARG_N },
+    { PARROT_ARG_S },
     { PARROT_ARGDIR_OUT },
     { 0 }
   },
   { /* 949 */
-    /* type PARROT_INLINE_OP, */
-    "ord",
-    "ord_i_s",
-    "Parrot_ord_i_s",
+    /* type PARROT_FUNCTION_OP, */
+    "err",
+    "err_s_i",
+    "Parrot_err_s_i",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 950 */
-    /* type PARROT_INLINE_OP, */
-    "ord",
-    "ord_i_sc",
-    "Parrot_ord_i_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "err",
+    "err_s_ic",
+    "Parrot_err_s_ic",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 951 */
     /* type PARROT_INLINE_OP, */
-    "ord",
-    "ord_i_s_i",
-    "Parrot_ord_i_s_i",
+    "time",
+    "time_i",
+    "Parrot_time_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 952 */
     /* type PARROT_INLINE_OP, */
-    "ord",
-    "ord_i_sc_i",
-    "Parrot_ord_i_sc_i",
+    "time",
+    "time_n",
+    "Parrot_time_n",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 953 */
     /* type PARROT_INLINE_OP, */
-    "ord",
-    "ord_i_s_ic",
-    "Parrot_ord_i_s_ic",
+    "sleep",
+    "sleep_i",
+    "Parrot_sleep_i",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
   { /* 954 */
     /* type PARROT_INLINE_OP, */
-    "ord",
-    "ord_i_sc_ic",
-    "Parrot_ord_i_sc_ic",
+    "sleep",
+    "sleep_ic",
+    "Parrot_sleep_ic",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
   { /* 955 */
     /* type PARROT_INLINE_OP, */
-    "chr",
-    "chr_s_i",
-    "Parrot_chr_s_i",
+    "sleep",
+    "sleep_n",
+    "Parrot_sleep_n",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
   { /* 956 */
     /* type PARROT_INLINE_OP, */
-    "chr",
-    "chr_s_ic",
-    "Parrot_chr_s_ic",
+    "sleep",
+    "sleep_nc",
+    "Parrot_sleep_nc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    2,
+    { PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
   { /* 957 */
-    /* type PARROT_INLINE_OP, */
-    "chopn",
-    "chopn_s_s_i",
-    "Parrot_chopn_s_s_i",
+    /* type PARROT_FUNCTION_OP, */
+    "store_lex",
+    "store_lex_s_p",
+    "Parrot_store_lex_s_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 958 */
-    /* type PARROT_INLINE_OP, */
-    "chopn",
-    "chopn_s_sc_i",
-    "Parrot_chopn_s_sc_i",
+    /* type PARROT_FUNCTION_OP, */
+    "store_lex",
+    "store_lex_sc_p",
+    "Parrot_store_lex_sc_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 959 */
-    /* type PARROT_INLINE_OP, */
-    "chopn",
-    "chopn_s_s_ic",
-    "Parrot_chopn_s_s_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "store_dynamic_lex",
+    "store_dynamic_lex_s_p",
+    "Parrot_store_dynamic_lex_s_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 960 */
-    /* type PARROT_INLINE_OP, */
-    "chopn",
-    "chopn_s_sc_ic",
-    "Parrot_chopn_s_sc_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "store_dynamic_lex",
+    "store_dynamic_lex_sc_p",
+    "Parrot_store_dynamic_lex_sc_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 961 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_s_s",
-    "Parrot_concat_s_s",
+    /* type PARROT_FUNCTION_OP, */
+    "find_lex",
+    "find_lex_p_s",
+    "Parrot_find_lex_p_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 962 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_s_sc",
-    "Parrot_concat_s_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "find_lex",
+    "find_lex_p_sc",
+    "Parrot_find_lex_p_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 963 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_p_p",
-    "Parrot_concat_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "find_dynamic_lex",
+    "find_dynamic_lex_p_s",
+    "Parrot_find_dynamic_lex_p_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 964 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_p_s",
-    "Parrot_concat_p_s",
+    /* type PARROT_FUNCTION_OP, */
+    "find_dynamic_lex",
+    "find_dynamic_lex_p_sc",
+    "Parrot_find_dynamic_lex_p_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 965 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_p_sc",
-    "Parrot_concat_p_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "find_caller_lex",
+    "find_caller_lex_p_s",
+    "Parrot_find_caller_lex_p_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 966 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_s_s_s",
-    "Parrot_concat_s_s_s",
+    /* type PARROT_FUNCTION_OP, */
+    "find_caller_lex",
+    "find_caller_lex_p_sc",
+    "Parrot_find_caller_lex_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 967 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_s_sc_s",
-    "Parrot_concat_s_sc_s",
+    /* type PARROT_FUNCTION_OP, */
+    "get_namespace",
+    "get_namespace_p",
+    "Parrot_get_namespace_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 968 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_s_s_sc",
-    "Parrot_concat_s_s_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "get_namespace",
+    "get_namespace_p_p",
+    "Parrot_get_namespace_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 969 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_p_p_s",
-    "Parrot_concat_p_p_s",
+    /* type PARROT_FUNCTION_OP, */
+    "get_namespace",
+    "get_namespace_p_pc",
+    "Parrot_get_namespace_p_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 970 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_p_p_sc",
-    "Parrot_concat_p_p_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_namespace",
+    "get_hll_namespace_p",
+    "Parrot_get_hll_namespace_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 971 */
-    /* type PARROT_INLINE_OP, */
-    "concat",
-    "concat_p_p_p",
-    "Parrot_concat_p_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_namespace",
+    "get_hll_namespace_p_p",
+    "Parrot_get_hll_namespace_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 972 */
-    /* type PARROT_INLINE_OP, */
-    "repeat",
-    "repeat_s_s_i",
-    "Parrot_repeat_s_s_i",
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_namespace",
+    "get_hll_namespace_p_pc",
+    "Parrot_get_hll_namespace_p_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 973 */
-    /* type PARROT_INLINE_OP, */
-    "repeat",
-    "repeat_s_sc_i",
-    "Parrot_repeat_s_sc_i",
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_namespace",
+    "get_root_namespace_p",
+    "Parrot_get_root_namespace_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
   },
   { /* 974 */
-    /* type PARROT_INLINE_OP, */
-    "repeat",
-    "repeat_s_s_ic",
-    "Parrot_repeat_s_s_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_namespace",
+    "get_root_namespace_p_p",
+    "Parrot_get_root_namespace_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 975 */
-    /* type PARROT_INLINE_OP, */
-    "repeat",
-    "repeat_s_sc_ic",
-    "Parrot_repeat_s_sc_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_namespace",
+    "get_root_namespace_p_pc",
+    "Parrot_get_root_namespace_p_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 976 */
-    /* type PARROT_INLINE_OP, */
-    "repeat",
-    "repeat_p_p_i",
-    "Parrot_repeat_p_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_s",
+    "Parrot_get_global_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 977 */
-    /* type PARROT_INLINE_OP, */
-    "repeat",
-    "repeat_p_p_ic",
-    "Parrot_repeat_p_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_sc",
+    "Parrot_get_global_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 978 */
-    /* type PARROT_INLINE_OP, */
-    "repeat",
-    "repeat_p_p_p",
-    "Parrot_repeat_p_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_p_s",
+    "Parrot_get_global_p_p_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 979 */
-    /* type PARROT_INLINE_OP, */
-    "repeat",
-    "repeat_p_i",
-    "Parrot_repeat_p_i",
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_pc_s",
+    "Parrot_get_global_p_pc_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 980 */
-    /* type PARROT_INLINE_OP, */
-    "repeat",
-    "repeat_p_ic",
-    "Parrot_repeat_p_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_p_sc",
+    "Parrot_get_global_p_p_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 981 */
-    /* type PARROT_INLINE_OP, */
-    "repeat",
-    "repeat_p_p",
-    "Parrot_repeat_p_p",
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_pc_sc",
+    "Parrot_get_global_p_pc_sc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 982 */
-    /* type PARROT_INLINE_OP, */
-    "length",
-    "length_i_s",
-    "Parrot_length_i_s",
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_global",
+    "get_hll_global_p_s",
+    "Parrot_get_hll_global_p_s",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 983 */
-    /* type PARROT_INLINE_OP, */
-    "length",
-    "length_i_sc",
-    "Parrot_length_i_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_global",
+    "get_hll_global_p_sc",
+    "Parrot_get_hll_global_p_sc",
     /* "",  body */
     0,
     3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
   { /* 984 */
-    /* type PARROT_INLINE_OP, */
-    "bytelength",
-    "bytelength_i_s",
-    "Parrot_bytelength_i_s",
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_global",
+    "get_hll_global_p_p_s",
+    "Parrot_get_hll_global_p_p_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 985 */
-    /* type PARROT_INLINE_OP, */
-    "bytelength",
-    "bytelength_i_sc",
-    "Parrot_bytelength_i_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_global",
+    "get_hll_global_p_pc_s",
+    "Parrot_get_hll_global_p_pc_s",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 986 */
     /* type PARROT_FUNCTION_OP, */
-    "pin",
-    "pin_s",
-    "Parrot_pin_s",
+    "get_hll_global",
+    "get_hll_global_p_p_sc",
+    "Parrot_get_hll_global_p_p_sc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_S },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 987 */
     /* type PARROT_FUNCTION_OP, */
-    "unpin",
-    "unpin_s",
-    "Parrot_unpin_s",
+    "get_hll_global",
+    "get_hll_global_p_pc_sc",
+    "Parrot_get_hll_global_p_pc_sc",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_S },
-    { PARROT_ARGDIR_INOUT },
-    { 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 988 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_s_i",
-    "Parrot_substr_s_s_i",
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_s",
+    "Parrot_get_root_global_p_s",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 989 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_sc_i",
-    "Parrot_substr_s_sc_i",
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_sc",
+    "Parrot_get_root_global_p_sc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 990 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_s_ic",
-    "Parrot_substr_s_s_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_p_s",
+    "Parrot_get_root_global_p_p_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 991 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_sc_ic",
-    "Parrot_substr_s_sc_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_pc_s",
+    "Parrot_get_root_global_p_pc_s",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 992 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_s_i_i",
-    "Parrot_substr_s_s_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_p_sc",
+    "Parrot_get_root_global_p_p_sc",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 993 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_sc_i_i",
-    "Parrot_substr_s_sc_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_pc_sc",
+    "Parrot_get_root_global_p_pc_sc",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 994 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_s_ic_i",
-    "Parrot_substr_s_s_ic_i",
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_s_p",
+    "Parrot_set_global_s_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 995 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_sc_ic_i",
-    "Parrot_substr_s_sc_ic_i",
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_sc_p",
+    "Parrot_set_global_sc_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 996 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_s_i_ic",
-    "Parrot_substr_s_s_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_p_s_p",
+    "Parrot_set_global_p_s_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 997 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_sc_i_ic",
-    "Parrot_substr_s_sc_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_pc_s_p",
+    "Parrot_set_global_pc_s_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 998 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_s_ic_ic",
-    "Parrot_substr_s_s_ic_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_p_sc_p",
+    "Parrot_set_global_p_sc_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 999 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_sc_ic_ic",
-    "Parrot_substr_s_sc_ic_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_pc_sc_p",
+    "Parrot_set_global_pc_sc_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1000 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_p_i_i",
-    "Parrot_substr_s_p_i_i",
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_s_p",
+    "Parrot_set_hll_global_s_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1001 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_p_ic_i",
-    "Parrot_substr_s_p_ic_i",
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_sc_p",
+    "Parrot_set_hll_global_sc_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1002 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_p_i_ic",
-    "Parrot_substr_s_p_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_p_s_p",
+    "Parrot_set_hll_global_p_s_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1003 */
-    /* type PARROT_INLINE_OP, */
-    "substr",
-    "substr_s_p_ic_ic",
-    "Parrot_substr_s_p_ic_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_pc_s_p",
+    "Parrot_set_hll_global_pc_s_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1004 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_s_i_i_s",
-    "Parrot_replace_s_s_i_i_s",
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_p_sc_p",
+    "Parrot_set_hll_global_p_sc_p",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1005 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_sc_i_i_s",
-    "Parrot_replace_s_sc_i_i_s",
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_pc_sc_p",
+    "Parrot_set_hll_global_pc_sc_p",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1006 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_s_ic_i_s",
-    "Parrot_replace_s_s_ic_i_s",
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_s_p",
+    "Parrot_set_root_global_s_p",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1007 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_sc_ic_i_s",
-    "Parrot_replace_s_sc_ic_i_s",
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_sc_p",
+    "Parrot_set_root_global_sc_p",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1008 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_s_i_ic_s",
-    "Parrot_replace_s_s_i_ic_s",
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_p_s_p",
+    "Parrot_set_root_global_p_s_p",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1009 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_sc_i_ic_s",
-    "Parrot_replace_s_sc_i_ic_s",
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_pc_s_p",
+    "Parrot_set_root_global_pc_s_p",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1010 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_s_ic_ic_s",
-    "Parrot_replace_s_s_ic_ic_s",
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_p_sc_p",
+    "Parrot_set_root_global_p_sc_p",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1011 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_sc_ic_ic_s",
-    "Parrot_replace_s_sc_ic_ic_s",
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_pc_sc_p",
+    "Parrot_set_root_global_pc_sc_p",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1012 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_s_i_i_sc",
-    "Parrot_replace_s_s_i_i_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "find_name",
+    "find_name_p_s",
+    "Parrot_find_name_p_s",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1013 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_sc_i_i_sc",
-    "Parrot_replace_s_sc_i_i_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "find_name",
+    "find_name_p_sc",
+    "Parrot_find_name_p_sc",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1014 */
     /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_s_ic_i_sc",
-    "Parrot_replace_s_s_ic_i_sc",
+    "find_sub_not_null",
+    "find_sub_not_null_p_s",
+    "Parrot_find_sub_not_null_p_s",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1015 */
     /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_sc_ic_i_sc",
-    "Parrot_replace_s_sc_ic_i_sc",
+    "find_sub_not_null",
+    "find_sub_not_null_p_sc",
+    "Parrot_find_sub_not_null_p_sc",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1016 */
-    /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_s_i_ic_sc",
-    "Parrot_replace_s_s_i_ic_sc",
+    /* type PARROT_FUNCTION_OP, */
+    "trap",
+    "trap",
+    "Parrot_trap",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
   },
   { /* 1017 */
     /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_sc_i_ic_sc",
-    "Parrot_replace_s_sc_i_ic_sc",
+    "set_label",
+    "set_label_p_ic",
+    "Parrot_set_label_p_ic",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
   },
   { /* 1018 */
     /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_s_ic_ic_sc",
-    "Parrot_replace_s_s_ic_ic_sc",
+    "get_label",
+    "get_label_i_p",
+    "Parrot_get_label_i_p",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1019 */
     /* type PARROT_INLINE_OP, */
-    "replace",
-    "replace_s_sc_ic_ic_sc",
-    "Parrot_replace_s_sc_ic_ic_sc",
+    "fetch",
+    "fetch_p_p_p_p",
+    "Parrot_fetch_p_p_p_p",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1020 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_s_s",
-    "Parrot_index_i_s_s",
+    "fetch",
+    "fetch_p_pc_p_p",
+    "Parrot_fetch_p_pc_p_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1021 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_sc_s",
-    "Parrot_index_i_sc_s",
+    "fetch",
+    "fetch_p_p_pc_p",
+    "Parrot_fetch_p_p_pc_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1022 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_s_sc",
-    "Parrot_index_i_s_sc",
+    "fetch",
+    "fetch_p_pc_pc_p",
+    "Parrot_fetch_p_pc_pc_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1023 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_sc_sc",
-    "Parrot_index_i_sc_sc",
+    "fetch",
+    "fetch_p_p_p_pc",
+    "Parrot_fetch_p_p_p_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1024 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_s_s_i",
-    "Parrot_index_i_s_s_i",
+    "fetch",
+    "fetch_p_pc_p_pc",
+    "Parrot_fetch_p_pc_p_pc",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 1025 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_sc_s_i",
-    "Parrot_index_i_sc_s_i",
+    "fetch",
+    "fetch_p_p_pc_pc",
+    "Parrot_fetch_p_p_pc_pc",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 1026 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_s_sc_i",
-    "Parrot_index_i_s_sc_i",
+    "fetch",
+    "fetch_p_pc_pc_pc",
+    "Parrot_fetch_p_pc_pc_pc",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 1027 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_sc_sc_i",
-    "Parrot_index_i_sc_sc_i",
+    "fetch",
+    "fetch_p_p_i_p",
+    "Parrot_fetch_p_p_i_p",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 1028 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_s_s_ic",
-    "Parrot_index_i_s_s_ic",
+    "fetch",
+    "fetch_p_pc_i_p",
+    "Parrot_fetch_p_pc_i_p",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 1029 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_sc_s_ic",
-    "Parrot_index_i_sc_s_ic",
+    "fetch",
+    "fetch_p_p_ic_p",
+    "Parrot_fetch_p_p_ic_p",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 1030 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_s_sc_ic",
-    "Parrot_index_i_s_sc_ic",
+    "fetch",
+    "fetch_p_pc_ic_p",
+    "Parrot_fetch_p_pc_ic_p",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 1031 */
     /* type PARROT_INLINE_OP, */
-    "index",
-    "index_i_sc_sc_ic",
-    "Parrot_index_i_sc_sc_ic",
+    "fetch",
+    "fetch_p_p_i_pc",
+    "Parrot_fetch_p_p_i_pc",
     /* "",  body */
     0,
     5,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
   { /* 1032 */
     /* type PARROT_INLINE_OP, */
-    "sprintf",
-    "sprintf_s_s_p",
-    "Parrot_sprintf_s_s_p",
+    "fetch",
+    "fetch_p_pc_i_pc",
+    "Parrot_fetch_p_pc_i_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1033 */
     /* type PARROT_INLINE_OP, */
-    "sprintf",
-    "sprintf_s_sc_p",
-    "Parrot_sprintf_s_sc_p",
+    "fetch",
+    "fetch_p_p_ic_pc",
+    "Parrot_fetch_p_p_ic_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1034 */
     /* type PARROT_INLINE_OP, */
-    "sprintf",
-    "sprintf_p_p_p",
-    "Parrot_sprintf_p_p_p",
+    "fetch",
+    "fetch_p_pc_ic_pc",
+    "Parrot_fetch_p_pc_ic_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1035 */
     /* type PARROT_INLINE_OP, */
-    "new",
-    "new_s",
-    "Parrot_new_s",
+    "fetch",
+    "fetch_p_p_s_p",
+    "Parrot_fetch_p_p_s_p",
     /* "",  body */
     0,
-    2,
-    { PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1036 */
     /* type PARROT_INLINE_OP, */
-    "new",
-    "new_s_i",
-    "Parrot_new_s_i",
+    "fetch",
+    "fetch_p_pc_s_p",
+    "Parrot_fetch_p_pc_s_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1037 */
     /* type PARROT_INLINE_OP, */
-    "new",
-    "new_s_ic",
-    "Parrot_new_s_ic",
+    "fetch",
+    "fetch_p_p_sc_p",
+    "Parrot_fetch_p_p_sc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1038 */
     /* type PARROT_INLINE_OP, */
-    "stringinfo",
-    "stringinfo_i_s_i",
-    "Parrot_stringinfo_i_s_i",
+    "fetch",
+    "fetch_p_pc_sc_p",
+    "Parrot_fetch_p_pc_sc_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1039 */
     /* type PARROT_INLINE_OP, */
-    "stringinfo",
-    "stringinfo_i_sc_i",
-    "Parrot_stringinfo_i_sc_i",
+    "fetch",
+    "fetch_p_p_s_pc",
+    "Parrot_fetch_p_p_s_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1040 */
     /* type PARROT_INLINE_OP, */
-    "stringinfo",
-    "stringinfo_i_s_ic",
-    "Parrot_stringinfo_i_s_ic",
+    "fetch",
+    "fetch_p_pc_s_pc",
+    "Parrot_fetch_p_pc_s_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1041 */
     /* type PARROT_INLINE_OP, */
-    "stringinfo",
-    "stringinfo_i_sc_ic",
-    "Parrot_stringinfo_i_sc_ic",
+    "fetch",
+    "fetch_p_p_sc_pc",
+    "Parrot_fetch_p_p_sc_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1042 */
     /* type PARROT_INLINE_OP, */
-    "upcase",
-    "upcase_s_s",
-    "Parrot_upcase_s_s",
+    "fetch",
+    "fetch_p_pc_sc_pc",
+    "Parrot_fetch_p_pc_sc_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1043 */
     /* type PARROT_INLINE_OP, */
-    "upcase",
-    "upcase_s_sc",
-    "Parrot_upcase_s_sc",
+    "vivify",
+    "vivify_p_p_p_p",
+    "Parrot_vivify_p_p_p_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1044 */
     /* type PARROT_INLINE_OP, */
-    "downcase",
-    "downcase_s_s",
-    "Parrot_downcase_s_s",
+    "vivify",
+    "vivify_p_pc_p_p",
+    "Parrot_vivify_p_pc_p_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1045 */
     /* type PARROT_INLINE_OP, */
-    "downcase",
-    "downcase_s_sc",
-    "Parrot_downcase_s_sc",
+    "vivify",
+    "vivify_p_p_pc_p",
+    "Parrot_vivify_p_p_pc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1046 */
     /* type PARROT_INLINE_OP, */
-    "titlecase",
-    "titlecase_s_s",
-    "Parrot_titlecase_s_s",
+    "vivify",
+    "vivify_p_pc_pc_p",
+    "Parrot_vivify_p_pc_pc_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1047 */
     /* type PARROT_INLINE_OP, */
-    "titlecase",
-    "titlecase_s_sc",
-    "Parrot_titlecase_s_sc",
+    "vivify",
+    "vivify_p_p_p_pc",
+    "Parrot_vivify_p_p_p_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1048 */
-    /* type PARROT_FUNCTION_OP, */
-    "join",
-    "join_s_s_p",
-    "Parrot_join_s_s_p",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_p_pc",
+    "Parrot_vivify_p_pc_p_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1049 */
-    /* type PARROT_FUNCTION_OP, */
-    "join",
-    "join_s_sc_p",
-    "Parrot_join_s_sc_p",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_pc_pc",
+    "Parrot_vivify_p_p_pc_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1050 */
-    /* type PARROT_FUNCTION_OP, */
-    "split",
-    "split_p_s_s",
-    "Parrot_split_p_s_s",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_pc_pc",
+    "Parrot_vivify_p_pc_pc_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1051 */
-    /* type PARROT_FUNCTION_OP, */
-    "split",
-    "split_p_sc_s",
-    "Parrot_split_p_sc_s",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_i_p",
+    "Parrot_vivify_p_p_i_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1052 */
-    /* type PARROT_FUNCTION_OP, */
-    "split",
-    "split_p_s_sc",
-    "Parrot_split_p_s_sc",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_i_p",
+    "Parrot_vivify_p_pc_i_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1053 */
-    /* type PARROT_FUNCTION_OP, */
-    "split",
-    "split_p_sc_sc",
-    "Parrot_split_p_sc_sc",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_ic_p",
+    "Parrot_vivify_p_p_ic_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1054 */
-    /* type PARROT_FUNCTION_OP, */
-    "charset",
-    "charset_i_s",
-    "Parrot_charset_i_s",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_ic_p",
+    "Parrot_vivify_p_pc_ic_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1055 */
-    /* type PARROT_FUNCTION_OP, */
-    "charset",
-    "charset_i_sc",
-    "Parrot_charset_i_sc",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_i_pc",
+    "Parrot_vivify_p_p_i_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1056 */
-    /* type PARROT_FUNCTION_OP, */
-    "charsetname",
-    "charsetname_s_i",
-    "Parrot_charsetname_s_i",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_i_pc",
+    "Parrot_vivify_p_pc_i_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1057 */
-    /* type PARROT_FUNCTION_OP, */
-    "charsetname",
-    "charsetname_s_ic",
-    "Parrot_charsetname_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_ic_pc",
+    "Parrot_vivify_p_p_ic_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1058 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_charset",
-    "find_charset_i_s",
-    "Parrot_find_charset_i_s",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_ic_pc",
+    "Parrot_vivify_p_pc_ic_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1059 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_charset",
-    "find_charset_i_sc",
-    "Parrot_find_charset_i_sc",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_s_p",
+    "Parrot_vivify_p_p_s_p",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1060 */
-    /* type PARROT_FUNCTION_OP, */
-    "trans_charset",
-    "trans_charset_s_s_i",
-    "Parrot_trans_charset_s_s_i",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_s_p",
+    "Parrot_vivify_p_pc_s_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1061 */
-    /* type PARROT_FUNCTION_OP, */
-    "trans_charset",
-    "trans_charset_s_sc_i",
-    "Parrot_trans_charset_s_sc_i",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_sc_p",
+    "Parrot_vivify_p_p_sc_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1062 */
-    /* type PARROT_FUNCTION_OP, */
-    "trans_charset",
-    "trans_charset_s_s_ic",
-    "Parrot_trans_charset_s_s_ic",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_sc_p",
+    "Parrot_vivify_p_pc_sc_p",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1063 */
-    /* type PARROT_FUNCTION_OP, */
-    "trans_charset",
-    "trans_charset_s_sc_ic",
-    "Parrot_trans_charset_s_sc_ic",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_s_pc",
+    "Parrot_vivify_p_p_s_pc",
     /* "",  body */
     0,
-    4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1064 */
-    /* type PARROT_FUNCTION_OP, */
-    "encoding",
-    "encoding_i_s",
-    "Parrot_encoding_i_s",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_s_pc",
+    "Parrot_vivify_p_pc_s_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1065 */
-    /* type PARROT_FUNCTION_OP, */
-    "encoding",
-    "encoding_i_sc",
-    "Parrot_encoding_i_sc",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_sc_pc",
+    "Parrot_vivify_p_p_sc_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1066 */
-    /* type PARROT_FUNCTION_OP, */
-    "encodingname",
-    "encodingname_s_i",
-    "Parrot_encodingname_s_i",
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_sc_pc",
+    "Parrot_vivify_p_pc_sc_pc",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    5,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
   },
   { /* 1067 */
     /* type PARROT_FUNCTION_OP, */
-    "encodingname",
-    "encodingname_s_ic",
-    "Parrot_encodingname_s_ic",
+    "new",
+    "new_p_s_i",
+    "Parrot_new_p_s_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1068 */
     /* type PARROT_FUNCTION_OP, */
-    "find_encoding",
-    "find_encoding_i_s",
-    "Parrot_find_encoding_i_s",
+    "new",
+    "new_p_sc_i",
+    "Parrot_new_p_sc_i",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1069 */
     /* type PARROT_FUNCTION_OP, */
-    "find_encoding",
-    "find_encoding_i_sc",
-    "Parrot_find_encoding_i_sc",
+    "new",
+    "new_p_s_ic",
+    "Parrot_new_p_s_ic",
     /* "",  body */
     0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1070 */
     /* type PARROT_FUNCTION_OP, */
-    "trans_encoding",
-    "trans_encoding_s_s_i",
-    "Parrot_trans_encoding_s_s_i",
+    "new",
+    "new_p_sc_ic",
+    "Parrot_new_p_sc_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 1071 */
     /* type PARROT_FUNCTION_OP, */
-    "trans_encoding",
-    "trans_encoding_s_sc_i",
-    "Parrot_trans_encoding_s_sc_i",
+    "new",
+    "new_p_p_i",
+    "Parrot_new_p_p_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 1072 */
     /* type PARROT_FUNCTION_OP, */
-    "trans_encoding",
-    "trans_encoding_s_s_ic",
-    "Parrot_trans_encoding_s_s_ic",
+    "new",
+    "new_p_pc_i",
+    "Parrot_new_p_pc_i",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 1073 */
     /* type PARROT_FUNCTION_OP, */
-    "trans_encoding",
-    "trans_encoding_s_sc_ic",
-    "Parrot_trans_encoding_s_sc_ic",
+    "new",
+    "new_p_p_ic",
+    "Parrot_new_p_p_ic",
     /* "",  body */
     0,
     4,
-    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
   { /* 1074 */
-    /* type PARROT_INLINE_OP, */
-    "is_cclass",
-    "is_cclass_i_i_s_i",
-    "Parrot_is_cclass_i_i_s_i",
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_pc_ic",
+    "Parrot_new_p_pc_ic",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1075 */
-    /* type PARROT_INLINE_OP, */
-    "is_cclass",
-    "is_cclass_i_ic_s_i",
-    "Parrot_is_cclass_i_ic_s_i",
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_p_i",
+    "Parrot_root_new_p_p_i",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1076 */
-    /* type PARROT_INLINE_OP, */
-    "is_cclass",
-    "is_cclass_i_i_sc_i",
-    "Parrot_is_cclass_i_i_sc_i",
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_pc_i",
+    "Parrot_root_new_p_pc_i",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1077 */
-    /* type PARROT_INLINE_OP, */
-    "is_cclass",
-    "is_cclass_i_ic_sc_i",
-    "Parrot_is_cclass_i_ic_sc_i",
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_p_ic",
+    "Parrot_root_new_p_p_ic",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1078 */
-    /* type PARROT_INLINE_OP, */
-    "is_cclass",
-    "is_cclass_i_i_s_ic",
-    "Parrot_is_cclass_i_i_s_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_pc_ic",
+    "Parrot_root_new_p_pc_ic",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
   },
   { /* 1079 */
-    /* type PARROT_INLINE_OP, */
-    "is_cclass",
-    "is_cclass_i_ic_s_ic",
-    "Parrot_is_cclass_i_ic_s_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "find_codepoint",
+    "find_codepoint_i_s",
+    "Parrot_find_codepoint_i_s",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1080 */
-    /* type PARROT_INLINE_OP, */
-    "is_cclass",
-    "is_cclass_i_i_sc_ic",
-    "Parrot_is_cclass_i_i_sc_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "find_codepoint",
+    "find_codepoint_i_sc",
+    "Parrot_find_codepoint_i_sc",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
   },
   { /* 1081 */
-    /* type PARROT_INLINE_OP, */
-    "is_cclass",
-    "is_cclass_i_ic_sc_ic",
-    "Parrot_is_cclass_i_ic_sc_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "finalize",
+    "finalize_p",
+    "Parrot_finalize_p",
     /* "",  body */
     0,
-    5,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
   { /* 1082 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_i_s_i_i",
-    "Parrot_find_cclass_i_i_s_i_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1083 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_ic_s_i_i",
-    "Parrot_find_cclass_i_ic_s_i_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1084 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_i_sc_i_i",
-    "Parrot_find_cclass_i_i_sc_i_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1085 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_ic_sc_i_i",
-    "Parrot_find_cclass_i_ic_sc_i_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1086 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_i_s_ic_i",
-    "Parrot_find_cclass_i_i_s_ic_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1087 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_ic_s_ic_i",
-    "Parrot_find_cclass_i_ic_s_ic_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1088 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_i_sc_ic_i",
-    "Parrot_find_cclass_i_i_sc_ic_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1089 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_ic_sc_ic_i",
-    "Parrot_find_cclass_i_ic_sc_ic_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1090 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_i_s_i_ic",
-    "Parrot_find_cclass_i_i_s_i_ic",
+    /* type PARROT_FUNCTION_OP, */
+    "finalize",
+    "finalize_pc",
+    "Parrot_finalize_pc",
     /* "",  body */
     0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    2,
+    { PARROT_ARG_PC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
   },
-  { /* 1091 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_ic_s_i_ic",
-    "Parrot_find_cclass_i_ic_s_i_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1092 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_i_sc_i_ic",
-    "Parrot_find_cclass_i_i_sc_i_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1093 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_ic_sc_i_ic",
-    "Parrot_find_cclass_i_ic_sc_i_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1094 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_i_s_ic_ic",
-    "Parrot_find_cclass_i_i_s_ic_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1095 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_ic_s_ic_ic",
-    "Parrot_find_cclass_i_ic_s_ic_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1096 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_i_sc_ic_ic",
-    "Parrot_find_cclass_i_i_sc_ic_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1097 */
-    /* type PARROT_INLINE_OP, */
-    "find_cclass",
-    "find_cclass_i_ic_sc_ic_ic",
-    "Parrot_find_cclass_i_ic_sc_ic_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1098 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_i_s_i_i",
-    "Parrot_find_not_cclass_i_i_s_i_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1099 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_ic_s_i_i",
-    "Parrot_find_not_cclass_i_ic_s_i_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1100 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_i_sc_i_i",
-    "Parrot_find_not_cclass_i_i_sc_i_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1101 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_ic_sc_i_i",
-    "Parrot_find_not_cclass_i_ic_sc_i_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1102 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_i_s_ic_i",
-    "Parrot_find_not_cclass_i_i_s_ic_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1103 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_ic_s_ic_i",
-    "Parrot_find_not_cclass_i_ic_s_ic_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1104 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_i_sc_ic_i",
-    "Parrot_find_not_cclass_i_i_sc_ic_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1105 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_ic_sc_ic_i",
-    "Parrot_find_not_cclass_i_ic_sc_ic_i",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1106 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_i_s_i_ic",
-    "Parrot_find_not_cclass_i_i_s_i_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1107 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_ic_s_i_ic",
-    "Parrot_find_not_cclass_i_ic_s_i_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1108 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_i_sc_i_ic",
-    "Parrot_find_not_cclass_i_i_sc_i_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1109 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_ic_sc_i_ic",
-    "Parrot_find_not_cclass_i_ic_sc_i_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1110 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_i_s_ic_ic",
-    "Parrot_find_not_cclass_i_i_s_ic_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1111 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_ic_s_ic_ic",
-    "Parrot_find_not_cclass_i_ic_s_ic_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1112 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_i_sc_ic_ic",
-    "Parrot_find_not_cclass_i_i_sc_ic_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1113 */
-    /* type PARROT_INLINE_OP, */
-    "find_not_cclass",
-    "find_not_cclass_i_ic_sc_ic_ic",
-    "Parrot_find_not_cclass_i_ic_sc_ic_ic",
-    /* "",  body */
-    0,
-    6,
-    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
-  },
-  { /* 1114 */
-    /* type PARROT_FUNCTION_OP, */
-    "escape",
-    "escape_s_s",
-    "Parrot_escape_s_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1115 */
-    /* type PARROT_FUNCTION_OP, */
-    "compose",
-    "compose_s_s",
-    "Parrot_compose_s_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1116 */
-    /* type PARROT_FUNCTION_OP, */
-    "compose",
-    "compose_s_sc",
-    "Parrot_compose_s_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1117 */
-    /* type PARROT_INLINE_OP, */
-    "spawnw",
-    "spawnw_i_s",
-    "Parrot_spawnw_i_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1118 */
-    /* type PARROT_INLINE_OP, */
-    "spawnw",
-    "spawnw_i_sc",
-    "Parrot_spawnw_i_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1119 */
-    /* type PARROT_INLINE_OP, */
-    "spawnw",
-    "spawnw_i_p",
-    "Parrot_spawnw_i_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1120 */
-    /* type PARROT_INLINE_OP, */
-    "err",
-    "err_i",
-    "Parrot_err_i",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
-  },
-  { /* 1121 */
-    /* type PARROT_FUNCTION_OP, */
-    "err",
-    "err_s",
-    "Parrot_err_s",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
-  },
-  { /* 1122 */
-    /* type PARROT_FUNCTION_OP, */
-    "err",
-    "err_s_i",
-    "Parrot_err_s_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1123 */
-    /* type PARROT_FUNCTION_OP, */
-    "err",
-    "err_s_ic",
-    "Parrot_err_s_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1124 */
-    /* type PARROT_INLINE_OP, */
-    "time",
-    "time_i",
-    "Parrot_time_i",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
-  },
-  { /* 1125 */
-    /* type PARROT_INLINE_OP, */
-    "time",
-    "time_n",
-    "Parrot_time_n",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
-  },
-  { /* 1126 */
-    /* type PARROT_FUNCTION_OP, */
-    "gmtime",
-    "gmtime_s_i",
-    "Parrot_gmtime_s_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1127 */
-    /* type PARROT_FUNCTION_OP, */
-    "gmtime",
-    "gmtime_s_ic",
-    "Parrot_gmtime_s_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1128 */
-    /* type PARROT_FUNCTION_OP, */
-    "localtime",
-    "localtime_s_i",
-    "Parrot_localtime_s_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1129 */
-    /* type PARROT_FUNCTION_OP, */
-    "localtime",
-    "localtime_s_ic",
-    "Parrot_localtime_s_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1130 */
-    /* type PARROT_FUNCTION_OP, */
-    "decodetime",
-    "decodetime_p_i",
-    "Parrot_decodetime_p_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1131 */
-    /* type PARROT_FUNCTION_OP, */
-    "decodetime",
-    "decodetime_p_ic",
-    "Parrot_decodetime_p_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1132 */
-    /* type PARROT_FUNCTION_OP, */
-    "decodelocaltime",
-    "decodelocaltime_p_i",
-    "Parrot_decodelocaltime_p_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1133 */
-    /* type PARROT_FUNCTION_OP, */
-    "decodelocaltime",
-    "decodelocaltime_p_ic",
-    "Parrot_decodelocaltime_p_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1134 */
-    /* type PARROT_INLINE_OP, */
-    "sysinfo",
-    "sysinfo_s_i",
-    "Parrot_sysinfo_s_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1135 */
-    /* type PARROT_INLINE_OP, */
-    "sysinfo",
-    "sysinfo_s_ic",
-    "Parrot_sysinfo_s_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1136 */
-    /* type PARROT_INLINE_OP, */
-    "sysinfo",
-    "sysinfo_i_i",
-    "Parrot_sysinfo_i_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1137 */
-    /* type PARROT_INLINE_OP, */
-    "sysinfo",
-    "sysinfo_i_ic",
-    "Parrot_sysinfo_i_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1138 */
-    /* type PARROT_INLINE_OP, */
-    "sleep",
-    "sleep_i",
-    "Parrot_sleep_i",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_I },
-    { PARROT_ARGDIR_IN },
-    { 0 }
-  },
-  { /* 1139 */
-    /* type PARROT_INLINE_OP, */
-    "sleep",
-    "sleep_ic",
-    "Parrot_sleep_ic",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
-  },
-  { /* 1140 */
-    /* type PARROT_INLINE_OP, */
-    "sleep",
-    "sleep_n",
-    "Parrot_sleep_n",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_N },
-    { PARROT_ARGDIR_IN },
-    { 0 }
-  },
-  { /* 1141 */
-    /* type PARROT_INLINE_OP, */
-    "sleep",
-    "sleep_nc",
-    "Parrot_sleep_nc",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_NC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
-  },
-  { /* 1142 */
-    /* type PARROT_FUNCTION_OP, */
-    "store_lex",
-    "store_lex_s_p",
-    "Parrot_store_lex_s_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1143 */
-    /* type PARROT_FUNCTION_OP, */
-    "store_lex",
-    "store_lex_sc_p",
-    "Parrot_store_lex_sc_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1144 */
-    /* type PARROT_FUNCTION_OP, */
-    "store_dynamic_lex",
-    "store_dynamic_lex_s_p",
-    "Parrot_store_dynamic_lex_s_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1145 */
-    /* type PARROT_FUNCTION_OP, */
-    "store_dynamic_lex",
-    "store_dynamic_lex_sc_p",
-    "Parrot_store_dynamic_lex_sc_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1146 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_lex",
-    "find_lex_p_s",
-    "Parrot_find_lex_p_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1147 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_lex",
-    "find_lex_p_sc",
-    "Parrot_find_lex_p_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1148 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_dynamic_lex",
-    "find_dynamic_lex_p_s",
-    "Parrot_find_dynamic_lex_p_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1149 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_dynamic_lex",
-    "find_dynamic_lex_p_sc",
-    "Parrot_find_dynamic_lex_p_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1150 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_caller_lex",
-    "find_caller_lex_p_s",
-    "Parrot_find_caller_lex_p_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1151 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_caller_lex",
-    "find_caller_lex_p_sc",
-    "Parrot_find_caller_lex_p_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1152 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_namespace",
-    "get_namespace_p",
-    "Parrot_get_namespace_p",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
-  },
-  { /* 1153 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_namespace",
-    "get_namespace_p_p",
-    "Parrot_get_namespace_p_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1154 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_namespace",
-    "get_namespace_p_pc",
-    "Parrot_get_namespace_p_pc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1155 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_hll_namespace",
-    "get_hll_namespace_p",
-    "Parrot_get_hll_namespace_p",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
-  },
-  { /* 1156 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_hll_namespace",
-    "get_hll_namespace_p_p",
-    "Parrot_get_hll_namespace_p_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1157 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_hll_namespace",
-    "get_hll_namespace_p_pc",
-    "Parrot_get_hll_namespace_p_pc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1158 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_root_namespace",
-    "get_root_namespace_p",
-    "Parrot_get_root_namespace_p",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT },
-    { 0 }
-  },
-  { /* 1159 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_root_namespace",
-    "get_root_namespace_p_p",
-    "Parrot_get_root_namespace_p_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1160 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_root_namespace",
-    "get_root_namespace_p_pc",
-    "Parrot_get_root_namespace_p_pc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1161 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_global",
-    "get_global_p_s",
-    "Parrot_get_global_p_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1162 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_global",
-    "get_global_p_sc",
-    "Parrot_get_global_p_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1163 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_global",
-    "get_global_p_p_s",
-    "Parrot_get_global_p_p_s",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1164 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_global",
-    "get_global_p_pc_s",
-    "Parrot_get_global_p_pc_s",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1165 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_global",
-    "get_global_p_p_sc",
-    "Parrot_get_global_p_p_sc",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1166 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_global",
-    "get_global_p_pc_sc",
-    "Parrot_get_global_p_pc_sc",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1167 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_hll_global",
-    "get_hll_global_p_s",
-    "Parrot_get_hll_global_p_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1168 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_hll_global",
-    "get_hll_global_p_sc",
-    "Parrot_get_hll_global_p_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1169 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_hll_global",
-    "get_hll_global_p_p_s",
-    "Parrot_get_hll_global_p_p_s",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1170 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_hll_global",
-    "get_hll_global_p_pc_s",
-    "Parrot_get_hll_global_p_pc_s",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1171 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_hll_global",
-    "get_hll_global_p_p_sc",
-    "Parrot_get_hll_global_p_p_sc",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1172 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_hll_global",
-    "get_hll_global_p_pc_sc",
-    "Parrot_get_hll_global_p_pc_sc",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1173 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_root_global",
-    "get_root_global_p_s",
-    "Parrot_get_root_global_p_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1174 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_root_global",
-    "get_root_global_p_sc",
-    "Parrot_get_root_global_p_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1175 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_root_global",
-    "get_root_global_p_p_s",
-    "Parrot_get_root_global_p_p_s",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1176 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_root_global",
-    "get_root_global_p_pc_s",
-    "Parrot_get_root_global_p_pc_s",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1177 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_root_global",
-    "get_root_global_p_p_sc",
-    "Parrot_get_root_global_p_p_sc",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1178 */
-    /* type PARROT_FUNCTION_OP, */
-    "get_root_global",
-    "get_root_global_p_pc_sc",
-    "Parrot_get_root_global_p_pc_sc",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1179 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_global",
-    "set_global_s_p",
-    "Parrot_set_global_s_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1180 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_global",
-    "set_global_sc_p",
-    "Parrot_set_global_sc_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1181 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_global",
-    "set_global_p_s_p",
-    "Parrot_set_global_p_s_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1182 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_global",
-    "set_global_pc_s_p",
-    "Parrot_set_global_pc_s_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1183 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_global",
-    "set_global_p_sc_p",
-    "Parrot_set_global_p_sc_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1184 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_global",
-    "set_global_pc_sc_p",
-    "Parrot_set_global_pc_sc_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1185 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_hll_global",
-    "set_hll_global_s_p",
-    "Parrot_set_hll_global_s_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1186 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_hll_global",
-    "set_hll_global_sc_p",
-    "Parrot_set_hll_global_sc_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1187 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_hll_global",
-    "set_hll_global_p_s_p",
-    "Parrot_set_hll_global_p_s_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1188 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_hll_global",
-    "set_hll_global_pc_s_p",
-    "Parrot_set_hll_global_pc_s_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1189 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_hll_global",
-    "set_hll_global_p_sc_p",
-    "Parrot_set_hll_global_p_sc_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1190 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_hll_global",
-    "set_hll_global_pc_sc_p",
-    "Parrot_set_hll_global_pc_sc_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1191 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_root_global",
-    "set_root_global_s_p",
-    "Parrot_set_root_global_s_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1192 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_root_global",
-    "set_root_global_sc_p",
-    "Parrot_set_root_global_sc_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1193 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_root_global",
-    "set_root_global_p_s_p",
-    "Parrot_set_root_global_p_s_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1194 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_root_global",
-    "set_root_global_pc_s_p",
-    "Parrot_set_root_global_pc_s_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1195 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_root_global",
-    "set_root_global_p_sc_p",
-    "Parrot_set_root_global_p_sc_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1196 */
-    /* type PARROT_FUNCTION_OP, */
-    "set_root_global",
-    "set_root_global_pc_sc_p",
-    "Parrot_set_root_global_pc_sc_p",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1197 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_name",
-    "find_name_p_s",
-    "Parrot_find_name_p_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1198 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_name",
-    "find_name_p_sc",
-    "Parrot_find_name_p_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1199 */
-    /* type PARROT_INLINE_OP, */
-    "find_sub_not_null",
-    "find_sub_not_null_p_s",
-    "Parrot_find_sub_not_null_p_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1200 */
-    /* type PARROT_INLINE_OP, */
-    "find_sub_not_null",
-    "find_sub_not_null_p_sc",
-    "Parrot_find_sub_not_null_p_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1201 */
-    /* type PARROT_FUNCTION_OP, */
-    "trap",
-    "trap",
-    "Parrot_trap",
-    /* "",  body */
-    0,
-    1,
-    { (arg_type_t) 0 },
-    { (arg_dir_t) 0 },
-    { 0 }
-  },
-  { /* 1202 */
-    /* type PARROT_INLINE_OP, */
-    "set_label",
-    "set_label_p_ic",
-    "Parrot_set_label_p_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
-  },
-  { /* 1203 */
-    /* type PARROT_INLINE_OP, */
-    "get_label",
-    "get_label_i_p",
-    "Parrot_get_label_i_p",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1204 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_p_p",
-    "Parrot_fetch_p_p_p_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1205 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_p_p",
-    "Parrot_fetch_p_pc_p_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1206 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_pc_p",
-    "Parrot_fetch_p_p_pc_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1207 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_pc_p",
-    "Parrot_fetch_p_pc_pc_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1208 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_p_pc",
-    "Parrot_fetch_p_p_p_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1209 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_p_pc",
-    "Parrot_fetch_p_pc_p_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1210 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_pc_pc",
-    "Parrot_fetch_p_p_pc_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1211 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_pc_pc",
-    "Parrot_fetch_p_pc_pc_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1212 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_i_p",
-    "Parrot_fetch_p_p_i_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1213 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_i_p",
-    "Parrot_fetch_p_pc_i_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1214 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_ic_p",
-    "Parrot_fetch_p_p_ic_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1215 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_ic_p",
-    "Parrot_fetch_p_pc_ic_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1216 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_i_pc",
-    "Parrot_fetch_p_p_i_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1217 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_i_pc",
-    "Parrot_fetch_p_pc_i_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1218 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_ic_pc",
-    "Parrot_fetch_p_p_ic_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1219 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_ic_pc",
-    "Parrot_fetch_p_pc_ic_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1220 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_s_p",
-    "Parrot_fetch_p_p_s_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1221 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_s_p",
-    "Parrot_fetch_p_pc_s_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1222 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_sc_p",
-    "Parrot_fetch_p_p_sc_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1223 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_sc_p",
-    "Parrot_fetch_p_pc_sc_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1224 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_s_pc",
-    "Parrot_fetch_p_p_s_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1225 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_s_pc",
-    "Parrot_fetch_p_pc_s_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1226 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_p_sc_pc",
-    "Parrot_fetch_p_p_sc_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1227 */
-    /* type PARROT_INLINE_OP, */
-    "fetch",
-    "fetch_p_pc_sc_pc",
-    "Parrot_fetch_p_pc_sc_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1228 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_p_p",
-    "Parrot_vivify_p_p_p_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1229 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_p_p",
-    "Parrot_vivify_p_pc_p_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1230 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_pc_p",
-    "Parrot_vivify_p_p_pc_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1231 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_pc_p",
-    "Parrot_vivify_p_pc_pc_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1232 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_p_pc",
-    "Parrot_vivify_p_p_p_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1233 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_p_pc",
-    "Parrot_vivify_p_pc_p_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1234 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_pc_pc",
-    "Parrot_vivify_p_p_pc_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1235 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_pc_pc",
-    "Parrot_vivify_p_pc_pc_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1236 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_i_p",
-    "Parrot_vivify_p_p_i_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1237 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_i_p",
-    "Parrot_vivify_p_pc_i_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1238 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_ic_p",
-    "Parrot_vivify_p_p_ic_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1239 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_ic_p",
-    "Parrot_vivify_p_pc_ic_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1240 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_i_pc",
-    "Parrot_vivify_p_p_i_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1241 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_i_pc",
-    "Parrot_vivify_p_pc_i_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1242 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_ic_pc",
-    "Parrot_vivify_p_p_ic_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1243 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_ic_pc",
-    "Parrot_vivify_p_pc_ic_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1244 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_s_p",
-    "Parrot_vivify_p_p_s_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1245 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_s_p",
-    "Parrot_vivify_p_pc_s_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1246 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_sc_p",
-    "Parrot_vivify_p_p_sc_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1247 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_sc_p",
-    "Parrot_vivify_p_pc_sc_p",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1248 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_s_pc",
-    "Parrot_vivify_p_p_s_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1249 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_s_pc",
-    "Parrot_vivify_p_pc_s_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1250 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_p_sc_pc",
-    "Parrot_vivify_p_p_sc_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1251 */
-    /* type PARROT_INLINE_OP, */
-    "vivify",
-    "vivify_p_pc_sc_pc",
-    "Parrot_vivify_p_pc_sc_pc",
-    /* "",  body */
-    0,
-    5,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_PC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
-  },
-  { /* 1252 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_s_i",
-    "Parrot_new_p_s_i",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1253 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_sc_i",
-    "Parrot_new_p_sc_i",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1254 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_s_ic",
-    "Parrot_new_p_s_ic",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1255 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_sc_ic",
-    "Parrot_new_p_sc_ic",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1256 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_p_i",
-    "Parrot_new_p_p_i",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1257 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_pc_i",
-    "Parrot_new_p_pc_i",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1258 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_p_ic",
-    "Parrot_new_p_p_ic",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1259 */
-    /* type PARROT_FUNCTION_OP, */
-    "new",
-    "new_p_pc_ic",
-    "Parrot_new_p_pc_ic",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1260 */
-    /* type PARROT_FUNCTION_OP, */
-    "root_new",
-    "root_new_p_p_i",
-    "Parrot_root_new_p_p_i",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1261 */
-    /* type PARROT_FUNCTION_OP, */
-    "root_new",
-    "root_new_p_pc_i",
-    "Parrot_root_new_p_pc_i",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1262 */
-    /* type PARROT_FUNCTION_OP, */
-    "root_new",
-    "root_new_p_p_ic",
-    "Parrot_root_new_p_p_ic",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1263 */
-    /* type PARROT_FUNCTION_OP, */
-    "root_new",
-    "root_new_p_pc_ic",
-    "Parrot_root_new_p_pc_ic",
-    /* "",  body */
-    0,
-    4,
-    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
-  },
-  { /* 1264 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_codepoint",
-    "find_codepoint_i_s",
-    "Parrot_find_codepoint_i_s",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_S },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1265 */
-    /* type PARROT_FUNCTION_OP, */
-    "find_codepoint",
-    "find_codepoint_i_sc",
-    "Parrot_find_codepoint_i_sc",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_SC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1266 */
-    /* type PARROT_FUNCTION_OP, */
-    "finalize",
-    "finalize_p",
-    "Parrot_finalize_p",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_P },
-    { PARROT_ARGDIR_IN },
-    { 0 }
-  },
-  { /* 1267 */
-    /* type PARROT_FUNCTION_OP, */
-    "finalize",
-    "finalize_pc",
-    "Parrot_finalize_pc",
-    /* "",  body */
-    0,
-    2,
-    { PARROT_ARG_PC },
-    { PARROT_ARGDIR_IN },
-    { 0 }
-  },
-
-};
-
-
-/*
-** Op Function Definitions:
-*/
-
-opcode_t *
-Parrot_end(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)0;
-}
-
-opcode_t *
-Parrot_noop(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-
-return (opcode_t *)cur_opcode + 1;}
-
-opcode_t *
-Parrot_check_events(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const next =cur_opcode + 1;
-    Parrot_cx_check_tasks(interp, interp->scheduler);return (opcode_t *)next;   /* force this being a branch op */
-}
-
-opcode_t *
-Parrot_check_events__(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const _this = CUR_OPCODE;
-    /* Restore op_func_table. */
-    disable_event_checking(interp);
-    Parrot_cx_handle_tasks(interp, interp->scheduler);return (opcode_t *)_this;   /* force this being a branch op */
-}
-
-opcode_t *
-Parrot_wrapper__(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t *pc = CUR_OPCODE;
-    DO_OP(pc, interp);return (opcode_t *)pc;
-}
-
-opcode_t *
-Parrot_load_bytecode_s(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_load_bytecode(interp, SREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_load_bytecode_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_load_bytecode(interp, CONST(1)->u.string);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_load_language_s(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_load_language(interp, SREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_load_language_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_load_language(interp, CONST(1)->u.string);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_branch_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)cur_opcode + IREG(1);
-}
-
-opcode_t *
-Parrot_branch_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)cur_opcode + cur_opcode[1];
-}
-
-opcode_t *
-Parrot_local_branch_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    INTVAL return_addr;
-    opcode_t * const dest =cur_opcode + 3;
-
-    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
-        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
-            EXCEPTION_INVALID_OPERATION,
-            "Must pass a valid integer array to 'local_branch'");return (opcode_t *)handler;
-    }
-
-    return_addr = PTR2INTVAL(dest);
-    VTABLE_push_integer(interp, PREG(1), return_addr);return (opcode_t *)cur_opcode + IREG(2);
-}
-
-opcode_t *
-Parrot_local_branch_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    INTVAL return_addr;
-    opcode_t * const dest =cur_opcode + 3;
-
-    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
-        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
-            EXCEPTION_INVALID_OPERATION,
-            "Must pass a valid integer array to 'local_branch'");return (opcode_t *)handler;
-    }
-
-    return_addr = PTR2INTVAL(dest);
-    VTABLE_push_integer(interp, PREG(1), return_addr);return (opcode_t *)cur_opcode + cur_opcode[2];
-}
-
-opcode_t *
-Parrot_local_return_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    INTVAL return_addr;
-    opcode_t *next;
-    opcode_t * const dest =cur_opcode + 2;
-
-    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
-        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
-            EXCEPTION_INVALID_OPERATION,
-            "Must pass a valid integer array to 'local_return'");return (opcode_t *)handler;
-    }
-
-    return_addr = VTABLE_pop_integer(interp, PREG(1));
-    next = INTVAL2PTR(opcode_t *, return_addr);
-
-    /* The return address must be within the current code segment. */
-    if (! (next >= interp->code->base.data
-           && next < (interp->code->base.data + interp->code->base.size))) {
-        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
-            EXCEPTION_INVALID_OPERATION,
-            "Address for 'local_return' must be within the current code segment");return (opcode_t *)handler;
-    }return (opcode_t *)next;
-}
-
-opcode_t *
-Parrot_jump_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const loc = INTVAL2PTR(opcode_t *, IREG(1));return (opcode_t *)loc;
-}
-
-opcode_t *
-Parrot_jump_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const loc = INTVAL2PTR(opcode_t *, cur_opcode[1]);return (opcode_t *)loc;
-}
-
-opcode_t *
-Parrot_enternative(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const addr = run_native(interp, CUR_OPCODE,
-            interp->code->base.data);return (opcode_t *)addr;
-}
-
-opcode_t *
-Parrot_if_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) != 0)return (opcode_t *)cur_opcode + cur_opcode[2];
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_if_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (!FLOAT_IS_ZERO(NREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_if_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_boolean(interp, SREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_if_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_bool(interp, PREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_unless_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) == 0)return (opcode_t *)cur_opcode + cur_opcode[2];
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_unless_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (FLOAT_IS_ZERO(NREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_unless_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (!Parrot_str_boolean(interp, SREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_unless_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (!VTABLE_get_bool(interp, PREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_invokecc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC      * const p     = PREG(1);
-    opcode_t *dest         =cur_opcode + 2;
-    PMC      * const signature = Parrot_pcc_get_signature(interp,
-                                    CURRENT_CONTEXT(interp));
-
-    if (!PMC_IS_NULL(signature))
-        Parrot_pcc_set_object(interp, signature, NULL);
-    interp->current_cont   = NEED_CONTINUATION;
-    dest                   = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_invoke_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t   *dest       =cur_opcode + 3;
-    PMC * const p          = PREG(1);
-    PMC * const signature  = Parrot_pcc_get_signature(interp,
-                                    CURRENT_CONTEXT(interp));
-
-    if (!PMC_IS_NULL(signature))
-        Parrot_pcc_set_object(interp, signature, NULL);
-    interp->current_cont   = PREG(2);
-
-    dest = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_yield(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t   *dest =cur_opcode + 1;
-    PMC * const p    = Parrot_pcc_get_sub(interp, CURRENT_CONTEXT(interp));
-
-    VTABLE_increment(interp, p);
-    dest = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_tailcall_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const p               = PREG(1);
-    opcode_t   *dest            =cur_opcode + 2;
-    PMC * const ctx             = CURRENT_CONTEXT(interp);
-    PMC * const parent_ctx      = Parrot_pcc_get_caller_ctx(interp, ctx);
-    PMC * const this_call_sig   = Parrot_pcc_get_signature(interp, ctx);
-    PMC * const parent_call_sig = Parrot_pcc_get_signature(interp, parent_ctx);
-    interp->current_cont        = Parrot_pcc_get_continuation(interp, ctx);
-
-    Parrot_pcc_merge_signature_for_tailcall(interp, parent_call_sig, this_call_sig);
-
-    SUB_FLAG_TAILCALL_SET(interp->current_cont);
-    dest = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_returncc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const p = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
-    opcode_t * const dest = VTABLE_invoke(interp, p,cur_opcode + 1);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_capture_lex_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_capture_lex(interp, PREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_newclosure_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = parrot_new_closure(interp, PREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_set_args_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const raw_args = CUR_OPCODE;
-    PMC * const signature = CONST(1)->u.key;
-    PMC * const call_sig = Parrot_pcc_build_sig_object_from_op(interp,
-            PMCNULL, signature, raw_args);
-    const INTVAL argc = VTABLE_elements(interp, signature);
-    Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_sig);return (opcode_t *)cur_opcode + argc + 2;
-}
-
-opcode_t *
-Parrot_get_params_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const raw_params  = CUR_OPCODE;
-    PMC      * const signature   = CONST(1)->u.key;
-    PMC      * const ctx         = CURRENT_CONTEXT(interp);
-    PMC      * const ccont       = Parrot_pcc_get_continuation(interp, ctx);
-    PMC      * const caller_ctx  = Parrot_pcc_get_caller_ctx(interp, ctx);
-    PMC      * const call_object = Parrot_pcc_get_signature(interp, caller_ctx);
-    INTVAL argc;
-
-    Parrot_pcc_fill_params_from_op(interp, call_object, signature, raw_params,
-            PARROT_ERRORS_PARAM_COUNT_FLAG);
-
-    /* TODO Factor out with Sub.invoke */
-    if (PObj_get_FLAGS(ccont) & SUB_FLAG_TAILCALL) {
-        PObj_get_FLAGS(ccont) &= ~SUB_FLAG_TAILCALL;
-        Parrot_pcc_dec_recursion_depth(interp, ctx);
-        Parrot_pcc_set_caller_ctx(interp, ctx, Parrot_pcc_get_caller_ctx(interp, caller_ctx));
-    }
-    argc = VTABLE_elements(interp, signature);return (opcode_t *)cur_opcode + argc + 2;
-}
-
-opcode_t *
-Parrot_set_returns_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const raw_args  = CUR_OPCODE;
-    PMC      * const signature = CONST(1)->u.key;
-    PMC      * const call_sig  = Parrot_pcc_build_sig_object_from_op(interp,
-                Parrot_pcc_get_signature(interp,
-                Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp))),
-                    signature, raw_args);
-    INTVAL argc;
-
-    Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_sig);
-
-    argc = VTABLE_elements(interp, signature);return (opcode_t *)cur_opcode + argc + 2;
-}
-
-opcode_t *
-Parrot_get_results_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const raw_params  = CUR_OPCODE;
-    PMC      * const signature   = CONST(1)->u.key;
-    PMC             *ctx         = CURRENT_CONTEXT(interp);
-    PMC             *ccont       = Parrot_pcc_get_continuation(interp, ctx);
-    PMC             *call_object = Parrot_pcc_get_signature(interp, ctx);
-
-    INTVAL argc;
-
-    Parrot_pcc_fill_params_from_op(interp, call_object, signature, raw_params,
-            PARROT_ERRORS_RESULT_COUNT_FLAG);
-
-    argc = VTABLE_elements(interp, signature);return (opcode_t *)cur_opcode + argc + 2;
-}
-
-opcode_t *
-Parrot_set_result_info_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const ctx = CURRENT_CONTEXT(interp);
-
-    VTABLE_set_attr_str(interp, ctx,
-            Parrot_str_new_constant(interp, "return_flags"),
-            PREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_set_result_info_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const ctx = CURRENT_CONTEXT(interp);
-
-    VTABLE_set_attr_str(interp, ctx,
-            Parrot_str_new_constant(interp, "return_flags"),
-            CONST(1)->u.key);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_result_info_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const caller_ctx = Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
-    PMC * const sig        = VTABLE_get_attr_str(interp, caller_ctx,
-            Parrot_str_new_constant(interp, "return_flags"));
-
-    /* If no elements, hand back empty array; otherwise PMC. */
-    if (!sig)
-        PREG(1) = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
-    else
-        PREG(1) = sig;
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_set_addr_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = PTR2INTVAL(CUR_OPCODE + cur_opcode[2]);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_set_addr_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    VTABLE_set_pointer(interp, PREG(1), (CUR_OPCODE + cur_opcode[2]));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_set_addr_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    VTABLE_set_pointer(interp, PREG(1), (void*)IREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_get_addr_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    void *ptr = VTABLE_get_pointer(interp, PREG(2));
-    IREG(1)        = (INTVAL)ptr;
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_schedule_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_cx_schedule_task(interp, PREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_addhandler_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_cx_add_handler(interp, PREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_push_eh_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const eh = Parrot_pmc_new(interp, enum_class_ExceptionHandler);
-    VTABLE_set_pointer(interp, eh, CUR_OPCODE + cur_opcode[1]);
-    Parrot_cx_add_handler_local(interp, eh);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_push_eh_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_cx_add_handler_local(interp, PREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_pop_eh(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_cx_delete_handler_local(interp,
-            Parrot_str_new_constant(interp, "exception"));
-
-return (opcode_t *)cur_opcode + 1;}
-
-opcode_t *
-Parrot_throw_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * except = PREG(1);
-    opcode_t *dest;
-    opcode_t * const ret    =cur_opcode + 2;
-    PMC      * const resume = pmc_new(interp, enum_class_Continuation);
-
-    VTABLE_set_pointer(interp, resume, ret);
-
-    if (PMC_IS_NULL(except) || except->vtable->base_type != enum_class_Exception)
-        except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
-                EXCEPTION_UNIMPLEMENTED,
-                Parrot_str_new_constant(interp, "Not a throwable object"));
-
-    VTABLE_set_attr_str(interp, except, Parrot_str_new_constant(interp, "resume"), resume);
-    dest = Parrot_ex_throw_from_op(interp, except, ret);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_throw_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * dest;
-    PMC * except = PREG(1);
-    if (PMC_IS_NULL(except) || except->vtable->base_type != enum_class_Exception)
-        except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
-                EXCEPTION_UNIMPLEMENTED,
-                Parrot_str_new_constant(interp, "Not a throwable object"));
-    dest = Parrot_ex_throw_from_op(interp, PREG(1),
-                                VTABLE_get_pointer(interp, PREG(2)));return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_rethrow_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * dest;
-    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_Exception) {
-        opcode_t * const ret    =cur_opcode + 2;
-        PMC      * const except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
-                EXCEPTION_UNIMPLEMENTED,
-                Parrot_str_new_constant(interp, "Not a throwable object"));
-        dest = Parrot_ex_throw_from_op(interp, except, ret);return (opcode_t *)dest;
-    }
-    dest = Parrot_ex_rethrow_from_op(interp, PREG(1));return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_count_eh_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_cx_count_handlers_local(interp,
-            Parrot_str_new_constant(interp, "exception"));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_die_s(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
-    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
-    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
-                                    CONTROL_ERROR, SREG(1));
-
-    VTABLE_set_pointer(interp, resume, ret);
-
-    VTABLE_set_attr_str(interp, exception,
-                        Parrot_str_new_constant(interp, "resume"), resume);
-    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_die_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
-    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
-    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
-                                    CONTROL_ERROR, CONST(1)->u.string);
-
-    VTABLE_set_pointer(interp, resume, ret);
-
-    VTABLE_set_attr_str(interp, exception,
-                        Parrot_str_new_constant(interp, "resume"), resume);
-    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_die_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
-    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
-    STRING   * const msg       = PMC_IS_NULL(PREG(1)) ? NULL : VTABLE_get_string(interp, PREG(1));
-    PMC      * const exception =
-        Parrot_ex_build_exception(interp, EXCEPT_error, CONTROL_ERROR, msg);
-
-    VTABLE_set_pointer(interp, resume, ret);
-
-    VTABLE_set_attr_str(interp, exception,
-                        Parrot_str_new_constant(interp, "resume"), resume);
-    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_die_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
-    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
-    STRING   * const msg       = PMC_IS_NULL(CONST(1)->u.key) ? NULL : VTABLE_get_string(interp, CONST(1)->u.key);
-    PMC      * const exception =
-        Parrot_ex_build_exception(interp, EXCEPT_error, CONTROL_ERROR, msg);
-
-    VTABLE_set_pointer(interp, resume, ret);
-
-    VTABLE_set_attr_str(interp, exception,
-                        Parrot_str_new_constant(interp, "resume"), resume);
-    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_die_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) == EXCEPT_doomed)
-        _exit(IREG(2));
-    else {
-        opcode_t * const ret       =cur_opcode + 3;
-        PMC      * const exception = Parrot_ex_build_exception(interp, IREG(1), IREG(2), NULL);
-        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
-    }
-}
-
-opcode_t *
-Parrot_die_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] == EXCEPT_doomed)
-        _exit(IREG(2));
-    else {
-        opcode_t * const ret       =cur_opcode + 3;
-        PMC      * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], IREG(2), NULL);
-        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
-    }
-}
-
-opcode_t *
-Parrot_die_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) == EXCEPT_doomed)
-        _exit(cur_opcode[2]);
-    else {
-        opcode_t * const ret       =cur_opcode + 3;
-        PMC      * const exception = Parrot_ex_build_exception(interp, IREG(1), cur_opcode[2], NULL);
-        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
-    }
-}
-
-opcode_t *
-Parrot_die_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] == EXCEPT_doomed)
-        _exit(cur_opcode[2]);
-    else {
-        opcode_t * const ret       =cur_opcode + 3;
-        PMC      * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], cur_opcode[2], NULL);
-        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
-    }
-}
-
-opcode_t *
-Parrot_exit_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
-    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
-    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, IREG(1), NULL);
-
-    VTABLE_set_pointer(interp, resume, ret);
-
-    VTABLE_set_attr_str(interp, exception,
-                        Parrot_str_new_constant(interp, "resume"), resume);
-    VTABLE_set_integer_keyed_str(interp, exception,
-        Parrot_str_new_constant(interp, "exit_code"), IREG(1));
-    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_exit_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
-    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
-    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, cur_opcode[1], NULL);
-
-    VTABLE_set_pointer(interp, resume, ret);
-
-    VTABLE_set_attr_str(interp, exception,
-                        Parrot_str_new_constant(interp, "resume"), resume);
-    VTABLE_set_integer_keyed_str(interp, exception,
-        Parrot_str_new_constant(interp, "exit_code"), cur_opcode[1]);
-    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
-}
-
-opcode_t *
-Parrot_debug_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) != 0) { Interp_debug_SET(interp,   IREG(1)); }
-    else         { Interp_debug_CLEAR(interp, PARROT_ALL_DEBUG_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
-}
-
-opcode_t *
-Parrot_debug_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] != 0) { Interp_debug_SET(interp,   cur_opcode[1]); }
-    else         { Interp_debug_CLEAR(interp, PARROT_ALL_DEBUG_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
-}
-
-opcode_t *
-Parrot_bounds_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) != 0) { Parrot_set_flag(interp,   PARROT_BOUNDS_FLAG); }
-    else         { Interp_flags_CLEAR(interp, PARROT_BOUNDS_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
-}
-
-opcode_t *
-Parrot_bounds_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] != 0) { Parrot_set_flag(interp,   PARROT_BOUNDS_FLAG); }
-    else         { Interp_flags_CLEAR(interp, PARROT_BOUNDS_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
-}
-
-opcode_t *
-Parrot_profile_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) != 0) { Parrot_set_flag(interp,   PARROT_PROFILE_FLAG); }
-    else         { Interp_flags_CLEAR(interp, PARROT_PROFILE_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
-}
-
-opcode_t *
-Parrot_profile_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] != 0) { Parrot_set_flag(interp,   PARROT_PROFILE_FLAG); }
-    else         { Interp_flags_CLEAR(interp, PARROT_PROFILE_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
-}
-
-opcode_t *
-Parrot_trace_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) != 0) { Parrot_set_trace(interp,   IREG(1)); }
-    else         { Parrot_clear_trace(interp, PARROT_ALL_TRACE_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
-}
-
-opcode_t *
-Parrot_trace_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] != 0) { Parrot_set_trace(interp,   cur_opcode[1]); }
-    else         { Parrot_clear_trace(interp, PARROT_ALL_TRACE_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
-}
-
-opcode_t *
-Parrot_gc_debug_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) != 0) { Interp_flags_SET(interp,   PARROT_GC_DEBUG_FLAG); }
-    else         { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); }
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_gc_debug_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] != 0) { Interp_flags_SET(interp,   PARROT_GC_DEBUG_FLAG); }
-    else         { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); }
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_interpinfo_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = interpinfo(interp, IREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_interpinfo_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = interpinfo(interp, cur_opcode[2]);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_interpinfo_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = interpinfo_p(interp, IREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_interpinfo_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = interpinfo_p(interp, cur_opcode[2]);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_interpinfo_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const s = interpinfo_s(interp, IREG(2));
-    SREG(1) = s;
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_interpinfo_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const s = interpinfo_s(interp, cur_opcode[2]);
-    SREG(1) = s;
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_warningson_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PARROT_WARNINGS_on(interp, IREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_warningson_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PARROT_WARNINGS_on(interp, cur_opcode[1]);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_warningsoff_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PARROT_WARNINGS_off(interp, IREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_warningsoff_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PARROT_WARNINGS_off(interp, cur_opcode[1]);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_errorson_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PARROT_ERRORS_on(interp, IREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_errorson_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PARROT_ERRORS_on(interp, cur_opcode[1]);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_errorsoff_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PARROT_ERRORS_off(interp, IREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_errorsoff_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PARROT_ERRORS_off(interp, cur_opcode[1]);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_runinterp_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Interp * const new_interp = (Interp *)VTABLE_get_pointer(interp, PREG(1));
-    Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
-    Parrot_switch_to_cs(new_interp, interp->code, 1);
-    runops(new_interp, REL_PC + IREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_runinterp_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Interp * const new_interp = (Interp *)VTABLE_get_pointer(interp, PREG(1));
-    Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
-    Parrot_switch_to_cs(new_interp, interp->code, 1);
-    runops(new_interp, REL_PC + cur_opcode[2]);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_getinterp_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
-           IGLOBALS_INTERPRETER);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_sweep_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1])
-        Parrot_gc_mark_and_sweep(interp, 0);
-    else
-        if (Parrot_gc_impatient_pmcs(interp))
-            Parrot_gc_mark_and_sweep(interp, GC_lazy_FLAG);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_collect(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_gc_compact_memory_pool(interp);
-
-return (opcode_t *)cur_opcode + 1;}
-
-opcode_t *
-Parrot_sweepoff(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_block_GC_mark(interp);
-
-return (opcode_t *)cur_opcode + 1;}
-
-opcode_t *
-Parrot_sweepon(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_unblock_GC_mark(interp);
-
-return (opcode_t *)cur_opcode + 1;}
-
-opcode_t *
-Parrot_collectoff(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_block_GC_sweep(interp);
-
-return (opcode_t *)cur_opcode + 1;}
-
-opcode_t *
-Parrot_collecton(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_unblock_GC_sweep(interp);
-
-return (opcode_t *)cur_opcode + 1;}
-
-opcode_t *
-Parrot_needs_destroy_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_gc_pmc_needs_early_collection(interp, PREG(1));
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_loadlib_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_load_lib(interp, SREG(2), NULL);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_loadlib_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, NULL);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_loadlib_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_load_lib(interp, SREG(2), PREG(3));
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_loadlib_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, PREG(3));
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_loadlib_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_load_lib(interp, SREG(2), CONST(3)->u.key);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_loadlib_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, CONST(3)->u.key);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_dlfunc_p_p_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
-    void         *dl_handle = NULL;
-    void         *ptr       = NULL;
-    funcptr_t     p;
-
-    if (!PMC_IS_NULL(PREG(2))
-    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
-    && VTABLE_defined(interp, PREG(2))) {
-        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
-    }
-
-    ptr = Parrot_dlsym(dl_handle, name);
-    p = D2FPTR(ptr);
-
-    if (p == NULLfunc) {
-        const char * err = Parrot_dlerror();
-        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
-    }
-    else {
-        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
-        VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
-    }
-    Parrot_str_free_cstring(name);
-
-return (opcode_t *)cur_opcode + 5;}
-
-opcode_t *
-Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
-    void         *dl_handle = NULL;
-    void         *ptr       = NULL;
-    funcptr_t     p;
-
-    if (!PMC_IS_NULL(PREG(2))
-    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
-    && VTABLE_defined(interp, PREG(2))) {
-        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
-    }
-
-    ptr = Parrot_dlsym(dl_handle, name);
-    p = D2FPTR(ptr);
-
-    if (p == NULLfunc) {
-        const char * err = Parrot_dlerror();
-        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
-    }
-    else {
-        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
-        VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
-    }
-    Parrot_str_free_cstring(name);
-
-return (opcode_t *)cur_opcode + 5;}
-
-opcode_t *
-Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
-    void         *dl_handle = NULL;
-    void         *ptr       = NULL;
-    funcptr_t     p;
-
-    if (!PMC_IS_NULL(PREG(2))
-    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
-    && VTABLE_defined(interp, PREG(2))) {
-        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
-    }
-
-    ptr = Parrot_dlsym(dl_handle, name);
-    p = D2FPTR(ptr);
-
-    if (p == NULLfunc) {
-        const char * err = Parrot_dlerror();
-        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
-    }
-    else {
-        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
-        VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
-    }
-    Parrot_str_free_cstring(name);
-
-return (opcode_t *)cur_opcode + 5;}
-
-opcode_t *
-Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
-    void         *dl_handle = NULL;
-    void         *ptr       = NULL;
-    funcptr_t     p;
-
-    if (!PMC_IS_NULL(PREG(2))
-    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
-    && VTABLE_defined(interp, PREG(2))) {
-        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
-    }
 
-    ptr = Parrot_dlsym(dl_handle, name);
-    p = D2FPTR(ptr);
+};
 
-    if (p == NULLfunc) {
-        const char * err = Parrot_dlerror();
-        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
-    }
-    else {
-        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
-        VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
-    }
-    Parrot_str_free_cstring(name);
 
-return (opcode_t *)cur_opcode + 5;}
+/*
+** Op Function Definitions:
+*/
 
 opcode_t *
-Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
-    void *        dl_handle = NULL;
-    void *        p         = NULL;
-
-    if (!PMC_IS_NULL(PREG(2))
-    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
-    && VTABLE_defined(interp, PREG(2))) {
-        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
-    }
-
-    p = Parrot_dlsym(dl_handle, name);
-
-    if (p == NULL) {
-        const char * const err = Parrot_dlerror();
-        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
-    }
-    else {
-        /* At this point we have the symbol's address. We just need to build
-           a PMC with it so we can get and set the value */
-        PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
-        VTABLE_set_pointer(interp, PREG(1), p);
-    }
-    Parrot_str_free_cstring(name);
-
-return (opcode_t *)cur_opcode + 4;}
+Parrot_end(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)0;
+}
 
 opcode_t *
-Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_noop(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
-    void *        dl_handle = NULL;
-    void *        p         = NULL;
-
-    if (!PMC_IS_NULL(PREG(2))
-    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
-    && VTABLE_defined(interp, PREG(2))) {
-        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
-    }
-
-    p = Parrot_dlsym(dl_handle, name);
-
-    if (p == NULL) {
-        const char * const err = Parrot_dlerror();
-        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
-    }
-    else {
-        /* At this point we have the symbol's address. We just need to build
-           a PMC with it so we can get and set the value */
-        PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
-        VTABLE_set_pointer(interp, PREG(1), p);
-    }
-    Parrot_str_free_cstring(name);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 1;}
 
 opcode_t *
-Parrot_compreg_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_check_events(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
-            interp->iglobals, IGLOBALS_COMPREG_HASH);
-    VTABLE_set_pmc_keyed_str(interp, compreg_hash, SREG(1), PREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
+    opcode_t * const next =cur_opcode + 1;
+    Parrot_cx_check_tasks(interp, interp->scheduler);return (opcode_t *)next;   /* force this being a branch op */
+}
 
 opcode_t *
-Parrot_compreg_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_check_events__(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
-            interp->iglobals, IGLOBALS_COMPREG_HASH);
-    VTABLE_set_pmc_keyed_str(interp, compreg_hash, CONST(1)->u.string, PREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
+    opcode_t * const _this = CUR_OPCODE;
+    /* Restore op_func_table. */
+    disable_event_checking(interp);
+    Parrot_cx_handle_tasks(interp, interp->scheduler);return (opcode_t *)_this;   /* force this being a branch op */
+}
 
 opcode_t *
-Parrot_compreg_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_wrapper__(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
-            interp->iglobals, IGLOBALS_COMPREG_HASH);
-    PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, SREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
+    opcode_t *pc = CUR_OPCODE;
+    DO_OP(pc, interp);return (opcode_t *)pc;
+}
 
 opcode_t *
-Parrot_compreg_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_load_bytecode_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
-            interp->iglobals, IGLOBALS_COMPREG_HASH);
-    PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, CONST(2)->u.string);
+    Parrot_load_bytecode(interp, SREG(1));
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_new_callback_p_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_load_bytecode_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), SREG(4));
+    Parrot_load_bytecode(interp, CONST(1)->u.string);
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_new_callback_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_load_language_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), CONST(4)->u.string);
+    Parrot_load_language(interp, SREG(1));
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_annotations_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_load_language_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (interp->code->annotations) {
-        const opcode_t cur_pos = (cur_opcode + 2) - interp->code->base.data;
-        PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
-                cur_pos, NULL);
-    }
-    else {
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Hash);
-    }
+    Parrot_load_language(interp, CONST(1)->u.string);
 
 return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_annotations_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (interp->code->annotations) {
-        const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
-        PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
-                cur_pos, SREG(2));
-    }
-    else {
-        PREG(1) = PMCNULL;
-    }
+Parrot_branch_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)cur_opcode + IREG(1);
+}
 
-return (opcode_t *)cur_opcode + 3;}
+opcode_t *
+Parrot_branch_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)cur_opcode + cur_opcode[1];
+}
 
 opcode_t *
-Parrot_annotations_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_local_branch_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (interp->code->annotations) {
-        const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
-        PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
-                cur_pos, CONST(2)->u.string);
-    }
-    else {
-        PREG(1) = PMCNULL;
+    INTVAL return_addr;
+    opcode_t * const dest =cur_opcode + 3;
+
+    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+            EXCEPTION_INVALID_OPERATION,
+            "Must pass a valid integer array to 'local_branch'");return (opcode_t *)handler;
     }
 
-return (opcode_t *)cur_opcode + 3;}
+    return_addr = PTR2INTVAL(dest);
+    VTABLE_push_integer(interp, PREG(1), return_addr);return (opcode_t *)cur_opcode + IREG(2);
+}
 
 opcode_t *
-Parrot_band_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_local_branch_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) &= IREG(2);
+    INTVAL return_addr;
+    opcode_t * const dest =cur_opcode + 3;
 
-return (opcode_t *)cur_opcode + 3;}
+    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+            EXCEPTION_INVALID_OPERATION,
+            "Must pass a valid integer array to 'local_branch'");return (opcode_t *)handler;
+    }
+
+    return_addr = PTR2INTVAL(dest);
+    VTABLE_push_integer(interp, PREG(1), return_addr);return (opcode_t *)cur_opcode + cur_opcode[2];
+}
 
 opcode_t *
-Parrot_band_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_local_return_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) &= cur_opcode[2];
+    INTVAL return_addr;
+    opcode_t *next;
+    opcode_t * const dest =cur_opcode + 2;
 
-return (opcode_t *)cur_opcode + 3;}
+    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+            EXCEPTION_INVALID_OPERATION,
+            "Must pass a valid integer array to 'local_return'");return (opcode_t *)handler;
+    }
 
-opcode_t *
-Parrot_band_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    const INTVAL b = a & IREG(2);
-    VTABLE_set_integer_native(interp, PREG(1), b);
+    return_addr = VTABLE_pop_integer(interp, PREG(1));
+    next = INTVAL2PTR(opcode_t *, return_addr);
 
-return (opcode_t *)cur_opcode + 3;}
+    /* The return address must be within the current code segment. */
+    if (! (next >= interp->code->base.data
+           && next < (interp->code->base.data + interp->code->base.size))) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+            EXCEPTION_INVALID_OPERATION,
+            "Address for 'local_return' must be within the current code segment");return (opcode_t *)handler;
+    }return (opcode_t *)next;
+}
 
 opcode_t *
-Parrot_band_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_jump_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    const INTVAL b = a & cur_opcode[2];
-    VTABLE_set_integer_native(interp, PREG(1), b);
-
-return (opcode_t *)cur_opcode + 3;}
+    opcode_t * const loc = INTVAL2PTR(opcode_t *, IREG(1));return (opcode_t *)loc;
+}
 
 opcode_t *
-Parrot_band_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_jump_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    const INTVAL b = VTABLE_get_integer(interp, PREG(2));
-    VTABLE_set_integer_native(interp, PREG(1), a & b);
-
-return (opcode_t *)cur_opcode + 3;}
+    opcode_t * const loc = INTVAL2PTR(opcode_t *, cur_opcode[1]);return (opcode_t *)loc;
+}
 
 opcode_t *
-Parrot_band_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_enternative(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) & IREG(3);
-
-return (opcode_t *)cur_opcode + 4;}
+    opcode_t * const addr = run_native(interp, CUR_OPCODE,
+            interp->code->base.data);return (opcode_t *)addr;
+}
 
 opcode_t *
-Parrot_band_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_if_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = cur_opcode[2] & IREG(3);
+    if (IREG(1) != 0)return (opcode_t *)cur_opcode + cur_opcode[2];
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_band_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_if_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) & cur_opcode[3];
+    if (!FLOAT_IS_ZERO(NREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_band_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_if_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    VTABLE_set_integer_native(interp, PREG(1), a & IREG(3));
+    if (Parrot_str_boolean(interp, SREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_band_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_if_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    VTABLE_set_integer_native(interp, PREG(1), a & cur_opcode[3]);
+    if (VTABLE_get_bool(interp, PREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_band_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_unless_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    const INTVAL b = VTABLE_get_integer(interp, PREG(3));
-    VTABLE_set_integer_native(interp, PREG(1), a & b);
+    if (IREG(1) == 0)return (opcode_t *)cur_opcode + cur_opcode[2];
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bands_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_unless_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(1));
-    STRING * const b = Parrot_str_bitwise_and(interp, a, SREG(2));
-    VTABLE_set_string_native(interp, PREG(1), b);
+    if (FLOAT_IS_ZERO(NREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bands_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_unless_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(1));
-    STRING * const b = Parrot_str_bitwise_and(interp, a, CONST(2)->u.string);
-    VTABLE_set_string_native(interp, PREG(1), b);
+    if (!Parrot_str_boolean(interp, SREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bands_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_unless_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * a = VTABLE_get_string(interp, PREG(1));
-    STRING * const b = VTABLE_get_string(interp, PREG(2));
-    a = Parrot_str_bitwise_and(interp, a, b);
-    VTABLE_set_string_native(interp, PREG(1), a);
+    if (!VTABLE_get_bool(interp, PREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bands_s_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_invokecc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_and(interp, SREG(2), SREG(3));
+    PMC      * const p     = PREG(1);
+    opcode_t *dest         =cur_opcode + 2;
+    PMC      * const signature = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
 
-return (opcode_t *)cur_opcode + 4;}
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+
+    if (!PMC_IS_NULL(signature))
+        Parrot_pcc_set_object(interp, signature, NULL);
+    interp->current_cont   = NEED_CONTINUATION;
+    dest                   = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_bands_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_invoke_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_and(interp, CONST(2)->u.string, SREG(3));
+    opcode_t   *dest       =cur_opcode + 3;
+    PMC * const p          = PREG(1);
+    PMC * const signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
 
-return (opcode_t *)cur_opcode + 4;}
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
 
-opcode_t *
-Parrot_bands_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_and(interp, SREG(2), CONST(3)->u.string);
+    if (!PMC_IS_NULL(signature))
+        Parrot_pcc_set_object(interp, signature, NULL);
+    interp->current_cont   = PREG(2);
 
-return (opcode_t *)cur_opcode + 4;}
+    dest = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_bands_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_yield(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(2));
-    STRING * const b = Parrot_str_bitwise_and(interp, a, SREG(3));
-    VTABLE_set_string_native(interp, PREG(1), b);
+    opcode_t   *dest =cur_opcode + 1;
+    PMC * const p    = Parrot_pcc_get_sub(interp, CURRENT_CONTEXT(interp));
 
-return (opcode_t *)cur_opcode + 4;}
+    VTABLE_increment(interp, p);
+    dest = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_bands_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_tailcall_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(2));
-    STRING * const b = Parrot_str_bitwise_and(interp, a, CONST(3)->u.string);
-    VTABLE_set_string_native(interp, PREG(1), b);
+    PMC * const p               = PREG(1);
+    opcode_t   *dest            =cur_opcode + 2;
+    PMC * const ctx             = CURRENT_CONTEXT(interp);
+    PMC * const parent_ctx      = Parrot_pcc_get_caller_ctx(interp, ctx);
+    PMC * const this_call_sig   = Parrot_pcc_get_signature(interp, ctx);
+    PMC * const parent_call_sig = Parrot_pcc_get_signature(interp, parent_ctx);
+    interp->current_cont        = Parrot_pcc_get_continuation(interp, ctx);
 
-return (opcode_t *)cur_opcode + 4;}
+    Parrot_pcc_merge_signature_for_tailcall(interp, parent_call_sig, this_call_sig);
+
+    SUB_FLAG_TAILCALL_SET(interp->current_cont);
+    dest = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_bands_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_returncc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(2));
-    STRING * const b = VTABLE_get_string(interp, PREG(3));
-    STRING * const c = Parrot_str_bitwise_and(interp, a, b);
-    VTABLE_set_string_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
+    PMC * const p = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
+    opcode_t * const dest = VTABLE_invoke(interp, p,cur_opcode + 1);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_bnot_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_capture_lex_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = ~ IREG(1);
+    Parrot_capture_lex(interp, PREG(1));
 
 return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bnot_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_newclosure_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = ~ IREG(2);
+    PREG(1) = parrot_new_closure(interp, PREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bnot_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_set_args_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    VTABLE_set_integer_native(interp, PREG(1), ~a);
+    opcode_t * const raw_args = CUR_OPCODE;
+    PMC * const signature = CONST(1)->u.key;
+    PMC * const call_sig = Parrot_pcc_build_sig_object_from_op(interp,
+            PMCNULL, signature, raw_args);
+    const INTVAL argc = VTABLE_elements(interp, signature);
+    Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_sig);return (opcode_t *)cur_opcode + argc + 2;
+}
 
-return (opcode_t *)cur_opcode + 2;}
+opcode_t *
+Parrot_get_params_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const raw_params  = CUR_OPCODE;
+    PMC      * const signature   = CONST(1)->u.key;
+    PMC      * const ctx         = CURRENT_CONTEXT(interp);
+    PMC      * const ccont       = Parrot_pcc_get_continuation(interp, ctx);
+    PMC      * const caller_ctx  = Parrot_pcc_get_caller_ctx(interp, ctx);
+    PMC      * const call_object = Parrot_pcc_get_signature(interp, caller_ctx);
+    INTVAL argc;
+
+    Parrot_pcc_fill_params_from_op(interp, call_object, signature, raw_params,
+            PARROT_ERRORS_PARAM_COUNT_FLAG);
+
+    /* TODO Factor out with Sub.invoke */
+    if (PObj_get_FLAGS(ccont) & SUB_FLAG_TAILCALL) {
+        PObj_get_FLAGS(ccont) &= ~SUB_FLAG_TAILCALL;
+        Parrot_pcc_dec_recursion_depth(interp, ctx);
+        Parrot_pcc_set_caller_ctx(interp, ctx, Parrot_pcc_get_caller_ctx(interp, caller_ctx));
+    }
+    argc = VTABLE_elements(interp, signature);return (opcode_t *)cur_opcode + argc + 2;
+}
 
 opcode_t *
-Parrot_bnot_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_set_returns_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    PMC * const b = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
-    VTABLE_set_integer_native(interp, b, ~a);
-    PREG(1) = b;
+    opcode_t * const raw_args  = CUR_OPCODE;
+    PMC      * const signature = CONST(1)->u.key;
+    PMC      * const call_sig  = Parrot_pcc_build_sig_object_from_op(interp,
+                Parrot_pcc_get_signature(interp,
+                Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp))),
+                    signature, raw_args);
+    INTVAL argc;
 
-return (opcode_t *)cur_opcode + 3;}
+    Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_sig);
+
+    argc = VTABLE_elements(interp, signature);return (opcode_t *)cur_opcode + argc + 2;
+}
 
 opcode_t *
-Parrot_bnots_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_get_results_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_not(interp, SREG(2));
+    opcode_t * const raw_params  = CUR_OPCODE;
+    PMC      * const signature   = CONST(1)->u.key;
+    PMC             *ctx         = CURRENT_CONTEXT(interp);
+    PMC             *ccont       = Parrot_pcc_get_continuation(interp, ctx);
+    PMC             *call_object = Parrot_pcc_get_signature(interp, ctx);
 
-return (opcode_t *)cur_opcode + 3;}
+    INTVAL argc;
 
-opcode_t *
-Parrot_bnots_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_not(interp, CONST(2)->u.string);
+    Parrot_pcc_fill_params_from_op(interp, call_object, signature, raw_params,
+            PARROT_ERRORS_RESULT_COUNT_FLAG);
 
-return (opcode_t *)cur_opcode + 3;}
+    argc = VTABLE_elements(interp, signature);return (opcode_t *)cur_opcode + argc + 2;
+}
 
 opcode_t *
-Parrot_bnots_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_set_result_info_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(1));
-    STRING * const b = Parrot_str_bitwise_not(interp, a);
-    VTABLE_set_string_native(interp, PREG(1), b);
+    PMC * const ctx = CURRENT_CONTEXT(interp);
+
+    VTABLE_set_attr_str(interp, ctx,
+            Parrot_str_new_constant(interp, "return_flags"),
+            PREG(1));
 
 return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bnots_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_set_result_info_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(2));
-    STRING * const b = Parrot_str_bitwise_not(interp, a);
-    VTABLE_set_string_native(interp, PREG(1), b);
-
-return (opcode_t *)cur_opcode + 3;}
+    PMC * const ctx = CURRENT_CONTEXT(interp);
 
-opcode_t *
-Parrot_bor_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) |= IREG(2);
+    VTABLE_set_attr_str(interp, ctx,
+            Parrot_str_new_constant(interp, "return_flags"),
+            CONST(1)->u.key);
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bor_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_result_info_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) |= cur_opcode[2];
-
-return (opcode_t *)cur_opcode + 3;}
+    PMC * const caller_ctx = Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+    PMC * const sig        = VTABLE_get_attr_str(interp, caller_ctx,
+            Parrot_str_new_constant(interp, "return_flags"));
 
-opcode_t *
-Parrot_bor_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    VTABLE_set_integer_native(interp, PREG(1), a | IREG(2));
+    /* If no elements, hand back empty array; otherwise PMC. */
+    if (!sig)
+        PREG(1) = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
+    else
+        PREG(1) = sig;
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bor_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_set_addr_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    VTABLE_set_integer_native(interp, PREG(1), a | cur_opcode[2]);
+    IREG(1) = PTR2INTVAL(CUR_OPCODE + cur_opcode[2]);
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bor_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_set_addr_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    const INTVAL b = VTABLE_get_integer(interp, PREG(2));
-    VTABLE_set_integer_native(interp, PREG(1), a | b);
+    VTABLE_set_pointer(interp, PREG(1), (CUR_OPCODE + cur_opcode[2]));
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) | IREG(3);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_bor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_set_addr_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = cur_opcode[2] | IREG(3);
+    VTABLE_set_pointer(interp, PREG(1), (void*)IREG(2));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_get_addr_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) | cur_opcode[3];
+    void *ptr = VTABLE_get_pointer(interp, PREG(2));
+    IREG(1)        = (INTVAL)ptr;
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bor_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_schedule_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    VTABLE_set_integer_native(interp, PREG(1), a | IREG(3));
+    Parrot_cx_schedule_task(interp, PREG(1));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bor_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_addhandler_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    VTABLE_set_integer_native(interp, PREG(1), a | cur_opcode[3]);
+    Parrot_cx_add_handler(interp, PREG(1));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bor_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_push_eh_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    const INTVAL b = VTABLE_get_integer(interp, PREG(3));
-    VTABLE_set_integer_native(interp, PREG(1), a | b);
+    PMC * const eh = Parrot_pmc_new(interp, enum_class_ExceptionHandler);
+    VTABLE_set_pointer(interp, eh, CUR_OPCODE + cur_opcode[1]);
+    Parrot_cx_add_handler_local(interp, eh);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bors_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_push_eh_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(1));
-    STRING * const b = Parrot_str_bitwise_or(interp, a, SREG(2));
-    VTABLE_set_string_native(interp, PREG(1), b);
+    Parrot_cx_add_handler_local(interp, PREG(1));
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bors_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_pop_eh(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(1));
-    STRING * const b = Parrot_str_bitwise_or(interp, a, CONST(2)->u.string);
-    VTABLE_set_string_native(interp, PREG(1), b);
+    Parrot_cx_delete_handler_local(interp,
+            Parrot_str_new_constant(interp, "exception"));
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 1;}
 
 opcode_t *
-Parrot_bors_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_throw_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(1));
-    STRING * const b = VTABLE_get_string(interp, PREG(2));
-    STRING * const c = Parrot_str_bitwise_or(interp, a, b);
-    VTABLE_set_string_native(interp, PREG(1), c);
+    PMC * except = PREG(1);
+    opcode_t *dest;
+    opcode_t * const ret    =cur_opcode + 2;
+    PMC      * const resume = pmc_new(interp, enum_class_Continuation);
 
-return (opcode_t *)cur_opcode + 3;}
+    VTABLE_set_pointer(interp, resume, ret);
 
-opcode_t *
-Parrot_bors_s_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_or(interp, SREG(2), SREG(3));
+    if (PMC_IS_NULL(except) || except->vtable->base_type != enum_class_Exception)
+        except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
+                EXCEPTION_UNIMPLEMENTED,
+                Parrot_str_new_constant(interp, "Not a throwable object"));
 
-return (opcode_t *)cur_opcode + 4;}
+    VTABLE_set_attr_str(interp, except, Parrot_str_new_constant(interp, "resume"), resume);
+    dest = Parrot_ex_throw_from_op(interp, except, ret);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_bors_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_throw_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_or(interp, CONST(2)->u.string, SREG(3));
-
-return (opcode_t *)cur_opcode + 4;}
+    opcode_t * dest;
+    PMC * except = PREG(1);
+    if (PMC_IS_NULL(except) || except->vtable->base_type != enum_class_Exception)
+        except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
+                EXCEPTION_UNIMPLEMENTED,
+                Parrot_str_new_constant(interp, "Not a throwable object"));
+    dest = Parrot_ex_throw_from_op(interp, PREG(1),
+                                VTABLE_get_pointer(interp, PREG(2)));return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_bors_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_rethrow_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_or(interp, SREG(2), CONST(3)->u.string);
-
-return (opcode_t *)cur_opcode + 4;}
+    opcode_t * dest;
+    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_Exception) {
+        opcode_t * const ret    =cur_opcode + 2;
+        PMC      * const except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
+                EXCEPTION_UNIMPLEMENTED,
+                Parrot_str_new_constant(interp, "Not a throwable object"));
+        dest = Parrot_ex_throw_from_op(interp, except, ret);return (opcode_t *)dest;
+    }
+    dest = Parrot_ex_rethrow_from_op(interp, PREG(1));return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_bors_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_count_eh_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const b = VTABLE_get_string(interp, PREG(2));
-    STRING * const c = Parrot_str_bitwise_or(interp, b, SREG(3));
-    VTABLE_set_string_native(interp, PREG(1), c);
+    IREG(1) = Parrot_cx_count_handlers_local(interp,
+            Parrot_str_new_constant(interp, "exception"));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bors_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_die_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const b = VTABLE_get_string(interp, PREG(2));
-    STRING * const c = Parrot_str_bitwise_or(interp, b, CONST(3)->u.string);
-    VTABLE_set_string_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
+    opcode_t        *dest;
+    opcode_t * const ret       =cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
+                                    CONTROL_ERROR, SREG(1));
 
-opcode_t *
-Parrot_bors_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(2));
-    STRING * const b = VTABLE_get_string(interp, PREG(3));
-    STRING * const c = Parrot_str_bitwise_or(interp, a, b);
-    VTABLE_set_string_native(interp, PREG(1), c);
+    VTABLE_set_pointer(interp, resume, ret);
 
-return (opcode_t *)cur_opcode + 4;}
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_shl_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_die_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = bit_shift_left(IREG(1), IREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
+    opcode_t        *dest;
+    opcode_t * const ret       =cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
+                                    CONTROL_ERROR, CONST(1)->u.string);
 
-opcode_t *
-Parrot_shl_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = bit_shift_left(IREG(1), cur_opcode[2]);
+    VTABLE_set_pointer(interp, resume, ret);
 
-return (opcode_t *)cur_opcode + 3;}
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_shl_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_die_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    const INTVAL b = bit_shift_left(a, IREG(2));
-    VTABLE_set_integer_native(interp, PREG(1), b);
-
-return (opcode_t *)cur_opcode + 3;}
+    opcode_t        *dest;
+    opcode_t * const ret       =cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    STRING   * const msg       = PMC_IS_NULL(PREG(1)) ? NULL : VTABLE_get_string(interp, PREG(1));
+    PMC      * const exception =
+        Parrot_ex_build_exception(interp, EXCEPT_error, CONTROL_ERROR, msg);
 
-opcode_t *
-Parrot_shl_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    const INTVAL b = bit_shift_left(a, cur_opcode[2]);
-    VTABLE_set_integer_native(interp, PREG(1), b);
+    VTABLE_set_pointer(interp, resume, ret);
 
-return (opcode_t *)cur_opcode + 3;}
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_shl_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_die_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    const INTVAL b = VTABLE_get_integer(interp, PREG(2));
-    const INTVAL c = bit_shift_left(a, b);
-    VTABLE_set_integer_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 3;}
+    opcode_t        *dest;
+    opcode_t * const ret       =cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    STRING   * const msg       = PMC_IS_NULL(CONST(1)->u.key) ? NULL : VTABLE_get_string(interp, CONST(1)->u.key);
+    PMC      * const exception =
+        Parrot_ex_build_exception(interp, EXCEPT_error, CONTROL_ERROR, msg);
 
-opcode_t *
-Parrot_shl_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = bit_shift_left(IREG(2), IREG(3));
+    VTABLE_set_pointer(interp, resume, ret);
 
-return (opcode_t *)cur_opcode + 4;}
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_shl_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_die_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = bit_shift_left(cur_opcode[2], IREG(3));
-
-return (opcode_t *)cur_opcode + 4;}
+    if (IREG(1) == EXCEPT_doomed)
+        _exit(IREG(2));
+    else {
+        opcode_t * const ret       =cur_opcode + 3;
+        PMC      * const exception = Parrot_ex_build_exception(interp, IREG(1), IREG(2), NULL);
+        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+    }
+}
 
 opcode_t *
-Parrot_shl_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_die_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = bit_shift_left(IREG(2), cur_opcode[3]);
-
-return (opcode_t *)cur_opcode + 4;}
+    if (cur_opcode[1] == EXCEPT_doomed)
+        _exit(IREG(2));
+    else {
+        opcode_t * const ret       =cur_opcode + 3;
+        PMC      * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], IREG(2), NULL);
+        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+    }
+}
 
 opcode_t *
-Parrot_shl_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_die_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    const INTVAL b = bit_shift_left(a, IREG(3));
-    VTABLE_set_integer_native(interp, PREG(1), b);
-
-return (opcode_t *)cur_opcode + 4;}
+    if (IREG(1) == EXCEPT_doomed)
+        _exit(cur_opcode[2]);
+    else {
+        opcode_t * const ret       =cur_opcode + 3;
+        PMC      * const exception = Parrot_ex_build_exception(interp, IREG(1), cur_opcode[2], NULL);
+        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+    }
+}
 
 opcode_t *
-Parrot_shl_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_die_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    const INTVAL b = bit_shift_left(a, cur_opcode[3]);
-    VTABLE_set_integer_native(interp, PREG(1), b);
-
-return (opcode_t *)cur_opcode + 4;}
+    if (cur_opcode[1] == EXCEPT_doomed)
+        _exit(cur_opcode[2]);
+    else {
+        opcode_t * const ret       =cur_opcode + 3;
+        PMC      * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], cur_opcode[2], NULL);
+        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+    }
+}
 
 opcode_t *
-Parrot_shl_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_exit_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    const INTVAL b = VTABLE_get_integer(interp, PREG(3));
-    const INTVAL c = bit_shift_left(a, b);
-    VTABLE_set_integer_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
+    opcode_t        *dest;
+    opcode_t * const ret       =cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, 
+                                                           CONTROL_EXIT, NULL);
 
-opcode_t *
-Parrot_shr_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL signed_shift = -IREG(2);
-    IREG(1) = bit_shift_left(IREG(1), signed_shift);
+    VTABLE_set_pointer(interp, resume, ret);
 
-return (opcode_t *)cur_opcode + 3;}
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    VTABLE_set_integer_keyed_str(interp, exception,
+        Parrot_str_new_constant(interp, "exit_code"), IREG(1));
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_shr_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_exit_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL signed_shift = -cur_opcode[2];
-    IREG(1) = bit_shift_left(IREG(1), signed_shift);
-
-return (opcode_t *)cur_opcode + 3;}
+    opcode_t        *dest;
+    opcode_t * const ret       =cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, 
+                                                           CONTROL_EXIT, NULL);
 
-opcode_t *
-Parrot_shr_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    const INTVAL b = bit_shift_left(a, -IREG(2));
-    VTABLE_set_integer_native(interp, PREG(1), b);
+    VTABLE_set_pointer(interp, resume, ret);
 
-return (opcode_t *)cur_opcode + 3;}
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    VTABLE_set_integer_keyed_str(interp, exception,
+        Parrot_str_new_constant(interp, "exit_code"), cur_opcode[1]);
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
 
 opcode_t *
-Parrot_shr_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_debug_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    const INTVAL b = bit_shift_left(a, -cur_opcode[2]);
-    VTABLE_set_integer_native(interp, PREG(1), b);
-
-return (opcode_t *)cur_opcode + 3;}
+    if (IREG(1) != 0) { Interp_debug_SET(interp,   IREG(1)); }
+    else         { Interp_debug_CLEAR(interp, PARROT_ALL_DEBUG_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
 
 opcode_t *
-Parrot_shr_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_debug_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
-    const INTVAL b = VTABLE_get_integer(interp, PREG(2));
-    const INTVAL c = bit_shift_left(a, -b);
-    VTABLE_set_integer_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 3;}
+    if (cur_opcode[1] != 0) { Interp_debug_SET(interp,   cur_opcode[1]); }
+    else         { Interp_debug_CLEAR(interp, PARROT_ALL_DEBUG_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
 
 opcode_t *
-Parrot_shr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bounds_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL signed_shift = -IREG(3);
-    IREG(1) = bit_shift_left(IREG(2), signed_shift);
-
-return (opcode_t *)cur_opcode + 4;}
+    if (IREG(1) != 0) { Parrot_set_flag(interp,   PARROT_BOUNDS_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_BOUNDS_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
 
 opcode_t *
-Parrot_shr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bounds_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL signed_shift = -IREG(3);
-    IREG(1) = bit_shift_left(cur_opcode[2], signed_shift);
-
-return (opcode_t *)cur_opcode + 4;}
+    if (cur_opcode[1] != 0) { Parrot_set_flag(interp,   PARROT_BOUNDS_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_BOUNDS_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
 
 opcode_t *
-Parrot_shr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_profile_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL signed_shift = -cur_opcode[3];
-    IREG(1) = bit_shift_left(IREG(2), signed_shift);
-
-return (opcode_t *)cur_opcode + 4;}
+    if (IREG(1) != 0) { Parrot_set_flag(interp,   PARROT_PROFILE_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_PROFILE_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
 
 opcode_t *
-Parrot_shr_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_profile_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    const INTVAL c = bit_shift_left(a, -IREG(3));
-    VTABLE_set_integer_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
+    if (cur_opcode[1] != 0) { Parrot_set_flag(interp,   PARROT_PROFILE_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_PROFILE_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
 
 opcode_t *
-Parrot_shr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_trace_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    const INTVAL c = bit_shift_left(a, -cur_opcode[3]);
-    VTABLE_set_integer_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
+    if (IREG(1) != 0) { Parrot_set_trace(interp,   IREG(1)); }
+    else         { Parrot_clear_trace(interp, PARROT_ALL_TRACE_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
 
 opcode_t *
-Parrot_shr_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_trace_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
-    const INTVAL b = VTABLE_get_integer(interp, PREG(3));
-    const INTVAL c = bit_shift_left(a, -b);
-    VTABLE_set_integer_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
+    if (cur_opcode[1] != 0) { Parrot_set_trace(interp,   cur_opcode[1]); }
+    else         { Parrot_clear_trace(interp, PARROT_ALL_TRACE_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
 
 opcode_t *
-Parrot_lsr_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gc_debug_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)IREG(1);
-    const UINTVAL b = a >> IREG(2);
-    IREG(1) = (INTVAL)b;
+    if (IREG(1) != 0) { Interp_flags_SET(interp,   PARROT_GC_DEBUG_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); }
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_lsr_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gc_debug_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)IREG(1);
-    const UINTVAL b = a >> cur_opcode[2];
-    IREG(1) = (INTVAL)b;
+    if (cur_opcode[1] != 0) { Interp_flags_SET(interp,   PARROT_GC_DEBUG_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); }
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_lsr_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_interpinfo_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
-    const UINTVAL b = a >> IREG(2);
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+    IREG(1) = interpinfo(interp, IREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_lsr_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_interpinfo_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
-    const UINTVAL b = a >> cur_opcode[2];
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+    IREG(1) = interpinfo(interp, cur_opcode[2]);
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_lsr_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_interpinfo_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
-    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
-    const UINTVAL c = a >> b;
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
+    PREG(1) = interpinfo_p(interp, IREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_lsr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> IREG(3));
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_lsr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_interpinfo_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (INTVAL)((UINTVAL)cur_opcode[2] >> IREG(3));
+    PREG(1) = interpinfo_p(interp, cur_opcode[2]);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_lsr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_interpinfo_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> cur_opcode[3]);
+    STRING * const s = interpinfo_s(interp, IREG(2));
+    SREG(1) = s;
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_lsr_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_interpinfo_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
-    const UINTVAL b = (UINTVAL)IREG(3);
-    const UINTVAL c = a >> b;
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
+    STRING * const s = interpinfo_s(interp, cur_opcode[2]);
+    SREG(1) = s;
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_lsr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_warningson_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
-    const UINTVAL b = (UINTVAL)cur_opcode[3];
-    const UINTVAL c = a >> b;
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
+    PARROT_WARNINGS_on(interp, IREG(1));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_lsr_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_warningson_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
-    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(3));
-    const UINTVAL c = a >> b;
-    VTABLE_set_integer_native(interp, PREG(3), (INTVAL)c);
+    PARROT_WARNINGS_on(interp, cur_opcode[1]);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_rot_i_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_warningsoff_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL r = IREG(2);
-    INTVAL s = IREG(3);
-    const INTVAL w = cur_opcode[4];
-    INTVAL d, t;
-    if (s < 0)
-        s += w;
-    d = r << s;
-    t = w - s;
-    t = (INTVAL)((UINTVAL)r >> t);
-    d |= t;
-    IREG(1) = d;
+    PARROT_WARNINGS_off(interp, IREG(1));
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_rot_i_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_warningsoff_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL r = cur_opcode[2];
-    INTVAL s = IREG(3);
-    const INTVAL w = cur_opcode[4];
-    INTVAL d, t;
-    if (s < 0)
-        s += w;
-    d = r << s;
-    t = w - s;
-    t = (INTVAL)((UINTVAL)r >> t);
-    d |= t;
-    IREG(1) = d;
+    PARROT_WARNINGS_off(interp, cur_opcode[1]);
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_rot_i_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_errorson_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL r = IREG(2);
-    INTVAL s = cur_opcode[3];
-    const INTVAL w = cur_opcode[4];
-    INTVAL d, t;
-    if (s < 0)
-        s += w;
-    d = r << s;
-    t = w - s;
-    t = (INTVAL)((UINTVAL)r >> t);
-    d |= t;
-    IREG(1) = d;
+    PARROT_ERRORS_on(interp, IREG(1));
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bxor_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_errorson_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) ^= IREG(2);
+    PARROT_ERRORS_on(interp, cur_opcode[1]);
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bxor_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_errorsoff_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) ^= cur_opcode[2];
+    PARROT_ERRORS_off(interp, IREG(1));
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bxor_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_errorsoff_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
-    const UINTVAL b = a ^ IREG(2);
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+    PARROT_ERRORS_off(interp, cur_opcode[1]);
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bxor_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_runinterp_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
-    const UINTVAL b = a ^ cur_opcode[2];
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+    Interp * const new_interp = (Interp *)VTABLE_get_pointer(interp, PREG(1));
+    Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
+    Parrot_switch_to_cs(new_interp, interp->code, 1);
+    runops(new_interp, REL_PC + IREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bxor_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_runinterp_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
-    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
-    const UINTVAL c = a ^ b;
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
+    Interp * const new_interp = (Interp *)VTABLE_get_pointer(interp, PREG(1));
+    Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
+    Parrot_switch_to_cs(new_interp, interp->code, 1);
+    runops(new_interp, REL_PC + cur_opcode[2]);
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bxor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_getinterp_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) ^ IREG(3);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
+           IGLOBALS_INTERPRETER);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bxor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_sweep_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = cur_opcode[2] ^ IREG(3);
+    if (cur_opcode[1])
+        Parrot_gc_mark_and_sweep(interp, GC_trace_normal_FLAG);
+    else
+        if (Parrot_gc_impatient_pmcs(interp))
+            Parrot_gc_mark_and_sweep(interp, GC_lazy_FLAG);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bxor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_collect(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) ^ cur_opcode[3];
+    Parrot_gc_compact_memory_pool(interp);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 1;}
 
 opcode_t *
-Parrot_bxor_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_sweepoff(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
-    const UINTVAL b = a ^ IREG(3);
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+    Parrot_block_GC_mark(interp);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 1;}
 
 opcode_t *
-Parrot_bxor_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_sweepon(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
-    const UINTVAL b = a ^ cur_opcode[3];
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+    Parrot_unblock_GC_mark(interp);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 1;}
 
 opcode_t *
-Parrot_bxor_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_collectoff(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
-    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(3));
-    const UINTVAL c = a ^ b;
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
+    Parrot_block_GC_sweep(interp);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 1;}
 
 opcode_t *
-Parrot_bxors_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_collecton(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(1));
-    STRING * const b = Parrot_str_bitwise_xor(interp, a, SREG(2));
-    VTABLE_set_string_native(interp, PREG(1), b);
+    Parrot_unblock_GC_sweep(interp);
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 1;}
 
 opcode_t *
-Parrot_bxors_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_needs_destroy_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(1));
-    STRING * const b = Parrot_str_bitwise_xor(interp, a, CONST(2)->u.string);
-    VTABLE_set_string_native(interp, PREG(1), b);
+    Parrot_gc_pmc_needs_early_collection(interp, PREG(1));
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_bxors_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_loadlib_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(1));
-    STRING * const b = VTABLE_get_string(interp, PREG(2));
-    STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
-    VTABLE_set_string_native(interp, PREG(1), c);
+    PREG(1) = Parrot_load_lib(interp, SREG(2), NULL);
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bxors_s_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_loadlib_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_xor(interp, SREG(2), SREG(3));
+    PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, NULL);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_bxors_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_loadlib_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_xor(interp, CONST(2)->u.string, SREG(3));
+    PREG(1) = Parrot_load_lib(interp, SREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_bxors_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_loadlib_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_str_bitwise_xor(interp, SREG(2), CONST(3)->u.string);
+    PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_bxors_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_loadlib_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(2));
-    STRING * const b = Parrot_str_bitwise_xor(interp, a, SREG(3));
-    VTABLE_set_string_native(interp, PREG(1), b);
+    PREG(1) = Parrot_load_lib(interp, SREG(2), CONST(3)->u.key);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_bxors_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_loadlib_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(2));
-    STRING * const b = Parrot_str_bitwise_xor(interp, a, CONST(3)->u.string);
-    VTABLE_set_string_native(interp, PREG(1), b);
+    PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, CONST(3)->u.key);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_bxors_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_dlfunc_p_p_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const a = VTABLE_get_string(interp, PREG(2));
-    STRING * const b = VTABLE_get_string(interp, PREG(3));
-    STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
-    VTABLE_set_string_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
+    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
+    void         *dl_handle = NULL;
+    void         *ptr       = NULL;
+    funcptr_t     p;
 
-opcode_t *
-Parrot_eq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) == IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-return (opcode_t *)cur_opcode + 4;}
+    ptr = Parrot_dlsym(dl_handle, name);
+    p = D2FPTR(ptr);
 
-opcode_t *
-Parrot_eq_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] == IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (p == NULLfunc) {
+        const char * err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+        VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
     }
+    Parrot_str_free_cstring(name);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 5;}
 
 opcode_t *
-Parrot_eq_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) == cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
+    void         *dl_handle = NULL;
+    void         *ptr       = NULL;
+    funcptr_t     p;
+
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-return (opcode_t *)cur_opcode + 4;}
+    ptr = Parrot_dlsym(dl_handle, name);
+    p = D2FPTR(ptr);
 
-opcode_t *
-Parrot_eq_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (NREG(1) == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (p == NULLfunc) {
+        const char * err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+        VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
     }
+    Parrot_str_free_cstring(name);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 5;}
 
 opcode_t *
-Parrot_eq_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (CONST(1)->u.number == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
+    void         *dl_handle = NULL;
+    void         *ptr       = NULL;
+    funcptr_t     p;
+
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-return (opcode_t *)cur_opcode + 4;}
+    ptr = Parrot_dlsym(dl_handle, name);
+    p = D2FPTR(ptr);
 
-opcode_t *
-Parrot_eq_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (NREG(1) == CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (p == NULLfunc) {
+        const char * err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
     }
+    else {
+        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+        VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
+    }
+    Parrot_str_free_cstring(name);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 5;}
 
 opcode_t *
-Parrot_eq_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_equal(interp, SREG(1), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
+    void         *dl_handle = NULL;
+    void         *ptr       = NULL;
+    funcptr_t     p;
+
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-return (opcode_t *)cur_opcode + 4;}
+    ptr = Parrot_dlsym(dl_handle, name);
+    p = D2FPTR(ptr);
 
-opcode_t *
-Parrot_eq_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_equal(interp, CONST(1)->u.string, SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (p == NULLfunc) {
+        const char * err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+        VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
     }
+    Parrot_str_free_cstring(name);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 5;}
 
 opcode_t *
-Parrot_eq_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_equal(interp, SREG(1), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
+    void *        dl_handle = NULL;
+    void *        p         = NULL;
+
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-return (opcode_t *)cur_opcode + 4;}
+    p = Parrot_dlsym(dl_handle, name);
 
-opcode_t *
-Parrot_eq_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_is_equal(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (p == NULL) {
+        const char * const err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        /* At this point we have the symbol's address. We just need to build
+           a PMC with it so we can get and set the value */
+        PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+        VTABLE_set_pointer(interp, PREG(1), p);
     }
+    Parrot_str_free_cstring(name);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_eq_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
-    VTABLE_set_integer_native(interp, temp, IREG(2));
+    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
+    void *        dl_handle = NULL;
+    void *        p         = NULL;
 
-    if (VTABLE_is_equal(interp, PREG(1), temp)) {
-        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-    Parrot_pmc_free_temporary(interp, temp);
+    p = Parrot_dlsym(dl_handle, name);
+
+    if (p == NULL) {
+        const char * const err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        /* At this point we have the symbol's address. We just need to build
+           a PMC with it so we can get and set the value */
+        PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+        VTABLE_set_pointer(interp, PREG(1), p);
+    }
+    Parrot_str_free_cstring(name);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_eq_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_compreg_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
-    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
-
-    if (VTABLE_is_equal(interp, PREG(1), temp)) {
-        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
-
-    Parrot_pmc_free_temporary(interp, temp);
+    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+            interp->iglobals, IGLOBALS_COMPREG_HASH);
+    VTABLE_set_pmc_keyed_str(interp, compreg_hash, SREG(1), PREG(2));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_eq_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_compreg_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    /*
-     * the get_number and get_string should probably
-     * be also replaced with code like above, as
-     * overriding the compare multi subs wouldn't
-     * have any effect with the current code
-     */
-    if (VTABLE_get_number(interp, PREG(1)) == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+            interp->iglobals, IGLOBALS_COMPREG_HASH);
+    VTABLE_set_pmc_keyed_str(interp, compreg_hash, CONST(1)->u.string, PREG(2));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_eq_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_compreg_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    /*
-     * the get_number and get_string should probably
-     * be also replaced with code like above, as
-     * overriding the compare multi subs wouldn't
-     * have any effect with the current code
-     */
-    if (VTABLE_get_number(interp, PREG(1)) == CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+            interp->iglobals, IGLOBALS_COMPREG_HASH);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, SREG(2));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_eq_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_compreg_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_equal(interp, VTABLE_get_string(interp, PREG(1)), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+            interp->iglobals, IGLOBALS_COMPREG_HASH);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, CONST(2)->u.string);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_eq_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_new_callback_p_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), SREG(4));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 5;}
 
 opcode_t *
-Parrot_eq_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_new_callback_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_is_equal_string(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), CONST(4)->u.string);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 5;}
 
 opcode_t *
-Parrot_eq_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_annotations_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_is_equal_num(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (interp->code->annotations) {
+        const opcode_t cur_pos = (cur_opcode + 2) - interp->code->base.data;
+        PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
+                cur_pos, NULL);
+    }
+    else {
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Hash);
     }
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_eq_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_annotations_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (SREG(1) == SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (interp->code->annotations) {
+        const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
+        PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
+                cur_pos, SREG(2));
+    }
+    else {
+        PREG(1) = PMCNULL;
     }
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_eq_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_annotations_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (CONST(1)->u.string == SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (interp->code->annotations) {
+        const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
+        PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
+                cur_pos, CONST(2)->u.string);
+    }
+    else {
+        PREG(1) = PMCNULL;
     }
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_eq_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_band_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (SREG(1) == CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) &= IREG(2);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_eq_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_band_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (CONST(1)->u.string == CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) &= cur_opcode[2];
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_eq_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_band_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1) == PREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = IREG(2) & IREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_band_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) != IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = cur_opcode[2] & IREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_band_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] != IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = IREG(2) & cur_opcode[3];
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bor_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) != cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) |= IREG(2);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_ne_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bor_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (NREG(1) != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) |= cur_opcode[2];
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_ne_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (CONST(1)->u.number != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = IREG(2) | IREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (NREG(1) != CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = cur_opcode[2] | IREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_not_equal(interp, SREG(1), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = IREG(2) | cur_opcode[3];
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_shl_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_not_equal(interp, CONST(1)->u.string, SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = bit_shift_left(IREG(1), IREG(2));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_ne_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_shl_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_not_equal(interp, SREG(1), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = bit_shift_left(IREG(1), cur_opcode[2]);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_ne_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_shl_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (!VTABLE_is_equal(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = bit_shift_left(IREG(2), IREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_shl_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
-    VTABLE_set_integer_native(interp, temp, IREG(2));
-
-    if (!VTABLE_is_equal(interp, PREG(1), temp)) {
-        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
-
-    Parrot_pmc_free_temporary(interp, temp);
+    IREG(1) = bit_shift_left(cur_opcode[2], IREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_shl_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
-    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
-
-    if (!VTABLE_is_equal(interp, PREG(1), temp)) {
-        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
-
-    Parrot_pmc_free_temporary(interp, temp);
+    IREG(1) = bit_shift_left(IREG(2), cur_opcode[3]);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_shr_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_number(interp, PREG(1)) != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    const INTVAL signed_shift = -IREG(2);
+    IREG(1) = bit_shift_left(IREG(1), signed_shift);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_ne_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_shr_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_number(interp, PREG(1)) != CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    const INTVAL signed_shift = -cur_opcode[2];
+    IREG(1) = bit_shift_left(IREG(1), signed_shift);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_ne_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_shr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_not_equal(interp, VTABLE_get_string(interp, PREG(1)), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    const INTVAL signed_shift = -IREG(3);
+    IREG(1) = bit_shift_left(IREG(2), signed_shift);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_shr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_not_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    const INTVAL signed_shift = -IREG(3);
+    IREG(1) = bit_shift_left(cur_opcode[2], signed_shift);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_shr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) != 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    const INTVAL signed_shift = -cur_opcode[3];
+    IREG(1) = bit_shift_left(IREG(2), signed_shift);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lsr_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) != 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    const UINTVAL a = (UINTVAL)IREG(1);
+    const UINTVAL b = a >> IREG(2);
+    IREG(1) = (INTVAL)b;
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_ne_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lsr_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (SREG(1) != SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    const UINTVAL a = (UINTVAL)IREG(1);
+    const UINTVAL b = a >> cur_opcode[2];
+    IREG(1) = (INTVAL)b;
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_ne_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lsr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (CONST(1)->u.string != SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> IREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lsr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (SREG(1) != CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = (INTVAL)((UINTVAL)cur_opcode[2] >> IREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lsr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (CONST(1)->u.string != CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> cur_opcode[3]);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ne_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bxor_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1) != PREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) ^= IREG(2);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_lt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bxor_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) < IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) ^= cur_opcode[2];
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_lt_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bxor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] < IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = IREG(2) ^ IREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bxor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) < cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = cur_opcode[2] ^ IREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_bxor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (NREG(1) < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
+    IREG(1) = IREG(2) ^ cur_opcode[3];
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (CONST(1)->u.number < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (IREG(1) == IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (NREG(1) < CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (cur_opcode[1] == IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, SREG(1), SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (IREG(1) == cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, CONST(1)->u.string, SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (NREG(1) == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, SREG(1), CONST(2)->u.string) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (CONST(1)->u.number == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (NREG(1) == CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
-    VTABLE_set_integer_native(interp, temp, IREG(2));
-
-    if (VTABLE_cmp(interp, PREG(1), temp) < 0) {
-        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (Parrot_str_equal(interp, SREG(1), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
-    Parrot_pmc_free_temporary(interp, temp);
-
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
-    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
-
-    if (VTABLE_cmp(interp, PREG(1), temp) < 0) {
-        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (Parrot_str_equal(interp, CONST(1)->u.string, SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
-    Parrot_pmc_free_temporary(interp, temp);
-
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_number(interp, PREG(1)) < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (Parrot_str_equal(interp, SREG(1), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_number(interp, PREG(1)) < CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (VTABLE_is_equal(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
+
+    if (VTABLE_is_equal(interp, PREG(1), temp)) {
+        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
+    Parrot_pmc_free_temporary(interp, temp);
+
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+    if (VTABLE_is_equal(interp, PREG(1), temp)) {
+        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
+    Parrot_pmc_free_temporary(interp, temp);
+
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    /*
+     * the get_number and get_string should probably
+     * be also replaced with code like above, as
+     * overriding the compare multi subs wouldn't
+     * have any effect with the current code
+     */
+    if (VTABLE_get_number(interp, PREG(1)) == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_lt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    /*
+     * the get_number and get_string should probably
+     * be also replaced with code like above, as
+     * overriding the compare multi subs wouldn't
+     * have any effect with the current code
+     */
+    if (VTABLE_get_number(interp, PREG(1)) == CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) <= IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (Parrot_str_equal(interp, VTABLE_get_string(interp, PREG(1)), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (cur_opcode[1] <= IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (Parrot_str_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (IREG(1) <= cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (VTABLE_is_equal_string(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (NREG(1) <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (VTABLE_is_equal_num(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (CONST(1)->u.number <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (SREG(1) == SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (NREG(1) <= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (CONST(1)->u.string == SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, SREG(1), SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (SREG(1) == CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, CONST(1)->u.string, SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (CONST(1)->u.string == CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_eq_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, SREG(1), CONST(2)->u.string) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (PREG(1) == PREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (IREG(1) != IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
-    VTABLE_set_integer_native(interp, temp, IREG(2));
-
-    if (VTABLE_cmp(interp, PREG(1), temp) <= 0) {
-        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (cur_opcode[1] != IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
-    Parrot_pmc_free_temporary(interp, temp);
-
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
-    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
-
-    if (VTABLE_cmp(interp, PREG(1), temp) <= 0) {
-        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (IREG(1) != cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
-    Parrot_pmc_free_temporary(interp, temp);
-
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_number(interp, PREG(1)) <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (NREG(1) != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_number(interp, PREG(1)) <= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (CONST(1)->u.number != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (NREG(1) != CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (Parrot_str_not_equal(interp, SREG(1), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (Parrot_str_not_equal(interp, CONST(1)->u.string, SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_le_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (Parrot_str_not_equal(interp, SREG(1), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_gt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (!VTABLE_is_equal(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_gt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
     VTABLE_set_integer_native(interp, temp, IREG(2));
 
-    if (VTABLE_cmp(interp, PREG(1), temp) > 0) {
+    if (!VTABLE_is_equal(interp, PREG(1), temp)) {
         Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
@@ -19429,12 +15922,12 @@
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_gt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
     VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
 
-    if (VTABLE_cmp(interp, PREG(1), temp) > 0) {
+    if (!VTABLE_is_equal(interp, PREG(1), temp)) {
         Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
@@ -19443,1668 +15936,1545 @@
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_gt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_number(interp, PREG(1)) > NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
-    }
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_gt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_number(interp, PREG(1)) > CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (VTABLE_get_number(interp, PREG(1)) != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_gt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (VTABLE_get_number(interp, PREG(1)) != CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_gt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (Parrot_str_not_equal(interp, VTABLE_get_string(interp, PREG(1)), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_gt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (Parrot_str_not_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_gt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) != 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ge_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) != 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ge_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
-    VTABLE_set_integer_native(interp, temp, IREG(2));
-
-    if (VTABLE_cmp(interp, PREG(1), temp) >= 0) {
-        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (SREG(1) != SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
-    Parrot_pmc_free_temporary(interp, temp);
-
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ge_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
-    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
-
-    if (VTABLE_cmp(interp, PREG(1), temp) >= 0) {
-        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (CONST(1)->u.string != SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
-    Parrot_pmc_free_temporary(interp, temp);
-
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ge_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_number(interp, PREG(1)) >= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (SREG(1) != CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ge_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_get_number(interp, PREG(1)) >= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (CONST(1)->u.string != CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ge_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ne_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (PREG(1) != PREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ge_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (IREG(1) < IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ge_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (cur_opcode[1] < IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_ge_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    if (IREG(1) < cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_if_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PMC_IS_NULL(PREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+    if (NREG(1) < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_if_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (STRING_IS_NULL(SREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+    if (CONST(1)->u.number < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_unless_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (!PMC_IS_NULL(PREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+    if (NREG(1) < CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_unless_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (!STRING_IS_NULL(SREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+    if (Parrot_str_compare(interp, SREG(1), SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
     }
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) < IREG(3) ? -1 :
-         IREG(2) > IREG(3) ? +1 :
-         0;
+    if (Parrot_str_compare(interp, CONST(1)->u.string, SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = cur_opcode[2] < IREG(3) ? -1 :
-         cur_opcode[2] > IREG(3) ? +1 :
-         0;
+    if (Parrot_str_compare(interp, SREG(1), CONST(2)->u.string) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) < cur_opcode[3] ? -1 :
-         IREG(2) > cur_opcode[3] ? +1 :
-         0;
+    if (VTABLE_cmp(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = NREG(2) < NREG(3) ? -1 :
-         NREG(2) > NREG(3) ? +1 :
-         0;
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
+
+    if (VTABLE_cmp(interp, PREG(1), temp) < 0) {
+        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = CONST(2)->u.number < NREG(3) ? -1 :
-         CONST(2)->u.number > NREG(3) ? +1 :
-         0;
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+    if (VTABLE_cmp(interp, PREG(1), temp) < 0) {
+        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = NREG(2) < CONST(3)->u.number ? -1 :
-         NREG(2) > CONST(3)->u.number ? +1 :
-         0;
+    if (VTABLE_get_number(interp, PREG(1)) < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3));
+    if (VTABLE_get_number(interp, PREG(1)) < CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3));
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = VTABLE_cmp(interp, PREG(2), PREG(3));
+    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_lt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL l = VTABLE_get_integer(interp, PREG(2));
-    IREG(1) = l < IREG(3) ? -1 :
-         l > IREG(3) ? +1 :
-         0;
+    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const INTVAL l = VTABLE_get_integer(interp, PREG(2));
-    IREG(1) = l < cur_opcode[3] ? -1 :
-         l > cur_opcode[3] ? +1 :
-         0;
+    if (IREG(1) <= IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const FLOATVAL l = VTABLE_get_number(interp, PREG(2));
-    IREG(1) = l < NREG(3) ? -1 :
-         l > NREG(3) ? +1 :
-         0;
+    if (cur_opcode[1] <= IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const FLOATVAL l = VTABLE_get_number(interp, PREG(2));
-    IREG(1) = l < CONST(3)->u.number ? -1 :
-         l > CONST(3)->u.number ? +1 :
-         0;
+    if (IREG(1) <= cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING* const l = VTABLE_get_string(interp, PREG(2));
-    IREG(1) = Parrot_str_compare(interp, l, SREG(3));
+    if (NREG(1) <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING* const l = VTABLE_get_string(interp, PREG(2));
-    IREG(1) = Parrot_str_compare(interp, l, CONST(3)->u.string);
+    if (CONST(1)->u.number <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_str_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = VTABLE_cmp_string(interp, PREG(2), PREG(3));
+    if (NREG(1) <= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_num_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = VTABLE_cmp_num(interp, PREG(2), PREG(3));
+    if (Parrot_str_compare(interp, SREG(1), SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_cmp_pmc_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = VTABLE_cmp_pmc(interp, PREG(2), PREG(3));
+    if (Parrot_str_compare(interp, CONST(1)->u.string, SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_issame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(2) == PREG(3))
-        IREG(1) = 1;
-    else
-        IREG(1) = VTABLE_is_same(interp, PREG(2), PREG(3));
+    if (Parrot_str_compare(interp, SREG(1), CONST(2)->u.string) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_issame_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = SREG(2) == SREG(3);
+    if (VTABLE_cmp(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_issame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = CONST(2)->u.string == SREG(3);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
+
+    if (VTABLE_cmp(interp, PREG(1), temp) <= 0) {
+        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_issame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = SREG(2) == CONST(3)->u.string;
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+    if (VTABLE_cmp(interp, PREG(1), temp) <= 0) {
+        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_issame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = CONST(2)->u.string == CONST(3)->u.string;
+    if (VTABLE_get_number(interp, PREG(1)) <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isntsame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(2) == PREG(3))
-        IREG(1) = 0;
-    else
-        IREG(1) = !VTABLE_is_same(interp, PREG(2), PREG(3));
+    if (VTABLE_get_number(interp, PREG(1)) <= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isntsame_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = SREG(2) != SREG(3);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isntsame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = CONST(2)->u.string != SREG(3);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isntsame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = SREG(2) != CONST(3)->u.string;
+    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isntsame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_le_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = CONST(2)->u.string != CONST(3)->u.string;
+    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_istrue_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = VTABLE_get_bool(interp, PREG(2));
+    if (VTABLE_cmp(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isfalse_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = !VTABLE_get_bool(interp, PREG(2));
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
 
-return (opcode_t *)cur_opcode + 3;}
+    if (VTABLE_cmp(interp, PREG(1), temp) > 0) {
+        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
-opcode_t *
-Parrot_isnull_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = PMC_IS_NULL(PREG(2));
+    Parrot_pmc_free_temporary(interp, temp);
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isnull_i_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = PMC_IS_NULL(CONST(2)->u.key);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
 
-return (opcode_t *)cur_opcode + 3;}
+    if (VTABLE_cmp(interp, PREG(1), temp) > 0) {
+        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
-opcode_t *
-Parrot_isnull_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = STRING_IS_NULL(SREG(2));
+    Parrot_pmc_free_temporary(interp, temp);
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isnull_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = STRING_IS_NULL(CONST(2)->u.string);
+    if (VTABLE_get_number(interp, PREG(1)) > NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isgt_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) > 0);
+    if (VTABLE_get_number(interp, PREG(1)) > CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isge_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) >= 0);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isle_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) <= IREG(3);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isle_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = cur_opcode[2] <= IREG(3);
+    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isle_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_gt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) <= cur_opcode[3];
+    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isle_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ge_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = NREG(2) <= NREG(3);
+    if (VTABLE_cmp(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isle_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ge_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = CONST(2)->u.number <= NREG(3);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
+
+    if (VTABLE_cmp(interp, PREG(1), temp) >= 0) {
+        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isle_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ge_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = NREG(2) <= CONST(3)->u.number;
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+    if (VTABLE_cmp(interp, PREG(1), temp) >= 0) {
+        Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isle_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ge_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3)) <= 0;
+    if (VTABLE_get_number(interp, PREG(1)) >= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isle_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ge_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3)) <= 0;
+    if (VTABLE_get_number(interp, PREG(1)) >= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isle_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ge_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string) <= 0;
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isle_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ge_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) <= 0);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_islt_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ge_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (IREG(2) < IREG(3)) ? 1 : 0;
+    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_islt_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_ge_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (cur_opcode[2] < IREG(3)) ? 1 : 0;
+    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_islt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_if_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (IREG(2) < cur_opcode[3]) ? 1 : 0;
+    if (PMC_IS_NULL(PREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+    }
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_islt_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_if_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = NREG(2) < NREG(3);
+    if (STRING_IS_NULL(SREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+    }
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_islt_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_unless_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = CONST(2)->u.number < NREG(3);
+    if (!PMC_IS_NULL(PREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+    }
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_islt_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_unless_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = NREG(2) < CONST(3)->u.number;
+    if (!STRING_IS_NULL(SREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+    }
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_islt_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3)) < 0;
+    IREG(1) = IREG(2) < IREG(3) ? -1 :
+         IREG(2) > IREG(3) ? +1 :
+         0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_islt_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3)) < 0;
+    IREG(1) = cur_opcode[2] < IREG(3) ? -1 :
+         cur_opcode[2] > IREG(3) ? +1 :
+         0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_islt_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string) < 0;
+    IREG(1) = IREG(2) < cur_opcode[3] ? -1 :
+         IREG(2) > cur_opcode[3] ? +1 :
+         0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_islt_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) < 0);
+    IREG(1) = NREG(2) < NREG(3) ? -1 :
+         NREG(2) > NREG(3) ? +1 :
+         0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_iseq_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (IREG(2) == IREG(3)) ? 1 : 0;
+    IREG(1) = CONST(2)->u.number < NREG(3) ? -1 :
+         CONST(2)->u.number > NREG(3) ? +1 :
+         0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_iseq_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (cur_opcode[2] == IREG(3)) ? 1 : 0;
+    IREG(1) = NREG(2) < CONST(3)->u.number ? -1 :
+         NREG(2) > CONST(3)->u.number ? +1 :
+         0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_iseq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (IREG(2) == cur_opcode[3]) ? 1 : 0;
+    IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_iseq_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = NREG(2) == NREG(3);
+    IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_iseq_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = CONST(2)->u.number == NREG(3);
+    IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_iseq_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = NREG(2) == CONST(3)->u.number;
+    IREG(1) = VTABLE_cmp(interp, PREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_iseq_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (Parrot_str_equal(interp, SREG(2), SREG(3)) ? 1 : 0);
+    const INTVAL l = VTABLE_get_integer(interp, PREG(2));
+    IREG(1) = l < IREG(3) ? -1 :
+         l > IREG(3) ? +1 :
+         0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_iseq_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (Parrot_str_equal(interp, CONST(2)->u.string, SREG(3)) ? 1 : 0);
+    const INTVAL l = VTABLE_get_integer(interp, PREG(2));
+    IREG(1) = l < cur_opcode[3] ? -1 :
+         l > cur_opcode[3] ? +1 :
+         0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_iseq_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (Parrot_str_equal(interp, SREG(2), CONST(3)->u.string) ? 1 : 0);
+    const FLOATVAL l = VTABLE_get_number(interp, PREG(2));
+    IREG(1) = l < NREG(3) ? -1 :
+         l > NREG(3) ? +1 :
+         0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_iseq_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (&PREG(2) == &PREG(3))
-        IREG(1) = 1;
-    else
-        IREG(1) = VTABLE_is_equal(interp, PREG(2), PREG(3));
+    const FLOATVAL l = VTABLE_get_number(interp, PREG(2));
+    IREG(1) = l < CONST(3)->u.number ? -1 :
+         l > CONST(3)->u.number ? +1 :
+         0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isne_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (IREG(2) == IREG(3)) ? 0 : 1;
+    STRING* const l = VTABLE_get_string(interp, PREG(2));
+    IREG(1) = Parrot_str_compare(interp, l, SREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isne_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (cur_opcode[2] == IREG(3)) ? 0 : 1;
+    STRING* const l = VTABLE_get_string(interp, PREG(2));
+    IREG(1) = Parrot_str_compare(interp, l, CONST(3)->u.string);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_str_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (IREG(2) == cur_opcode[3]) ? 0 : 1;
+    IREG(1) = VTABLE_cmp_string(interp, PREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isne_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_num_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = NREG(2) != NREG(3);
+    IREG(1) = VTABLE_cmp_num(interp, PREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isne_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_cmp_pmc_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = CONST(2)->u.number != NREG(3);
+    PREG(1) = VTABLE_cmp_pmc(interp, PREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isne_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_issame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = NREG(2) != CONST(3)->u.number;
+    if (PREG(2) == PREG(3))
+        IREG(1) = 1;
+    else
+        IREG(1) = VTABLE_is_same(interp, PREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isne_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_issame_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (Parrot_str_not_equal(interp, SREG(2), SREG(3)) ? 1 : 0);
+    IREG(1) = SREG(2) == SREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isne_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_issame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (Parrot_str_not_equal(interp, CONST(2)->u.string, SREG(3)) ? 1 : 0);
+    IREG(1) = CONST(2)->u.string == SREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isne_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_issame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (Parrot_str_not_equal(interp, SREG(2), CONST(3)->u.string) ? 1 : 0);
+    IREG(1) = SREG(2) == CONST(3)->u.string;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_isne_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_issame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (&PREG(2) == &PREG(3))
-        IREG(1) = 0;
-    else
-        IREG(1) = !VTABLE_is_equal(interp, PREG(2), PREG(3));
+    IREG(1) = CONST(2)->u.string == CONST(3)->u.string;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_and_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isntsame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) ? IREG(3) : IREG(2);
+    if (PREG(2) == PREG(3))
+        IREG(1) = 0;
+    else
+        IREG(1) = !VTABLE_is_same(interp, PREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_and_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isntsame_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = cur_opcode[2] ? IREG(3) : cur_opcode[2];
+    IREG(1) = SREG(2) != SREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_and_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isntsame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) ? cur_opcode[3] : IREG(2);
+    IREG(1) = CONST(2)->u.string != SREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_and_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isntsame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = VTABLE_logical_and(interp, PREG(2), PREG(3), PREG(1));
+    IREG(1) = SREG(2) != CONST(3)->u.string;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_not_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isntsame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = ! IREG(1);
+    IREG(1) = CONST(2)->u.string != CONST(3)->u.string;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_not_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_istrue_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = ! IREG(2);
+    IREG(1) = VTABLE_get_bool(interp, PREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_not_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isfalse_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    VTABLE_i_logical_not(interp, PREG(1));
+    IREG(1) = !VTABLE_get_bool(interp, PREG(2));
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_not_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isnull_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = VTABLE_logical_not(interp, PREG(2), PREG(1));
+    IREG(1) = PMC_IS_NULL(PREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_or_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isnull_i_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) ? IREG(2) : IREG(3);
+    IREG(1) = PMC_IS_NULL(CONST(2)->u.key);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_or_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isnull_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = cur_opcode[2] ? cur_opcode[2] : IREG(3);
+    IREG(1) = STRING_IS_NULL(SREG(2));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_or_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isnull_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = IREG(2) ? IREG(2) : cur_opcode[3];
+    IREG(1) = STRING_IS_NULL(CONST(2)->u.string);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_or_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isgt_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = VTABLE_logical_or(interp, PREG(2), PREG(3), PREG(1));
+    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) > 0);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_xor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isge_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (IREG(2) && ! IREG(3)) ? IREG(2) : (IREG(3) && ! IREG(2)) ? IREG(3) : 0;
+    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) >= 0);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_xor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isle_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (cur_opcode[2] && ! IREG(3)) ? cur_opcode[2] : (IREG(3) && ! cur_opcode[2]) ? IREG(3) : 0;
+    IREG(1) = IREG(2) <= IREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_xor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isle_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = (IREG(2) && ! cur_opcode[3]) ? IREG(2) : (cur_opcode[3] && ! IREG(2)) ? cur_opcode[3] : 0;
+    IREG(1) = cur_opcode[2] <= IREG(3);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_xor_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isle_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = VTABLE_logical_xor(interp, PREG(2), PREG(3), PREG(1));
+    IREG(1) = IREG(2) <= cur_opcode[3];
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_debug_init(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_debugger_init(interp);
-
-return (opcode_t *)cur_opcode + 1;}
-
-opcode_t *
-Parrot_debug_load_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_debugger_load(interp, CONST(1)->u.string);
-
-return (opcode_t *)cur_opcode + 2;}
-
-opcode_t *
-Parrot_debug_break(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_debugger_break(interp, cur_opcode);
-
-return (opcode_t *)cur_opcode + 1;}
-
-opcode_t *
-Parrot_debug_print(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isle_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (!interp->pdb) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 1,
-            EXCEPTION_INVALID_OPERATION,
-            "Initialize debugger with debug_init before using debug_print");return (opcode_t *)handler;
-    }
-
-    if (!(interp->pdb->state & PDB_BREAK)) {
-        PDB_print(interp, "I");
-        PDB_print(interp, "N");
-        PDB_print(interp, "S");
-        PDB_print(interp, "P");
-    }
+    IREG(1) = NREG(2) <= NREG(3);
 
-return (opcode_t *)cur_opcode + 1;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_backtrace(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isle_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PDB_backtrace(interp);
+    IREG(1) = CONST(2)->u.number <= NREG(3);
 
-return (opcode_t *)cur_opcode + 1;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_getline_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isle_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_Context_info info;
-    Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
-    IREG(1) = info.line;
+    IREG(1) = NREG(2) <= CONST(3)->u.number;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_getfile_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isle_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_Context_info info;
-    Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
-    SREG(1) = info.file;
+    IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3)) <= 0;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_close_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isle_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_io_close(interp, PREG(1));
+    IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3)) <= 0;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_fdopen_p_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isle_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)IREG(2), SREG(3));
-    if (!PREG(1))
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string) <= 0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_fdopen_p_ic_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isle_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)cur_opcode[2], SREG(3));
-    if (!PREG(1))
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) <= 0);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_fdopen_p_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_islt_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)IREG(2), CONST(3)->u.string);
-    if (!PREG(1))
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    IREG(1) = (IREG(2) < IREG(3)) ? 1 : 0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_fdopen_p_ic_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_islt_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)cur_opcode[2], CONST(3)->u.string);
-    if (!PREG(1))
-        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    IREG(1) = (cur_opcode[2] < IREG(3)) ? 1 : 0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_getstdin_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_islt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = _PIO_STDIN(interp);
+    IREG(1) = (IREG(2) < cur_opcode[3]) ? 1 : 0;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_getstdout_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_islt_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = _PIO_STDOUT(interp);
+    IREG(1) = NREG(2) < NREG(3);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_getstderr_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_islt_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = _PIO_STDERR(interp);
+    IREG(1) = CONST(2)->u.number < NREG(3);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_setstdin_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_islt_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    _PIO_STDIN(interp) = PREG(1);
+    IREG(1) = NREG(2) < CONST(3)->u.number;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_setstdout_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_islt_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    _PIO_STDOUT(interp) = PREG(1);
+    IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3)) < 0;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_setstderr_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_islt_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    _PIO_STDERR(interp) = PREG(1);
+    IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3)) < 0;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_open_p_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_islt_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (STRING_IS_NULL(SREG(2)) || STRING_IS_NULL(SREG(3))) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_UNEXPECTED_NULL, "Invalid open");return (opcode_t *)handler;
-    }
-    else {
-        PREG(1) = Parrot_io_open(interp, PMCNULL, SREG(2), SREG(3));
-        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
-    }
+    IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string) < 0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_open_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_islt_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (STRING_IS_NULL(CONST(2)->u.string) || STRING_IS_NULL(SREG(3))) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_UNEXPECTED_NULL, "Invalid open");return (opcode_t *)handler;
-    }
-    else {
-        PREG(1) = Parrot_io_open(interp, PMCNULL, CONST(2)->u.string, SREG(3));
-        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
-    }
+    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) < 0);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_open_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_iseq_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (STRING_IS_NULL(SREG(2)) || STRING_IS_NULL(CONST(3)->u.string)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_UNEXPECTED_NULL, "Invalid open");return (opcode_t *)handler;
-    }
-    else {
-        PREG(1) = Parrot_io_open(interp, PMCNULL, SREG(2), CONST(3)->u.string);
-        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
-    }
+    IREG(1) = (IREG(2) == IREG(3)) ? 1 : 0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_open_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_iseq_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (STRING_IS_NULL(CONST(2)->u.string) || STRING_IS_NULL(CONST(3)->u.string)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_UNEXPECTED_NULL, "Invalid open");return (opcode_t *)handler;
-    }
-    else {
-        PREG(1) = Parrot_io_open(interp, PMCNULL, CONST(2)->u.string, CONST(3)->u.string);
-        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
-    }
+    IREG(1) = (cur_opcode[2] == IREG(3)) ? 1 : 0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_open_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_iseq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (STRING_IS_NULL(SREG(2))) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
-            EXCEPTION_UNEXPECTED_NULL, "Invalid open");return (opcode_t *)handler;
-    }
-    else {
-        PREG(1) = Parrot_io_open(interp, PMCNULL, SREG(2), NULL);
-        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
-    }
+    IREG(1) = (IREG(2) == cur_opcode[3]) ? 1 : 0;
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_open_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_iseq_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (STRING_IS_NULL(CONST(2)->u.string)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
-            EXCEPTION_UNEXPECTED_NULL, "Invalid open");return (opcode_t *)handler;
-    }
-    else {
-        PREG(1) = Parrot_io_open(interp, PMCNULL, CONST(2)->u.string, NULL);
-        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
-    }
+    IREG(1) = NREG(2) == NREG(3);
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_print_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_iseq_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_io_printf(interp, INTVAL_FMT, (INTVAL)IREG(1));
+    IREG(1) = CONST(2)->u.number == NREG(3);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_print_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_iseq_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_io_printf(interp, INTVAL_FMT, (INTVAL)cur_opcode[1]);
+    IREG(1) = NREG(2) == CONST(3)->u.number;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_print_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_iseq_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#ifdef PARROT_HAS_NEGATIVE_ZERO
-    Parrot_io_printf(interp, FLOATVAL_FMT, NREG(1));
-#else
-    /* Workaround for older msvcrt and openbsd. TT #313 */
-    if (Parrot_is_nzero(NREG(1))) {
-        Parrot_io_printf(interp, "-0");
-    }
-    else {
-        Parrot_io_printf(interp, FLOATVAL_FMT, NREG(1));
-    }
-#endif
+    IREG(1) = (Parrot_str_equal(interp, SREG(2), SREG(3)) ? 1 : 0);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_print_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_iseq_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#ifdef PARROT_HAS_NEGATIVE_ZERO
-    Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1)->u.number);
-#else
-    /* Workaround for older msvcrt and openbsd. TT #313 */
-    if (Parrot_is_nzero(CONST(1)->u.number)) {
-        Parrot_io_printf(interp, "-0");
-    }
-    else {
-        Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1)->u.number);
-    }
-#endif
+    IREG(1) = (Parrot_str_equal(interp, CONST(2)->u.string, SREG(3)) ? 1 : 0);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_print_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_iseq_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const s = SREG(1);
-    if (s && Parrot_str_byte_length(interp, s))
-        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+    IREG(1) = (Parrot_str_equal(interp, SREG(2), CONST(3)->u.string) ? 1 : 0);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_print_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_iseq_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const s = CONST(1)->u.string;
-    if (s && Parrot_str_byte_length(interp, s))
-        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+    if (&PREG(2) == &PREG(3))
+        IREG(1) = 1;
+    else
+        IREG(1) = VTABLE_is_equal(interp, PREG(2), PREG(3));
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_print_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isne_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const p = PREG(1);
-    STRING * const s = (VTABLE_get_string(interp, p));
-    if (s)
-        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+    IREG(1) = (IREG(2) == IREG(3)) ? 0 : 1;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_say_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isne_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_io_printf(interp, INTVAL_FMT "\n", (INTVAL)IREG(1));
+    IREG(1) = (cur_opcode[2] == IREG(3)) ? 0 : 1;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_say_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_io_printf(interp, INTVAL_FMT "\n", (INTVAL)cur_opcode[1]);
+    IREG(1) = (IREG(2) == cur_opcode[3]) ? 0 : 1;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_say_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isne_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#ifdef PARROT_HAS_NEGATIVE_ZERO
-    Parrot_io_printf(interp, FLOATVAL_FMT "\n", NREG(1));
-#else
-    /* Workaround for older msvcrt and openbsd. TT #313 */
-    if (Parrot_is_nzero(NREG(1))) {
-        Parrot_io_printf(interp, "-0\n");
-    }
-    else {
-        Parrot_io_printf(interp, FLOATVAL_FMT "\n", NREG(1));
-    }
-#endif
+    IREG(1) = NREG(2) != NREG(3);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_say_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isne_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-#ifdef PARROT_HAS_NEGATIVE_ZERO
-    Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1)->u.number);
-#else
-    /* Workaround for older msvcrt and openbsd. TT #313 */
-    if (Parrot_is_nzero(CONST(1)->u.number)) {
-        Parrot_io_printf(interp, "-0\n");
-    }
-    else {
-        Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1)->u.number);
-    }
-#endif
+    IREG(1) = CONST(2)->u.number != NREG(3);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_say_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isne_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const s = SREG(1);
-    if (s && Parrot_str_byte_length(interp, s))
-        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
-    Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
+    IREG(1) = NREG(2) != CONST(3)->u.number;
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_say_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isne_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const s = CONST(1)->u.string;
-    if (s && Parrot_str_byte_length(interp, s))
-        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
-    Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
+    IREG(1) = (Parrot_str_not_equal(interp, SREG(2), SREG(3)) ? 1 : 0);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_say_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isne_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const p = PREG(1);
-
-    if (PMC_IS_NULL(p)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 2,
-             EXCEPTION_UNEXPECTED_NULL,
-            "Null PMC in say");return (opcode_t *)handler;
-    }
-    else {
-        STRING * const s = VTABLE_get_string(interp, p);
-        if (s)
-            Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
-        Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
-    }
+    IREG(1) = (Parrot_str_not_equal(interp, CONST(2)->u.string, SREG(3)) ? 1 : 0);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_printerr_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isne_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_io_eprintf(interp, INTVAL_FMT, IREG(1));
+    IREG(1) = (Parrot_str_not_equal(interp, SREG(2), CONST(3)->u.string) ? 1 : 0);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_printerr_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_isne_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_io_eprintf(interp, INTVAL_FMT, cur_opcode[1]);
+    if (&PREG(2) == &PREG(3))
+        IREG(1) = 0;
+    else
+        IREG(1) = !VTABLE_is_equal(interp, PREG(2), PREG(3));
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_printerr_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_and_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_io_eprintf(interp, FLOATVAL_FMT, NREG(1));
+    IREG(1) = IREG(2) ? IREG(3) : IREG(2);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_printerr_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_and_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    Parrot_io_eprintf(interp, FLOATVAL_FMT, CONST(1)->u.number);
+    IREG(1) = cur_opcode[2] ? IREG(3) : cur_opcode[2];
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_printerr_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_and_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const s = SREG(1);
-    if (s && Parrot_str_byte_length(interp, s))
-        Parrot_io_putps(interp, _PIO_STDERR(interp), s);
+    IREG(1) = IREG(2) ? cur_opcode[3] : IREG(2);
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_printerr_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_and_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING * const s = CONST(1)->u.string;
-    if (s && Parrot_str_byte_length(interp, s))
-        Parrot_io_putps(interp, _PIO_STDERR(interp), s);
+    PREG(1) = VTABLE_logical_and(interp, PREG(2), PREG(3), PREG(1));
 
-return (opcode_t *)cur_opcode + 2;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_printerr_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_not_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PMC * const p = PREG(1);
-    STRING * const s = (VTABLE_get_string(interp, p));
-    if (s)
-        Parrot_io_putps(interp, _PIO_STDERR(interp), s);
+    IREG(1) = ! IREG(1);
 
 return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_print_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_not_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        STRING * const s = Parrot_str_from_int(interp, IREG(2));
-        Parrot_io_putps(interp, PREG(1), s);
-    }
+    IREG(1) = ! IREG(2);
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_print_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_not_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        STRING * const s = Parrot_str_from_int(interp, cur_opcode[2]);
-        Parrot_io_putps(interp, PREG(1), s);
-    }
+    VTABLE_i_logical_not(interp, PREG(1));
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_print_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_not_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        STRING * const s = Parrot_sprintf_c(interp, FLOATVAL_FMT, NREG(2));
-        Parrot_io_putps(interp, PREG(1), s);
-    }
+    PREG(1) = VTABLE_logical_not(interp, PREG(2), PREG(1));
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_print_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_or_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        STRING * const s = Parrot_sprintf_c(interp, FLOATVAL_FMT, CONST(2)->u.number);
-        Parrot_io_putps(interp, PREG(1), s);
-    }
+    IREG(1) = IREG(2) ? IREG(2) : IREG(3);
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_print_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_or_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (SREG(2) && PREG(1)) {
-        Parrot_io_putps(interp, PREG(1), SREG(2));
-    }
+    IREG(1) = cur_opcode[2] ? cur_opcode[2] : IREG(3);
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_print_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_or_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (CONST(2)->u.string && PREG(1)) {
-        Parrot_io_putps(interp, PREG(1), CONST(2)->u.string);
-    }
+    IREG(1) = IREG(2) ? IREG(2) : cur_opcode[3];
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_print_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_or_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(2) && PREG(1)) {
-        STRING * const s = VTABLE_get_string(interp, PREG(2));
-        Parrot_io_putps(interp, PREG(1), s);
-    }
+    PREG(1) = VTABLE_logical_or(interp, PREG(2), PREG(3), PREG(1));
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_read_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_xor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_io_reads(interp, _PIO_STDIN(interp), (size_t)IREG(2));
+    IREG(1) = (IREG(2) && ! IREG(3)) ? IREG(2) : (IREG(3) && ! IREG(2)) ? IREG(3) : 0;
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_read_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_xor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_io_reads(interp, _PIO_STDIN(interp), (size_t)cur_opcode[2]);
+    IREG(1) = (cur_opcode[2] && ! IREG(3)) ? cur_opcode[2] : (IREG(3) && ! cur_opcode[2]) ? IREG(3) : 0;
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_read_s_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_xor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_io_reads(interp, PREG(2), (size_t)IREG(3));
+    IREG(1) = (IREG(2) && ! cur_opcode[3]) ? IREG(2) : (cur_opcode[3] && ! IREG(2)) ? cur_opcode[3] : 0;
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_read_s_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_xor_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_io_reads(interp, PREG(2), (size_t)cur_opcode[3]);
+    PREG(1) = VTABLE_logical_xor(interp, PREG(2), PREG(3), PREG(1));
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_readline_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = Parrot_io_readline(interp, PREG(2));
+    Parrot_io_printf(interp, INTVAL_FMT, (INTVAL)IREG(1));
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_peek_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING ** const s = &SREG(1);
-
-    *s = NULL;
-    if (Parrot_io_peek(interp, _PIO_STDIN(interp), s) < 0) {
-        SREG(1) = STRINGNULL;
-    }
+    Parrot_io_printf(interp, INTVAL_FMT, (INTVAL)cur_opcode[1]);
 
 return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_peek_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    STRING ** const s = &SREG(1);
-
-    *s = NULL;
-    if (Parrot_io_peek(interp, PREG(2), s) < 0) {
-        SREG(1) = STRINGNULL;
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+    Parrot_io_printf(interp, FLOATVAL_FMT, NREG(1));
+#else
+    /* Workaround for older msvcrt and openbsd. TT #313 */
+    if (Parrot_is_nzero(NREG(1))) {
+        Parrot_io_printf(interp, "-0");
     }
+    else {
+        Parrot_io_printf(interp, FLOATVAL_FMT, NREG(1));
+    }
+#endif
 
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_stat_i_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_stat_info_intval(interp, SREG(2), IREG(3));
-
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_stat_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_stat_info_intval(interp, CONST(2)->u.string, IREG(3));
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+    Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1)->u.number);
+#else
+    /* Workaround for older msvcrt and openbsd. TT #313 */
+    if (Parrot_is_nzero(CONST(1)->u.number)) {
+        Parrot_io_printf(interp, "-0");
+    }
+    else {
+        Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1)->u.number);
+    }
+#endif
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_stat_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_stat_info_intval(interp, SREG(2), cur_opcode[3]);
+    STRING * const s = SREG(1);
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_stat_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_stat_info_intval(interp, CONST(2)->u.string, cur_opcode[3]);
+    STRING * const s = CONST(1)->u.string;
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_stat_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_fstat_info_intval(interp, IREG(2), IREG(3));
+    PMC * const p = PREG(1);
+    STRING * const s = (VTABLE_get_string(interp, p));
+    if (s)
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_stat_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_say_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_fstat_info_intval(interp, cur_opcode[2], IREG(3));
+    Parrot_io_printf(interp, INTVAL_FMT "\n", (INTVAL)IREG(1));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_stat_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_say_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_fstat_info_intval(interp, IREG(2), cur_opcode[3]);
+    Parrot_io_printf(interp, INTVAL_FMT "\n", (INTVAL)cur_opcode[1]);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_stat_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_say_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = Parrot_fstat_info_intval(interp, cur_opcode[2], cur_opcode[3]);
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+    Parrot_io_printf(interp, FLOATVAL_FMT "\n", NREG(1));
+#else
+    /* Workaround for older msvcrt and openbsd. TT #313 */
+    if (Parrot_is_nzero(NREG(1))) {
+        Parrot_io_printf(interp, "-0\n");
+    }
+    else {
+        Parrot_io_printf(interp, FLOATVAL_FMT "\n", NREG(1));
+    }
+#endif
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_seek_p_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_say_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset(IREG(2)), IREG(3)) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (32bit)");return (opcode_t *)handler;
-        }
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+    Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1)->u.number);
+#else
+    /* Workaround for older msvcrt and openbsd. TT #313 */
+    if (Parrot_is_nzero(CONST(1)->u.number)) {
+        Parrot_io_printf(interp, "-0\n");
+    }
+    else {
+        Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1)->u.number);
     }
+#endif
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_seek_p_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_say_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset(cur_opcode[2]), IREG(3)) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (32bit)");return (opcode_t *)handler;
-        }
-    }
+    STRING * const s = SREG(1);
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+    Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_seek_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_say_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset(IREG(2)), cur_opcode[3]) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (32bit)");return (opcode_t *)handler;
-        }
-    }
+    STRING * const s = CONST(1)->u.string;
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+    Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_seek_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_say_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset(cur_opcode[2]), cur_opcode[3]) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (32bit)");return (opcode_t *)handler;
-        }
+    PMC * const p = PREG(1);
+
+    if (PMC_IS_NULL(p)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 2,
+             EXCEPTION_UNEXPECTED_NULL,
+            "Null PMC in say");return (opcode_t *)handler;
+    }
+    else {
+        STRING * const s = VTABLE_get_string(interp, p);
+        if (s)
+            Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
     }
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_seek_p_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(IREG(2), IREG(3)), IREG(4)) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 5,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (64bit)");return (opcode_t *)handler;
-        }
+        STRING * const s = Parrot_str_from_int(interp, IREG(2));
+        Parrot_io_putps(interp, PREG(1), s);
     }
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_seek_p_ic_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(cur_opcode[2], IREG(3)), IREG(4)) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 5,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (64bit)");return (opcode_t *)handler;
-        }
+        STRING * const s = Parrot_str_from_int(interp, cur_opcode[2]);
+        Parrot_io_putps(interp, PREG(1), s);
     }
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_seek_p_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(IREG(2), cur_opcode[3]), IREG(4)) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 5,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (64bit)");return (opcode_t *)handler;
-        }
+        STRING * const s = Parrot_sprintf_c(interp, FLOATVAL_FMT, NREG(2));
+        Parrot_io_putps(interp, PREG(1), s);
     }
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_seek_p_ic_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(cur_opcode[2], cur_opcode[3]), IREG(4)) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 5,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (64bit)");return (opcode_t *)handler;
-        }
+        STRING * const s = Parrot_sprintf_c(interp, FLOATVAL_FMT, CONST(2)->u.number);
+        Parrot_io_putps(interp, PREG(1), s);
     }
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_seek_p_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(IREG(2), IREG(3)), cur_opcode[4]) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 5,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (64bit)");return (opcode_t *)handler;
-        }
+    if (SREG(2) && PREG(1)) {
+        Parrot_io_putps(interp, PREG(1), SREG(2));
     }
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_seek_p_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(cur_opcode[2], IREG(3)), cur_opcode[4]) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 5,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (64bit)");return (opcode_t *)handler;
-        }
+    if (CONST(2)->u.string && PREG(1)) {
+        Parrot_io_putps(interp, PREG(1), CONST(2)->u.string);
     }
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_seek_p_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_print_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(IREG(2), cur_opcode[3]), cur_opcode[4]) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 5,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (64bit)");return (opcode_t *)handler;
-        }
+    if (PREG(2) && PREG(1)) {
+        STRING * const s = VTABLE_get_string(interp, PREG(2));
+        Parrot_io_putps(interp, PREG(1), s);
     }
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_seek_p_ic_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_getstdin_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(1)) {
-        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(cur_opcode[2], cur_opcode[3]), cur_opcode[4]) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 5,
-                EXCEPTION_PIO_ERROR,
-                "seek failed (64bit)");return (opcode_t *)handler;
-        }
-    }
+    PREG(1) = _PIO_STDIN(interp);
 
-return (opcode_t *)cur_opcode + 5;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_tell_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_getstdout_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(2))
-        IREG(1) = (INTVAL)Parrot_io_tell(interp, PREG(2));
+    PREG(1) = _PIO_STDOUT(interp);
 
-return (opcode_t *)cur_opcode + 3;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_tell_i_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_getstderr_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    if (PREG(3)) {
-        PIOOFF_T pos;
-        pos = Parrot_io_tell(interp, PREG(3));
-        IREG(1) = (INTVAL)(pos >> 31);
-        IREG(2) = (INTVAL)(pos & 0xffffffff);
-    }
+    PREG(1) = _PIO_STDERR(interp);
 
-return (opcode_t *)cur_opcode + 4;}
+return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
 Parrot_abs_i(opcode_t *cur_opcode, PARROT_INTERP)  {
@@ -21275,187 +17645,16 @@
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
-Parrot_add_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = VTABLE_add_float(interp, PREG(2), NREG(3), PREG(1));
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_add_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    PREG(1) = VTABLE_add_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    INTVAL den = IREG(3);
-    if (IREG(3) == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
-    IREG(1) = IREG(2) % den;
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    INTVAL den = IREG(3);
-    if (IREG(3) == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
-    IREG(1) = cur_opcode[2] % den;
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    INTVAL den = cur_opcode[3];
-    if (cur_opcode[3] == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
-    IREG(1) = IREG(2) % den;
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    INTVAL result;
-
-    if (IREG(3) == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
-
-    result = VTABLE_get_integer(interp, PREG(2)) % IREG(3);
-
-    PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
-    VTABLE_set_integer_native(interp, PREG(1), result);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    INTVAL result;
-
-    if (cur_opcode[3] == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
-
-    result = VTABLE_get_integer(interp, PREG(2)) % cur_opcode[3];
-
-    PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
-    VTABLE_set_integer_native(interp, PREG(1), result);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    INTVAL result;
-    INTVAL value = VTABLE_get_integer(interp, PREG(3));
-
-    if (value == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
-
-    result = VTABLE_get_integer(interp, PREG(2)) % value;
-
-    PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
-    VTABLE_set_integer_native(interp, PREG(1), result);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    FLOATVAL den = NREG(3);
-    if (FLOAT_IS_ZERO(NREG(3))) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
-    NREG(1) = fmod(NREG(2), den);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    FLOATVAL den = NREG(3);
-    if (FLOAT_IS_ZERO(NREG(3))) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
-    NREG(1) = fmod(CONST(2)->u.number, den);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    FLOATVAL den = CONST(3)->u.number;
-    if (FLOAT_IS_ZERO(CONST(3)->u.number)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
-    NREG(1) = fmod(NREG(2), den);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    FLOATVAL result;
-    FLOATVAL value = NREG(3);
-
-    if (FLOAT_IS_ZERO(value)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
-
-    result = fmod(VTABLE_get_integer(interp, PREG(2)), value);
-
-    PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL) result);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cmod_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+Parrot_add_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    FLOATVAL result;
-    FLOATVAL value = CONST(3)->u.number;
-
-    if (FLOAT_IS_ZERO(value)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");return (opcode_t *)handler;
-    }
+    PREG(1) = VTABLE_add_float(interp, PREG(2), NREG(3), PREG(1));
 
-    result = fmod(VTABLE_get_integer(interp, PREG(2)), value);
+return (opcode_t *)cur_opcode + 4;}
 
-    PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
-    VTABLE_set_integer_native(interp, PREG(1), (INTVAL) result);
+opcode_t *
+Parrot_add_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_add_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -22314,203 +18513,6 @@
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_pow_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = pow((FLOATVAL)NREG(2), (FLOATVAL)NREG(3));
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = pow((FLOATVAL)CONST(2)->u.number, (FLOATVAL)NREG(3));
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = pow((FLOATVAL)NREG(2), (FLOATVAL)CONST(3)->u.number);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
-    const FLOATVAL b = VTABLE_get_number(interp, PREG(3));
-    const FLOATVAL c = pow(a, b);
-    if (PMC_IS_NULL(PREG(1)))
-        PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
-    else
-        PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
-    VTABLE_set_number_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
-    const FLOATVAL b = (FLOATVAL)IREG(3);
-    const FLOATVAL c = pow(a, b);
-    if (PMC_IS_NULL(PREG(1)))
-        PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
-    else
-        PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
-    VTABLE_set_number_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
-    const FLOATVAL b = (FLOATVAL)cur_opcode[3];
-    const FLOATVAL c = pow(a, b);
-    if (PMC_IS_NULL(PREG(1)))
-        PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
-    else
-        PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
-    VTABLE_set_number_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
-    const FLOATVAL c = pow(a, NREG(3));
-    if (PMC_IS_NULL(PREG(1)))
-        PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
-    else
-        PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
-    VTABLE_set_number_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
-    const FLOATVAL c = pow(a, CONST(3)->u.number);
-    if (PMC_IS_NULL(PREG(1)))
-        PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
-    else
-        PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
-    VTABLE_set_number_native(interp, PREG(1), c);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_n_n_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    FLOATVAL n2 = NREG(2);
-    FLOATVAL res = 1.0;
-    INTVAL   e  = IREG(3);
-    int s = 1;
-    if (e != 0) {
-        if (e < 0) {
-            s = -1;
-            e = -e;
-        }
-    }
-    while (e) {
-        if (e & 1) {
-            res *= n2;
-        }
-        n2 *= n2;
-        e >>= 1;
-    }
-    if (s < 0) {
-        res = 1.0/res;
-    }
-    NREG(1) = res;
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_n_nc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    FLOATVAL n2 = CONST(2)->u.number;
-    FLOATVAL res = 1.0;
-    INTVAL   e  = IREG(3);
-    int s = 1;
-    if (e != 0) {
-        if (e < 0) {
-            s = -1;
-            e = -e;
-        }
-    }
-    while (e) {
-        if (e & 1) {
-            res *= n2;
-        }
-        n2 *= n2;
-        e >>= 1;
-    }
-    if (s < 0) {
-        res = 1.0/res;
-    }
-    NREG(1) = res;
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    FLOATVAL n2 = NREG(2);
-    FLOATVAL res = 1.0;
-    INTVAL   e  = cur_opcode[3];
-    int s = 1;
-    if (e != 0) {
-        if (e < 0) {
-            s = -1;
-            e = -e;
-        }
-    }
-    while (e) {
-        if (e & 1) {
-            res *= n2;
-        }
-        n2 *= n2;
-        e >>= 1;
-    }
-    if (s < 0) {
-        res = 1.0/res;
-    }
-    NREG(1) = res;
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_pow_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    FLOATVAL n2 = CONST(2)->u.number;
-    FLOATVAL res = 1.0;
-    INTVAL   e  = cur_opcode[3];
-    int s = 1;
-    if (e != 0) {
-        if (e < 0) {
-            s = -1;
-            e = -e;
-        }
-    }
-    while (e) {
-        if (e & 1) {
-            res *= n2;
-        }
-        n2 *= n2;
-        e >>= 1;
-    }
-    if (s < 0) {
-        res = 1.0/res;
-    }
-    NREG(1) = res;
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
 Parrot_sub_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     IREG(1) -= IREG(2);
@@ -22658,140 +18660,6 @@
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
-Parrot_acos_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = acos((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_asec_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = acos(((FLOATVAL)1) / ((FLOATVAL)NREG(2)));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_asin_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = asin((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_atan_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = atan((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_atan_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = atan2((FLOATVAL)NREG(2), (FLOATVAL)NREG(3));
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_atan_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = atan2((FLOATVAL)CONST(2)->u.number, (FLOATVAL)NREG(3));
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_atan_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = atan2((FLOATVAL)NREG(2), (FLOATVAL)CONST(3)->u.number);
-
-return (opcode_t *)cur_opcode + 4;}
-
-opcode_t *
-Parrot_cos_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = cos((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_cosh_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = cosh((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_exp_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = exp((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_ln_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = log((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_log10_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = log10((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_log2_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    FLOATVAL temp = log((FLOATVAL)2.0);
-    NREG(1) = log((FLOATVAL)NREG(2)) / temp;
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sec_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = ((FLOATVAL)1) / cos((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sech_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = ((FLOATVAL)1) / cosh((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sin_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = sin((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sinh_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = sinh((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_tan_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = tan((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_tanh_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    NREG(1) = tanh((FLOATVAL)NREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
 Parrot_callmethodcc_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const object     = PREG(1);
@@ -22803,6 +18671,8 @@
     PMC      * const signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
     if (PMC_IS_NULL(method_pmc)) {
         PMC * const _class = VTABLE_get_class(interp, object);
         if (PMC_IS_NULL(_class)) {
@@ -22837,6 +18707,8 @@
     PMC      * const signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
     if (PMC_IS_NULL(method_pmc)) {
         PMC * const _class = VTABLE_get_class(interp, object);
         if (PMC_IS_NULL(_class)) {
@@ -22867,6 +18739,8 @@
     PMC      *       signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
     if (!PMC_IS_NULL(signature))
         Parrot_pcc_set_object(interp, signature, PREG(1));
     interp->current_cont   = NEED_CONTINUATION;
@@ -22885,6 +18759,7 @@
     PMC      *       signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
 
     if (PMC_IS_NULL(method_pmc)) {
         dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
@@ -22911,6 +18786,7 @@
     PMC      *       signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
 
     if (PMC_IS_NULL(method_pmc)) {
         dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
@@ -22936,6 +18812,8 @@
     PMC      *       signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
     if (!PMC_IS_NULL(signature))
         Parrot_pcc_set_object(interp, signature, object);
     interp->current_cont = PREG(3);
@@ -26707,122 +22585,6 @@
 return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_gmtime_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) IREG(2);
-    char resultbuffer[26];
-    Parrot_gmtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_gmtime_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) cur_opcode[2];
-    char resultbuffer[26];
-    Parrot_gmtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_localtime_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) IREG(2);
-    char resultbuffer[26];
-    Parrot_localtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_localtime_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) cur_opcode[2];
-    char resultbuffer[26];
-    Parrot_localtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_decodetime_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) IREG(2);
-    Parrot_gmtime_r(&t, &tm);
-    PREG(1) = tm_to_array(interp, &tm);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_decodetime_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) cur_opcode[2];
-    Parrot_gmtime_r(&t, &tm);
-    PREG(1) = tm_to_array(interp, &tm);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_decodelocaltime_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) IREG(2);
-    Parrot_localtime_r(&t, &tm);
-    PREG(1) = tm_to_array(interp, &tm);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_decodelocaltime_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) cur_opcode[2];
-    Parrot_localtime_r(&t, &tm);
-    PREG(1) = tm_to_array(interp, &tm);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sysinfo_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = sysinfo_s(interp, IREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sysinfo_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = sysinfo_s(interp, cur_opcode[2]);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sysinfo_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = sysinfo_i(interp, IREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sysinfo_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = sysinfo_i(interp, cur_opcode[2]);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
 Parrot_sleep_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     opcode_t *next =cur_opcode + 2;
@@ -27605,7 +23367,9 @@
     PMC *sub = Parrot_find_name_op(interp, SREG(2), dest);
 
     if (PMC_IS_NULL(sub)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, dest,
+        opcode_t *handler;
+        Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+        handler = Parrot_ex_throw_from_op_args(interp, dest,
                        EXCEPTION_GLOBAL_NOT_FOUND,
                        "Could not find sub %Ss", SREG(2));return (opcode_t *)handler;
     }
@@ -27621,7 +23385,9 @@
     PMC *sub = Parrot_find_name_op(interp, CONST(2)->u.string, dest);
 
     if (PMC_IS_NULL(sub)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, dest,
+        opcode_t *handler;
+        Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+        handler = Parrot_ex_throw_from_op_args(interp, dest,
                        EXCEPTION_GLOBAL_NOT_FOUND,
                        "Could not find sub %Ss", CONST(2)->u.string);return (opcode_t *)handler;
     }
@@ -29274,7 +25040,7 @@
   2,    /* major_version */
   4,    /* minor_version */
   0,    /* patch_version */
-  1268,             /* op_count */
+  1083,             /* op_count */
   core_op_info_table,       /* op_info_table */
   core_op_func_table,       /* op_func_table */
   get_op          /* op_code() */ 

Deleted: branches/gsoc_nfg/src/ops/debug.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/debug.ops	Mon Jun  7 18:03:08 2010	(r47435)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,146 +0,0 @@
-/*
- * $Id$
- * Copyright (C) 2002-2008, Parrot Foundation.
- */
-
-/*
-** debug.ops
-*/
-
-=head1 NAME
-
-debug.ops - Debugging Opcodes
-
-=cut
-
-=head1 DESCRIPTION
-
-Parrot debugger
-
-=cut
-
-=head1 HISTORY
-
-Initial version by Daniel Grunblatt on 2002.5.19
-
-=cut
-
-###############################################################################
-
-=head2 Parrot debug operations
-
-=over 4
-
-=cut
-
-########################################
-
-=item B<debug_init>()
-
-Init the Parrot debugger, must be called before any other debug op.
-
-=cut
-
-op debug_init() :base_debug {
-    Parrot_debugger_init(interp);
-}
-
-########################################
-
-=item B<debug_load>(inconst STR)
-
-Load a Parrot source file for the current program.
-
-=cut
-
-op debug_load(inconst STR) :base_debug {
-    Parrot_debugger_load(interp, $1);
-}
-
-########################################
-
-=item B<debug_break>()
-
-Break execution and drop into the debugger.
-If we are already into the debugger and is the first time we are
-called set a breakpoint.
-
-When you re run/continue the program begin debugged it will pay
-no attention to the debug ops.
-
-=cut
-
-op debug_break() :base_debug {
-    Parrot_debugger_break(interp, cur_opcode);
-}
-
-########################################
-
-=item B<debug_print>()
-
-Print all the Parrot registers at once.
-
-=cut
-
-op debug_print() :base_debug {
-    if (!interp->pdb) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
-            EXCEPTION_INVALID_OPERATION,
-            "Initialize debugger with debug_init before using debug_print");
-        goto ADDRESS(handler);
-    }
-
-    if (!(interp->pdb->state & PDB_BREAK)) {
-        PDB_print(interp, "I");
-        PDB_print(interp, "N");
-        PDB_print(interp, "S");
-        PDB_print(interp, "P");
-    }
-}
-
-=item B<backtrace>()
-
-Print a backtrace.
-
-=cut
-
-op backtrace() :base_debug {
-    PDB_backtrace(interp);
-}
-
-#######################################
-
-=item B<getline>(out INT)
-
-Get the current line number.
-
-=cut
-
-inline op getline(out INT) {
-    Parrot_Context_info info;
-    Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
-    $1 = info.line;
-}
-
-=item B<getfile>(out STR)
-
-Get the name of the current file.
-
-=cut
-
-inline op getfile(out STR) {
-    Parrot_Context_info info;
-    Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
-    $1 = info.file;
-}
-
-=back
-
-=cut
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/gsoc_nfg/src/ops/experimental.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/experimental.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/experimental.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -27,6 +27,8 @@
 If you rely on any of these opcodes, please open a
 Trac ticket at L<https://trac.parrot.org/>.
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
 
 =cut
 

Modified: branches/gsoc_nfg/src/ops/io.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/io.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/io.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,149 +19,19 @@
 
 Parrot's IO API
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
 =cut
 
 ###############################################################################
 
 =head2 Parrot IO API Operations
 
-
 =over 4
 
 =cut
 
-
-########################################
-
-=item B<close>(invar PMC)
-
-Close IO object $1
-
-=cut
-
-inline op close(invar PMC) :base_io {
-    Parrot_io_close(interp, $1);
-}
-
-########################################
-
-=item B<fdopen>(out PMC, in INT, in STR)
-
-Create ParrotIO object in $1 as a copy of file descriptor $2.
-
-=cut
-
-inline op fdopen(out PMC, in INT, in STR) :filesys_open {
-    $1 = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)$2, $3);
-    if (!$1)
-        $1 = Parrot_pmc_new(interp, enum_class_Undef);
-}
-
-=item B<getstdin>(out PMC)
-
-Create a new ParrotIO object for the stdin file descriptor and
-store it in $1
-
-=item B<getstdout>(out PMC)
-
-Create a new ParrotIO object for the stdout file descriptor and
-store it in $1
-
-=item B<getstderr>(out PMC)
-
-Create a new ParrotIO object for the stderr file descriptor and
-store it in $1
-
-=cut
-
-inline op getstdin(out PMC) :base_io {
-    $1 = _PIO_STDIN(interp);
-}
-
-inline op getstdout(out PMC) :base_io {
-    $1 = _PIO_STDOUT(interp);
-}
-
-inline op getstderr(out PMC) :base_io {
-    $1 = _PIO_STDERR(interp);
-}
-
-#########################################
-
-=item B<setstdin>(invar PMC)
-
-Sets the standard input for a bare C<read> op to go to the supplied PMC.
-Call C<getstdin> first if you care about retaining the previous PMC.
-
-=item B<setstdout>(invar PMC)
-
-Sets the standard output for a bare C<print> op to go to the supplied PMC.
-Call C<getstdout> first if you care about retaining the previous PMC.
-
-=item B<setstderr>(invar PMC)
-
-Sets the standard error for a bare C<printerr> op to go to the supplied PMC.
-Call C<getstderr> first if you care about retaining the previous PMC.
-
-=cut
-
-inline op setstdin(invar PMC) :base_io {
-    _PIO_STDIN(interp) = $1;
-}
-
-inline op setstdout(invar PMC) :base_io {
-    _PIO_STDOUT(interp) = $1;
-}
-
-inline op setstderr(invar PMC) :base_io {
-    _PIO_STDERR(interp) = $1;
-}
-
-#########################################
-
-=item B<open>(out PMC, in STR, in STR)
-
-Open URL (file, address, database, in core image) named $2 with
-a mode string in $3 and create an IO object in $1.
-
-The mode consists of a string of characters specified in any order:
-
- r : read
- w : write
- a : append (Note: you must specify "wa", not just "a")
- p : pipe
-
-=item B<open>(out PMC, in STR)
-
-Open URL (file, address, database, in core image) named $2 with
-read mode and create an IO object in $1.
-
-=cut
-
-inline op open(out PMC, in STR, in STR) :filesys_open {
-    if (STRING_IS_NULL($2) || STRING_IS_NULL($3)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
-            EXCEPTION_UNEXPECTED_NULL, "Invalid open");
-        goto ADDRESS(handler);
-    }
-    else {
-        $1 = Parrot_io_open(interp, PMCNULL, $2, $3);
-        PARROT_ASSERT(! PMC_IS_NULL($1));
-    }
-}
-
-inline op open(out PMC, in STR) :filesys_open {
-    if (STRING_IS_NULL($2)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
-            EXCEPTION_UNEXPECTED_NULL, "Invalid open");
-        goto ADDRESS(handler);
-    }
-    else {
-        $1 = Parrot_io_open(interp, PMCNULL, $2, NULL);
-        PARROT_ASSERT(! PMC_IS_NULL($1));
-    }
-}
-
 ########################################
 
 =item B<print>(in INT)
@@ -266,41 +136,6 @@
 
 ##########################################
 
-=item B<printerr>(in INT)
-
-=item B<printerr>(in NUM)
-
-=item B<printerr>(in STR)
-
-=item B<printerr>(invar PMC)
-
-Print $1 to standard error.
-
-=cut
-
-op printerr(in INT) :base_io {
-    Parrot_io_eprintf(interp, INTVAL_FMT, $1);
-}
-
-op printerr(in NUM) :base_io {
-    Parrot_io_eprintf(interp, FLOATVAL_FMT, $1);
-}
-
-op printerr(in STR) :base_io {
-    STRING * const s = $1;
-    if (s && Parrot_str_byte_length(interp, s))
-        Parrot_io_putps(interp, _PIO_STDERR(interp), s);
-}
-
-op printerr(invar PMC) :base_io {
-    PMC * const p = $1;
-    STRING * const s = (VTABLE_get_string(interp, p));
-    if (s)
-        Parrot_io_putps(interp, _PIO_STDERR(interp), s);
-}
-
-##########################################
-
 =item B<print>(invar PMC, in INT)
 
 =item B<print>(invar PMC, in NUM)
@@ -340,183 +175,35 @@
     }
 }
 
-##########################################
-
-=item B<read>(out STR, in INT)
-
-Read up to N bytes from standard input stream
-
-=item B<read>(out STR, invar PMC, in INT)
-
-Read up to N bytes from IO PMC stream.
-
-=cut
-
-op read(out STR, in INT) :base_io {
-    $1 = Parrot_io_reads(interp, _PIO_STDIN(interp), (size_t)$2);
-}
-
-op read(out STR, invar PMC, in INT) :base_io {
-    $1 = Parrot_io_reads(interp, $2, (size_t)$3);
-}
-
-=item B<readline>(out STR, invar PMC)
-
-Read a line up to EOL from filehandle $2.
-This switches the filehandle to linebuffer-mode.
-
-=cut
-
-inline op readline(out STR, invar PMC) :base_io {
-    $1 = Parrot_io_readline(interp, $2);
-}
-
-##########################################
-
-=item B<peek>(out STR)
-
-Returns the next byte from standard input, but does not
-remove it from the stream.
-
-=item B<peek>(out STR, invar PMC)
-
-Reads the next byte from an IO PMC, but does not
-remove it from the stream.
-
-=cut
-
-op peek(out STR) :base_io {
-    STRING ** const s = &$1;
-
-    *s = NULL;
-    if (Parrot_io_peek(interp, _PIO_STDIN(interp), s) < 0) {
-        $1 = STRINGNULL;
-    }
-}
-
-op peek(out STR, invar PMC) :base_io {
-    STRING ** const s = &$1;
-
-    *s = NULL;
-    if (Parrot_io_peek(interp, $2, s) < 0) {
-        $1 = STRINGNULL;
-    }
-}
-
-##########################################
-
-=item B<stat>(out INT, in STR, in INT)
-
-=item B<stat>(out INT, in INT, in INT)
-
-Stat the file. Return stat element $3 for file $2 into $1. The queryable
-items currently are:
-
- EXISTS     0
- FILESIZE   1
- ISDIR      2
- ISDEV      3
- CREATETIME 4 (Time file was created)
- ACCESSTIME 5 (Time file was last accessed)
- MODIFYTIME 6 (Time file data was changed)
- CHANGETIME 7 (Time file metadata was changed)
- BACKUPTIME 8 (Time of last backup)
- UID        9
- GID        10
-
-
-=cut
-
-op stat(out INT, in STR, in INT) {
-    $1 = Parrot_stat_info_intval(interp, $2, $3);
-}
+=item B<getstdin>(out PMC)
 
-op stat(out INT, in INT, in INT) {
-    $1 = Parrot_fstat_info_intval(interp, $2, $3);
-}
+Create a new ParrotIO object for the stdin file descriptor and
+store it in $1
 
+=item B<getstdout>(out PMC)
 
-##########################################
+Create a new ParrotIO object for the stdout file descriptor and
+store it in $1
 
-=item B<seek>(invar PMC, in INT, in INT)
+=item B<getstderr>(out PMC)
 
-seek:
-Set file position to offset $2 on IO stream $1. 'whence' is
-indicated by the value in $3. The valid values for 'whence' are:
-
- Value      Meaning
- 0          Seek from the beginning of the file
- 1          Seek from the current position
- 2          Seek from the end of the file
-
-[ Note: the above values for 'whence' is just an educated guess
-at this point ]
-
-=item B<seek>(invar PMC, in INT, in INT, in INT)
-
-64bit seek:
-Set file position to offset ($2 << 32 | $3) on IO stream $1. 'whence' is
-indicated by the value in $4. This allows 64-bit seeks with only 32-bit
-INTVALS.
+Create a new ParrotIO object for the stderr file descriptor and
+store it in $1
 
 =cut
 
-op seek(invar PMC, in INT, in INT) :base_io {
-    if ($1) {
-        if (Parrot_io_seek(interp, $1, Parrot_io_make_offset($2), $3) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
-                EXCEPTION_PIO_ERROR,
-                "seek failed (32bit)");
-            goto ADDRESS(handler);
-        }
-    }
-}
-
-op seek(invar PMC, in INT, in INT, in INT) :base_io {
-    if ($1) {
-        if (Parrot_io_seek(interp, $1, Parrot_io_make_offset32($2, $3), $4) < 0) {
-            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
-                EXCEPTION_PIO_ERROR,
-                "seek failed (64bit)");
-            goto ADDRESS(handler);
-        }
-    }
+inline op getstdin(out PMC) :base_io {
+    $1 = _PIO_STDIN(interp);
 }
 
-=item B<tell>(out INT, invar PMC)
-
-tell:
-Get the current file position of stream $2 and store it in $1.
-On systems where INTVAL is 32bit the result will be truncated if the
-position is beyond 2 GiB
-
-=item B<tell>(out INT, out INT, invar PMC)
-
-64bit tell:
-Get the current file positon of stream $3 in two parts of 32-bit each
-($1 = pos >> 32, $2 = pos & 0xffffffff).
-
-=cut
-
-op tell(out INT, invar PMC) :base_io {
-    if ($2)
-        $1 = (INTVAL)Parrot_io_tell(interp, $2);
+inline op getstdout(out PMC) :base_io {
+    $1 = _PIO_STDOUT(interp);
 }
 
-op tell(out INT, out INT, invar PMC) :base_io {
-    if ($3) {
-        PIOOFF_T pos;
-        pos = Parrot_io_tell(interp, $3);
-        $1 = (INTVAL)(pos >> 31);
-        $2 = (INTVAL)(pos & 0xffffffff);
-    }
+inline op getstderr(out PMC) :base_io {
+    $1 = _PIO_STDERR(interp);
 }
 
-=back
-
-=cut
-
-
 ###############################################################################
 
 /*

Modified: branches/gsoc_nfg/src/ops/math.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/math.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/math.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -11,8 +11,11 @@
 
 =head1 DESCRIPTION
 
-Operations that perform some sort of mathematics, including both basic
-math and transcendental functions.
+Operations that perform basic mathematics. See F<src/dynoplibs/> for more
+advanced operations.
+
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
 
 =head2 Arithmetic operations
 
@@ -137,152 +140,6 @@
 
 ########################################
 
-=item B<cmod>(out INT, in INT, in INT)
-
-=item B<cmod>(invar PMC, invar PMC, in INT)
-
-=item B<cmod>(invar PMC, invar PMC, invar PMC)
-
-NOTE: This "uncorrected mod" algorithm uses the C language's built-in
-mod operator (x % y), which is
-
-    ... the remainder when x is divided by y, and thus is zero
-    when y divides x exactly.
-    ...
-    The direction of truncation for / and the sign of the result
-    for % are machine-dependent for negative operands, as is the
-    action taken on overflow or underflow.
-                                                     -- [1], page 41
-
-Also:
-
-    ... if the second operand is 0, the result is undefined.
-    Otherwise, it is always true that (a/b)*b + a%b is equal to z. If
-    both operands are non-negative, then the remainder is non-
-    negative and smaller than the divisor; if not, it is guaranteed
-    only that the absolute value of the remainder is smaller than
-    the absolute value of the divisor.
-                                                     -- [1], page 205
-
-This op is provided for those who need it (such as speed-sensitive
-applications with heavy use of mod, but using it only with positive
-arguments), but a more mathematically useful mod based on ** floor(x/y)
-and defined with y == 0 is provided by the mod op.
-
-  [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
-      Language*, Second Edition. Prentice Hall, 1988.
-
-If the denominator is zero, a 'Divide by zero' exception is thrown.
-
-=cut
-
-inline op cmod(out INT, in INT, in INT) :base_core {
-    INTVAL den = $3;
-    if ($3 == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");
-        goto ADDRESS(handler);
-    }
-    $1 = $2 % den;
-}
-
-inline op cmod(invar PMC, invar PMC, in INT) :base_core {
-    INTVAL result;
-
-    if ($3 == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");
-        goto ADDRESS(handler);
-    }
-
-    result = VTABLE_get_integer(interp, $2) % $3;
-
-    $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
-    VTABLE_set_integer_native(interp, $1, result);
-}
-
-inline op cmod(invar PMC, invar PMC, invar PMC) :base_core {
-    INTVAL result;
-    INTVAL value = VTABLE_get_integer(interp, $3);
-
-    if (value == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");
-        goto ADDRESS(handler);
-    }
-
-    result = VTABLE_get_integer(interp, $2) % value;
-
-    $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
-    VTABLE_set_integer_native(interp, $1, result);
-}
-
-########################################
-
-=item B<cmod>(out NUM, in NUM, in NUM)
-
-=item B<cmod>(invar PMC, invar PMC, in NUM)
-
-NOTE: This "uncorrected mod" algorithm uses the built-in C math library's
-fmod() function, which computes
-
-    ... the remainder of dividing x by y. The return value is
-    x - n * y, where n is the quotient of x / y, rounded towards
-    zero to an integer.
-                                -- fmod() manpage on RedHat Linux 7.0
-
-In addition, fmod() returns
-
-    the remainder, unless y is zero, when the function fails and
-    errno is set.
-
-According to page 251 of [1], the result when y is zero is implementation-
-defined.
-
-This op is provided for those who need it, but a more mathematically
-useful numeric mod based on floor(x/y) instead of truncate(x/y) and
-defined with y == 0 is provided by the mod op.
-
-  [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
-      Language*, Second Edition. Prentice Hall, 1988.
-
-If the denominator is zero, a 'Divide by zero' exception is thrown.
-
-=cut
-
-inline op cmod(out NUM, in NUM, in NUM) :base_core {
-    FLOATVAL den = $3;
-    if (FLOAT_IS_ZERO($3)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");
-        goto ADDRESS(handler);
-    }
-    $1 = fmod($2, den);
-}
-
-inline op cmod(invar PMC, invar PMC, in NUM) :base_core {
-    FLOATVAL result;
-    FLOATVAL value = $3;
-
-    if (FLOAT_IS_ZERO(value)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
-            EXCEPTION_DIV_BY_ZERO,
-            "Divide by zero");
-        goto ADDRESS(handler);
-    }
-
-    result = fmod(VTABLE_get_integer(interp, $2), value);
-
-    $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
-    VTABLE_set_integer_native(interp, $1, (INTVAL) result);
-}
-
-########################################
-
 =item B<dec>(inout INT)
 
 =item B<dec>(inout NUM)
@@ -787,82 +644,6 @@
 
 ########################################
 
-=item B<pow>(out NUM, in NUM, in NUM)
-
-=item B<pow>(out NUM, in NUM, in INT)
-
-=item B<pow>(invar PMC, invar PMC, invar PMC)
-
-=item B<pow>(invar PMC, invar PMC, in INT)
-
-=item B<pow>(invar PMC, invar PMC, in NUM)
-
-Set $1 to $2 raised to the power $3.
-
-=cut
-
-inline op pow(out NUM, in NUM, in NUM) :base_core {
-    $1 = pow((FLOATVAL)$2, (FLOATVAL)$3);
-}
-
-inline op pow(invar PMC, invar PMC, invar PMC) :base_core {
-    const FLOATVAL a = VTABLE_get_number(interp, $2);
-    const FLOATVAL b = VTABLE_get_number(interp, $3);
-    const FLOATVAL c = pow(a, b);
-    if (PMC_IS_NULL($1))
-        $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
-    else
-        $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
-    VTABLE_set_number_native(interp, $1, c);
-}
-
-inline op pow(invar PMC, invar PMC, in INT) :base_core {
-    const FLOATVAL a = VTABLE_get_number(interp, $2);
-    const FLOATVAL b = (FLOATVAL)$3;
-    const FLOATVAL c = pow(a, b);
-    if (PMC_IS_NULL($1))
-        $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
-    else
-        $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
-    VTABLE_set_number_native(interp, $1, c);
-}
-
-inline op pow(invar PMC, invar PMC, in NUM) :base_core {
-    const FLOATVAL a = VTABLE_get_number(interp, $2);
-    const FLOATVAL c = pow(a, $3);
-    if (PMC_IS_NULL($1))
-        $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
-    else
-        $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
-    VTABLE_set_number_native(interp, $1, c);
-}
-
-inline op pow(out NUM, in NUM, in INT) :base_core {
-    FLOATVAL n2 = $2;
-    FLOATVAL res = 1.0;
-    INTVAL   e  = $3;
-    int s = 1;
-    if (e != 0) {
-        if (e < 0) {
-            s = -1;
-            e = -e;
-        }
-    }
-    while (e) {
-        if (e & 1) {
-            res *= n2;
-        }
-        n2 *= n2;
-        e >>= 1;
-    }
-    if (s < 0) {
-        res = 1.0/res;
-    }
-    $1 = res;
-}
-
-########################################
-
 =item B<sub>(inout INT, in INT)
 
 =item B<sub>(inout NUM, in NUM)
@@ -945,228 +726,6 @@
 
 =cut
 
-
-
-###############################################################################
-
-=head2 Transcendental mathematical operations
-
-These operations perform various transcendental operations such as logarithmics
-and trigonometrics.
-
-=over 4
-
-=cut
-
-########################################
-
-=item B<acos>(out NUM, in NUM)
-
-Set $1 to the arc cosine (in radians) of $2.
-
-=cut
-
-inline op acos(out NUM, in NUM) :base_math {
-    $1 = acos((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<asec>(out NUM, in NUM)
-
-Set $1 to the arc secant (in radians) of $2.
-
-=cut
-
-inline op asec(out NUM, in NUM) :base_math {
-    $1 = acos(((FLOATVAL)1) / ((FLOATVAL)$2));
-}
-
-########################################
-
-
-=item B<asin>(out NUM, in NUM)
-
-Set $1 to the arc sine (in radians) of $2.
-
-=cut
-
-inline op asin(out NUM, in NUM) :base_math {
-    $1 = asin((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<atan>(out NUM, in NUM)
-
-=item B<atan>(out NUM, in NUM, in NUM)
-
-The two-argument versions set $1 to the arc tangent (in radians) of $2.
-
-The three-argument versions set $1 to the arc tangent (in radians) of
-$2 / $3, taking account of the signs of the arguments in determining the
-quadrant of the result.
-
-=cut
-
-inline op atan(out NUM, in NUM) :base_math {
-    $1 = atan((FLOATVAL)$2);
-}
-
-inline op atan(out NUM, in NUM, in NUM) :base_math {
-    $1 = atan2((FLOATVAL)$2, (FLOATVAL)$3);
-}
-
-########################################
-
-=item B<cos>(out NUM, in NUM)
-
-Set $1 to the cosine of $2 (given in radians).
-
-=cut
-
-inline op cos(out NUM, in NUM) :base_math {
-    $1 = cos((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<cosh>(out NUM, in NUM)
-
-Set $1 to the hyperbolic cosine of $2 (given in radians).
-
-=cut
-
-inline op cosh(out NUM, in NUM) :base_math {
-    $1 = cosh((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<exp>(out NUM, in NUM)
-
-Set $1 to I<e> raised to the power $2. I<e> is the base of the natural
-logarithm.
-
-=cut
-
-inline op exp(out NUM, in NUM) :base_math {
-    $1 = exp((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<ln>(out NUM, in NUM)
-
-Set $1 to the natural (base I<e>) logarithm of $2.
-
-=cut
-
-inline op ln(out NUM, in NUM) :base_math {
-    $1 = log((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<log10>(out NUM, in NUM)
-
-Set $1 to the base 10 logarithm of $2.
-
-=cut
-
-inline op log10(out NUM, in NUM) :base_math {
-    $1 = log10((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<log2>(out NUM, in NUM)
-
-Set $1 to the base 2 logarithm of $2.
-
-=cut
-
-op log2(out NUM, in NUM) :base_math {
-    FLOATVAL temp = log((FLOATVAL)2.0);
-    $1 = log((FLOATVAL)$2) / temp;
-}
-
-########################################
-
-=item B<sec>(out NUM, in NUM)
-
-Set $1 to the secant of $2 (given in radians).
-
-=cut
-
-inline op sec(out NUM, in NUM) :base_math {
-    $1 = ((FLOATVAL)1) / cos((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<sech>(out NUM, in NUM)
-
-Set $1 to the hyperbolic secant of $2 (given in radians).
-
-=cut
-
-inline op sech(out NUM, in NUM) :base_math {
-    $1 = ((FLOATVAL)1) / cosh((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<sin>(out NUM, in NUM)
-
-Set $1 to the sine of $2 (given in radians).
-
-=cut
-
-inline op sin(out NUM, in NUM) :base_math {
-    $1 = sin((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<sinh>(out NUM, in NUM)
-
-Set $1 to the hyperbolic sine of $2 (given in radians).
-
-=cut
-
-inline op sinh(out NUM, in NUM) :base_math {
-    $1 = sinh((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<tan>(out NUM, in NUM)
-
-Set $1 to the tangent of $2 (given in radians).
-
-=cut
-
-inline op tan(out NUM, in NUM) :base_math {
-    $1 = tan((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<tanh>(out NUM, in NUM)
-
-Set $1 to the hyperbolic tangent of $2 (given in radians).
-
-=cut
-
-inline op tanh(out NUM, in NUM) :base_math {
-    $1 = tanh((FLOATVAL)$2);
-}
-
-=back
-
-=cut
-
 ###############################################################################
 
 =head1 COPYRIGHT

Modified: branches/gsoc_nfg/src/ops/object.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/object.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/object.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -14,6 +14,9 @@
 
 Parrot's library of object ops
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
 =over 4
 
 =cut
@@ -56,6 +59,8 @@
     PMC      * const signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
     if (PMC_IS_NULL(method_pmc)) {
         PMC * const _class = VTABLE_get_class(interp, object);
         if (PMC_IS_NULL(_class)) {
@@ -85,6 +90,8 @@
     PMC      *       signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
     if (!PMC_IS_NULL(signature))
         Parrot_pcc_set_object(interp, signature, $1);
     interp->current_cont   = NEED_CONTINUATION;
@@ -103,6 +110,7 @@
     PMC      *       signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
 
     if (PMC_IS_NULL(method_pmc)) {
         dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
@@ -127,6 +135,8 @@
     PMC      *       signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
+    Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
     if (!PMC_IS_NULL(signature))
         Parrot_pcc_set_object(interp, signature, object);
     interp->current_cont = $3;

Modified: branches/gsoc_nfg/src/ops/pmc.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/pmc.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/pmc.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -15,6 +15,9 @@
 Operations that deal with PMCs, including creation and
 destruction, manipulation, and introspection.
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
 =cut
 
 ###############################################################################

Modified: branches/gsoc_nfg/src/ops/set.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/set.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/set.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -11,6 +11,9 @@
 
 These operations all set registers to various values.
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
 =over 4
 
 =cut

Modified: branches/gsoc_nfg/src/ops/string.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/string.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/string.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -12,6 +12,9 @@
 Operations that work on strings, whether constructing, modifying
 or examining them.
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
 =over 4
 
 =cut

Modified: branches/gsoc_nfg/src/ops/sys.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/sys.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/sys.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -11,6 +11,9 @@
 
 Operations that allow the user to interact with the system.
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
 =over 4
 
 =cut
@@ -107,172 +110,6 @@
 
 ########################################
 
-=item B<gmtime>(out STR, in INT)
-
-Take the integer, which represents GMT epoch-seconds, and turn it into a
-formatted string.
-
-=item B<localtime>(out STR, in INT)
-
-Take the integer, which represents GMT epoch-seconds, and turn it into a
-formatted string. The time is adjusted to localtime before formatting.
-
-=item B<decodetime>(out PMC, in INT)
-
-Take the integer, which represents GMT epoch-seconds, and return an Array
-PMC which represents the decoded time. The array elements are
-(include "tm.pasm" for the constants):
-
-=over 4
-
-=item 0, .TM_SEC
-
-Seconds (0-60)
-
-=item 1, .TM_MIN
-
-Minutes (0-59)
-
-=item 2, .TM_HOUR
-
-Hours (0-23)
-
-=item 3, .TM_MDAY
-
-Day of month (1-31)
-
-=item 4, .TM_MON
-
-Month of year (1-12) (Note, B<actual> month, not month - 1)
-
-=item 5, .TM_YEAR
-
-Year (note, B<actual> year. The year 2004 comes back as 2004, not 104)
-
-=item 6, .TM_WDAY
-
-Day of week. Sunday is day 0
-
-=item 7, .TM_YDAY
-
-Day of year (0-365)
-
-=item 8, .TM_ISDST
-
-Daylight savings/summer time in effect
-
-=back
-
-Timezone name will be GMT and offset will be 0, since the time is taken and
-decoded as GMT.
-
-=item B<decodelocaltime>(out PMC, in INT)
-
-Take the passed in  integer, which represents GMT epoch-seconds, and return
-an array as in decodetime. The time is first shifted to localtime before
-decoding.
-
-=cut
-
-op gmtime(out STR, in INT) {
-    struct tm tm;
-    const time_t t = (time_t) $2;
-    char resultbuffer[26];
-    Parrot_gmtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    $1 = Parrot_str_new(interp, resultbuffer, 25);
-}
-
-op localtime(out STR, in INT) {
-    struct tm tm;
-    const time_t t = (time_t) $2;
-    char resultbuffer[26];
-    Parrot_localtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    $1 = Parrot_str_new(interp, resultbuffer, 25);
-}
-
-op decodetime(out PMC, in INT) {
-    struct tm tm;
-    const time_t t = (time_t) $2;
-    Parrot_gmtime_r(&t, &tm);
-    $1 = tm_to_array(interp, &tm);
-}
-
-op decodelocaltime(out PMC, in INT) {
-    struct tm tm;
-    const time_t t = (time_t) $2;
-    Parrot_localtime_r(&t, &tm);
-    $1 = tm_to_array(interp, &tm);
-}
-
-########################################
-
-=item B<sysinfo>(out STR, in INT)
-
-=item B<sysinfo>(out INT, in INT)
-
-Return system information. The values it returns depends on what you
-ask. They are:
-
-=over 4
-
-=item 1 The size of a platform integer
-
-=item 2 The size of a platform float
-
-=item 3 The size of a platform pointer. (Largest possible data pointer)
-
-=item 4 The OS name
-
-This is something like "OS X", "MacOS", "Windows", or "VMS".
-
-=item 5 The OS version string
-
-This is the current (hopefully) OS Version. For OSes that have plain
-version numbers it will be the version number. For OSes that name
-their versions, it will be the version name.
-
-On HP/UX, this may be something like 11.2, while on Windows it may be
-"95", "98", "2000", "NT", "ME", or "XP".
-
-=item 6 The OS version number string
-
-On OSes that don't name themselves, this will be the same as what's
-returned in the OS version string. On OSes that I<do> name themselves,
-this will be a more specific version number. In all cases it is OS
-dependent.
-
-=item 7 The CPU architecture
-
-The name of the CPU family, such as "VAX", "Alpha", "PPC", or "x86".
-
-=item 8 The CPU model
-
-The model name of the current system's CPU. This is something like
-"EV68", "Athlon", or "Pentium III".
-
-=back
-
-Note that some of these values may be set at Parrot compile time,
-rather than at runtime, if the system has no reliable way to fetch the
-data dynamically, or if there is no way the value can change. Also,
-the value returned may be somewhat misleading--Parrot running under a
-VirtualPC window will report "Windows" as its OS and "x86" as its CPU,
-even if it's really running on an OS X system.
-
-=cut
-
-inline op sysinfo(out STR, in INT) {
-    $1 = sysinfo_s(interp, $2);
-}
-
-inline op sysinfo(out INT, in INT) {
-    $1 = sysinfo_i(interp, $2);
-}
-
-########################################
-
 =item B<sleep>(in INT)
 
 =item B<sleep>(in NUM)

Modified: branches/gsoc_nfg/src/ops/var.ops
==============================================================================
--- branches/gsoc_nfg/src/ops/var.ops	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/ops/var.ops	Mon Jun  7 18:03:08 2010	(r47436)
@@ -12,6 +12,9 @@
 These operations deal with both lexical and global variables,
 as well as the symbol tables that contain them.
 
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
 =cut
 
 ###############################################################################
@@ -482,7 +485,9 @@
     PMC *sub = Parrot_find_name_op(interp, $2, dest);
 
     if (PMC_IS_NULL(sub)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, dest,
+        opcode_t *handler;
+        Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+        handler = Parrot_ex_throw_from_op_args(interp, dest,
                        EXCEPTION_GLOBAL_NOT_FOUND,
                        "Could not find sub %Ss", $2);
         goto ADDRESS(handler);

Modified: branches/gsoc_nfg/src/packdump.c
==============================================================================
--- branches/gsoc_nfg/src/packdump.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/packdump.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -379,7 +379,6 @@
     for (i = 0; i < ft->fixup_count; ++i) {
         Parrot_io_printf(interp, "\t#%d\n", (int) i);
         switch (ft->fixups[i].type) {
-          case enum_fixup_label:
           case enum_fixup_sub:
             Parrot_io_printf(interp,
                         "\ttype => %d offs => %8d name => '%s',\n",

Modified: branches/gsoc_nfg/src/packfile.c
==============================================================================
--- branches/gsoc_nfg/src/packfile.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/packfile.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -3331,7 +3331,6 @@
         /* fixup_entry type */
         ++size;
         switch (ft->fixups[i].type) {
-          case enum_fixup_label:
           case enum_fixup_sub:
             size += PF_size_cstring(ft->fixups[i].name);
             ++size; /* offset */
@@ -3373,7 +3372,6 @@
     for (i = 0; i < ft->fixup_count; ++i) {
         *cursor++ = (opcode_t) ft->fixups[i].type;
         switch (ft->fixups[i].type) {
-          case enum_fixup_label:
           case enum_fixup_sub:
             cursor    = PF_store_cstring(cursor, ft->fixups[i].name);
             *cursor++ = ft->fixups[i].offset;
@@ -3470,7 +3468,6 @@
         entry->type = PF_fetch_opcode(pf, &cursor);
 
         switch (entry->type) {
-          case enum_fixup_label:
           case enum_fixup_sub:
             entry->name   = PF_fetch_cstring(interp, pf, &cursor);
             entry->offset = PF_fetch_opcode(pf, &cursor);
@@ -4671,7 +4668,7 @@
     else {
         STRING *err;
         PackFile_ByteCode * const cs =
-            (PackFile_ByteCode *)IMCC_compile_file_s(interp,
+            (PackFile_ByteCode *)Parrot_compile_file(interp,
                 filename, &err);
         Parrot_str_free_cstring(filename);
 

Modified: branches/gsoc_nfg/src/pbc_merge.c
==============================================================================
--- branches/gsoc_nfg/src/pbc_merge.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/pbc_merge.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -523,9 +523,6 @@
 
             /* Set new offset and bytecode pointer. */
             switch (copy->type) {
-                case enum_fixup_label:
-                    copy->offset = cur_entry->offset + inputs[i]->code_start;
-                    break;
                 case enum_fixup_sub:
                     copy->offset = cur_entry->offset + inputs[i]->const_start;
                     break;

Modified: branches/gsoc_nfg/src/pmc/boolean.pmc
==============================================================================
--- branches/gsoc_nfg/src/pmc/boolean.pmc	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/pmc/boolean.pmc	Mon Jun  7 18:03:08 2010	(r47436)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2007, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -35,12 +35,8 @@
 
 */
     VTABLE void init_pmc(PMC *value) {
-        if (!PMC_IS_NULL(value)) {
-            SELF.set_bool(VTABLE_get_bool(INTERP, value));
-        }
-        else {
-            SELF.set_bool(0);
-        }
+        INTVAL v = PMC_IS_NULL(value) ? (INTVAL) 0 : VTABLE_get_bool(INTERP, value);
+        SELF.set_bool(v);
     }
 /*
 

Modified: branches/gsoc_nfg/src/pmc/exception.pmc
==============================================================================
--- branches/gsoc_nfg/src/pmc/exception.pmc	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/pmc/exception.pmc	Mon Jun  7 18:03:08 2010	(r47436)
@@ -689,13 +689,7 @@
             SET_ATTR_handler_iter(INTERP, SELF, value);
             break;
           case attr_thrower:
-            /* Ensure it's a ret cont, and extract the from_ctx.
-             * XXX TT #596 - when we have Context PMCs, just take and set that. */
-            if (!PMC_IS_NULL(value) && VTABLE_isa(INTERP, value, CONST_STRING(INTERP, "Continuation"))) {
-                PMC * const ctx = PMC_cont(value)->from_ctx;
-                if (!PMC_IS_NULL(ctx))
-                    SET_ATTR_thrower(INTERP, SELF, ctx);
-            }
+            SET_ATTR_thrower(INTERP, SELF, value);
             break;
           case attr_NONE:
             /* If unknown attribute name, throw an exception. */
@@ -801,10 +795,13 @@
             Parrot_pcc_invoke_method_from_c_args(INTERP, cont->to_ctx, CONST_STRING(INTERP, "backtrace"), "P->P", resume, &result);
         }
         else {
+            /* Hopefully we have a thrower set - our most epic fail fallback is
+             * to just assume the thrower is the current context. */
             PMC *cur_ctx;
-            /* No return continuation. Assuming we're being called  */
             GET_ATTR_thrower(INTERP, SELF, cur_ctx);
-            Parrot_pcc_invoke_method_from_c_args(INTERP, CURRENT_CONTEXT(INTERP), CONST_STRING(INTERP, "backtrace"), "->P", &result);
+            if (PMC_IS_NULL(cur_ctx))
+                cur_ctx = CURRENT_CONTEXT(INTERP);
+            Parrot_pcc_invoke_method_from_c_args(INTERP, cur_ctx, CONST_STRING(INTERP, "backtrace"), "->P", &result);
         }
 
         RETURN(PMC *result);

Modified: branches/gsoc_nfg/src/pmc/filehandle.pmc
==============================================================================
--- branches/gsoc_nfg/src/pmc/filehandle.pmc	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/pmc/filehandle.pmc	Mon Jun  7 18:03:08 2010	(r47436)
@@ -698,6 +698,69 @@
         RETURN(INTVAL -1);
     }
 
+/*
+
+=item C<METHOD tell()>
+
+Get the file position of the stream. 2 C<INTVAL>s are returned. The first is
+the position. The second is the position shifted down by 32 bits to handle
+overflows on 32-bit systems.
+
+=cut
+
+*/
+
+    METHOD tell() {
+        PIOOFF_T pos;
+        GET_ATTR_file_pos(INTERP, SELF, pos);
+        RETURN(INTVAL pos, INTVAL pos >> 32);
+    }
+
+/*
+
+=item C<METHOD seek(INTVAL whence, INTVAL offs, INTVAL offs_overflow)>
+
+Set the file position to an offset specified by C<offs> (and optionally
+C<offs_overflow>). C<whence> determines from where in the file the offset is
+taken.
+
+ Whence Value      Meaning
+ 0                 Seek from the beginning of the file
+ 1                 Seek from the current position
+ 2                 Seek from the end of the file
+
+C<offs_overflow> is optional and is used to handle offsets higher than 2Gb on
+32bit systems.
+
+=cut
+
+*/
+
+    METHOD seek(INTVAL whence, INTVAL offs, INTVAL offs_overflow :optional) {
+        const PIOOFF_T pio_offs = offs_overflow ?
+                                    Parrot_io_make_offset32(offs_overflow, offs) :
+                                    offs;
+        if (Parrot_io_seek(INTERP, SELF, pio_offs, whence))
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_PIO_ERROR, "seek failed");
+    }
+
+/*
+
+=item C<METHOD peek()>
+
+Returns the next byte from the stream, but does not remove it.
+
+=cut
+
+*/
+
+    METHOD peek() {
+        STRING *s = NULL;
+        if (Parrot_io_peek(INTERP, SELF, &s) < 0)
+            RETURN(STRING* STRINGNULL);
+        else
+            RETURN(STRING* s);
+    }
 
 /*
 

Modified: branches/gsoc_nfg/src/pmc/fixedstringarray.pmc
==============================================================================
--- branches/gsoc_nfg/src/pmc/fixedstringarray.pmc	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/pmc/fixedstringarray.pmc	Mon Jun  7 18:03:08 2010	(r47436)
@@ -579,7 +579,7 @@
             if (item1 == item2)
                 continue;
 
-            if (item1 == NULL ||  item2 == NULL)
+            if (STRING_IS_NULL(item1) ||  STRING_IS_NULL(item2))
                 return 0;
 
             if (!Parrot_str_equal(INTERP, item1, item2))

Modified: branches/gsoc_nfg/src/pmc/imageio.pmc
==============================================================================
--- branches/gsoc_nfg/src/pmc/imageio.pmc	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/pmc/imageio.pmc	Mon Jun  7 18:03:08 2010	(r47436)
@@ -423,7 +423,7 @@
     VTABLE void mark() {
         PObj * const buffer = (PObj *)(PARROT_IMAGEIO(SELF)->buffer);
         if (buffer)
-            Parrot_gc_mark_PObj_alive(INTERP, (PObj *)(PARROT_IMAGEIO(SELF)->buffer));
+            Parrot_gc_mark_PObj_alive(INTERP, buffer);
         Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->todo);
         Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->seen);
     }

Modified: branches/gsoc_nfg/src/pmc/orderedhash.pmc
==============================================================================
--- branches/gsoc_nfg/src/pmc/orderedhash.pmc	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/pmc/orderedhash.pmc	Mon Jun  7 18:03:08 2010	(r47436)
@@ -263,7 +263,7 @@
                 PARROT_ORDEREDHASH(SELF);
 
         if (attrs->hash)
-            Parrot_gc_mark_PObj_alive(INTERP, (PObj *)attrs->hash);
+            Parrot_gc_mark_PMC_alive(INTERP, attrs->hash);
 
         /* Don't mark C<first> and C<last>. They are in lookup hash anyway */
     }

Modified: branches/gsoc_nfg/src/pmc/resizablepmcarray.pmc
==============================================================================
--- branches/gsoc_nfg/src/pmc/resizablepmcarray.pmc	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/pmc/resizablepmcarray.pmc	Mon Jun  7 18:03:08 2010	(r47436)
@@ -11,7 +11,7 @@
 This class, ResizablePMCArray, implements an resizable array which stores PMCs.
 It puts things into Integer, Float, or String PMCs as appropriate.
 
-=head2 Functions
+=head2 Vtable Functions
 
 =over 4
 
@@ -25,6 +25,21 @@
 
 /* HEADERIZER HFILE: none */
 /* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+PARROT_DOES_NOT_RETURN
+static void throw_pop_empty(PARROT_INTERP)
+        __attribute__nonnull__(1);
+
+PARROT_DOES_NOT_RETURN
+static void throw_shift_empty(PARROT_INTERP)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_throw_pop_empty __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_throw_shift_empty __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
 pmclass ResizablePMCArray extends FixedPMCArray auto_attrs provides array {
@@ -134,8 +149,7 @@
         FLOATVAL  value;
 
         if (0 == size)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                    "ResizablePMCArray: Can't shift from an empty array!");
+            throw_shift_empty(INTERP);
 
         item           = PMC_array(SELF);
         data           = item[0];
@@ -156,8 +170,7 @@
         INTVAL    value;
 
         if (0 == size)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                    "ResizablePMCArray: Can't shift from an empty array!");
+            throw_shift_empty(INTERP);
 
         item           = PMC_array(SELF);
         data           = item[0];
@@ -176,8 +189,7 @@
         PMC   **item;
 
         if (0 == size)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                    "ResizablePMCArray: Can't shift from an empty array!");
+            throw_shift_empty(INTERP);
 
         item           = PMC_array(SELF);
         data           = item[0];
@@ -196,8 +208,7 @@
         STRING  *value;
 
         if (0 == size)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                    "ResizablePMCArray: Can't shift from an empty array!");
+            throw_shift_empty(INTERP);
 
         item           = PMC_array(SELF);
         data           = item[0];
@@ -435,8 +446,7 @@
         PMC     *data;
 
         if (0 == size)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                    "ResizablePMCArray: Can't pop from an empty array!");
+            throw_pop_empty(INTERP);
 
         data           = PMC_array(SELF)[--size];
         PMC_size(SELF) = size;
@@ -450,8 +460,7 @@
         PMC    *data;
 
         if (0 == size)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                    "ResizablePMCArray: Can't pop from an empty array!");
+            throw_pop_empty(INTERP);
 
         data           = PMC_array(SELF)[--size];
         PMC_size(SELF) = size;
@@ -465,8 +474,7 @@
         PMC   *data;
 
         if (0 == size)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                    "ResizablePMCArray: Can't pop from an empty array!");
+            throw_pop_empty(INTERP);
 
         data           = PMC_array(SELF)[--size];
         PMC_size(SELF) = size;
@@ -480,8 +488,7 @@
         PMC    *data;
 
         if (0 == size)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                    "ResizablePMCArray: Can't pop from an empty array!");
+            throw_pop_empty(INTERP);
 
         data           = PMC_array(SELF)[--size];
         PMC_size(SELF) = size;
@@ -604,43 +611,6 @@
 
 /*
 
-=item METHOD append(PMC *other)
-
-Append the other array to this array.
-
-=cut
-
-*/
-
-    METHOD append(PMC *other) {
-
-        const INTVAL n = VTABLE_elements(INTERP, SELF);
-        const INTVAL m = VTABLE_elements(INTERP, other);
-
-        if (!m)
-            RETURN(void);
-
-        /* pre-size it */
-        VTABLE_set_integer_native(INTERP, SELF, n + m);
-
-        if (other->vtable->base_type == SELF->vtable->base_type
-        ||  other->vtable->base_type == enum_class_FixedPMCArray) {
-            PMC ** const other_data = PMC_array(other);
-            PMC ** const this_data  = PMC_array(SELF);
-
-            /* libc is faster at copying data than a manual loop here */
-            memmove(this_data + n, other_data, m  * sizeof (PMC *));
-        }
-        else {
-            PMC ** const this_data = PMC_array(SELF);
-            INTVAL i;
-
-            for (i = 0; i < m; ++i)
-                this_data[n + i] = VTABLE_get_pmc_keyed_int(INTERP, other, i);
-        }
-    }
-/*
-
 =item C<STRING *get_repr()>
 
 Returns the Parrot string representation C<ResizablePMCArray>.
@@ -725,6 +695,50 @@
 
 /*
 
+=back
+
+=head2 Methdos
+
+=over 4
+
+=item METHOD append(PMC *other)
+
+Append the other array to this array.
+
+=cut
+
+*/
+
+    METHOD append(PMC *other) {
+
+        const INTVAL n = VTABLE_elements(INTERP, SELF);
+        const INTVAL m = VTABLE_elements(INTERP, other);
+
+        if (!m)
+            RETURN(void);
+
+        /* pre-size it */
+        VTABLE_set_integer_native(INTERP, SELF, n + m);
+
+        if (other->vtable->base_type == SELF->vtable->base_type
+        ||  other->vtable->base_type == enum_class_FixedPMCArray) {
+            PMC ** const other_data = PMC_array(other);
+            PMC ** const this_data  = PMC_array(SELF);
+
+            /* libc is faster at copying data than a manual loop here */
+            memmove(this_data + n, other_data, m  * sizeof (PMC *));
+        }
+        else {
+            PMC ** const this_data = PMC_array(SELF);
+            INTVAL i;
+
+            for (i = 0; i < m; ++i)
+                this_data[n + i] = VTABLE_get_pmc_keyed_int(INTERP, other, i);
+        }
+    }
+
+/*
+
 =item METHOD PMC* shift()
 
 =item METHOD PMC* pop()
@@ -772,6 +786,42 @@
 
 =back
 
+=head2 Auxiliar functions
+
+=over 4
+
+=item C<static void throw_shift_empty(PARROT_INTERP)>
+
+=item C<static void throw_pop_empty(PARROT_INTERP)>
+
+Throws with the appropiate message.
+
+=cut
+
+*/
+
+PARROT_DOES_NOT_RETURN
+static void
+throw_shift_empty(PARROT_INTERP)
+{
+    ASSERT_ARGS(throw_shift_empty)
+    Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_OUT_OF_BOUNDS,
+            "ResizablePMCArray: Can't shift from an empty array!");
+}
+
+PARROT_DOES_NOT_RETURN
+static void
+throw_pop_empty(PARROT_INTERP)
+{
+    ASSERT_ARGS(throw_pop_empty)
+    Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_OUT_OF_BOUNDS,
+            "ResizablePMCArray: Can't pop from an empty array!");
+}
+
+/*
+
+=back
+
 =head1 See also
 
 F<docs/pdds/pdd17_basic_types.pod>.

Modified: branches/gsoc_nfg/src/pmc/string.pmc
==============================================================================
--- branches/gsoc_nfg/src/pmc/string.pmc	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/pmc/string.pmc	Mon Jun  7 18:03:08 2010	(r47436)
@@ -406,7 +406,7 @@
         const INTVAL k = VTABLE_get_integer(INTERP, key);
 
         GET_ATTR_str_val(INTERP, SELF, str_val);
-        n = Parrot_str_byte_length(INTERP, str_val);
+        n = Parrot_str_length(INTERP, str_val);
 
         return (INTVAL)((k >= 0 && k <= n) || (k < 0 && -k <= n));
     }
@@ -470,7 +470,7 @@
 
     VTABLE void set_string_keyed_int(INTVAL pos, STRING * const value) {
         STRING      *str_val;
-        const INTVAL len = Parrot_str_byte_length(INTERP, value);
+        const INTVAL len = Parrot_str_length(INTERP, value);
         GET_ATTR_str_val(INTERP, SELF, str_val);
         str_val = Parrot_str_replace(INTERP, str_val, pos, len, value);
         SET_ATTR_str_val(INTERP, SELF, str_val);
@@ -506,8 +506,8 @@
 */
 
     METHOD replace(STRING *orig, STRING *_new) {
-        const INTVAL   old_len = Parrot_str_byte_length(INTERP, orig);
-        const INTVAL   new_len = Parrot_str_byte_length(INTERP, _new);
+        const INTVAL   old_len = Parrot_str_length(INTERP, orig);
+        const INTVAL   new_len = Parrot_str_length(INTERP, _new);
         STRING       * s       = VTABLE_get_string(INTERP, SELF);
         INTVAL         i       = 0;
 
@@ -607,7 +607,7 @@
     VTABLE INTVAL elements() {
         STRING *str_val;
         GET_ATTR_str_val(INTERP, SELF, str_val);
-        return Parrot_str_byte_length(INTERP, str_val);
+        return Parrot_str_length(INTERP, str_val);
     }
 
     VTABLE PMC *get_iter() {
@@ -691,7 +691,7 @@
         INTVAL         i;
         STRING        *dest;
 
-        const INTVAL len = Parrot_str_byte_length(INTERP, src);
+        const INTVAL len = Parrot_str_length(INTERP, src);
 
         if (!len)
             RETURN(STRING src);
@@ -729,7 +729,7 @@
     METHOD is_integer(STRING *src) {
         INTVAL         i;
         unsigned char *p;
-        const INTVAL   len = Parrot_str_byte_length(INTERP, src);
+        const INTVAL   len = Parrot_str_length(INTERP, src);
 
         if (!len)
             RETURN(INTVAL 0);
@@ -787,7 +787,7 @@
         if (start < 0)
             RETURN(INTVAL res);
 
-        len = Parrot_str_byte_length(INTERP, src);
+        len = Parrot_str_length(INTERP, src);
 
         if (!len)
             RETURN(INTVAL res);
@@ -795,7 +795,7 @@
         if (start >= (INTVAL)len)
             RETURN(INTVAL res);
 
-        if (!Parrot_str_byte_length(INTERP, substring))
+        if (!Parrot_str_length(INTERP, substring))
             RETURN(INTVAL res);
 
         res = CHARSET_RINDEX(INTERP, src, substring, (UINTVAL)start);

Modified: branches/gsoc_nfg/src/pmc/stringbuilder.pmc
==============================================================================
--- branches/gsoc_nfg/src/pmc/stringbuilder.pmc	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/pmc/stringbuilder.pmc	Mon Jun  7 18:03:08 2010	(r47436)
@@ -145,18 +145,20 @@
         /* TODO Ask chromatic why in Parrot_str_join he ignored charset */
         cs = Parrot_str_rep_compatible(interp, buffer, s, &enc);
         if (!cs) {
-            cs = Parrot_unicode_charset_ptr;
-            enc = (buffer->encoding == Parrot_utf16_encoding_ptr
-               ||  s->encoding == Parrot_utf16_encoding_ptr
-               ||  buffer->encoding == Parrot_ucs2_encoding_ptr
-               ||  s->encoding == Parrot_ucs2_encoding_ptr)
-                ? Parrot_utf16_encoding_ptr
-                : Parrot_utf8_encoding_ptr;
 
-            buffer = Parrot_unicode_charset_ptr->to_charset(interp, buffer);
-            s      = Parrot_unicode_charset_ptr->to_charset(interp, s);
+            /* Create new temporary string */
+            STRING * const new_buffer = Parrot_unicode_charset_ptr->to_charset(interp, buffer);
+            mem_gc_free(INTERP, buffer->_bufstart);
+            STRUCT_COPY(buffer, new_buffer);
+            buffer->flags     = PObj_is_string_FLAG | PObj_live_FLAG | PObj_external_FLAG;
+
+            buffer->_bufstart = buffer->strstart = mem_gc_allocate_n_typed(INTERP,
+                                                    new_buffer->_buflen, char);
+            mem_sys_memcopy(buffer->_bufstart, new_buffer->_bufstart, new_buffer->_buflen);
 
             SET_ATTR_buffer(INTERP, SELF, buffer);
+
+            s      = Parrot_unicode_charset_ptr->to_charset(interp, s);
         }
 
         /* Calculate (possibly new) total size */
@@ -164,8 +166,9 @@
 
         /* Reallocate if necessary */
         if (total_size > Buffer_buflen(buffer)) {
+            /* Parrot_unicode_charset_ptr can produce NULL buffer */
             buffer->_bufstart = buffer->strstart = mem_gc_realloc_n_typed(INTERP,
-                    buffer->_bufstart, total_size, char);
+                buffer->_bufstart, total_size, char);
             buffer->_buflen   = total_size;
         }
 

Modified: branches/gsoc_nfg/src/string/api.c
==============================================================================
--- branches/gsoc_nfg/src/string/api.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/string/api.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -2091,8 +2091,6 @@
         else if (Parrot_str_equal(interp, t, CONST_STRING(interp, "-INF"))
              ||  Parrot_str_equal(interp, t, CONST_STRING(interp, "-INFINITY")))
             return PARROT_FLOATVAL_INF_NEGATIVE;
-        else
-            return 0.0;
     }
 
 /* powl() could be used here, but it is an optional POSIX extension that

Modified: branches/gsoc_nfg/src/utils.c
==============================================================================
--- branches/gsoc_nfg/src/utils.c	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/src/utils.c	Mon Jun  7 18:03:08 2010	(r47436)
@@ -540,7 +540,7 @@
 
 /*
 
-=item C<PMC* tm_to_array(PARROT_INTERP, const struct tm *tm)>
+=item C<PMC* Parrot_tm_to_array(PARROT_INTERP, const struct tm *tm)>
 
 Helper to convert a B<struct tm *> to an Array
 
@@ -548,12 +548,13 @@
 
 */
 
+PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 PMC*
-tm_to_array(PARROT_INTERP, ARGIN(const struct tm *tm))
+Parrot_tm_to_array(PARROT_INTERP, ARGIN(const struct tm *tm))
 {
-    ASSERT_ARGS(tm_to_array)
+    ASSERT_ARGS(Parrot_tm_to_array)
 
     PMC * const Array = Parrot_pmc_new(interp,
         Parrot_get_ctx_HLL_type(interp, enum_class_FixedIntegerArray));

Modified: branches/gsoc_nfg/t/codingstd/c_function_docs.t
==============================================================================
--- branches/gsoc_nfg/t/codingstd/c_function_docs.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/codingstd/c_function_docs.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -91,16 +91,10 @@
 }
 
 __DATA__
-compilers/imcc/parser_util.c
-compilers/imcc/pbc.c
-compilers/imcc/pcc.c
-compilers/imcc/reg_alloc.c
-compilers/imcc/symreg.c
 compilers/pirc/src/pircapi.c
 config/gen/platform/ansi/dl.c
 config/gen/platform/ansi/exec.c
 config/gen/platform/ansi/time.c
-config/gen/platform/darwin/dl.c
 config/gen/platform/darwin/memalign.c
 config/gen/platform/generic/dl.c
 config/gen/platform/generic/exec.c

Modified: branches/gsoc_nfg/t/compilers/imcc/imcpasm/opt1.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/imcc/imcpasm/opt1.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/imcc/imcpasm/opt1.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -5,7 +5,7 @@
 use strict;
 use warnings;
 use lib qw( . lib ../lib ../../lib );
-use Parrot::Test tests => 78;
+use Parrot::Test tests => 77;
 use Parrot::Config;
 
 my $output;
@@ -312,22 +312,6 @@
 OUT
 
 ##############################
-pir_2_pasm_is( <<'CODE', <<'OUT', "constant cmod" );
-.sub _main
-   cmod $I0, 33, 10
-   cmod $N0, 33.0, 10.0
-   end
-.end
-CODE
-# IMCC does produce b0rken PASM files
-# see http://guest@rt.perl.org/rt3/Ticket/Display.html?id=32392
-_main:
-   set I0, 3
-   set N0, 3
-   end
-OUT
-
-##############################
 pir_2_pasm_is( <<'CODE', <<'OUT', "constant mod" );
 .sub _main
    mod $I0, 33, 10

Modified: branches/gsoc_nfg/t/compilers/imcc/syn/clash.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/imcc/syn/clash.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/imcc/syn/clash.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -8,7 +8,7 @@
 
 use Test::More;
 use Parrot::Config;
-use Parrot::Test tests => 17;
+use Parrot::Test tests => 15;
 
 pir_output_is( <<'CODE', <<'OUT', "if/unless" );
 .sub test :main
@@ -210,38 +210,6 @@
 ok
 OUTPUT
 
-pir_output_is( <<'CODE', <<'OUTPUT', "eq_num => eq" );
-.sub test :main
-    .local int i
-    .local int j
-    i = 1
-    j = 1
-    eq_num i, j, ok1
-    print "not "
-ok1:
-    print "ok 1\n"
-    end
-.end
-CODE
-ok 1
-OUTPUT
-
-pir_output_is( <<'CODE', <<'OUTPUT', "eq_num => eq mixed => eq_n_n" );
-.sub test :main
-    .local int i
-    .local num j
-    i = 1
-    j = 1.0
-    eq_num j, i, ok1
-    print "not "
-ok1:
-    print "ok 1\n"
-    end
-.end
-CODE
-ok 1
-OUTPUT
-
 pir_error_output_like( <<'CODE', <<'OUT', "undefined ident" );
 .sub test :main
     print no_such

Modified: branches/gsoc_nfg/t/compilers/imcc/syn/const.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/imcc/syn/const.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/imcc/syn/const.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -198,7 +198,7 @@
     $S0 = ""
     $I0 = 0
 LOOP:
-    $S0 = concat <<"end"
+    concat $S0, <<"end"
 ending
 end
     inc $I0

Modified: branches/gsoc_nfg/t/compilers/imcc/syn/errors.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/imcc/syn/errors.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/imcc/syn/errors.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -13,7 +13,7 @@
 plan skip_all => 'No reason to compile invalid PBC here'
     if $ENV{TEST_PROG_ARGS} && $ENV{TEST_PROG_ARGS} =~ m/--run-pbc/;
 
-plan tests => 6;
+plan tests => 7;
 
 ## tests for imcc error messages
 
@@ -87,6 +87,15 @@
 /^error:imcc:syntax error, duplicated IDENTIFIER/
 END_EXPECTED
 
+pir_error_output_like( <<'END_PIR', <<'END_EXPECTED', 'warn about failing .loadlib (TT #437)' );
+.loadlib 'nosuch'
+.sub main :main
+    say "WTF"
+.end
+END_PIR
+/^error:imcc:loadlib.*nosuch/
+END_EXPECTED
+
 # Local Variables:
 #   mode: cperl
 #   cperl-indent-level: 4

Modified: branches/gsoc_nfg/t/compilers/imcc/syn/op.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/imcc/syn/op.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/imcc/syn/op.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -4,7 +4,7 @@
 
 .sub test :main
     .include 'test_more.pir'
-    plan(59)
+    plan(58)
 
     test_plus_equal()
     test_minus_equal()
@@ -21,7 +21,6 @@
     test_x_defined()
     test_x_clone()
     test_x_length()
-    test_x_sin()
     test_x_can()
     test_x_isa()
     test_x_add()
@@ -174,11 +173,6 @@
     is($I0, 0, 'x = length')
 .end
 
-.sub test_x_sin
-    $N0 = sin 0
-    is($N0, 0, 'x = sin')
-.end
-
 .sub test_x_can
     $P0 = new 'FileHandle'
     $I0 = can $P0, "puts"

Modified: branches/gsoc_nfg/t/compilers/imcc/syn/tail.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/imcc/syn/tail.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/imcc/syn/tail.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -15,6 +15,7 @@
 $ENV{TEST_PROG_ARGS} = '-Oc';
 
 pir_output_is( <<'CODE', <<'OUT', "tail call optimization, final position" );
+
 .sub _main :main
     $P1 = new 'Integer'
     $P1 = 20
@@ -55,7 +56,7 @@
     $I33 = defined function
     if $I33 goto doit
 bad_func:
-    printerr "_funcall:  Bad function.\n"
+    print "_funcall:  Bad function.\n"
     exit 0
 doit:
     set_args "0x20", argv
@@ -134,7 +135,7 @@
 doit:
     .tailcall function(argv :flat)
 bad_func:
-    printerr "_funcall:  Bad function.\n"
+    print "_funcall:  Bad function.\n"
     exit 0
 .end
 
@@ -207,7 +208,7 @@
     $I33 = defined function
     if $I33 goto doit
 bad_func:
-    printerr "_funcall:  Bad function.\n"
+    print "_funcall:  Bad function.\n"
     exit 0
 doit:
     .tailcall function(argv :flat)
@@ -283,7 +284,7 @@
         print " results]\n"
     .return ($P35 :flat)
 bad_func:
-    printerr "_funcall:  Bad function.\n"
+    print "_funcall:  Bad function.\n"
     exit 0
 .end
 

Modified: branches/gsoc_nfg/t/compilers/opsc/06-opsfile.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/opsc/06-opsfile.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/opsc/06-opsfile.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -20,9 +20,9 @@
 # 116 math
 # We can generate more than 1 Ops::Op per op due args expansion.
 say( "# Parsed " ~ + at ops);
-# There is more than 300 ops in this 2 files.
+# There is more than 200 ops in this 2 files.
 # Feel free to update number if you change them.
-ok(+ at ops == 306, "Ops parsed correctly");
+ok(+ at ops == 264, "Ops parsed correctly");
 say('# ' ~ + at ops);
 
 my $op := @ops[0];
@@ -32,7 +32,7 @@
 ok($op<code> == 0,      "... with code 0");
 
 $op := @ops[(+ at ops)-1];
-ok($op.name eq 'tanh',  "Last op is tanh");
+ok($op.name eq 'sqrt',  "Last op is tanh");
 say('# ' ~ $op.name);
 ok($op<code> > 84 + 116,    "... with non zero code");
 

Modified: branches/gsoc_nfg/t/compilers/opsc/07-emitter.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/opsc/07-emitter.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/opsc/07-emitter.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -42,12 +42,13 @@
 
 $fh.close();
 my $header := $fh.readall();
+#say($header);
 
 ok($header ~~ /define \s PARROT_OPLIB_CORE_OPS_H_GUARD/, 'Guard generated');
 ok($header ~~ /endif/, 'Close guard generated');
 ok($header ~~ /DO \s NOT \s EDIT \s THIS \s FILE/, 'Preamble generated');
 ok($header ~~ /Parrot_DynOp_core_ \d+ _ \d+ _ \d+/, '... and contains init_func');
-ok($header ~~ /Parrot_sysinfo_s_i/, 'We have proper names of ops functions');
+ok($header ~~ /Parrot_err_s_ic/, 'We have proper names of ops functions');
 
 # Testing C emitting.
 #$emitter.print_c_source_file();

Modified: branches/gsoc_nfg/t/compilers/opsc/common.pir
==============================================================================
--- branches/gsoc_nfg/t/compilers/opsc/common.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/opsc/common.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -6,6 +6,8 @@
 
 =cut
 
+.loadlib 'io_ops'
+
 .sub '_parse_buffer'
     .param string buffer
 

Modified: branches/gsoc_nfg/t/compilers/pct/past.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/pct/past.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/pct/past.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -7,7 +7,7 @@
 use warnings;
 use lib qw(t . lib ../lib ../../lib ../../../lib);
 
-use Parrot::Test tests => 10;
+use Parrot::Test tests => 11;
 
 foreach my $name (qw(Node Val Var Op Block Stmts)) {
     my $module = "'PAST';'$name'";
@@ -133,6 +133,36 @@
 }
 OUT
 
+pir_output_is( <<'CODE', <<'OUT', 'PAST::Val constant nodes' );
+.sub 'main' :main
+    load_bytecode 'PCT.pbc'
+
+    .local pmc block
+    $P0 = get_hll_global ['PAST'], 'Block'
+    block = $P0.'new'('name'=>'xyz', 'subid'=>'xyz')
+
+    .local pmc node
+    $P0 = get_hll_global ['PAST'], 'Val'
+    node = $P0.'new'('value'=> 'CONTROL_NEXT', 'returns'=>'!except_types')
+    block.'push'(node)
+
+    .local pmc compiler
+    compiler = get_hll_global ['PAST'], 'Compiler'
+    $S0 = compiler.'compile'(block, 'target'=>'pir')
+    say $S0
+.end
+CODE
+
+.namespace []
+.include "except_types.pasm"
+.sub "xyz"  :subid("xyz")
+.annotate 'line', 0
+    .return (.CONTROL_NEXT)
+.end
+
+
+OUT
+
 # Local Variables:
 #   mode: cperl
 #   cperl-indent-level: 4

Modified: branches/gsoc_nfg/t/compilers/pct/post.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/pct/post.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/pct/post.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -6,7 +6,7 @@
 use strict;
 use warnings;
 use lib qw(t . lib ../lib ../../lib ../../../lib);
-use Parrot::Test tests => 7;
+use Parrot::Test tests => 8;
 
 foreach my $name (qw(Op Ops Sub Label)) {
     my $module = "'POST';'$name'";
@@ -114,6 +114,35 @@
 
 OUT
 
+
+pir_output_is( <<'CODE', <<'OUT', 'Generate directives' );
+.sub _main
+    load_bytecode 'PCT.pbc'
+    load_bytecode 'dumper.pbc'
+    .local pmc node
+    node = new ['POST';'Sub']
+    node.'name'('foo')
+    node.'add_directive'('.include "cclass.pasm"')
+    node.'add_directive'('.include "exception_types.pasm"')
+
+    .local pmc compiler
+    compiler = new ['POST';'Compiler']
+    $S0 = compiler.'to_pir'(node)
+    say $S0
+    .return ()
+.end
+CODE
+
+.namespace []
+.include "cclass.pasm"
+.include "exception_types.pasm"
+.sub "foo"  :subid("post10")
+.end
+
+
+OUT
+
+
 # Local Variables:
 #   mode: cperl
 #   cperl-indent-level: 4

Modified: branches/gsoc_nfg/t/compilers/pge/p5regex/p5rx.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/pge/p5regex/p5rx.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/pge/p5regex/p5rx.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -55,6 +55,8 @@
 
 .const int TESTS = 960
 
+.loadlib 'io_ops'
+
 .sub main :main
     load_bytecode 'Test/Builder.pbc'
     load_bytecode 'PGE.pbc'

Modified: branches/gsoc_nfg/t/compilers/pge/perl6regex/01-regex.t
==============================================================================
--- branches/gsoc_nfg/t/compilers/pge/perl6regex/01-regex.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/compilers/pge/perl6regex/01-regex.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -54,6 +54,8 @@
 
 .const string TESTS = 'no_plan'
 
+.loadlib 'io_ops'
+
 .sub main :main
     load_bytecode 'Test/Builder.pbc'
     load_bytecode 'PGE.pbc'

Copied: branches/gsoc_nfg/t/dynoplibs/bit.t (from r47434, trunk/t/dynoplibs/bit.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/bit.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/bit.t)
@@ -0,0 +1,297 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/bit.t - Bitwise Dynops
+
+=head1 SYNOPSIS
+
+        % prove t/dynoplibs/bit.t
+
+=head1 DESCRIPTION
+
+Tests basic arithmetic on various combinations of Parrot integer and
+number types.
+
+=cut
+
+.loadlib 'bit_ops'
+
+.sub main :main
+    .include 'test_more.pir'
+
+    plan(56)
+
+    bnot_p_p_creates_destination()
+    bands_null_string()
+    bands_2()
+    bands_3()
+    bands_cow()
+    bors_null_string()
+    bors_2()
+    bors_3()
+    bors_cow()
+    bxors_null_string()
+    bxors_2()
+    bxors_3()
+    bxors_cow()
+    bnots_null_string()
+    bnots_2()
+    bnots_cow()
+    # END_OF_TESTS
+
+.end
+
+.sub 'bnot_p_p_creates_destination'
+    $P0 = box 3
+    $P1 = bnot $P0
+    is( $P1, -4, 'bnot_p_p_creates_destination')
+.end
+
+.sub bands_null_string
+    null $S1
+    set $S2, "abc"
+    $S1 = bands $S1, $S2
+    null $S3
+    is( $S1, $S3, 'ok1' )
+
+    set $S1, ""
+    $S1 = bands $S1, $S2
+    nok( $S1, 'ok2' )
+
+    null $S2
+    set $S1, "abc"
+    $S1 = bands $S1, $S2
+    null $S3
+    is( $S1, $S3, 'ok3' )
+
+    set $S2, ""
+    $S1 = bands $S1, $S2
+    nok( $S1, 'ok4' )
+.end
+
+.sub bands_2
+    set $S1, "abc"
+    set $S2, "EE"
+    $S1 = bands $S1, $S2
+    is( $S1, "A@", 'bands 2' )
+    is( $S2, "EE", 'bands 2' )
+.end
+
+.sub bands_3
+    set $S1, "abc"
+    set $S2, "EE"
+    bands $S0, $S1, $S2
+    is( $S0, "A@", 'bands 3' )
+    is( $S1, "abc", 'bands 3' )
+    is( $S2, "EE", 'bands 3' )
+.end
+
+.sub bands_cow
+    set $S1, "foo"
+    substr $S2, $S1, 0, 3
+    $S1 = bands $S1, "bar"
+    is( $S2, "foo", 'bands COW' )
+.end
+
+.sub bors_null_string
+    null $S1
+    null $S2
+    $S1 = bors $S1, $S2
+    null $S3
+    is( $S1, $S3, 'bors NULL string' )
+
+    null $S1
+    set $S2, ""
+    $S1 = bors $S1, $S2
+    null $S3
+    is( $S1, $S3, 'bors NULL string' )
+
+    $S2 = bors $S2, $S1
+    is( $S2, $S3, 'bors NULL string' )
+
+    null $S1
+    set $S2, "def"
+    $S1 = bors $S1, $S2
+    is( $S1, "def", 'bors NULL string' )
+
+    null $S2
+    $S1 = bors $S1, $S2
+    is( $S1, "def", 'bors NULL string' )
+
+    null $S1
+    null $S2
+    bors $S3, $S1, $S2
+    null $S4
+    is( $S3, $S4, 'bors NULL string' )
+
+    set $S1, ""
+    bors $S3, $S1, $S2
+    is( $S3, $S4, 'bors NULL string' )
+
+    bors $S3, $S2, $S1
+    is( $S3, $S4, 'bors NULL string' )
+
+    set $S1, "def"
+    bors $S3, $S1, $S2
+    is( $S3, "def", 'bors NULL string' )
+
+    bors $S3, $S2, $S1
+    is( $S3, "def", 'bors NULL string' )
+.end
+
+.sub bors_2
+    set $S1, "abc"
+    set $S2, "EE"
+    $S1 = bors $S1, $S2
+    is( $S1, "egc", 'bors 2' )
+    is( $S2, "EE", 'bors 2' )
+.end
+
+.sub bors_3
+    set $S1, "abc"
+    set $S2, "EE"
+    bors $S0, $S1, $S2
+    is( $S0, "egc", 'bors 3' )
+    is( $S1, "abc", 'bors 3' )
+    is( $S2, "EE", 'bors 3' )
+.end
+
+.sub bors_cow
+    set $S1, "foo"
+    substr $S2, $S1, 0, 3
+    $S1 = bors $S1, "bar"
+    is( $S2, "foo", 'bors COW' )
+.end
+
+.sub bxors_null_string
+    null $S1
+    null $S2
+    $S1 = bxors $S1, $S2
+    null $S3
+    is( $S1, $S3, 'bxors NULL string' )
+
+    null $S1
+    set $S2, ""
+    $S1 = bxors $S1, $S2
+    null $S3
+    is( $S1, $S3, 'bxors NULL string' )
+
+    $S2 = bxors $S2, $S1
+    is( $S2, $S3, 'bxors NULL string' )
+
+    null $S1
+    set $S2, "abc"
+    $S1 = bxors $S1, $S2
+    is( $S1, "abc", 'bxors NULL string' )
+
+    null $S2
+    $S1 = bxors $S1, $S2
+    is( $S1, "abc", 'bxors NULL string' )
+
+    null $S1
+    null $S2
+    bxors $S3, $S1, $S2
+    null $S4
+    is( $S3, $S4, 'bxors NULL string' )
+
+    set $S1, ""
+    bxors $S3, $S1, $S2
+    is( $S3, $S4, 'bxors NULL string' )
+
+    bxors $S3, $S2, $S1
+    is( $S3, $S4, 'bxors NULL string' )
+
+    set $S1, "abc"
+    bxors $S3, $S1, $S2
+    is( $S3, "abc", 'bxors NULL string' )
+
+    bxors $S3, $S2, $S1
+    is( $S3, "abc", 'bxors NULL string' )
+.end
+
+.sub bxors_2
+    set $S1, "a2c"
+    set $S2, "Dw"
+    $S1 = bxors $S1, $S2
+    is( $S1, "%Ec", 'bxors 2' )
+    is( $S2, "Dw", 'bxors 2' )
+
+    set $S1, "abc"
+    set $S2, "   X"
+    $S1 = bxors $S1, $S2
+    is( $S1, "ABCX", 'bxors 2' )
+    is( $S2, "   X", 'bxors 2' )
+.end
+
+.sub bxors_3
+    set $S1, "a2c"
+    set $S2, "Dw"
+    bxors $S0, $S1, $S2
+    is( $S0, "%Ec", 'bxors 3' )
+    is( $S1, "a2c", 'bxors 3' )
+    is( $S2, "Dw", 'bxors 3' )
+
+    set $S1, "abc"
+    set $S2, "   Y"
+    bxors $S0, $S1, $S2
+    is( $S0, "ABCY", 'bxors 3' )
+    is( $S1, "abc", 'bxors 3' )
+    is( $S2, "   Y", 'bxors 3' )
+.end
+
+.sub bxors_cow
+    set $S1, "foo"
+    substr $S2, $S1, 0, 3
+    $S1 = bxors $S1, "bar"
+    is( $S2, "foo", 'bxors COW' )
+.end
+
+.sub bnots_null_string
+    null $S1
+    null $S2
+    bnots $S1, $S2
+    null $S3
+    is( $S1, $S3, 'bnots NULL string' )
+
+    null $S1
+    set $S2, ""
+    bnots $S1, $S2
+    null $S3
+    is( $S1, $S3, 'bnots NULL string' )
+
+    bnots $S2, $S1
+    is( $S2, $S3, 'bnots NULL string' )
+.end
+
+# This was the previous test used for t/native_pbc/string.t
+.sub bnots_2
+    skip( 4, "No unicode yet" )
+    # getstdout $P0
+    # push $P0, "utf8"
+    # set $S1, "a2c"
+    # bnots $S2, $S1
+    # is( $S1, "a2c", 'bnots 2' )
+    # is( $S2, "\xC2\x9E\xC3\x8D\xC2\x9C", 'bnots 2' )
+    #
+    # bnots $S1, $S1
+    # is( $S1, "\xC2\x9E\xC3\x8D\xC2\x9C", 'bnots 2' )
+    #
+    # bnots $S1, $S1
+    # is( $S1, "a2c", 'bnots 2' )
+.end
+
+.sub bnots_cow
+    set $S1, "foo"
+    substr $S2, $S1, 0, 3
+    bnots $S1, $S1
+    is( $S2, "foo", 'bnots COW' )
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/gsoc_nfg/t/dynoplibs/debug.t (from r47434, trunk/t/dynoplibs/debug.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/debug.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/debug.t)
@@ -0,0 +1,202 @@
+#!perl
+# Copyright (C) 2001-2007, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+use Test::More;
+use Parrot::Test tests => 8;
+
+=head1 NAME
+
+t/op/debuginfo.t - Debugging Info
+
+=head1 SYNOPSIS
+
+        % prove t/op/debuginfo.t
+
+=head1 DESCRIPTION
+
+Tests the various set and get operations for line, package and file info,
+as well as backtrace tests.
+
+=cut
+
+$ENV{TEST_PROG_ARGS} ||= '';
+my $nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
+    ? "\\(unknown file\\)\n-1" : "debug_\\d+\\.pasm\n\\d";
+
+#SKIP: {
+#skip "disabled on fast-core",1 if $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/;
+
+pasm_output_like( <<'CODE', <<"OUTPUT", "getline, getfile" );
+.loadlib 'debug_ops'
+.pcc_sub main:
+    getfile S0
+    getline I0
+    say S0
+    say I0
+    end
+CODE
+/$nolineno/
+OUTPUT
+
+pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - Null PMC access" );
+.sub main
+    print "ok 1\n"
+    a()
+    print "not ok 10\n"
+.end
+.sub a
+    print "ok 2\n"
+    b()
+    print "not ok 9\n"
+.end
+.sub b
+    print "ok 3\n"
+    c()
+    print "not ok 8\n"
+.end
+.sub c
+    print "ok 4\n"
+    d()
+    print "not ok 7\n"
+.end
+.sub d
+    print "ok 5\n"
+    $P0 = null
+    $P0()
+    print "not ok 6\n"
+.end
+CODE
+/^ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+Null PMC access in invoke\(\)
+current instr\.: 'd' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'c' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'b' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'a' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
+OUTPUT
+
+pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - method not found" );
+.namespace ["Test1"]
+.sub main
+    print "ok 1\n"
+    foo()
+    print "not ok 5\n"
+.end
+.sub foo
+    print "ok 2\n"
+    $P0 = new 'Integer'
+    print "ok 3\n"
+    $P0."nosuchmethod"()
+    print "not ok 4\n"
+.end
+CODE
+/^ok 1
+ok 2
+ok 3
+Method 'nosuchmethod' not found for invocant of class 'Integer'
+current instr.: 'parrot;Test1;foo' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'parrot;Test1;main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
+OUTPUT
+
+pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - fetch of unknown lexical" );
+.namespace ["Test2"]
+.sub main
+    print "ok 1\n"
+    foo()
+    print "not ok 3\n"
+.end
+.sub foo :lex
+    print "ok 2\n"
+    find_lex $P0, "nosuchlex"
+    print "not ok 3\n"
+.end
+CODE
+/^ok 1
+ok 2
+Lexical 'nosuchlex' not found
+current instr.: 'parrot;Test2;foo' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'parrot;Test2;main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
+OUTPUT
+
+pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - recursion 1" );
+.sub main
+    main()
+.end
+CODE
+/^maximum recursion depth exceeded
+current instr\.: 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)
+\.\.\. call repeated \d+ times/
+OUTPUT
+
+pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - recursion 2" );
+.sub main
+    rec(91)
+.end
+.sub rec
+    .param int i
+    if i == 0 goto END
+    dec i
+    rec(i)
+    .return()
+END:
+    $P0 = null
+    $P0()
+.end
+CODE
+/^Null PMC access in invoke\(\)
+current instr\.: 'rec' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'rec' pc (\d+|-1) \(.*?:(\d+|-1)\)
+\.\.\. call repeated 90 times
+called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
+OUTPUT
+
+$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
+    ? '\(\(unknown file\):-1\)' : '\(xyz.pir:126\)';
+
+pir_error_output_like( <<'CODE', <<"OUTPUT", "setfile and setline" );
+.sub main :main
+    setfile "xyz.pir"
+    setline 123
+    $S0 = 'hello'
+    $I0 = 456
+    'no_such_function'($S0, $I0)
+.end
+CODE
+/$nolineno/
+OUTPUT
+
+$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
+    ? '\(\(unknown file\):-1\)' : '\(foo.p6:128\)';
+pir_error_output_like( <<'CODE', <<"OUTPUT", "setfile and setline" );
+.sub main :main
+    setfile "foo.p6"
+    setline 123
+    $P0 = new 'Integer'
+    assign $P0, 9876
+    set_global '$a', $P0
+
+    setline 124
+    $P0 = get_global '$a'
+    $P1 = clone $P0
+    add $P1, 1
+    'nsf'($P1)
+.end
+CODE
+/$nolineno/
+OUTPUT
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Copied: branches/gsoc_nfg/t/dynoplibs/io.t (from r47434, trunk/t/dynoplibs/io.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/io.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/io.t)
@@ -0,0 +1,198 @@
+#!./parrot
+# Copyright (C) 2008, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/op/io.t - Testing io opcodes
+
+=head1 SYNOPSIS
+
+    % prove t/op/io.t
+
+=head1 DESCRIPTION
+
+Tests various io opcodes.
+
+=cut
+
+.const int TESTS = 5
+
+.loadlib 'io_ops'
+
+.sub 'main' :main
+    .include 'test_more.pir'
+
+    plan(TESTS)
+
+    open_delegates_to_filehandle_pmc()
+    open_null_filename()
+    open_null_mode()
+    open_pipe_for_reading()
+    getfd_fdopen()
+    open_pipe_for_writing() # must be last (doesn't use test_more)
+.end
+
+.sub open_delegates_to_filehandle_pmc
+    load_bytecode 'P6object.pbc'
+
+    .local pmc p6meta, interp, classes, classid
+    p6meta = get_root_global ["parrot"], "P6metaclass"
+    p6meta.'new_class'('Testing')
+
+    interp = getinterp
+    classes = interp[0]
+    classid = classes['Testing']
+    $I0 = classes['FileHandle']
+    set classes['FileHandle'], classid
+
+    $P1 = open '/foo'
+    is($P1,42,'open opcode delegates to the open method on the FileHandle PMC')
+
+    # replace the original, so we don't break other tests
+    set classes['FileHandle'], $I0
+
+.end
+
+.sub 'open_null_filename'
+    push_eh open_null_filename_failed
+    null $S0
+    $P0 = open $S0, 'r'
+    nok(1, 'open with null filename')
+    .return ()
+
+  open_null_filename_failed:
+    ok(1, 'open with null filename')
+.end
+
+.sub 'open_null_mode'
+    push_eh open_null_mode_failed
+    null $S0
+    $P0 = open 'some_name', $S0
+    nok(1, 'open with null mode')
+    .return ()
+
+  open_null_mode_failed:
+    ok(1, 'open with null mode')
+.end
+
+.loadlib 'sys_ops'
+.sub 'tt661_todo_test' :anon
+    # As of r41963, these tests need to be todo'ed at least on Win32. Add new
+    # platforms known to fail.
+    .include 'sysinfo.pasm'
+    $S0 = sysinfo .SYSINFO_PARROT_OS
+    if $S0 == 'MSWin32' goto tt661_todo
+
+    .return (0)
+
+  tt661_todo:
+    .return (1)
+.end
+
+.include 'iglobals.pasm'
+
+.sub 'open_pipe_for_reading'
+    .local pmc interp
+    interp = getinterp
+
+    .local pmc conf
+    conf = interp[.IGLOBALS_CONFIG_HASH]
+
+    .local string command
+    command = conf['build_dir']
+
+    .local string aux
+    aux = conf['slash']
+    command .= aux
+    aux = conf['test_prog']
+    command .= aux
+    aux = conf['exe']
+    command .= aux
+    command .= ' -V'
+
+    .local pmc pipe
+    pipe = open command, 'rp'
+    unless pipe goto open_pipe_for_reading_failed
+    .local string line
+    line = readline pipe
+    line = substr line, 0, 14
+    is('This is Parrot', line, 'open pipe for reading')
+    .return ()
+
+  open_pipe_for_reading_failed:
+    nok(1, 'open pipe for reading')
+    .return ()
+.end
+
+.sub 'open_pipe_for_writing'
+    $I0 = tt661_todo_test()
+    if $I0 goto open_pipe_for_writing_todoed
+    .local pmc interp
+    interp = getinterp
+
+    .local pmc conf
+    conf = interp[.IGLOBALS_CONFIG_HASH]
+
+    .local string command
+    command = conf['build_dir']
+
+    .local string aux
+    aux = conf['slash']
+    command .= aux
+    .local string filename
+    filename .= command
+    filename .= 'examples/pasm/cat.pasm'
+    aux = conf['test_prog']
+    command .= aux
+    aux = conf['exe']
+    command .= aux
+    command .= ' '
+    command .= filename
+
+    .local pmc pipe
+    pipe = open command, 'wp'
+    unless pipe goto open_pipe_for_writing_failed
+
+    pipe.'puts'("ok 5 - open pipe for writing\n")
+    close pipe
+    .return ()
+
+  open_pipe_for_writing_failed:
+    nok(1, 'open pipe for writing')
+    .return ()
+
+  open_pipe_for_writing_todoed:
+    todo(0, 'Unimplemented in this platform, TT #661')
+
+.end
+
+# TT #1178
+.sub 'getfd_fdopen'
+    getstdout $P0
+    $I0 = $P0.'get_fd'()
+    fdopen $P1, $I0, 'w'
+    $I0 = defined $P1
+    ok($I0, 'get_fd()/fdopen')
+    close $P1
+
+    getstdout $P0
+    $I0 = $P0.'get_fd'()
+    fdopen $P1, $I0, 'w'
+    $I0 = defined $P1
+    ok($I0, 'fdopen - no close')
+.end
+
+.namespace ["Testing"]
+
+.sub open :method
+    .param pmc args :slurpy
+    .return(42)
+.end
+
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/gsoc_nfg/t/dynoplibs/math.t
==============================================================================
--- branches/gsoc_nfg/t/dynoplibs/math.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/dynoplibs/math.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -16,11 +16,21 @@
 
 =cut
 
+.macro exception_is ( M )
+    .local pmc exception
+    .local string message
+    .get_results (exception)
+
+    message = exception['message']
+    is( message, .M, .M )
+.endm
+
 .loadlib 'math_ops'
+
 .sub main :main
     .include 'test_more.pir'
     .include 'fp_equality.pasm'
-    plan(20)
+    plan(34)
     ok(1, "load math_ops")
     rand $I0
     test_2_arg_int()
@@ -32,6 +42,15 @@
     test_local_nums()
     test_local_nums_2_arg()
     test_local_ints()
+    test_cmod_n()
+    test_exception_cmod_n_n_n_by_zero()
+    test_exception_cmod_n_nc_n_by_zero()
+    test_exception_cmod_n_n_nc_by_zero()
+    test_cmod()
+    test_cmod_i_i_i_by_zero()
+    test_cmod_i_ic_i_by_zero()
+    test_cmod_i_i_ic_by_zero()
+    test_cmod_float_integer_pmc_nan()
 .end
 
 .sub test_2_arg_int
@@ -178,6 +197,114 @@
 finish:
 .end
 
+.sub test_cmod_n
+    set     $N0, 5.000
+    set     $N1, 3.000
+    cmod    $N2, $N0, $N1
+    is( $N2, "2", 'cmod_n' )
+.end
+
+.sub test_exception_cmod_n_n_n_by_zero
+    push_eh handler
+    set $N0, 0
+    set $N1, 10
+    cmod $N2, $N1, $N0
+  handler:
+    .exception_is( 'Divide by zero' )
+.end
+
+.sub test_exception_cmod_n_nc_n_by_zero
+    push_eh handler
+    set $N0, 0
+    cmod $N2, 10, $N0
+  handler:
+    .exception_is( 'Divide by zero' )
+.end
+
+.sub test_exception_cmod_n_n_nc_by_zero
+    push_eh handler
+    set $N1, 10
+    cmod $N2, $N1, 0
+  handler:
+    .exception_is( 'Divide by zero' )
+.end
+
+.sub 'test_cmod'
+    $I0 = 5
+    $I1 = 3
+    $I2 = cmod $I0, $I1
+    is($I2, 2, 'cmod_i_i_i')
+    is($I0, 5, 'cmod_i_i_i - dividend unchanged')
+    is($I1, 3, 'cmod_i_i_i - divisor unchanged')
+
+    $I0 = 12
+
+    $I1 = cmod $I0, 10
+    is($I1, 2, 'cmod_i_i_ic')
+
+    $I1 = cmod 14, $I0
+    is($I1, 2, 'cmod_i_ic_i')
+
+    $I1 = cmod 13, 11
+    is($I1, 2, 'cmod_i_ic_ic')
+.end
+
+.sub 'test_cmod_i_i_i_by_zero'
+    $I0 = 0
+    $I1 = 10
+    push_eh test_cmod_i_i_i_by_zero_catch
+    $I2 = cmod $I1, $I0
+    pop_eh
+    $I3 = 0
+    goto test_cmod_i_i_i_by_zero_end
+
+  test_cmod_i_i_i_by_zero_catch:
+    $I3 = 1
+
+  test_cmod_i_i_i_by_zero_end:
+    ok($I3, 'cmod_i_i_i by zero')
+.end
+
+.sub 'test_cmod_i_ic_i_by_zero'
+    $I0 = 0
+    push_eh test_cmod_i_ic_i_by_zero_catch
+    $I2 = cmod 10, $I0
+    pop_eh
+    $I3 = 0
+    goto test_cmod_i_ic_i_by_zero_end
+
+  test_cmod_i_ic_i_by_zero_catch:
+    $I3 = 1
+
+  test_cmod_i_ic_i_by_zero_end:
+    ok($I3, 'cmod_i_ic_i by zero')
+.end
+
+.sub 'test_cmod_i_i_ic_by_zero'
+    $I1 = 10
+    push_eh test_cmod_i_i_ic_by_zero_catch
+    $I2 = cmod $I1, 0
+    pop_eh
+    $I3 = 0
+    goto test_cmod_i_i_ic_by_zero_end
+
+  test_cmod_i_i_ic_by_zero_catch:
+    $I3 = 1
+
+  test_cmod_i_i_ic_by_zero_end:
+    ok($I3, 'cmod_i_i_ic by zero')
+.end
+
+.sub test_cmod_float_integer_pmc_nan
+    $P1 = new 'Float'
+    $P2 = new 'Integer'
+    $P2 = 1
+    $N0 = 'NaN'
+    cmod $P1, $P2, $N0
+    #is($P1, 'NaN', 'cmod with Float and Integer PMCs and NaN')
+    todo(0, 'cmod with Float and Integer PMCs and NaN', 'cmod does not play nicely with PMCs and NaN')
+.end
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/gsoc_nfg/t/dynoplibs/obscure.t
==============================================================================
--- branches/gsoc_nfg/t/dynoplibs/obscure.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/dynoplibs/obscure.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -17,6 +17,8 @@
 =cut
 
 .loadlib 'obscure_ops'
+.loadlib 'trans_ops'    # needed for atan
+
 .sub main :main
     .include 'fp_equality.pasm'
     .include 'test_more.pir'

Copied: branches/gsoc_nfg/t/dynoplibs/pmc_pow.t (from r47434, trunk/t/dynoplibs/pmc_pow.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/pmc_pow.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/pmc_pow.t)
@@ -0,0 +1,84 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/pmc_pow.t - Test C<pow> on PMCs
+
+=head1 SYNOPSIS
+
+    % prove t/dynoplibs/pmc_pew.t
+
+=head1 DESCRIPTION
+
+Test handling 3-arg C<pow> on PMCs.
+
+=cut
+
+.loadlib 'trans_ops'
+
+.sub main :main
+    .include 'test_more.pir'
+    .include 'iglobals.pasm'
+
+    plan (4)
+
+    # Don't check BigInt or BigNum without gmp
+    .local pmc interp     # a handle to our interpreter object.
+    interp = getinterp
+    .local pmc config
+    config = interp[.IGLOBALS_CONFIG_HASH]
+    .local string gmp
+    gmp = config['gmp']
+
+    test_pow('Integer')
+    test_pow('Float')
+
+    if gmp goto do_big_ones
+        skip( 2, "will not test BigInt or BigNum without gmp" )
+        goto end
+
+  do_big_ones:
+    test_pow('BigInt')
+    test_pow('BigNum')
+
+  end:
+.end
+
+.sub test_pow
+    .param pmc type
+
+    $P0 = new type
+    $P0 = 40
+    $P1 = new type
+    $P1 = 2
+    $P2 = new type
+    $P2 = 115200
+
+    $P99 = $P2
+
+    $S0 = "original dest is untouched in pow for "
+    $S1 = type
+    concat $S0, $S1
+
+    # ignore exceptions
+    push_eh done
+    pow $P2, $P0, $P1
+
+    $I0 = cmp $P99, 115200
+
+    is( $I0, 0, $S0 )
+    goto end
+
+  done:
+    ok(1, 'ignoring exceptions')
+  end:
+.end
+
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/gsoc_nfg/t/dynoplibs/string_pmc_bitwise.t (from r47434, trunk/t/dynoplibs/string_pmc_bitwise.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/string_pmc_bitwise.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/string_pmc_bitwise.t)
@@ -0,0 +1,304 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/string_pmc_bitwise.t - Bitwise dynops on String PMC
+
+=head1 SYNOPSIS
+
+    % prove t/dynoplibs/string-pmc_bitwise.t
+
+=head1 DESCRIPTION
+
+Test C<bit_ops> dynops lib on C<String> PMC.
+
+=cut
+
+.loadlib 'bit_ops'
+
+.sub main :main
+    .include 'test_more.pir'
+
+    plan(47)
+
+    bands_null_string()
+    test_bands_2()
+    test_bands_3()
+    bors_null_string()
+    test_bors_2()
+    test_bors_3()
+    bxors_null_string()
+    bxors_2()
+    bxors_3()
+    bnots_null_string()
+.end
+
+.sub bands_null_string
+    new $P1, ['String']
+    new $P2, ['String']
+    new $P3, ['String']
+
+    null $S1
+    set $P1, $S1
+
+    set $S2, "abc"
+    set $P2, $S2
+
+    bands $P1, $P2
+
+    null $S3
+    set $P3, $S3
+
+    is( $P1, $P3, 'band null, "abc" -> null' )
+
+    set $P1, ""
+    bands $P1, $P2
+    nok( $P1, 'band "", "abc" -> false' )
+
+    null $S2
+    set $P2, $S2
+    set $P1, "abc"
+
+    bands $P1, $P2
+
+    null $S3
+    set $P3, $S3
+
+    is( $P1, $P3, 'bands "abc", null -> null' )
+
+    set $P2, ""
+    bands $P1, $P2
+    nok( $P1, 'bans "abc", "" -> false' )
+
+.end
+
+.sub test_bands_2
+    new $P1, ['String']
+    new $P2, ['String']
+    set $P1, "abc"
+    set $P2, "EE"
+    bands $P1, $P2
+    is( $P1, "A@", 'bands "abc", "EE" -> "A@"' )
+    is( $P2, "EE", '$2 is unchanged' )
+.end
+
+.sub test_bands_3
+    new $P1, ['String']
+    new $P2, ['String']
+    new $P0, ['String']
+    set $P1, "abc"
+    set $P2, "EE"
+    bands $P0, $P1, $P2
+    is( $P0, "A@",  'bands "abc", "EE" -> "A@"' )
+    is( $P1, "abc", '$2 is unchanged' )
+    is( $P2, "EE",  '$3 is unchanged' )
+.end
+
+.sub bors_null_string
+    new $P1, ['String']
+    new $P2, ['String']
+    new $P3, ['String']
+
+    null $S1
+    null $S2
+    set $P1, $S1
+    set $P2, $S2
+    bors $P1, $P2
+    null $S3
+    set $P3, $S3
+    is( $P1, $P3, 'bors null, null -> null' )
+
+    null $S1
+    set $P1, $S1
+    set $P2, ""
+    bors $P1, $P2
+    null $S3
+    set $P3, $S3
+    is( $P1, $P3, 'bors null, "" -> null' )
+
+    bors $P2, $P1
+    is( $P2, $P3, 'bors "", null -> null' )
+
+    null $S1
+    set $P1, $S1
+    set $P2, "def"
+    bors $P1, $P2
+    is( $P1, "def", 'bors null, "def" -> "def" / true' )
+
+    null $S2
+    set $P2, $S2
+    bors $P1, $P2
+    is( $P1, "def", 'bors "def", null -> "def" / true' )
+
+    null $S1
+    null $S2
+    set $P1, $S1
+    set $P2, $S2
+    bors $P3, $P1, $P2
+    null $S4
+    is( $P3, $S4, 'bors null, null -> null' )
+
+    set $P1, ""
+    bors $P3, $P1, $P2
+    is( $P3, $S4, 'bors "", null -> null' )
+
+    bors $P3, $P2, $P1
+    is( $P3, $S4, 'bors null, "" -> null' )
+
+    set $P1, "def"
+    bors $P3, $P1, $P2
+    is( $P3, "def", 'bors "def", null -> "def"' )
+
+    bors $P3, $P2, $P1
+    is( $P3, "def", 'bors null, "def" -> "def"' )
+.end
+
+.sub test_bors_2
+    new $P1, ['String']
+    new $P2, ['String']
+    set $P1, "abc"
+    set $P2, "EE"
+
+    bors $P1, $P2
+    is( $P1, "egc", 'bors "abc", "EE" -> "egc"' )
+    is( $P2, "EE",  '$2 is unchanged' )
+.end
+
+.sub test_bors_3
+    new $P1, ['String']
+    new $P2, ['String']
+    new $P0, ['String']
+    set $P1, "abc"
+    set $P2, "EE"
+
+    bors $P0, $P1, $P2
+    is( $P0, "egc", 'bors "abc", "EE" -> "egc"' )
+    is( $P1, "abc", '$2 unchanged' )
+    is( $P2, "EE",  '$3 unchanged' )
+.end
+
+.sub bxors_null_string
+    new $P1, ['String']
+    new $P2, ['String']
+    new $P3, ['String']
+    null $S1
+    null $S2
+    set $P1, $S1
+    set $P2, $S2
+    bxors $P1, $P2
+    null $S3
+    is( $P1, $S3, 'bxors null, null -> null' )
+
+    null $S1
+    set $P1, $S1
+    set $P2, ""
+    bxors $P1, $P2
+    null $S3
+    is( $P1, $S3, 'bxors null, "" -> null' )
+
+    bxors $P2, $P1
+    is( $S2, $S3, 'bxors "", null -> null' )
+
+    null $S1
+    set $P1, $S1
+    set $P2, "abc"
+    bxors $P1, $P2
+    is( $P1, "abc", 'bxors null, "abc" -> "abc"' )
+
+    null $S2
+    set $P2, $S2
+    bxors $P1, $P2
+    is( $P1, "abc", 'bxors "abc", "null, -> "abc"' )
+
+    null $S1
+    null $S2
+    set $P1, $S1
+    set $P2, $S2
+    bxors $P3, $P1, $P2
+    null $S4
+    is( $P3, $S4, 'bxors3 null, null -> null' )
+
+    set $P1, ""
+    bxors $P3, $P1, $P2
+    is( $P3, $S4, 'bxors3 "", null -> null' )
+
+    bxors $P3, $P2, $P1
+    is( $P3, $S4, 'bxors3 null, null -> null' )
+
+    set $P1, "abc"
+    bxors $P3, $P1, $P2
+    is( $P3, "abc", 'bxors3 "abc", null -> "abc"' )
+
+    bxors $P3, $P2, $P1
+    is( $P3, "abc", 'bxors3 null, "abc" -> "abc"' )
+.end
+
+.sub bxors_2
+    new $P1, ['String']
+    new $P2, ['String']
+    new $P3, ['String']
+
+    set $P1, "a2c"
+    set $P2, "Dw"
+    bxors $P1, $P2
+    is( $P1, "%Ec", 'bxors "a2c", "Dw" -> "%Ec"' )
+    is( $P2, "Dw", '... $2 unchanged' )
+
+    set $P1, "abc"
+    set $P2, "   X"
+    bxors $P1, $P2
+    is( $P1, "ABCX", 'bxors "abc", "   X" -> "ABCX"' )
+    is( $P2, "   X", '... $2 unchanged' )
+.end
+
+.sub bxors_3
+    new $P1, ['String']
+    new $P2, ['String']
+    new $P0, ['String']
+
+    set $P1, "a2c"
+    set $P2, "Dw"
+    bxors $P0, $P1, $P2
+    is( $P0, "%Ec", 'bxors "a2c", "Dw" -> "%Ec"' )
+    is( $P1, "a2c", '... $2 unchanged' )
+    is( $P2, "Dw",  '... $3 unchanged' )
+
+    set $P1, "abc"
+    set $P2, "   Y"
+    bxors $P0, $P1, $P2
+    is( $P0, "ABCY", 'bxors "abc", "   Y" -> "ABCY"' )
+    is( $P1, "abc",  '... $2 unchanged' )
+    is( $P2, "   Y", '... $3 unchanged' )
+.end
+
+.sub bnots_null_string
+    new $P1, ['String']
+    new $P2, ['String']
+    new $P3, ['String']
+
+    null $S1
+    null $S2
+    set $P1, $S1
+    set $P2, $S2
+    bnots $P1, $P2
+    null $S3
+    is( $P1, $S3, 'bnots null, null -> null' )
+
+    null $S1
+    set $P1, $S1
+    set $P2, ""
+    bnots $P1, $P2
+    null $S3
+    is( $P1, $S3, 'bnots null, "" -> null' )
+
+    bnots $P2, $P1
+    is( $S2, $S3, 'bnots "", null -> null' )
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/gsoc_nfg/t/dynoplibs/sysinfo.t (from r47434, trunk/t/dynoplibs/sysinfo.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/sysinfo.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/sysinfo.t)
@@ -0,0 +1,191 @@
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
+
+# initial work by Brad Gilbert b2gills <at> gmail <dot> com
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+
+use Test::More;
+use Config;
+
+use Parrot::Test tests => 14;
+use Parrot::Config;
+
+
+=head1 NAME
+
+t/op/sysinfo.t - System Info
+
+=head1 SYNOPSIS
+
+        % prove t/op/sysinfo.t
+
+=head1 DESCRIPTION
+
+Tests for basic system information.
+
+=over 4
+
+=item 1 The size of a platform integer
+
+=item 2 The size of a platform float
+
+=item 3 The size of a platform pointer. (Largest possible data pointer)
+
+=item 4 The OS name
+
+=item 5 The OS version string
+
+=item 6 The OS version number string
+
+=item 7 The CPU architecture
+
+=item 8 The CPU model
+
+=item 9, 10 The min and max INTVAL values
+
+=back
+
+=cut
+
+
+my @setup = (
+    { pconfig_key => 'intvalsize',
+      pasm_key    => 1,
+      pir_key     => 'SYSINFO_PARROT_INTSIZE',
+      desc        => 'integer size',
+      reg_type    => 'I',
+    },
+    { pconfig_key => 'doublesize',
+      pasm_key    => 2,
+      pir_key     => 'SYSINFO_PARROT_FLOATSIZE',
+      desc        => 'float size',
+      reg_type    => 'I',
+    },
+    { pconfig_key => 'ptrsize',
+      pasm_key    => 3,
+      pir_key     => 'SYSINFO_PARROT_POINTERSIZE',
+      desc        => 'pointer size',
+      reg_type    => 'I',
+    },
+    { pconfig_key => 'osname',
+      pasm_key    => 4,
+      pir_key     => 'SYSINFO_PARROT_OS',
+      desc        => 'osname',
+      reg_type    => 'S',
+    },
+    { pconfig_key => 'cpuarch',
+      pasm_key    => 7,
+      pir_key     => 'SYSINFO_CPU_ARCH',
+      desc        => 'CPU Arch Family',
+      reg_type    => 'S',
+    },
+);
+
+foreach ( @setup ) {
+    if ( $_->{reg_type} eq 'I' ) {
+        pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PASM sysinfo  $_->{desc}" );
+    .loadlib 'sys_ops'
+    sysinfo_i_ic I1, $_->{pasm_key}
+    print I1
+end
+CODE
+        pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo  $_->{desc}" );
+.loadlib 'sys_ops'
+.include 'sysinfo.pasm'
+.sub main :main
+    \$I0 = sysinfo .$_->{pir_key}
+    print \$I0
+.end
+CODE
+    }
+    else {
+        pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "sysinfo $_->{desc}" );
+    .loadlib 'sys_ops'
+    sysinfo_s_ic S1, $_->{pasm_key}
+    print S1
+end
+CODE
+        pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo  $_->{desc}" );
+.loadlib 'sys_ops'
+.include 'sysinfo.pasm'
+.sub main :main
+    \$S0 = sysinfo .$_->{pir_key}
+    print \$S0
+.end
+CODE
+    }
+}
+
+SKIP:
+{
+    $PConfig{osname} eq 'MSWin32'
+        or skip "Tests only meaningful on Win32", 2;
+    SKIP:
+    {
+        eval { require Win32; } or
+            skip "requires package Win32 for these tests", 2;
+
+        my $osname = Win32::GetOSName();
+        $osname = 'WinXP' if $osname =~ m/^WinXP/;
+        TODO: {
+            local $TODO = "Not Currently Implemented";
+            pasm_output_is( <<'CODE', $osname, "sysinfo OS version string" );
+    .loadlib 'sys_ops'
+    sysinfo_s_ic S1, 5
+    print S1
+end
+CODE
+
+            my ( $osvername, $major, $minor, $id ) = Win32::GetOSVersion();
+
+            pasm_output_is( <<'CODE', "$major.$minor", "sysinfo OS version number string" );
+    .loadlib 'sys_ops'
+    sysinfo_s_ic S1, 6
+    print S1
+end
+CODE
+        } # END todo block
+    } # END inner SKIP block
+} # END outer SKIP block
+
+SKIP:
+{
+    skip "Requires a lot of work to find out the correct answer", 1;
+
+    pasm_output_is( <<'CODE', $PConfig{archname}, "sysinfo CPU Model" );
+   .loadlib 'sys_ops'
+   sysinfo_s_ic S1, 8
+   print S1
+end
+CODE
+}
+
+# 9, 10
+
+SKIP:
+{
+    skip 'Testing only in some known platforms', 1
+        unless $PConfig{osname} eq 'linux';
+
+    pir_output_like( <<'CODE', '/^-[1-9][0-9]*\n[1-9][0-9]*\n$/', 'INTVAL min and max values');
+.loadlib 'sys_ops'
+.include 'sysinfo.pasm'
+.sub main :main
+    $I0 = sysinfo .SYSINFO_PARROT_INTMIN
+    say $I0
+    $I0 = sysinfo .SYSINFO_PARROT_INTMAX
+    say $I0
+.end
+CODE
+}
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Copied: branches/gsoc_nfg/t/dynoplibs/time.t (from r47434, trunk/t/dynoplibs/time.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/time.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/time.t)
@@ -0,0 +1,89 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/time.t - Time Dynops
+
+=cut
+
+.loadlib 'sys_ops'
+
+.sub main :main
+    .include 'test_more.pir'
+
+    plan(10)
+
+    test_gmtime_s_i()
+    test_time_n_vs_time_i()
+    test_decodetime_p_i()
+    test_localtime_s_i()
+    test_decodelocaltime_p_i()
+.end
+
+.sub test_gmtime_s_i
+    $S0 = gmtime 0
+    $I0 = isnull $S0
+    is($I0, 0, "gmtime string is not null")
+    is($S0, "Thu Jan  1 00:00:00 1970\n", "correct epoch")
+    $I1 = length $S0
+    is($I1, 25, "string is the correct length")
+.end
+
+.sub test_time_n_vs_time_i
+    .local int time_int
+    time_int = time
+
+    .local num time_float
+    time_float = time
+
+    # check if time_float is within [time_int - 5;time_int + 5]
+    .local int time_int_lower
+    time_int_lower = time_int - 5
+    if time_float < time_int_lower goto FAIL
+    .local int time_int_upper
+    time_int_upper = time_int + 5
+    if time_float > time_int_upper goto FAIL
+
+    ok(1, "time_n value corresponds to time_i value")
+    .return()
+
+  FAIL:
+    ok(0, "time_n value does not correspond to time_t value")
+    .return()
+.end
+
+.sub test_decodetime_p_i
+    $P0 = decodetime 0
+    $I0 = $P0
+    is($I0, 9, "decodetime result has 9 values")
+    $S0 = typeof $P0
+    # TODO: Actually, this should return whatever HLL type replaces
+    # FixedIntegerArray. We should test this behavior with a new HLL
+    is($S0, "FixedIntegerArray", "decodetime returns the correct PMC type")
+.end
+
+.sub test_localtime_s_i
+    $S0 = localtime 0
+    $I0 = isnull $S0
+    is($I0, 0, "localtime string is not a null string")
+    $I0 = length $S0
+    is($I0, 25, "localtime string is the correct length")
+.end
+
+.sub test_decodelocaltime_p_i
+    $P0 = decodelocaltime 0
+    $I0 = $P0
+    is($I0, 9, "decodelocaltime result has 9 values")
+    $S0 = typeof $P0
+    # TODO: Actually, this should return whatever HLL type replaces
+    # FixedIntegerArray. We should test this behavior with a new HLL
+    is($S0, "FixedIntegerArray", "decodelocaltime returns the correct PMC type")
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/gsoc_nfg/t/dynoplibs/time_old.t (from r47434, trunk/t/dynoplibs/time_old.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/time_old.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/time_old.t)
@@ -0,0 +1,47 @@
+#!perl
+# Copyright (C) 2001-2009, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+use Test::More;
+use Parrot::Test tests => 1;
+
+=head1 NAME
+
+t/op/time.t - Time and Sleep
+
+=head1 SYNOPSIS
+
+    % prove t/op/time.t
+
+=head1 DESCRIPTION
+
+Tests the C<time> and C<sleep> operations.
+
+=cut
+
+my $year;
+( undef, undef, undef, undef, undef, $year ) = localtime();
+$year += 1900;
+
+# don't run this test 1 tick before the year changes #'
+
+pasm_output_is( <<'CODE', $year, "decodelocaltime" );
+.loadlib 'sys_ops'
+    time I0
+    decodelocaltime P0, I0
+    .include "tm.pasm"
+    set I0, P0[.TM_YEAR]
+    print I0
+    end
+CODE
+
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Copied: branches/gsoc_nfg/t/dynoplibs/trans-infnan.t (from r47434, trunk/t/dynoplibs/trans-infnan.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/trans-infnan.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/trans-infnan.t)
@@ -0,0 +1,332 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/trans-infnan.t - Test Trans Dynops
+
+=head1 SYNOPSIS
+
+    %prove t/dynoplibs/trans-infnan.t
+
+=head1 DESCRIPTION
+
+Tests for C<Inf> and C<NaN> handling of transcendental ops in the C<trans_ops> dynlib.
+
+=cut
+
+.loadlib 'trans_ops'
+
+.sub main :main
+    .include 'test_more.pir'
+    plan(67)
+
+    test_exp()
+    test_sin()
+    test_sinh()
+    test_asin()
+    test_cos()
+    test_cosh()
+    test_acos()
+    test_tan()
+    test_tanh()
+    test_atan()
+    test_cot()
+    test_coth()
+    test_acot()
+    test_sec()
+    test_sech()
+    test_asec()
+    test_ln()
+    test_log10()
+    test_log2()
+    test_pow()
+.end
+
+.sub test_exp
+    $N0 = 'Inf'
+    $N1 = exp $N0
+    is($N1, 'Inf', 'exp: exp Inf')
+    $N0 = '-Inf'
+    $N1 = exp $N0
+    is($N1, 0, '... exp -Inf')
+    $N0 = 'NaN'
+    $N1 = exp $N0
+    is($N1, 'NaN', '... exp NaN')
+.end
+
+.sub test_sin
+    $N0 = 'Inf'
+    $N1 = sin $N0
+    is($N1, 'NaN', 'sin: sin Inf')
+    $N0 = '-Inf'
+    $N1 = sin $N0
+    is($N1, 'NaN', '... sin -Inf')
+    $N0 = 'NaN'
+    $N1 = sin $N0
+    is($N1, 'NaN', '... sin NaN')
+.end
+
+.sub test_sinh
+    $N0 = 'Inf'
+    $N1 = sinh $N0
+    is($N1, 'Inf', 'sinh: sinh Inf')
+    $N0 = '-Inf'
+    $N1 = sinh $N0
+    is($N1, '-Inf', '... sinh -Inf')
+    $N0 = 'NaN'
+    $N1 = sinh $N0
+    is($N1, 'NaN', '... sinh NaN')
+.end
+
+.sub test_asin
+    $N0 = 'Inf'
+    $N1 = asin $N0
+    is($N1, 'NaN', 'asin: asin Inf')
+    $N0 = '-Inf'
+    $N1 = asin $N0
+    is($N1, 'NaN', '... asin -Inf')
+    $N0 = 'NaN'
+    $N1 = asin $N0
+    is($N1, 'NaN', '... asin NaN')
+    $N0 = '-2'
+    $N1 = asin $N0
+    is($N1, 'NaN', '... asin -2')
+    $N0 = '2'
+    $N1 = asin $N0
+    is($N1, 'NaN', '... asin 2')
+.end
+
+.sub test_acos
+    $N0 = 'Inf'
+    $N1 = acos $N0
+    is($N1, 'NaN', 'acos: acos Inf')
+    $N0 = '-Inf'
+    $N1 = acos $N0
+    is($N1, 'NaN', '... acos -Inf')
+    $N0 = 'NaN'
+    $N1 = acos $N0
+    is($N1, 'NaN', '... acos NaN')
+    $N0 = '-2'
+    $N1 = acos $N0
+    is($N1, 'NaN', '... acos -2')
+    $N0 = '2'
+    $N1 = acos $N0
+    is($N1, 'NaN', '... acos 2')
+.end
+
+.sub test_cosh
+    $N0 = 'Inf'
+    $N1 = cosh $N0
+    is($N1, 'Inf', 'cosh: cosh Inf')
+    $N0 = '-Inf'
+    $N1 = cosh $N0
+    is($N1, 'Inf', '... cosh -Inf')
+    $N0 = 'NaN'
+    $N1 = cosh $N0
+    is($N1, 'NaN', '... cosh NaN')
+.end
+
+.sub test_cos
+    $N0 = 'Inf'
+    $N1 = cos $N0
+    is($N1, 'NaN', 'cos: cos Inf')
+    $N0 = '-Inf'
+    $N1 = cos $N0
+    is($N1, 'NaN', '... cos -Inf')
+    $N0 = 'NaN'
+    $N1 = cos $N0
+    is($N1, 'NaN', '... cos NaN')
+.end
+
+.sub test_tan
+    $N0 = 'Inf'
+    $N1 = tan $N0
+    is($N1, 'NaN', 'tan: tan Inf')
+    $N0 = '-Inf'
+    $N1 = tan $N0
+    is($N1, 'NaN', '... tan -Inf')
+    $N0 = 'NaN'
+    $N1 = tan $N0
+    is($N1, 'NaN', '... tan NaN')
+.end
+
+.sub test_tanh
+    $N0 = 'Inf'
+    $N1 = tanh $N0
+    is($N1, 1, 'tanh: tanh Inf')
+    $N0 = '-Inf'
+    $N1 = tanh $N0
+    is($N1, -1, '... tanh -Inf')
+    $N0 = 'NaN'
+    $N1 = tanh $N0
+    is($N1, 'NaN', '... tanh NaN')
+.end
+
+.sub test_atan
+    $N0 = 'Inf'
+    $N1 = atan $N0
+    $P1 = new 'Float'
+    $P1 = $N1
+    is($P1, 1.5707963, 'atan: atan Inf',1e-6)
+
+    $N0 = '-Inf'
+    $N1 = atan $N0
+    $P1 = new 'Float'
+    $P1 = $N1
+    is($P1, -1.5707963, '... atan -Inf',1e-6)
+
+    $N0 = 'NaN'
+    $N1 = atan $N0
+    is($N1, 'NaN', '... atan NaN')
+.end
+
+.sub test_coth
+    $N0 = 'Inf'
+    #$N1 = coth $N0
+    #is($N1, 1, 'coth: coth Inf')
+    todo(0, 'coth Inf', 'cot/coth/acot not implemented for real numbers')
+    $N0 = '-Inf'
+    #$N1 = coth $N0
+    #is($N1, -1, '... coth -Inf')
+    todo(0, 'coth -Inf', 'cot/coth/acot not implemented for real numbers')
+    $N0 = 'NaN'
+    #$N1 = coth $N0
+    #is($N1, 'NaN', '... coth NaN')
+    todo(0, 'coth NaN', 'cot/coth/acot not implemented for real numbers')
+.end
+
+.sub test_acot
+    $N0 = 'Inf'
+    #$N1 = acot $N0
+    #is($N1, 'NaN', 'acot: acot Inf')
+    todo(0, 'acot Inf', 'cot/coth/acot not implemented for real numbers')
+    $N0 = '-Inf'
+    #$N1 = acot $N0
+    #is($N1, 'NaN', '... acot -Inf')
+    todo(0, 'acot -Inf', 'cot/coth/acot not implemented for real numbers')
+    $N0 = 'NaN'
+    #$N1 = acot $N0
+    #is($N1, 'NaN', '... acot NaN')
+    todo(0, 'acot NaN', 'cot/coth/acot not implemented for real numbers')
+    $N0 = '-2'
+    #$N1 = acot $N0
+    #is($N1, 'NaN', '... acot -2')
+    todo(0, 'acot -2', 'cot/coth/acot not implemented for real numbers')
+    $N0 = '2'
+    #$N1 = acot $N0
+    #is($N1, 'NaN', '... acot 2')
+    todo(0, 'acot 2', 'cot/coth/acot not implemented for real numbers')
+.end
+
+.sub test_sec
+    $N0 = 'Inf'
+    $N1 = sec $N0
+    is($N1, 'NaN', 'sec: sec Inf')
+    $N0 = '-Inf'
+    $N1 = sec $N0
+    is($N1, 'NaN', '... sec -Inf')
+    $N0 = 'NaN'
+    $N1 = sec $N0
+    is($N1, 'NaN', '... sec NaN')
+.end
+
+.sub test_sech
+    $N0 = 'Inf'
+    $N1 = sech $N0
+    is($N1, 0, 'sech: sech Inf')
+    $N0 = '-Inf'
+    $N1 = sech $N0
+    is($N1, 0, '... sech -Inf')
+    $N0 = 'NaN'
+    $N1 = sech $N0
+    is($N1, 'NaN', '... sech NaN')
+.end
+
+.sub test_asec
+    $N0 = 'Inf'
+    $N1 = asec $N0
+    $P1 = new 'Float'
+    $P1 = $N1
+    is($P1, 1.5707963, 'asec: asec Inf',1e-6)
+    $N0 = '-Inf'
+    $N1 = asec $N0
+    $P1 = $N1
+    is($P1, 1.5707963, '... asec -Inf',1e-6)
+    $N0 = 'NaN'
+    $N1 = asec $N0
+    is($N1, 'NaN', 'asec NaN')
+.end
+
+.sub test_ln
+    $N0 = 'Inf'
+    $N1 = ln $N0
+    is($N1, 'Inf', 'ln: ln Inf')
+    $N0 = '-Inf'
+    $N1 = ln $N0
+    is($N1, 'NaN', '... ln Inf')
+    $N0 = 'NaN'
+    $N1 = ln $N0
+    is($N1, 'NaN', '... ln NaN')
+.end
+
+.sub test_log10
+    $N0 = 'Inf'
+    $N1 = log10 $N0
+    is($N1, 'Inf', 'log10: log10 Inf')
+    $N0 = '-Inf'
+    $N1 = log10 $N0
+    is($N1, 'NaN', '... log10 -Inf')
+    $N0 = 'NaN'
+    $N1 = log10 $N0
+    is($N1, 'NaN', '... log10 NaN')
+.end
+
+.sub test_log2
+    $N0 = 'Inf'
+    $N1 = log2 $N0
+    is($N1, 'Inf', 'log2: log2 Inf')
+    $N0 = '-Inf'
+    $N1 = log2 $N0
+    is($N1, 'NaN', '... log2 -Inf')
+    $N0 = 'NaN'
+    $N1 = log2 $N0
+    is($N1, 'NaN', '... log2 -Inf')
+.end
+
+
+.sub test_cot
+    $N0 = 'Inf'
+    #$N1 = cot $N0
+    #is($N1, 'NaN', 'cot: cot Inf')
+    todo(0, 'cot Inf', 'cot/coth/acot not implemented for real numbers')
+    $N0 = '-Inf'
+    #$N1 = cot $N0
+    #is($N1, 'NaN', '... cot -Inf')
+    todo(0, 'cot -Inf', 'cot/coth/acot not implemented for real numbers')
+    $N0 = 'NaN'
+    #$N1 = cot $N0
+    #is($N1, 'NaN', '... cot NaN')
+    todo(0, 'cot NaN', 'cot/coth/acot not implemented for real numbers')
+.end
+
+.sub test_pow
+    $N0 = 'Inf'
+    pow $N1, $N0, 2
+    is($N1, 'Inf', 'pow: Inf ^ 2')
+    pow $N1, 2, $N0
+    is($N1, 'Inf', '...: 2 ^ Inf')
+    $N0 = 'NaN'
+    pow $N1, $N0, 2
+    is($N1, 'NaN', '...: NaN ^ 2')
+    pow $N1, 2, $N0
+    is($N1, 'NaN', '...: 2 ^ NaN')
+.end
+
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/gsoc_nfg/t/dynoplibs/trans-old.t (from r47434, trunk/t/dynoplibs/trans-old.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/trans-old.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/trans-old.t)
@@ -0,0 +1,565 @@
+#!perl
+# Copyright (C) 2001-2008, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+use Test::More;
+use Parrot::Test tests => 13;
+use Math::Trig qw( tan sec atan asin acos asec cosh sinh tanh sech );
+
+=head1 NAME
+
+t/op/trans.t - Transcendental Mathematical Ops
+
+=head1 SYNOPSIS
+
+    % prove t/op/trans.t
+
+=head1 DESCRIPTION
+
+Tests the transcendental mathematical operations.
+
+=cut
+
+# This defines two macros:
+# fp_eq N, N, LABEL
+# fp_ne N, N, LABEL
+# which will conditionally branch
+# to LABEL if abs(n,n) < epsilon
+
+pasm_output_is( <<"CODE", <<OUTPUT, "sinh" );
+        .loadlib 'trans_ops'
+        .include 'fp_equality.pasm'
+        set N1, 1.0
+        sinh N2, N1
+        .fp_eq_pasm  (N2, 1.175201, EQ1)
+        print "not "
+EQ1:    print "ok 1\\n"
+
+        set I1, 1
+        sinh N2, I1
+        .fp_eq_pasm  (N2, 1.175201, EQ2)
+        print "not "
+EQ2:    print "ok 2\\n"
+
+        end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "tanh" );
+        .loadlib 'trans_ops'
+        .include 'fp_equality.pasm'
+        set N1, 1.0
+        tanh N2, N1
+        .fp_eq_pasm  (N2, 0.761594, EQ1)
+        print "not "
+EQ1:    print "ok 1\\n"
+
+        set I1, 1
+        tanh N2, I1
+        .fp_eq_pasm  (N2, 0.761594, EQ2)
+        print "not "
+EQ2:    print "ok 2\\n"
+
+        end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "sech" );
+        .loadlib 'trans_ops'
+        .include 'fp_equality.pasm'
+        set N1, 1.0
+        sech N2, N1
+        .fp_eq_pasm  (N2, 0.648054, EQ1)
+        print "not "
+EQ1:    print "ok 1\\n"
+
+        set I1, 1
+        sech N2, I1
+        .fp_eq_pasm  (N2, 0.648054, EQ2)
+        print "not "
+EQ2:    print "ok 2\\n"
+
+        end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, 'atan2' );
+        .loadlib 'trans_ops'
+        .include 'fp_equality.pasm'
+        set N0, 0.0
+        set I0, 0
+        set N1, 1.0
+        set I1, 1
+        set N2, 1.0
+        set I2, 1
+        set I3, -1
+        set N3, -1.0
+
+        atan N4, N1, N2
+        .fp_eq_pasm  (N4, 0.785398, EQ1)
+        print "not "
+EQ1:    print "ok 1\\n"
+
+        atan N4, N1, I2
+        .fp_eq_pasm  (N4, 0.785398, EQ2)
+        print "not "
+EQ2:    print "ok 2\\n"
+
+        atan N4, I1, N2
+        .fp_eq_pasm  (N4, 0.785398, EQ3)
+        print "not "
+EQ3:    print "ok 3\\n"
+
+        atan N4, I1, I2
+        .fp_eq_pasm  (N4, 0.785398, EQ4)
+        print "not "
+EQ4:    print "ok 4\\n"
+
+        atan N4, N3, 1.0
+        .fp_eq_pasm   (N4, -0.785398, EQ5)
+        print "not "
+EQ5:    print "ok 5\\n"
+
+        atan N4, N1, 0
+        .fp_eq_pasm   (N4, 1.570796, EQ6)
+        print "not "
+EQ6:    print "ok 6\\n"
+
+        atan N4, I3, 0.0
+        .fp_eq_pasm   (N4, -1.570796, EQ7)
+        print "not "
+EQ7:    print "ok 7\\n"
+
+        atan N4, I3, -1
+        .fp_eq_pasm   (N4, -2.356194, EQ8)
+        print "not "
+EQ8:    print "ok 8\\n"
+
+        atan N4, 1.0, N3
+        .fp_eq_pasm   (N4, 2.356194, EQ9)
+        print "not "
+EQ9:    print "ok 9\\n"
+
+        atan N4, 1.0, I0
+        .fp_eq_pasm   (N4, 1.570796, EQ10)
+        print "not "
+EQ10:   print "ok 10\\n"
+
+        atan N4, 1, N1
+        .fp_eq_pasm   (N4, 0.785398, EQ11)
+        print "not "
+EQ11:   print "ok 11\\n"
+
+        atan N4, 1, I1
+        .fp_eq_pasm   (N4, 0.785398, EQ12)
+        print "not "
+EQ12:   print "ok 12\\n"
+
+        atan N4, 0.0, 1.0
+        .fp_eq_pasm   (N4, 0.000000, EQ13)
+        print "not "
+EQ13:   print "ok 13\\n"
+
+        atan N4, -1.0, 0
+        .fp_eq_pasm   (N4, -1.570796, EQ14)
+        print "not "
+EQ14:   print "ok 14\\n"
+
+        atan N4, 1, -1.0
+        .fp_eq_pasm   (N4, 2.356194, EQ15)
+        print "not "
+EQ15:   print "ok 15\\n"
+
+        atan N4, 0, 1
+        .fp_eq_pasm   (N4, 0.000000, EQ16)
+        print "not "
+EQ16:   print "ok 16\\n"
+        end
+CODE
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+ok 7
+ok 8
+ok 9
+ok 10
+ok 11
+ok 12
+ok 13
+ok 14
+ok 15
+ok 16
+OUTPUT
+
+pasm_output_is( <<"CODE", <<'OUTPUT', 'atan, part 2' );
+        .loadlib 'trans_ops'
+        .include 'fp_equality.pasm'
+        atan N4, -0.0, -0.0
+        .fp_eq_pasm   (N4, -3.1415926, EQ1)
+        print "not "
+EQ1:    print "ok 1\\n"
+        end
+CODE
+ok 1
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "log2" );
+        .loadlib 'trans_ops'
+        .include 'fp_equality.pasm'
+        set N1, 10.0
+        log2 N2, N1
+        .fp_eq_pasm  (N2, 3.321928, EQ1)
+        print "not "
+EQ1:    print "ok 1\\n"
+
+        set I1, 10
+        log2 N2, I1
+        .fp_eq_pasm  (N2, 3.321928, EQ2)
+        print "not "
+EQ2:    print "ok 2\\n"
+
+        end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "log10" );
+        .loadlib 'trans_ops'
+        .include 'fp_equality.pasm'
+        set N1, 15.0
+        log10 N2, N1
+        .fp_eq_pasm  (N2, 1.176091, EQ1)
+        print "not "
+EQ1:    print "ok 1\\n"
+
+        set I1, 15
+        log10 N2, I1
+        .fp_eq_pasm  (N2, 1.176091, EQ2)
+        print "not "
+EQ2:    print "ok 2\\n"
+
+        end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "ln" );
+        .loadlib 'trans_ops'
+        .include 'fp_equality.pasm'
+        set N1, 10.0
+        ln N2, N1
+        .fp_eq_pasm  (N2, 2.302585, EQ1)
+        print "not "
+EQ1:    print "ok 1\\n"
+
+        set I1, 10
+        ln N2, I1
+        .fp_eq_pasm  (N2, 2.302585, EQ2)
+        print "not "
+EQ2:    print "ok 2\\n"
+        end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "exp" );
+        .loadlib 'trans_ops'
+        .include 'fp_equality.pasm'
+        set N1, 10.0
+        exp N2, N1
+        .fp_eq_pasm  (N2, 22026.465795, EQ1)
+        print "not "
+EQ1:    print "ok 1\\n"
+
+        set I1, 10
+        exp N2, I1
+        .fp_eq_pasm (N2, 22026.465795, EQ2)
+        print "not "
+EQ2:    print "ok 2\\n"
+        end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "pow" );
+        .loadlib 'trans_ops'
+        .include 'fp_equality.pasm'
+        set N1, 3.0
+        set I1, 3
+        set N2, 5.0
+        set I2, 5
+        pow N3, N1, N2
+        .fp_eq_pasm  (N3, 243.0, EQ1)
+        print "not "
+EQ1:    print "ok 1\\n"
+
+        pow N3, N1, I2
+        .fp_eq_pasm  (N3, 243.0, EQ2)
+        print "not "
+EQ2:    print "ok 2\\n"
+
+        pow N3, I1, N2
+        .fp_eq_pasm  (N3, 243.0, EQ3)
+        print "not "
+EQ3:    print "ok 3\\n"
+
+        pow N3, I1, I2
+        .fp_eq_pasm  (N3, 243.0, EQ4)
+        print "not "
+EQ4:    print "ok 4\\n"
+
+        set N0, 0.0
+        set I0, 0
+        set N1, 1.0
+        set I1, 1
+        set N2, 4.0
+        set I2, 4
+        pow N3, N2, 2.5
+        .fp_eq_pasm  (N3, 32.0, EQ5)
+        print "not "
+EQ5:    print "ok 5\\n"
+
+        pow N3, N2, -2
+        .fp_eq_pasm  (N3, 0.0625, EQ6)
+        print "not "
+EQ6:    print "ok 6\\n"
+
+        pow N3, I2, 0.5
+        .fp_eq_pasm  (N3, 2.0, EQ7)
+        print "not "
+EQ7:    print "ok 7\\n"
+
+        pow N3, I2, 0
+        .fp_eq_pasm  (N3, 1.0, EQ8)
+        print "not "
+EQ8:    print "ok 8\\n"
+
+        pow N3, 0.0, N2
+        .fp_eq_pasm  (N3, 0.0, EQ9)
+        print "not "
+EQ9:    print "ok 9\\n"
+
+        pow N3, 2.5, 0.0
+        .fp_eq_pasm  (N3, 1.0, EQ10)
+        print "not "
+EQ10:   print "ok 10\\n"
+
+        pow N3, 2.5, I2
+        .fp_eq_pasm  (N3, 39.0625, EQ11)
+        print "not "
+EQ11:   print "ok 11\\n"
+
+        pow N3, 2.0, -4
+        .fp_eq_pasm  (N3, 0.0625, EQ12)
+        print "not "
+EQ12:   print "ok 12\\n"
+
+        pow N3, 0, N2
+        .fp_eq_pasm  (N3, 0.0, EQ13)
+        print "not "
+EQ13:   print "ok 13\\n"
+
+        pow N3, 4, -0.5
+        .fp_eq_pasm  (N3, 0.5, EQ14)
+        print "not "
+EQ14:   print "ok 14\\n"
+
+        pow N3, 4, I2
+        .fp_eq_pasm  (N3, 256.0, EQ15)
+        print "not "
+EQ15:   print "ok 15\\n"
+
+        pow N3, 4, -1
+        .fp_eq_pasm  (N3, 0.25, EQ16)
+        print "not "
+EQ16:   print "ok 16\\n"
+        end
+CODE
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+ok 7
+ok 8
+ok 9
+ok 10
+ok 11
+ok 12
+ok 13
+ok 14
+ok 15
+ok 16
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "sqrt" );
+       .include 'fp_equality.pasm'
+       set N1, 9.0
+       sqrt N2, N1
+       .fp_eq_pasm  (N2, 3.0, EQ1)
+       print "not "
+EQ1:   print "ok 1\\n"
+
+       set I1, 9
+       sqrt N2, I1
+       .fp_eq_pasm  (N2, 3.0, EQ2)
+       print "not "
+EQ2:   print "ok 2\\n"
+
+       end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<'CODE', <<OUTPUT, "pow_n_n_ic" );
+    .loadlib 'trans_ops'
+    set N0, 2.0
+    pow N1, N0, 0
+    print N1
+    print "\n"
+    pow N1, N0, 1
+    print N1
+    print "\n"
+    pow N1, N0, 2
+    print N1
+    print "\n"
+    pow N1, N0, 3
+    print N1
+    print "\n"
+    pow N1, N0, 4
+    print N1
+    print "\n"
+    pow N1, N0, 5
+    print N1
+    print "\n"
+    pow N1, N0, 6
+    print N1
+    print "\n"
+    pow N1, N0, 7
+    print N1
+    print "\n"
+    pow N1, N0, -1
+    print N1
+    print "\n"
+    pow N1, N0, -2
+    print N1
+    print "\n"
+    pow N1, N0, -3
+    print N1
+    print "\n"
+    pow N1, N0, -4
+    print N1
+    print "\n"
+    pow N1, N0, -5
+    end
+CODE
+1
+2
+4
+8
+16
+32
+64
+128
+0.5
+0.25
+0.125
+0.0625
+OUTPUT
+
+pasm_output_is( <<'CODE', <<OUTPUT, "pow_n_n_i" );
+    .loadlib 'trans_ops'
+    set N0, 2.0
+    set I0, 0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    inc I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    inc I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    inc I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    inc I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    inc I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    inc I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    set I0, -1
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    dec I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    dec I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    dec I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    dec I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    dec I0
+    pow N1, N0, I0
+    print N1
+    print "\n"
+    end
+CODE
+1
+2
+4
+8
+16
+32
+64
+0.5
+0.25
+0.125
+0.0625
+0.03125
+0.015625
+OUTPUT
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Copied: branches/gsoc_nfg/t/dynoplibs/trans.t (from r47434, trunk/t/dynoplibs/trans.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/dynoplibs/trans.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/dynoplibs/trans.t)
@@ -0,0 +1,314 @@
+#!./parrot
+# Copyright (C) 2001-2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/op/trans.t - Trancendental Mathematical Ops
+
+=head1 SYNOPSIS
+
+        % prove t/op/trans.t
+
+=head1 DESCRIPTION
+
+Tests various transcendental operations
+
+=cut
+
+.loadlib 'trans_ops'
+
+.sub main :main
+    .include 'test_more.pir'
+    .local num epsilon
+    epsilon = _epsilon()
+
+    plan(69)
+
+    test_sin_n(epsilon)
+    test_sin_i(epsilon)
+    test_cos_n(epsilon)
+    test_cos_i(epsilon)
+    test_tan_n(epsilon)
+    test_tan_i(epsilon)
+    test_sec_n(epsilon)
+    test_sec_i(epsilon)
+    test_atan_n(epsilon)
+    test_atan_i(epsilon)
+    test_asin_n(epsilon)
+    test_asin_i(epsilon)
+    test_acos_n(epsilon)
+    test_acos_i(epsilon)
+    test_asec_n(epsilon)
+    test_asec_i(epsilon)
+    test_cosh_n(epsilon)
+    test_cosh_i(epsilon)
+    integer_overflow_with_pow()
+    e_raised_pi_time_i__plus_1_equal_0()
+.end
+
+.sub _pi
+    .return (3.1415926535897)
+.end
+
+.sub _e
+    .return (2.7182818459045)
+.end
+
+.sub _epsilon
+    .return (0.0001)
+.end
+
+.sub test_sin_n
+    .param num epsilon
+
+    $N0 = sin 0.0
+    is($N0, 0.0, "sin(0.0)", epsilon)
+
+    $N0 = sin 1.0
+    is($N0, 0.841471, "sin(1.0)", epsilon)
+
+    $N1 = _pi()
+    $N0 = sin $N1
+    is($N0, 0.0, "sin(pi)", epsilon)
+
+    $N1 = _pi()
+    $N1 = $N1 / 2
+    $N0 = sin $N1
+    is($N0, 1.0, "sin(pi/2)", epsilon)
+.end
+
+.sub test_sin_i
+    .param num epsilon
+
+    $N0 = sin 0
+    is($N0, 0.0, "sin(0)", epsilon)
+
+    $N0 = sin 1
+    is($N0, 0.841471, "sin(1)", epsilon)
+.end
+
+.sub test_cos_n
+    .param num epsilon
+
+    $N0 = cos 0.0
+    is($N0, 1.0, "cos(0.0)", epsilon)
+
+    $N0 = cos 1.0
+    is($N0, 0.540302, "cos(1.0)", epsilon)
+
+    $N1 = _pi()
+    $N0 = cos $N1
+    is($N0, -1.0, "cos(pi)", epsilon)
+
+    $N1 = _pi()
+    $N1 = $N1 / 2
+    $N0 = cos $N1
+    is($N0, 0.0, "cos(pi/2)", epsilon)
+.end
+
+.sub test_cos_i
+    .param num epsilon
+
+    $N0 = cos 0
+    is($N0, 1.0, "cos(0)", epsilon)
+
+    $N0 = cos 1
+    is($N0, 0.540302, "cos(1)", epsilon)
+.end
+
+.sub test_tan_n
+    .param num epsilon
+
+    $N0 = tan 0.0
+    is($N0, 0.0, "tan(0.0)", epsilon)
+
+    $N0 = tan 1.0
+    is($N0, 1.557408, "tan(1.0)", epsilon)
+.end
+
+.sub test_tan_i
+    .param num epsilon
+
+    $N0 = tan 0
+    is($N0, 0.0, "tan(0)", epsilon)
+
+    $N0 = tan 1
+    is($N0, 1.557408, "tan(1)", epsilon)
+.end
+
+.sub test_sec_n
+    .param num epsilon
+
+    $N1 = 1.0
+    $N2 = sec $N1
+    is($N2, 1.850816, "sec(1.0)", epsilon)
+.end
+
+.sub test_sec_i
+    .param num epsilon
+
+    $I1 = 1
+    $N1 = sec $I1
+    is($N1, 1.850816, "sec(1)", epsilon)
+.end
+
+.sub test_atan_n
+    .param num epsilon
+
+    $N1 = 1.0
+    $N2 = atan $N1
+    is($N2, 0.785398, "atan(1.0)", epsilon)
+.end
+
+.sub test_atan_i
+    .param num epsilon
+
+    $I1 = 1
+    $N1 = atan $I1
+    is($N1, 0.785398, "atan(1)", epsilon)
+.end
+
+.sub test_asin_n
+    .param num epsilon
+    .local num pi2
+    pi2 = _pi()
+    pi2 /= 2
+
+    $N1 = 1.0
+    $N2 = asin $N1
+    is($N2, pi2, "asin(1.0)", epsilon)
+.end
+
+.sub test_asin_i
+    .param num epsilon
+    .local num pi2
+    pi2 = _pi()
+    pi2 /= 2
+
+    $I1 = 1
+    $N1 = asin $I1
+    is($N1, pi2, "asin(1)", epsilon)
+.end
+
+.sub test_acos_n
+    .param num epsilon
+
+    $N1 = 1.0
+    $N2 = acos $N1
+    is($N2, 0.0, "acos(1.0)", epsilon)
+.end
+
+.sub test_acos_i
+    .param num epsilon
+
+    $I1 = 1
+    $N1 = acos $I1
+    is($N1, 0.0, "acos(1)", epsilon)
+.end
+
+.sub test_asec_n
+    .param num epsilon
+
+    $N1 = 1.0
+    $N2 = asec $N1
+    is($N2, 0.0, "asec(1.0)", epsilon)
+.end
+
+.sub test_asec_i
+    .param num epsilon
+
+    $I1 = 1
+    $N1 = asec $I1
+    is($N1, 0.0, "asec(1)", epsilon)
+.end
+
+.sub test_cosh_n
+    .param num epsilon
+    .local num result
+
+    $N1 = 1.0
+    $N2 = cosh $N1
+    is($N2, 1.543081, "cosh(1.0)", epsilon)
+.end
+
+.sub test_cosh_i
+    .param num epsilon
+
+    $I1 = 1
+    $N1 = cosh $I1
+    is($N1, 1.543081, "cosh(1)", epsilon)
+.end
+
+.sub integer_overflow_with_pow
+    .include "iglobals.pasm"
+
+    # Check that we aren't 32-bit INTVALs without GMP
+    .local pmc interp     # a handle to our interpreter object.
+    interp = getinterp
+    .local pmc config
+    config = interp[.IGLOBALS_CONFIG_HASH]
+    .local int intvalsize
+    intvalsize = config['intvalsize']
+    .local int gmp
+    gmp = config['gmp']
+
+    if intvalsize != 4 goto can_test
+    if gmp goto can_test
+        skip(40,'No integer overflow for 32-bit INTVALs without GMP installed')
+        goto end
+
+  can_test:
+
+    .local pmc i1, i2, r
+    i1 = new 'Integer'
+    i2 = new 'Integer'
+    i1 = 2
+    i2 = 1
+    $I1 = 1
+  next:
+    null r
+    r = pow i1, i2
+    $S0 = r
+
+    $I1 = $I1 * 2
+    is( $S0, $I1, 'integer_overflow_with_pow' )
+
+    inc i2
+# XXX: this must be extended to at least 64 bit range
+# when sure that the result is not floating point.
+# In the meantime, make sure it overflows nicely
+# on 32 bit.
+    unless i2 > 40 goto next
+
+  end:
+.end
+
+.macro sprintf_is(fmt, number, message)
+    c = .number
+    $S0 = sprintf .fmt, c
+    $S1 = .message
+    is( $S0, $S1, $S1 )
+.endm
+
+.sub e_raised_pi_time_i__plus_1_equal_0
+    .local pmc c, c2, c3
+    c  = new ['Complex']
+    c2 = new ['Complex']
+    c3 = new ['Complex']
+    # e^(pi * i) + 1 = 0
+    $N0 = atan 1
+    $N0 *= 4
+    c[0] = 0.0
+    c[1] = $N0
+    c2 = c.'exp'()
+    c2 += 1.0
+    .sprintf_is( "%.3f%+.3fi", c2, "0.000+0.000i" )
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
+

Modified: branches/gsoc_nfg/t/dynpmc/gziphandle.t
==============================================================================
--- branches/gsoc_nfg/t/dynpmc/gziphandle.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/dynpmc/gziphandle.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -16,6 +16,8 @@
 
 =cut
 
+.loadlib 'io_ops'
+
 .sub 'main' :main
     .include 'test_more.pir'
     .include 'iglobals.pasm'

Modified: branches/gsoc_nfg/t/dynpmc/os.t
==============================================================================
--- branches/gsoc_nfg/t/dynpmc/os.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/dynpmc/os.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -295,6 +295,7 @@
     open my $FILE, ">", "____some_test_file";
     close $FILE;
     pir_output_is( <<'CODE', <<"OUT", 'Test OS.rename' );
+.loadlib 'io_ops'
 .sub main :main
     $P0 = loadlib 'os'
     $P1 = new ['OS']

Modified: branches/gsoc_nfg/t/examples/pir.t
==============================================================================
--- branches/gsoc_nfg/t/examples/pir.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/examples/pir.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -7,7 +7,7 @@
 use lib qw( . lib ../lib ../../lib );
 
 use Test::More;
-use Parrot::Test tests => 18;
+use Parrot::Test tests => 17;
 use Parrot::Config;
 
 =head1 NAME
@@ -184,7 +184,8 @@
 );
 
 # expected output of a quine is the quine itself
-$expected{'quine_ord.pir'} = Parrot::Test::slurp_file("examples/pir/quine_ord.pir");
+# TODO currently broken
+# $expected{'quine_ord.pir'} = Parrot::Test::slurp_file("examples/pir/quine_ord.pir");
 
 my %skips;
 

Modified: branches/gsoc_nfg/t/harness.pir
==============================================================================
--- branches/gsoc_nfg/t/harness.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/harness.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -305,7 +305,7 @@
     $P0.'open'('svn status', 'pr')
     $P1 = new 'ResizableStringArray'
   L3:
-    $S0 = readline $P0
+    $S0 = $P0.'readline'()
     if $S0 == '' goto L4
     $I0 = index $S0, 'M'
     unless $I0 == 0 goto L3

Modified: branches/gsoc_nfg/t/library/coroutine.t
==============================================================================
--- branches/gsoc_nfg/t/library/coroutine.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/library/coroutine.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -28,6 +28,8 @@
 
 .const int N_TESTS = 6
 
+.loadlib 'io_ops'
+
 ## Build an N-ary tree (where N is passed as node_width) of the specified depth,
 ## with the leaves being consecutive integer PMCs from start but less than N.
 ## The tree will be complete iff end-start+1 == node_width^depth.

Copied: branches/gsoc_nfg/t/library/distutils.t (from r47434, trunk/t/library/distutils.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/t/library/distutils.t	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/t/library/distutils.t)
@@ -0,0 +1,56 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/library/distutils.t
+
+=head1 DESCRIPTION
+
+Test the distutils library
+
+=head1 SYNOPSIS
+
+    % prove t/library/distutils.t
+
+=cut
+
+.sub 'main' :main
+    load_bytecode 'distutils.pir'
+
+    .const 'Sub' prebuild = 'prebuild'
+    register_step_before('build', prebuild)
+    .const 'Sub' postbuild = 'postbuild'
+    register_step_after('build', postbuild)
+
+    $P0 = split ' ', 'build'
+    $P1 = new 'Hash'
+    .const 'Sub' build_hll = 'build_hll'
+    $P1['hll_hook'] = build_hll
+
+    say "1..4"
+    setup($P0 :flat, $P1 :flat :named)
+    say "ok 4 - end"
+.end
+
+.sub 'prebuild' :anon
+    .param pmc kv :slurpy :named
+    say "ok 1 - prebuild"
+.end
+
+.sub 'build_hll' :anon
+    .param pmc kv :slurpy :named
+    say "ok 2 - build_hll"
+.end
+
+.sub 'postbuild' :anon
+    .param pmc kv :slurpy :named
+    say "ok 3 - postbuild"
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/gsoc_nfg/t/library/osutils.t
==============================================================================
--- branches/gsoc_nfg/t/library/osutils.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/library/osutils.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -21,11 +21,12 @@
 
     load_bytecode 'osutils.pir'
 
-    plan(11)
+    plan(17)
     test_basename()
     test_dirname()
     test_catfile()
     test_splitpath()
+    test_newer()
 .end
 
 .sub 'test_basename'
@@ -62,6 +63,24 @@
     is(file, 'ghi.txt', "splitpath file")
 .end
 
+.sub 'test_newer'
+    $I0 = newer('runtime/parrot/library/osutils.pbc', 'runtime/parrot/library/osutils.pir')
+    ok($I0, "newer('osutils.pbc', 'osutils.pir')")
+    $I0 = newer('runtime/parrot/library/osutils.no_file', 'runtime/parrot/library/osutils.pir')
+    nok($I0, "newer('osutils.no_file', 'osutils.pir')")
+    $I0 = newer('runtime/parrot/library/osutils.pir', 'runtime/parrot/library/osutils.pir')
+    nok($I0, "newer('osutils.pir', 'osutils.pir')")
+
+    $P0 = split ' ', 'runtime/parrot/library/osutils.pir runtime/parrot/include/stat.pasm'
+    $I0 = newer('runtime/parrot/library/osutils.pbc', $P0)
+    ok($I0, "newer('osutils.pbc', ['osutils.pir', 'stat.pasm'])")
+    $I0 = newer('runtime/parrot/library/osutils.no_file', $P0)
+    nok($I0, "newer('osutils.no_file', ['osutils.pir', 'stat.pasm'])")
+    $I0 = newer('runtime/parrot/library/osutils.pir', $P0)
+    nok($I0, "newer('osutils.pir', ['osutils.pir', 'stat.pasm'])")
+.end
+
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/gsoc_nfg/t/native_pbc/annotations.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Copied: branches/gsoc_nfg/t/native_pbc/integer.pbc (from r47434, trunk/t/native_pbc/integer.pbc)
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/gsoc_nfg/t/native_pbc/integer_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/gsoc_nfg/t/native_pbc/integer_2.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Copied: branches/gsoc_nfg/t/native_pbc/number.pbc (from r47434, trunk/t/native_pbc/number.pbc)
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/gsoc_nfg/t/native_pbc/number_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/gsoc_nfg/t/native_pbc/number_2.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Copied: branches/gsoc_nfg/t/native_pbc/string.pbc (from r47434, trunk/t/native_pbc/string.pbc)
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/gsoc_nfg/t/native_pbc/string_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/gsoc_nfg/t/native_pbc/string_2.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/gsoc_nfg/t/native_pbc/testdata/string.pasm
==============================================================================
--- branches/gsoc_nfg/t/native_pbc/testdata/string.pasm	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/native_pbc/testdata/string.pasm	Mon Jun  7 18:03:08 2010	(r47436)
@@ -3,7 +3,7 @@
 
     set S1, "abc"
     set S2, "EE"
-    bors S0, S1, S2
+    concat S0, S1, S2
     print S0
     print "\n"
     print S1

Modified: branches/gsoc_nfg/t/oo/methods.t
==============================================================================
--- branches/gsoc_nfg/t/oo/methods.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/oo/methods.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -16,6 +16,8 @@
 
 =cut
 
+.const string library_file = "method_library.pir"
+
 .sub main :main
     .include 'test_more.pir'
 
@@ -29,16 +31,15 @@
 
     overridden_core_pmc()
 
-    delete_library()
+    try_delete_library()
 
 .end
 
 .sub create_library
     .local pmc file
-    .local string filename
 
-    filename = "method_library.pir"
-    file = open filename, 'w'
+    file = new ['FileHandle']
+    file.'open'(library_file, 'w')
 
     $S0 = <<'END'
     .namespace['Foo']
@@ -48,16 +49,22 @@
 END
 
     print file, $S0
-    close file
+    file.'close'()
 
 .end
 
-.sub delete_library
+.sub try_delete_library
     .local pmc os
     $P0 = loadlib 'os'
+    unless $P0 goto no_os
     os = new 'OS'
-    $S0 = "method_library.pir"
-    os.'rm'($S0)
+    os.'rm'(library_file)
+    .return ()
+
+  no_os:
+    $S1 = concat "WARNING: could not delete test file `", library_file
+    $S1 = concat $S1, "' because the OS PMC is unavailable"
+    diag($S1)
 .end
 
 .sub loading_methods_from_file
@@ -66,7 +73,7 @@
     $I0 = $P1.'foo_method'()
     ok ($I0, 'calling foo_method')
 
-    load_bytecode 'method_library.pir'
+    load_bytecode library_file
     $P1 = new 'Foo'
     $I0 = $P1.'bar_method'()
     ok ($I0, 'calling bar_method')

Modified: branches/gsoc_nfg/t/op/arithmetics.t
==============================================================================
--- branches/gsoc_nfg/t/op/arithmetics.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/arithmetics.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -21,7 +21,7 @@
     .include 'test_more.pir'
     .include 'iglobals.pasm'
 
-    plan(121)
+    plan(80)
 
     take_the_negative_of_a_native_integer()
     take_the_absolute_of_a_native_integer()
@@ -42,8 +42,6 @@
     subtract_native_number_from_native_number()
     multiply_native_number_with_native_number()
     divide_native_number_by_native_number()
-    integer_overflow_with_pow()
-    bnot_p_p_creates_destination()
     # END_OF_TESTS
 
 .end
@@ -470,56 +468,6 @@
 
 .end
 
-.sub integer_overflow_with_pow
-    .include "iglobals.pasm"
-
-    # Check that we aren't 32-bit INTVALs without GMP
-    .local pmc interp     # a handle to our interpreter object.
-    interp = getinterp
-    .local pmc config
-    config = interp[.IGLOBALS_CONFIG_HASH]
-    .local int intvalsize
-    intvalsize = config['intvalsize']
-    .local int gmp
-    gmp = config['gmp']
-
-    if intvalsize != 4 goto can_test
-    if gmp goto can_test
-        skip(40,'No integer overflow for 32-bit INTVALs without GMP installed')
-        goto end
-
-  can_test:
-
-    .local pmc i1, i2, r
-    i1 = new 'Integer'
-    i2 = new 'Integer'
-    i1 = 2
-    i2 = 1
-    $I1 = 1
-  next:
-    null r
-    r = pow i1, i2
-    $S0 = r
-
-    $I1 = $I1 * 2
-    is( $S0, $I1, 'integer_overflow_with_pow' )
-
-    inc i2
-# XXX: this must be extended to at least 64 bit range
-# when sure that the result is not floating point.
-# In the meantime, make sure it overflows nicely
-# on 32 bit.
-    unless i2 > 40 goto next
-
-  end:
-.end
-
-.sub 'bnot_p_p_creates_destination'
-    $P0 = box 3
-    $P1 = bnot $P0
-    is( $P1, -4, 'bnot_p_p_creates_destination')
-.end
-
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/gsoc_nfg/t/op/arithmetics_pmc.t
==============================================================================
--- branches/gsoc_nfg/t/op/arithmetics_pmc.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/arithmetics_pmc.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -20,7 +20,7 @@
     .include 'test_more.pir'
     .include "iglobals.pasm"
 
-    plan(44)
+    plan(40)
 
     # Don't check BigInt or BigNum without gmp
     .local pmc interp     # a handle to our interpreter object.
@@ -34,7 +34,7 @@
     run_tests_for('Float')
 
     if gmp goto do_big_ones
-        skip( 22, "will not test BigInt or BigNum without gmp" )
+        skip( 20, "will not test BigInt or BigNum without gmp" )
         goto end
 
   do_big_ones:
@@ -55,7 +55,6 @@
     test_logical_xor(type)
     test_logical_or(type)
     test_modulus(type)
-    test_pow(type)
     test_subtract(type)
 .end
 
@@ -329,36 +328,6 @@
   end:
 .end
 
-.sub test_pow
-    .param pmc type
-
-    $P0 = new type
-    $P0 = 40
-    $P1 = new type
-    $P1 = 2
-    $P2 = new type
-    $P2 = 115200
-
-    $P99 = $P2
-
-    $S0 = "original dest is untouched in pow for "
-    $S1 = type
-    concat $S0, $S1
-
-    # ignore exceptions
-    push_eh done
-    pow $P2, $P0, $P1
-
-    $I0 = cmp $P99, 115200
-
-    is( $I0, 0, $S0 )
-    goto end
-
-  done:
-    ok(1, 'ignoring exceptions')
-  end:
-.end
-
 .sub test_subtract
     .param pmc type
 

Deleted: branches/gsoc_nfg/t/op/debuginfo.t
==============================================================================
--- branches/gsoc_nfg/t/op/debuginfo.t	Mon Jun  7 18:03:08 2010	(r47435)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,201 +0,0 @@
-#!perl
-# Copyright (C) 2001-2007, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Test::More;
-use Parrot::Test tests => 8;
-
-=head1 NAME
-
-t/op/debuginfo.t - Debugging Info
-
-=head1 SYNOPSIS
-
-        % prove t/op/debuginfo.t
-
-=head1 DESCRIPTION
-
-Tests the various set and get operations for line, package and file info,
-as well as backtrace tests.
-
-=cut
-
-$ENV{TEST_PROG_ARGS} ||= '';
-my $nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
-    ? "\\(unknown file\\)\n-1" : "debuginfo_\\d+\\.pasm\n\\d";
-
-#SKIP: {
-#skip "disabled on fast-core",1 if $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/;
-
-pasm_output_like( <<'CODE', <<"OUTPUT", "getline, getfile" );
-.pcc_sub main:
-    getfile S0
-    getline I0
-    say S0
-    say I0
-    end
-CODE
-/$nolineno/
-OUTPUT
-
-pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - Null PMC access" );
-.sub main
-    print "ok 1\n"
-    a()
-    print "not ok 10\n"
-.end
-.sub a
-    print "ok 2\n"
-    b()
-    print "not ok 9\n"
-.end
-.sub b
-    print "ok 3\n"
-    c()
-    print "not ok 8\n"
-.end
-.sub c
-    print "ok 4\n"
-    d()
-    print "not ok 7\n"
-.end
-.sub d
-    print "ok 5\n"
-    $P0 = null
-    $P0()
-    print "not ok 6\n"
-.end
-CODE
-/^ok 1
-ok 2
-ok 3
-ok 4
-ok 5
-Null PMC access in invoke\(\)
-current instr\.: 'd' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'c' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'b' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'a' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
-OUTPUT
-
-pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - method not found" );
-.namespace ["Test1"]
-.sub main
-    print "ok 1\n"
-    foo()
-    print "not ok 5\n"
-.end
-.sub foo
-    print "ok 2\n"
-    $P0 = new 'Integer'
-    print "ok 3\n"
-    $P0."nosuchmethod"()
-    print "not ok 4\n"
-.end
-CODE
-/^ok 1
-ok 2
-ok 3
-Method 'nosuchmethod' not found for invocant of class 'Integer'
-current instr.: 'parrot;Test1;foo' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'parrot;Test1;main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
-OUTPUT
-
-pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - fetch of unknown lexical" );
-.namespace ["Test2"]
-.sub main
-    print "ok 1\n"
-    foo()
-    print "not ok 3\n"
-.end
-.sub foo :lex
-    print "ok 2\n"
-    find_lex $P0, "nosuchlex"
-    print "not ok 3\n"
-.end
-CODE
-/^ok 1
-ok 2
-Lexical 'nosuchlex' not found
-current instr.: 'parrot;Test2;foo' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'parrot;Test2;main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
-OUTPUT
-
-pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - recursion 1" );
-.sub main
-    main()
-.end
-CODE
-/^maximum recursion depth exceeded
-current instr\.: 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)
-\.\.\. call repeated \d+ times/
-OUTPUT
-
-pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - recursion 2" );
-.sub main
-    rec(91)
-.end
-.sub rec
-    .param int i
-    if i == 0 goto END
-    dec i
-    rec(i)
-    .return()
-END:
-    $P0 = null
-    $P0()
-.end
-CODE
-/^Null PMC access in invoke\(\)
-current instr\.: 'rec' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'rec' pc (\d+|-1) \(.*?:(\d+|-1)\)
-\.\.\. call repeated 90 times
-called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
-OUTPUT
-
-$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
-    ? '\(\(unknown file\):-1\)' : '\(xyz.pir:126\)';
-
-pir_error_output_like( <<'CODE', <<"OUTPUT", "setfile and setline" );
-.sub main :main
-    setfile "xyz.pir"
-    setline 123
-    $S0 = 'hello'
-    $I0 = 456
-    'no_such_function'($S0, $I0)
-.end
-CODE
-/$nolineno/
-OUTPUT
-
-$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
-    ? '\(\(unknown file\):-1\)' : '\(foo.p6:128\)';
-pir_error_output_like( <<'CODE', <<"OUTPUT", "setfile and setline" );
-.sub main :main
-    setfile "foo.p6"
-    setline 123
-    $P0 = new 'Integer'
-    assign $P0, 9876
-    set_global '$a', $P0
-
-    setline 124
-    $P0 = get_global '$a'
-    $P1 = clone $P0
-    add $P1, 1
-    'nsf'($P1)
-.end
-CODE
-/$nolineno/
-OUTPUT
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/gsoc_nfg/t/op/exit.t
==============================================================================
--- branches/gsoc_nfg/t/op/exit.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/exit.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -7,7 +7,7 @@
 use lib qw( . lib ../lib ../../lib );
 
 use Test::More;
-use Parrot::Test tests => 7;
+use Parrot::Test tests => 8;
 
 =head1 NAME
 
@@ -65,6 +65,20 @@
     pbc_exit_code_is($pbc, 0, 'pbc exits with 0 by default');
 }
 
+pir_exit_code_is( <<'CODE', 2, "pir exit code isn't exception type" );
+.sub main
+    $P0 = new ['ExceptionHandler']
+    set_addr $P0, catcher
+    $P0.'handle_types'(2)
+    push_eh $P0
+    exit 2
+  catcher:
+    # we shouldn't arrive here
+    pop_eh
+    exit 10
+.end
+CODE
+
 # Local Variables:
 #   mode: cperl
 #   cperl-indent-level: 4

Modified: branches/gsoc_nfg/t/op/inf_nan.t
==============================================================================
--- branches/gsoc_nfg/t/op/inf_nan.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/inf_nan.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -18,31 +18,11 @@
 
 .sub main :main
     .include 'test_more.pir'
-    plan(105)
+    plan(37)
 
     test_basic_arith()
-    test_exp()
     test_sqrt()
-    test_sin()
-    test_sinh()
-    test_asin()
-    test_cos()
-    test_cosh()
-    test_acos()
-    test_tan()
-    test_tanh()
-    test_atan()
-    test_cot()
-    test_coth()
-    test_acot()
-    test_sec()
-    test_sech()
-    test_asec()
-    test_ln()
-    test_log10()
-    test_log2()
     test_neg()
-    test_pow()
     test_mix_nan_inf()
     test_rounding_n()
     test_rounding_i()
@@ -50,7 +30,6 @@
     test_fdiv_integer_pmc_nan()
     test_fdiv_float_pmc_nan()
     test_fdiv_float_integer_pmc_nan()
-    test_cmod_float_integer_pmc_nan()
     test_mod_float_integer_pmc_nan()
 
 .end
@@ -82,19 +61,6 @@
     is($N3, 'Inf', '... abs -Inf')
 .end
 
-
-.sub test_exp
-    $N0 = 'Inf'
-    $N1 = exp $N0
-    is($N1, 'Inf', 'exp: exp Inf')
-    $N0 = '-Inf'
-    $N1 = exp $N0
-    is($N1, 0, '... exp -Inf')
-    $N0 = 'NaN'
-    $N1 = exp $N0
-    is($N1, 'NaN', '... exp NaN')
-.end
-
 .sub test_sqrt
     $N0 = 'Inf'
     $N1 =  $N0
@@ -110,260 +76,6 @@
     is($N1, 'NaN', '... sqrt -1')
 .end
 
-.sub test_sin
-    $N0 = 'Inf'
-    $N1 = sin $N0
-    is($N1, 'NaN', 'sin: sin Inf')
-    $N0 = '-Inf'
-    $N1 = sin $N0
-    is($N1, 'NaN', '... sin -Inf')
-    $N0 = 'NaN'
-    $N1 = sin $N0
-    is($N1, 'NaN', '... sin NaN')
-.end
-
-.sub test_sinh
-    $N0 = 'Inf'
-    $N1 = sinh $N0
-    is($N1, 'Inf', 'sinh: sinh Inf')
-    $N0 = '-Inf'
-    $N1 = sinh $N0
-    is($N1, '-Inf', '... sinh -Inf')
-    $N0 = 'NaN'
-    $N1 = sinh $N0
-    is($N1, 'NaN', '... sinh NaN')
-.end
-
-.sub test_asin
-    $N0 = 'Inf'
-    $N1 = asin $N0
-    is($N1, 'NaN', 'asin: asin Inf')
-    $N0 = '-Inf'
-    $N1 = asin $N0
-    is($N1, 'NaN', '... asin -Inf')
-    $N0 = 'NaN'
-    $N1 = asin $N0
-    is($N1, 'NaN', '... asin NaN')
-    $N0 = '-2'
-    $N1 = asin $N0
-    is($N1, 'NaN', '... asin -2')
-    $N0 = '2'
-    $N1 = asin $N0
-    is($N1, 'NaN', '... asin 2')
-.end
-
-.sub test_cos
-    $N0 = 'Inf'
-    $N1 = cos $N0
-    is($N1, 'NaN', 'cos: cos Inf')
-    $N0 = '-Inf'
-    $N1 = cos $N0
-    is($N1, 'NaN', '... cos -Inf')
-    $N0 = 'NaN'
-    $N1 = cos $N0
-    is($N1, 'NaN', '... cos NaN')
-.end
-
-.sub test_cosh
-    $N0 = 'Inf'
-    $N1 = cosh $N0
-    is($N1, 'Inf', 'cosh: cosh Inf')
-    $N0 = '-Inf'
-    $N1 = cosh $N0
-    is($N1, 'Inf', '... cosh -Inf')
-    $N0 = 'NaN'
-    $N1 = cosh $N0
-    is($N1, 'NaN', '... cosh NaN')
-.end
-
-.sub test_acos
-    $N0 = 'Inf'
-    $N1 = acos $N0
-    is($N1, 'NaN', 'acos: acos Inf')
-    $N0 = '-Inf'
-    $N1 = acos $N0
-    is($N1, 'NaN', '... acos -Inf')
-    $N0 = 'NaN'
-    $N1 = acos $N0
-    is($N1, 'NaN', '... acos NaN')
-    $N0 = '-2'
-    $N1 = acos $N0
-    is($N1, 'NaN', '... acos -2')
-    $N0 = '2'
-    $N1 = acos $N0
-    is($N1, 'NaN', '... acos 2')
-.end
-
-.sub test_tan
-    $N0 = 'Inf'
-    $N1 = tan $N0
-    is($N1, 'NaN', 'tan: tan Inf')
-    $N0 = '-Inf'
-    $N1 = tan $N0
-    is($N1, 'NaN', '... tan -Inf')
-    $N0 = 'NaN'
-    $N1 = tan $N0
-    is($N1, 'NaN', '... tan NaN')
-.end
-
-.sub test_tanh
-    $N0 = 'Inf'
-    $N1 = tanh $N0
-    is($N1, 1, 'tanh: tanh Inf')
-    $N0 = '-Inf'
-    $N1 = tanh $N0
-    is($N1, -1, '... tanh -Inf')
-    $N0 = 'NaN'
-    $N1 = tanh $N0
-    is($N1, 'NaN', '... tanh NaN')
-.end
-
-.sub test_atan
-    $N0 = 'Inf'
-    $N1 = atan $N0
-    $P1 = new 'Float'
-    $P1 = $N1
-    is($P1, 1.5707963, 'atan: atan Inf',1e-6)
-
-    $N0 = '-Inf'
-    $N1 = atan $N0
-    $P1 = new 'Float'
-    $P1 = $N1
-    is($P1, -1.5707963, '... atan -Inf',1e-6)
-
-    $N0 = 'NaN'
-    $N1 = atan $N0
-    is($N1, 'NaN', '... atan NaN')
-.end
-
-.sub test_cot
-    $N0 = 'Inf'
-    #$N1 = cot $N0
-    #is($N1, 'NaN', 'cot: cot Inf')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-    $N0 = '-Inf'
-    #$N1 = cot $N0
-    #is($N1, 'NaN', '... cot -Inf')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-    $N0 = 'NaN'
-    #$N1 = cot $N0
-    #is($N1, 'NaN', '... cot NaN')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-.end
-
-.sub test_coth
-    $N0 = 'Inf'
-    #$N1 = coth $N0
-    #is($N1, 1, 'coth: coth Inf')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-    $N0 = '-Inf'
-    #$N1 = coth $N0
-    #is($N1, -1, '... coth -Inf')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-    $N0 = 'NaN'
-    #$N1 = coth $N0
-    #is($N1, 'NaN', '... coth NaN')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-.end
-
-.sub test_acot
-    $N0 = 'Inf'
-    #$N1 = acot $N0
-    #is($N1, 'NaN', 'acot: acot Inf')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-    $N0 = '-Inf'
-    #$N1 = acot $N0
-    #is($N1, 'NaN', '... acot -Inf')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-    $N0 = 'NaN'
-    #$N1 = acot $N0
-    #is($N1, 'NaN', '... acot NaN')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-    $N0 = '-2'
-    #$N1 = acot $N0
-    #is($N1, 'NaN', '... acot -2')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-    $N0 = '2'
-    #$N1 = acot $N0
-    #is($N1, 'NaN', '... acot 2')
-    skip(1, 'cot/coth/acot not implemented for real numbers')
-.end
-
-.sub test_sec
-    $N0 = 'Inf'
-    $N1 = sec $N0
-    is($N1, 'NaN', 'sec: sec Inf')
-    $N0 = '-Inf'
-    $N1 = sec $N0
-    is($N1, 'NaN', '... sec -Inf')
-    $N0 = 'NaN'
-    $N1 = sec $N0
-    is($N1, 'NaN', '... sec NaN')
-.end
-
-.sub test_sech
-    $N0 = 'Inf'
-    $N1 = sech $N0
-    is($N1, 0, 'sech: sech Inf')
-    $N0 = '-Inf'
-    $N1 = sech $N0
-    is($N1, 0, '... sech -Inf')
-    $N0 = 'NaN'
-    $N1 = sech $N0
-    is($N1, 'NaN', '... sech NaN')
-.end
-
-.sub test_asec
-    $N0 = 'Inf'
-    $N1 = asec $N0
-    $P1 = new 'Float'
-    $P1 = $N1
-    is($P1, 1.5707963, 'asec: asec Inf',1e-6)
-    $N0 = '-Inf'
-    $N1 = asec $N0
-    $P1 = $N1
-    is($P1, 1.5707963, '... asec -Inf',1e-6)
-    $N0 = 'NaN'
-    $N1 = asec $N0
-    is($N1, 'NaN', 'asec NaN')
-.end
-
-.sub test_ln
-    $N0 = 'Inf'
-    $N1 = ln $N0
-    is($N1, 'Inf', 'ln: ln Inf')
-    $N0 = '-Inf'
-    $N1 = ln $N0
-    is($N1, 'NaN', '... ln Inf')
-    $N0 = 'NaN'
-    $N1 = ln $N0
-    is($N1, 'NaN', '... ln NaN')
-.end
-
-.sub test_log10
-    $N0 = 'Inf'
-    $N1 = log10 $N0
-    is($N1, 'Inf', 'log10: log10 Inf')
-    $N0 = '-Inf'
-    $N1 = log10 $N0
-    is($N1, 'NaN', '... log10 -Inf')
-    $N0 = 'NaN'
-    $N1 = log10 $N0
-    is($N1, 'NaN', '... log10 NaN')
-.end
-
-.sub test_log2
-    $N0 = 'Inf'
-    $N1 = log2 $N0
-    is($N1, 'Inf', 'log2: log2 Inf')
-    $N0 = '-Inf'
-    $N1 = log2 $N0
-    is($N1, 'NaN', '... log2 -Inf')
-    $N0 = 'NaN'
-    $N1 = log2 $N0
-    is($N1, 'NaN', '... log2 -Inf')
-.end
-
 .sub test_neg
     $N0 = 'Inf'
     $N1 = neg $N0
@@ -376,19 +88,6 @@
     is($N1, 'NaN', '... neg NaN')
 .end
 
-.sub test_pow
-    $N0 = 'Inf'
-    pow $N1, $N0, 2
-    is($N1, 'Inf', 'pow: Inf ^ 2')
-    pow $N1, 2, $N0
-    is($N1, 'Inf', '...: 2 ^ Inf')
-    $N0 = 'NaN'
-    pow $N1, $N0, 2
-    is($N1, 'NaN', '...: NaN ^ 2')
-    pow $N1, 2, $N0
-    is($N1, 'NaN', '...: 2 ^ NaN')
-.end
-
 .sub test_mix_nan_inf
     $N0 = 'NaN'
     $N1 = 'Inf'
@@ -456,7 +155,7 @@
     $N0 = 'NaN'
     fdiv $P1, $P2, $N0
     #is($P1, 'NaN', 'fdiv with Integer PMCs and NaN')
-    skip(1, 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+    skip(1, 'fdiv/mod do not play nicely with PMCs and NaN')
 .end
 
 .sub test_fdiv_float_pmc_nan
@@ -466,7 +165,7 @@
     $N0 = 'NaN'
     fdiv $P1, $P2, $N0
     #is($P1, 'NaN','fdiv with Float PMCs and NaN')
-    skip(1, 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+    skip(1, 'fdiv/mod do not play nicely with PMCs and NaN')
 .end
 
 .sub test_fdiv_float_integer_pmc_nan
@@ -476,17 +175,7 @@
     $N0 = 'NaN'
     fdiv $P1, $P2, $N0
     #is($P1, 'NaN', 'fdiv with Float and Integer PMCs and NaN')
-    skip(1, 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
-.end
-
-.sub test_cmod_float_integer_pmc_nan
-    $P1 = new 'Float'
-    $P2 = new 'Integer'
-    $P2 = 1
-    $N0 = 'NaN'
-    cmod $P1, $P2, $N0
-    #is($P1, 'NaN', 'cmod with Float and Integer PMCs and NaN')
-    skip(1, 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+    skip(1, 'fdiv/mod do not play nicely with PMCs and NaN')
 .end
 
 .sub test_mod_float_integer_pmc_nan
@@ -496,7 +185,7 @@
     $N0 = 'NaN'
     mod $P1, $P2, $N0
     #is($P1, 'NaN', 'mod with Float and Integer PMCs and NaN')
-    skip(1, 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+    skip(1, 'fdiv/mod do not play nicely with PMCs and NaN')
 .end
 
 # Local Variables:

Modified: branches/gsoc_nfg/t/op/integer.t
==============================================================================
--- branches/gsoc_nfg/t/op/integer.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/integer.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -16,7 +16,7 @@
 
 =cut
 
-.const int TESTS = 159
+.const int TESTS = 150
 
 .sub 'test' :main
     .include 'test_more.pir'
@@ -32,7 +32,6 @@
     test_div()
     test_mod()
     mod_negative_zero_rest()
-    test_cmod()
     test_eq()
     test_ne()
     test_lt()
@@ -60,9 +59,6 @@
     test_fdiv_i_i_i_by_zero()
     test_fdiv_i_ic_i_by_zero()
     test_fdiv_i_i_ic_by_zero()
-    test_cmod_i_i_i_by_zero()
-    test_cmod_i_ic_i_by_zero()
-    test_cmod_i_i_ic_by_zero()
     test_mod_i_i_i_by_zero()
     test_mod_i_ic_i_by_zero()
     test_mod_i_i_ic_by_zero()
@@ -337,26 +333,6 @@
     is($I1, 0, 'mod - negative, zero rest (#36003), -3 mod -3 = 0')
 .end
 
-.sub 'test_cmod'
-    $I0 = 5
-    $I1 = 3
-    $I2 = cmod $I0, $I1
-    is($I2, 2, 'cmod_i_i_i')
-    is($I0, 5, 'cmod_i_i_i - dividend unchanged')
-    is($I1, 3, 'cmod_i_i_i - divisor unchanged')
-
-    $I0 = 12
-
-    $I1 = cmod $I0, 10
-    is($I1, 2, 'cmod_i_i_ic')
-
-    $I1 = cmod 14, $I0
-    is($I1, 2, 'cmod_i_ic_i')
-
-    $I1 = cmod 13, 11
-    is($I1, 2, 'cmod_i_ic_ic')
-.end
-
 .sub 'test_eq'
     $I0 = 0x12345678
     $I1 = 0x12345678
@@ -925,52 +901,6 @@
     ok($I3, 'fdiv_i_i_ic by zero')
 .end
 
-.sub 'test_cmod_i_i_i_by_zero'
-    $I0 = 0
-    $I1 = 10
-    push_eh test_cmod_i_i_i_by_zero_catch
-    $I2 = cmod $I1, $I0
-    pop_eh
-    $I3 = 0
-    goto test_cmod_i_i_i_by_zero_end
-
-  test_cmod_i_i_i_by_zero_catch:
-    $I3 = 1
-
-  test_cmod_i_i_i_by_zero_end:
-    ok($I3, 'cmod_i_i_i by zero')
-.end
-
-.sub 'test_cmod_i_ic_i_by_zero'
-    $I0 = 0
-    push_eh test_cmod_i_ic_i_by_zero_catch
-    $I2 = cmod 10, $I0
-    pop_eh
-    $I3 = 0
-    goto test_cmod_i_ic_i_by_zero_end
-
-  test_cmod_i_ic_i_by_zero_catch:
-    $I3 = 1
-
-  test_cmod_i_ic_i_by_zero_end:
-    ok($I3, 'cmod_i_ic_i by zero')
-.end
-
-.sub 'test_cmod_i_i_ic_by_zero'
-    $I1 = 10
-    push_eh test_cmod_i_i_ic_by_zero_catch
-    $I2 = cmod $I1, 0
-    pop_eh
-    $I3 = 0
-    goto test_cmod_i_i_ic_by_zero_end
-
-  test_cmod_i_i_ic_by_zero_catch:
-    $I3 = 1
-
-  test_cmod_i_i_ic_by_zero_end:
-    ok($I3, 'cmod_i_i_ic by zero')
-.end
-
 .sub 'test_mod_i_i_i_by_zero'
     $I0 = 0
     $I1 = 10

Modified: branches/gsoc_nfg/t/op/interp.t
==============================================================================
--- branches/gsoc_nfg/t/op/interp.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/interp.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -47,8 +47,6 @@
     .local string actual
     .local pmc test_interp
                test_interp = new 'ParrotInterpreter'
-    .local pmc stdout
-               stdout = getstdout
 
     print "uno\n"
     runinterp test_interp, pasm
@@ -70,14 +68,14 @@
 # the test fail.
 pasm_output_like(
     <<'CODE', <<'OUTPUT', "restart trace" );
-    printerr "ok 1\n"
+    print "ok 1\n"
     sweepoff
     set I0, 1
     trace I0
     dec I0
     trace I0
     sweepon
-    printerr "ok 2\n"
+    print "ok 2\n"
     end
 CODE
 /^ok\s1\n
@@ -89,7 +87,7 @@
 pasm_output_is( <<'CODE', 'nada:', 'interp - warnings' );
     new P0, 'Undef'
     set I0, P0
-    printerr "nada:"
+    print "nada:"
     warningson 1
     new P1, 'Undef'
     set I0, P1

Deleted: branches/gsoc_nfg/t/op/io.t
==============================================================================
--- branches/gsoc_nfg/t/op/io.t	Mon Jun  7 18:03:08 2010	(r47435)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,178 +0,0 @@
-#!./parrot
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/op/io.t - Testing io opcodes
-
-=head1 SYNOPSIS
-
-    % prove t/op/io.t
-
-=head1 DESCRIPTION
-
-Tests various io opcodes.
-
-=cut
-
-.const int TESTS = 5
-
-.sub 'main' :main
-    .include 'test_more.pir'
-
-    plan(TESTS)
-
-    open_delegates_to_filehandle_pmc()
-    open_null_filename()
-    open_null_mode()
-    open_pipe_for_reading()
-    open_pipe_for_writing()
-.end
-
-.sub open_delegates_to_filehandle_pmc
-    load_bytecode 'P6object.pbc'
-
-    .local pmc p6meta, interp, classes, classid
-    p6meta = get_root_global ["parrot"], "P6metaclass"
-    p6meta.'new_class'('Testing')
-
-    interp = getinterp
-    classes = interp[0]
-    classid = classes['Testing']
-    $I0 = classes['FileHandle']
-    set classes['FileHandle'], classid
-
-    $P1 = open '/foo'
-    is($P1,42,'open opcode delegates to the open method on the FileHandle PMC')
-
-    # replace the original, so we don't break other tests
-    set classes['FileHandle'], $I0
-
-.end
-
-.sub 'open_null_filename'
-    push_eh open_null_filename_failed
-    null $S0
-    $P0 = open $S0, 'r'
-    nok(1, 'open with null filename')
-    .return ()
-
-  open_null_filename_failed:
-    ok(1, 'open with null filename')
-.end
-
-.sub 'open_null_mode'
-    push_eh open_null_mode_failed
-    null $S0
-    $P0 = open 'some_name', $S0
-    nok(1, 'open with null mode')
-    .return ()
-
-  open_null_mode_failed:
-    ok(1, 'open with null mode')
-.end
-
-.sub 'tt661_todo_test' :anon
-    # As of r41963, these tests need to be todo'ed at least on Win32. Add new
-    # platforms known to fail.
-    .include 'sysinfo.pasm'
-    $S0 = sysinfo .SYSINFO_PARROT_OS
-    if $S0 == 'MSWin32' goto tt661_todo
-
-    .return (0)
-
-  tt661_todo:
-    .return (1)
-.end
-
-.include 'iglobals.pasm'
-
-.sub 'open_pipe_for_reading'
-    .local pmc interp
-    interp = getinterp
-
-    .local pmc conf
-    conf = interp[.IGLOBALS_CONFIG_HASH]
-
-    .local string command
-    command = conf['build_dir']
-
-    .local string aux
-    aux = conf['slash']
-    command .= aux
-    aux = conf['test_prog']
-    command .= aux
-    aux = conf['exe']
-    command .= aux
-    command .= ' -V'
-
-    .local pmc pipe
-    pipe = open command, 'rp'
-    unless pipe goto open_pipe_for_reading_failed
-    .local string line
-    line = readline pipe
-    line = substr line, 0, 14
-    is('This is Parrot', line, 'open pipe for reading')
-    .return ()
-
-  open_pipe_for_reading_failed:
-    nok(1, 'open pipe for reading')
-    .return ()
-.end
-
-.sub 'open_pipe_for_writing'
-    $I0 = tt661_todo_test()
-    if $I0 goto open_pipe_for_writing_todoed
-    .local pmc interp
-    interp = getinterp
-
-    .local pmc conf
-    conf = interp[.IGLOBALS_CONFIG_HASH]
-
-    .local string command
-    command = conf['build_dir']
-
-    .local string aux
-    aux = conf['slash']
-    command .= aux
-    .local string filename
-    filename .= command
-    filename .= 'examples/pasm/cat.pasm'
-    aux = conf['test_prog']
-    command .= aux
-    aux = conf['exe']
-    command .= aux
-    command .= ' '
-    command .= filename
-
-    .local pmc pipe
-    pipe = open command, 'wp'
-    unless pipe goto open_pipe_for_writing_failed
-
-    pipe.'puts'("ok 5 - open pipe for writing\n")
-    close pipe
-    .return ()
-
-  open_pipe_for_writing_failed:
-    nok(1, 'open pipe for writing')
-    .return ()
-
-  open_pipe_for_writing_todoed:
-    todo(0, 'Unimplemented in this platform, TT #661')
-
-.end
-
-.namespace ["Testing"]
-
-.sub open :method
-    .param pmc args :slurpy
-    .return(42)
-.end
-
-
-# Local Variables:
-#   mode: pir
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/gsoc_nfg/t/op/number.t
==============================================================================
--- branches/gsoc_nfg/t/op/number.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/number.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,7 +19,7 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(130)
+    plan(126)
     test_set_n_nc()
     test_set_n()
     test_add_n_n_n()
@@ -30,7 +30,6 @@
     test_mul_i()
     test_div_i()
     test_mod_n()
-    test_cmod_n()
     test_eq_n_ic()
     test_eq_nc_ic()
     test_ne_n_ic()
@@ -66,9 +65,6 @@
     test_exception_fdiv_n_n_n_by_zero()
     test_exception_fdiv_n_nc_n_by_zero()
     test_exception_fdiv_n_n_nc_by_zero()
-    test_exception_cmod_n_n_n_by_zero()
-    test_exception_cmod_n_nc_n_by_zero()
-    test_exception_cmod_n_n_nc_by_zero()
     test_mod_n_n_n_by_zero()
     test_mod_n_nc_n_by_zero()
     test_mod_n_n_nc_by_zero()
@@ -259,13 +255,6 @@
     is( $N2, "-2", 'mod_n' )
 .end
 
-.sub test_cmod_n
-    set     $N0, 5.000
-    set     $N1, 3.000
-    cmod    $N2, $N0, $N1
-    is( $N2, "2", 'cmod_n' )
-.end
-
 .sub test_eq_n_ic
     set     $N0, 5.000001
     set     $N1, 5.000001
@@ -780,31 +769,6 @@
     .exception_is( 'Divide by zero' )
 .end
 
-.sub test_exception_cmod_n_n_n_by_zero
-    push_eh handler
-    set $N0, 0
-    set $N1, 10
-    cmod $N2, $N1, $N0
-  handler:
-    .exception_is( 'Divide by zero' )
-.end
-
-.sub test_exception_cmod_n_nc_n_by_zero
-    push_eh handler
-    set $N0, 0
-    cmod $N2, 10, $N0
-  handler:
-    .exception_is( 'Divide by zero' )
-.end
-
-.sub test_exception_cmod_n_n_nc_by_zero
-    push_eh handler
-    set $N1, 10
-    cmod $N2, $N1, 0
-  handler:
-    .exception_is( 'Divide by zero' )
-.end
-
 .sub test_mod_n_n_n_by_zero
     set $N0, 0
     set $N1, 10

Modified: branches/gsoc_nfg/t/op/sprintf.t
==============================================================================
--- branches/gsoc_nfg/t/op/sprintf.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/sprintf.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -59,6 +59,9 @@
 
 .const int TESTS = 308
 
+#.loadlib 'sys_ops'
+#.loadlib 'io_ops'
+
 .sub main :main
     load_bytecode 'Test/Builder.pbc'
     .include "iglobals.pasm"
@@ -121,7 +124,8 @@
 
     # Open the test file
     .local pmc file_handle   # currently open file
-               file_handle = open test_file, 'r'
+               file_handle = new ['FileHandle']
+               file_handle.'open'(test_file, 'r')
 
     unless file_handle goto bad_file
 
@@ -132,7 +136,7 @@
     $I0 = file_handle.'eof'()
     if $I0 goto end_loop
 
-    test_line = readline file_handle
+    test_line = file_handle.'readline'()
 
     # skip lines without tabs, and comment lines
     $I0 = index test_line, "\t"
@@ -154,7 +158,8 @@
     data_hash = new 'Hash'
     data_hash["''"] = ''
     data_hash['2**32-1'] = 0xffffffff
-    $N0 = pow 2, 38
+    $N0 = data_hash['2**32-1']
+    inc $N0
     data_hash['2**38'] = $N0
     data_hash["'string'"] = 'string'
 
@@ -228,7 +233,7 @@
 
     goto loop
   end_loop:
-    close file_handle
+    file_handle.'close'()
     goto outer_loop
   end_outer_loop:
 
@@ -481,8 +486,10 @@
     .local pmc it
     it = iter skip_os
 
+    load_bytecode 'config.pbc'
+    $P1 = _config()
     .local string osname
-    osname = sysinfo .SYSINFO_PARROT_OS
+    osname = $P1['osname']
 
   iter_loop:
     unless it goto iter_end

Modified: branches/gsoc_nfg/t/op/string.t
==============================================================================
--- branches/gsoc_nfg/t/op/string.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/string.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,8 +19,6 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(339)
-
     set_s_s_sc()
     test_clone()
     clone_null()
@@ -108,6 +106,7 @@
     index_multibyte_matching_two()
     num_to_string()
     string_to_int()
+    string_to_num()
     concat_or_substr_cow()
     constant_to_cstring()
     cow_with_chopn_leaving_original_untouched()
@@ -122,21 +121,6 @@
     test_find_encoding()
     test_assign()
     assign_and_globber()
-    bands_null_string()
-    bands_2()
-    bands_3()
-    bands_cow()
-    bors_null_string()
-    bors_2()
-    bors_3()
-    bors_cow()
-    bxors_null_string()
-    bxors_2()
-    bxors_3()
-    bxors_cow()
-    bnots_null_string()
-    bnots_2()
-    bnots_cow()
     split_on_empty_string()
     split_on_non_empty_string()
     test_join()
@@ -163,6 +147,7 @@
     # END_OF_TESTS
     join_get_string_returns_a_null_string()
 
+    done_testing()
 .end
 
 .macro exception_is ( M )
@@ -1084,6 +1069,16 @@
     is( $I0, "0", 'string to int' )
 .end
 
+.sub string_to_num
+    set $S0, "6foo"
+    set $N0, $S0
+    is( $N0, "6", '6foo to num' )
+
+    set $S0, "16foo"
+    set $N0, $S0
+    is( $N0, "16", '16foo to num' )
+.end
+
 .sub concat_or_substr_cow
     set $S0, "<JA"
     set $S1, "PH>"
@@ -1393,246 +1388,6 @@
     is( $S5, "JAPH", 'assign & globber' )
 .end
 
-.sub bands_null_string
-    null $S1
-    set $S2, "abc"
-    $S1 = bands $S1, $S2
-    null $S3
-    is( $S1, $S3, 'ok1' )
-
-    set $S1, ""
-    $S1 = bands $S1, $S2
-    nok( $S1, 'ok2' )
-
-    null $S2
-    set $S1, "abc"
-    $S1 = bands $S1, $S2
-    null $S3
-    is( $S1, $S3, 'ok3' )
-
-    set $S2, ""
-    $S1 = bands $S1, $S2
-    nok( $S1, 'ok4' )
-.end
-
-.sub bands_2
-    set $S1, "abc"
-    set $S2, "EE"
-    $S1 = bands $S1, $S2
-    is( $S1, "A@", 'bands 2' )
-    is( $S2, "EE", 'bands 2' )
-.end
-
-.sub bands_3
-    set $S1, "abc"
-    set $S2, "EE"
-    bands $S0, $S1, $S2
-    is( $S0, "A@", 'bands 3' )
-    is( $S1, "abc", 'bands 3' )
-    is( $S2, "EE", 'bands 3' )
-.end
-
-.sub bands_cow
-    set $S1, "foo"
-    substr $S2, $S1, 0, 3
-    $S1 = bands $S1, "bar"
-    is( $S2, "foo", 'bands COW' )
-.end
-
-.sub bors_null_string
-    null $S1
-    null $S2
-    $S1 = bors $S1, $S2
-    null $S3
-    is( $S1, $S3, 'bors NULL string' )
-
-    null $S1
-    set $S2, ""
-    $S1 = bors $S1, $S2
-    null $S3
-    is( $S1, $S3, 'bors NULL string' )
-
-    $S2 = bors $S2, $S1
-    is( $S2, $S3, 'bors NULL string' )
-
-    null $S1
-    set $S2, "def"
-    $S1 = bors $S1, $S2
-    is( $S1, "def", 'bors NULL string' )
-
-    null $S2
-    $S1 = bors $S1, $S2
-    is( $S1, "def", 'bors NULL string' )
-
-    null $S1
-    null $S2
-    bors $S3, $S1, $S2
-    null $S4
-    is( $S3, $S4, 'bors NULL string' )
-
-    set $S1, ""
-    bors $S3, $S1, $S2
-    is( $S3, $S4, 'bors NULL string' )
-
-    bors $S3, $S2, $S1
-    is( $S3, $S4, 'bors NULL string' )
-
-    set $S1, "def"
-    bors $S3, $S1, $S2
-    is( $S3, "def", 'bors NULL string' )
-
-    bors $S3, $S2, $S1
-    is( $S3, "def", 'bors NULL string' )
-.end
-
-.sub bors_2
-    set $S1, "abc"
-    set $S2, "EE"
-    $S1 = bors $S1, $S2
-    is( $S1, "egc", 'bors 2' )
-    is( $S2, "EE", 'bors 2' )
-.end
-
-.sub bors_3
-    set $S1, "abc"
-    set $S2, "EE"
-    bors $S0, $S1, $S2
-    is( $S0, "egc", 'bors 3' )
-    is( $S1, "abc", 'bors 3' )
-    is( $S2, "EE", 'bors 3' )
-.end
-
-.sub bors_cow
-    set $S1, "foo"
-    substr $S2, $S1, 0, 3
-    $S1 = bors $S1, "bar"
-    is( $S2, "foo", 'bors COW' )
-.end
-
-.sub bxors_null_string
-    null $S1
-    null $S2
-    $S1 = bxors $S1, $S2
-    null $S3
-    is( $S1, $S3, 'bxors NULL string' )
-
-    null $S1
-    set $S2, ""
-    $S1 = bxors $S1, $S2
-    null $S3
-    is( $S1, $S3, 'bxors NULL string' )
-
-    $S2 = bxors $S2, $S1
-    is( $S2, $S3, 'bxors NULL string' )
-
-    null $S1
-    set $S2, "abc"
-    $S1 = bxors $S1, $S2
-    is( $S1, "abc", 'bxors NULL string' )
-
-    null $S2
-    $S1 = bxors $S1, $S2
-    is( $S1, "abc", 'bxors NULL string' )
-
-    null $S1
-    null $S2
-    bxors $S3, $S1, $S2
-    null $S4
-    is( $S3, $S4, 'bxors NULL string' )
-
-    set $S1, ""
-    bxors $S3, $S1, $S2
-    is( $S3, $S4, 'bxors NULL string' )
-
-    bxors $S3, $S2, $S1
-    is( $S3, $S4, 'bxors NULL string' )
-
-    set $S1, "abc"
-    bxors $S3, $S1, $S2
-    is( $S3, "abc", 'bxors NULL string' )
-
-    bxors $S3, $S2, $S1
-    is( $S3, "abc", 'bxors NULL string' )
-.end
-
-.sub bxors_2
-    set $S1, "a2c"
-    set $S2, "Dw"
-    $S1 = bxors $S1, $S2
-    is( $S1, "%Ec", 'bxors 2' )
-    is( $S2, "Dw", 'bxors 2' )
-
-    set $S1, "abc"
-    set $S2, "   X"
-    $S1 = bxors $S1, $S2
-    is( $S1, "ABCX", 'bxors 2' )
-    is( $S2, "   X", 'bxors 2' )
-.end
-
-.sub bxors_3
-    set $S1, "a2c"
-    set $S2, "Dw"
-    bxors $S0, $S1, $S2
-    is( $S0, "%Ec", 'bxors 3' )
-    is( $S1, "a2c", 'bxors 3' )
-    is( $S2, "Dw", 'bxors 3' )
-
-    set $S1, "abc"
-    set $S2, "   Y"
-    bxors $S0, $S1, $S2
-    is( $S0, "ABCY", 'bxors 3' )
-    is( $S1, "abc", 'bxors 3' )
-    is( $S2, "   Y", 'bxors 3' )
-.end
-
-.sub bxors_cow
-    set $S1, "foo"
-    substr $S2, $S1, 0, 3
-    $S1 = bxors $S1, "bar"
-    is( $S2, "foo", 'bxors COW' )
-.end
-
-.sub bnots_null_string
-    null $S1
-    null $S2
-    bnots $S1, $S2
-    null $S3
-    is( $S1, $S3, 'bnots NULL string' )
-
-    null $S1
-    set $S2, ""
-    bnots $S1, $S2
-    null $S3
-    is( $S1, $S3, 'bnots NULL string' )
-
-    bnots $S2, $S1
-    is( $S2, $S3, 'bnots NULL string' )
-.end
-
-# This was the previous test used for t/native_pbc/string.t
-.sub bnots_2
-    skip( 4, "No unicode yet" )
-    # getstdout $P0
-    # push $P0, "utf8"
-    # set $S1, "a2c"
-    # bnots $S2, $S1
-    # is( $S1, "a2c", 'bnots 2' )
-    # is( $S2, "\xC2\x9E\xC3\x8D\xC2\x9C", 'bnots 2' )
-    #
-    # bnots $S1, $S1
-    # is( $S1, "\xC2\x9E\xC3\x8D\xC2\x9C", 'bnots 2' )
-    #
-    # bnots $S1, $S1
-    # is( $S1, "a2c", 'bnots 2' )
-.end
-
-.sub bnots_cow
-    set $S1, "foo"
-    substr $S2, $S1, 0, 3
-    bnots $S1, $S1
-    is( $S2, "foo", 'bnots COW' )
-.end
-
 .sub split_on_empty_string
     split $P1, "", ""
     set $I1, $P1

Modified: branches/gsoc_nfg/t/op/stringu.t
==============================================================================
--- branches/gsoc_nfg/t/op/stringu.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/stringu.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -24,12 +24,14 @@
 =cut
 
 pir_output_is( <<'CODE', <<OUTPUT, "angstrom" );
+.include 'stdio.pasm'
 .sub main :main
-    getstdout $P0
-    $P0.'encoding'("utf8")
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    $P1.'encoding'("utf8")
     chr $S0, 0x212B
-    print $P0, $S0
-    print $P0, "\n"
+    print $S0
+    print "\n"
     end
 .end
 CODE
@@ -37,9 +39,11 @@
 OUTPUT
 
 pir_output_is( <<'CODE', <<OUTPUT, "escaped angstrom" );
+.include 'stdio.pasm'
 .sub main :main
-    getstdout $P0
-    $P0.'encoding'("utf8")
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    $P1.'encoding'("utf8")
     set $S0, unicode:"\x{212b}"
     print $S0
     print "\n"
@@ -50,9 +54,11 @@
 OUTPUT
 
 pir_output_is( <<'CODE', <<OUTPUT, "escaped angstrom 2" );
+.include 'stdio.pasm'
 .sub main :main
-    getstdout $P0
-    $P0.'encoding'("utf8")
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    $P1.'encoding'("utf8")
     set $S0, unicode:"aaaaaa\x{212b}"
     print $S0
     print "\n"
@@ -63,9 +69,11 @@
 OUTPUT
 
 pir_output_is( <<'CODE', <<OUTPUT, "escaped angstrom 3" );
+.include 'stdio.pasm'
 .sub main :main
-    getstdout $P0
-    $P0.'encoding'("utf8")
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    $P1.'encoding'("utf8")
     set $S0, unicode:"aaaaaa\x{212b}-aaaaaa"
     print $S0
     print "\n"
@@ -76,9 +84,11 @@
 OUTPUT
 
 pir_output_is( <<'CODE', <<OUTPUT, 'escaped angstrom 3 \uhhhh' );
+.include 'stdio.pasm'
 .sub main :main
-    getstdout $P0
-    $P0.'encoding'("utf8")
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    $P1.'encoding'("utf8")
     set $S0, unicode:"aaaaaa\u212b-aaaaaa"
     print $S0
     print "\n"
@@ -89,9 +99,11 @@
 OUTPUT
 
 pir_output_is( <<'CODE', <<OUTPUT, "MATHEMATICAL BOLD CAPITAL A" );
+.include 'stdio.pasm'
 .sub main :main
-    getstdout $P0
-    $P0.'encoding'("utf8")
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    $P1.'encoding'("utf8")
     set $S0, unicode:"aaaaaa\x{1d400}-aaaaaa"
     print $S0
     print "\n"
@@ -102,9 +114,11 @@
 OUTPUT
 
 pir_output_is( <<'CODE', <<OUTPUT, 'MATHEMATICAL BOLD CAPITAL A \U' );
+.include 'stdio.pasm'
 .sub main :main
-    getstdout $P0
-    $P0.'encoding'("utf8")
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    $P1.'encoding'("utf8")
     set $S0, unicode:"aaaaaa\U0001d400-aaaaaa"
     print $S0
     print "\n"
@@ -115,9 +129,11 @@
 OUTPUT
 
 pir_output_is( <<'CODE', <<OUTPUT, "two upscales" );
+.include 'stdio.pasm'
 .sub main :main
-    getstdout $P0
-    $P0.'encoding'("utf8")
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    $P1.'encoding'("utf8")
     set $S0, unicode:"aaaaaa\x{212b}-bbbbbb\x{1d400}-cccccc"
     print $S0
     print "\n"
@@ -132,9 +148,11 @@
 OUTPUT
 
 pir_output_is( <<'CODE', <<OUTPUT, "two upscales - don't downscale" );
+.include 'stdio.pasm'
 .sub main :main
-    getstdout $P0
-    $P0.'encoding'("utf8")
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    $P1.'encoding'("utf8")
     set $S0, unicode:"aaaaaa\x{1d400}-bbbbbb\x{212b}-cccccc"
     print $S0
     print "\n"
@@ -149,9 +167,11 @@
 OUTPUT
 
 pir_output_is( <<'CODE', <<OUTPUT, '\cX, \ooo' );
+.include 'stdio.pasm'
 .sub main :main
-    getstdout $P0
-    $P0.'encoding'("utf8")
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    $P1.'encoding'("utf8")
     set $S0, "ok 1\cJ"
     print $S0
     set $S0, "ok 2\012"

Deleted: branches/gsoc_nfg/t/op/sysinfo.t
==============================================================================
--- branches/gsoc_nfg/t/op/sysinfo.t	Mon Jun  7 18:03:08 2010	(r47435)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,183 +0,0 @@
-#!perl
-# Copyright (C) 2008-2010, Parrot Foundation.
-# $Id$
-
-# initial work by Brad Gilbert b2gills <at> gmail <dot> com
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-
-use Test::More;
-use Config;
-
-use Parrot::Test tests => 14;
-use Parrot::Config;
-
-
-=head1 NAME
-
-t/op/sysinfo.t - System Info
-
-=head1 SYNOPSIS
-
-        % prove t/op/sysinfo.t
-
-=head1 DESCRIPTION
-
-Tests for basic system information.
-
-=over 4
-
-=item 1 The size of a platform integer
-
-=item 2 The size of a platform float
-
-=item 3 The size of a platform pointer. (Largest possible data pointer)
-
-=item 4 The OS name
-
-=item 5 The OS version string
-
-=item 6 The OS version number string
-
-=item 7 The CPU architecture
-
-=item 8 The CPU model
-
-=item 9, 10 The min and max INTVAL values
-
-=back
-
-=cut
-
-
-my @setup = (
-    { pconfig_key => 'intvalsize',
-      pasm_key    => 1,
-      pir_key     => 'SYSINFO_PARROT_INTSIZE',
-      desc        => 'integer size',
-      reg_type    => 'I',
-    },
-    { pconfig_key => 'doublesize',
-      pasm_key    => 2,
-      pir_key     => 'SYSINFO_PARROT_FLOATSIZE',
-      desc        => 'float size',
-      reg_type    => 'I',
-    },
-    { pconfig_key => 'ptrsize',
-      pasm_key    => 3,
-      pir_key     => 'SYSINFO_PARROT_POINTERSIZE',
-      desc        => 'pointer size',
-      reg_type    => 'I',
-    },
-    { pconfig_key => 'osname',
-      pasm_key    => 4,
-      pir_key     => 'SYSINFO_PARROT_OS',
-      desc        => 'osname',
-      reg_type    => 'S',
-    },
-    { pconfig_key => 'cpuarch',
-      pasm_key    => 7,
-      pir_key     => 'SYSINFO_CPU_ARCH',
-      desc        => 'CPU Arch Family',
-      reg_type    => 'S',
-    },
-);
-
-foreach ( @setup ) {
-    if ( $_->{reg_type} eq 'I' ) {
-        pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PASM sysinfo  $_->{desc}" );
-   sysinfo_i_ic I1, $_->{pasm_key}
-   print I1
-end
-CODE
-        pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo  $_->{desc}" );
-.include 'sysinfo.pasm'
-.sub main :main
-    \$I0 = sysinfo .$_->{pir_key}
-    print \$I0
-.end
-CODE
-    }
-    else {
-        pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "sysinfo $_->{desc}" );
-   sysinfo_s_ic S1, $_->{pasm_key}
-   print S1
-end
-CODE
-        pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo  $_->{desc}" );
-.include 'sysinfo.pasm'
-.sub main :main
-    \$S0 = sysinfo .$_->{pir_key}
-    print \$S0
-.end
-CODE
-    }
-}
-
-SKIP:
-{
-    $PConfig{osname} eq 'MSWin32'
-        or skip "Tests only meaningful on Win32", 2;
-    SKIP:
-    {
-        eval { require Win32; } or
-            skip "requires package Win32 for these tests", 2;
-
-        my $osname = Win32::GetOSName();
-        $osname = 'WinXP' if $osname =~ m/^WinXP/;
-        TODO: {
-            local $TODO = "Not Currently Implemented";
-            pasm_output_is( <<'CODE', $osname, "sysinfo OS version string" );
-    sysinfo_s_ic S1, 5
-    print S1
-end
-CODE
-
-            my ( $osvername, $major, $minor, $id ) = Win32::GetOSVersion();
-
-            pasm_output_is( <<'CODE', "$major.$minor", "sysinfo OS version number string" );
-    sysinfo_s_ic S1, 6
-    print S1
-end
-CODE
-        } # END todo block
-    } # END inner SKIP block
-} # END outer SKIP block
-
-SKIP:
-{
-    skip "Requires a lot of work to find out the correct answer", 1;
-
-    pasm_output_is( <<'CODE', $PConfig{archname}, "sysinfo CPU Model" );
-   sysinfo_s_ic S1, 8
-   print S1
-end
-CODE
-}
-
-# 9, 10
-
-SKIP:
-{
-    skip 'Testing only in some known platforms', 1
-        unless $PConfig{osname} eq 'linux';
-
-    pir_output_like( <<'CODE', '/^-[1-9][0-9]*\n[1-9][0-9]*\n$/', 'INTVAL min and max values');
-.include 'sysinfo.pasm'
-.sub main :main
-    $I0 = sysinfo .SYSINFO_PARROT_INTMIN
-    say $I0
-    $I0 = sysinfo .SYSINFO_PARROT_INTMAX
-    say $I0
-.end
-CODE
-}
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/gsoc_nfg/t/op/time.t
==============================================================================
--- branches/gsoc_nfg/t/op/time.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/op/time.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -11,7 +11,7 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(29)
+    plan(19)
     test_time_i()
     test_time_n()
     test_sleep_i()
@@ -19,11 +19,6 @@
     test_sleep_n()
     test_sleep_n_negative()
     test_tm_pasm()
-    test_gmtime_s_i()
-    test_time_n_vs_time_i()
-    test_decodetime_p_i()
-    test_localtime_s_i()
-    test_decodelocaltime_p_i()
 .end
 
 .sub test_time_i
@@ -103,67 +98,6 @@
     is(.TM_ISDST, 8, "TM_ISDST ok")
 .end
 
-.sub test_gmtime_s_i
-    $S0 = gmtime 0
-    $I0 = isnull $S0
-    is($I0, 0, "gmtime string is not null")
-    is($S0, "Thu Jan  1 00:00:00 1970\n", "correct epoch")
-    $I1 = length $S0
-    is($I1, 25, "string is the correct length")
-.end
-
-.sub test_time_n_vs_time_i
-    .local int time_int
-    time_int = time
-
-    .local num time_float
-    time_float = time
-
-    # check if time_float is within [time_int - 5;time_int + 5]
-    .local int time_int_lower
-    time_int_lower = time_int - 5
-    if time_float < time_int_lower goto FAIL
-    .local int time_int_upper
-    time_int_upper = time_int + 5
-    if time_float > time_int_upper goto FAIL
-
-    ok(1, "time_n value corresponds to time_i value")
-    .return()
-
-  FAIL:
-    ok(0, "time_n value does not correspond to time_t value")
-    .return()
-.end
-
-.sub test_decodetime_p_i
-    $P0 = decodetime 0
-    $I0 = $P0
-    is($I0, 9, "decodetime result has 9 values")
-    $S0 = typeof $P0
-    # TODO: Actually, this should return whatever HLL type replaces
-    # FixedIntegerArray. We should test this behavior with a new HLL
-    is($S0, "FixedIntegerArray", "decodetime returns the correct PMC type")
-.end
-
-.sub test_localtime_s_i
-    $S0 = localtime 0
-    $I0 = isnull $S0
-    is($I0, 0, "localtime string is not a null string")
-    $I0 = length $S0
-    is($I0, 25, "localtime string is the correct length")
-.end
-
-.sub test_decodelocaltime_p_i
-    $P0 = decodelocaltime 0
-    $I0 = $P0
-    is($I0, 9, "decodelocaltime result has 9 values")
-    $S0 = typeof $P0
-    # TODO: Actually, this should return whatever HLL type replaces
-    # FixedIntegerArray. We should test this behavior with a new HLL
-    is($S0, "FixedIntegerArray", "decodelocaltime returns the correct PMC type")
-.end
-
-
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Deleted: branches/gsoc_nfg/t/op/time_old.t
==============================================================================
--- branches/gsoc_nfg/t/op/time_old.t	Mon Jun  7 18:03:08 2010	(r47435)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,46 +0,0 @@
-#!perl
-# Copyright (C) 2001-2009, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Test::More;
-use Parrot::Test tests => 1;
-
-=head1 NAME
-
-t/op/time.t - Time and Sleep
-
-=head1 SYNOPSIS
-
-    % prove t/op/time.t
-
-=head1 DESCRIPTION
-
-Tests the C<time> and C<sleep> operations.
-
-=cut
-
-my $year;
-( undef, undef, undef, undef, undef, $year ) = localtime();
-$year += 1900;
-
-# don't run this test 1 tick before the year changes #'
-
-pasm_output_is( <<'CODE', $year, "decodelocaltime" );
-    time I0
-    decodelocaltime P0, I0
-    .include "tm.pasm"
-    set I0, P0[.TM_YEAR]
-    print I0
-    end
-CODE
-
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/gsoc_nfg/t/op/trans.t
==============================================================================
--- branches/gsoc_nfg/t/op/trans.t	Mon Jun  7 18:03:08 2010	(r47435)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,244 +0,0 @@
-#!./parrot
-# Copyright (C) 2001-2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/op/trans.t - Trancendental Mathematical Ops
-
-=head1 SYNOPSIS
-
-        % prove t/op/trans.t
-
-=head1 DESCRIPTION
-
-Tests various transcendental operations
-
-=cut
-
-.sub main :main
-    .include 'test_more.pir'
-    .local num epsilon
-    epsilon = _epsilon()
-
-    plan(28)
-
-    test_sin_n(epsilon)
-    test_sin_i(epsilon)
-    test_cos_n(epsilon)
-    test_cos_i(epsilon)
-    test_tan_n(epsilon)
-    test_tan_i(epsilon)
-    test_sec_n(epsilon)
-    test_sec_i(epsilon)
-    test_atan_n(epsilon)
-    test_atan_i(epsilon)
-    test_asin_n(epsilon)
-    test_asin_i(epsilon)
-    test_acos_n(epsilon)
-    test_acos_i(epsilon)
-    test_asec_n(epsilon)
-    test_asec_i(epsilon)
-    test_cosh_n(epsilon)
-    test_cosh_i(epsilon)
-.end
-
-.sub _pi
-    .return (3.1415926535897)
-.end
-
-.sub _e
-    .return (2.7182818459045)
-.end
-
-.sub _epsilon
-    .return (0.0001)
-.end
-
-.sub test_sin_n
-    .param num epsilon
-
-    $N0 = sin 0.0
-    is($N0, 0.0, "sin(0.0)", epsilon)
-
-    $N0 = sin 1.0
-    is($N0, 0.841471, "sin(1.0)", epsilon)
-
-    $N1 = _pi()
-    $N0 = sin $N1
-    is($N0, 0.0, "sin(pi)", epsilon)
-
-    $N1 = _pi()
-    $N1 = $N1 / 2
-    $N0 = sin $N1
-    is($N0, 1.0, "sin(pi/2)", epsilon)
-.end
-
-.sub test_sin_i
-    .param num epsilon
-
-    $N0 = sin 0
-    is($N0, 0.0, "sin(0)", epsilon)
-
-    $N0 = sin 1
-    is($N0, 0.841471, "sin(1)", epsilon)
-.end
-
-.sub test_cos_n
-    .param num epsilon
-
-    $N0 = cos 0.0
-    is($N0, 1.0, "cos(0.0)", epsilon)
-
-    $N0 = cos 1.0
-    is($N0, 0.540302, "cos(1.0)", epsilon)
-
-    $N1 = _pi()
-    $N0 = cos $N1
-    is($N0, -1.0, "cos(pi)", epsilon)
-
-    $N1 = _pi()
-    $N1 = $N1 / 2
-    $N0 = cos $N1
-    is($N0, 0.0, "cos(pi/2)", epsilon)
-.end
-
-.sub test_cos_i
-    .param num epsilon
-
-    $N0 = cos 0
-    is($N0, 1.0, "cos(0)", epsilon)
-
-    $N0 = cos 1
-    is($N0, 0.540302, "cos(1)", epsilon)
-.end
-
-.sub test_tan_n
-    .param num epsilon
-
-    $N0 = tan 0.0
-    is($N0, 0.0, "tan(0.0)", epsilon)
-
-    $N0 = tan 1.0
-    is($N0, 1.557408, "tan(1.0)", epsilon)
-.end
-
-.sub test_tan_i
-    .param num epsilon
-
-    $N0 = tan 0
-    is($N0, 0.0, "tan(0)", epsilon)
-
-    $N0 = tan 1
-    is($N0, 1.557408, "tan(1)", epsilon)
-.end
-
-.sub test_sec_n
-    .param num epsilon
-
-    $N1 = 1.0
-    $N2 = sec $N1
-    is($N2, 1.850816, "sec(1.0)", epsilon)
-.end
-
-.sub test_sec_i
-    .param num epsilon
-
-    $I1 = 1
-    $N1 = sec $I1
-    is($N1, 1.850816, "sec(1)", epsilon)
-.end
-
-.sub test_atan_n
-    .param num epsilon
-
-    $N1 = 1.0
-    $N2 = atan $N1
-    is($N2, 0.785398, "atan(1.0)", epsilon)
-.end
-
-.sub test_atan_i
-    .param num epsilon
-
-    $I1 = 1
-    $N1 = atan $I1
-    is($N1, 0.785398, "atan(1)", epsilon)
-.end
-
-.sub test_asin_n
-    .param num epsilon
-    .local num pi2
-    pi2 = _pi()
-    pi2 /= 2
-
-    $N1 = 1.0
-    $N2 = asin $N1
-    is($N2, pi2, "asin(1.0)", epsilon)
-.end
-
-.sub test_asin_i
-    .param num epsilon
-    .local num pi2
-    pi2 = _pi()
-    pi2 /= 2
-
-    $I1 = 1
-    $N1 = asin $I1
-    is($N1, pi2, "asin(1)", epsilon)
-.end
-
-.sub test_acos_n
-    .param num epsilon
-
-    $N1 = 1.0
-    $N2 = acos $N1
-    is($N2, 0.0, "acos(1.0)", epsilon)
-.end
-
-.sub test_acos_i
-    .param num epsilon
-
-    $I1 = 1
-    $N1 = acos $I1
-    is($N1, 0.0, "acos(1)", epsilon)
-.end
-
-.sub test_asec_n
-    .param num epsilon
-
-    $N1 = 1.0
-    $N2 = asec $N1
-    is($N2, 0.0, "asec(1.0)", epsilon)
-.end
-
-.sub test_asec_i
-    .param num epsilon
-
-    $I1 = 1
-    $N1 = asec $I1
-    is($N1, 0.0, "asec(1)", epsilon)
-.end
-
-.sub test_cosh_n
-    .param num epsilon
-    .local num result
-
-    $N1 = 1.0
-    $N2 = cosh $N1
-    is($N2, 1.543081, "cosh(1.0)", epsilon)
-.end
-
-.sub test_cosh_i
-    .param num epsilon
-
-    $I1 = 1
-    $N1 = cosh $I1
-    is($N1, 1.543081, "cosh(1)", epsilon)
-.end
-
-# Local Variables:
-#   mode: pir
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
-

Deleted: branches/gsoc_nfg/t/op/trans_old.t
==============================================================================
--- branches/gsoc_nfg/t/op/trans_old.t	Mon Jun  7 18:03:08 2010	(r47435)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,565 +0,0 @@
-#!perl
-# Copyright (C) 2001-2008, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Test::More;
-use Parrot::Test tests => 13;
-use Math::Trig qw( tan sec atan asin acos asec cosh sinh tanh sech );
-
-=head1 NAME
-
-t/op/trans.t - Transcendental Mathematical Ops
-
-=head1 SYNOPSIS
-
-    % prove t/op/trans.t
-
-=head1 DESCRIPTION
-
-Tests the transcendental mathematical operations.
-
-=cut
-
-# This defines two macros:
-# fp_eq N, N, LABEL
-# fp_ne N, N, LABEL
-# which will conditionally branch
-# to LABEL if abs(n,n) < epsilon
-
-my $runcore = $ENV{TEST_PROG_ARGS} || '';
-my @bsdtodo = (
-    $runcore =~ /--runcore=jit/ &&  $^O =~ m/bsd/i
-        ? ( todo => 'broken under JIT TT #501' )
-        : ()
-);
-
-pasm_output_is( <<"CODE", <<OUTPUT, "sinh", @bsdtodo );
-        .include 'fp_equality.pasm'
-        set N1, 1.0
-        sinh N2, N1
-        .fp_eq_pasm  (N2, 1.175201, EQ1)
-        print "not "
-EQ1:    print "ok 1\\n"
-
-        set I1, 1
-        sinh N2, I1
-        .fp_eq_pasm  (N2, 1.175201, EQ2)
-        print "not "
-EQ2:    print "ok 2\\n"
-
-        end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "tanh", @bsdtodo );
-        .include 'fp_equality.pasm'
-        set N1, 1.0
-        tanh N2, N1
-        .fp_eq_pasm  (N2, 0.761594, EQ1)
-        print "not "
-EQ1:    print "ok 1\\n"
-
-        set I1, 1
-        tanh N2, I1
-        .fp_eq_pasm  (N2, 0.761594, EQ2)
-        print "not "
-EQ2:    print "ok 2\\n"
-
-        end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "sech" );
-        .include 'fp_equality.pasm'
-        set N1, 1.0
-        sech N2, N1
-        .fp_eq_pasm  (N2, 0.648054, EQ1)
-        print "not "
-EQ1:    print "ok 1\\n"
-
-        set I1, 1
-        sech N2, I1
-        .fp_eq_pasm  (N2, 0.648054, EQ2)
-        print "not "
-EQ2:    print "ok 2\\n"
-
-        end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-my @jittodo = (
-    $runcore =~ /--runcore=jit/
-        ? ( todo => 'broken under JIT TT #530' )
-        : ()
-);
-pasm_output_is( <<"CODE", <<OUTPUT, 'atan2', @jittodo );
-        .include 'fp_equality.pasm'
-        set N0, 0.0
-        set I0, 0
-        set N1, 1.0
-        set I1, 1
-        set N2, 1.0
-        set I2, 1
-        set I3, -1
-        set N3, -1.0
-
-        atan N4, N1, N2
-        .fp_eq_pasm  (N4, 0.785398, EQ1)
-        print "not "
-EQ1:    print "ok 1\\n"
-
-        atan N4, N1, I2
-        .fp_eq_pasm  (N4, 0.785398, EQ2)
-        print "not "
-EQ2:    print "ok 2\\n"
-
-        atan N4, I1, N2
-        .fp_eq_pasm  (N4, 0.785398, EQ3)
-        print "not "
-EQ3:    print "ok 3\\n"
-
-        atan N4, I1, I2
-        .fp_eq_pasm  (N4, 0.785398, EQ4)
-        print "not "
-EQ4:    print "ok 4\\n"
-
-        atan N4, N3, 1.0
-        .fp_eq_pasm   (N4, -0.785398, EQ5)
-        print "not "
-EQ5:    print "ok 5\\n"
-
-        atan N4, N1, 0
-        .fp_eq_pasm   (N4, 1.570796, EQ6)
-        print "not "
-EQ6:    print "ok 6\\n"
-
-        atan N4, I3, 0.0
-        .fp_eq_pasm   (N4, -1.570796, EQ7)
-        print "not "
-EQ7:    print "ok 7\\n"
-
-        atan N4, I3, -1
-        .fp_eq_pasm   (N4, -2.356194, EQ8)
-        print "not "
-EQ8:    print "ok 8\\n"
-
-        atan N4, 1.0, N3
-        .fp_eq_pasm   (N4, 2.356194, EQ9)
-        print "not "
-EQ9:    print "ok 9\\n"
-
-        atan N4, 1.0, I0
-        .fp_eq_pasm   (N4, 1.570796, EQ10)
-        print "not "
-EQ10:   print "ok 10\\n"
-
-        atan N4, 1, N1
-        .fp_eq_pasm   (N4, 0.785398, EQ11)
-        print "not "
-EQ11:   print "ok 11\\n"
-
-        atan N4, 1, I1
-        .fp_eq_pasm   (N4, 0.785398, EQ12)
-        print "not "
-EQ12:   print "ok 12\\n"
-
-        atan N4, 0.0, 1.0
-        .fp_eq_pasm   (N4, 0.000000, EQ13)
-        print "not "
-EQ13:   print "ok 13\\n"
-
-        atan N4, -1.0, 0
-        .fp_eq_pasm   (N4, -1.570796, EQ14)
-        print "not "
-EQ14:   print "ok 14\\n"
-
-        atan N4, 1, -1.0
-        .fp_eq_pasm   (N4, 2.356194, EQ15)
-        print "not "
-EQ15:   print "ok 15\\n"
-
-        atan N4, 0, 1
-        .fp_eq_pasm   (N4, 0.000000, EQ16)
-        print "not "
-EQ16:   print "ok 16\\n"
-        end
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-ok 5
-ok 6
-ok 7
-ok 8
-ok 9
-ok 10
-ok 11
-ok 12
-ok 13
-ok 14
-ok 15
-ok 16
-OUTPUT
-
-pasm_output_is( <<"CODE", <<'OUTPUT', 'atan, part 2' );
-        .include 'fp_equality.pasm'
-        atan N4, -0.0, -0.0
-        .fp_eq_pasm   (N4, -3.1415926, EQ1)
-        print "not "
-EQ1:    print "ok 1\\n"
-        end
-CODE
-ok 1
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "log2" );
-        .include 'fp_equality.pasm'
-        set N1, 10.0
-        log2 N2, N1
-        .fp_eq_pasm  (N2, 3.321928, EQ1)
-        print "not "
-EQ1:    print "ok 1\\n"
-
-        set I1, 10
-        log2 N2, I1
-        .fp_eq_pasm  (N2, 3.321928, EQ2)
-        print "not "
-EQ2:    print "ok 2\\n"
-
-        end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "log10" );
-        .include 'fp_equality.pasm'
-        set N1, 15.0
-        log10 N2, N1
-        .fp_eq_pasm  (N2, 1.176091, EQ1)
-        print "not "
-EQ1:    print "ok 1\\n"
-
-        set I1, 15
-        log10 N2, I1
-        .fp_eq_pasm  (N2, 1.176091, EQ2)
-        print "not "
-EQ2:    print "ok 2\\n"
-
-        end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "ln" );
-        .include 'fp_equality.pasm'
-        set N1, 10.0
-        ln N2, N1
-        .fp_eq_pasm  (N2, 2.302585, EQ1)
-        print "not "
-EQ1:    print "ok 1\\n"
-
-        set I1, 10
-        ln N2, I1
-        .fp_eq_pasm  (N2, 2.302585, EQ2)
-        print "not "
-EQ2:    print "ok 2\\n"
-        end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "exp" );
-        .include 'fp_equality.pasm'
-        set N1, 10.0
-        exp N2, N1
-        .fp_eq_pasm  (N2, 22026.465795, EQ1)
-        print "not "
-EQ1:    print "ok 1\\n"
-
-        set I1, 10
-        exp N2, I1
-        .fp_eq_pasm (N2, 22026.465795, EQ2)
-        print "not "
-EQ2:    print "ok 2\\n"
-        end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "pow", @bsdtodo );
-        .include 'fp_equality.pasm'
-        set N1, 3.0
-        set I1, 3
-        set N2, 5.0
-        set I2, 5
-        pow N3, N1, N2
-        .fp_eq_pasm  (N3, 243.0, EQ1)
-        print "not "
-EQ1:    print "ok 1\\n"
-
-        pow N3, N1, I2
-        .fp_eq_pasm  (N3, 243.0, EQ2)
-        print "not "
-EQ2:    print "ok 2\\n"
-
-        pow N3, I1, N2
-        .fp_eq_pasm  (N3, 243.0, EQ3)
-        print "not "
-EQ3:    print "ok 3\\n"
-
-        pow N3, I1, I2
-        .fp_eq_pasm  (N3, 243.0, EQ4)
-        print "not "
-EQ4:    print "ok 4\\n"
-
-        set N0, 0.0
-        set I0, 0
-        set N1, 1.0
-        set I1, 1
-        set N2, 4.0
-        set I2, 4
-        pow N3, N2, 2.5
-        .fp_eq_pasm  (N3, 32.0, EQ5)
-        print "not "
-EQ5:    print "ok 5\\n"
-
-        pow N3, N2, -2
-        .fp_eq_pasm  (N3, 0.0625, EQ6)
-        print "not "
-EQ6:    print "ok 6\\n"
-
-        pow N3, I2, 0.5
-        .fp_eq_pasm  (N3, 2.0, EQ7)
-        print "not "
-EQ7:    print "ok 7\\n"
-
-        pow N3, I2, 0
-        .fp_eq_pasm  (N3, 1.0, EQ8)
-        print "not "
-EQ8:    print "ok 8\\n"
-
-        pow N3, 0.0, N2
-        .fp_eq_pasm  (N3, 0.0, EQ9)
-        print "not "
-EQ9:    print "ok 9\\n"
-
-        pow N3, 2.5, 0.0
-        .fp_eq_pasm  (N3, 1.0, EQ10)
-        print "not "
-EQ10:   print "ok 10\\n"
-
-        pow N3, 2.5, I2
-        .fp_eq_pasm  (N3, 39.0625, EQ11)
-        print "not "
-EQ11:   print "ok 11\\n"
-
-        pow N3, 2.0, -4
-        .fp_eq_pasm  (N3, 0.0625, EQ12)
-        print "not "
-EQ12:   print "ok 12\\n"
-
-        pow N3, 0, N2
-        .fp_eq_pasm  (N3, 0.0, EQ13)
-        print "not "
-EQ13:   print "ok 13\\n"
-
-        pow N3, 4, -0.5
-        .fp_eq_pasm  (N3, 0.5, EQ14)
-        print "not "
-EQ14:   print "ok 14\\n"
-
-        pow N3, 4, I2
-        .fp_eq_pasm  (N3, 256.0, EQ15)
-        print "not "
-EQ15:   print "ok 15\\n"
-
-        pow N3, 4, -1
-        .fp_eq_pasm  (N3, 0.25, EQ16)
-        print "not "
-EQ16:   print "ok 16\\n"
-        end
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-ok 5
-ok 6
-ok 7
-ok 8
-ok 9
-ok 10
-ok 11
-ok 12
-ok 13
-ok 14
-ok 15
-ok 16
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "sqrt" );
-       .include 'fp_equality.pasm'
-       set N1, 9.0
-       sqrt N2, N1
-       .fp_eq_pasm  (N2, 3.0, EQ1)
-       print "not "
-EQ1:   print "ok 1\\n"
-
-       set I1, 9
-       sqrt N2, I1
-       .fp_eq_pasm  (N2, 3.0, EQ2)
-       print "not "
-EQ2:   print "ok 2\\n"
-
-       end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<'CODE', <<OUTPUT, "pow_n_n_ic" );
-    set N0, 2.0
-    pow N1, N0, 0
-    print N1
-    print "\n"
-    pow N1, N0, 1
-    print N1
-    print "\n"
-    pow N1, N0, 2
-    print N1
-    print "\n"
-    pow N1, N0, 3
-    print N1
-    print "\n"
-    pow N1, N0, 4
-    print N1
-    print "\n"
-    pow N1, N0, 5
-    print N1
-    print "\n"
-    pow N1, N0, 6
-    print N1
-    print "\n"
-    pow N1, N0, 7
-    print N1
-    print "\n"
-    pow N1, N0, -1
-    print N1
-    print "\n"
-    pow N1, N0, -2
-    print N1
-    print "\n"
-    pow N1, N0, -3
-    print N1
-    print "\n"
-    pow N1, N0, -4
-    print N1
-    print "\n"
-    pow N1, N0, -5
-    end
-CODE
-1
-2
-4
-8
-16
-32
-64
-128
-0.5
-0.25
-0.125
-0.0625
-OUTPUT
-
-pasm_output_is( <<'CODE', <<OUTPUT, "pow_n_n_i" );
-    set N0, 2.0
-    set I0, 0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    inc I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    inc I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    inc I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    inc I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    inc I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    inc I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    set I0, -1
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    dec I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    dec I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    dec I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    dec I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    dec I0
-    pow N1, N0, I0
-    print N1
-    print "\n"
-    end
-CODE
-1
-2
-4
-8
-16
-32
-64
-0.5
-0.25
-0.125
-0.0625
-0.03125
-0.015625
-OUTPUT
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/gsoc_nfg/t/pmc/addrregistry.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/addrregistry.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/addrregistry.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,10 +19,24 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(1)
+    plan(3)
 
     $P0 = new ['AddrRegistry']
     ok(1, 'Instantiated .AddrRegistry')
+
+    $I0 = 0
+    if $P0 goto isnotempty
+    inc $I0
+isnotempty:
+    ok($I0, 'vtable get_bool gives false when empty')
+
+    $P1 = new [ 'Integer' ]
+    $P0[0] = $P1
+    $I0 = 0
+    unless $P0 goto isempty
+    inc $I0
+isempty:
+    ok($I0, 'vtable get_bool gives true when non empty')
 .end
 
 # Local Variables:

Modified: branches/gsoc_nfg/t/pmc/complex.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/complex.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/complex.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -21,7 +21,7 @@
     .include 'fp_equality.pasm'
     .include "iglobals.pasm"
 
-    plan(459)
+    plan(458)
 
     string_parsing()
     exception_malformed_string__real_part()
@@ -54,7 +54,6 @@
     test_sub()
     test_i_sub()
     sprintf_with_a_complex()
-    e_raised_pi_time_i__plus_1_equal_0()
     ln_of_complex_numbers()
     exp_of_complex_numbers()
     sqrt_of_complex_numbers()
@@ -649,21 +648,6 @@
     .sprintf_is( "%.3f%+.3fi", "0+i", "0.000+1.000i" )
 .end
 
-.sub e_raised_pi_time_i__plus_1_equal_0
-    .local pmc c, c2, c3
-    c  = new ['Complex']
-    c2 = new ['Complex']
-    c3 = new ['Complex']
-    # e^(pi * i) + 1 = 0
-    $N0 = atan 1
-    $N0 *= 4
-    c[0] = 0.0
-    c[1] = $N0
-    c2 = c.'exp'()
-    c2 += 1.0
-    .sprintf_is( "%.3f%+.3fi", c2, "0.000+0.000i" )
-.end
-
 # # The inverse hyperbolic functions are broken wrt -0.0
 # # Need to find some formal spec for when to return -0.0.
 
@@ -703,9 +687,7 @@
     concat $S5, $S2, " of "
     concat $S5, $S5, $S4
 
-    $I0 = cmp_str $S1, $S3
-    $I0 = not $I0
-
+    $I0 = iseq $S1, $S3
     todo( $I0, $S4 )
 .endm
 

Modified: branches/gsoc_nfg/t/pmc/eval.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/eval.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/eval.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -251,14 +251,15 @@
   .local pmc io
   f1 = compi("foo_1", "hello from foo_1")
   \$S0 = f1
-  io = open "$temp_pbc", 'w'
+  io = new ['FileHandle']
+  io.'open'("$temp_pbc", 'w')
   print io, \$S0
-  close io
+  io.'close'()
   load_bytecode "$temp_pbc"
   f2 = compi("foo_2", "hello from foo_2")
-  io = open "$temp2_pbc", 'w'
+  io.'open'("$temp2_pbc", 'w')
   print io, f2
-  close io
+  io.'close'()
   load_bytecode "$temp2_pbc"
 .end
 
@@ -325,17 +326,15 @@
   .local pmc io, os
   f1 = compi("foo_1", "hello from foo_1")
   \$S0 = f1
-  io = open "$temp_pbc", 'w'
+  io = new ['FileHandle']
+  io.'open'("$temp_pbc", 'w')
   print io, \$S0
-  close io
+  io.'close'()
   load_bytecode "$temp_pbc"
-  \$P0 = loadlib 'os'
-  os = new ['OS']
-  os.'rm'("$temp_pbc")
   f2 = compi("foo_2", "hello from foo_2")
-  io = open "$temp_pbc", 'w'
+  io.'open'("$temp_pbc", 'w')
   print io, f2
-  close io
+  io.'close'()
   load_bytecode "$temp_pbc"
 .end
 
@@ -368,9 +367,10 @@
   .local pmc io
   f = compi("foo_1", "hello from foo_1")
   \$S0 = freeze f
-  io = open "$temp_file", 'w'
+  io = new ['FileHandle']
+  io.'open'("$temp_file", 'w')
   print io, \$S0
-  close io
+  io.'close'()
   say "written"
 .end
 
@@ -401,11 +401,10 @@
     .local string file
     .local int size
     file = "$temp_file"
-    .include "stat.pasm"
-    size = stat file, .STAT_FILESIZE
-    io = open file, 'r'
-    \$S0 = read io, size
-    close io
+    io = new ['FileHandle']
+    io.'open'(file, 'rb')
+    \$S0 = io.'readall'()
+    io.'close'()
     e = thaw \$S0
     sweep 1 # ensure all of the object survives GC
     e()
@@ -423,9 +422,10 @@
   .local pmc io
   f = compi("foo_1", "hello from foo_1")
   \$S0 = freeze f
-  io = open "$temp_file", 'w'
+  io = new ['FileHandle']
+  io.'open'("$temp_file", 'wb')
   print io, \$S0
-  close io
+  io.'close'()
   say "written"
   "read"()
 .end
@@ -459,11 +459,10 @@
     .local string file
     .local int size
     file = "$temp_file"
-    .include "stat.pasm"
-    size = stat file, .STAT_FILESIZE
-    io = open file, 'r'
-    \$S0 = read io, size
-    close io
+    io = new ['FileHandle']
+    io.'open'(file, 'rb')
+    \$S0 = io.'readall'()
+    io.'close'()
     e = thaw \$S0
     e()
     e = get_global "foo_1"

Modified: branches/gsoc_nfg/t/pmc/exporter.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/exporter.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/exporter.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -172,8 +172,8 @@
   ok_2:
     say 'ok 2 - globals() with empty array arg sets PMCNULL'
 
-    $P99 = push 'Alex'
-    $P99 = push 'Prince'
+    push $P99, 'Alex'
+    push $P99, 'Prince'
 
     $P0.'globals'($P99)
     $P1 = $P0.'globals'()
@@ -323,8 +323,8 @@
 
     src     = get_namespace [ 'Test'; 'More' ]
     globals = new ['ResizableStringArray']
-    globals = push 'ok'
-    globals = push 'plan'
+    push globals, 'ok'
+    push globals, 'plan'
 
     exporter = new ['Exporter']
     exporter.'import'( src :named('source'), globals :named('globals') )
@@ -385,8 +385,8 @@
     src     = get_namespace [ 'Test'; 'More' ]
     dest    = get_namespace ['foo']
     globals = new ['ResizableStringArray']
-    globals = push 'ok'
-    globals = push 'plan'
+    push globals, 'ok'
+    push globals, 'plan'
 
     exporter = new ['Exporter']
     exporter.'import'( src :named('source'), dest :named('destination'), globals :named('globals') )

Modified: branches/gsoc_nfg/t/pmc/filehandle.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/filehandle.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/filehandle.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -7,7 +7,7 @@
 use lib qw( . lib ../lib ../../lib );
 
 use Test::More;
-use Parrot::Test tests => 18;
+use Parrot::Test tests => 20;
 use Parrot::Test::Util 'create_tempfile';
 use Parrot::Test::Util 'create_tempfile';
 
@@ -263,7 +263,7 @@
     \$I0 = filehandle.'eof'()
     if \$I0 goto end_read_loop
 
-    test_line = readline filehandle
+    test_line = filehandle.'readline'()
     if test_line == "" goto end_read_loop
     test_line = chomp( test_line )
     \$I1 = test_line
@@ -453,26 +453,46 @@
 
     \$P1.'open'('$temp_file')
 
-    \$S1 = \$P1.'readline'()
-    if \$S1 == "1234567890\\n" goto ok_1
-print \$S1
+    .local string line
+    line = \$P1.'readline'()
+    if line == "1234567890\\n" goto ok_1
+print line
     print 'not '
   ok_1:
     say 'ok 1 - \$S1 = \$P1.readline() # read with utf8 encoding on'
 
-    \$S2 = \$P1.'readline'()
-    if \$S2 == \$S0 goto ok_2
-print \$S2
+    line = \$P1.'readline'()
+    if line == \$S0 goto ok_2
+print line
     print 'not '
   ok_2:
     say 'ok 2 - \$S2 = \$P1.readline() # read iso-8859-1 string'
 
     \$P1.'close'()
 
+    \$I1 = charset line
+    \$S2 = charsetname \$I1
+    if \$S2 == 'unicode' goto ok_3
+    print \$S2
+    print 'not '
+  ok_3:
+    say 'ok 3 # unicode charset'
+
+
+    \$I1 = encoding line
+    \$S2 = encodingname \$I1
+    if \$S2 == 'utf8' goto ok_4
+    print \$S2
+    print 'not '
+  ok_4:
+    say 'ok 4 # utf8 encoding'
+
 .end
 CODE
 ok 1 - $S1 = $P1.readline() # read with utf8 encoding on
 ok 2 - $S2 = $P1.readline() # read iso-8859-1 string
+ok 3 # unicode charset
+ok 4 # utf8 encoding
 OUT
 
 
@@ -586,7 +606,6 @@
 .sub 'main'
     .local pmc pipe, conf, interp
     .local string cmd
-    pipe = new ['FileHandle']
 
     interp = getinterp
     conf = interp[.IGLOBALS_CONFIG_HASH]
@@ -601,7 +620,8 @@
     aux = conf['exe']
     cmd .= aux
 
-    pipe = open cmd, "rp"
+    pipe = new ['FileHandle']
+    pipe.'open'(cmd, "rp")
     pipe.'readall'()
     pipe.'close'()
     print "expect 0 exit status: "
@@ -609,7 +629,8 @@
     say $I0
 
     cmd .= ' --this_is_not_a_valid_option'
-    pipe = open cmd, "rp"
+    pipe = new ['FileHandle']
+    pipe.'open'(cmd, "rp")
     pipe.'readall'()
     pipe.'close'()
     print "expect 1 exit status: "
@@ -623,6 +644,84 @@
 expect 1 exit status: 1
 OUTPUT
 
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "timely destruction", todo => 'TT #1659' );
+.const string temp_file = '%s'
+.sub main :main
+    interpinfo $I0, 2    # GC mark runs
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'w')
+        needs_destroy $P0
+    print $P0, "a line\n"
+    null $P0            # kill it
+    sweep 0            # a lazy GC has to close the PIO
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'r')
+    $S0 = $P0.'read'(20)
+    print $S0
+.end
+CODE
+a line
+OUTPUT
+
+my (undef, $no_such_file) = create_tempfile( UNLINK => 1, OPEN => 0 );
+
+pir_output_is( sprintf( <<'CODE', $no_such_file, $temp_file ), <<'OUTPUT', "get_bool" );
+.const string no_such_file = '%s'
+.const string temp_file    = '%s'
+
+.sub main :main
+    push_eh read_non_existent_file
+    $P0 = new ['FileHandle']
+    $P0.'open'(no_such_file, 'r')
+
+    print "Huh: '"
+    print no_such_file
+    print "' exists? - not "
+ok1:
+    say "ok 1"
+
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'w')
+    $P0.'print'("a line\n")
+    $P0.'print'("a line\n")
+    $P0.'close'()
+
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'r')
+    if $P0, ok2
+    print "not "
+ok2:    say "ok 2"
+    $S0 = $P0.'read'(1024)
+    $S0 = $P0.'read'(1024)
+    unless $P0, ok3
+    print "not "
+ok3:    say "ok 3"
+    defined $I0, $P0
+    if $I0, ok4
+    print "not "
+ok4:    say "ok 4"
+    $P0.'close'()
+    defined $I0, $P0        # closed file is still defined
+    if $I0, ok5
+    print "not "
+ok5:    say "ok 5"
+    unless $P0, ok6        # but false
+    print "not "
+ok6:    say "ok 6"
+    .return ()
+read_non_existent_file:
+    pop_eh
+    branch ok1
+.end
+CODE
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+OUTPUT
+
 # TT #1178
 # L<PDD22/I\/O PMC API/=item get_fd>
 # NOTES: this is going to be platform dependent

Modified: branches/gsoc_nfg/t/pmc/fixedintegerarray.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/fixedintegerarray.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/fixedintegerarray.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,7 +19,7 @@
 
 .sub 'main' :main
     .include 'test_more.pir'
-    plan(33)
+    plan(35)
 
     test_set_size()
     test_reset_size()
@@ -31,6 +31,7 @@
     test_interface_done()
     test_get_iter()
     test_equality()
+    test_repr()
     test_new_style_init()
     test_invalid_init_tt1509()
 .end
@@ -227,7 +228,7 @@
 .end
 
 .sub 'test_equality'
-    .local pmc a1, a2
+    .local pmc a1, a2, a3
     a1 = new ['FixedIntegerArray']
     a2 = new ['FixedIntegerArray']
 
@@ -247,6 +248,20 @@
 
     a2[1] = 84
     is(a1, a2, "Equal when second element same")
+
+    a3 = new ['Complex']
+    isnt(a1, a3, "Different PMC type is not equal")
+.end
+
+.sub 'test_repr'
+    .local pmc a1
+    .local string r
+    a1 = new ['FixedIntegerArray']
+    a1 = 2
+    a1[0] = 7
+    a1[1] = 1
+    r = get_repr a1
+    is(r, '[ 7, 1 ]', 'get_repr')
 .end
 
 .sub 'test_new_style_init'

Modified: branches/gsoc_nfg/t/pmc/freeze.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/freeze.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/freeze.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -352,42 +352,51 @@
 ok same
 OUTPUT
 
-pasm_output_is( <<'CODE', <<'OUTPUT', "freeze class" );
-    newclass P10, "Foo"
-    set S10, P10
-    print S10
+pir_output_is( <<'CODE', <<'OUTPUT', "freeze class" );
+.const string fpmc = 'temp.fpmc'
+.sub 'main' :main
+    $P10 = newclass "Foo"
+    $S10 = $P10
+    print $S10
     print "\n"
-    freeze S11, P10
+    freeze $S11, $P10
     print "ok 1\n"
-    open P3, "temp.fpmc", 'w'
-    print P3, S11
-    close P3
+
+    $P0 = new ['FileHandle']
+    $P0.'open'(fpmc, 'w')
+    $P0.'print'($S11)
+    $P0.'close'()
     print "ok 2\n"
-    end
+.end
 CODE
 Foo
 ok 1
 ok 2
 OUTPUT
 
-pasm_output_is( <<'CODE', <<'OUTPUT', "thaw class into new interpreter" );
-    set S3, "temp.fpmc"
-    .include "stat.pasm"
-    stat I0, S3, .STAT_FILESIZE
-    gt I0, 1, ok1
-    print "stat failed\n"
+pir_output_is( <<'CODE', <<'OUTPUT', "thaw class into new interpreter" );
+.const string fpmc = "temp.fpmc"
+.sub 'main' :main
+    $P0 = new ['FileHandle']
+    $P0.'open'(fpmc, 'r')
+    if $P0 goto ok1
+
+    .include 'stdio.pasm'
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("couldn't open fpmc for reading")
     exit 1
+
 ok1:
-    open P3, S3, 'r'
-    read S3, P3, I0
-    close P3
+    $S3 = $P0.'readall'()
+    $P0.'close'()
     print "ok 1\n"
-    thaw P4, S3
+    $P4 = thaw $S3
     print "ok 2\n"
-    set S10, P4
-    print S10
+    $S10 = $P4
+    print $S10
     print "\n"
-    end
+.end
 CODE
 ok 1
 ok 2
@@ -413,54 +422,66 @@
 Foo
 OUTPUT
 
-pasm_output_is( <<'CODE', <<'OUTPUT', "freeze class w attr" );
-    newclass P10, "Foo"
-    addattribute P10, ".aa"
-    set S10, P10
-    print S10
+pir_output_is( <<'CODE', <<'OUTPUT', "freeze class w attr" );
+.const string fpmc = 'temp.fpmc'
+.sub 'main' :main
+    $P10 = newclass "Foo"
+    addattribute $P10, ".aa"
+    $S10 = $P10
+    print $S10
     print "\n"
-    freeze S11, P10
+    $S11 = freeze $P10
     print "ok 1\n"
-    open P3, "temp.fpmc", 'w'
-    print P3, S11
-    close P3
+
+    $P0 = new ['FileHandle']
+    $P0.'open'(fpmc, 'w')
+    $P0.'print'($S11)
+    $P0.'close'()
     print "ok 2\n"
-    end
+.end
 CODE
 Foo
 ok 1
 ok 2
 OUTPUT
 
-pasm_output_is( <<'CODE', <<'OUTPUT', "thaw class w attr into new interpreter" );
-    set S3, "temp.fpmc"
-    .include "stat.pasm"
-    stat I0, S3, .STAT_FILESIZE
-    gt I0, 1, ok1
-    print "stat failed\n"
+pir_output_is( <<'CODE', <<'OUTPUT', "thaw class w attr into new interpreter" );
+.const string fpmc = "temp.fpmc"
+.sub 'main' :main
+    $P0 = new ['FileHandle']
+    $P0.'open'(fpmc, 'r')
+    if $P0 goto ok1
+
+    .include 'stdio.pasm'
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("couldn't open fpmc for reading\n")
     exit 1
+
 ok1:
-    open P3, S3, 'r'
-    read S3, P3, I0
-    close P3
-    # print S3
-    # print "\n"
+    $S3 = $P0.'readall'()
+    $P0.'close'()
     print "ok 1\n"
-    thaw P4, S3
+
+    $P4 = thaw $S3
     print "ok 2\n"
-    set S10, P4
-    print S10
+
+    $S10 = $P4
+    print $S10
     print "\n"
 
-    new P5, S10
+    $P5 = new $S10
     print "ok 3\n"
-    new P6, ['String']
-    set P6, "ok 5\n"
-    setattribute P5, '.aa', P6
+
+    $P6 = new ['String']
+    $P6 = "ok 5\n"
+
+    setattribute $P5, '.aa', $P6
     print "ok 4\n"
-    getattribute P7, P5, '.aa'
-    print P7
-    end
+
+    $P7 = getattribute $P5, '.aa'
+    print $P7
+.end
 CODE
 ok 1
 ok 2
@@ -470,43 +491,47 @@
 ok 5
 OUTPUT
 
-pasm_output_is( <<'CODE', <<'OUTPUT', "thaw class w attr same interp" );
-    newclass P10, "Foo"
-    addattribute P10, ".aa"
-    addattribute P10, ".bb"
-    set S10, P10
-    print S10
+pir_output_is( <<'CODE', <<'OUTPUT', "thaw class w attr same interp" );
+.const string fpmc = 'temp.fpmc'
+.sub 'main' :main
+    $P10 = newclass "Foo"
+    addattribute $P10, ".aa"
+    addattribute $P10, ".bb"
+    $S10 = $P10
+    print $S10
     print "\n"
-    freeze S3, P10
-    open P3, "temp.fpmc", 'w'
-    print P3, S3
-    close P3
 
-    # print S3
-    # print "\n"
+    $S3 = freeze $P10
+    $P0 = new ['FileHandle']
+    $P0.'open'(fpmc, 'w')
+    $P0.'print'($S3)
+    $P0.'close'()
     print "ok 1\n"
-    thaw P4, S3
+
+    $P4 = thaw $S3
     print "ok 2\n"
-    set S10, P4
-    print S10
+
+    $S10 = $P4
+    print $S10
     print "\n"
 
-    new P5, S10
+    $P5 = new $S10
     print "ok 3\n"
-    new P6, ['String']
-    set P6, "ok 5\n"
-    setattribute P5, ["Foo"], ".aa", P6
-    new P6, ['String']
-    set P6, "ok 6\n"
-    setattribute P5, ["Foo"], ".bb", P6
-    print "ok 4\n"
-    getattribute P7, P5, ".aa"
-    print P7
-    getattribute P7, P5, ".bb"
-    print P7
-    end
 
+    $P6 = new ['String']
+    $P6 = "ok 5\n"
+    setattribute $P5, ["Foo"], ".aa", $P6
+
+    $P6 = new ['String']
+    $P6 = "ok 6\n"
+    setattribute $P5, ["Foo"], ".bb", $P6
+    print "ok 4\n"
 
+    $P7 = getattribute $P5, ".aa"
+    print $P7
+    $P7 = getattribute $P5, ".bb"
+    print $P7
+.end
 CODE
 Foo
 ok 1
@@ -518,37 +543,42 @@
 ok 6
 OUTPUT
 
-pasm_output_is( <<'CODE', <<'OUTPUT', "thaw object w attr into same interpreter" );
-    newclass P10, "Foo"
-    addattribute P10, ".aa"
-    addattribute P10, ".bb"
-    new P10, ['Foo']
-    print S10
-    freeze S3, P10
-    open P3, "temp.fpmc", 'w'
-    print P3, S3
-    close P3
+pir_output_is( <<'CODE', <<'OUTPUT', "thaw object w attr into same interpreter" );
+.const string fpmc = 'temp.fpmc'
+.sub 'main' :main
+    $P10 = newclass "Foo"
+    addattribute $P10, ".aa"
+    addattribute $P10, ".bb"
+
+    $P10 = new ['Foo']
+    $S3 = freeze $P10
     print "ok 1\n"
+    $P0 = new ['FileHandle']
+    $P0.'open'(fpmc, 'w')
+    $P0.'print'($S3)
+    $P0.'close'()
 
-    thaw P5, S3
+    $P5 = thaw $S3
     print "ok 2\n"
-    typeof S10, P5
-    print S10
+
+    $S10 = typeof $P5
+    print $S10
     print "\n"
 
     print "ok 3\n"
-    new P6, ['String']
-    set P6, "ok 5\n"
-    setattribute P5, ["Foo"], ".aa", P6
-    new P6, ['String']
-    set P6, "ok 6\n"
-    setattribute P5, ["Foo"], ".bb", P6
+    $P6 = new ['String']
+    $P6 = "ok 5\n"
+    setattribute $P5, ["Foo"], ".aa", $P6
+    $P6 = new ['String']
+    $P6 = "ok 6\n"
+    setattribute $P5, ["Foo"], ".bb", $P6
     print "ok 4\n"
-    getattribute P7, P5, ".aa"
-    print P7
-    getattribute P7, P5, ".bb"
-    print P7
-    end
+
+    $P7 = getattribute $P5, ".aa"
+    print $P7
+    $P7 = getattribute $P5, ".bb"
+    print $P7
+.end
 CODE
 ok 1
 ok 2
@@ -559,37 +589,44 @@
 ok 6
 OUTPUT
 
-pasm_output_is( <<'CODE', <<'OUTPUT', "thaw object w attr into new interpreter" );
-    set S3, "temp.fpmc"
-    .include "stat.pasm"
-    stat I0, S3, .STAT_FILESIZE
-    gt I0, 1, ok1
-    print "stat failed\n"
-    exit 1
+pir_output_is( <<'CODE', <<'OUTPUT', "thaw object w attr into new interpreter" );
+.const string fpmc = 'temp.fpmc'
+.sub 'main' :main
+    $P0 = new ['FileHandle']
+    $P0.'open'(fpmc, 'r')
+    if $P0 goto ok1
+
+    .include 'stdio.pasm'
+    $P0 = getinterp
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'("open failed\n")
+
 ok1:
-    open P3, S3, 'r'
-    read S3, P3, I0
-    close P3
+    $S3 = $P0.'readall'()
+    $P0.'close'()
 
-    thaw P5, S3
+    $P5 = thaw $S3
     print "ok 2\n"
-    typeof S10, P5
-    print S10
+    $S10 = typeof $P5
+    print $S10
     print "\n"
 
     print "ok 3\n"
-    new P6, ['String']
-    set P6, "ok 5\n"
-    setattribute P5, ["Foo"], ".aa", P6
-    new P6, ['String']
-    set P6, "ok 6\n"
-    setattribute P5, ["Foo"], ".bb", P6
+    $P6 = new ['String']
+    $P6 = "ok 5\n"
+    setattribute $P5, ["Foo"], ".aa", $P6
+
+    $P6 = new ['String']
+    $P6 = "ok 6\n"
+    setattribute $P5, ["Foo"], ".bb", $P6
+
     print "ok 4\n"
-    getattribute P7, P5, ".aa"
-    print P7
-    getattribute P7, P5, ".bb"
-    print P7
-    end
+    $P7 = getattribute $P5, ".aa"
+    print $P7
+
+    $P7 = getattribute $P5, ".bb"
+    print $P7
+.end
 CODE
 ok 2
 Foo

Modified: branches/gsoc_nfg/t/pmc/integer.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/integer.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/integer.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,7 +19,7 @@
 .sub 'test' :main
     .include 'test_more.pir'
 
-    plan(62)
+    plan(61)
     test_init()
     test_basic_math()
     test_truthiness_and_definedness()
@@ -321,8 +321,6 @@
     is($P2,3)
     mod $P2, $P0, $P1
     is($P2,0)
-    pow $P2, $P0, $P1
-    is($P2,36)
 .end
 
 

Modified: branches/gsoc_nfg/t/pmc/io.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/io.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/io.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -7,7 +7,7 @@
 use lib qw( . lib ../lib ../../lib );
 
 use Test::More;
-use Parrot::Test tests => 41;
+use Parrot::Test tests => 40;
 use Parrot::Test::Util 'create_tempfile';
 use Parrot::Test::Util 'create_tempfile';
 
@@ -41,145 +41,89 @@
 
 my (undef, $temp_file) = create_tempfile( UNLINK => 1 );
 
-pasm_output_is( <<"CODE", <<'OUTPUT', "open/close" );
-    open P0, "$temp_file", 'w'
-    print P0, "a line\\n"
-    close P0
-    open P0, "$temp_file", 'r'
-    read S0, P0, 20
-    print S0
-    end
-CODE
-a line
-OUTPUT
-
-pasm_output_is( <<"CODE", <<'OUTPUT', "timely destruction" );
-    interpinfo I0, 2    # GC mark runs
-    open P0, "$temp_file", 'w'
-        needs_destroy P0
-    print P0, "a line\\n"
-    null P0            # kill it
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "timely destruction (ops)");
+.loadlib 'io_ops'
+.const string temp_file = '%s'
+.sub main :main
+    interpinfo $I0, 2    # GC mark runs
+    $P0 = open temp_file, 'w'
+        needs_destroy $P0
+    print $P0, "a line\n"
+    null $P0            # kill it
     sweep 0            # a lazy GC has to close the PIO
-    open P0, "$temp_file", 'r'
-    read S0, P0, 20
-    print S0
-    end
-CODE
-a line
-OUTPUT
-
-# TT #1178
-pir_output_is( <<'CODE', <<'OUTPUT', "get_fd()/fdopen" );
-.sub main :main
-    getstdout $P0
-    $I0 = $P0.'get_fd'()
-    fdopen $P1, $I0, 'w'
-    defined $I0, $P1
-    unless $I0, nok
-    print $P1, "ok\n"
-    close $P1
-    end
-nok:
-    print "fdopen failed\n"
+    $P0 = open temp_file, 'r'
+    $S0 = $P0.'read'(20)
+    print $S0
 .end
 CODE
-ok
+a line
 OUTPUT
 
-# TT #1178
-pir_output_is( <<'CODE', <<'OUTPUT', 'fdopen - no close' );
+pir_output_is( <<'CODE', <<'OUTPUT', "read on invalid fh should throw exception (ops)" );
+.loadlib 'io_ops'
 .sub main :main
-    getstdout $P0
-    $I0 = $P0.'get_fd'()
-    fdopen $P1, $I0, 'w'
-    defined $I0, $P1
-    unless $I0, nok
-    print $P1, "ok\n"
-    end
-nok:
-    print "fdopen failed\n"
-.end
-CODE
-ok
-OUTPUT
+    new $P0, ['FileHandle']
 
-my (undef, $no_such_file) = create_tempfile( UNLINK => 1, OPEN => 0 );
+    push_eh _readline_handler
+    $S0 = readline $P0
+    print "not "
 
-pasm_output_is( <<"CODE", <<'OUTPUT', "get_bool" );
-    push_eh read_non_existent_file
-    open P0, "$no_such_file", 'r'
+_readline_handler:
+        print "ok 1\n"
+        pop_eh
 
-    print "Huh: '$no_such_file' exists? - not "
-ok1:
-    say "ok 1"
+    push_eh _read_handler
+    $S0 = read $P0, 1
+    print "not "
 
-    open P0, "$temp_file", 'w'
-    print P0, "a line\\n"
-    print P0, "a line\\n"
-    close P0
+_read_handler:
+        print "ok 2\n"
+        pop_eh
 
-    open P0, "$temp_file", 'r'
-    if P0, ok2
-    print "not "
-ok2:    say "ok 2"
-    read S0, P0, 1024
-    read S0, P0, 1024
-    unless P0, ok3
-    print "not "
-ok3:    say "ok 3"
-    defined I0, P0
-    if I0, ok4
-    print "not "
-ok4:    say "ok 4"
-    close P0
-    defined I0, P0        # closed file is still defined
-    if I0, ok5
-    print "not "
-ok5:    say "ok 5"
-    unless P0, ok6        # but false
+    push_eh _print_handler
+    print $P0, "kill me now\n"
     print "not "
-ok6:    say "ok 6"
-    end
-read_non_existent_file:
-    pop_eh
-    branch ok1
+
+_print_handler:
+        print "ok 3\n"
+        pop_eh
+
+.end
 CODE
 ok 1
 ok 2
 ok 3
-ok 4
-ok 5
-ok 6
 OUTPUT
 
-pasm_output_is( <<"CODE", <<'OUTPUT', "read on invalid fh should throw exception" );
-    new P0, ['FileHandle']
+pir_output_is( <<'CODE', <<'OUTPUT', "read on invalid fh should throw exception" );
+.sub main :main
+    new $P0, ['FileHandle']
 
     push_eh _readline_handler
-    readline S0, P0
+    $S0 = $P0.'readline'()
     print "not "
 
 _readline_handler:
-        print "ok 1\\n"
+        print "ok 1\n"
         pop_eh
 
     push_eh _read_handler
-    read S0, P0, 1
+    $S0 = $P0.'read'(1)
     print "not "
 
 _read_handler:
-        print "ok 2\\n"
+        print "ok 2\n"
         pop_eh
 
     push_eh _print_handler
-    print P0, "kill me now\\n"
+    print $P0, "kill me now\n"
     print "not "
 
 _print_handler:
-        print "ok 3\\n"
+        print "ok 3\n"
         pop_eh
 
-    end
+.end
 CODE
 ok 1
 ok 2
@@ -206,6 +150,7 @@
 close $FOO;
 
 pasm_output_is( <<"CODE", <<'OUTPUT', "open and readline" );
+.loadlib 'io_ops'
     open P0, "$temp_file"
     set S0, ""
     set S1, ""
@@ -224,6 +169,7 @@
 close $FOO;
 
 pasm_output_is( <<"CODE", <<'OUTPUT', "open and readline, no final newline" );
+.loadlib 'io_ops'
     open P0, "$temp_file"
     set S0, ""
     set S1, ""
@@ -240,6 +186,7 @@
 close $FOO;
 
 pasm_output_is( <<"CODE", <<'OUTPUT', "open & print" );
+.loadlib 'io_ops'
    set I0, -12
    set N0, 2.2
    set S0, "Foo"
@@ -268,6 +215,7 @@
 
 # write to file opened for reading
 pasm_output_is( <<"CODE", <<'OUTPUT', "3-arg open" );
+.loadlib 'io_ops'
    open P1, "$temp_file", 'w'
    print P1, "Foobar\\n"
    close P1
@@ -297,6 +245,7 @@
 OUTPUT
 
 pasm_output_is( <<"CODE", <<'OUTPUT', 'open and close' );
+.loadlib 'io_ops'
    open P1, "$temp_file", "w"
    print P1, "Hello, World!\\n"
    close P1
@@ -311,6 +260,7 @@
 OUTPUT
 
 pasm_output_is( <<"CODE", '', 'append' );
+.loadlib 'io_ops'
    open P1, "$temp_file", 'wa'
    print P1, "Parrot flies\\n"
    close P1
@@ -323,6 +273,7 @@
 OUTPUT
 
 pasm_output_is( <<"CODE", '', 'write to file' );
+.loadlib 'io_ops'
    open P1, "$temp_file", 'w'
    print P1, "Parrot overwrites\\n"
    close P1
@@ -333,43 +284,48 @@
 Parrot overwrites
 OUTPUT
 
-pasm_output_is( <<"CODE", '', "Parrot_io_flush on buffer full" );
-   set I0, 0
-   set I1, 10000
+pir_output_is( <<"CODE", '', "Parrot_io_flush on buffer full" );
+.sub "main"
+   set \$I0, 0
+   set \$I1, 10000
 
-   open P0, "$temp_file", 'w'
+   new \$P0, ['FileHandle']
+   \$P0.'open'("$temp_file", 'w')
 
 PRINT:
-   ge I0, I1, END
-   print P0, "words\\n"
-   inc I0
+   ge \$I0, \$I1, END
+   print \$P0, "words\\n"
+   inc \$I0
    branch PRINT
 
 END:
-   close P0
-   end
+   \$P0.'close'()
+.end
 CODE
 
 file_content_is( $temp_file, <<'OUTPUT' x 10000, 'buffered file contents' );
 words
 OUTPUT
 
-pir_output_is( <<"CODE", <<'OUTPUT', "turn off buffering" );
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "turn off buffering" );
+.const string temp_file = '%s'
+
 .sub main :main
-   open \$P0, "$temp_file", 'w'
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'w')
 
-#  set buffer type
-   \$P0.'buffer_type'('unbuffered')
+#   set buffer type
+    $P0.'buffer_type'('unbuffered')
 
-#  get buffer type
-   \$S0 = \$P0.'buffer_type'()
-   print \$S0
-   print "\\n"
+#   get buffer type
+    $S0 = $P0.'buffer_type'()
+    print $S0
+    print "\n"
 
-   print \$P0, "Howdy World\\n"
+    print $P0, "Howdy World\n"
 
-   close \$P0
-   end
+    $P0.'close'()
+    end
 .end
 CODE
 unbuffered
@@ -379,50 +335,54 @@
 Howdy World
 OUTPUT
 
-pir_output_is( <<"CODE", <<'OUTPUT', 'I/O buffering' );
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', 'I/O buffering' );
+.const string temp_file = '%s'
+
 .sub main
     .local string filename
-    filename = "$temp_file"
-    \$P1 = open filename, 'w'
+    filename = temp_file
+    $P1 = new ['FileHandle']
+    $P1.'open'(filename, 'w')
     .local int count, max, nltest
     count = 0
     max = 10000
   LOOP:
     if count > max goto DONE
-    \$S1 = count
-    \$S1 = concat \$S1, " "
-    print \$P1, \$S1
+    $S1 = count
+    $S1 = concat $S1, " "
+    print $P1, $S1
     inc count
     nltest = mod count, 20
     if nltest goto LOOP
-    print \$P1, "\\n"
+    print $P1, "\n"
     goto LOOP
   DONE:
-    print \$P1, "\\n"
-    close \$P1
+    print $P1, "\n"
+    $P1.'close'()
 
   PART_2:
-    \$P1 = open filename
-    \$I0 = 0
+    $P1 = new ['FileHandle']
+    $P1.'open'(filename)
+    $I0 = 0
   LINE:
-    \$S1 = readline \$P1
-    unless \$S1 goto SUCCESS
-    \$S1 = chopn \$S1, 1
+    $S1 = $P1.'readline'()
+    unless $S1 goto SUCCESS
+    $S1 = chopn $S1, 1
 
   NEXT_NR:
-    \$I1 = length \$S1
-    if \$I1 <= 1 goto LINE
-    \$S2 = ""
+    $I1 = length $S1
+    if $I1 <= 1 goto LINE
+    $S2 = ""
   SPLIT:
-    \$S3 = substr \$S1, 0, 1
-    \$S1 = replace \$S1, 0, 1, ""
-    if \$S3 == " " goto GOT_NR
-    \$S2 = concat \$S2, \$S3
+    $S3 = substr $S1, 0, 1
+    $S1 = replace $S1, 0, 1, ""
+    if $S3 == " " goto GOT_NR
+    $S2 = concat $S2, $S3
     goto SPLIT
   GOT_NR:
-    \$I1 = \$S2
-    if \$I0 != \$I1 goto FAILED
-    inc \$I0
+    $I1 = $S2
+    if $I0 != $I1 goto FAILED
+    inc $I0
     goto NEXT_NR
 
   FAILED:
@@ -439,18 +399,21 @@
 
 # TT #1178
 pir_output_is( <<'CODE', <<'OUT', 'standard file descriptors' );
+.include 'stdio.pasm'
 .sub main :main
-    getstdin $P0
-    $I0 = $P0.'get_fd'()
+    $P99 = getinterp
+    $P0  = $P99.'stdhandle'(.PIO_STDIN_FILENO)
+    $I0  = $P0.'get_fd'()
     # I0 is 0 on Unix and non-Null on stdio and win32
     print "ok 1\n"
-    getstdout $P1
+
+    $P1 = $P99.'stdhandle'(.PIO_STDOUT_FILENO)
     $I1 = $P1.'get_fd'()
     if $I1, OK_2
     print "not "
 OK_2:
     say "ok 2"
-    getstderr $P2
+    $P2 = $P99.'stdhandle'(.PIO_STDERR_FILENO)
     $I2 = $P2.'get_fd'()
     if $I2, OK_3
     print "not "
@@ -463,7 +426,8 @@
 ok 3
 OUT
 
-pasm_output_is( <<'CODE', <<'OUTPUT', 'printerr' );
+pasm_output_is( <<'CODE', <<'OUTPUT', 'printerr op' );
+.loadlib 'io_ops'
    new P0, ['String']
    set P0, "This is a test\n"
    printerr 10
@@ -481,27 +445,31 @@
 This is a test
 OUTPUT
 
-pasm_output_is( <<'CODE', <<'OUTPUT', 'puts method' );
-   getstdout P2
-   can I0, P2, "puts"
-   if I0, ok1
-   print "not "
+pir_output_is( <<'CODE', <<'OUTPUT', 'puts method' );
+.include 'stdio.pasm'
+.sub main :main
+    $P0 = getinterp
+    $P2 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+    can $I0, $P2, "puts"
+    if $I0, ok1
+    print "not "
 ok1:   print "ok 1\n"
-   set_args "0,0", P2, "ok 2\n"
-   callmethodcc P2, "puts"
-   end
+    set_args "0,0", $P2, "ok 2\n"
+    callmethodcc $P2, "puts"
+.end
 CODE
 ok 1
 ok 2
 OUTPUT
 
 pir_output_is( <<'CODE', <<'OUTPUT', 'puts method - PIR' );
-
+.include 'stdio.pasm'
 .sub main :main
    .local string s
    s = "ok 2\n"
    .local pmc io
-   io = getstdout
+   $P0 = getinterp
+   io = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
    $I0 = can io, "puts"
    if $I0 goto ok1
    print "not "
@@ -515,6 +483,7 @@
 OUTPUT
 
 pasm_output_is( <<'CODE', <<'OUTPUT', 'callmethod puts' );
+.loadlib 'io_ops'
    getstderr P2    # the object
    set S0, "puts"    # method
    set S5, "ok 1\n"    # 2nd param
@@ -530,6 +499,7 @@
 OUTPUT
 
 pasm_output_is( <<"CODE", <<'OUTPUT', 'seek/tell' );
+.loadlib 'io_ops'
    open P0, "$temp_file", 'w'
    print P0, "Hello "
    tell I0, P0
@@ -547,7 +517,20 @@
 Hello Parrot!
 OUTPUT
 
-pasm_error_output_like( <<"CODE", <<'OUTPUT', '32bit seek: exception' );
+pir_error_output_like( sprintf(<<'CODE', $temp_file), <<'OUTPUT', '32bit seek: exception' );
+.const string temp_file = '%s'
+.sub main :main
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'w')
+    $P0.'seek'(-1, 0)
+    say "error!"
+.end
+CODE
+/seek failed/
+OUTPUT
+
+pasm_error_output_like( <<"CODE", <<'OUTPUT', '32bit seek: exception (ops)' );
+.loadlib 'io_ops'
    open P0, "$temp_file", 'w'
    seek P0, -1, 0
    say "error!"
@@ -556,7 +539,20 @@
 /seek failed \(32bit\)/
 OUTPUT
 
-pasm_error_output_like( <<"CODE", <<'OUTPUT', '64bit seek: exception' );
+pir_error_output_like( sprintf(<<'CODE', $temp_file), <<'OUTPUT', '64bit seek: exception' );
+.const string temp_file = '%s'
+.sub main :main
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'w')
+    $P0.'seek'(-1, -1, 0)
+    say "error!"
+.end
+CODE
+/seek failed/
+OUTPUT
+
+pasm_error_output_like( <<"CODE", <<'OUTPUT', '64bit seek: exception (ops)' );
+.loadlib 'io_ops'
    open P0, "$temp_file", 'w'
    seek P0, -1, -1, 0
    say "error!"
@@ -565,7 +561,33 @@
 /seek failed \(64bit\)/
 OUTPUT
 
-pasm_output_is( <<"CODE", <<'OUTPUT', "peek" );
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "peek" );
+.const string temp_file = '%s'
+.sub main :main
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'w')
+    print $P0, "a line\n"
+    $P0.'close'()
+
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'r')
+    $S0 = $P0.'peek'()
+    print $S0
+    $S1 = $P0.'peek'()
+    print $S1
+    print "\n"
+    $S2 = $P0.'read'(2)
+    $S3 = $P0.'peek'()
+    print $S3
+    print "\n"
+.end
+CODE
+aa
+l
+OUTPUT
+
+pasm_output_is( <<"CODE", <<'OUTPUT', "peek (ops)" );
+.loadlib 'io_ops'
     open P0, "$temp_file", 'w'
     print P0, "a line\\n"
     close P0
@@ -585,7 +607,27 @@
 l
 OUTPUT
 
-pasm_output_is( <<"CODE", <<'OUTPUT', "peek on an empty file" );
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "peek on an empty file" );
+.const string temp_file = '%s'
+.sub main :main
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'w')
+    $P0.'close'()
+
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'r')
+    $S0 = $P0.'peek'()
+    eq $S0, "", OK1
+    print "not "
+OK1:
+    say "ok 1"
+.end
+CODE
+ok 1
+OUTPUT
+
+pasm_output_is( <<"CODE", <<'OUTPUT', "peek on an empty file (ops)" );
+.loadlib 'io_ops'
     open P0, "$temp_file", 'w'
     close P0
     open P0, "$temp_file", 'r'
@@ -603,15 +645,17 @@
 .sub _main
     # Write something into a file
     .local pmc out
-    out = open "$temp_file", 'w'
+    out = new ['FileHandle']
+    out.'open'("$temp_file", 'w')
     print out, "0123456789\\n"
-    close out
+    out.'close'()
 
     # read file contents back in
     .local pmc in
-    in = open "$temp_file", 'r'
+    in = new ['FileHandle']
+    in.'open'("$temp_file", 'r')
     .local string from_file
-    from_file = read in, 20
+    from_file = in.'read'(20)
 
     # Extract part of the read in file
     .local string head_from_file
@@ -629,15 +673,17 @@
 .sub _main
     # Write something into a file
     .local pmc out
-    out = open "$temp_file", 'w'
+    out = new ['FileHandle']
+    out.'open'("$temp_file", 'w')
     print out, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\\n"
-    close out
+    out.'close'()
 
     .local pmc in
     .local string line
-    in = open '$temp_file', 'r'
-    line = read in, 50000
-    close in
+    in = new ['FileHandle']
+    in.'open'('$temp_file', 'r')
+    line = in.'read'(50000)
+    in.'close'()
 
     .local string sub_1
     sub_1 = ''
@@ -663,6 +709,7 @@
 OUTPUT
 
 pir_error_output_like( <<'CODE', <<'OUT', 'read on null PMC throws exception');
+.loadlib 'io_ops'
 .sub main :main
     null $P1
     $S0 = read $P1, 1
@@ -677,64 +724,8 @@
 print $FOO "T\xc3\xb6tsch\n";
 close $FOO;
 
-pir_output_is( <<"CODE", <<"OUTPUT", "utf8 read enabled" );
-.sub main :main
-    .local pmc pio
-    .local int len
-    .include "stat.pasm"
-    .local string f
-    f = '$temp_file'
-    len = stat f, .STAT_FILESIZE
-    pio = open f, 'r'
-    pio.'encoding'("utf8")
-    \$S0 = read pio, len
-    close pio
-    \$I1 = charset \$S0
-    \$S2 = charsetname \$I1
-    say \$S2
-
-    \$I1 = encoding \$S0
-    \$S2 = encodingname \$I1
-    say \$S2
-
-    \$I1 = find_charset 'iso-8859-1'
-    trans_charset \$S1, \$S0, \$I1
-    print \$S1
-.end
-CODE
-unicode
-utf8
-T\xf6tsch
-OUTPUT
-
-pir_output_is( <<"CODE", <<"OUTPUT", "utf8 read enabled - readline" );
-.sub main :main
-    .local pmc pio
-    .local string f
-    f = '$temp_file'
-    pio = open f, 'r'
-    pio.'encoding'("utf8")
-    \$S0 = readline pio
-    close pio
-    \$I1 = charset \$S0
-    \$S2 = charsetname \$I1
-    say \$S2
-
-    \$I1 = encoding \$S0
-    \$S2 = encodingname \$I1
-    say \$S2
-
-    \$I1 = find_charset 'iso-8859-1'
-    trans_charset \$S1, \$S0, \$I1
-    print \$S1
-.end
-CODE
-unicode
-utf8
-T\xf6tsch
-OUTPUT
-
 pir_output_is( <<"CODE", <<"OUTPUT", "utf8 read enabled, read parts" );
+.loadlib 'io_ops'
 .sub main :main
     .local pmc pio
     .local int len
@@ -742,13 +733,14 @@
     .local string f
     f = '$temp_file'
     len = stat f, .STAT_FILESIZE
-    pio = open f, 'r'
+    pio = new ['FileHandle']
+    pio.'open'(f, 'r')
     pio.'encoding'("utf8")
-    \$S0 = read pio, 2
+    \$S0 = pio.'read'(2)
     len -= 2
-    \$S1 = read pio, len
+    \$S1 = pio.'read'(len)
     \$S0 .= \$S1
-    close pio
+    pio.'close'()
     \$I1 = charset \$S0
     \$S2 = charsetname \$I1
     say \$S2
@@ -775,9 +767,10 @@
 line 3
 EOS
     .local pmc pio, cl
-    pio = open    "$temp_file", 'w'
+    pio = new ['FileHandle']
+    pio.'open'("$temp_file", 'w')
     print pio, \$S0
-    close pio
+    pio.'close'()
     cl = new ['FileHandle']
     \$S1 = cl.'readall'('$temp_file')
     if \$S0 == \$S1 goto ok
@@ -797,10 +790,13 @@
 line 3
 EOS
     .local pmc pio, pio2
-    pio = open    "$temp_file", 'w'
+    pio = new ['FileHandle']
+    pio.'open'("$temp_file", 'w')
     print pio, \$S0
-    close pio
-    pio2 = open    "$temp_file", 'r'
+    pio.'close'()
+
+    pio2 = new ['FileHandle']
+    pio2.'open'("$temp_file", 'r')
     \$S1 = pio2.'readall'()
     if \$S0 == \$S1 goto ok
     print "not "
@@ -812,6 +808,7 @@
 OUTPUT
 
 pir_error_output_like( <<'CODE', <<"OUTPUT", "stat failed" );
+.loadlib 'io_ops'
 .sub main :main
     .local pmc pio
     .local int len

Modified: branches/gsoc_nfg/t/pmc/lexpad.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/lexpad.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/lexpad.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,9 +19,10 @@
 
 .sub main :main
     .include 'test_more.pir'
-    plan(4)
+    plan(8)
 
     new_test()
+    test_keyed()
     test_iter()
 .end
 
@@ -36,7 +37,31 @@
 end:
 .end
 
+.sub test_keyed
+    .local pmc p1
+    .lex 'p1', p1
+
+    $P0 = getinterp
+    $P0 = $P0['lexpad']
+    $I0 = elements $P0
+    is($I0, 1, "get LexPad elements")
 
+    $I0 = exists $P0['p1']
+    is($I0, 1, ".lex exists_keyed true")
+
+    $I0 = exists $P0['nosuchlex']
+    is($I0, 0, ".lex exists_keyed false")
+
+    $P1 = new 'Integer'
+    push_eh eh
+    $P0['nosuchlex'] = $P1
+    ok(0, "setting a non existent .lex should throw")
+    goto end
+eh:
+    pop_eh
+    ok(1, "setting a non existent .lex throws")
+end:
+.end
 
 .sub 'test_iter'
 

Modified: branches/gsoc_nfg/t/pmc/nci.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/nci.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/nci.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -608,24 +608,26 @@
 ok 1
 OUTPUT
 
-    pasm_output_is( <<'CODE', <<'OUTPUT', "nci_it" );
-  loadlib P1, "libnci_test"
+    pir_output_is( <<'CODE', <<'OUTPUT', "nci_it" );
+.loadlib 'io_ops'
+.sub 'main' :main
+  loadlib $P1, "libnci_test"
   printerr "loaded\n"
-  dlfunc P0, P1, "nci_it", "it"
+  dlfunc $P0, $P1, "nci_it", "it"
   printerr "dlfunced\n"
-  set S5, "ko\n"
-  set_args "0", S5
-  invokecc P0
-  get_results "0", I5
-  ne I5, 2, nok_1
+  set $S5, "ko\n"
+  set_args "0", $S5
+  invokecc $P0
+  get_results "0", $I5
+  ne $I5, 2, nok_1
   printerr "ok 2\n"
   end
 nok_1: printerr "nok 1\n"
-  printerr I5
+  printerr $I5
   printerr "\n"
   end
 nok_2: printerr "nok 2\n"
-  end
+.end
 CODE
 loaded
 dlfunced
@@ -636,6 +638,7 @@
     pir_output_is( <<'CODE', <<'OUTPUT', "nci_it" );
 
 .include "datatypes.pasm"
+.loadlib 'io_ops'
 
 .sub test :main
   loadlib $P1, "libnci_test"

Modified: branches/gsoc_nfg/t/pmc/packfile.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/packfile.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/packfile.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -298,7 +298,8 @@
     .local string filename, first
     push_eh load_error
     $S0 = '_filename'()
-    $P0 = open $S0, 'r'
+    $P0 = new ['FileHandle']
+    $P0.'open'($S0, 'r')
 
     first = $P0.'readall'()
 

Modified: branches/gsoc_nfg/t/pmc/packfileannotations.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/packfileannotations.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/packfileannotations.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -41,7 +41,8 @@
     .local pmc pf
 
     push_eh load_error
-    $P0 = open 't/native_pbc/annotations.pbc'
+    $P0 = new ['FileHandle']
+    $P0.'open'('t/native_pbc/annotations.pbc', 'r')
     $P0.'encoding'('binary')
     $S0 = $P0.'readall'()
     pf = new 'Packfile'

Modified: branches/gsoc_nfg/t/pmc/resizablebooleanarray.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/resizablebooleanarray.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/resizablebooleanarray.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -24,7 +24,7 @@
 
     .include 'test_more.pir'
 
-    plan(65)
+    plan(68)
 
     setting_array_size()
     setting_first_element()
@@ -46,6 +46,7 @@
     sparse_access()
     check_for_zeroedness()
     pop_into_sparse()
+    clone_empty()
     clone_tests()
     alternate_clone_tests()
     get_iter_test()
@@ -70,6 +71,16 @@
 
     $P0 = 7
     is($P0, 7, "shrinking via int assignment to RBA works")
+
+    new $P1, ['ExceptionHandler']
+    set_addr $P1, caught
+    $P1.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+    push_eh $P1
+    $P0 = -1
+    ok(0, "no exception caught for setting negative size")
+    .return()
+caught:
+    ok(1, "caught exception on setting negative size")
 .end
 
 
@@ -138,6 +149,17 @@
 
     set $I0, $P0[-1]
     is($I0, 0, "negative index retrieval is 0")
+
+    new $P1, ['ExceptionHandler']
+    set_addr $P1, caught
+    $P1.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+    push_eh $P1
+    set $I0, $P0[-2]
+    ok(0, "no exception caught for negative index out of range access")
+    .return()
+caught:
+    pop_eh
+    ok(1, "caught exception on negative index out of range access")
 .end
 
 
@@ -729,6 +751,15 @@
     print $I5
 .end
 
+.sub clone_empty
+    .local pmc rba1, rba2
+    .local int i
+    rba1 = new ['ResizableBooleanArray']
+    rba2 = clone rba1
+    i = elements rba2
+    is(i, 0, "clone empty passed")
+.end
+
 .sub clone_tests
     .local pmc rba1, rba2
     .local int i, failed

Modified: branches/gsoc_nfg/t/pmc/resizableintegerarray.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/resizableintegerarray.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/resizableintegerarray.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -28,6 +28,7 @@
      * Type of index (int, pmc)
      * index negative/in-range/beyond-end
      * Set doesn't clobber other elements
+     * Delete
 
  * Push/Unshift, Pop/Shift
      * Correct values
@@ -42,7 +43,7 @@
 
 .sub main :main
     .include 'test_more.pir'
-    plan(41)
+    plan(46)
 
     test_does_interfaces()
 
@@ -54,6 +55,7 @@
     test_cant_get_negative()
     test_set_beyond_end()
     test_get_beyond_end()
+    test_delete()
 
     test_conversion()
     test_conversion_overflow()
@@ -69,7 +71,9 @@
     test_cant_pop_empty()
     test_shift()
     test_unshift()
+    test_cant_shift_empty()
     test_iterator()
+    test_clone()
 .end
 
 .sub test_does_interfaces
@@ -143,7 +147,11 @@
 .sub test_distinct_storage
     # Walk the array in pseudo-random order
     # Pick a sample size $I4 and another number $I2, such that
-    #   ∀n: n > 0 ∧ $I2 ⁿ % $I4 = 1 ⇒ n % $I4 = 0
+    ############################################################
+    ##### Plase rewrite this with ascii chars, it got unreadable
+    ##### by editing with mixed charsets.
+    #  n: n > 0  $I2  % $I4 = 1  n % $I4 = 0
+    ############################################################
     $I4 = 17
     $I2 = 3
     # Create and fill array in random order
@@ -225,6 +233,27 @@
     is( $I0, 1, '... and should not extend array' )
 .end
 
+.sub test_delete
+    $P0 = new ['ResizableIntegerArray'], 3
+    $P0[0] = 9
+    $P0[1] = 8
+    $P0[2] = 7
+    delete $P0[1]
+    $I0 = elements $P0
+    is( $I0, 2, 'delete one element dec size')
+    $I0 = $P0[1]
+    is( $I0, 7, 'deleted move back the remaining part')
+    push_eh caught
+    delete $P0[2]
+    pop_eh
+    ok(0, 'delete ouf of bound should throw')
+    goto end
+caught:
+    pop_eh
+    ok(1, 'delete ouf of bound throws')
+end:
+.end
+
 .sub test_conversion
     $P0 = new ['ResizableIntegerArray']
     $P0 = 6
@@ -511,6 +540,17 @@
     is( $I1, 2, '... and stores values in correct order' )
 .end
 
+.sub test_cant_shift_empty
+    $P0 = new ['ResizableIntegerArray']
+    $I0 = 1
+    push_eh eh
+    $I0 = shift $P0
+    $I0 = 0
+eh:
+    pop_eh
+    ok( $I0, 'Shift from empty array should throw an exception' )
+.end
+
 .sub test_iterator
     $P0 = new ['ResizableIntegerArray']
     push_eh k0
@@ -548,6 +588,14 @@
     is( $I0, 4, 'get_iter: iterator returns all values in correct sequence' )
 .end
 
+.sub test_clone
+    $P0 = new ['ResizableIntegerArray']
+    push $P0, 1
+    $P1 = clone $P0
+    $I0 = iseq $P0, $P1
+    is( $I0, 1, 'cloned is equal to original')
+.end
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/gsoc_nfg/t/pmc/resizablepmcarray.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/resizablepmcarray.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/resizablepmcarray.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -21,7 +21,7 @@
     .include 'fp_equality.pasm'
     .include 'test_more.pir'
 
-    plan(129)
+    plan(142)
 
     resize_tests()
     negative_array_size()
@@ -39,8 +39,12 @@
     get_mro_tests()
     push_and_pop()
     unshift_and_shift()
+    shift_empty()
+    pop_empty()
     multikey_access()
     exists_and_defined()
+    delete_keyed()
+    get_rep()
     append_tests()
     splice_tests()
     splice_replace1()
@@ -356,7 +360,7 @@
 .sub compare_reverse
     .param string a
     .param string b
-    $I0 = cmp_str b, a
+    $I0 = cmp b, a
     .return($I0)
 .end
 
@@ -579,6 +583,74 @@
     is(elements, 0, "expectedly empty RPA has 0 elements")
 .end
 
+.sub shift_empty
+    .local pmc pmc_arr
+    pmc_arr = new ['ResizablePMCArray']
+    $I1 = 0
+    push_eh handle_i
+    $I0 = shift pmc_arr
+    inc $I1
+handle_i:
+    pop_eh
+    is($I1, 0, 'shift int from empty RPA throws')
+
+    push_eh handle_n
+    $N0 = shift pmc_arr
+    inc $I1
+handle_n:
+    pop_eh
+    is($I1, 0, 'shift num from empty RPA throws')
+
+    push_eh handle_s
+    $S0 = shift pmc_arr
+    inc $I1
+handle_s:
+    pop_eh
+    is($I1, 0, 'shift string from empty RPA throws')
+
+    push_eh handle_p
+    $P0 = shift pmc_arr
+    inc $I1
+handle_p:
+    pop_eh
+    is($I1, 0, 'shift pmc from empty RPA throws')
+
+.end
+
+.sub pop_empty
+    .local pmc pmc_arr
+    pmc_arr = new ['ResizablePMCArray']
+    $I1 = 0
+    push_eh handle_i
+    $I0 = pop pmc_arr
+    inc $I1
+handle_i:
+    pop_eh
+    is($I1, 0, 'pop int from empty RPA throws')
+
+    push_eh handle_n
+    $N0 = pop pmc_arr
+    inc $I1
+handle_n:
+    pop_eh
+    is($I1, 0, 'pop num from empty RPA throws')
+
+    push_eh handle_s
+    $S0 = pop pmc_arr
+    inc $I1
+handle_s:
+    pop_eh
+    is($I1, 0, 'pop string from empty RPA throws')
+
+    push_eh handle_p
+    $P0 = pop pmc_arr
+    inc $I1
+handle_p:
+    pop_eh
+    is($I1, 0, 'pop pmc from empty RPA throws')
+
+.end
+
 ## an Integer Matrix, as used by befunge as a playing field
 .sub multikey_access
     .local pmc matrix, row_in, row_out
@@ -618,6 +690,9 @@
     is(ex, 1, "element at idx 0 exists")
     def = defined array[0]
     is(def, 1, "element at idx 0 is defined")
+    $P0 = new 'Integer', 0
+    ex = exists array[$P0]
+    is(ex, 1, "element at PMC idx 0 exists")
 
     ## bounds checking: upper (7)
     ex = exists array[7]
@@ -662,6 +737,26 @@
     is(def, 0, "element at idx 5 is not defined")
 .end
 
+.sub delete_keyed
+    .local pmc array
+    array = new ['ResizablePMCArray']
+    push array, 'a'
+    push array, 'b'
+    push array, 'c'
+    $P0 = new 'Integer', 1
+    delete array[$P0]
+    $S0 = array[1]
+    is($S0, 'c', 'delete_keyed with PMC key')
+.end
+
+.sub get_rep
+    .local pmc array
+    array = new ['ResizablePMCArray']
+    push array, 'a'
+    push array, 'b'
+    $S0 = get_repr array
+    is($S0, '[ a, b ]', 'get_repr')
+.end
 
 .sub append_tests
 
@@ -831,6 +926,24 @@
     $S0 = get_array_string($P1)
     is($S0, "12A45", "splice with empty replacement")
 
+    $P1 = clone ar1
+    $P2 = clone ar2
+    splice $P1, $P2, -3, 2
+    $S0 = get_array_string($P1)
+    is($S0, "12ABCDE5", "splice with negative offset")
+
+    $P1 = clone ar1
+    $P2 = clone ar2
+    $I0 = 1
+    push_eh too_low
+    splice $P1, $P2, -10, 2
+    dec $I0
+    goto too_low_end
+too_low:
+    .get_results($P9)
+    finalize $P9
+too_low_end:
+    ok($I0, "splice with negative offset too low")
 .end
 
 

Modified: branches/gsoc_nfg/t/pmc/string.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/string.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/string.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -16,11 +16,10 @@
 
 =cut
 
-
 .sub main :main
     .include 'test_more.pir'
 
-    plan(167)
+    plan(120)
 
     set_or_get_strings()
     setting_integers()
@@ -37,16 +36,6 @@
     test_cmp()
     cmp_with_integer()
     test_substr()
-    bands_null_string()
-    test_bands_2()
-    test_bands_3()
-    bors_null_string()
-    test_bors_2()
-    test_bors_3()
-    bxors_null_string()
-    bxors_2()
-    bxors_3()
-    bnots_null_string()
     test_eq_str()
     test_ne_str()
     check_whether_interface_is_done()
@@ -69,7 +58,6 @@
     assign_null_string()
     access_keyed()
     # END_OF_TESTS
-
 .end
 
 .sub set_or_get_strings
@@ -424,268 +412,6 @@
     is( $P0, "This is a test\n",  'original is unmodified' )
 .end
 
-.sub bands_null_string
-    new $P1, ['String']
-    new $P2, ['String']
-    new $P3, ['String']
-
-    null $S1
-    set $P1, $S1
-
-    set $S2, "abc"
-    set $P2, $S2
-
-    bands $P1, $P2
-
-    null $S3
-    set $P3, $S3
-
-    is( $P1, $P3, 'band null, "abc" -> null' )
-
-    set $P1, ""
-    bands $P1, $P2
-    nok( $P1, 'band "", "abc" -> false' )
-
-    null $S2
-    set $P2, $S2
-    set $P1, "abc"
-
-    bands $P1, $P2
-
-    null $S3
-    set $P3, $S3
-
-    is( $P1, $P3, 'bands "abc", null -> null' )
-
-    set $P2, ""
-    bands $P1, $P2
-    nok( $P1, 'bans "abc", "" -> false' )
-
-.end
-
-.sub test_bands_2
-    new $P1, ['String']
-    new $P2, ['String']
-    set $P1, "abc"
-    set $P2, "EE"
-    bands $P1, $P2
-    is( $P1, "A@", 'bands "abc", "EE" -> "A@"' )
-    is( $P2, "EE", '$2 is unchanged' )
-.end
-
-.sub test_bands_3
-    new $P1, ['String']
-    new $P2, ['String']
-    new $P0, ['String']
-    set $P1, "abc"
-    set $P2, "EE"
-    bands $P0, $P1, $P2
-    is( $P0, "A@",  'bands "abc", "EE" -> "A@"' )
-    is( $P1, "abc", '$2 is unchanged' )
-    is( $P2, "EE",  '$3 is unchanged' )
-.end
-
-.sub bors_null_string
-    new $P1, ['String']
-    new $P2, ['String']
-    new $P3, ['String']
-
-    null $S1
-    null $S2
-    set $P1, $S1
-    set $P2, $S2
-    bors $P1, $P2
-    null $S3
-    set $P3, $S3
-    is( $P1, $P3, 'bors null, null -> null' )
-
-    null $S1
-    set $P1, $S1
-    set $P2, ""
-    bors $P1, $P2
-    null $S3
-    set $P3, $S3
-    is( $P1, $P3, 'bors null, "" -> null' )
-
-    bors $P2, $P1
-    is( $P2, $P3, 'bors "", null -> null' )
-
-    null $S1
-    set $P1, $S1
-    set $P2, "def"
-    bors $P1, $P2
-    is( $P1, "def", 'bors null, "def" -> "def" / true' )
-
-    null $S2
-    set $P2, $S2
-    bors $P1, $P2
-    is( $P1, "def", 'bors "def", null -> "def" / true' )
-
-    null $S1
-    null $S2
-    set $P1, $S1
-    set $P2, $S2
-    bors $P3, $P1, $P2
-    null $S4
-    is( $P3, $S4, 'bors null, null -> null' )
-
-    set $P1, ""
-    bors $P3, $P1, $P2
-    is( $P3, $S4, 'bors "", null -> null' )
-
-    bors $P3, $P2, $P1
-    is( $P3, $S4, 'bors null, "" -> null' )
-
-    set $P1, "def"
-    bors $P3, $P1, $P2
-    is( $P3, "def", 'bors "def", null -> "def"' )
-
-    bors $P3, $P2, $P1
-    is( $P3, "def", 'bors null, "def" -> "def"' )
-.end
-
-.sub test_bors_2
-    new $P1, ['String']
-    new $P2, ['String']
-    set $P1, "abc"
-    set $P2, "EE"
-
-    bors $P1, $P2
-    is( $P1, "egc", 'bors "abc", "EE" -> "egc"' )
-    is( $P2, "EE",  '$2 is unchanged' )
-.end
-
-.sub test_bors_3
-    new $P1, ['String']
-    new $P2, ['String']
-    new $P0, ['String']
-    set $P1, "abc"
-    set $P2, "EE"
-
-    bors $P0, $P1, $P2
-    is( $P0, "egc", 'bors "abc", "EE" -> "egc"' )
-    is( $P1, "abc", '$2 unchanged' )
-    is( $P2, "EE",  '$3 unchanged' )
-.end
-
-.sub bxors_null_string
-    new $P1, ['String']
-    new $P2, ['String']
-    new $P3, ['String']
-    null $S1
-    null $S2
-    set $P1, $S1
-    set $P2, $S2
-    bxors $P1, $P2
-    null $S3
-    is( $P1, $S3, 'bxors null, null -> null' )
-
-    null $S1
-    set $P1, $S1
-    set $P2, ""
-    bxors $P1, $P2
-    null $S3
-    is( $P1, $S3, 'bxors null, "" -> null' )
-
-    bxors $P2, $P1
-    is( $S2, $S3, 'bxors "", null -> null' )
-
-    null $S1
-    set $P1, $S1
-    set $P2, "abc"
-    bxors $P1, $P2
-    is( $P1, "abc", 'bxors null, "abc" -> "abc"' )
-
-    null $S2
-    set $P2, $S2
-    bxors $P1, $P2
-    is( $P1, "abc", 'bxors "abc", "null, -> "abc"' )
-
-    null $S1
-    null $S2
-    set $P1, $S1
-    set $P2, $S2
-    bxors $P3, $P1, $P2
-    null $S4
-    is( $P3, $S4, 'bxors3 null, null -> null' )
-
-    set $P1, ""
-    bxors $P3, $P1, $P2
-    is( $P3, $S4, 'bxors3 "", null -> null' )
-
-    bxors $P3, $P2, $P1
-    is( $P3, $S4, 'bxors3 null, null -> null' )
-
-    set $P1, "abc"
-    bxors $P3, $P1, $P2
-    is( $P3, "abc", 'bxors3 "abc", null -> "abc"' )
-
-    bxors $P3, $P2, $P1
-    is( $P3, "abc", 'bxors3 null, "abc" -> "abc"' )
-.end
-
-.sub bxors_2
-    new $P1, ['String']
-    new $P2, ['String']
-    new $P3, ['String']
-
-    set $P1, "a2c"
-    set $P2, "Dw"
-    bxors $P1, $P2
-    is( $P1, "%Ec", 'bxors "a2c", "Dw" -> "%Ec"' )
-    is( $P2, "Dw", '... $2 unchanged' )
-
-    set $P1, "abc"
-    set $P2, "   X"
-    bxors $P1, $P2
-    is( $P1, "ABCX", 'bxors "abc", "   X" -> "ABCX"' )
-    is( $P2, "   X", '... $2 unchanged' )
-.end
-
-.sub bxors_3
-    new $P1, ['String']
-    new $P2, ['String']
-    new $P0, ['String']
-
-    set $P1, "a2c"
-    set $P2, "Dw"
-    bxors $P0, $P1, $P2
-    is( $P0, "%Ec", 'bxors "a2c", "Dw" -> "%Ec"' )
-    is( $P1, "a2c", '... $2 unchanged' )
-    is( $P2, "Dw",  '... $3 unchanged' )
-
-    set $P1, "abc"
-    set $P2, "   Y"
-    bxors $P0, $P1, $P2
-    is( $P0, "ABCY", 'bxors "abc", "   Y" -> "ABCY"' )
-    is( $P1, "abc",  '... $2 unchanged' )
-    is( $P2, "   Y", '... $3 unchanged' )
-.end
-
-.sub bnots_null_string
-    new $P1, ['String']
-    new $P2, ['String']
-    new $P3, ['String']
-
-    null $S1
-    null $S2
-    set $P1, $S1
-    set $P2, $S2
-    bnots $P1, $P2
-    null $S3
-    is( $P1, $S3, 'bnots null, null -> null' )
-
-    null $S1
-    set $P1, $S1
-    set $P2, ""
-    bnots $P1, $P2
-    null $S3
-    is( $P1, $S3, 'bnots null, "" -> null' )
-
-    bnots $P2, $P1
-    is( $S2, $S3, 'bnots "", null -> null' )
-.end
-
 .sub test_eq_str
         new $P1, ['String']
         new $P2, ['String']

Modified: branches/gsoc_nfg/t/pmc/stringbuilder.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/stringbuilder.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/stringbuilder.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -33,6 +33,8 @@
     emit_with_named_args()
     emit_with_pos_and_named_args()
 
+    test_unicode_conversion_tt1665()
+
     done_testing()
 
     # END_OF_TESTS
@@ -247,6 +249,29 @@
 CODE
 .end
 
+.sub "test_unicode_conversion_tt1665"
+    .local pmc list
+    list = new 'ResizablePMCArray'
+    push list, 195
+    push list, 182
+
+    .local pmc iterator
+    iterator = iter list
+    .local pmc sb
+    sb = new 'StringBuilder'
+    sb = unicode:""
+    loop:
+      unless iterator goto done
+      $P1 = shift iterator
+      $I1 = $P1
+      $S1 = chr $I1
+      sb .= $S1
+      goto loop
+    done:
+      $S0 = sb
+
+    ok( $S0, "Pushing unicode strings doesn't kill StringBuilder")
+.end
 
 # Local Variables:
 #   mode: pir

Modified: branches/gsoc_nfg/t/pmc/stringhandle.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/stringhandle.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/stringhandle.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -138,25 +138,25 @@
     $P0.'open'('README', 'w')
 
     print $P0, "This is Parrot, version"
-    close $P0
+    $P0.'close'()
 
     $P0.'open'('README')
 
-    $S0 = read $P0, 14 # bytes
+    $S0 = $P0.'read'(14) # bytes
     if $S0 == 'This is Parrot' goto ok_1
     print 'not '
   ok_1:
-    say 'ok 1 - $S0 = read $P1, $I2'
+    say 'ok 1 - $S0 = $P1.read($I2)'
 
-    $S0 = read $P0, 9  # bytes
+    $S0 = $P0.'read'(9)  # bytes
     if $S0 == ', version' goto ok_2
     print 'not '
   ok_2:
-    say 'ok 2 - $S0 = read $P1, $I2 # again on same stream'
+    say 'ok 2 - $S0 = $P1.read($I2) # again on same stream'
 .end
 CODE
-ok 1 - $S0 = read $P1, $I2
-ok 2 - $S0 = read $P1, $I2 # again on same stream
+ok 1 - $S0 = $P1.read($I2)
+ok 2 - $S0 = $P1.read($I2) # again on same stream
 OUT
 
 # L<PDD22/I\/O PMC API/=item print>
@@ -273,7 +273,7 @@
     $I0 = stringhandle.'eof'()
     if $I0 goto end_read_loop
 
-    test_line = readline stringhandle
+    test_line = stringhandle.'readline'()
     if test_line == "" goto end_read_loop
     test_line = chomp( test_line )
     $I1 = test_line

Modified: branches/gsoc_nfg/t/pmc/sub.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/sub.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/sub.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -991,21 +991,22 @@
 unlink( $l1_pbc, $l2_pbc );
 
 pir_output_is( <<'CODE', <<'OUTPUT', "immediate code as const" );
-.sub make_pi :immediate :anon
-    $N0 = atan 1.0, 1.0
-    $N0 *= 4
+.sub make_phi :immediate :anon
+    $N0 = sqrt 5
+    $N0 += 1
+    $N0 /= 2
     $P0 = new ['Float']
     $P0 = $N0
     .return ($P0)
 .end
 
 .sub main :main
-    .const 'Sub' pi = "make_pi"
-    print pi
+    .const 'Sub' phi = "make_phi"
+    print phi
     print "\n"
 .end
 CODE
-3.14159265358979
+1.61803398874989
 OUTPUT
 
 pir_output_is( <<'CODE', <<'OUTPUT', "immediate code as const - obj" );

Modified: branches/gsoc_nfg/t/pmc/sys.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/sys.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/sys.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -31,11 +31,12 @@
 
 .sub _test :main
      .local pmc O
-     open O, "$temp_pir", 'w'
+     O = new ['FileHandle']
+     O.'open'("$temp_pir", 'w')
      print O, ".sub _main :main\\n"
      print O, "\tsay \\"Hello, World!\\"\\n"
      print O, ".end\\n"
-     close O
+     O.'close'()
      load_bytecode 'config.pbc'
     .local pmc conf_hash
     conf_hash = _config()

Modified: branches/gsoc_nfg/t/pmc/testlib/packfile_common.pir
==============================================================================
--- branches/gsoc_nfg/t/pmc/testlib/packfile_common.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/testlib/packfile_common.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -9,7 +9,7 @@
 
 .sub '_filename'
     .local string filename
-    filename = 't/native_pbc/number_1.pbc'
+    filename = 't/native_pbc/number.pbc'
     .return (filename)
 .end
 
@@ -20,9 +20,10 @@
     .local pmc pf, pio
     pf   = new ['Packfile']
     $S0  = '_filename'()
-    pio  = open $S0, 'r'
+    pio  = new ['FileHandle']
+    pio.'open'($S0, 'r')
     $S0  = pio.'readall'()
-    close pio
+    pio.'close'()
     pf   = $S0
     .return(pf)
 .end

Modified: branches/gsoc_nfg/t/pmc/threads.t
==============================================================================
--- branches/gsoc_nfg/t/pmc/threads.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/pmc/threads.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -833,7 +833,6 @@
 .include 'interpinfo.pasm'
 
 .loadlib 'foo_group'
-.loadlib 'myops_ops'
 
 .sub test
     .param pmc passed_value

Modified: branches/gsoc_nfg/t/src/extend.t
==============================================================================
--- branches/gsoc_nfg/t/src/extend.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/src/extend.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -334,13 +334,13 @@
 print $TEMP <<'EOF';
   .pcc_sub _sub1:
   get_params ""
-  printerr "in sub1\n"
+  print "in sub1\n"
   set_returns ""
   returncc
   .pcc_sub _sub2:
   get_params "0", P5
-  printerr P5
-  printerr "in sub2\n"
+  print P5
+  print "in sub2\n"
   set_returns ""
   returncc
 EOF
@@ -471,8 +471,8 @@
 print $TEMP <<'EOF';
   .sub foo
       .param pmc input
-      printerr input
-      printerr "in sub2\n"
+      print input
+      print "in sub2\n"
       $P0 = new "Integer"
       $P0 = 42
       .return($P0)
@@ -540,9 +540,9 @@
 print $TEMP <<'EOF';
   .pcc_sub _sub1:
   get_params ""
-  printerr "in sub1\n"
+  print "in sub1\n"
   find_lex P2, "no_such_var"
-  printerr "never\n"
+  print "never\n"
   returncc
 EOF
 close $TEMP;

Modified: branches/gsoc_nfg/t/steps/auto/ctags-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/ctags-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/auto/ctags-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -100,14 +100,14 @@
 } );
 $conf->options->set( %{$args} );
 $step = test_step_constructor_and_description($conf);
-ok(auto::ctags::_probe_for_ctags_output('Exuberant Ctags', 0),
+ok(auto::ctags::_probe_for_ctags_output($conf, 'Exuberant Ctags'),
     "Probe returned true when output matched");
-ok(! auto::ctags::_probe_for_ctags_output('alpha', 0),
+ok(! auto::ctags::_probe_for_ctags_output($conf, 'alpha'),
     "Probe returned false when output matched");
 {
     my $stdout;
     my $rv = capture(
-        sub { auto::ctags::_probe_for_ctags_output('Exuberant Ctags', 1) },
+        sub { auto::ctags::_probe_for_ctags_output($conf, 'Exuberant Ctags') },
         \$stdout
     );
     ok($rv, "Probe returned true when output matched");
@@ -115,7 +115,7 @@
 {
     my $stdout;
     my $rv = capture(
-        sub { auto::ctags::_probe_for_ctags_output('alpha', 1) },
+        sub { auto::ctags::_probe_for_ctags_output($conf, 'alpha') },
         \$stdout
     );
     ok(! $rv, "Probe returned false when output matched");

Deleted: branches/gsoc_nfg/t/steps/auto/extra_nci_thunks-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/extra_nci_thunks-01.t	Mon Jun  7 18:03:08 2010	(r47435)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,87 +0,0 @@
-#! perl
-# Copyright (C) 2010, Parrot Foundation.
-# $Id$
-# auto/extra_nci_thunks-01.t
-
-=head1 NAME
-
-auto/extra_nci_thunks-01.t - test auto::extra_nci_thunks
-
-=head1 SYNOPSIS
-
-    % prove t/steps/auto/extra_nci_thunks-01.t
-
-=head1 DESCRIPTION
-
-The files in this directory test functionality used by F<Configure.pl>.
-
-The tests in this file test auto::extra_nci_thunks.
-
-=head1 SEE ALSO
-
-config::auto::libjit, F<Configure.pl>.
-
-=cut
-
-use strict;
-use warnings;
-
-use Test::More tests => 21;
-
-use lib qw( lib t/configure/testlib );
-use Parrot::Configure;
-use Parrot::Configure::Options 'process_options';
-use Parrot::Configure::Test qw(
-    test_step_thru_runstep
-    rerun_defaults_for_testing
-    test_step_constructor_and_description
-);
-
-use_ok('config::init::defaults');
-use_ok('config::auto::extra_nci_thunks');
-
-my ($args, $step_list_ref) = process_options( {
-    argv => [ q{--without-extra-nci-thunks} ],
-    mode => 'configure',
-} );
-
-my $conf = Parrot::Configure->new;
-my $serialized = $conf->pcfreeze();
-
-test_step_thru_runstep( $conf, 'init::defaults', $args );
-
-my $pkg = 'auto::extra_nci_thunks';
-my ($step, $ret);
-
-$conf->add_steps($pkg);
-$conf->options->set(%$args);
-$step = test_step_constructor_and_description($conf);
-$ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
-is( $step->result(), 'no', "Result is 'no', as expected" );
-is( $conf->data->get( 'HAS_EXTRA_NCI_THUNKS' ), 0,
-    "Got the expected result with '--without-extra-nci-thunks' option" );
-
-$conf->replenish($serialized);
-
-($args, $step_list_ref) = process_options( {
-    argv => [ ],
-    mode => 'configure',
-} );
-rerun_defaults_for_testing($conf, $args);
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-$ret = $step->runstep($conf);
-ok( $ret, "runstep() returned a true value" );
-is( $step->result(), 'yes', "Default result is 'yes' as expected" );
-is( $conf->data->get( 'has_extra_nci_thunks' ), 1,
-    "Get the expected result without '--without-extra-nci-thunks' option" );
-
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/gsoc_nfg/t/steps/auto/gettext-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/gettext-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/auto/gettext-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -112,12 +112,12 @@
 
 ########## _evaluate_cc_run() ##########
 
-my ($test, $verbose);
+my $test;
 my $has_gettext;
 
 $test = "Hello, world!\n";
-$verbose = undef;
-$has_gettext = $step->_evaluate_cc_run($test, $verbose);
+$conf->options->set(verbose => undef);
+$has_gettext = $step->_evaluate_cc_run($conf, $test);
 is($has_gettext, 1, "Got expected value for has_gettext");
 is($step->result(), 'yes', "Expected result was set");
 # Prepare for next test
@@ -126,10 +126,10 @@
 {
     my $stdout;
     $test = "Hello, world!\n";
-    $verbose = 1;
+    $conf->options->set(verbose => 1);
     capture(
         sub {
-            $has_gettext = $step->_evaluate_cc_run($test, $verbose);
+            $has_gettext = $step->_evaluate_cc_run($conf, $test);
         },
         \$stdout,
     );
@@ -141,8 +141,8 @@
 }
 
 $test = "Foobar\n";
-$verbose = undef;
-$has_gettext = $step->_evaluate_cc_run($test, $verbose);
+$conf->options->set(verbose => undef);
+$has_gettext = $step->_evaluate_cc_run($conf, $test);
 is($has_gettext, 0, "Got expected value for has_gettext");
 ok(! defined $step->result(), "As expected, result is not yet defined");
 
@@ -157,11 +157,11 @@
 $conf->options->set( %{$args} );
 $step = test_step_constructor_and_description($conf);
 
-$verbose = undef;
+$conf->options->set(verbose => undef);
 $conf->data->set( ccflags => q{} );
 $conf->data->set( libs    => q{} );
 my $libs = q{foo bar baz};
-ok(auto::gettext::_handle_gettext($conf, $verbose, $libs),
+ok(auto::gettext::_handle_gettext($conf, $libs),
     "_handle_gettext() returned true value");
 like($conf->data->get( 'ccflags' ), qr/-DHAS_GETTEXT/,
     "HAS_GETTEXT was added to 'ccflags'");
@@ -172,9 +172,9 @@
 $conf->data->set( libs    => q{} );
 {
     my ($stdout, $rv);
-    $verbose = 1;
+    $conf->options->set(verbose => 1);
     capture(
-        sub { $rv = auto::gettext::_handle_gettext($conf, $verbose, $libs); },
+        sub { $rv = auto::gettext::_handle_gettext($conf, $libs); },
         \$stdout,
     );
     ok($rv, "_handle_gettext() returned true value");
@@ -186,6 +186,7 @@
         qr/ccflags:\s.*-DHAS_GETTEXT/,
         "Got expected verbose output"
     );
+    $conf->options->set(verbose => undef);
 }
 
 pass("Completed all tests in $0");

Modified: branches/gsoc_nfg/t/steps/auto/gmp-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/gmp-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/auto/gmp-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -110,12 +110,12 @@
 $conf->options->set( %{$args} );
 $step = test_step_constructor_and_description($conf);
 
-my ($test, $has_gmp, $verbose);
+my ($test, $has_gmp);
 
 $test = $step->{cc_run_expected};
 $has_gmp = 0;
-$verbose = undef;
-$has_gmp = $step->_evaluate_cc_run($conf, $test, $has_gmp, $verbose);
+$conf->options->set(verbose => undef);
+$has_gmp = $step->_evaluate_cc_run($conf, $test, $has_gmp);
 is($step->result, 'yes', "Got expected result");
 is($conf->data->get('gmp'), 'define', "Expected value set for 'gmp'");
 is($conf->data->get('HAS_GMP'), 1, "Expected value set for 'HAS_GMP'");
@@ -126,8 +126,8 @@
 
 $test = '12345';
 $has_gmp = 0;
-$verbose = undef;
-$has_gmp = $step->_evaluate_cc_run($conf, $test, $has_gmp, $verbose);
+$conf->options->set(verbose => undef);
+$has_gmp = $step->_evaluate_cc_run($conf, $test, $has_gmp);
 ok(! defined($step->result), "Result undefined as expected");
 is($has_gmp, 0, "gmp status unchanged");
 
@@ -135,10 +135,10 @@
     my $stdout;
     $test = $step->{cc_run_expected};
     $has_gmp = 0;
-    $verbose = 1;
+    $conf->options->set(verbose => 1);
     capture(
         sub { $has_gmp =
-            $step->_evaluate_cc_run($conf, $test, $has_gmp, $verbose); },
+            $step->_evaluate_cc_run($conf, $test, $has_gmp); },
         \$stdout,
     );
     is($step->result, 'yes', "Got expected result");

Modified: branches/gsoc_nfg/t/steps/auto/icu-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/icu-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/auto/icu-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -72,53 +72,59 @@
 
 my ($autodetect, $without);
 
-($icuconfig, $autodetect, $without) =
-    $step->_handle_search_for_icu_config( {
+($icuconfig, $autodetect, $without) = $step->_handle_search_for_icu_config(
+    $conf,
+    {
         icuconfig   => q{},
         autodetect  => 1,
         without     => 0,
-        verbose     => 0,
         ret         => -1,
-} );
+    }
+);
 ok(! defined $icuconfig, "icu-config not found, as expected");
 is($autodetect, 0, "Autodetection cancelled, as expected");
 is($without, 1, "Continuing to configure without ICU");
 
-($icuconfig, $autodetect, $without) =
-    $step->_handle_search_for_icu_config( {
+($icuconfig, $autodetect, $without) = $step->_handle_search_for_icu_config(
+    $conf,
+    {
         icuconfig   => q{},
         autodetect  => 1,
         without     => 0,
-        verbose     => 0,
         ret         => 256,
-} );
+    }
+);
 ok(! defined $icuconfig, "icu-config not found, as expected");
 is($autodetect, 0, "Autodetection cancelled, as expected");
 is($without, 1, "Continuing to configure without ICU");
 
-($icuconfig, $autodetect, $without) =
-    $step->_handle_search_for_icu_config( {
+($icuconfig, $autodetect, $without) = $step->_handle_search_for_icu_config(
+    $conf,
+    {
         icuconfig   => q{},
         autodetect  => 1,
         without     => 0,
-        verbose     => 0,
         ret         => 0,
-} );
+    }
+);
 is($icuconfig, q{icu-config}, "icu-config found, as expected");
 is($autodetect, 1, "Autodetection continues, as expected");
 is($without, 0, "Continuing to try to configure with ICU");
 
 {
+    $conf->options->set( verbose => 1 );
     my ($stdout, $stderr);
     capture( sub {
             ($icuconfig, $autodetect, $without) =
-                $step->_handle_search_for_icu_config( {
+            $step->_handle_search_for_icu_config(
+                $conf,
+                {
                     icuconfig   => q{},
                     autodetect  => 1,
                     without     => 0,
-                    verbose     => 1,
                     ret         => 0,
-            } );
+                }
+            );
         },
         \$stdout,
         \$stderr,
@@ -128,30 +134,33 @@
     is($without, 0, "Continuing to try to configure with ICU");
     like($stdout, qr/icu-config found/,
         "Got expected verbose output");
+    $conf->options->set( verbose => undef );
 }
 
 ########## _handle_autodetect() ##########
 
-($icuconfig, $autodetect, $without) =
-    $step->_handle_autodetect( {
+($icuconfig, $autodetect, $without) = $step->_handle_autodetect(
+    $conf,
+    {
         icuconfig   => $phony,
         autodetect  => 1,
         without     => 0,
-        verbose     => 0,
-} );
+    }
+);
 is($icuconfig, $phony, "icu-config unchanged, as expected");
 is($autodetect, 1, "Autodetection still active, as expected");
 is($without, 0, "Continuing to try to configure with ICU");
 
 {
+    $conf->options->set( verbose => 1 );
     my ($stdout, $stderr);
     capture( sub {
-        ($icuconfig, $autodetect, $without) =
-            $step->_handle_autodetect( {
+        ($icuconfig, $autodetect, $without) = $step->_handle_autodetect(
+            $conf,
+            {
                 icuconfig   => $phony,
                 autodetect  => 0,
                 without     => 0,
-                verbose     => 1,
             } );
         },
         \$stdout,
@@ -162,6 +171,7 @@
     is($without, 0, "Continuing to try to configure with ICU");
     like($stdout, qr/ICU autodetection disabled/s,
         "Got expected verbose output");
+    $conf->options->set( verbose => undef );
 }
 
 ########## _handle_icushared() ##########
@@ -247,7 +257,6 @@
             without         => 1,
             autodetect      => 1,
             icuconfig       => 1,
-            verbose         => 0,
         }
     );
 is($without, 1, "Not trying to configure with ICU");
@@ -262,7 +271,6 @@
             without         => 0,
             autodetect      => 0,
             icuconfig       => 1,
-            verbose         => 0,
         }
     );
 is($without, 0, "Still trying to configure with ICU");
@@ -277,7 +285,6 @@
             without         => 0,
             autodetect      => 1,
             icuconfig       => q{},
-            verbose         => 0,
         }
     );
 is($without, 0, "Still trying to configure with ICU");
@@ -292,48 +299,54 @@
     "Got expected die message");
 
 {
+    $conf->options->set( verbose => 1 );
     my $phony = q{/path/to/icu-config};
     my ($stdout, $stderr);
     capture(
-        sub { auto::icu::_verbose_report(1, $phony, undef, undef); },
+        sub { auto::icu::_verbose_report($conf, $phony, undef, undef); },
         \$stdout,
         \$stderr,
     );
     like( $stdout, qr/icuconfig:\s+$phony/s,
         "Got expected verbose output"
     );
+    $conf->options->set( verbose => undef );
 }
 
 {
+    $conf->options->set( verbose => 1 );
     my $phony = q{-lalpha};
     my ($stdout, $stderr);
     capture(
-        sub { auto::icu::_verbose_report(1, undef, $phony, undef); },
+        sub { auto::icu::_verbose_report($conf, undef, $phony, undef); },
         \$stdout,
         \$stderr,
     );
     like( $stdout, qr/icushared='$phony'/s,
         "Got expected verbose output"
     );
+    $conf->options->set( verbose => undef );
 }
 
 {
+    $conf->options->set( verbose => 1 );
     my $phony = q{alpha/include};
     my ($stdout, $stderr);
     capture(
-        sub { auto::icu::_verbose_report(1, undef, undef, $phony); },
+        sub { auto::icu::_verbose_report($conf, undef, undef, $phony); },
         \$stdout,
         \$stderr,
     );
     like( $stdout, qr/headers='$phony'/s,
         "Got expected verbose output"
     );
+    $conf->options->set( verbose => undef );
 }
 
 {
     my ($stdout, $stderr);
     capture(
-        sub { auto::icu::_verbose_report(0, 'alpha', 'beta', 'gamma'); },
+        sub { auto::icu::_verbose_report($conf, 'alpha', 'beta', 'gamma'); },
         \$stdout,
         \$stderr,
     );
@@ -343,6 +356,7 @@
 ########## _handle_icuconfig_errors() ##########
 
 {
+    $conf->options->set( verbose => undef );
     my ($stdout, $stderr);
     capture(
         sub {
@@ -368,13 +382,14 @@
 my $status = $conf->data->get( 'ccflags' );
 
 {
+    $conf->options->set(verbose => 1);
     my ($stdout, $stderr);
     capture(
         sub {
-           auto::icu::_handle_ccflags_status($conf,
+           auto::icu::_handle_ccflags_status(
+               $conf,
                {
                    ccflags_status  => 1,
-                   verbose         => 1,
                    icuheaders      => $icuheaders,
                },
            );
@@ -388,13 +403,14 @@
 $conf->data->set( ccflags => $status ); # re-set for next test
 
 {
+    $conf->options->set(verbose => 1);
     my ($stdout, $stderr);
     capture(
         sub {
-           auto::icu::_handle_ccflags_status($conf,
+           auto::icu::_handle_ccflags_status(
+               $conf,
                {
                    ccflags_status  => 0,
-                   verbose         => 1,
                    icuheaders      => $icuheaders,
                },
            );
@@ -427,13 +443,14 @@
 $conf->data->set( ccflags => $status ); # re-set for next test
 
 {
+    $conf->options->set( verbose => undef );
     my ($stdout, $stderr);
     capture(
         sub {
-           auto::icu::_handle_ccflags_status($conf,
+           auto::icu::_handle_ccflags_status(
+               $conf,
                {
                    ccflags_status  => 0,
-                   verbose         => 0,
                    icuheaders      => $icuheaders,
                },
            );
@@ -652,6 +669,7 @@
         $conf->options->set( %{$args} );
         $step = test_step_constructor_and_description($conf);
         {
+            $conf->options->set( verbose => 1 );
             my ($stdout, $stderr, $ret);
             my $icuconfig;
             my ($without, $icushared, $icuheaders);
@@ -664,7 +682,6 @@
                             without         => 0,
                             autodetect      => 1,
                             icuconfig       => $icuconfig,
-                            verbose         => 1,
                         }
                     );
                 },

Modified: branches/gsoc_nfg/t/steps/auto/msvc-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/msvc-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/auto/msvc-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -93,15 +93,13 @@
 
 $major = 13;
 $minor = 99;
-$verbose = undef;
-$status = $step->_handle_not_msvc($conf, $major, $minor, $verbose);
+$status = $step->_handle_not_msvc($conf, $major, $minor);
 ok(! defined $status, 'sub return value, as expected, not yet set');
 ok(! $step->result(), 'result, as expected, not yet set');
 
 $major = 13;
 $minor = undef;
-$verbose = undef;
-$status = $step->_handle_not_msvc($conf, $major, $minor, $verbose);
+$status = $step->_handle_not_msvc($conf, $major, $minor);
 ok($status, 'sub return value, as expected, set to true value');
 is($step->result(), q{no}, 'Got expected result');
 ok(! defined ($conf->data->get( 'msvcversion' )),
@@ -109,13 +107,21 @@
 
 $major = undef;
 $minor = 99;
-$verbose = undef;
-$status = $step->_handle_not_msvc($conf, $major, $minor, $verbose);
+$status = $step->_handle_not_msvc($conf, $major, $minor);
 ok($status, 'sub return value, as expected, set to true value');
 is($step->result(), q{no}, 'Got expected result');
 ok(! defined ($conf->data->get( 'msvcversion' )),
     'msvcversion is undef, as expected');
 
+$conf->replenish($serialized);
+
+########## _handle_not_msvc() ##########
+
+($args, $step_list_ref) = process_options( {
+    argv            => [ q{--verbose=1} ],
+    mode            => q{configure},
+} );
+$conf->options->set(%{$args});
 {
     my $stdout;
     $major = undef;
@@ -123,7 +129,7 @@
     $verbose = 1;
     capture(
         sub { $status =
-            $step->_handle_not_msvc($conf, $major, $minor, $verbose); },
+            $step->_handle_not_msvc($conf, $major, $minor); },
         \$stdout,
     );
     ok($status, 'sub return value, as expected, set to true value');
@@ -141,8 +147,7 @@
 
 $major = 13;
 $minor = 99;
-$verbose = undef;
-$msvcversion = $step->_compose_msvcversion($major, $minor, $verbose);
+$msvcversion = $step->_compose_msvcversion($major, $minor);
 is($msvcversion, '13.99', "Got expected MSVC version");
 is($step->result(), 'yes, 13.99', "Got expected result");
 $step->set_result(undef);
@@ -151,10 +156,9 @@
     my $stdout;
     $major = 13;
     $minor = 99;
-    $verbose = 1;
     capture(
         sub { $msvcversion =
-            $step->_compose_msvcversion($major, $minor, $verbose); },
+            $step->_compose_msvcversion($major, $minor); },
         \$stdout,
     );
     is($msvcversion, '13.99', "Got expected MSVC version");

Modified: branches/gsoc_nfg/t/steps/auto/neg_0-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/neg_0-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/auto/neg_0-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -55,11 +55,10 @@
 
 my $d_neg_0;
 my $orig_has_neg_0 = 0;
-my $verbose = $conf->data->get('verbose');
 
 $d_neg_0 = '-0';
 
-is( $step->_evaluate_cc_run($conf, $d_neg_0, $orig_has_neg_0, $verbose),
+is( $step->_evaluate_cc_run($conf, $d_neg_0, $orig_has_neg_0),
     1,
     '_evaluate_cc_run() completed satisfactorily' );
 
@@ -67,7 +66,7 @@
 
 $d_neg_0 = '0';
 
-is( $step->_evaluate_cc_run($conf, $d_neg_0, $orig_has_neg_0, $verbose),
+is( $step->_evaluate_cc_run($conf, $d_neg_0, $orig_has_neg_0),
     0,
     '_evaluate_cc_run() completed satisfactorily' );
 is( $step->result(), 'no', 'Got expected result' );
@@ -85,7 +84,6 @@
 $conf->options->set( %{$args} );
 $step = test_step_constructor_and_description($conf);
 
-$verbose = $conf->options->get('verbose');
 my $has_neg_0;
 
 $d_neg_0 = '-0';
@@ -94,7 +92,7 @@
     capture(
         sub {
             $has_neg_0 = $step->_evaluate_cc_run(
-                $conf, $d_neg_0, $orig_has_neg_0, $verbose
+                $conf, $d_neg_0, $orig_has_neg_0
             ),
         },
         \$stdout,
@@ -111,7 +109,7 @@
     capture(
         sub {
             $has_neg_0 = $step->_evaluate_cc_run(
-                $conf, $d_neg_0, $orig_has_neg_0, $verbose
+                $conf, $d_neg_0, $orig_has_neg_0
             ),
         },
         \$stdout,

Modified: branches/gsoc_nfg/t/steps/auto/opengl-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/opengl-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/auto/opengl-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -5,7 +5,7 @@
 
 use strict;
 use warnings;
-use Test::More tests => 32;
+use Test::More tests => 29;
 use Carp;
 use lib qw( lib );
 use_ok('config::auto::opengl');
@@ -138,26 +138,8 @@
     my ($glut_api_version, $glut_brand);
     capture(
         sub { ($glut_api_version, $glut_brand) = $step->_evaluate_cc_run(
+            $conf,
             $test,
-            0,
-        ); },
-        \$stdout,
-        \$stderr,
-    );
-    is( $glut_api_version, $try[0],
-        "Got first expected return value for _evaluate_cc_run()." );
-    is( $glut_brand, $try[1],
-        "Got first expected return value for _evaluate_cc_run()." );
-    ok(! $stdout, "Nothing captured on STDOUT, as expected");
-}
-
-{
-    my ($stdout, $stderr);
-    my ($glut_api_version, $glut_brand);
-    capture(
-        sub { ($glut_api_version, $glut_brand) = $step->_evaluate_cc_run(
-            $test,
-            $conf->options->get( 'verbose' )
         ); },
         \$stdout,
         \$stderr,
@@ -171,6 +153,8 @@
         qr/yes, $glut_brand API version $glut_api_version/,
         "Got expected verbose output for _evaluate_cc_run()"
     );
+    # prepare for next test
+    $conf->options->set(verbose => undef);
 }
 
 ########## _handle_glut() ##########

Modified: branches/gsoc_nfg/t/steps/auto/pcre-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/pcre-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/auto/pcre-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -98,14 +98,13 @@
 
 # Mock different outcomes of _evaluate_cc_run
 my ($test, $has_pcre);
-my $verbose = $conf->options->get('verbose');
 
 $test = q{pcre foobar};
-ok(! $step->_evaluate_cc_run($test, $verbose),
+ok(! $step->_evaluate_cc_run($conf, $test),
     "Got expected setting for HAS_PCRE");
 
 $test = q{pcre 4.1};
-ok($step->_evaluate_cc_run($test, $verbose),
+ok($step->_evaluate_cc_run($conf, $test),
     "_evaluate_cc_run returned true value as expected");
 is($step->result(), q{yes, 4.1}, "Got expected PCRE version");
 
@@ -122,14 +121,13 @@
 $step = test_step_constructor_and_description($conf);
 
 # Mock different outcomes of _evaluate_cc_run
-$verbose = $conf->options->get('verbose');
 
 $test = q{pcre 4.0};
 {
     my ($stdout, $stderr);
     capture(
         sub {
-            $has_pcre = $step->_evaluate_cc_run($test, $verbose);
+            $has_pcre = $step->_evaluate_cc_run($conf, $test);
         },
         \$stdout,
     );

Modified: branches/gsoc_nfg/t/steps/auto/readline-02.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/readline-02.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/auto/readline-02.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -35,10 +35,10 @@
 
 ########## _evaluate_cc_run() ##########
 
-my ($has_readline, $verbose);
+my ($has_readline);
 
-$verbose = undef;
-$has_readline = $step->_evaluate_cc_run($verbose);
+$conf->options->set(verbose => undef);
+$has_readline = $step->_evaluate_cc_run($conf);
 is($has_readline, 1, "Got expected value for has_readline");
 is($step->result(), 'yes', "Expected result was set");
 # Prepare for next test
@@ -46,9 +46,9 @@
 
 {
     my $stdout;
-    $verbose = 1;
+    $conf->options->set(verbose => 1);
     capture(
-        sub { $has_readline = $step->_evaluate_cc_run($verbose); },
+        sub { $has_readline = $step->_evaluate_cc_run($conf); },
         \$stdout,
     );
     is($has_readline, 1, "Got expected value for has_readline");
@@ -56,6 +56,7 @@
     like($stdout, qr/\(yes\)/, "Got expected verbose output");
     # Prepare for next test
     $step->set_result(undef);
+    $conf->options->set(verbose => undef);
 }
 
 ########## _handle_readline() ##########

Modified: branches/gsoc_nfg/t/steps/auto/zlib-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/auto/zlib-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/auto/zlib-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -90,8 +90,6 @@
    '-lz',
    "_select_lib() returned expected value");
 
-my $verbose = undef;
-
 $conf->replenish($serialized);
 
 ########## --without-zlib; _evaluate_cc_run() ##########
@@ -105,8 +103,8 @@
 my ($test, $has_zlib);
 $test = qq{1.2.3\n};
 $has_zlib = 0;
-$verbose = undef;
-$has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib, $verbose);
+$conf->options->set(verbose => undef);
+$has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib);
 is($has_zlib, 1, "'has_zlib' set as expected");
 is($step->result(), 'yes, 1.2.3', "Expected result was set");
 # Prepare for next test
@@ -114,8 +112,8 @@
 
 $test = qq{foobar};
 $has_zlib = 0;
-$verbose = undef;
-$has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib, $verbose);
+$conf->options->set(verbose => undef);
+$has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib);
 is($has_zlib, 0, "'has_zlib' set as expected");
 ok(! defined $step->result(), "Result is undefined, as expected");
 
@@ -123,10 +121,10 @@
     my $stdout;
     $test = qq{1.2.3\n};
     $has_zlib = 0;
-    $verbose = 1;
+    $conf->options->set(verbose => 1);
     capture(
         sub { $has_zlib =
-            $step->_evaluate_cc_run($conf, $test, $has_zlib, $verbose); },
+            $step->_evaluate_cc_run($conf, $test, $has_zlib); },
         \$stdout,
     );
     is($has_zlib, 1, "'has_zlib' set as expected");

Modified: branches/gsoc_nfg/t/steps/gen/opengl-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/gen/opengl-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/gen/opengl-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -5,7 +5,7 @@
 
 use strict;
 use warnings;
-use Test::More tests =>  7;
+use Test::More tests =>  20;
 use Carp;
 use lib qw( lib );
 use_ok('config::gen::opengl');
@@ -14,6 +14,7 @@
 use Parrot::Configure::Test qw(
     test_step_constructor_and_description
 );
+use IO::CaptureOutput qw( capture );
 
 ########## regular ##########
 
@@ -27,17 +28,84 @@
 my $conf = Parrot::Configure::Step::Test->new;
 $conf->include_config_results( $args );
 
-my $pkg = q{gen::opengl};
+my ($pkg, $step, $result);
+my $serialized = $conf->pcfreeze();
+
+$pkg = q{gen::opengl};
 $conf->add_steps($pkg);
 $conf->options->set( %{$args} );
-my $step = test_step_constructor_and_description($conf);
+$step = test_step_constructor_and_description($conf);
 
 ##### mock no OpenGL #####
 $conf->data->set( has_opengl => 0 );
-my $result = $step->runstep($conf);
+$result = $step->runstep($conf);
 ok($result, "runstep() returned true value");
 is($step->result(), q{skipped}, "Got expected result when no 'has_opengl'" );
 
+$conf->replenish($serialized);
+
+########### verbose ###########
+
+($args, $step_list_ref) = process_options( {
+    argv => [ q{--verbose} ],
+    mode => q{configure},
+} );
+
+$conf->add_steps($pkg);
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+{
+    my ($stdout, $stderr);
+    capture(
+        sub { $result = $step->runstep($conf); },
+        \$stdout,
+        \$stderr,
+    );
+    ok($result, "runstep() returned true value");
+    like( $stdout,
+        qr/Checking for OpenGL headers using the following globs/s,
+        "Got expected verbose output"
+    );
+    like( $stdout,
+        qr/Found the following OpenGL headers/s,
+        "Got expected verbose output"
+    );
+    like( $stdout,
+        qr/PASS\s+FAIL\s+IGNORE\s+HEADER/s,
+        "Got expected verbose output"
+    );
+    like( $stdout,
+        qr/unique signatures successfully translated/s,
+        "Got expected verbose output"
+    );
+}
+
+$conf->replenish($serialized);
+
+########### extra verbose ###########
+
+($args, $step_list_ref) = process_options( {
+    argv => [ q{--verbose=3} ],
+    mode => q{configure},
+} );
+
+$conf->add_steps($pkg);
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+{
+    my ($stdout, $stderr);
+    capture(
+        sub { $result = $step->runstep($conf); },
+        \$stdout,
+        \$stderr,
+    );
+    ok($result, "runstep() returned true value");
+    like( $stdout,
+        qr/COUNT\s+NCI SIGNATURE/s,
+        "Got expected verbose output"
+    );
+}
+
 pass("Completed all tests in $0");
 
 ################### DOCUMENTATION ###################

Modified: branches/gsoc_nfg/t/steps/gen/platform-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/gen/platform-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/gen/platform-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -42,18 +42,17 @@
 my $platform_orig = $conf->data->get('osname');
 my $archname_orig = $conf->data->get('archname');
 $conf->data->set( archname => 'foo-bar' );
-my $verbose = 0;
 
 ########## _get_generated() ##########
 
 my $TEMP_generated_orig = $conf->data->get('TEMP_generated');
 {
-    $verbose = 1;
+    $conf->options->set(verbose => 1);
     my ($stdout, $stderr, $rv);
     my $expected = q{foo};
     $conf->data->set( TEMP_generated => $expected );
     capture(
-        sub { $rv = $step->_get_generated( $conf, $verbose ) },
+        sub { $rv = $step->_get_generated( $conf ) },
         \$stdout,
         \$stderr,
     );
@@ -61,8 +60,8 @@
     like( $stdout, qr/\($expected\)/, "Got expected verbose output");
 }
 $conf->data->set( TEMP_generated => undef );
-$verbose = 0;
-is( $step->_get_generated( $conf, $verbose ), q{},
+$conf->options->set(verbose => 0);
+is( $step->_get_generated( $conf ), q{},
     "Got expected generated");
 
 # re-set to original values

Modified: branches/gsoc_nfg/t/steps/init/defaults-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/init/defaults-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/init/defaults-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -5,7 +5,7 @@
 
 use strict;
 use warnings;
-use Test::More tests => 37;
+use Test::More tests => 49;
 use Carp;
 use Cwd;
 use File::Copy;
@@ -143,6 +143,44 @@
 is($conf->data->get( 'linkflags' ), '-bundle -L/usr/local/lib64',
     "Got expected value for 'linkflags'");
 
+$conf->replenish($serialized);
+
+##### with extra-nci-thunks #####
+($args, $step_list_ref) = process_options(
+    {
+        argv => [ ],
+        mode => q{configure},
+    }
+);
+
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+$ret = $step->runstep($conf);
+ok( defined $ret, "runstep() returned defined value" );
+ok($conf->data->get( 'has_extra_nci_thunks' ),
+    "Got expected value for has_extra_nci_thunks" );
+ok($conf->data->get( 'HAS_EXTRA_NCI_THUNKS' ),
+    "Got expected value for HAS_EXTRA_NCI_THUNKS" );
+
+$conf->replenish($serialized);
+
+##### without extra-nci-thunks #####
+($args, $step_list_ref) = process_options(
+    {
+        argv => [ q{--without-extra-nci-thunks} ],
+        mode => q{configure},
+    }
+);
+
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+$ret = $step->runstep($conf);
+ok( defined $ret, "runstep() returned defined value" );
+ok(! $conf->data->get( 'has_extra_nci_thunks' ),
+    "Got expected value for has_extra_nci_thunks" );
+ok(! $conf->data->get( 'HAS_EXTRA_NCI_THUNKS' ),
+    "Got expected value for HAS_EXTRA_NCI_THUNKS" );
+
 pass("Completed all tests in $0");
 
 ################### DOCUMENTATION ###################

Modified: branches/gsoc_nfg/t/steps/init/hints/darwin-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/init/hints/darwin-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/init/hints/darwin-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -40,10 +40,11 @@
 my $stored = $conf->data->get($problematic_flag);
 
 {
+    $conf->options->set( verbose => undef );
     my ($stdout, $stderr);
     capture(
         sub { init::hints::darwin::_precheck(
-            $problematic_flag, $stored, 0
+            $conf, $problematic_flag, $stored
         ) },
         \$stdout,
         \$stderr,
@@ -52,10 +53,11 @@
 }
 
 {
+    $conf->options->set( verbose => 1 );
     my ($stdout, $stderr);
     capture(
         sub { init::hints::darwin::_precheck(
-            $problematic_flag, $stored, 1
+            $conf, $problematic_flag, $stored
         ) },
         \$stdout,
         \$stderr,
@@ -68,10 +70,11 @@
 }
 
 {
+    $conf->options->set( verbose => 1 );
     my ($stdout, $stderr);
     capture(
         sub { init::hints::darwin::_precheck(
-            $problematic_flag, q{}, 1
+            $conf, $problematic_flag, q{}
         ) },
         \$stdout,
         \$stderr,
@@ -81,6 +84,7 @@
         "_precheck():  Got expected verbose output" );
     like($stdout, qr/Pre-check:\s+\(nil\)/,
         "_precheck():  Got expected verbose output" );
+    $conf->options->set( verbose => undef );
 }
 
 ##### _strip_arch_flags_engine #####
@@ -107,22 +111,24 @@
 ##### _postcheck #####
 
 {
+    $conf->options->set( verbose => undef );
     my $flag = 'ccflags';
     my $flagsref = { 'ccflags' => 'my ccflag' };
     my ($stdout, $stderr);
 
     capture(
         sub { init::hints::darwin::_postcheck(
-            $flagsref, $flag, 0
+            $conf, $flagsref, $flag
         ) },
         \$stdout,
         \$stderr,
     );
     ok( ! $stdout, "_postcheck():  Non-verbose mode produced no output" );
 
+    $conf->options->set( verbose => 1 );
     capture(
         sub { init::hints::darwin::_postcheck(
-            $flagsref, $flag, 1
+            $conf, $flagsref, $flag
         ) },
         \$stdout,
         \$stderr,
@@ -131,10 +137,11 @@
     like($stdout, qr/Post-check:\s+$flagsref->{$flag}/,
         "_postcheck():  Got expected verbose output" );
 
+    $conf->options->set( verbose => 1 );
     $flagsref = { 'ccflags' => undef };
     capture(
         sub { init::hints::darwin::_postcheck(
-            $flagsref, $flag, 1
+            $conf, $flagsref, $flag
         ) },
         \$stdout,
         \$stderr,
@@ -164,10 +171,11 @@
         "_strip_arch_flags(): '-arch' flags and extra whitespace removed",
     );
 
+    $conf->options->set( verbose => 1 );
     my ($stdout, $stderr);
     capture(
         sub {
-            $flagsref = init::hints::darwin::_strip_arch_flags($conf, 1);
+            $flagsref = init::hints::darwin::_strip_arch_flags($conf);
         },
         \$stdout,
         \$stderr,
@@ -351,17 +359,17 @@
     $addl_flags_ref = undef;
     $flagsref = undef;
     $title = 'Fink';
-    $verbose = 0;
+    $conf->options->set( 'verbose' => undef );
     ok( init::hints::darwin::_add_to_flags(
-        $addl_flags_ref, $flagsref, $title, $verbose
+        $conf, $addl_flags_ref, $flagsref, $title
     ), "_add_to_flags(): returned true value when no probes found" );
 
-    $verbose = 1;
+    $conf->options->set( 'verbose' => 1 );
     {
         my ($stdout, $stderr);
         capture(
             sub { init::hints::darwin::_add_to_flags(
-                $addl_flags_ref, $flagsref, $title, $verbose
+                $conf, $addl_flags_ref, $flagsref, $title
             ); },
             \$stdout,
             \$stderr,
@@ -381,9 +389,9 @@
     $flagsref->{ccflags} = " -pipe -fno-common -Wno-long-double ";
     $flagsref->{linkflags} = undef;
     $title = 'Fink';
-    $verbose = 0;
+    $conf->options->set( 'verbose' => undef );
     my $rv = init::hints::darwin::_add_to_flags(
-        $addl_flags_ref, $flagsref, $title, $verbose
+        $conf, $addl_flags_ref, $flagsref, $title
     );
     is( $flagsref->{linkflags}, " $addl_flags_ref->{linkflags}",
         "_add_to_flags():  flag added where not previously populated" );

Modified: branches/gsoc_nfg/t/steps/init/hints/linux-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/init/hints/linux-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/init/hints/linux-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -37,17 +37,16 @@
 ##### _handle_icc_ccflags() #####
 
 my $ccflags = '';
-my $verbose = 0;
-$ccflags = init::hints::linux::_handle_icc_ccflags($ccflags, $verbose);
+$ccflags = init::hints::linux::_handle_icc_ccflags($conf, $ccflags);
 like( $ccflags, qr/\s-we147/, "On icc, 'cc_flags' set as expected" );
 
 $ccflags = '';
-$verbose = 1;
 {
+    $conf->options->set( verbose => 1 );
     my ($stdout, $stderr);
     capture(
         sub { $ccflags =
-            init::hints::linux::_handle_icc_ccflags($ccflags, $verbose); },
+            init::hints::linux::_handle_icc_ccflags($conf, $ccflags); },
         \$stdout,
         \$stderr,
     );

Modified: branches/gsoc_nfg/t/steps/inter/libparrot-01.t
==============================================================================
--- branches/gsoc_nfg/t/steps/inter/libparrot-01.t	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/t/steps/inter/libparrot-01.t	Mon Jun  7 18:03:08 2010	(r47436)
@@ -5,7 +5,7 @@
 
 use strict;
 use warnings;
-use Test::More tests => 48;
+use Test::More tests => 74;
 use Carp;
 use lib qw( lib t/configure/testlib );
 use_ok('config::inter::libparrot');
@@ -258,6 +258,101 @@
 $conf->data->set('has_dynamic_linking' => $has_dynamic_linking_orig);
 @prompts = ();
 
+##### get_libs() #####
+
+my %seen;
+{
+    local $^O = 'foobar';
+    %seen = map { $_ => 1 } inter::libparrot::get_libs();
+    is( scalar keys %seen, 1, "Got expected number of libs: generic" );
+    ok( $seen{'libparrot.so'}, "Got expected lib" );
+}
+
+{
+    local $^O = 'MSWin32';
+    %seen = map { $_ => 1 } inter::libparrot::get_libs();
+    is( scalar keys %seen, 3, "Got expected number of libs: Win32" );
+    is_deeply(
+        \%seen,
+        {
+            'libparrot.dll' => 1,
+            'libparrot.lib' => 1,
+            'libparrot.dll.a' => 1,
+        },
+        "Got expected libs"
+    );
+}
+
+{
+    local $^O = 'cygwin';
+    %seen = map { $_ => 1 } inter::libparrot::get_libs();
+    is( scalar keys %seen, 1, "Got expected number of libs: cygwin" );
+    is_deeply(
+        \%seen,
+        {
+            'libparrot.dll.a' => 1,
+        },
+        "Got expected libs"
+    );
+}
+
+{
+    local $^O = 'darwin';
+    %seen = map { $_ => 1 } inter::libparrot::get_libs();
+    is( scalar keys %seen, 2, "Got expected number of libs: darwin" );
+    is_deeply(
+        \%seen,
+        {
+            'libparrot.dylib' => 1,
+            'libparrot.a' => 1,
+        },
+        "Got expected libs"
+    );
+}
+
+##### get_libpaths() #####
+
+%seen = map { $_ => 1 } inter::libparrot::get_libpaths($conf);
+ok( $seen{'/usr/local/lib'}, "Got expected lib: generic" );
+ok( $seen{'/usr/lib'}, "Got expected lib: generic" );
+
+{
+    local $^O  = 'MSWin32';
+    local $ENV{PATH} = 'alpha;beta';
+    %seen = map { $_ => 1 } inter::libparrot::get_libpaths($conf);
+    ok( $seen{'/usr/local/lib'}, "Got expected lib: MSWin32" );
+    ok( $seen{'/usr/lib'}, "Got expected lib: MSWin32" );
+    ok( $seen{'alpha'}, "Got expected lib: MSWin32" );
+    ok( $seen{'beta'}, "Got expected lib: MSWin32" );
+}
+
+{
+    local $ENV{LD_LIBRARY_PATH} = 'alpha:beta';
+    %seen = map { $_ => 1 } inter::libparrot::get_libpaths($conf);
+    ok( $seen{'/usr/local/lib'}, "Got expected lib: LD_LIBRARY_PATH" );
+    ok( $seen{'/usr/lib'}, "Got expected lib: LD_LIBRARY_PATH" );
+    ok( $seen{'alpha'}, "Got expected lib: LD_LIBRARY_PATH" );
+    ok( $seen{'beta'}, "Got expected lib: LD_LIBRARY_PATH" );
+}
+
+{
+    local $ENV{LD_RUN_PATH} = 'alpha:beta';
+    %seen = map { $_ => 1 } inter::libparrot::get_libpaths($conf);
+    ok( $seen{'/usr/local/lib'}, "Got expected lib: LD_RUN_PATH" );
+    ok( $seen{'/usr/lib'}, "Got expected lib: LD_RUN_PATH" );
+    ok( $seen{'alpha'}, "Got expected lib: LD_RUN_PATH" );
+    ok( $seen{'beta'}, "Got expected lib: LD_RUN_PATH" );
+}
+
+{
+    local $ENV{DYLD_LIBRARY_PATH} = 'alpha:beta';
+    %seen = map { $_ => 1 } inter::libparrot::get_libpaths($conf);
+    ok( $seen{'/usr/local/lib'}, "Got expected lib: DYLD_LIBRARY_PATH" );
+    ok( $seen{'/usr/lib'}, "Got expected lib: DYLD_LIBRARY_PATH" );
+    ok( $seen{'alpha'}, "Got expected lib: DYLD_LIBRARY_PATH" );
+    ok( $seen{'beta'}, "Got expected lib: DYLD_LIBRARY_PATH" );
+}
+
 pass("Completed all tests in $0");
 
 ################### DOCUMENTATION ###################

Modified: branches/gsoc_nfg/tools/dev/fetch_languages.pl
==============================================================================
--- branches/gsoc_nfg/tools/dev/fetch_languages.pl	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/tools/dev/fetch_languages.pl	Mon Jun  7 18:03:08 2010	(r47436)
@@ -48,7 +48,7 @@
 my %update_cmd = (
     SVN => [qw(svn update)],
     GIT => [qw(git pull)],
-    HG  => [qw(hg pull)],
+    HG  => [qw(hg pull --update)],
 );
 
 my @hlls = (

Modified: branches/gsoc_nfg/tools/dev/mk_language_shell.pl
==============================================================================
--- branches/gsoc_nfg/tools/dev/mk_language_shell.pl	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/tools/dev/mk_language_shell.pl	Mon Jun  7 18:03:08 2010	(r47436)
@@ -210,10 +210,11 @@
     load_bytecode 'distutils.pbc'
 
     .local int reqsvn
-    $P0 = open 'PARROT_REVISION', 'r'
-    $S0 = readline $P0
+    $P0 = new 'FileHandle'
+    $P0.'open'('PARROT_REVISION', 'r')
+    $S0 = $P0.'readline'()
     reqsvn = $S0
-    close $P0
+    $P0.'close'()
 
     .local pmc config
     config = get_config()
@@ -227,7 +228,7 @@
     $S0 = $I0
     $S1 .= $S0
     $S1 .= ")\n"
-    printerr $S1
+    print $S1
     end
   L1:
 

Copied: branches/gsoc_nfg/tools/dev/mk_packfile_pbc (from r47434, trunk/tools/dev/mk_packfile_pbc)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gsoc_nfg/tools/dev/mk_packfile_pbc	Mon Jun  7 18:03:08 2010	(r47436, copy of r47434, trunk/tools/dev/mk_packfile_pbc)
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# sh tools/dev/mk_packfile_pbc
+#
+# generate t/native_pbc/*.pbc for testing Packfile* PMCs.
+
+./parrot -o t/native_pbc/integer.pbc -a - <<EOF
+print 0x10203040
+end
+EOF
+[ $? -le 0 ] && echo "t/native_pbc/integer.pbc updated"
+./parrot -o t/native_pbc/number.pbc t/native_pbc/testdata/number.pasm && echo "t/native_pbc/number.pbc updated"
+./parrot -o t/native_pbc/string.pbc t/native_pbc/testdata/string.pasm  && echo "t/native_pbc/string.pbc updated"
+
+./parrot -o t/native_pbc/annotations.pbc - <<EOF
+.sub 'main'
+.annotate "file", "annotations.pir"
+.annotate "creator", "Parrot Foundation"
+.annotate "line", 1
+    say "Hi"
+    say "line"
+.annotate "line", 2
+    .return ()
+.end
+EOF
+

Modified: branches/gsoc_nfg/tools/dev/nci_thunk_gen.pir
==============================================================================
--- branches/gsoc_nfg/tools/dev/nci_thunk_gen.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/tools/dev/nci_thunk_gen.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -45,8 +45,11 @@
     sigs = 'read_sigs'()
 
     $S0 = 'read_from_opts'('output')
-    $P0 = open $S0, 'w'
-    setstdout $P0
+    $P0 = new ['FileHandle']
+    $P0.'open'($S0, 'w')
+    $P1 = getinterp
+    .include 'stdio.pasm'
+    $P1.'stdhandle'(.PIO_STDOUT_FILENO, $P0)
 
     if targ == 'head'          goto get_targ
     if targ == 'thunks'        goto get_targ
@@ -708,7 +711,9 @@
 
 .sub 'read_sigs'
     .local pmc stdin, seen, sigs
-    stdin = getstdin
+    $P0 = getinterp
+    .include 'stdio.pasm'
+    stdin = $P0.'stdhandle'(.PIO_STDIN_FILENO)
     seen  = new ['Hash']
     sigs  = new ['ResizablePMCArray']
 
@@ -735,7 +740,10 @@
                 $S0 = 'sprintf'(<<'ERROR', full_sig, lineno, $I0)
 Ignored signature '%s' on line %d (previously seen on line %d)
 ERROR
-                printerr $S0
+                $P0 = getinterp
+                .include 'stdio.pasm'
+                $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+                $P1.'print'($S0)
             end_dup_warn:
             goto read_loop
         unseen:
@@ -758,7 +766,7 @@
     .param pmc fh
 
     .local string line
-    line = readline fh
+    line = fh.'readline'()
 
     # handle comments
     $I0 = index line, '#'

Modified: branches/gsoc_nfg/tools/dev/pbc_to_exe.pir
==============================================================================
--- branches/gsoc_nfg/tools/dev/pbc_to_exe.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/tools/dev/pbc_to_exe.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -55,7 +55,8 @@
 
   open_outfile:
     .local pmc outfh
-    outfh = open cfile, 'w'
+    outfh = new ['FileHandle']
+    outfh.'open'(cfile, 'w')
     unless outfh goto err_outfh
     print outfh, <<'HEADER'
 #include "parrot/parrot.h"
@@ -215,7 +216,8 @@
 .sub 'generate_code'
     .param string infile
     .local pmc ifh
-    ifh = open infile, 'r'
+    ifh = new ['FileHandle']
+    ifh.'open'(infile, 'r')
     unless ifh goto err_infile
 
     .local pmc codestring
@@ -229,7 +231,7 @@
     .local string pbcstring
     .local int pbclength
 
-    pbcstring = read ifh, 16384
+    pbcstring = ifh.'read'(16384)
     pbclength = length pbcstring
     unless pbclength > 0 goto read_done
 
@@ -251,7 +253,7 @@
     goto read_loop
 
   read_done:
-    close ifh
+    ifh.'close'()
 
     push codestring, "\n};\n\nconst int bytecode_size = "
     $S0 = size
@@ -304,7 +306,8 @@
 .sub 'generate_code_gcc'
     .param string infile
     .local pmc ifh
-    ifh = open infile, 'r'
+    ifh = new ['FileHandle']
+    ifh.'open'(infile, 'r')
     unless ifh goto err_infile
 
     .local pmc encoding_table
@@ -323,7 +326,7 @@
     .local string pbcstring
     .local int pbclength
 
-    pbcstring = read ifh, 16384
+    pbcstring = ifh.'read'(16384)
     pbclength = length pbcstring
     unless pbclength > 0 goto read_done
 
@@ -346,7 +349,7 @@
     goto read_loop
 
   read_done:
-    close ifh
+    ifh.'close'()
 
     push codestring, '"'
     push codestring, "\n;\n\n"
@@ -430,7 +433,8 @@
     rc_contents .= "\"\n"
 
     .local pmc rc_fh
-    rc_fh = open rc_path, 'w'
+    rc_fh = new ['FileHandle']
+    rc_fh.'open'(rc_path, 'w')
     unless rc_fh goto err_rc_open
     print rc_fh, rc_contents
     $I0 = rc_fh.'close'()

Modified: branches/gsoc_nfg/tools/docs/filename_and_chapter.pl
==============================================================================
--- branches/gsoc_nfg/tools/docs/filename_and_chapter.pl	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/tools/docs/filename_and_chapter.pl	Mon Jun  7 18:03:08 2010	(r47436)
@@ -19,6 +19,13 @@
                       ['running.pod', 'Parrot\'s command line options'],
                     ];
 
+my $PIR_chap_list_ref = [ 'ch01_introduction.pod', 'ch02_getting_started.pod',
+                          'ch03_basic_syntax.pod', 'ch04_variables.pod',
+                          'ch05_control_structures.pod', 'ch06_subroutines.pod',
+                          'ch07_objects.pod', 'ch08_io.pod',
+                          'ch09_exceptions.pod',
+                        ];
+
 my $lang = @$item_list_ref - 1;
 my $MOD_BUILD_PATH='build/modified_pod/';
 
@@ -46,6 +53,9 @@
 \documentclass[11pt,a4paper,oneside]{report}
 \usepackage{graphics,graphicx}
 \usepackage{colortbl}
+%
+%\setcounter{secnumdepth}{2}
+%\setcounter{tocdepth}{2}
 
 \begin{document}
 \tableofcontents
@@ -57,6 +67,28 @@
     $parser->parse_file( "${MOD_BUILD_PATH}$item_list_ref->[$i][0]" );
 }
 
+print $TEX_FH <<'PIR_TITEL';
+\chapter{PIR Guide}
+
+PIR_TITEL
+
+open my $PIR_TEX_FH, '>', 'build/pir_guide_tex.in';
+$lang = @$PIR_chap_list_ref - 1;
+for my $i ( 0..$lang ) {
+    my $parser = Pod::PseudoPod::LaTeX->new();
+    $parser->output_fh( $PIR_TEX_FH );
+    $parser->parse_file( 'book/pir/' . $PIR_chap_list_ref->[$i] );
+}
+close( $PIR_TEX_FH );
+
+open $PIR_TEX_FH, '<', 'build/pir_guide_tex.in';
+while( <$PIR_TEX_FH> ) {
+    s/^\\section\*/\\section/;
+    s/subsubsub/subsub/;
+    print $TEX_FH $_;
+}
+close( $PIR_TEX_FH );
+
 print $TEX_FH <<'FOOTER';
 \end{document}
 FOOTER

Modified: branches/gsoc_nfg/tools/install/smoke.pl
==============================================================================
--- branches/gsoc_nfg/tools/install/smoke.pl	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/tools/install/smoke.pl	Mon Jun  7 18:03:08 2010	(r47436)
@@ -108,12 +108,19 @@
 $filename = 'test.pg';
 open $FH, '>', $filename
         or die "Can't open $filename ($!).\n";
-print $FH "token TOP { \\s* }\n";
+print $FH <<'PGE';
+grammar WSpace
+
+token TOP { \s* }
+PGE
 close $FH;
-$out = `$parrot $libdir/PGE/Perl6Grammar.pir $filename`;
-ok($out =~ /^\n## <::TOP>/, "check PGE");
+$out = `$parrot $libdir/PGE/Perl6Grammar.pbc $filename`;
+ok($out =~ /## <WSpace::TOP>/, "check PGE");
 unlink($filename);
 
+SKIP:
+{
+skip("pirc", 1) unless (-e $pirc);
 $filename = 'test.pir';
 open $FH, '>', $filename
         or die "Can't open $filename ($!).\n";
@@ -126,6 +133,7 @@
 $out = `$pirc -n $filename`;
 ok($out eq "ok\n", "check pirc");
 unlink($filename);
+}
 
 $filename = 'test.nqp';
 open $FH, '>', $filename

Modified: branches/gsoc_nfg/tools/util/inc_ver.pir
==============================================================================
--- branches/gsoc_nfg/tools/util/inc_ver.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/tools/util/inc_ver.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -5,37 +5,40 @@
 .sub 'main' :main
     .local string version_file_name
     version_file_name = 'VERSION'
+
     # read the version
-    $P0 = open version_file_name, 'r'
-    $S0 = readline $P0
-    close $P0
+    $P0 = new 'FileHandle'
+    $P0.'open'( version_file_name, 'r' )
+    $S0 = $P0.'readline'()
+    $P0.'close'()
 
     print 'version: '
     print $S0
 
     # split the version
-    $P0 = split '.', $S0
+    $P1 = split '.', $S0
 
     # increment version
-    $I0 = $P0[1]
+    $I0 = $P1[1]
     inc $I0
     if $I0 != 12 goto NOT_NILL
-    $I0 = $P0[0]
+    $I0 = $P1[0]
     inc $I0
-    $P0[0] = $I0
+    $P1[0] = $I0
     $I0 = 0
 NOT_NILL:
-    $P0[1] = $I0
+    $P1[1] = $I0
 
-    # join the version
-    $S0 = join '.', $P0
+    # join the incremented version
+    $S0 = join '.', $P1
 
     print 'new version: '
     print $S0
 
-    $P0 = open version_file_name, 'w'
-    print $P0, $S0
-    close $P0
+    # write the new version to the version_file
+    $P0.'open'( version_file_name, 'w' )
+    $P0.'print'( $S0 )
+    $P0.'close'()
 .end
 
 # Local Variables:

Modified: branches/gsoc_nfg/tools/util/parrot-config.pir
==============================================================================
--- branches/gsoc_nfg/tools/util/parrot-config.pir	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/tools/util/parrot-config.pir	Mon Jun  7 18:03:08 2010	(r47436)
@@ -88,8 +88,11 @@
     end
 usage:
     $S0 = argv[0]
-    printerr $S0
-    printerr " [ <config-key> | --dump | --help ]\n"
+    $P0 = getinterp
+    .include 'stdio.pasm'
+    $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+    $P1.'print'($S0)
+    $P1.'print'(" [ <config-key> | --dump | --help ]\n")
     exit 1
 .end
 

Modified: branches/gsoc_nfg/tools/util/perlcritic.conf
==============================================================================
--- branches/gsoc_nfg/tools/util/perlcritic.conf	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/tools/util/perlcritic.conf	Mon Jun  7 18:03:08 2010	(r47436)
@@ -69,7 +69,7 @@
 add_themes = parrot
 
 [Bangs::ProhibitFlagComments]
-add_themes = parrot
+add_themes = extra
 
 [Bangs::ProhibitRefProtoOrProto]
 add_themes = extra

Modified: branches/gsoc_nfg/tools/util/pgegrep
==============================================================================
--- branches/gsoc_nfg/tools/util/pgegrep	Mon Jun  7 17:43:09 2010	(r47435)
+++ branches/gsoc_nfg/tools/util/pgegrep	Mon Jun  7 18:03:08 2010	(r47436)
@@ -81,6 +81,9 @@
 # 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


More information about the parrot-commits mailing list