[svn:parrot] r48719 - in branches/unshared_buffers: . compilers/data_json compilers/imcc compilers/opsc/src/Ops compilers/pct compilers/pct/src/PCT compilers/pge compilers/tge config/auto config/auto/sizes config/auto/zlib config/gen config/gen/makefiles config/gen/platform/ansi config/gen/platform/generic config/gen/platform/win32 docs docs/book/draft docs/book/pct docs/dev docs/pdds docs/project examples/embed examples/languages/abc examples/languages/squaak examples/languages/squaak/doc examples/languages/squaak/src examples/pge examples/tools ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot include/parrot/oplib lib/Parrot lib/Parrot/Configure lib/Parrot/Configure/Step lib/Parrot/Docs/Section ports/cygwin ports/debian runtime/parrot/languages runtime/parrot/library runtime/parrot/library/Math src src/call src/dynoplibs src/gc src/interp src/io src/ops src/packfile src/pmc src/runcore src/string src/string/charset src/string/encoding t/codingstd t/compilers/tge t/dy noplibs t/examples t/native_pbc t/native_pbc/testdata t/oo t/op t/pmc t/pmc/testlib t/src t/steps/auto t/steps/init/hints t/tools tools/build tools/dev tools/release tools/util
darbelo at svn.parrot.org
darbelo at svn.parrot.org
Sun Aug 29 17:09:16 UTC 2010
Author: darbelo
Date: Sun Aug 29 17:09:11 2010
New Revision: 48719
URL: https://trac.parrot.org/parrot/changeset/48719
Log:
Sync with trunk.
Added:
branches/unshared_buffers/config/gen/platform/ansi/pid.c
- copied unchanged from r48712, trunk/config/gen/platform/ansi/pid.c
branches/unshared_buffers/config/gen/platform/generic/pid.c
- copied unchanged from r48712, trunk/config/gen/platform/generic/pid.c
branches/unshared_buffers/config/gen/platform/win32/pid.c
- copied unchanged from r48712, trunk/config/gen/platform/win32/pid.c
branches/unshared_buffers/examples/tools/pgegrep
- copied unchanged from r48712, trunk/examples/tools/pgegrep
branches/unshared_buffers/src/packfile/byteorder.h
- copied unchanged from r48712, trunk/src/packfile/byteorder.h
branches/unshared_buffers/t/examples/pgegrep.t
- copied unchanged from r48712, trunk/t/examples/pgegrep.t
branches/unshared_buffers/t/op/gc-active-buffers.t
- copied unchanged from r48712, trunk/t/op/gc-active-buffers.t
branches/unshared_buffers/t/op/gc-leaky-box.t
- copied unchanged from r48712, trunk/t/op/gc-leaky-box.t
branches/unshared_buffers/t/op/gc-leaky-call.t
- copied unchanged from r48712, trunk/t/op/gc-leaky-call.t
branches/unshared_buffers/t/pmc/testlib/annotations.pir
- copied unchanged from r48712, trunk/t/pmc/testlib/annotations.pir
branches/unshared_buffers/t/pmc/testlib/number.pasm
- copied unchanged from r48712, trunk/t/pmc/testlib/number.pasm
branches/unshared_buffers/tools/build/README
- copied unchanged from r48712, trunk/tools/build/README
branches/unshared_buffers/tools/dev/README
- copied unchanged from r48712, trunk/tools/dev/README
branches/unshared_buffers/tools/dev/addopstags.pl
- copied unchanged from r48712, trunk/tools/dev/addopstags.pl
branches/unshared_buffers/tools/dev/dump_pbc.pl
- copied unchanged from r48712, trunk/tools/dev/dump_pbc.pl
branches/unshared_buffers/tools/dev/headerizer.pl
- copied unchanged from r48712, trunk/tools/dev/headerizer.pl
branches/unshared_buffers/tools/dev/mk_language_shell.in
- copied unchanged from r48712, trunk/tools/dev/mk_language_shell.in
branches/unshared_buffers/tools/dev/ncidef2pasm.pl
- copied unchanged from r48712, trunk/tools/dev/ncidef2pasm.pl
branches/unshared_buffers/tools/dev/parrot-config.pir
- copied unchanged from r48712, trunk/tools/dev/parrot-config.pir
branches/unshared_buffers/tools/dev/perlcritic-cage.conf
- copied unchanged from r48712, trunk/tools/dev/perlcritic-cage.conf
branches/unshared_buffers/tools/dev/perlcritic.conf
- copied unchanged from r48712, trunk/tools/dev/perlcritic.conf
branches/unshared_buffers/tools/dev/perltidy.conf
- copied unchanged from r48712, trunk/tools/dev/perltidy.conf
branches/unshared_buffers/tools/dev/update_copyright.pl
- copied unchanged from r48712, trunk/tools/dev/update_copyright.pl
branches/unshared_buffers/tools/release/
- copied from r48712, trunk/tools/release/
Replaced:
branches/unshared_buffers/tools/release/README
- copied unchanged from r48712, trunk/tools/release/README
branches/unshared_buffers/tools/release/crow.pir
- copied unchanged from r48712, trunk/tools/release/crow.pir
branches/unshared_buffers/tools/release/gen_release_info.pl
- copied unchanged from r48712, trunk/tools/release/gen_release_info.pl
branches/unshared_buffers/tools/release/inc_ver.pir
- copied unchanged from r48712, trunk/tools/release/inc_ver.pir
branches/unshared_buffers/tools/release/release.json
- copied unchanged from r48712, trunk/tools/release/release.json
branches/unshared_buffers/tools/release/templates.json
- copied unchanged from r48712, trunk/tools/release/templates.json
Deleted:
branches/unshared_buffers/src/byteorder.c
branches/unshared_buffers/src/frame_builder.c
branches/unshared_buffers/src/frame_builder.h
branches/unshared_buffers/t/native_pbc/annotations.pbc
branches/unshared_buffers/t/native_pbc/testdata/annotations.pir
branches/unshared_buffers/t/op/gc-leaky.t
branches/unshared_buffers/t/tools/pgegrep.t
branches/unshared_buffers/tools/build/addopstags.pl
branches/unshared_buffers/tools/build/headerizer.pl
branches/unshared_buffers/tools/dev/mk_language_shell.pl
branches/unshared_buffers/tools/util/
Modified:
branches/unshared_buffers/ (props changed)
branches/unshared_buffers/CREDITS
branches/unshared_buffers/ChangeLog
branches/unshared_buffers/DEPRECATED.pod
branches/unshared_buffers/MANIFEST
branches/unshared_buffers/MANIFEST.SKIP
branches/unshared_buffers/MANIFEST.generated
branches/unshared_buffers/NEWS
branches/unshared_buffers/PBC_COMPAT
branches/unshared_buffers/README
branches/unshared_buffers/RESPONSIBLE_PARTIES
branches/unshared_buffers/VERSION
branches/unshared_buffers/compilers/data_json/Rules.mak (props changed)
branches/unshared_buffers/compilers/imcc/Rules.in (props changed)
branches/unshared_buffers/compilers/imcc/imcparser.c
branches/unshared_buffers/compilers/imcc/imcparser.h
branches/unshared_buffers/compilers/imcc/parser_util.c
branches/unshared_buffers/compilers/imcc/pbc.c
branches/unshared_buffers/compilers/imcc/sets.c
branches/unshared_buffers/compilers/imcc/sets.h
branches/unshared_buffers/compilers/opsc/src/Ops/File.pm
branches/unshared_buffers/compilers/pct/Rules.mak (props changed)
branches/unshared_buffers/compilers/pct/src/PCT/HLLCompiler.pir
branches/unshared_buffers/compilers/pge/Rules.mak (props changed)
branches/unshared_buffers/compilers/tge/Rules.mak (props changed)
branches/unshared_buffers/config/auto/pmc.pm
branches/unshared_buffers/config/auto/sizes/intval_maxmin_c.in (props changed)
branches/unshared_buffers/config/auto/zlib/ (props changed)
branches/unshared_buffers/config/gen/makefiles.pm
branches/unshared_buffers/config/gen/makefiles/root.in
branches/unshared_buffers/config/gen/platform.pm
branches/unshared_buffers/docs/book/draft/README (props changed)
branches/unshared_buffers/docs/book/draft/appa_glossary.pod (props changed)
branches/unshared_buffers/docs/book/draft/appb_patch_submission.pod (props changed)
branches/unshared_buffers/docs/book/draft/appc_command_line_options.pod (props changed)
branches/unshared_buffers/docs/book/draft/appd_build_options.pod (props changed)
branches/unshared_buffers/docs/book/draft/appe_source_code.pod (props changed)
branches/unshared_buffers/docs/book/draft/ch01_introduction.pod (props changed)
branches/unshared_buffers/docs/book/draft/ch02_getting_started.pod (props changed)
branches/unshared_buffers/docs/book/draft/ch07_dynpmcs.pod (props changed)
branches/unshared_buffers/docs/book/draft/ch08_dynops.pod (props changed)
branches/unshared_buffers/docs/book/draft/ch10_opcode_reference.pod (props changed)
branches/unshared_buffers/docs/book/draft/ch11_directive_reference.pod (props changed)
branches/unshared_buffers/docs/book/draft/ch12_operator_reference.pod (props changed)
branches/unshared_buffers/docs/book/draft/chXX_hlls.pod (props changed)
branches/unshared_buffers/docs/book/draft/chXX_library.pod (props changed)
branches/unshared_buffers/docs/book/draft/chXX_testing_and_debugging.pod (props changed)
branches/unshared_buffers/docs/book/pct/ch01_introduction.pod (props changed)
branches/unshared_buffers/docs/book/pct/ch02_getting_started.pod (props changed)
branches/unshared_buffers/docs/book/pct/ch03_compiler_tools.pod (props changed)
branches/unshared_buffers/docs/book/pct/ch04_pge.pod (props changed)
branches/unshared_buffers/docs/book/pct/ch05_nqp.pod (props changed)
branches/unshared_buffers/docs/dev/c_functions.pod (props changed)
branches/unshared_buffers/docs/embed.pod
branches/unshared_buffers/docs/parrothist.pod
branches/unshared_buffers/docs/pdds/pdd30_install.pod (props changed)
branches/unshared_buffers/docs/project/release_manager_guide.pod
branches/unshared_buffers/examples/embed/cotorra.c (props changed)
branches/unshared_buffers/examples/languages/abc/ (props changed)
branches/unshared_buffers/examples/languages/squaak/ (props changed)
branches/unshared_buffers/examples/languages/squaak/doc/tutorial_episode_1.pod
branches/unshared_buffers/examples/languages/squaak/src/squaak.pir
branches/unshared_buffers/examples/pge/demo.pir (props changed)
branches/unshared_buffers/ext/nqp-rx/Rules.mak (props changed)
branches/unshared_buffers/ext/nqp-rx/src/stage0/HLL-s0.pir
branches/unshared_buffers/ext/nqp-rx/src/stage0/NQP-s0.pir
branches/unshared_buffers/ext/nqp-rx/src/stage0/P6Regex-s0.pir
branches/unshared_buffers/ext/nqp-rx/src/stage0/Regex-s0.pir
branches/unshared_buffers/include/parrot/call.h (contents, props changed)
branches/unshared_buffers/include/parrot/encoding.h
branches/unshared_buffers/include/parrot/gc_api.h (props changed)
branches/unshared_buffers/include/parrot/hash.h
branches/unshared_buffers/include/parrot/io.h
branches/unshared_buffers/include/parrot/oplib/core_ops.h
branches/unshared_buffers/include/parrot/packfile.h
branches/unshared_buffers/include/parrot/platform_interface.h
branches/unshared_buffers/include/parrot/pobj.h
branches/unshared_buffers/include/parrot/runcore_api.h (props changed)
branches/unshared_buffers/include/parrot/runcore_profiling.h (props changed)
branches/unshared_buffers/include/parrot/runcore_trace.h (props changed)
branches/unshared_buffers/include/parrot/scheduler_private.h
branches/unshared_buffers/include/parrot/string.h
branches/unshared_buffers/include/parrot/string_funcs.h
branches/unshared_buffers/lib/Parrot/Configure/Compiler.pm
branches/unshared_buffers/lib/Parrot/Configure/Step/Test.pm (props changed)
branches/unshared_buffers/lib/Parrot/Docs/Section/Tools.pm
branches/unshared_buffers/lib/Parrot/H2inc.pm (props changed)
branches/unshared_buffers/ports/cygwin/parrot-1.0.0-1.cygport (props changed)
branches/unshared_buffers/ports/debian/libparrot-dev.install.in (props changed)
branches/unshared_buffers/ports/debian/libparrot.install.in (props changed)
branches/unshared_buffers/ports/debian/parrot-doc.install.in (props changed)
branches/unshared_buffers/ports/debian/parrot.install.in (props changed)
branches/unshared_buffers/ports/debian/rules
branches/unshared_buffers/runtime/parrot/languages/ (props changed)
branches/unshared_buffers/runtime/parrot/library/Math/Rand.pir (props changed)
branches/unshared_buffers/runtime/parrot/library/Rules.mak (props changed)
branches/unshared_buffers/runtime/parrot/library/distutils.pir
branches/unshared_buffers/src/call/args.c
branches/unshared_buffers/src/call/context.c
branches/unshared_buffers/src/call/ops.c (props changed)
branches/unshared_buffers/src/call/pcc.c (props changed)
branches/unshared_buffers/src/dynext.c
branches/unshared_buffers/src/dynoplibs/math.ops
branches/unshared_buffers/src/dynoplibs/trans.ops
branches/unshared_buffers/src/gc/alloc_memory.c (props changed)
branches/unshared_buffers/src/gc/alloc_resources.c (contents, props changed)
branches/unshared_buffers/src/gc/api.c (contents, props changed)
branches/unshared_buffers/src/gc/gc_ms.c
branches/unshared_buffers/src/gc/gc_private.h
branches/unshared_buffers/src/gc/malloc.c (props changed)
branches/unshared_buffers/src/gc/malloc_trace.c (props changed)
branches/unshared_buffers/src/gc/mark_sweep.c (contents, props changed)
branches/unshared_buffers/src/gc/system.c (props changed)
branches/unshared_buffers/src/hash.c
branches/unshared_buffers/src/interp/inter_cb.c (props changed)
branches/unshared_buffers/src/interp/inter_create.c (props changed)
branches/unshared_buffers/src/interp/inter_misc.c (props changed)
branches/unshared_buffers/src/io/socket_api.c
branches/unshared_buffers/src/io/utf8.c
branches/unshared_buffers/src/ops/core_ops.c
branches/unshared_buffers/src/ops/set.ops
branches/unshared_buffers/src/ops/var.ops
branches/unshared_buffers/src/packfile.c
branches/unshared_buffers/src/packfile/pf_items.c
branches/unshared_buffers/src/packout.c
branches/unshared_buffers/src/pmc.c
branches/unshared_buffers/src/pmc/addrregistry.pmc
branches/unshared_buffers/src/pmc/bigint.pmc
branches/unshared_buffers/src/pmc/callcontext.pmc
branches/unshared_buffers/src/pmc/capture.pmc
branches/unshared_buffers/src/pmc/class.pmc
branches/unshared_buffers/src/pmc/eval.pmc
branches/unshared_buffers/src/pmc/exception.pmc
branches/unshared_buffers/src/pmc/filehandle.pmc
branches/unshared_buffers/src/pmc/float.pmc
branches/unshared_buffers/src/pmc/hash.pmc
branches/unshared_buffers/src/pmc/hashiterator.pmc
branches/unshared_buffers/src/pmc/imageio.pmc
branches/unshared_buffers/src/pmc/imageiosize.pmc
branches/unshared_buffers/src/pmc/imageiostrings.pmc
branches/unshared_buffers/src/pmc/integer.pmc
branches/unshared_buffers/src/pmc/lexinfo.pmc
branches/unshared_buffers/src/pmc/namespace.pmc
branches/unshared_buffers/src/pmc/nci.pmc
branches/unshared_buffers/src/pmc/null.pmc
branches/unshared_buffers/src/pmc/object.pmc
branches/unshared_buffers/src/pmc/parrotinterpreter.pmc
branches/unshared_buffers/src/pmc/parrotlibrary.pmc
branches/unshared_buffers/src/pmc/stringbuilder.pmc
branches/unshared_buffers/src/pmc/stringiterator.pmc
branches/unshared_buffers/src/runcore/cores.c (contents, props changed)
branches/unshared_buffers/src/runcore/main.c (contents, props changed)
branches/unshared_buffers/src/runcore/profiling.c (props changed)
branches/unshared_buffers/src/runcore/trace.c (contents, props changed)
branches/unshared_buffers/src/scheduler.c
branches/unshared_buffers/src/string/api.c
branches/unshared_buffers/src/string/charset/ascii.c
branches/unshared_buffers/src/string/charset/iso-8859-1.c
branches/unshared_buffers/src/string/charset/unicode.c
branches/unshared_buffers/src/string/encoding/fixed_8.c
branches/unshared_buffers/src/string/encoding/ucs2.c
branches/unshared_buffers/src/string/encoding/ucs4.c
branches/unshared_buffers/src/string/encoding/utf16.c
branches/unshared_buffers/src/string/encoding/utf8.c
branches/unshared_buffers/src/string/primitives.c
branches/unshared_buffers/t/codingstd/c_macro_args.t
branches/unshared_buffers/t/codingstd/c_operator.t
branches/unshared_buffers/t/codingstd/perlcritic.t
branches/unshared_buffers/t/codingstd/pir_code_coda.t
branches/unshared_buffers/t/codingstd/pmc_docs.t (contents, props changed)
branches/unshared_buffers/t/compilers/tge/NoneGrammar.tg (props changed)
branches/unshared_buffers/t/dynoplibs/trans-infnan.t
branches/unshared_buffers/t/dynoplibs/trans.t
branches/unshared_buffers/t/native_pbc/integer.pbc
branches/unshared_buffers/t/native_pbc/number.pbc
branches/unshared_buffers/t/native_pbc/string.pbc
branches/unshared_buffers/t/oo/isa.t
branches/unshared_buffers/t/oo/objects.t (props changed)
branches/unshared_buffers/t/oo/root_new.t (props changed)
branches/unshared_buffers/t/op/string.t
branches/unshared_buffers/t/pmc/exception.t
branches/unshared_buffers/t/pmc/exceptionhandler.t
branches/unshared_buffers/t/pmc/float.t
branches/unshared_buffers/t/pmc/hash.t
branches/unshared_buffers/t/pmc/lexinfo.t
branches/unshared_buffers/t/pmc/namespace-old.t (props changed)
branches/unshared_buffers/t/pmc/packfile.t
branches/unshared_buffers/t/pmc/packfileannotations.t
branches/unshared_buffers/t/pmc/packfileconstanttable.t
branches/unshared_buffers/t/pmc/packfiledirectory.t
branches/unshared_buffers/t/pmc/packfilefixupentry.t
branches/unshared_buffers/t/pmc/packfilefixuptable.t
branches/unshared_buffers/t/pmc/packfilerawsegment.t
branches/unshared_buffers/t/pmc/testlib/ (props changed)
branches/unshared_buffers/t/pmc/testlib/packfile_common.pir
branches/unshared_buffers/t/pmc/timer.t
branches/unshared_buffers/t/src/embed.t (props changed)
branches/unshared_buffers/t/steps/auto/pmc-01.t
branches/unshared_buffers/t/steps/init/hints/linux-01.t (props changed)
branches/unshared_buffers/t/tools/dump_pbc.t
branches/unshared_buffers/tools/build/h2inc.pl (props changed)
branches/unshared_buffers/tools/dev/ (props changed)
branches/unshared_buffers/tools/dev/as2c.pl (contents, props changed)
branches/unshared_buffers/tools/dev/faces.pl
branches/unshared_buffers/tools/dev/fetch_languages.pl (contents, props changed)
branches/unshared_buffers/tools/dev/mk_gitignore.pl (props changed)
branches/unshared_buffers/tools/dev/mk_native_pbc
branches/unshared_buffers/tools/dev/pbc_to_exe.pir
Modified: branches/unshared_buffers/CREDITS
==============================================================================
--- branches/unshared_buffers/CREDITS Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/CREDITS Sun Aug 29 17:09:11 2010 (r48719)
@@ -773,6 +773,11 @@
N: Nick Kostirya
D: Win32, FreeBSD build fixes
+N: Nick Wellnhofer
+D: String iterator rewrite, GC fixes
+E: wellnhofer at aevum.de
+U: nwellnhof
+
N: Nikolay Ananiev
D: Win32 build fix
Modified: branches/unshared_buffers/ChangeLog
==============================================================================
--- branches/unshared_buffers/ChangeLog Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/ChangeLog Sun Aug 29 17:09:11 2010 (r48719)
@@ -1,5 +1,9 @@
#1 $Id$
+2010.08.17 mikehh
+ * Released 2.7.0
+ See NEWS for more.
+
2010.07.10 coke
* Released 2.6.0
See NEWS for more.
Modified: branches/unshared_buffers/DEPRECATED.pod
==============================================================================
--- branches/unshared_buffers/DEPRECATED.pod Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/DEPRECATED.pod Sun Aug 29 17:09:11 2010 (r48719)
@@ -147,6 +147,12 @@
L<https://trac.parrot.org/parrot/ticket/1689>
+=item Method getpid on ParrotInterpreter [experimental]
+
+Used to test the experimental function Parrot_getpid
+
+L<https://trac.parrot.org/parrot/ticket/1564>
+
=back
=head1 Opcodes
@@ -383,6 +389,12 @@
L<https://trac.parrot.org/parrot/ticket/1191>
+=item Parrot_getpid [experimental]
+
+Get process id, experimental.
+
+L<https://trac.parrot.org/parrot/ticket/1564>
+
=back
=head1 Compiler tools
Modified: branches/unshared_buffers/MANIFEST
==============================================================================
--- branches/unshared_buffers/MANIFEST Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/MANIFEST Sun Aug 29 17:09:11 2010 (r48719)
@@ -1,7 +1,7 @@
# ex: set ro:
# $Id$
#
-# generated by tools/dev/mk_manifest_and_skip.pl Sun Aug 8 16:31:42 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sat Aug 28 02:23:15 2010 UT
#
# See below for documentation on the format of this file.
#
@@ -275,6 +275,7 @@
config/gen/platform/ansi/dl.c []
config/gen/platform/ansi/exec.c []
config/gen/platform/ansi/io.h []
+config/gen/platform/ansi/pid.c []
config/gen/platform/ansi/time.c []
config/gen/platform/cygwin/math.c []
config/gen/platform/darwin/begin.c []
@@ -289,6 +290,7 @@
config/gen/platform/generic/math.c []
config/gen/platform/generic/math.h []
config/gen/platform/generic/memexec.c []
+config/gen/platform/generic/pid.c []
config/gen/platform/generic/platform_limits.h []
config/gen/platform/generic/signal.c []
config/gen/platform/generic/signal.h []
@@ -313,6 +315,7 @@
config/gen/platform/win32/io.h []
config/gen/platform/win32/misc.c []
config/gen/platform/win32/misc.h []
+config/gen/platform/win32/pid.c []
config/gen/platform/win32/signal.c []
config/gen/platform/win32/signal.h []
config/gen/platform/win32/stat.c []
@@ -821,6 +824,7 @@
examples/tge/branch/transform.pir [examples]
examples/tools/Makefile [examples]
examples/tools/pbc_checker.cpp [examples]
+examples/tools/pgegrep [examples]
examples/tutorial/00_README.pod [examples]
examples/tutorial/01_temp_var.pir [examples]
examples/tutorial/02_local_var.pir [examples]
@@ -1242,7 +1246,6 @@
runtime/parrot/library/yaml_dumper.pir [library]
src/atomic/gcc_x86.c []
src/atomic/sparc_v9.s []
-src/byteorder.c []
src/call/args.c []
src/call/context.c []
src/call/context_accessors.c []
@@ -1281,8 +1284,6 @@
src/exceptions.c []
src/exit.c []
src/extend.c []
-src/frame_builder.c []
-src/frame_builder.h []
src/gc/alloc_memory.c []
src/gc/alloc_resources.c []
src/gc/api.c []
@@ -1342,6 +1343,7 @@
src/ops/var.ops []
src/packdump.c []
src/packfile.c []
+src/packfile/byteorder.h []
src/packfile/pf_items.c []
src/packout.c []
src/parrot_debugger.c []
@@ -1687,6 +1689,7 @@
t/examples/namespace.t [test]
t/examples/pasm.t [test]
t/examples/past.t [test]
+t/examples/pgegrep.t [test]
t/examples/pir.t [test]
t/examples/pod.t [test]
t/examples/shootout.t [test]
@@ -1737,7 +1740,6 @@
t/manifest/04-alt_file.t [test]
t/manifest/05-alt_skip.t [test]
t/manifest/README []doc
-t/native_pbc/annotations.pbc [test]
t/native_pbc/header.t [test]
t/native_pbc/integer.pbc [test]
t/native_pbc/integer.t [test]
@@ -1766,7 +1768,6 @@
t/native_pbc/string_6.pbc [test]
t/native_pbc/string_7.pbc [test]
t/native_pbc/testdata/README []doc
-t/native_pbc/testdata/annotations.pir [test]
t/native_pbc/testdata/number.pasm [test]
t/native_pbc/testdata/string.pasm [test]
t/oo/attributes.t [test]
@@ -1805,7 +1806,9 @@
t/op/exceptions.t [test]
t/op/exit.t [test]
t/op/fetch.t [test]
-t/op/gc-leaky.t [test]
+t/op/gc-active-buffers.t [test]
+t/op/gc-leaky-box.t [test]
+t/op/gc-leaky-call.t [test]
t/op/gc.t [test]
t/op/globals.t [test]
t/op/ifunless.t [test]
@@ -1948,6 +1951,8 @@
t/pmc/sub.t [test]
t/pmc/sys.t [test]
t/pmc/task.t [test]
+t/pmc/testlib/annotations.pir [test]
+t/pmc/testlib/number.pasm [test]
t/pmc/testlib/packfile_common.pir [test]
t/pmc/threads.t [test]
t/pmc/timer.t [test]
@@ -2078,7 +2083,6 @@
t/tools/pbc_disassemble.t [test]
t/tools/pbc_dump.t [test]
t/tools/pbc_merge.t [test]
-t/tools/pgegrep.t [test]
t/tools/pmc2cutils/01-pmc2cutils.t [test]
t/tools/pmc2cutils/02-find_file.t [test]
t/tools/pmc2cutils/03-dump_vtable.t [test]
@@ -2087,11 +2091,10 @@
t/tools/pmc2cutils/08-pmc-pm.t [test]
t/tools/pmc2cutils/README []doc
t/tools/testdata [test]
-tools/build/addopstags.pl []
+tools/build/README []doc
tools/build/c2str.pl []
tools/build/fixup_gen_file.pl []
tools/build/h2inc.pl []
-tools/build/headerizer.pl []
tools/build/ops2c.pl [devel]
tools/build/parrot_config_c.pl []
tools/build/pbcversion_h.pl []
@@ -2099,18 +2102,22 @@
tools/build/vtable_extend.pl []
tools/build/vtable_h.pl []
tools/dev/.gdbinit []
+tools/dev/README []doc
+tools/dev/addopstags.pl []
tools/dev/as2c.pl []
tools/dev/bench_op.pir []
tools/dev/branch_status.pl []
tools/dev/checkdepend.pl []
tools/dev/create_language.pl [devel]
tools/dev/debian_docs.sh []
+tools/dev/dump_pbc.pl []
tools/dev/faces.pl []
tools/dev/fetch_languages.pl []
tools/dev/gen_charset_tables.pl []
tools/dev/gen_class.pl []
tools/dev/gen_makefile.pl [devel]
tools/dev/gen_valgrind_suppressions.pl []
+tools/dev/headerizer.pl []
tools/dev/install_dev_files.pl []
tools/dev/install_doc_files.pl []
tools/dev/install_files.pl []
@@ -2120,7 +2127,7 @@
tools/dev/mk_gitignore.pl []
tools/dev/mk_inno.pl []
tools/dev/mk_inno_language.pl []
-tools/dev/mk_language_shell.pl [devel]
+tools/dev/mk_language_shell.in []
tools/dev/mk_manifest_and_skip.pl []
tools/dev/mk_native_pbc []
tools/dev/mk_nci_thunks.pl []
@@ -2128,9 +2135,11 @@
tools/dev/mk_rpm_manifests.pl []
tools/dev/nci_test_gen.pl []
tools/dev/nci_thunk_gen.pir []
+tools/dev/ncidef2pasm.pl []
tools/dev/nm.pl []
tools/dev/nopaste.pl []
tools/dev/ops_not_tested.pl []
+tools/dev/parrot-config.pir []
tools/dev/parrot-fuzzer []
tools/dev/parrot.supp []
tools/dev/parrot_api.pl []
@@ -2139,6 +2148,9 @@
tools/dev/parrotbench.pl []
tools/dev/pbc_header.pl []
tools/dev/pbc_to_exe.pir [devel]
+tools/dev/perlcritic-cage.conf []
+tools/dev/perlcritic.conf []
+tools/dev/perltidy.conf []
tools/dev/pmcrenumber.pl []
tools/dev/pmctree.pl []
tools/dev/pprof2cg.pl [devel]
@@ -2146,6 +2158,7 @@
tools/dev/search-ops.pl []
tools/dev/svnclobber.pl []
tools/dev/symlink.pl []
+tools/dev/update_copyright.pl []
tools/dev/vgp []
tools/dev/vgp_darwin []
tools/dev/vms-patch []
@@ -2156,19 +2169,12 @@
tools/docs/write_docs.pl []
tools/install/smoke.pl []
tools/install/smoke_languages.pl []
-tools/util/crow.pir []
-tools/util/dump_pbc.pl []
-tools/util/gen_release_info.pl []
-tools/util/inc_ver.pir []
-tools/util/ncidef2pasm.pl []
-tools/util/parrot-config.pir []
-tools/util/perlcritic-cage.conf []
-tools/util/perlcritic.conf []
-tools/util/perltidy.conf []
-tools/util/pgegrep []
-tools/util/release.json []
-tools/util/templates.json []
-tools/util/update_copyright.pl []
+tools/release/README []doc
+tools/release/crow.pir []
+tools/release/gen_release_info.pl []
+tools/release/inc_ver.pir []
+tools/release/release.json []
+tools/release/templates.json []
# Local variables:
# mode: text
# buffer-read-only: t
Modified: branches/unshared_buffers/MANIFEST.SKIP
==============================================================================
--- branches/unshared_buffers/MANIFEST.SKIP Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/MANIFEST.SKIP Sun Aug 29 17:09:11 2010 (r48719)
@@ -1,6 +1,6 @@
# ex: set ro:
# $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Thu Jun 24 14:06:33 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Thu Aug 26 10:22:02 2010 UT
#
# This file should contain a transcript of the svn:ignore properties
# of the directories in the Parrot subversion repository. (Needed for
@@ -1046,6 +1046,9 @@
^t/pmc/.*\.pir/
^t/pmc/.*_pbcexe.*$
^t/pmc/.*_pbcexe.*/
+# generated from svn:ignore of 't/pmc/testlib/'
+^t/pmc/testlib/.*\.pbc$
+^t/pmc/testlib/.*\.pbc/
# generated from svn:ignore of 't/src/'
^t/src/.*_.*$
^t/src/.*_.*/
@@ -1077,6 +1080,9 @@
^t/tools/pmc2c\..*\.h/
^t/tools/pmc2c\..*\.pmc$
^t/tools/pmc2c\..*\.pmc/
+# generated from svn:ignore of 'tools/dev/'
+^tools/dev/mk_language_shell\.pl$
+^tools/dev/mk_language_shell\.pl/
# Local variables:
# mode: text
# buffer-read-only: t
Modified: branches/unshared_buffers/MANIFEST.generated
==============================================================================
--- branches/unshared_buffers/MANIFEST.generated Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/MANIFEST.generated Sun Aug 29 17:09:11 2010 (r48719)
@@ -2,11 +2,11 @@
# See tools/dev/install_files.pl for documentation on the
# format of this file.
# Please re-sort this file after *EVERY* modification
-blib/lib/libparrot.2.6.0.dylib [main]lib
+blib/lib/libparrot.2.7.0.dylib [main]lib
blib/lib/libparrot.a [main]lib
blib/lib/libparrot.dylib [main]lib
blib/lib/libparrot.so [main]lib
-blib/lib/libparrot.so.2.6.0 [main]lib
+blib/lib/libparrot.so.2.7.0 [main]lib
compilers/data_json/data_json.pbc [data_json]
config/gen/call_list/opengl.in []
docs/ops/bit.pod [doc]
@@ -419,4 +419,5 @@
src/pmc/unmanagedstruct.dump [devel]src
src/string_private_cstring.h []
tools/build/dynpmc.pl []
+tools/dev/mk_language_shell.pl [devel]
vtable.dump [devel]src
Modified: branches/unshared_buffers/NEWS
==============================================================================
--- branches/unshared_buffers/NEWS Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/NEWS Sun Aug 29 17:09:11 2010 (r48719)
@@ -1,11 +1,28 @@
# $Id$
+New in 2.7.0
+- Core
+ + cleanups in packfile and freeze/thaw handling
+ + Hash optimizations that improve HLL startup and run time
+ + As always, many bug fixes and other optimizations
+- Runtime
+ + some runtime library cleanups
+- Testing
+ + added more tests to improve coverage
+ + new codingstd test for documentation in .pmc files
+- Documentation
+ + added documentation to .pmc files (some still missing but headers in place)
+ + general documentation improvements and bringing up-to-date
+- NQP-rx
+ + Updated version included from http://github.com/perl6/nqp-rx includes
+ speed improvements
+
New in 2.6.0
- Core
+ Plug some memory leaks
+ As always, bug fixes and some optimizations
- Runtime
- + added (experimental) URI::Escape
+ + added (experimental) URI::Escape
- Testing
+ Improved test coverage of core parrot
- Documentation
@@ -13,7 +30,7 @@
- Platforms
+ The Fedora package 'parrot-devel' install the files for syntax-highlighting
and automatic indenting for the vim editor
-- NQP-rx
+- NQP-rx
+ Updated version included from http://github.com/perl6/nqp-rx includes
new or improved: regex backtracking, named assertions, interactive mode,
and setting (a minimal but useful runtime library)
Modified: branches/unshared_buffers/PBC_COMPAT
==============================================================================
--- branches/unshared_buffers/PBC_COMPAT Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/PBC_COMPAT Sun Aug 29 17:09:11 2010 (r48719)
@@ -28,6 +28,7 @@
# please insert tab separated entries at the top of the list
+8.2 2010.08.19 cotto minor version bump for 2.7.0
8.1 2010.08.10 plobsing merge dynop_mapping branch
8.0 2010.07.20 coke released 2.6.0
7.0 2010.04.20 gerd released 2.3.0 (version # added ex post facto, as all previous version #s were published)
Modified: branches/unshared_buffers/README
==============================================================================
--- branches/unshared_buffers/README Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/README Sun Aug 29 17:09:11 2010 (r48719)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.6.0
+This is Parrot, version 2.7.0
------------------------------
Parrot is Copyright (C) 2001-2010, Parrot Foundation.
@@ -11,6 +11,11 @@
This code is distributed under the terms of the Artistic License 2.0.
For more details, see the full text of the license in the file LICENSE.
+OVERVIEW
+--------
+Parrot is a virtual machine designed to efficiently compile and execute
+bytecode for dynamic languages.
+
PREREQUISITES
-------------
Modified: branches/unshared_buffers/RESPONSIBLE_PARTIES
==============================================================================
--- branches/unshared_buffers/RESPONSIBLE_PARTIES Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/RESPONSIBLE_PARTIES Sun Aug 29 17:09:11 2010 (r48719)
@@ -28,6 +28,7 @@
Christoph Otto
Jonathan Leto
Gerd Pokorra
+ Michael Hind
Metacommitter Allison Randal
Jerry Gay
@@ -87,5 +88,6 @@
Francois Perrad
Mark Glines
Bruce Gray
+ Michael Hind
General Contributor See CREDITS
Modified: branches/unshared_buffers/VERSION
==============================================================================
--- branches/unshared_buffers/VERSION Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/VERSION Sun Aug 29 17:09:11 2010 (r48719)
@@ -1 +1 @@
-2.6.0
+2.7.0
Modified: branches/unshared_buffers/compilers/imcc/imcparser.c
==============================================================================
--- branches/unshared_buffers/compilers/imcc/imcparser.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/compilers/imcc/imcparser.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -9,13 +9,12 @@
*/
/* HEADERIZER HFILE: none */
/* HEADERIZER STOP */
-
-/* A Bison parser, made by GNU Bison 2.4.1. */
+/* A Bison parser, made by GNU Bison 2.4.2. */
/* Skeleton implementation for Bison's Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
+ Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -57,7 +56,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.1"
+#define YYBISON_VERSION "2.4.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -1151,7 +1150,7 @@
/* Line 189 of yacc.c */
-#line 1144 "compilers/imcc/imcparser.c"
+#line 1143 "compilers/imcc/imcparser.c"
/* Enabling traces. */
#ifndef YYDEBUG
@@ -1435,7 +1434,7 @@
/* Line 214 of yacc.c */
-#line 1428 "compilers/imcc/imcparser.c"
+#line 1427 "compilers/imcc/imcparser.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1447,7 +1446,7 @@
/* Line 264 of yacc.c */
-#line 1440 "compilers/imcc/imcparser.c"
+#line 1439 "compilers/imcc/imcparser.c"
#ifdef short
# undef short
@@ -1497,7 +1496,7 @@
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -2444,9 +2443,18 @@
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
+ Once GCC version 2 has supplanted version 1, this can go. However,
+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+ discussed. */
#define YYFAIL goto yyerrlab
+#if defined YYFAIL
+ /* This is here to suppress warnings from the GCC cpp's
+ -Wunused-macros. Normally we don't worry about that warning, but
+ some users do, and we want to make it easy for users to remove
+ YYFAIL uses, which will produce warnings from Bison 2.5. */
+#endif
#define YYRECOVERING() (!!yyerrstatus)
@@ -2503,7 +2511,7 @@
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
@@ -3254,28 +3262,28 @@
{
case 2:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1166 "compilers/imcc/imcc.y"
{ if (yynerrs) YYABORT; (yyval.i) = 0; }
break;
case 5:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1175 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 6:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1176 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 7:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1178 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
@@ -3286,7 +3294,7 @@
case 8:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1184 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
@@ -3297,42 +3305,42 @@
case 9:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1189 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 10:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1190 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 11:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1191 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 12:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1192 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 13:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1196 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 14:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1198 "compilers/imcc/imcc.y"
{
(yyval.i) = 0;
@@ -3343,7 +3351,7 @@
case 15:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1207 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
@@ -3354,7 +3362,7 @@
case 16:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1213 "compilers/imcc/imcc.y"
{
/* set_filename() frees the STRINGC */
@@ -3364,7 +3372,7 @@
case 17:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1221 "compilers/imcc/imcc.y"
{
/* We'll want to store an entry while emitting instructions, so just
@@ -3377,7 +3385,7 @@
case 18:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1233 "compilers/imcc/imcc.y"
{
STRING * const hll_name = Parrot_str_unescape(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
@@ -3392,14 +3400,14 @@
case 19:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1245 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 20:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1246 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
@@ -3410,14 +3418,14 @@
case 21:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1254 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 22:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1255 "compilers/imcc/imcc.y"
{
(yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
@@ -3428,14 +3436,14 @@
case 23:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1261 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 24:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1262 "compilers/imcc/imcc.y"
{
(yyval.i) = mk_pmc_const_named(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
@@ -3447,49 +3455,49 @@
case 29:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1280 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 30:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1281 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 31:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1282 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 32:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1283 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 33:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1284 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 36:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1289 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 37:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1291 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
@@ -3501,7 +3509,7 @@
case 38:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1298 "compilers/imcc/imcc.y"
{
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3511,7 +3519,7 @@
case 39:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1303 "compilers/imcc/imcc.y"
{
(yyval.i) = iSUBROUTINE(interp,
@@ -3524,7 +3532,7 @@
case 40:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1311 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
@@ -3533,7 +3541,7 @@
case 41:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1315 "compilers/imcc/imcc.y"
{
char *name = mem_sys_strdup((yyvsp[(2) - (4)].s) + 1);
@@ -3551,21 +3559,21 @@
case 42:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1327 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 44:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1335 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
break;
case 45:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1338 "compilers/imcc/imcc.y"
{
/* if (optimizer_level & OPT_PASM)
@@ -3578,7 +3586,7 @@
case 48:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1354 "compilers/imcc/imcc.y"
{
int re_open = 0;
@@ -3595,21 +3603,21 @@
case 49:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1368 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 50:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1369 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 51:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1373 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
@@ -3618,7 +3626,7 @@
case 52:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1377 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
@@ -3629,14 +3637,14 @@
case 53:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1385 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
case 54:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1387 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
@@ -3646,7 +3654,7 @@
case 55:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1395 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
@@ -3655,7 +3663,7 @@
case 56:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1399 "compilers/imcc/imcc.y"
{
iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
@@ -3664,7 +3672,7 @@
case 57:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1403 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(5) - (6)].t);
@@ -3677,28 +3685,28 @@
case 58:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1411 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 59:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1415 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 60:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1416 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 61:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1418 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
@@ -3713,21 +3721,21 @@
case 62:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1430 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 63:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1430 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; }
break;
case 64:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1435 "compilers/imcc/imcc.y"
{
if ((yyvsp[(3) - (3)].t) & VT_OPT_FLAG && (yyvsp[(1) - (3)].t) != 'I') {
@@ -3752,14 +3760,14 @@
case 65:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1459 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 66:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1464 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3770,7 +3778,7 @@
case 67:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1470 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3781,7 +3789,7 @@
case 68:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1479 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
@@ -3792,7 +3800,7 @@
case 69:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1485 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
@@ -3803,7 +3811,7 @@
case 70:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1494 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
@@ -3814,7 +3822,7 @@
case 71:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1500 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
@@ -3825,7 +3833,7 @@
case 72:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1509 "compilers/imcc/imcc.y"
{
(yyval.t) = P_NSENTRY;
@@ -3836,7 +3844,7 @@
case 73:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1515 "compilers/imcc/imcc.y"
{
(yyval.t) = P_NSENTRY;
@@ -3847,7 +3855,7 @@
case 74:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1524 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3857,7 +3865,7 @@
case 75:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1532 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3867,7 +3875,7 @@
case 76:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1537 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3879,7 +3887,7 @@
case 77:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1547 "compilers/imcc/imcc.y"
{
add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, NULL);
@@ -3888,7 +3896,7 @@
case 78:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1551 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3898,7 +3906,7 @@
case 79:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1556 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3908,35 +3916,35 @@
case 80:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1563 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "INTVAL", 'S'); }
break;
case 81:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1564 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
break;
case 82:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1565 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "PMC", 'S'); }
break;
case 83:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1566 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "STRING", 'S'); }
break;
case 84:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1568 "compilers/imcc/imcc.y"
{
SymReg *r;
@@ -3952,7 +3960,7 @@
case 85:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1579 "compilers/imcc/imcc.y"
{
SymReg *r;
@@ -3968,14 +3976,14 @@
case 86:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1589 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 89:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1599 "compilers/imcc/imcc.y"
{
char name[128];
@@ -4002,112 +4010,112 @@
case 90:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1625 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 91:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1629 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
break;
case 92:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1630 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
break;
case 93:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1634 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 94:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1635 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
break;
case 95:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1639 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 97:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1644 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (1)].t); }
break;
case 98:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1645 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 99:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1649 "compilers/imcc/imcc.y"
{ (yyval.t) = P_LOAD; }
break;
case 100:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1650 "compilers/imcc/imcc.y"
{ (yyval.t) = P_INIT; }
break;
case 101:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1651 "compilers/imcc/imcc.y"
{ (yyval.t) = P_MAIN; }
break;
case 102:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1652 "compilers/imcc/imcc.y"
{ (yyval.t) = P_IMMEDIATE; }
break;
case 103:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1653 "compilers/imcc/imcc.y"
{ (yyval.t) = P_POSTCOMP; }
break;
case 104:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1654 "compilers/imcc/imcc.y"
{ (yyval.t) = P_ANON; }
break;
case 105:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1655 "compilers/imcc/imcc.y"
{ (yyval.t) = P_NEED_LEX; }
break;
case 113:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1667 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
@@ -4117,7 +4125,7 @@
case 114:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1672 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4126,7 +4134,7 @@
case 115:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1676 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4135,7 +4143,7 @@
case 116:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1680 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4144,7 +4152,7 @@
case 117:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1684 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
@@ -4153,7 +4161,7 @@
case 118:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1688 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
@@ -4163,7 +4171,7 @@
case 119:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1693 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
@@ -4173,14 +4181,14 @@
case 120:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1701 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 121:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1702 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4195,21 +4203,21 @@
case 122:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1714 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (2)].sr); }
break;
case 123:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1719 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 124:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1721 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
@@ -4219,21 +4227,21 @@
case 125:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1728 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 126:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1729 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 127:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1730 "compilers/imcc/imcc.y"
{
IdList * const l = (yyvsp[(4) - (4)].idlist);
@@ -4247,91 +4255,91 @@
case 128:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1741 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 129:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1742 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 130:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1746 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 131:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1747 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPTIONAL; }
break;
case 132:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1748 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPT_FLAG; }
break;
case 133:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1749 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 134:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1750 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = VT_NAMED; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 135:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1751 "compilers/imcc/imcc.y"
{ adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = VT_NAMED; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 136:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1752 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 137:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1753 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_CALL_SIG; }
break;
case 138:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1758 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 0); }
break;
case 139:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1760 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 140:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1762 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
@@ -4341,28 +4349,28 @@
case 141:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1769 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 1); }
break;
case 142:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1771 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 143:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1775 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 144:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1777 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
@@ -4372,7 +4380,7 @@
case 145:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1782 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
@@ -4382,14 +4390,14 @@
case 146:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1789 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 147:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1791 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
@@ -4399,7 +4407,7 @@
case 148:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1796 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
@@ -4409,21 +4417,21 @@
case 149:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1803 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 150:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1807 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 151:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1812 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->asm_state == AsmDefault)
@@ -4433,7 +4441,7 @@
case 152:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1817 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
@@ -4443,28 +4451,28 @@
case 153:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1824 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 154:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1825 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 155:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1829 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 156:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1831 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4479,7 +4487,7 @@
case 157:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1841 "compilers/imcc/imcc.y"
{
SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
@@ -4489,7 +4497,7 @@
case 158:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1846 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4504,7 +4512,7 @@
case 159:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1856 "compilers/imcc/imcc.y"
{
SymReg * const name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
@@ -4514,63 +4522,63 @@
case 162:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1877 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 163:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1882 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (2)].i); }
break;
case 164:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1883 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 165:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1884 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 166:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1885 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 167:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1886 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 168:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1887 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 169:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1891 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 173:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1902 "compilers/imcc/imcc.y"
{
Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
@@ -4581,14 +4589,14 @@
case 174:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1912 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (3)].i); }
break;
case 175:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1914 "compilers/imcc/imcc.y"
{
if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
@@ -4601,7 +4609,7 @@
case 176:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1925 "compilers/imcc/imcc.y"
{
IdList* const l = (yyvsp[(1) - (1)].idlist);
@@ -4612,7 +4620,7 @@
case 177:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1932 "compilers/imcc/imcc.y"
{
IdList* const l = (yyvsp[(3) - (3)].idlist);
@@ -4623,7 +4631,7 @@
case 178:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1941 "compilers/imcc/imcc.y"
{
IdList* const l = mem_gc_allocate_n_zeroed_typed(interp, 1, IdList);
@@ -4634,14 +4642,14 @@
case 183:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1957 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 184:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1958 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
@@ -4659,7 +4667,7 @@
case 185:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1971 "compilers/imcc/imcc.y"
{
if ((yyvsp[(4) - (4)].sr)->set != 'P') {
@@ -4681,7 +4689,7 @@
case 186:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 1988 "compilers/imcc/imcc.y"
{
if ((yyvsp[(4) - (4)].sr)->set != 'P') {
@@ -4699,14 +4707,14 @@
case 187:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2000 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 188:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2001 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
@@ -4717,14 +4725,14 @@
case 190:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2008 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 191:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2009 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
@@ -4735,7 +4743,7 @@
case 192:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2015 "compilers/imcc/imcc.y"
{
(yyval.i) = NULL;
@@ -4746,7 +4754,7 @@
case 193:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2021 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
@@ -4755,7 +4763,7 @@
case 194:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2025 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp,
@@ -4772,98 +4780,98 @@
case 195:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2036 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 196:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2037 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 197:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2038 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 200:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2041 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 201:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2045 "compilers/imcc/imcc.y"
{ (yyval.t) = 'I'; }
break;
case 202:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2046 "compilers/imcc/imcc.y"
{ (yyval.t) = 'N'; }
break;
case 203:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2047 "compilers/imcc/imcc.y"
{ (yyval.t) = 'S'; }
break;
case 204:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2048 "compilers/imcc/imcc.y"
{ (yyval.t) = 'P'; }
break;
case 205:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2053 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 206:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2055 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 207:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2057 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); }
break;
case 208:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2059 "compilers/imcc/imcc.y"
{ (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
break;
case 209:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2061 "compilers/imcc/imcc.y"
{ (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 210:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2064 "compilers/imcc/imcc.y"
{
add_pcc_result(interp, (yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
@@ -4874,7 +4882,7 @@
case 211:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2070 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
@@ -4883,7 +4891,7 @@
case 212:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2074 "compilers/imcc/imcc.y"
{
IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
@@ -4893,7 +4901,7 @@
case 216:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2082 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
@@ -4902,189 +4910,189 @@
case 217:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2089 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"not"; }
break;
case 218:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2090 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bnot"; }
break;
case 219:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2091 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"neg"; }
break;
case 220:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2095 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 221:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2096 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 222:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2097 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 223:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2098 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 224:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2099 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 225:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2100 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 226:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2101 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"pow"; }
break;
case 227:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2102 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 228:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2103 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"iseq"; }
break;
case 229:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2104 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isne"; }
break;
case 230:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2105 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isgt"; }
break;
case 231:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2106 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isge"; }
break;
case 232:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2107 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"islt"; }
break;
case 233:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2108 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isle"; }
break;
case 234:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2109 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 235:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2110 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 236:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2111 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 237:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2112 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"and"; }
break;
case 238:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2113 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"or"; }
break;
case 239:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2114 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"xor"; }
break;
case 240:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2115 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 241:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2116 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 242:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2117 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 243:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2123 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
@@ -5095,112 +5103,112 @@
case 244:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2128 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 245:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2135 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 246:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2139 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 247:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2140 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 248:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2141 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 249:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2142 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 250:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2143 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 251:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2144 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 252:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2145 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 253:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2146 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 254:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2147 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 255:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2148 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 256:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2149 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 257:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2150 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 258:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2151 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 259:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2157 "compilers/imcc/imcc.y"
{
(yyval.i) = func_ins(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(3) - (4)].s),
@@ -5213,28 +5221,28 @@
case 260:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2167 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 261:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2168 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 262:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2169 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 263:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2171 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
@@ -5245,7 +5253,7 @@
case 264:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2177 "compilers/imcc/imcc.y"
{
/* disallow bareword method names; SREG name constants are fine */
@@ -5264,7 +5272,7 @@
case 265:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2191 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
@@ -5275,7 +5283,7 @@
case 266:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2197 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
@@ -5286,14 +5294,14 @@
case 267:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2202 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
break;
case 268:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2208 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
@@ -5303,21 +5311,21 @@
case 269:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2212 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (5)].i); }
break;
case 270:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2216 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 271:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2218 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5332,7 +5340,7 @@
case 272:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2228 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5347,7 +5355,7 @@
case 273:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2238 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5359,7 +5367,7 @@
case 274:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2245 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5369,7 +5377,7 @@
case 275:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2250 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5381,70 +5389,70 @@
case 276:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2259 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 277:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2263 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 278:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2264 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 279:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2268 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 280:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2269 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 281:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2270 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_CALL_SIG; }
break;
case 282:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2273 "compilers/imcc/imcc.y"
{ adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 283:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2274 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 284:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2278 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 285:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2283 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5459,7 +5467,7 @@
case 286:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2293 "compilers/imcc/imcc.y"
{
add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call,
@@ -5470,7 +5478,7 @@
case 287:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2299 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5485,7 +5493,7 @@
case 288:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2309 "compilers/imcc/imcc.y"
{
add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
@@ -5495,28 +5503,28 @@
case 289:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2313 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 290:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2317 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 291:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2318 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 292:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2323 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
@@ -5525,7 +5533,7 @@
case 293:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2327 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
@@ -5534,7 +5542,7 @@
case 294:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2331 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
@@ -5543,7 +5551,7 @@
case 295:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2338 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
@@ -5552,7 +5560,7 @@
case 296:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2342 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
@@ -5561,7 +5569,7 @@
case 297:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2346 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
@@ -5570,91 +5578,91 @@
case 298:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2352 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 299:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2353 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 300:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2357 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"eq"; }
break;
case 301:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2358 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ne"; }
break;
case 302:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2359 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"gt"; }
break;
case 303:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2360 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ge"; }
break;
case 304:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2361 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lt"; }
break;
case 305:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2362 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"le"; }
break;
case 308:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2371 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 309:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2372 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
case 310:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2376 "compilers/imcc/imcc.y"
{ (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
break;
case 312:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2381 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
break;
case 313:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2383 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (4)].sr);
@@ -5666,7 +5674,7 @@
case 314:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2390 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
@@ -5676,49 +5684,49 @@
case 316:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2397 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 317:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2398 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 318:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2402 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 319:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2403 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 320:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2407 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 321:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2408 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 326:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2422 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
@@ -5727,7 +5735,7 @@
case 327:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2426 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
@@ -5738,7 +5746,7 @@
case 328:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2434 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
@@ -5747,7 +5755,7 @@
case 329:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2438 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
@@ -5758,14 +5766,14 @@
case 330:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2446 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
case 331:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2448 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
@@ -5775,7 +5783,7 @@
case 332:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2456 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
@@ -5784,78 +5792,78 @@
case 333:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2462 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
break;
case 334:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2463 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
break;
case 335:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2464 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
break;
case 336:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2465 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
break;
case 337:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2466 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 338:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2470 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 339:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2471 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 340:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2475 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 341:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2476 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 342:
-/* Line 1455 of yacc.c */
+/* Line 1464 of yacc.c */
#line 2477 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
-/* Line 1455 of yacc.c */
-#line 5848 "compilers/imcc/imcparser.c"
+/* Line 1464 of yacc.c */
+#line 5856 "compilers/imcc/imcparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -6066,7 +6074,7 @@
-/* Line 1675 of yacc.c */
+/* Line 1684 of yacc.c */
#line 2483 "compilers/imcc/imcc.y"
Modified: branches/unshared_buffers/compilers/imcc/imcparser.h
==============================================================================
--- branches/unshared_buffers/compilers/imcc/imcparser.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/compilers/imcc/imcparser.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -9,13 +9,12 @@
*/
/* HEADERIZER HFILE: none */
/* HEADERIZER STOP */
-
-/* A Bison parser, made by GNU Bison 2.4.1. */
+/* A Bison parser, made by GNU Bison 2.4.2. */
/* Skeleton interface for Bison's Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
+ Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -295,7 +294,7 @@
typedef union YYSTYPE
{
-/* Line 1676 of yacc.c */
+/* Line 1685 of yacc.c */
#line 1071 "compilers/imcc/imcc.y"
IdList * idlist;
@@ -306,8 +305,8 @@
-/* Line 1676 of yacc.c */
-#line 300 "compilers/imcc/imcparser.h"
+/* Line 1685 of yacc.c */
+#line 299 "compilers/imcc/imcparser.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
Modified: branches/unshared_buffers/compilers/imcc/parser_util.c
==============================================================================
--- branches/unshared_buffers/compilers/imcc/parser_util.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/compilers/imcc/parser_util.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -791,7 +791,7 @@
const char *ext;
FILE *fp;
STRING *fs;
- PMC *ignored;
+ PMC *newcontext;
/* need at least 3 regs for compilation of constant math e.g.
* add_i_ic_ic - see also IMCC_subst_constants() */
@@ -816,9 +816,6 @@
IMCC_fatal(interp, EXCEPTION_EXTERNAL_ERROR,
"imcc_compile_file: couldn't open '%s'\n", fullname);
- IMCC_INFO(interp)->cur_namespace = NULL;
- interp->code = NULL;
-
IMCC_push_parser_state(interp);
{
/* Store a copy, in order to know how to free it later */
@@ -835,8 +832,13 @@
* which can destroy packfiles under construction
*/
Parrot_block_GC_mark(interp);
- ignored = Parrot_push_context(interp, regs_used);
- UNUSED(ignored);
+
+ /* Activate a new context and reset it to initial values */
+ newcontext = Parrot_push_context(interp, regs_used);
+ Parrot_pcc_set_HLL(interp, newcontext, 0);
+ Parrot_pcc_set_sub(interp, newcontext, 0);
+ IMCC_INFO(interp)->cur_namespace = NULL;
+ interp->code = NULL;
if (ext && STREQ(ext, ".pasm")) {
void *yyscanner;
Modified: branches/unshared_buffers/compilers/imcc/pbc.c
==============================================================================
--- branches/unshared_buffers/compilers/imcc/pbc.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/compilers/imcc/pbc.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -363,7 +363,7 @@
interp->code->const_table->string_hash =
Parrot_pmc_new_init_int(interp, enum_class_Hash, enum_type_INTVAL);
((Hash *)VTABLE_get_pointer(interp, interp->code->const_table->string_hash))->compare =
- (hash_comp_fn)STRING_compare_distinct_cs_enc;
+ (hash_comp_fn)hash_compare_string_distinct_enc;
interp->code->const_table->constants =
mem_gc_allocate_n_zeroed_typed(interp, newcount, PackFile_Constant);
Modified: branches/unshared_buffers/compilers/imcc/sets.c
==============================================================================
--- branches/unshared_buffers/compilers/imcc/sets.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/compilers/imcc/sets.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -154,6 +154,7 @@
*/
+PARROT_PURE_FUNCTION
int
set_equal(ARGIN(const Set *s1), ARGIN(const Set *s2))
{
Modified: branches/unshared_buffers/compilers/imcc/sets.h
==============================================================================
--- branches/unshared_buffers/compilers/imcc/sets.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/compilers/imcc/sets.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -33,6 +33,7 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+PARROT_PURE_FUNCTION
int set_equal(ARGIN(const Set *s1), ARGIN(const Set *s2))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
Modified: branches/unshared_buffers/compilers/opsc/src/Ops/File.pm
==============================================================================
--- branches/unshared_buffers/compilers/opsc/src/Ops/File.pm Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/compilers/opsc/src/Ops/File.pm Sun Aug 29 17:09:11 2010 (r48719)
@@ -296,7 +296,22 @@
method _set_version() {
my $config := _config();
- my $version := $config<VERSION>;
+ my $version_filename;
+ if $config<installed> {
+ $version_filename :=
+ $config<libdir> ~
+ $config<versiondir> ~
+ $config<slash> ~
+ 'VERSION';
+ }
+ else {
+ $version_filename :=
+ $config<prefix> ~
+ $config<slash> ~
+ 'VERSION';
+ }
+
+ my $version := pir::chopn__ssi(slurp($version_filename), 1);
#say("# $version");
my @bits := split('.', $version);
self<version_major> := @bits[0];
Modified: branches/unshared_buffers/compilers/pct/src/PCT/HLLCompiler.pir
==============================================================================
--- branches/unshared_buffers/compilers/pct/src/PCT/HLLCompiler.pir Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/compilers/pct/src/PCT/HLLCompiler.pir Sun Aug 29 17:09:11 2010 (r48719)
@@ -26,10 +26,9 @@
.include 'cclass.pasm'
.include 'stdio.pasm'
+.include 'iglobals.pasm'
.sub 'init' :vtable :method
- load_bytecode 'config.pir'
-
$P0 = split ' ', 'parse past post pir evalpmc'
setattribute self, '@stages', $P0
@@ -56,7 +55,8 @@
$S0 = '???'
push_eh _handler
- $P0 = _config()
+ $P0 = getinterp
+ $P0 = $P0[.IGLOBALS_CONFIG_HASH]
$S0 = $P0['revision'] # also $I0 = P0['installed'] could be used
_handler:
pop_eh
Modified: branches/unshared_buffers/config/auto/pmc.pm
==============================================================================
--- branches/unshared_buffers/config/auto/pmc.pm Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/config/auto/pmc.pm Sun Aug 29 17:09:11 2010 (r48719)
@@ -36,9 +36,12 @@
sub runstep {
my ( $self, $conf ) = @_;
- my @pmc = sort_pmcs( @{ $self->{srcpmc} } );
-
- my $pmc_list = join( ' ', grep { defined $_ } @pmc );
+ # $pmc_list is a string holding a space-delimited list of currently active
+ # PMCs, sorted (largely) on the basis of src/pmc/pmc.num.
+ # (By 'current', we take into account the fact that there are PMCs listed
+ # in src/pmc/pmc.num that no longer exist but whose index numbers are
+ # never deleted.)
+ my $pmc_list = get_sorted_pmc_str( @{ $self->{srcpmc} } );
# names of class files for src/pmc/Makefile
( my $TEMP_pmc_o = $pmc_list ) =~ s/\.pmc/\$(O)/g;
@@ -216,23 +219,20 @@
return @parents;
}
+# Internal sub get_pmc_order parses src/pmc/pmc.num. The hash it builds
+# includes both active and deactivated PMCs.
sub get_pmc_order {
open my $IN, '<', 'src/pmc/pmc.num' or die "Can't read src/pmc/pmc.num";
my %order;
while (<$IN>) {
- next if /^#/;
-
- if (/(\w+\.\w+)\s+(\d+)/) {
- $order{$1} = $2;
- }
+ next unless (/^(\w+\.\w+)\s+(\d+)$/);
+ $order{$1} = $2;
}
-
close $IN;
-
return \%order;
}
-sub sort_pmcs {
+sub get_sorted_pmc_str {
my @pmcs = @_;
my $pmc_order = get_pmc_order();
my $n = keys %$pmc_order;
@@ -247,7 +247,41 @@
}
}
- return @sorted_pmcs;
+ # With the test for definedness below, we account for PMCs which have been
+ # deactivated but whose index numbers remain in src/pmc/pmc.num.
+ my $active_pmcs = [ grep { defined $_ } @sorted_pmcs ];
+
+ # At this point we check to see whether any active_pmcs are missing from
+ # the MANIFEST. We warn about any such missing PMCs but (for the time
+ # being at least) we proceed to compose $pmc_str.
+ my $seen_manifest = pmcs_in_manifest();
+ check_pmcs_against_manifest( $active_pmcs, $seen_manifest );
+ return join(' ' => @{ $active_pmcs });
+}
+
+sub pmcs_in_manifest {
+ my $manifest = shift || 'MANIFEST';
+ my %seen_manifest = ();
+ open my $MAN, '<', $manifest
+ or die "Unable to open MANIFEST: $!";
+ while (my $f = <$MAN>) {
+ chomp $f;
+ if ($f =~ m{^src/pmc/(.*\.pmc)}) {
+ my $pmc = $1;
+ $seen_manifest{$pmc}++;
+ }
+ }
+ close $MAN or die "Unable to close MANIFEST: $!";
+ return \%seen_manifest;
+}
+
+sub check_pmcs_against_manifest {
+ my ($active_pmcs, $seen_manifest) = @_;
+ my @missing_from_manifest = grep { ! exists $seen_manifest->{$_} }
+ @{ $active_pmcs };
+ if (@missing_from_manifest) {
+ warn "PMCs found in /src/pmc not found in MANIFEST: @missing_from_manifest";
+ }
}
sub contains_pccmethod {
Modified: branches/unshared_buffers/config/gen/makefiles.pm
==============================================================================
--- branches/unshared_buffers/config/gen/makefiles.pm Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/config/gen/makefiles.pm Sun Aug 29 17:09:11 2010 (r48719)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -68,6 +68,9 @@
$self->makefiles($conf);
+ $conf->shebang_mod( 'tools/dev/mk_language_shell.in'
+ => 'tools/dev/mk_language_shell.pl', );
+
return 1;
}
Modified: branches/unshared_buffers/config/gen/makefiles/root.in
==============================================================================
--- branches/unshared_buffers/config/gen/makefiles/root.in Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/config/gen/makefiles/root.in Sun Aug 29 17:09:11 2010 (r48719)
@@ -47,8 +47,13 @@
# where we're building parrot from (needed for pbc_to_exe)
BUILD_DIR = @build_dir@
-# directory for build tools
+# directory for build tools:
+# programs, templates, configuration files invoked by 'make all'
+# (with or without command-line options)
BUILD_TOOLS_DIR = tools/build
+# directory for developers' tools
+# programs, templates, configuration files NOT invoked by 'make all'
+DEV_TOOLS_DIR = tools/dev
# directory for header files
INC_DIR = @inc@
@@ -116,7 +121,7 @@
NONGEN_HEADERS = @TEMP_nongen_headers@
# The headerizer
-HEADERIZER = $(PERL) $(BUILD_TOOLS_DIR)/headerizer.pl
+HEADERIZER = $(PERL) $(DEV_TOOLS_DIR)/headerizer.pl
include src/dynpmc/Defines.mak
include src/dynoplibs/Defines.mak
@@ -220,7 +225,8 @@
.parrot_current_rev \
#IF(has_opengl): runtime/parrot/include/opengl_defines.pasm \
#IF(has_opengl): runtime/parrot/library/OpenGL_funcs.pir \
- runtime/parrot/include/signal.pasm
+ runtime/parrot/include/signal.pasm \
+ tools/dev/mk_language_shell.pl
###############################################################################
@@ -434,7 +440,6 @@
src/string/api$(O) \
src/ops/core_ops$(O) \
#IF(i386_has_gcc_cmpxchg): src/atomic/gcc_x86$(O) \
- src/byteorder$(O) \
src/string/charset$(O) \
src/core_pmcs$(O) \
src/datatypes$(O) \
@@ -469,7 +474,6 @@
src/misc$(O) \
src/multidispatch$(O) \
src/namespace$(O) \
- src/frame_builder$(O) \
src/nci/api$(O) \
src/nci/core_thunks$(O) \
#IF(has_extra_nci_thunks): src/nci/extra_thunks$(O) \
@@ -675,7 +679,6 @@
src/library.str \
src/multidispatch.str \
src/namespace.str \
- src/frame_builder.str \
src/nci/api.str \
src/nci/core_thunks.str \
#IF(has_extra_nci_thunks): src/nci/extra_thunks.str \
@@ -844,12 +847,12 @@
@rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
-$(PBC_TO_EXE) : tools/dev/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT) $(DYNEXT_DIR)/file$(LOAD_EXT)
- $(PARROT) -o pbc_to_exe.pbc tools/dev/pbc_to_exe.pir
+$(PBC_TO_EXE) : $(DEV_TOOLS_DIR)/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT) $(DYNEXT_DIR)/file$(LOAD_EXT)
+ $(PARROT) -o pbc_to_exe.pbc $(DEV_TOOLS_DIR)/pbc_to_exe.pir
$(PARROT) pbc_to_exe.pbc pbc_to_exe.pbc
-parrot_nci_thunk_gen.pbc : tools/dev/nci_thunk_gen.pir $(DATA_JSON_LIB_PBCS) $(PARROT)
- $(PARROT) -o parrot_nci_thunk_gen.pbc tools/dev/nci_thunk_gen.pir
+parrot_nci_thunk_gen.pbc : $(DEV_TOOLS_DIR)/nci_thunk_gen.pir $(DATA_JSON_LIB_PBCS) $(PARROT)
+ $(PARROT) -o parrot_nci_thunk_gen.pbc $(DEV_TOOLS_DIR)/nci_thunk_gen.pir
$(NCI_THUNK_GEN) : parrot_nci_thunk_gen.pbc $(PBC_TO_EXE)
$(PBC_TO_EXE) parrot_nci_thunk_gen.pbc
@@ -860,8 +863,8 @@
$(PROVE) : parrot-prove.pbc $(PARROT) $(PBC_TO_EXE)
$(PBC_TO_EXE) parrot-prove.pbc
-$(PARROT_CONFIG) : tools/util/parrot-config.pir $(PARROT) $(PBC_TO_EXE)
- $(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
+$(PARROT_CONFIG) : $(DEV_TOOLS_DIR)/parrot-config.pir $(PARROT) $(PBC_TO_EXE)
+ $(PARROT) -o parrot_config.pbc $(DEV_TOOLS_DIR)/parrot-config.pir
$(PARROT) pbc_to_exe.pbc parrot_config.pbc
$(MINIPARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
@@ -938,10 +941,10 @@
$(IMCC_O_FILES)
lib_deps_object : $(O_FILES)
- $(PERL) tools/dev/lib_deps.pl object $(O_FILES)
+ $(PERL) $(DEV_TOOLS_DIR)/lib_deps.pl object $(O_FILES)
lib_deps_source : $(GENERAL_H_FILES)
- $(PERL) tools/dev/lib_deps.pl source all_source
+ $(PERL) $(DEV_TOOLS_DIR)/lib_deps.pl source all_source
lib_deps : lib_deps_object lib_deps_source
@@ -971,7 +974,7 @@
$(INSTALLABLECONFIG) : src/install_config$(O) $(PARROT_CONFIG) $(PBC_TO_EXE)
- $(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
+ $(PARROT) -o parrot_config.pbc $(DEV_TOOLS_DIR)/parrot-config.pir
$(PBC_TO_EXE) parrot_config.pbc --install
$(INSTALLABLEPBCTOEXE) : $(PBC_TO_EXE) src/install_config$(O)
@@ -1238,8 +1241,6 @@
#
###############################################################################
-src/byteorder$(O) : $(PARROT_H_HEADERS) src/byteorder.c
-
src/datatypes$(O) : $(PARROT_H_HEADERS) src/datatypes.c
src/extend_vtable$(O) : $(PARROT_H_HEADERS) \
@@ -1255,7 +1256,7 @@
src/pmc_freeze$(O) : $(PARROT_H_HEADERS) src/pmc_freeze.str src/pmc_freeze.c
-src/hash$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h src/hash.c
+src/hash$(O) : $(PARROT_H_HEADERS) src/hash.c
src/library$(O) : $(PARROT_H_HEADERS) src/library.str src/library.c\
$(INC_DIR)/dynext.h
@@ -1488,13 +1489,6 @@
src/nci/extra_thunks.c
$(CC) $(CFLAGS) @optimize::src/nci/extra_thunks.c@ @ccwarn::src/nci/extra_thunks.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/nci/extra_thunks.c
-src/frame_builder$(O) : $(PARROT_H_HEADERS) src/frame_builder.h \
- src/frame_builder.c \
- include/pmc/pmc_fixedintegerarray.h \
- include/pmc/pmc_unmanagedstruct.h \
- include/pmc/pmc_managedstruct.h \
- $(INC_DIR)/oplib/ops.h
-
src/vtables$(O) : $(PARROT_H_HEADERS) src/vtables.c
## SUFFIX OVERRIDE
@@ -1676,10 +1670,22 @@
CONFIGURE_TEST_FILES = \
t/configure/*.t \
t/steps/*.t
+PBC_TEST_FILES = \
+ t/pmc/testlib/annotations.pbc \
+ t/pmc/testlib/number.pbc
+
+# pbc files used for several tests
+pbctestfiles: $(PARROT) $(PBC_TEST_FILES)
+
+t/pmc/testlib/number.pbc: t/pmc/testlib/number.pasm
+ $(PARROT) -o t/pmc/testlib/number.pbc t/pmc/testlib/number.pasm
+
+t/pmc/testlib/annotations.pbc: t/pmc/testlib/annotations.pir
+ $(PARROT) -o t/pmc/testlib/annotations.pbc t/pmc/testlib/annotations.pir
# Common prep for all test targets.
# We probably need a complete build before running the tests.
-test_prep : all
+test_prep : all pbctestfiles
# Run test cases with a single call of t/harness. Users have to look at only
# one report. The default set of tests to run is contained in t/harness,
@@ -1703,7 +1709,7 @@
smoke : smolder_test
# "core tests" -- test basic functionality but not ancillaries
-coretest : corevm
+coretest : corevm pbctestfiles
$(PERL) t/harness $(EXTRA_TEST_ARGS) --core-tests
# automake compatibility
@@ -1953,6 +1959,7 @@
$(RM_F) t/compilers/pge/*.pir
$(RM_F) t/compilers/tge/*.pir
$(RM_F) \
+ $(PBC_TEST_FILES) \
"t/*/*$(O)" \
"t/*/*.out" \
"t/*/*.pasm" \
@@ -1995,19 +2002,19 @@
# Require .svn to exist first
# Otherwise it'll remove every last file
svnclobber : .svn
- $(PERL) tools/dev/svnclobber.pl
+ $(PERL) $(DEV_TOOLS_DIR)/svnclobber.pl
reconfig : realclean
$(PERL) Configure.pl $(CONFIG_ARGS)
manitest :
- $(PERL) tools/dev/manicheck.pl
+ $(PERL) $(DEV_TOOLS_DIR)/manicheck.pl
opsrenumber :
- $(PERL) tools/dev/opsrenumber.pl $(OPS_FILES)
+ $(PERL) $(DEV_TOOLS_DIR)/opsrenumber.pl $(OPS_FILES)
pmcrenumber :
- $(PERL) tools/dev/pmcrenumber.pl src/pmc/pmc.num
+ $(PERL) $(DEV_TOOLS_DIR)/pmcrenumber.pl src/pmc/pmc.num
###############################################################################
#
@@ -2359,7 +2366,7 @@
install-dev: install
install-bin: installable
- $(PERL) tools/dev/install_files.pl \
+ $(PERL) $(DEV_TOOLS_DIR)/install_files.pl \
--buildprefix=$(BUILDPREFIX) \
--prefix=$(PREFIX) \
--exec-prefix=$(EXEC_PREFIX) \
@@ -2373,7 +2380,7 @@
MANIFEST MANIFEST.generated
install-dev-only: installable
- $(PERL) tools/dev/install_dev_files.pl \
+ $(PERL) $(DEV_TOOLS_DIR)/install_dev_files.pl \
--buildprefix=$(BUILDPREFIX) \
--prefix=$(PREFIX) \
--exec-prefix=$(EXEC_PREFIX) \
@@ -2388,7 +2395,7 @@
MANIFEST MANIFEST.generated
install-doc:
- $(PERL) tools/dev/install_doc_files.pl \
+ $(PERL) $(DEV_TOOLS_DIR)/install_doc_files.pl \
--buildprefix=$(BUILDPREFIX) \
--prefix=$(PREFIX) \
--docdir=$(DOC_DIR) \
@@ -2417,7 +2424,7 @@
rm parrot-$(VERSION)
win32-inno-installer : world installable
- $(PERL) tools/dev/mk_inno.pl
+ $(PERL) $(DEV_TOOLS_DIR)/mk_inno.pl
$(INNO_SETUP) parrot.iss
###############################################################################
@@ -2511,7 +2518,7 @@
--languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
-I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \
.
- $(PERL) $(BUILD_TOOLS_DIR)/addopstags.pl $(OPS_FILES)
+ $(PERL) $(DEV_TOOLS_DIR)/addopstags.pl $(OPS_FILES)
tags.vi.dummy:
@@ -2523,12 +2530,12 @@
CRITIC_FILES = 'lib/Parrot'
perlcritic:
- perlcritic --profile tools/util/perlcritic.conf $(CRITIC_FILES)
+ perlcritic --profile $(DEV_TOOLS_DIR)/perlcritic.conf $(CRITIC_FILES)
# Andy's extra-cranky Perl::Critic checking for cage cleaners
cagecritic:
@perl -MPerl::Critic::Bangs -e'$$min=q{1.04};die qq{You need Bangs $$min} unless $$Perl::Critic::Bangs::VERSION ge $$min'
- perlcritic -1 --profile tools/util/perlcritic-cage.conf $(CRITIC_FILES)
+ perlcritic -1 --profile $(DEV_TOOLS_DIR)/perlcritic-cage.conf $(CRITIC_FILES)
# This target will eventually create all the headers automatically. If you
# are having problems with linkage in Win32 (or elsewhere), because something
Modified: branches/unshared_buffers/config/gen/platform.pm
==============================================================================
--- branches/unshared_buffers/config/gen/platform.pm Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/config/gen/platform.pm Sun Aug 29 17:09:11 2010 (r48719)
@@ -197,6 +197,7 @@
exec.c
misc.c
hires_timer.c
+ pid.c
/;
my $plat_c = q{src/platform.c};
Copied: branches/unshared_buffers/config/gen/platform/ansi/pid.c (from r48712, trunk/config/gen/platform/ansi/pid.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/config/gen/platform/ansi/pid.c Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/config/gen/platform/ansi/pid.c)
@@ -0,0 +1,50 @@
+/* $Id$
+ * Copyright (C) 2010, Parrot Foundation.
+ */
+
+/*
+
+=head1 NAME
+
+config/gen/platform/ansi/pid.c
+
+=head1 DESCRIPTION
+
+Parrot process id functions.
+
+=head2 Functions
+
+=over 4
+
+=cut
+
+=item C<UINTVAL Parrot_getpid(void)>
+
+Parrot wrapper around standard library C<getpid()> function, returning an UINTVAL.
+
+=cut
+
+*/
+
+UINTVAL
+Parrot_getpid(void)
+{
+ Parrot_warn(NULL, PARROT_WARNINGS_PLATFORM_FLAG, "Parrot_getpid unuseful in this platform");
+ return 0;
+}
+
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Copied: branches/unshared_buffers/config/gen/platform/generic/pid.c (from r48712, trunk/config/gen/platform/generic/pid.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/config/gen/platform/generic/pid.c Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/config/gen/platform/generic/pid.c)
@@ -0,0 +1,56 @@
+/* $Id$
+ * Copyright (C) 2010, Parrot Foundation.
+ */
+
+/*
+
+=head1 NAME
+
+config/gen/platform/generic/pid.c
+
+=head1 DESCRIPTION
+
+Parrot process id functions.
+
+=head2 Functions
+
+=over 4
+
+=cut
+
+*/
+
+#include <sys/types.h>
+#include <unistd.h>
+
+/*
+
+=item C<UINTVAL Parrot_getpid(void)>
+
+Parrot wrapper around standard library C<getpid()> function, returning an UINTVAL.
+
+=cut
+
+*/
+
+UINTVAL
+Parrot_getpid(void)
+{
+ return getpid();
+}
+
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Copied: branches/unshared_buffers/config/gen/platform/win32/pid.c (from r48712, trunk/config/gen/platform/win32/pid.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/config/gen/platform/win32/pid.c Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/config/gen/platform/win32/pid.c)
@@ -0,0 +1,50 @@
+/* $Id$
+ * Copyright (C) 2010, Parrot Foundation.
+ */
+
+/*
+
+=head1 NAME
+
+config/gen/platform/win32/pid.c
+
+=head1 DESCRIPTION
+
+Parrot process id functions.
+
+=head2 Functions
+
+=over 4
+
+=cut
+
+=item C<UINTVAL Parrot_getpid(void)>
+
+Parrot wrapper around standard library C<getpid()> function, returning an UINTVAL.
+
+=cut
+
+*/
+
+UINTVAL
+Parrot_getpid(void)
+{
+ Parrot_warn(NULL, PARROT_WARNINGS_PLATFORM_FLAG, "Parrot_getpid unuseful in this platform");
+ return 0;
+}
+
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/unshared_buffers/docs/embed.pod
==============================================================================
--- branches/unshared_buffers/docs/embed.pod Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/docs/embed.pod Sun Aug 29 17:09:11 2010 (r48719)
@@ -298,20 +298,10 @@
Search the namespace PMC C<namespace> for an object with name C<globalname>.
Return the object, or NULL if not found.
-=item C<Parrot_PMC Parrot_find_global_s(PARROT_INTERP, Parrot_String namespace, Parrot_String name)>
-
-Find and return a global called C<name> in the namespace C<namespace>. Returns
-C<PMCNULL> if not found.
-
=item C<void Parrot_ns_store_global(PARROT_INTERP, PMC namespace, Parrot_String name, Parrot_PMC val)>
Store the PMC C<val> into the namespace PMC C<namespace> with name C<globalname>.
-=item C<void Parrot_store_global_s(PARROT_INTERP, Parrot_String namespace, Parrot_String name, Parrot_PMC val)>
-
-Sets the value of a global called C<name> in the namespace C<namespace>. Does
-nothing if the global is not found.
-
=back
=head3 Lexicals
@@ -717,8 +707,6 @@
=item C<Parrot_ns_find_global_from_op>
-=item C<Parrot_find_global_s>
-
=item C<Parrot_find_language>
=item C<Parrot_find_method_direct>
@@ -1529,8 +1517,6 @@
=item C<Parrot_ns_store_global>
-=item C<Parrot_store_global_s>
-
=item C<Parrot_ns_store_sub>
=item C<Parrot_str_boolean>
Modified: branches/unshared_buffers/docs/parrothist.pod
==============================================================================
--- branches/unshared_buffers/docs/parrothist.pod Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/docs/parrothist.pod Sun Aug 29 17:09:11 2010 (r48719)
@@ -11,7 +11,7 @@
Simon Cozens, Jeff Goff, Steve Fink, Leo Toetsch, Chip Salzenberg, Jerry Gay,
Patrick Michaud, Will "coke" Coleda, Matt Diephouse, chromatic, Allison Randal,
Jonathan Worthington, Bob Rogers, Bernhard Schmalhofer, Andrew Whitworth,
-Francois Perrad, Jonathan Leto.
+Francois Perrad, Jonathan Leto, Michael Hind.
=head1 THE RECORDS
@@ -112,5 +112,6 @@
Gerd 2.5.0 2010-Jun-15 "Cheops"
coke 2.6.0 * 2010-Jul-20 "Red-rumped"
+ mikehh 2.7.0 2010-Aug-17 "Australian King"
=cut
Modified: branches/unshared_buffers/docs/project/release_manager_guide.pod
==============================================================================
--- branches/unshared_buffers/docs/project/release_manager_guide.pod Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/docs/project/release_manager_guide.pod Sun Aug 29 17:09:11 2010 (r48719)
@@ -84,7 +84,7 @@
=item c
-Update release-related information in F<tools/util/release.json>. This will be
+Update release-related information in F<tools/release/release.json>. This will be
used later when making release announcements. There are a few essential
fields that must be updated at each release:
@@ -118,16 +118,9 @@
=item f
-In the two files F<src/ops/core_ops.c> and F<include/parrot/oplib/core_ops.h>
-is the function C<Parrot_DynOp_core_a_b_c>, which has a name that includes
-the version number. a_b_c is the version number. You have to update this
-version number on two places in the file F<src/ops/core_ops.c>.
-In the file F<include/parrot/oplib/core_ops.h> you have to change this line:
-
- op_lib_t *Parrot_DynOp_core_a_b_c(PARROT_INTERP, long init);
-
-Ignore the warning to not edit this files. It is necessary to edit this files,
-so that "make" builds with the increased version number.
+Run C<./ops2c --core> (or C<make bootstrap-ops>, ignoring errors) followed by
+C<make reconfig> and C<make> to update the names of version-specific internal
+functions.
=item g
@@ -251,11 +244,11 @@
=item 9.
-Compose the release announcement. Use F<tools/util/crow.pir> to make
+Compose the release announcement. Use F<tools/release/crow.pir> to make
this part easier. You can specify the format of your announcements like so:
- $ ./parrot tools/util/crow.pir --type=text
- $ ./parrot tools/util/crow.pir --type=html
+ $ ./parrot tools/release/crow.pir --type=text
+ $ ./parrot tools/release/crow.pir --type=html
Take the screen output and paste it into the application you need. HTML
works well for use Perl and PerlMonks, and text for the rest. It is not a
@@ -413,7 +406,6 @@
visible at
L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
- - Aug 17, 2010 - 2.7 - mikehh
- Sep 21, 2010 - 2.8 - gerd
- Oct 19, 2010 - 2.9* - gerd
- Nov 16, 2010 - 2.10 - ??
Modified: branches/unshared_buffers/examples/languages/squaak/doc/tutorial_episode_1.pod
==============================================================================
--- branches/unshared_buffers/examples/languages/squaak/doc/tutorial_episode_1.pod Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/examples/languages/squaak/doc/tutorial_episode_1.pod Sun Aug 29 17:09:11 2010 (r48719)
@@ -219,8 +219,9 @@
The exercises are provided at the end of each episode of this tutorial. In
order to keep the length of this tutorial somewhat acceptable, not everything
-can be discussed in full detail. The answers and/or solutions to these exercises
-will be posted several days after the episode.
+can be discussed in full detail. With episode 3 the answers and/or solutions
+to these exercises are at the end of each episode. The answer of the exercise
+from episode 1 is at the end of episode 2.
=head3 Advanced interactive mode.
Modified: branches/unshared_buffers/examples/languages/squaak/src/squaak.pir
==============================================================================
--- branches/unshared_buffers/examples/languages/squaak/src/squaak.pir Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/examples/languages/squaak/src/squaak.pir Sun Aug 29 17:09:11 2010 (r48719)
@@ -10,7 +10,7 @@
This is the base file for the Squaak compiler.
This file includes the parsing and grammar rules from
-the src/ directory, loads the relevant PGE libraries,
+the src/ directory, loads the relevant PCT libraries,
and registers the compiler under the name 'Squaak'.
=head2 Functions
Copied: branches/unshared_buffers/examples/tools/pgegrep (from r48712, trunk/examples/tools/pgegrep)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/examples/tools/pgegrep Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/examples/tools/pgegrep)
@@ -0,0 +1,308 @@
+#! parrot
+
+=head1 NAME
+
+pgegrep - A simple grep using PGE for matching
+
+=head1 SYNOPSIS
+
+B<pgegrep> [I<OPTIONS>] B<PATTERN> [I<FILE...>]
+
+=head1 DESCRIPTION
+
+pgegrep aims to be a small and easy to use program in replacement of the
+standard grep utility. Regex support is whatever PGE will allow. It
+searches through files line by line and tests if the given pattern matches.
+
+=head1 OPTIONS
+
+=over 4
+
+=item -v
+
+=item --invert-match
+
+print lines not matching PATTERN
+
+=item -V
+
+=item --version
+
+print the version and exit
+
+=item --help
+
+show this help and exit
+
+=item -r
+
+=item --recursive
+
+recursively descend into directories
+
+=item -L
+
+=item --files-without-matches
+
+print a list of files that do not match PATTERN
+
+=item -l
+
+=item --files-with-matches
+
+print a list of files that do match PATTERN
+
+=item -a
+
+=item --text
+
+treat binary files as text.
+
+This uses a basic heuristic to discover if a file is binary or not. Files are
+read line by line, and it keeps processing "normally" until a control character
+is found, and then stops and goes onto the next file is that line matches.
+
+=item -n
+
+=item --line-number
+
+print the line number for each match
+
+=item -H
+
+=item --with-filename
+
+print the filename for each match
+
+=back
+
+=cut
+
+# Readability improved!
+.include 'hllmacros.pir'
+
+# for getstdin and friends
+.loadlib 'io_ops'
+
+.sub main :main
+ .param pmc argv # the script name, then our options.
+ .local string progname
+ progname = shift argv
+ load_bytecode 'Getopt/Obj.pbc'
+ load_bytecode 'PGE.pbc'
+ .local pmc getopts
+ getopts = new [ 'Getopt';'Obj' ]
+ getopts.'notOptStop'(1)
+ push getopts, 'with-filename|H'
+ push getopts, 'files-with-matches|l'
+ push getopts, 'files-without-matches|L'
+ push getopts, 'line-number|n'
+ push getopts, 'text|a'
+ push getopts, 'recursive|r'
+ push getopts, 'invert-match|v'
+ push getopts, 'version|V'
+ push getopts, 'help'
+ push_eh handler
+ .local pmc opts
+ opts = getopts.'get_options'(argv)
+ $I0 = defined opts['help']
+ .If($I0, {
+ showhelp()
+ })
+ $I0 = defined opts['version']
+ .If($I0, {
+ showversion()
+ })
+
+ .local int argc
+ argc = elements argv
+ .Unless(argc>1, { showhelp() }) # need rule and at least one file
+
+ .local string rule
+ .local pmc p6rule_compile, matchsub
+ rule = shift argv
+ p6rule_compile = compreg 'PGE::Perl6Regex'
+ matchsub = p6rule_compile(rule)
+ .If(null matchsub, { die 'Unable to compile regex' })
+
+ .local int i, filecount
+ .local string filename
+ .local pmc File, OS, files, handle
+ files = new 'ResizableStringArray'
+ files = argv
+ filecount = files
+ # define with-filename if there's more than one file
+ .If(filecount >= 2, { opts['with-filename'] = 1 })
+ $P0 = loadlib 'file'
+ File = new 'File'
+ $P0 = loadlib 'os'
+ OS = new 'OS'
+ # This must be here, or else it'll get filled with junk data we use stdin...
+ i = 0
+
+ .Unless(filecount, {
+ # no args, use stdin
+ stdindashhack:
+ handle = getstdin
+ filename = '(standard input)'
+ goto stdinhack
+ })
+ .For(, i < filecount, inc i, {
+ filename = files[i]
+ .If(filename == '-', {
+ goto stdindashhack
+ })
+ $I1 = File.'is_file'(filename)
+ .IfElse($I1, {
+ # Is a file
+ handle = open filename, 'r'
+ },{
+ # Not a file, hopefully a directory
+ $I1 = File.'is_dir'(filename)
+ $I0 = defined opts['recursive']
+ $I1 &= $I0
+ .Unless($I1, {
+ printerr "pgegrep: '"
+ printerr filename
+ printerr "': Operation not supported.\n"
+ goto nextfor_0
+ })
+ $P0 = OS.'readdir'(filename)
+ .Foreach($S0, $P0, {
+ .If($S0 != '.', {
+ .If($S0 != '..', {
+ $S1 = filename . '/'
+ $S0 = $S1 . $S0
+ $P1 = new 'ResizableStringArray'
+ $P1[0] = $S0
+ $I0 = i + 1
+ splice files, $P1, $I0, 0
+ }) })
+ })
+ filecount = files
+ goto nextfor_0
+ })
+ stdinhack:
+ checkfile(handle, filename, matchsub, opts)
+ close handle
+ nextfor_0:
+ })
+
+ end
+handler:
+ .local pmc exception, pmcmsg
+ .local string message
+ .get_results (exception)
+ pmcmsg = getattribute exception, 'message'
+ pop_eh
+ message = pmcmsg
+ message = "pgegrep: " . message
+ die message
+.end
+
+.sub checkfile
+ .param pmc handle
+ .param string filename
+ .param pmc matchsub
+ .param pmc opts
+
+ .local pmc match
+ .local string line
+ .local int lineno, linelen, matched
+ lineno = 1
+ matched = 0 # Only used for --files-without-matches
+ line = readline handle
+ linelen = length line
+
+ .local pmc p6rule_compile, cntrlchar
+ $S0 = '<+cntrl-[\t\r\n]>'
+ p6rule_compile = compreg 'PGE::Perl6Regex'
+ cntrlchar = p6rule_compile($S0)
+
+ .For(, linelen, {
+ line = readline handle
+ linelen = length line
+ inc lineno
+ }, {
+ match = matchsub(line)
+ $I1 = istrue match
+ match = cntrlchar(line)
+
+ $I2 = istrue match
+ $I0 = defined opts['files-without-matches']
+ .If($I0, {
+ .If($I1, { matched = 1 })
+ goto next
+ })
+ $I0 = defined opts['files-with-matches']
+ $I0 = $I0 && $I1
+ .If($I0, {
+ say filename
+ .return()
+ })
+
+ $I0 = defined opts['invert-match']
+ not $I0
+ $I1 = xor $I1, $I0
+ .Unless($I1, {
+ $I0 = defined opts['text']
+ $I0 = xor $I0, $I2
+ .If($I0, {
+ print 'Binary file '
+ print filename
+ say ' matches'
+ .return()
+ })
+ $I0 = defined opts['with-filename']
+ $I1 = defined opts['recursive']
+ $I0 = $I0 || $I1
+ .If($I0, {
+ print filename
+ print ':'
+ })
+ $I0 = defined opts['line-number']
+ .If($I0, {
+ print lineno
+ print ':'
+ })
+ print line
+ })
+ #---------
+ next:
+ })
+ $I0 = defined opts['files-without-matches']
+ .If($I0, { say filename })
+ .return()
+.end
+
+.sub showhelp
+ print <<'HELP'
+Usage: pgegrep [OPTIONS] PATTERN [FILE...]
+Search for the Perl 6 Rule PATTERN in each file.
+
+ -v --invert-match print lines not matching PATTERN
+ -V --version print the version and exit
+ --help show this help and exit
+ -r --recursive recursively descend into directories
+ -L --files-without-matches print a list of files that do not match PATTERN
+ -l --files-with-matches print a list of files that do match PATTERN
+ -a --text treat binary files as text
+ -n --line-number print the line number for each match
+ -H --with-filename print the filename for each match
+
+HELP
+ end
+.end
+
+.sub showversion
+ print <<'VERSION'
+pgegrep v0.0.1
+VERSION
+ end
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/unshared_buffers/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/unshared_buffers/ext/nqp-rx/src/stage0/HLL-s0.pir Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/ext/nqp-rx/src/stage0/HLL-s0.pir Sun Aug 29 17:09:11 2010 (r48719)
@@ -438,6 +438,16 @@
.sub 'quote_EXPR' :method
.param pmc args :slurpy
+ .local pmc cur, debug
+ .local string target
+ .local int pos
+
+ (cur, pos, target) = self.'!cursor_start'()
+ debug = getattribute cur, '$!debug'
+ if null debug goto debug_1
+ cur.'!cursor_debug'('START', 'quote_EXPR')
+ debug_1:
+
.local pmc quotemod, true
.lex '%*QUOTEMOD', quotemod
quotemod = new ['Hash']
@@ -466,11 +476,6 @@
goto args_loop
args_done:
- .local pmc cur
- .local string target
- .local int pos
-
- (cur, pos, target) = self.'!cursor_start'()
.local pmc start, stop
(start, stop) = self.'peek_delimiters'(target, pos)
@@ -484,7 +489,13 @@
$P10.'!cursor_names'('quote_delimited')
pos = $P10.'pos'()
cur.'!cursor_pass'(pos, 'quote_EXPR')
+ if null debug goto done
+ cur.'!cursor_debug'('PASS', 'quote_EXPR')
+ goto done
fail:
+ if null debug goto done
+ cur.'!cursor_debug'('FAIL', 'quote_EXPR')
+ done:
.return (cur)
.end
@@ -574,6 +585,13 @@
.param string preclim :optional
.param int has_preclim :opt_flag
+ .local pmc here, pos, debug
+ (here, pos) = self.'!cursor_start'()
+ debug = getattribute here, '$!debug'
+ if null debug goto debug_1
+ here.'!cursor_debug'('START', 'EXPR')
+ debug_1:
+
if has_preclim goto have_preclim
preclim = ''
have_preclim:
@@ -588,9 +606,6 @@
termstack = new ['ResizablePMCArray']
.lex '@termstack', termstack
- .local pmc here, from, pos
- (here, pos) = self.'!cursor_start'()
-
term_loop:
here = here.termishrx()
unless here goto fail
@@ -718,7 +733,14 @@
setattribute here, '$!pos', pos
setattribute here, '$!match', term
here.'!reduce'('EXPR')
+ if null debug goto done
+ here.'!cursor_debug'('PASS', 'EXPR')
+ goto done
+
fail:
+ if null debug goto done
+ here.'!cursor_debug'('FAIL', 'EXPR')
+ done:
.return (here)
err_internal:
@@ -809,7 +831,7 @@
.local pmc pos
pos = self.'pos'()
- self.'!cursor_debug'('START MARKER name=', markname, ', pos=', pos)
+ self.'!cursor_debug'('START', 'MARKER name=', markname, ', pos=', pos)
.local pmc markhash
markhash = get_global '%!MARKHASH'
@@ -818,7 +840,7 @@
set_global '%!MARKHASH', markhash
have_markhash:
markhash[markname] = pos
- self.'!cursor_debug'('PASS MARKER')
+ self.'!cursor_debug'('PASS', 'MARKER')
.return (1)
.end
@@ -826,7 +848,7 @@
.sub 'MARKED' :method
.param pmc markname
- self.'!cursor_debug'('START MARKED name=', markname)
+ self.'!cursor_debug'('START','MARKED name=', markname)
.local pmc markhash
markhash = get_global '%!MARKHASH'
@@ -835,10 +857,10 @@
if null $P0 goto fail
$P1 = self.'pos'()
unless $P0 == $P1 goto fail
- self.'!cursor_debug'('PASS MARKED')
+ self.'!cursor_debug'('PASS','MARKED')
.return (1)
fail:
- self.'!cursor_debug'('FAIL MARKED')
+ self.'!cursor_debug'('FAIL','MARKED')
.return (0)
.end
@@ -902,7 +924,7 @@
### .include 'gen/hllgrammar-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1280467467.13603")
+.sub "_block11" :anon :subid("10_1282323993.58127")
.annotate 'line', 0
get_hll_global $P14, ["HLL";"Grammar"], "_block13"
capture_lex $P14
@@ -919,15 +941,15 @@
$P332 = $P14()
.annotate 'line', 1
.return ($P332)
- .const 'Sub' $P334 = "106_1280467467.13603"
+ .const 'Sub' $P334 = "106_1282323993.58127"
.return ($P334)
.end
.namespace []
-.sub "" :load :init :subid("post107") :outer("10_1280467467.13603")
+.sub "" :load :init :subid("post107") :outer("10_1282323993.58127")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1280467467.13603"
+ .const 'Sub' $P12 = "10_1282323993.58127"
.local pmc block
set block, $P12
$P337 = get_root_global ["parrot"], "P6metaclass"
@@ -936,83 +958,83 @@
.namespace ["HLL";"Grammar"]
-.sub "_block13" :subid("11_1280467467.13603") :outer("10_1280467467.13603")
+.sub "_block13" :subid("11_1282323993.58127") :outer("10_1282323993.58127")
.annotate 'line', 5
- .const 'Sub' $P319 = "103_1280467467.13603"
+ .const 'Sub' $P319 = "103_1282323993.58127"
capture_lex $P319
- .const 'Sub' $P313 = "101_1280467467.13603"
+ .const 'Sub' $P313 = "101_1282323993.58127"
capture_lex $P313
- .const 'Sub' $P300 = "98_1280467467.13603"
+ .const 'Sub' $P300 = "98_1282323993.58127"
capture_lex $P300
- .const 'Sub' $P268 = "93_1280467467.13603"
+ .const 'Sub' $P268 = "93_1282323993.58127"
capture_lex $P268
- .const 'Sub' $P262 = "91_1280467467.13603"
+ .const 'Sub' $P262 = "91_1282323993.58127"
capture_lex $P262
- .const 'Sub' $P257 = "89_1280467467.13603"
+ .const 'Sub' $P257 = "89_1282323993.58127"
capture_lex $P257
- .const 'Sub' $P251 = "87_1280467467.13603"
+ .const 'Sub' $P251 = "87_1282323993.58127"
capture_lex $P251
- .const 'Sub' $P245 = "85_1280467467.13603"
+ .const 'Sub' $P245 = "85_1282323993.58127"
capture_lex $P245
- .const 'Sub' $P240 = "83_1280467467.13603"
+ .const 'Sub' $P240 = "83_1282323993.58127"
capture_lex $P240
- .const 'Sub' $P235 = "81_1280467467.13603"
+ .const 'Sub' $P235 = "81_1282323993.58127"
capture_lex $P235
- .const 'Sub' $P230 = "79_1280467467.13603"
+ .const 'Sub' $P230 = "79_1282323993.58127"
capture_lex $P230
- .const 'Sub' $P225 = "77_1280467467.13603"
+ .const 'Sub' $P225 = "77_1282323993.58127"
capture_lex $P225
- .const 'Sub' $P220 = "75_1280467467.13603"
+ .const 'Sub' $P220 = "75_1282323993.58127"
capture_lex $P220
- .const 'Sub' $P215 = "73_1280467467.13603"
+ .const 'Sub' $P215 = "73_1282323993.58127"
capture_lex $P215
- .const 'Sub' $P210 = "71_1280467467.13603"
+ .const 'Sub' $P210 = "71_1282323993.58127"
capture_lex $P210
- .const 'Sub' $P205 = "69_1280467467.13603"
+ .const 'Sub' $P205 = "69_1282323993.58127"
capture_lex $P205
- .const 'Sub' $P195 = "65_1280467467.13603"
+ .const 'Sub' $P195 = "65_1282323993.58127"
capture_lex $P195
- .const 'Sub' $P182 = "63_1280467467.13603"
+ .const 'Sub' $P182 = "63_1282323993.58127"
capture_lex $P182
- .const 'Sub' $P170 = "61_1280467467.13603"
+ .const 'Sub' $P170 = "61_1282323993.58127"
capture_lex $P170
- .const 'Sub' $P164 = "59_1280467467.13603"
+ .const 'Sub' $P164 = "59_1282323993.58127"
capture_lex $P164
- .const 'Sub' $P157 = "57_1280467467.13603"
+ .const 'Sub' $P157 = "57_1282323993.58127"
capture_lex $P157
- .const 'Sub' $P151 = "55_1280467467.13603"
+ .const 'Sub' $P151 = "55_1282323993.58127"
capture_lex $P151
- .const 'Sub' $P144 = "53_1280467467.13603"
+ .const 'Sub' $P144 = "53_1282323993.58127"
capture_lex $P144
- .const 'Sub' $P138 = "51_1280467467.13603"
+ .const 'Sub' $P138 = "51_1282323993.58127"
capture_lex $P138
- .const 'Sub' $P131 = "49_1280467467.13603"
+ .const 'Sub' $P131 = "49_1282323993.58127"
capture_lex $P131
- .const 'Sub' $P125 = "47_1280467467.13603"
+ .const 'Sub' $P125 = "47_1282323993.58127"
capture_lex $P125
- .const 'Sub' $P119 = "45_1280467467.13603"
+ .const 'Sub' $P119 = "45_1282323993.58127"
capture_lex $P119
- .const 'Sub' $P110 = "43_1280467467.13603"
+ .const 'Sub' $P110 = "43_1282323993.58127"
capture_lex $P110
- .const 'Sub' $P102 = "41_1280467467.13603"
+ .const 'Sub' $P102 = "41_1282323993.58127"
capture_lex $P102
- .const 'Sub' $P92 = "40_1280467467.13603"
+ .const 'Sub' $P92 = "40_1282323993.58127"
capture_lex $P92
- .const 'Sub' $P86 = "38_1280467467.13603"
+ .const 'Sub' $P86 = "38_1282323993.58127"
capture_lex $P86
- .const 'Sub' $P81 = "36_1280467467.13603"
+ .const 'Sub' $P81 = "36_1282323993.58127"
capture_lex $P81
- .const 'Sub' $P73 = "34_1280467467.13603"
+ .const 'Sub' $P73 = "34_1282323993.58127"
capture_lex $P73
- .const 'Sub' $P67 = "32_1280467467.13603"
+ .const 'Sub' $P67 = "32_1282323993.58127"
capture_lex $P67
- .const 'Sub' $P61 = "30_1280467467.13603"
+ .const 'Sub' $P61 = "30_1282323993.58127"
capture_lex $P61
- .const 'Sub' $P55 = "28_1280467467.13603"
+ .const 'Sub' $P55 = "28_1282323993.58127"
capture_lex $P55
- .const 'Sub' $P22 = "14_1280467467.13603"
+ .const 'Sub' $P22 = "14_1282323993.58127"
capture_lex $P22
- .const 'Sub' $P15 = "12_1280467467.13603"
+ .const 'Sub' $P15 = "12_1282323993.58127"
capture_lex $P15
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
@@ -1021,17 +1043,17 @@
$P0."ctxsave"()
ctxsave_done:
.annotate 'line', 33
- .const 'Sub' $P319 = "103_1280467467.13603"
+ .const 'Sub' $P319 = "103_1282323993.58127"
capture_lex $P319
.annotate 'line', 5
.return ($P319)
- .const 'Sub' $P329 = "105_1280467467.13603"
+ .const 'Sub' $P329 = "105_1282323993.58127"
.return ($P329)
.end
.namespace ["HLL";"Grammar"]
-.sub "ws" :subid("12_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "ws" :subid("12_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 5
.local string rx16_tgt
.local int rx16_pos
@@ -1039,7 +1061,9 @@
.local int rx16_eos
.local int rx16_rep
.local pmc rx16_cur
+ .local pmc rx16_debug
(rx16_cur, rx16_pos, rx16_tgt, $I10) = self."!cursor_start"()
+ getattribute rx16_debug, rx16_cur, "$!debug"
.lex unicode:"$\x{a2}", rx16_cur
.local pmc match
.lex "$/", match
@@ -1051,7 +1075,9 @@
substr rx16_tgt, rx16_tgt, rx16_off
rx16_start:
eq $I10, 1, rx16_restart
- rx16_cur."!cursor_debug"("START ", "ws")
+ if_null rx16_debug, debug_108
+ rx16_cur."!cursor_debug"("START", "ws")
+ debug_108:
$I10 = self.'from'()
ne $I10, -1, rxscan19_done
goto rxscan19_scan
@@ -1087,8 +1113,8 @@
add $I11, rx16_pos, 1
gt $I11, rx16_eos, rx16_fail
sub $I11, rx16_pos, rx16_off
- substr $S10, rx16_tgt, $I11, 1
- ne $S10, "#", rx16_fail
+ ord $I11, rx16_tgt, $I11
+ ne $I11, 35, rx16_fail
add rx16_pos, 1
# rx charclass_q N r 0..-1
sub $I10, rx16_pos, rx16_off
@@ -1103,10 +1129,14 @@
rxquantr20_done:
# rx pass
rx16_cur."!cursor_pass"(rx16_pos, "ws")
- rx16_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx16_pos)
+ if_null rx16_debug, debug_109
+ rx16_cur."!cursor_debug"("PASS", "ws", " at pos=", rx16_pos)
+ debug_109:
.return (rx16_cur)
rx16_restart:
- rx16_cur."!cursor_debug"("NEXT ", "ws")
+ if_null rx16_debug, debug_110
+ rx16_cur."!cursor_debug"("NEXT", "ws")
+ debug_110:
rx16_fail:
(rx16_rep, rx16_pos, $I10, $P10) = rx16_cur."!mark_fail"(0)
lt rx16_pos, -1, rx16_done
@@ -1114,14 +1144,16 @@
jump $I10
rx16_done:
rx16_cur."!cursor_fail"()
- rx16_cur."!cursor_debug"("FAIL ", "ws")
+ if_null rx16_debug, debug_111
+ rx16_cur."!cursor_debug"("FAIL", "ws")
+ debug_111:
.return (rx16_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws" :subid("13_1280467467.13603") :method
+.sub "!PREFIX__ws" :subid("13_1282323993.58127") :method
.annotate 'line', 5
new $P18, "ResizablePMCArray"
push $P18, ""
@@ -1130,7 +1162,7 @@
.namespace ["HLL";"Grammar"]
-.sub "termish" :subid("14_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "termish" :subid("14_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 5
.local string rx23_tgt
.local int rx23_pos
@@ -1138,8 +1170,10 @@
.local int rx23_eos
.local int rx23_rep
.local pmc rx23_cur
+ .local pmc rx23_debug
(rx23_cur, rx23_pos, rx23_tgt, $I10) = self."!cursor_start"()
- rx23_cur."!cursor_caparray"("prefixish", "postfixish")
+ rx23_cur."!cursor_caparray"("postfixish", "prefixish")
+ getattribute rx23_debug, rx23_cur, "$!debug"
.lex unicode:"$\x{a2}", rx23_cur
.local pmc match
.lex "$/", match
@@ -1151,7 +1185,9 @@
substr rx23_tgt, rx23_tgt, rx23_off
rx23_start:
eq $I10, 1, rx23_restart
- rx23_cur."!cursor_debug"("START ", "termish")
+ if_null rx23_debug, debug_112
+ rx23_cur."!cursor_debug"("START", "termish")
+ debug_112:
$I10 = self.'from'()
ne $I10, -1, rxscan26_done
goto rxscan26_scan
@@ -1223,11 +1259,15 @@
.annotate 'line', 7
# rx pass
rx23_cur."!cursor_pass"(rx23_pos, "termish")
- rx23_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx23_pos)
+ if_null rx23_debug, debug_113
+ rx23_cur."!cursor_debug"("PASS", "termish", " at pos=", rx23_pos)
+ debug_113:
.return (rx23_cur)
rx23_restart:
.annotate 'line', 5
- rx23_cur."!cursor_debug"("NEXT ", "termish")
+ if_null rx23_debug, debug_114
+ rx23_cur."!cursor_debug"("NEXT", "termish")
+ debug_114:
rx23_fail:
(rx23_rep, rx23_pos, $I10, $P10) = rx23_cur."!mark_fail"(0)
lt rx23_pos, -1, rx23_done
@@ -1235,14 +1275,16 @@
jump $I10
rx23_done:
rx23_cur."!cursor_fail"()
- rx23_cur."!cursor_debug"("FAIL ", "termish")
+ if_null rx23_debug, debug_115
+ rx23_cur."!cursor_debug"("FAIL", "termish")
+ debug_115:
.return (rx23_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish" :subid("15_1280467467.13603") :method
+.sub "!PREFIX__termish" :subid("15_1282323993.58127") :method
.annotate 'line', 5
new $P25, "ResizablePMCArray"
push $P25, ""
@@ -1251,7 +1293,7 @@
.namespace ["HLL";"Grammar"]
-.sub "term" :subid("16_1280467467.13603") :method
+.sub "term" :subid("16_1282323993.58127") :method
.annotate 'line', 13
$P32 = self."!protoregex"("term")
.return ($P32)
@@ -1259,7 +1301,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term" :subid("17_1280467467.13603") :method
+.sub "!PREFIX__term" :subid("17_1282323993.58127") :method
.annotate 'line', 13
$P34 = self."!PREFIX__!protoregex"("term")
.return ($P34)
@@ -1267,7 +1309,7 @@
.namespace ["HLL";"Grammar"]
-.sub "infix" :subid("18_1280467467.13603") :method
+.sub "infix" :subid("18_1282323993.58127") :method
.annotate 'line', 14
$P36 = self."!protoregex"("infix")
.return ($P36)
@@ -1275,7 +1317,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix" :subid("19_1280467467.13603") :method
+.sub "!PREFIX__infix" :subid("19_1282323993.58127") :method
.annotate 'line', 14
$P38 = self."!PREFIX__!protoregex"("infix")
.return ($P38)
@@ -1283,7 +1325,7 @@
.namespace ["HLL";"Grammar"]
-.sub "prefix" :subid("20_1280467467.13603") :method
+.sub "prefix" :subid("20_1282323993.58127") :method
.annotate 'line', 15
$P40 = self."!protoregex"("prefix")
.return ($P40)
@@ -1291,7 +1333,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix" :subid("21_1280467467.13603") :method
+.sub "!PREFIX__prefix" :subid("21_1282323993.58127") :method
.annotate 'line', 15
$P42 = self."!PREFIX__!protoregex"("prefix")
.return ($P42)
@@ -1299,7 +1341,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postfix" :subid("22_1280467467.13603") :method
+.sub "postfix" :subid("22_1282323993.58127") :method
.annotate 'line', 16
$P44 = self."!protoregex"("postfix")
.return ($P44)
@@ -1307,7 +1349,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix" :subid("23_1280467467.13603") :method
+.sub "!PREFIX__postfix" :subid("23_1282323993.58127") :method
.annotate 'line', 16
$P46 = self."!PREFIX__!protoregex"("postfix")
.return ($P46)
@@ -1315,7 +1357,7 @@
.namespace ["HLL";"Grammar"]
-.sub "circumfix" :subid("24_1280467467.13603") :method
+.sub "circumfix" :subid("24_1282323993.58127") :method
.annotate 'line', 17
$P48 = self."!protoregex"("circumfix")
.return ($P48)
@@ -1323,7 +1365,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix" :subid("25_1280467467.13603") :method
+.sub "!PREFIX__circumfix" :subid("25_1282323993.58127") :method
.annotate 'line', 17
$P50 = self."!PREFIX__!protoregex"("circumfix")
.return ($P50)
@@ -1331,7 +1373,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postcircumfix" :subid("26_1280467467.13603") :method
+.sub "postcircumfix" :subid("26_1282323993.58127") :method
.annotate 'line', 18
$P52 = self."!protoregex"("postcircumfix")
.return ($P52)
@@ -1339,7 +1381,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix" :subid("27_1280467467.13603") :method
+.sub "!PREFIX__postcircumfix" :subid("27_1282323993.58127") :method
.annotate 'line', 18
$P54 = self."!PREFIX__!protoregex"("postcircumfix")
.return ($P54)
@@ -1347,7 +1389,7 @@
.namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>" :subid("28_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "term:sym<circumfix>" :subid("28_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 5
.local string rx56_tgt
.local int rx56_pos
@@ -1355,7 +1397,9 @@
.local int rx56_eos
.local int rx56_rep
.local pmc rx56_cur
+ .local pmc rx56_debug
(rx56_cur, rx56_pos, rx56_tgt, $I10) = self."!cursor_start"()
+ getattribute rx56_debug, rx56_cur, "$!debug"
.lex unicode:"$\x{a2}", rx56_cur
.local pmc match
.lex "$/", match
@@ -1367,7 +1411,9 @@
substr rx56_tgt, rx56_tgt, rx56_off
rx56_start:
eq $I10, 1, rx56_restart
- rx56_cur."!cursor_debug"("START ", "term:sym<circumfix>")
+ if_null rx56_debug, debug_116
+ rx56_cur."!cursor_debug"("START", "term:sym<circumfix>")
+ debug_116:
$I10 = self.'from'()
ne $I10, -1, rxscan60_done
goto rxscan60_scan
@@ -1390,11 +1436,15 @@
rx56_pos = $P10."pos"()
# rx pass
rx56_cur."!cursor_pass"(rx56_pos, "term:sym<circumfix>")
- rx56_cur."!cursor_debug"("PASS ", "term:sym<circumfix>", " at pos=", rx56_pos)
+ if_null rx56_debug, debug_117
+ rx56_cur."!cursor_debug"("PASS", "term:sym<circumfix>", " at pos=", rx56_pos)
+ debug_117:
.return (rx56_cur)
rx56_restart:
.annotate 'line', 5
- rx56_cur."!cursor_debug"("NEXT ", "term:sym<circumfix>")
+ if_null rx56_debug, debug_118
+ rx56_cur."!cursor_debug"("NEXT", "term:sym<circumfix>")
+ debug_118:
rx56_fail:
(rx56_rep, rx56_pos, $I10, $P10) = rx56_cur."!mark_fail"(0)
lt rx56_pos, -1, rx56_done
@@ -1402,14 +1452,16 @@
jump $I10
rx56_done:
rx56_cur."!cursor_fail"()
- rx56_cur."!cursor_debug"("FAIL ", "term:sym<circumfix>")
+ if_null rx56_debug, debug_119
+ rx56_cur."!cursor_debug"("FAIL", "term:sym<circumfix>")
+ debug_119:
.return (rx56_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>" :subid("29_1280467467.13603") :method
+.sub "!PREFIX__term:sym<circumfix>" :subid("29_1282323993.58127") :method
.annotate 'line', 5
$P58 = self."!PREFIX__!subrule"("circumfix", "")
new $P59, "ResizablePMCArray"
@@ -1419,7 +1471,7 @@
.namespace ["HLL";"Grammar"]
-.sub "infixish" :subid("30_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "infixish" :subid("30_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 5
.local string rx62_tgt
.local int rx62_pos
@@ -1427,7 +1479,9 @@
.local int rx62_eos
.local int rx62_rep
.local pmc rx62_cur
+ .local pmc rx62_debug
(rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+ getattribute rx62_debug, rx62_cur, "$!debug"
.lex unicode:"$\x{a2}", rx62_cur
.local pmc match
.lex "$/", match
@@ -1439,7 +1493,9 @@
substr rx62_tgt, rx62_tgt, rx62_off
rx62_start:
eq $I10, 1, rx62_restart
- rx62_cur."!cursor_debug"("START ", "infixish")
+ if_null rx62_debug, debug_120
+ rx62_cur."!cursor_debug"("START", "infixish")
+ debug_120:
$I10 = self.'from'()
ne $I10, -1, rxscan66_done
goto rxscan66_scan
@@ -1462,11 +1518,15 @@
rx62_pos = $P10."pos"()
# rx pass
rx62_cur."!cursor_pass"(rx62_pos, "infixish")
- rx62_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx62_pos)
+ if_null rx62_debug, debug_121
+ rx62_cur."!cursor_debug"("PASS", "infixish", " at pos=", rx62_pos)
+ debug_121:
.return (rx62_cur)
rx62_restart:
.annotate 'line', 5
- rx62_cur."!cursor_debug"("NEXT ", "infixish")
+ if_null rx62_debug, debug_122
+ rx62_cur."!cursor_debug"("NEXT", "infixish")
+ debug_122:
rx62_fail:
(rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
lt rx62_pos, -1, rx62_done
@@ -1474,14 +1534,16 @@
jump $I10
rx62_done:
rx62_cur."!cursor_fail"()
- rx62_cur."!cursor_debug"("FAIL ", "infixish")
+ if_null rx62_debug, debug_123
+ rx62_cur."!cursor_debug"("FAIL", "infixish")
+ debug_123:
.return (rx62_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish" :subid("31_1280467467.13603") :method
+.sub "!PREFIX__infixish" :subid("31_1282323993.58127") :method
.annotate 'line', 5
$P64 = self."!PREFIX__!subrule"("infix", "")
new $P65, "ResizablePMCArray"
@@ -1491,7 +1553,7 @@
.namespace ["HLL";"Grammar"]
-.sub "prefixish" :subid("32_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "prefixish" :subid("32_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 5
.local string rx68_tgt
.local int rx68_pos
@@ -1499,7 +1561,9 @@
.local int rx68_eos
.local int rx68_rep
.local pmc rx68_cur
+ .local pmc rx68_debug
(rx68_cur, rx68_pos, rx68_tgt, $I10) = self."!cursor_start"()
+ getattribute rx68_debug, rx68_cur, "$!debug"
.lex unicode:"$\x{a2}", rx68_cur
.local pmc match
.lex "$/", match
@@ -1511,7 +1575,9 @@
substr rx68_tgt, rx68_tgt, rx68_off
rx68_start:
eq $I10, 1, rx68_restart
- rx68_cur."!cursor_debug"("START ", "prefixish")
+ if_null rx68_debug, debug_124
+ rx68_cur."!cursor_debug"("START", "prefixish")
+ debug_124:
$I10 = self.'from'()
ne $I10, -1, rxscan72_done
goto rxscan72_scan
@@ -1539,11 +1605,15 @@
rx68_pos = $P10."pos"()
# rx pass
rx68_cur."!cursor_pass"(rx68_pos, "prefixish")
- rx68_cur."!cursor_debug"("PASS ", "prefixish", " at pos=", rx68_pos)
+ if_null rx68_debug, debug_125
+ rx68_cur."!cursor_debug"("PASS", "prefixish", " at pos=", rx68_pos)
+ debug_125:
.return (rx68_cur)
rx68_restart:
.annotate 'line', 5
- rx68_cur."!cursor_debug"("NEXT ", "prefixish")
+ if_null rx68_debug, debug_126
+ rx68_cur."!cursor_debug"("NEXT", "prefixish")
+ debug_126:
rx68_fail:
(rx68_rep, rx68_pos, $I10, $P10) = rx68_cur."!mark_fail"(0)
lt rx68_pos, -1, rx68_done
@@ -1551,14 +1621,16 @@
jump $I10
rx68_done:
rx68_cur."!cursor_fail"()
- rx68_cur."!cursor_debug"("FAIL ", "prefixish")
+ if_null rx68_debug, debug_127
+ rx68_cur."!cursor_debug"("FAIL", "prefixish")
+ debug_127:
.return (rx68_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish" :subid("33_1280467467.13603") :method
+.sub "!PREFIX__prefixish" :subid("33_1282323993.58127") :method
.annotate 'line', 5
$P70 = self."!PREFIX__!subrule"("prefix", "")
new $P71, "ResizablePMCArray"
@@ -1568,7 +1640,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postfixish" :subid("34_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "postfixish" :subid("34_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 5
.local string rx74_tgt
.local int rx74_pos
@@ -1576,7 +1648,9 @@
.local int rx74_eos
.local int rx74_rep
.local pmc rx74_cur
+ .local pmc rx74_debug
(rx74_cur, rx74_pos, rx74_tgt, $I10) = self."!cursor_start"()
+ getattribute rx74_debug, rx74_cur, "$!debug"
.lex unicode:"$\x{a2}", rx74_cur
.local pmc match
.lex "$/", match
@@ -1588,7 +1662,9 @@
substr rx74_tgt, rx74_tgt, rx74_off
rx74_start:
eq $I10, 1, rx74_restart
- rx74_cur."!cursor_debug"("START ", "postfixish")
+ if_null rx74_debug, debug_128
+ rx74_cur."!cursor_debug"("START", "postfixish")
+ debug_128:
$I10 = self.'from'()
ne $I10, -1, rxscan79_done
goto rxscan79_scan
@@ -1627,11 +1703,15 @@
.annotate 'line', 24
# rx pass
rx74_cur."!cursor_pass"(rx74_pos, "postfixish")
- rx74_cur."!cursor_debug"("PASS ", "postfixish", " at pos=", rx74_pos)
+ if_null rx74_debug, debug_129
+ rx74_cur."!cursor_debug"("PASS", "postfixish", " at pos=", rx74_pos)
+ debug_129:
.return (rx74_cur)
rx74_restart:
.annotate 'line', 5
- rx74_cur."!cursor_debug"("NEXT ", "postfixish")
+ if_null rx74_debug, debug_130
+ rx74_cur."!cursor_debug"("NEXT", "postfixish")
+ debug_130:
rx74_fail:
(rx74_rep, rx74_pos, $I10, $P10) = rx74_cur."!mark_fail"(0)
lt rx74_pos, -1, rx74_done
@@ -1639,14 +1719,16 @@
jump $I10
rx74_done:
rx74_cur."!cursor_fail"()
- rx74_cur."!cursor_debug"("FAIL ", "postfixish")
+ if_null rx74_debug, debug_131
+ rx74_cur."!cursor_debug"("FAIL", "postfixish")
+ debug_131:
.return (rx74_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish" :subid("35_1280467467.13603") :method
+.sub "!PREFIX__postfixish" :subid("35_1282323993.58127") :method
.annotate 'line', 5
$P76 = self."!PREFIX__!subrule"("postcircumfix", "")
$P77 = self."!PREFIX__!subrule"("postfix", "")
@@ -1658,7 +1740,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nullterm" :subid("36_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nullterm" :subid("36_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 5
.local string rx82_tgt
.local int rx82_pos
@@ -1666,7 +1748,9 @@
.local int rx82_eos
.local int rx82_rep
.local pmc rx82_cur
+ .local pmc rx82_debug
(rx82_cur, rx82_pos, rx82_tgt, $I10) = self."!cursor_start"()
+ getattribute rx82_debug, rx82_cur, "$!debug"
.lex unicode:"$\x{a2}", rx82_cur
.local pmc match
.lex "$/", match
@@ -1678,7 +1762,9 @@
substr rx82_tgt, rx82_tgt, rx82_off
rx82_start:
eq $I10, 1, rx82_restart
- rx82_cur."!cursor_debug"("START ", "nullterm")
+ if_null rx82_debug, debug_132
+ rx82_cur."!cursor_debug"("START", "nullterm")
+ debug_132:
$I10 = self.'from'()
ne $I10, -1, rxscan85_done
goto rxscan85_scan
@@ -1694,11 +1780,15 @@
.annotate 'line', 29
# rx pass
rx82_cur."!cursor_pass"(rx82_pos, "nullterm")
- rx82_cur."!cursor_debug"("PASS ", "nullterm", " at pos=", rx82_pos)
+ if_null rx82_debug, debug_133
+ rx82_cur."!cursor_debug"("PASS", "nullterm", " at pos=", rx82_pos)
+ debug_133:
.return (rx82_cur)
rx82_restart:
.annotate 'line', 5
- rx82_cur."!cursor_debug"("NEXT ", "nullterm")
+ if_null rx82_debug, debug_134
+ rx82_cur."!cursor_debug"("NEXT", "nullterm")
+ debug_134:
rx82_fail:
(rx82_rep, rx82_pos, $I10, $P10) = rx82_cur."!mark_fail"(0)
lt rx82_pos, -1, rx82_done
@@ -1706,14 +1796,16 @@
jump $I10
rx82_done:
rx82_cur."!cursor_fail"()
- rx82_cur."!cursor_debug"("FAIL ", "nullterm")
+ if_null rx82_debug, debug_135
+ rx82_cur."!cursor_debug"("FAIL", "nullterm")
+ debug_135:
.return (rx82_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm" :subid("37_1280467467.13603") :method
+.sub "!PREFIX__nullterm" :subid("37_1282323993.58127") :method
.annotate 'line', 5
new $P84, "ResizablePMCArray"
push $P84, ""
@@ -1722,7 +1814,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nullterm_alt" :subid("38_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nullterm_alt" :subid("38_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 5
.local string rx87_tgt
.local int rx87_pos
@@ -1730,7 +1822,9 @@
.local int rx87_eos
.local int rx87_rep
.local pmc rx87_cur
+ .local pmc rx87_debug
(rx87_cur, rx87_pos, rx87_tgt, $I10) = self."!cursor_start"()
+ getattribute rx87_debug, rx87_cur, "$!debug"
.lex unicode:"$\x{a2}", rx87_cur
.local pmc match
.lex "$/", match
@@ -1742,7 +1836,9 @@
substr rx87_tgt, rx87_tgt, rx87_off
rx87_start:
eq $I10, 1, rx87_restart
- rx87_cur."!cursor_debug"("START ", "nullterm_alt")
+ if_null rx87_debug, debug_136
+ rx87_cur."!cursor_debug"("START", "nullterm_alt")
+ debug_136:
$I10 = self.'from'()
ne $I10, -1, rxscan91_done
goto rxscan91_scan
@@ -1765,11 +1861,15 @@
rx87_pos = $P10."pos"()
# rx pass
rx87_cur."!cursor_pass"(rx87_pos, "nullterm_alt")
- rx87_cur."!cursor_debug"("PASS ", "nullterm_alt", " at pos=", rx87_pos)
+ if_null rx87_debug, debug_137
+ rx87_cur."!cursor_debug"("PASS", "nullterm_alt", " at pos=", rx87_pos)
+ debug_137:
.return (rx87_cur)
rx87_restart:
.annotate 'line', 5
- rx87_cur."!cursor_debug"("NEXT ", "nullterm_alt")
+ if_null rx87_debug, debug_138
+ rx87_cur."!cursor_debug"("NEXT", "nullterm_alt")
+ debug_138:
rx87_fail:
(rx87_rep, rx87_pos, $I10, $P10) = rx87_cur."!mark_fail"(0)
lt rx87_pos, -1, rx87_done
@@ -1777,14 +1877,16 @@
jump $I10
rx87_done:
rx87_cur."!cursor_fail"()
- rx87_cur."!cursor_debug"("FAIL ", "nullterm_alt")
+ if_null rx87_debug, debug_139
+ rx87_cur."!cursor_debug"("FAIL", "nullterm_alt")
+ debug_139:
.return (rx87_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt" :subid("39_1280467467.13603") :method
+.sub "!PREFIX__nullterm_alt" :subid("39_1282323993.58127") :method
.annotate 'line', 5
$P89 = self."!PREFIX__!subrule"("nullterm", "")
new $P90, "ResizablePMCArray"
@@ -1795,7 +1897,7 @@
.namespace ["HLL";"Grammar"]
.include "except_types.pasm"
-.sub "nulltermish" :subid("40_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nulltermish" :subid("40_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
new $P94, 'ExceptionHandler'
set_addr $P94, control_93
@@ -1822,7 +1924,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_delimited" :subid("41_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_delimited" :subid("41_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx103_tgt
.local int rx103_pos
@@ -1830,8 +1932,10 @@
.local int rx103_eos
.local int rx103_rep
.local pmc rx103_cur
+ .local pmc rx103_debug
(rx103_cur, rx103_pos, rx103_tgt, $I10) = self."!cursor_start"()
rx103_cur."!cursor_caparray"("quote_atom")
+ getattribute rx103_debug, rx103_cur, "$!debug"
.lex unicode:"$\x{a2}", rx103_cur
.local pmc match
.lex "$/", match
@@ -1843,7 +1947,9 @@
substr rx103_tgt, rx103_tgt, rx103_off
rx103_start:
eq $I10, 1, rx103_restart
- rx103_cur."!cursor_debug"("START ", "quote_delimited")
+ if_null rx103_debug, debug_140
+ rx103_cur."!cursor_debug"("START", "quote_delimited")
+ debug_140:
$I10 = self.'from'()
ne $I10, -1, rxscan107_done
goto rxscan107_scan
@@ -1897,11 +2003,15 @@
.annotate 'line', 36
# rx pass
rx103_cur."!cursor_pass"(rx103_pos, "quote_delimited")
- rx103_cur."!cursor_debug"("PASS ", "quote_delimited", " at pos=", rx103_pos)
+ if_null rx103_debug, debug_141
+ rx103_cur."!cursor_debug"("PASS", "quote_delimited", " at pos=", rx103_pos)
+ debug_141:
.return (rx103_cur)
rx103_restart:
.annotate 'line', 33
- rx103_cur."!cursor_debug"("NEXT ", "quote_delimited")
+ if_null rx103_debug, debug_142
+ rx103_cur."!cursor_debug"("NEXT", "quote_delimited")
+ debug_142:
rx103_fail:
(rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
lt rx103_pos, -1, rx103_done
@@ -1909,14 +2019,16 @@
jump $I10
rx103_done:
rx103_cur."!cursor_fail"()
- rx103_cur."!cursor_debug"("FAIL ", "quote_delimited")
+ if_null rx103_debug, debug_143
+ rx103_cur."!cursor_debug"("FAIL", "quote_delimited")
+ debug_143:
.return (rx103_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited" :subid("42_1280467467.13603") :method
+.sub "!PREFIX__quote_delimited" :subid("42_1282323993.58127") :method
.annotate 'line', 33
$P105 = self."!PREFIX__!subrule"("starter", "")
new $P106, "ResizablePMCArray"
@@ -1926,7 +2038,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_atom" :subid("43_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_atom" :subid("43_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx111_tgt
.local int rx111_pos
@@ -1934,7 +2046,9 @@
.local int rx111_eos
.local int rx111_rep
.local pmc rx111_cur
+ .local pmc rx111_debug
(rx111_cur, rx111_pos, rx111_tgt, $I10) = self."!cursor_start"()
+ getattribute rx111_debug, rx111_cur, "$!debug"
.lex unicode:"$\x{a2}", rx111_cur
.local pmc match
.lex "$/", match
@@ -1946,7 +2060,9 @@
substr rx111_tgt, rx111_tgt, rx111_off
rx111_start:
eq $I10, 1, rx111_restart
- rx111_cur."!cursor_debug"("START ", "quote_atom")
+ if_null rx111_debug, debug_144
+ rx111_cur."!cursor_debug"("START", "quote_atom")
+ debug_144:
$I10 = self.'from'()
ne $I10, -1, rxscan114_done
goto rxscan114_scan
@@ -2004,11 +2120,15 @@
.annotate 'line', 40
# rx pass
rx111_cur."!cursor_pass"(rx111_pos, "quote_atom")
- rx111_cur."!cursor_debug"("PASS ", "quote_atom", " at pos=", rx111_pos)
+ if_null rx111_debug, debug_145
+ rx111_cur."!cursor_debug"("PASS", "quote_atom", " at pos=", rx111_pos)
+ debug_145:
.return (rx111_cur)
rx111_restart:
.annotate 'line', 33
- rx111_cur."!cursor_debug"("NEXT ", "quote_atom")
+ if_null rx111_debug, debug_146
+ rx111_cur."!cursor_debug"("NEXT", "quote_atom")
+ debug_146:
rx111_fail:
(rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0)
lt rx111_pos, -1, rx111_done
@@ -2016,14 +2136,16 @@
jump $I10
rx111_done:
rx111_cur."!cursor_fail"()
- rx111_cur."!cursor_debug"("FAIL ", "quote_atom")
+ if_null rx111_debug, debug_147
+ rx111_cur."!cursor_debug"("FAIL", "quote_atom")
+ debug_147:
.return (rx111_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom" :subid("44_1280467467.13603") :method
+.sub "!PREFIX__quote_atom" :subid("44_1282323993.58127") :method
.annotate 'line', 33
new $P113, "ResizablePMCArray"
push $P113, ""
@@ -2032,7 +2154,7 @@
.namespace ["HLL";"Grammar"]
-.sub "decint" :subid("45_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "decint" :subid("45_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx120_tgt
.local int rx120_pos
@@ -2040,7 +2162,9 @@
.local int rx120_eos
.local int rx120_rep
.local pmc rx120_cur
+ .local pmc rx120_debug
(rx120_cur, rx120_pos, rx120_tgt, $I10) = self."!cursor_start"()
+ getattribute rx120_debug, rx120_cur, "$!debug"
.lex unicode:"$\x{a2}", rx120_cur
.local pmc match
.lex "$/", match
@@ -2052,7 +2176,9 @@
substr rx120_tgt, rx120_tgt, rx120_off
rx120_start:
eq $I10, 1, rx120_restart
- rx120_cur."!cursor_debug"("START ", "decint")
+ if_null rx120_debug, debug_148
+ rx120_cur."!cursor_debug"("START", "decint")
+ debug_148:
$I10 = self.'from'()
ne $I10, -1, rxscan123_done
goto rxscan123_scan
@@ -2084,18 +2210,22 @@
add $I11, rx120_pos, 1
gt $I11, rx120_eos, rx120_fail
sub $I11, rx120_pos, rx120_off
- substr $S10, rx120_tgt, $I11, 1
- ne $S10, "_", rx120_fail
+ ord $I11, rx120_tgt, $I11
+ ne $I11, 95, rx120_fail
add rx120_pos, 1
goto rxquantr124_loop
rxquantr124_done:
# rx pass
rx120_cur."!cursor_pass"(rx120_pos, "decint")
- rx120_cur."!cursor_debug"("PASS ", "decint", " at pos=", rx120_pos)
+ if_null rx120_debug, debug_149
+ rx120_cur."!cursor_debug"("PASS", "decint", " at pos=", rx120_pos)
+ debug_149:
.return (rx120_cur)
rx120_restart:
.annotate 'line', 33
- rx120_cur."!cursor_debug"("NEXT ", "decint")
+ if_null rx120_debug, debug_150
+ rx120_cur."!cursor_debug"("NEXT", "decint")
+ debug_150:
rx120_fail:
(rx120_rep, rx120_pos, $I10, $P10) = rx120_cur."!mark_fail"(0)
lt rx120_pos, -1, rx120_done
@@ -2103,14 +2233,16 @@
jump $I10
rx120_done:
rx120_cur."!cursor_fail"()
- rx120_cur."!cursor_debug"("FAIL ", "decint")
+ if_null rx120_debug, debug_151
+ rx120_cur."!cursor_debug"("FAIL", "decint")
+ debug_151:
.return (rx120_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint" :subid("46_1280467467.13603") :method
+.sub "!PREFIX__decint" :subid("46_1282323993.58127") :method
.annotate 'line', 33
new $P122, "ResizablePMCArray"
push $P122, ""
@@ -2119,7 +2251,7 @@
.namespace ["HLL";"Grammar"]
-.sub "decints" :subid("47_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "decints" :subid("47_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx126_tgt
.local int rx126_pos
@@ -2127,8 +2259,10 @@
.local int rx126_eos
.local int rx126_rep
.local pmc rx126_cur
+ .local pmc rx126_debug
(rx126_cur, rx126_pos, rx126_tgt, $I10) = self."!cursor_start"()
rx126_cur."!cursor_caparray"("decint")
+ getattribute rx126_debug, rx126_cur, "$!debug"
.lex unicode:"$\x{a2}", rx126_cur
.local pmc match
.lex "$/", match
@@ -2140,7 +2274,9 @@
substr rx126_tgt, rx126_tgt, rx126_off
rx126_start:
eq $I10, 1, rx126_restart
- rx126_cur."!cursor_debug"("START ", "decints")
+ if_null rx126_debug, debug_152
+ rx126_cur."!cursor_debug"("START", "decints")
+ debug_152:
$I10 = self.'from'()
ne $I10, -1, rxscan129_done
goto rxscan129_scan
@@ -2183,18 +2319,22 @@
add $I11, rx126_pos, 1
gt $I11, rx126_eos, rx126_fail
sub $I11, rx126_pos, rx126_off
- substr $S10, rx126_tgt, $I11, 1
- ne $S10, ",", rx126_fail
+ ord $I11, rx126_tgt, $I11
+ ne $I11, 44, rx126_fail
add rx126_pos, 1
goto rxquantr130_loop
rxquantr130_done:
# rx pass
rx126_cur."!cursor_pass"(rx126_pos, "decints")
- rx126_cur."!cursor_debug"("PASS ", "decints", " at pos=", rx126_pos)
+ if_null rx126_debug, debug_153
+ rx126_cur."!cursor_debug"("PASS", "decints", " at pos=", rx126_pos)
+ debug_153:
.return (rx126_cur)
rx126_restart:
.annotate 'line', 33
- rx126_cur."!cursor_debug"("NEXT ", "decints")
+ if_null rx126_debug, debug_154
+ rx126_cur."!cursor_debug"("NEXT", "decints")
+ debug_154:
rx126_fail:
(rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0)
lt rx126_pos, -1, rx126_done
@@ -2202,14 +2342,16 @@
jump $I10
rx126_done:
rx126_cur."!cursor_fail"()
- rx126_cur."!cursor_debug"("FAIL ", "decints")
+ if_null rx126_debug, debug_155
+ rx126_cur."!cursor_debug"("FAIL", "decints")
+ debug_155:
.return (rx126_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints" :subid("48_1280467467.13603") :method
+.sub "!PREFIX__decints" :subid("48_1282323993.58127") :method
.annotate 'line', 33
new $P128, "ResizablePMCArray"
push $P128, ""
@@ -2218,7 +2360,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexint" :subid("49_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "hexint" :subid("49_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx132_tgt
.local int rx132_pos
@@ -2226,7 +2368,9 @@
.local int rx132_eos
.local int rx132_rep
.local pmc rx132_cur
+ .local pmc rx132_debug
(rx132_cur, rx132_pos, rx132_tgt, $I10) = self."!cursor_start"()
+ getattribute rx132_debug, rx132_cur, "$!debug"
.lex unicode:"$\x{a2}", rx132_cur
.local pmc match
.lex "$/", match
@@ -2238,7 +2382,9 @@
substr rx132_tgt, rx132_tgt, rx132_off
rx132_start:
eq $I10, 1, rx132_restart
- rx132_cur."!cursor_debug"("START ", "hexint")
+ if_null rx132_debug, debug_156
+ rx132_cur."!cursor_debug"("START", "hexint")
+ debug_156:
$I10 = self.'from'()
ne $I10, -1, rxscan135_done
goto rxscan135_scan
@@ -2256,23 +2402,22 @@
set_addr $I10, rxquantr136_done
rx132_cur."!mark_push"(0, -1, $I10)
rxquantr136_loop:
- # rx rxquantr137 ** 1..*
- set_addr $I10, rxquantr137_done
- rx132_cur."!mark_push"(0, -1, $I10)
- rxquantr137_loop:
- # rx enumcharlist negate=0
- ge rx132_pos, rx132_eos, rx132_fail
+ # rx enumcharlist_q negate=0 r 1..-1
sub $I10, rx132_pos, rx132_off
+ set rx132_rep, 0
+ sub $I12, rx132_eos, rx132_pos
+ rxenumcharlistq137_loop:
+ le $I12, 0, rxenumcharlistq137_done
substr $S10, rx132_tgt, $I10, 1
index $I11, "0123456789abcdefABCDEF", $S10
- lt $I11, 0, rx132_fail
- inc rx132_pos
- set_addr $I10, rxquantr137_done
- (rx132_rep) = rx132_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr137_done
- rx132_cur."!mark_push"(rx132_rep, rx132_pos, $I10)
- goto rxquantr137_loop
- rxquantr137_done:
+ lt $I11, 0, rxenumcharlistq137_done
+ inc rx132_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq137_loop
+ rxenumcharlistq137_done:
+ lt rx132_rep, 1, rx132_fail
+ add rx132_pos, rx132_pos, rx132_rep
set_addr $I10, rxquantr136_done
(rx132_rep) = rx132_cur."!mark_commit"($I10)
set_addr $I10, rxquantr136_done
@@ -2281,18 +2426,22 @@
add $I11, rx132_pos, 1
gt $I11, rx132_eos, rx132_fail
sub $I11, rx132_pos, rx132_off
- substr $S10, rx132_tgt, $I11, 1
- ne $S10, "_", rx132_fail
+ ord $I11, rx132_tgt, $I11
+ ne $I11, 95, rx132_fail
add rx132_pos, 1
goto rxquantr136_loop
rxquantr136_done:
# rx pass
rx132_cur."!cursor_pass"(rx132_pos, "hexint")
- rx132_cur."!cursor_debug"("PASS ", "hexint", " at pos=", rx132_pos)
+ if_null rx132_debug, debug_157
+ rx132_cur."!cursor_debug"("PASS", "hexint", " at pos=", rx132_pos)
+ debug_157:
.return (rx132_cur)
rx132_restart:
.annotate 'line', 33
- rx132_cur."!cursor_debug"("NEXT ", "hexint")
+ if_null rx132_debug, debug_158
+ rx132_cur."!cursor_debug"("NEXT", "hexint")
+ debug_158:
rx132_fail:
(rx132_rep, rx132_pos, $I10, $P10) = rx132_cur."!mark_fail"(0)
lt rx132_pos, -1, rx132_done
@@ -2300,14 +2449,16 @@
jump $I10
rx132_done:
rx132_cur."!cursor_fail"()
- rx132_cur."!cursor_debug"("FAIL ", "hexint")
+ if_null rx132_debug, debug_159
+ rx132_cur."!cursor_debug"("FAIL", "hexint")
+ debug_159:
.return (rx132_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint" :subid("50_1280467467.13603") :method
+.sub "!PREFIX__hexint" :subid("50_1282323993.58127") :method
.annotate 'line', 33
new $P134, "ResizablePMCArray"
push $P134, ""
@@ -2316,7 +2467,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexints" :subid("51_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "hexints" :subid("51_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx139_tgt
.local int rx139_pos
@@ -2324,8 +2475,10 @@
.local int rx139_eos
.local int rx139_rep
.local pmc rx139_cur
+ .local pmc rx139_debug
(rx139_cur, rx139_pos, rx139_tgt, $I10) = self."!cursor_start"()
rx139_cur."!cursor_caparray"("hexint")
+ getattribute rx139_debug, rx139_cur, "$!debug"
.lex unicode:"$\x{a2}", rx139_cur
.local pmc match
.lex "$/", match
@@ -2337,7 +2490,9 @@
substr rx139_tgt, rx139_tgt, rx139_off
rx139_start:
eq $I10, 1, rx139_restart
- rx139_cur."!cursor_debug"("START ", "hexints")
+ if_null rx139_debug, debug_160
+ rx139_cur."!cursor_debug"("START", "hexints")
+ debug_160:
$I10 = self.'from'()
ne $I10, -1, rxscan142_done
goto rxscan142_scan
@@ -2380,18 +2535,22 @@
add $I11, rx139_pos, 1
gt $I11, rx139_eos, rx139_fail
sub $I11, rx139_pos, rx139_off
- substr $S10, rx139_tgt, $I11, 1
- ne $S10, ",", rx139_fail
+ ord $I11, rx139_tgt, $I11
+ ne $I11, 44, rx139_fail
add rx139_pos, 1
goto rxquantr143_loop
rxquantr143_done:
# rx pass
rx139_cur."!cursor_pass"(rx139_pos, "hexints")
- rx139_cur."!cursor_debug"("PASS ", "hexints", " at pos=", rx139_pos)
+ if_null rx139_debug, debug_161
+ rx139_cur."!cursor_debug"("PASS", "hexints", " at pos=", rx139_pos)
+ debug_161:
.return (rx139_cur)
rx139_restart:
.annotate 'line', 33
- rx139_cur."!cursor_debug"("NEXT ", "hexints")
+ if_null rx139_debug, debug_162
+ rx139_cur."!cursor_debug"("NEXT", "hexints")
+ debug_162:
rx139_fail:
(rx139_rep, rx139_pos, $I10, $P10) = rx139_cur."!mark_fail"(0)
lt rx139_pos, -1, rx139_done
@@ -2399,14 +2558,16 @@
jump $I10
rx139_done:
rx139_cur."!cursor_fail"()
- rx139_cur."!cursor_debug"("FAIL ", "hexints")
+ if_null rx139_debug, debug_163
+ rx139_cur."!cursor_debug"("FAIL", "hexints")
+ debug_163:
.return (rx139_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints" :subid("52_1280467467.13603") :method
+.sub "!PREFIX__hexints" :subid("52_1282323993.58127") :method
.annotate 'line', 33
new $P141, "ResizablePMCArray"
push $P141, ""
@@ -2415,7 +2576,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octint" :subid("53_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "octint" :subid("53_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx145_tgt
.local int rx145_pos
@@ -2423,7 +2584,9 @@
.local int rx145_eos
.local int rx145_rep
.local pmc rx145_cur
+ .local pmc rx145_debug
(rx145_cur, rx145_pos, rx145_tgt, $I10) = self."!cursor_start"()
+ getattribute rx145_debug, rx145_cur, "$!debug"
.lex unicode:"$\x{a2}", rx145_cur
.local pmc match
.lex "$/", match
@@ -2435,7 +2598,9 @@
substr rx145_tgt, rx145_tgt, rx145_off
rx145_start:
eq $I10, 1, rx145_restart
- rx145_cur."!cursor_debug"("START ", "octint")
+ if_null rx145_debug, debug_164
+ rx145_cur."!cursor_debug"("START", "octint")
+ debug_164:
$I10 = self.'from'()
ne $I10, -1, rxscan148_done
goto rxscan148_scan
@@ -2453,23 +2618,22 @@
set_addr $I10, rxquantr149_done
rx145_cur."!mark_push"(0, -1, $I10)
rxquantr149_loop:
- # rx rxquantr150 ** 1..*
- set_addr $I10, rxquantr150_done
- rx145_cur."!mark_push"(0, -1, $I10)
- rxquantr150_loop:
- # rx enumcharlist negate=0
- ge rx145_pos, rx145_eos, rx145_fail
+ # rx enumcharlist_q negate=0 r 1..-1
sub $I10, rx145_pos, rx145_off
+ set rx145_rep, 0
+ sub $I12, rx145_eos, rx145_pos
+ rxenumcharlistq150_loop:
+ le $I12, 0, rxenumcharlistq150_done
substr $S10, rx145_tgt, $I10, 1
index $I11, "01234567", $S10
- lt $I11, 0, rx145_fail
- inc rx145_pos
- set_addr $I10, rxquantr150_done
- (rx145_rep) = rx145_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr150_done
- rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I10)
- goto rxquantr150_loop
- rxquantr150_done:
+ lt $I11, 0, rxenumcharlistq150_done
+ inc rx145_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq150_loop
+ rxenumcharlistq150_done:
+ lt rx145_rep, 1, rx145_fail
+ add rx145_pos, rx145_pos, rx145_rep
set_addr $I10, rxquantr149_done
(rx145_rep) = rx145_cur."!mark_commit"($I10)
set_addr $I10, rxquantr149_done
@@ -2478,18 +2642,22 @@
add $I11, rx145_pos, 1
gt $I11, rx145_eos, rx145_fail
sub $I11, rx145_pos, rx145_off
- substr $S10, rx145_tgt, $I11, 1
- ne $S10, "_", rx145_fail
+ ord $I11, rx145_tgt, $I11
+ ne $I11, 95, rx145_fail
add rx145_pos, 1
goto rxquantr149_loop
rxquantr149_done:
# rx pass
rx145_cur."!cursor_pass"(rx145_pos, "octint")
- rx145_cur."!cursor_debug"("PASS ", "octint", " at pos=", rx145_pos)
+ if_null rx145_debug, debug_165
+ rx145_cur."!cursor_debug"("PASS", "octint", " at pos=", rx145_pos)
+ debug_165:
.return (rx145_cur)
rx145_restart:
.annotate 'line', 33
- rx145_cur."!cursor_debug"("NEXT ", "octint")
+ if_null rx145_debug, debug_166
+ rx145_cur."!cursor_debug"("NEXT", "octint")
+ debug_166:
rx145_fail:
(rx145_rep, rx145_pos, $I10, $P10) = rx145_cur."!mark_fail"(0)
lt rx145_pos, -1, rx145_done
@@ -2497,14 +2665,16 @@
jump $I10
rx145_done:
rx145_cur."!cursor_fail"()
- rx145_cur."!cursor_debug"("FAIL ", "octint")
+ if_null rx145_debug, debug_167
+ rx145_cur."!cursor_debug"("FAIL", "octint")
+ debug_167:
.return (rx145_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint" :subid("54_1280467467.13603") :method
+.sub "!PREFIX__octint" :subid("54_1282323993.58127") :method
.annotate 'line', 33
new $P147, "ResizablePMCArray"
push $P147, ""
@@ -2513,7 +2683,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octints" :subid("55_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "octints" :subid("55_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx152_tgt
.local int rx152_pos
@@ -2521,8 +2691,10 @@
.local int rx152_eos
.local int rx152_rep
.local pmc rx152_cur
+ .local pmc rx152_debug
(rx152_cur, rx152_pos, rx152_tgt, $I10) = self."!cursor_start"()
rx152_cur."!cursor_caparray"("octint")
+ getattribute rx152_debug, rx152_cur, "$!debug"
.lex unicode:"$\x{a2}", rx152_cur
.local pmc match
.lex "$/", match
@@ -2534,7 +2706,9 @@
substr rx152_tgt, rx152_tgt, rx152_off
rx152_start:
eq $I10, 1, rx152_restart
- rx152_cur."!cursor_debug"("START ", "octints")
+ if_null rx152_debug, debug_168
+ rx152_cur."!cursor_debug"("START", "octints")
+ debug_168:
$I10 = self.'from'()
ne $I10, -1, rxscan155_done
goto rxscan155_scan
@@ -2577,18 +2751,22 @@
add $I11, rx152_pos, 1
gt $I11, rx152_eos, rx152_fail
sub $I11, rx152_pos, rx152_off
- substr $S10, rx152_tgt, $I11, 1
- ne $S10, ",", rx152_fail
+ ord $I11, rx152_tgt, $I11
+ ne $I11, 44, rx152_fail
add rx152_pos, 1
goto rxquantr156_loop
rxquantr156_done:
# rx pass
rx152_cur."!cursor_pass"(rx152_pos, "octints")
- rx152_cur."!cursor_debug"("PASS ", "octints", " at pos=", rx152_pos)
+ if_null rx152_debug, debug_169
+ rx152_cur."!cursor_debug"("PASS", "octints", " at pos=", rx152_pos)
+ debug_169:
.return (rx152_cur)
rx152_restart:
.annotate 'line', 33
- rx152_cur."!cursor_debug"("NEXT ", "octints")
+ if_null rx152_debug, debug_170
+ rx152_cur."!cursor_debug"("NEXT", "octints")
+ debug_170:
rx152_fail:
(rx152_rep, rx152_pos, $I10, $P10) = rx152_cur."!mark_fail"(0)
lt rx152_pos, -1, rx152_done
@@ -2596,14 +2774,16 @@
jump $I10
rx152_done:
rx152_cur."!cursor_fail"()
- rx152_cur."!cursor_debug"("FAIL ", "octints")
+ if_null rx152_debug, debug_171
+ rx152_cur."!cursor_debug"("FAIL", "octints")
+ debug_171:
.return (rx152_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints" :subid("56_1280467467.13603") :method
+.sub "!PREFIX__octints" :subid("56_1282323993.58127") :method
.annotate 'line', 33
new $P154, "ResizablePMCArray"
push $P154, ""
@@ -2612,7 +2792,7 @@
.namespace ["HLL";"Grammar"]
-.sub "binint" :subid("57_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "binint" :subid("57_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx158_tgt
.local int rx158_pos
@@ -2620,7 +2800,9 @@
.local int rx158_eos
.local int rx158_rep
.local pmc rx158_cur
+ .local pmc rx158_debug
(rx158_cur, rx158_pos, rx158_tgt, $I10) = self."!cursor_start"()
+ getattribute rx158_debug, rx158_cur, "$!debug"
.lex unicode:"$\x{a2}", rx158_cur
.local pmc match
.lex "$/", match
@@ -2632,7 +2814,9 @@
substr rx158_tgt, rx158_tgt, rx158_off
rx158_start:
eq $I10, 1, rx158_restart
- rx158_cur."!cursor_debug"("START ", "binint")
+ if_null rx158_debug, debug_172
+ rx158_cur."!cursor_debug"("START", "binint")
+ debug_172:
$I10 = self.'from'()
ne $I10, -1, rxscan161_done
goto rxscan161_scan
@@ -2650,23 +2834,22 @@
set_addr $I10, rxquantr162_done
rx158_cur."!mark_push"(0, -1, $I10)
rxquantr162_loop:
- # rx rxquantr163 ** 1..*
- set_addr $I10, rxquantr163_done
- rx158_cur."!mark_push"(0, -1, $I10)
- rxquantr163_loop:
- # rx enumcharlist negate=0
- ge rx158_pos, rx158_eos, rx158_fail
+ # rx enumcharlist_q negate=0 r 1..-1
sub $I10, rx158_pos, rx158_off
+ set rx158_rep, 0
+ sub $I12, rx158_eos, rx158_pos
+ rxenumcharlistq163_loop:
+ le $I12, 0, rxenumcharlistq163_done
substr $S10, rx158_tgt, $I10, 1
index $I11, "01", $S10
- lt $I11, 0, rx158_fail
- inc rx158_pos
- set_addr $I10, rxquantr163_done
- (rx158_rep) = rx158_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr163_done
- rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I10)
- goto rxquantr163_loop
- rxquantr163_done:
+ lt $I11, 0, rxenumcharlistq163_done
+ inc rx158_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq163_loop
+ rxenumcharlistq163_done:
+ lt rx158_rep, 1, rx158_fail
+ add rx158_pos, rx158_pos, rx158_rep
set_addr $I10, rxquantr162_done
(rx158_rep) = rx158_cur."!mark_commit"($I10)
set_addr $I10, rxquantr162_done
@@ -2675,18 +2858,22 @@
add $I11, rx158_pos, 1
gt $I11, rx158_eos, rx158_fail
sub $I11, rx158_pos, rx158_off
- substr $S10, rx158_tgt, $I11, 1
- ne $S10, "_", rx158_fail
+ ord $I11, rx158_tgt, $I11
+ ne $I11, 95, rx158_fail
add rx158_pos, 1
goto rxquantr162_loop
rxquantr162_done:
# rx pass
rx158_cur."!cursor_pass"(rx158_pos, "binint")
- rx158_cur."!cursor_debug"("PASS ", "binint", " at pos=", rx158_pos)
+ if_null rx158_debug, debug_173
+ rx158_cur."!cursor_debug"("PASS", "binint", " at pos=", rx158_pos)
+ debug_173:
.return (rx158_cur)
rx158_restart:
.annotate 'line', 33
- rx158_cur."!cursor_debug"("NEXT ", "binint")
+ if_null rx158_debug, debug_174
+ rx158_cur."!cursor_debug"("NEXT", "binint")
+ debug_174:
rx158_fail:
(rx158_rep, rx158_pos, $I10, $P10) = rx158_cur."!mark_fail"(0)
lt rx158_pos, -1, rx158_done
@@ -2694,14 +2881,16 @@
jump $I10
rx158_done:
rx158_cur."!cursor_fail"()
- rx158_cur."!cursor_debug"("FAIL ", "binint")
+ if_null rx158_debug, debug_175
+ rx158_cur."!cursor_debug"("FAIL", "binint")
+ debug_175:
.return (rx158_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint" :subid("58_1280467467.13603") :method
+.sub "!PREFIX__binint" :subid("58_1282323993.58127") :method
.annotate 'line', 33
new $P160, "ResizablePMCArray"
push $P160, ""
@@ -2710,7 +2899,7 @@
.namespace ["HLL";"Grammar"]
-.sub "binints" :subid("59_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "binints" :subid("59_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx165_tgt
.local int rx165_pos
@@ -2718,8 +2907,10 @@
.local int rx165_eos
.local int rx165_rep
.local pmc rx165_cur
+ .local pmc rx165_debug
(rx165_cur, rx165_pos, rx165_tgt, $I10) = self."!cursor_start"()
rx165_cur."!cursor_caparray"("binint")
+ getattribute rx165_debug, rx165_cur, "$!debug"
.lex unicode:"$\x{a2}", rx165_cur
.local pmc match
.lex "$/", match
@@ -2731,7 +2922,9 @@
substr rx165_tgt, rx165_tgt, rx165_off
rx165_start:
eq $I10, 1, rx165_restart
- rx165_cur."!cursor_debug"("START ", "binints")
+ if_null rx165_debug, debug_176
+ rx165_cur."!cursor_debug"("START", "binints")
+ debug_176:
$I10 = self.'from'()
ne $I10, -1, rxscan168_done
goto rxscan168_scan
@@ -2774,18 +2967,22 @@
add $I11, rx165_pos, 1
gt $I11, rx165_eos, rx165_fail
sub $I11, rx165_pos, rx165_off
- substr $S10, rx165_tgt, $I11, 1
- ne $S10, ",", rx165_fail
+ ord $I11, rx165_tgt, $I11
+ ne $I11, 44, rx165_fail
add rx165_pos, 1
goto rxquantr169_loop
rxquantr169_done:
# rx pass
rx165_cur."!cursor_pass"(rx165_pos, "binints")
- rx165_cur."!cursor_debug"("PASS ", "binints", " at pos=", rx165_pos)
+ if_null rx165_debug, debug_177
+ rx165_cur."!cursor_debug"("PASS", "binints", " at pos=", rx165_pos)
+ debug_177:
.return (rx165_cur)
rx165_restart:
.annotate 'line', 33
- rx165_cur."!cursor_debug"("NEXT ", "binints")
+ if_null rx165_debug, debug_178
+ rx165_cur."!cursor_debug"("NEXT", "binints")
+ debug_178:
rx165_fail:
(rx165_rep, rx165_pos, $I10, $P10) = rx165_cur."!mark_fail"(0)
lt rx165_pos, -1, rx165_done
@@ -2793,14 +2990,16 @@
jump $I10
rx165_done:
rx165_cur."!cursor_fail"()
- rx165_cur."!cursor_debug"("FAIL ", "binints")
+ if_null rx165_debug, debug_179
+ rx165_cur."!cursor_debug"("FAIL", "binints")
+ debug_179:
.return (rx165_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints" :subid("60_1280467467.13603") :method
+.sub "!PREFIX__binints" :subid("60_1282323993.58127") :method
.annotate 'line', 33
new $P167, "ResizablePMCArray"
push $P167, ""
@@ -2809,7 +3008,7 @@
.namespace ["HLL";"Grammar"]
-.sub "integer" :subid("61_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "integer" :subid("61_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx171_tgt
.local int rx171_pos
@@ -2817,7 +3016,9 @@
.local int rx171_eos
.local int rx171_rep
.local pmc rx171_cur
+ .local pmc rx171_debug
(rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+ getattribute rx171_debug, rx171_cur, "$!debug"
.lex unicode:"$\x{a2}", rx171_cur
.local pmc match
.lex "$/", match
@@ -2829,7 +3030,9 @@
substr rx171_tgt, rx171_tgt, rx171_off
rx171_start:
eq $I10, 1, rx171_restart
- rx171_cur."!cursor_debug"("START ", "integer")
+ if_null rx171_debug, debug_180
+ rx171_cur."!cursor_debug"("START", "integer")
+ debug_180:
$I10 = self.'from'()
ne $I10, -1, rxscan179_done
goto rxscan179_scan
@@ -2851,8 +3054,8 @@
add $I11, rx171_pos, 1
gt $I11, rx171_eos, rx171_fail
sub $I11, rx171_pos, rx171_off
- substr $S10, rx171_tgt, $I11, 1
- ne $S10, "0", rx171_fail
+ ord $I11, rx171_tgt, $I11
+ ne $I11, 48, rx171_fail
add rx171_pos, 1
alt181_0:
set_addr $I10, alt181_1
@@ -2861,8 +3064,8 @@
add $I11, rx171_pos, 1
gt $I11, rx171_eos, rx171_fail
sub $I11, rx171_pos, rx171_off
- substr $S10, rx171_tgt, $I11, 1
- ne $S10, "b", rx171_fail
+ ord $I11, rx171_tgt, $I11
+ ne $I11, 98, rx171_fail
add rx171_pos, 1
# rx subrule "binint" subtype=capture negate=
rx171_cur."!cursor_pos"(rx171_pos)
@@ -2880,8 +3083,8 @@
add $I11, rx171_pos, 1
gt $I11, rx171_eos, rx171_fail
sub $I11, rx171_pos, rx171_off
- substr $S10, rx171_tgt, $I11, 1
- ne $S10, "o", rx171_fail
+ ord $I11, rx171_tgt, $I11
+ ne $I11, 111, rx171_fail
add rx171_pos, 1
# rx subrule "octint" subtype=capture negate=
rx171_cur."!cursor_pos"(rx171_pos)
@@ -2899,8 +3102,8 @@
add $I11, rx171_pos, 1
gt $I11, rx171_eos, rx171_fail
sub $I11, rx171_pos, rx171_off
- substr $S10, rx171_tgt, $I11, 1
- ne $S10, "x", rx171_fail
+ ord $I11, rx171_tgt, $I11
+ ne $I11, 120, rx171_fail
add rx171_pos, 1
# rx subrule "hexint" subtype=capture negate=
rx171_cur."!cursor_pos"(rx171_pos)
@@ -2916,8 +3119,8 @@
add $I11, rx171_pos, 1
gt $I11, rx171_eos, rx171_fail
sub $I11, rx171_pos, rx171_off
- substr $S10, rx171_tgt, $I11, 1
- ne $S10, "d", rx171_fail
+ ord $I11, rx171_tgt, $I11
+ ne $I11, 100, rx171_fail
add rx171_pos, 1
# rx subrule "decint" subtype=capture negate=
rx171_cur."!cursor_pos"(rx171_pos)
@@ -2942,11 +3145,15 @@
.annotate 'line', 60
# rx pass
rx171_cur."!cursor_pass"(rx171_pos, "integer")
- rx171_cur."!cursor_debug"("PASS ", "integer", " at pos=", rx171_pos)
+ if_null rx171_debug, debug_181
+ rx171_cur."!cursor_debug"("PASS", "integer", " at pos=", rx171_pos)
+ debug_181:
.return (rx171_cur)
rx171_restart:
.annotate 'line', 33
- rx171_cur."!cursor_debug"("NEXT ", "integer")
+ if_null rx171_debug, debug_182
+ rx171_cur."!cursor_debug"("NEXT", "integer")
+ debug_182:
rx171_fail:
(rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
lt rx171_pos, -1, rx171_done
@@ -2954,14 +3161,16 @@
jump $I10
rx171_done:
rx171_cur."!cursor_fail"()
- rx171_cur."!cursor_debug"("FAIL ", "integer")
+ if_null rx171_debug, debug_183
+ rx171_cur."!cursor_debug"("FAIL", "integer")
+ debug_183:
.return (rx171_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer" :subid("62_1280467467.13603") :method
+.sub "!PREFIX__integer" :subid("62_1282323993.58127") :method
.annotate 'line', 33
$P173 = self."!PREFIX__!subrule"("decint", "")
$P174 = self."!PREFIX__!subrule"("decint", "0d")
@@ -2979,7 +3188,7 @@
.namespace ["HLL";"Grammar"]
-.sub "dec_number" :subid("63_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "dec_number" :subid("63_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx183_tgt
.local int rx183_pos
@@ -2987,8 +3196,10 @@
.local int rx183_eos
.local int rx183_rep
.local pmc rx183_cur
+ .local pmc rx183_debug
(rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
rx183_cur."!cursor_caparray"("escale")
+ getattribute rx183_debug, rx183_cur, "$!debug"
.lex unicode:"$\x{a2}", rx183_cur
.local pmc match
.lex "$/", match
@@ -3000,7 +3211,9 @@
substr rx183_tgt, rx183_tgt, rx183_off
rx183_start:
eq $I10, 1, rx183_restart
- rx183_cur."!cursor_debug"("START ", "dec_number")
+ if_null rx183_debug, debug_184
+ rx183_cur."!cursor_debug"("START", "dec_number")
+ debug_184:
$I10 = self.'from'()
ne $I10, -1, rxscan186_done
goto rxscan186_scan
@@ -3025,8 +3238,8 @@
add $I11, rx183_pos, 1
gt $I11, rx183_eos, rx183_fail
sub $I11, rx183_pos, rx183_off
- substr $S10, rx183_tgt, $I11, 1
- ne $S10, ".", rx183_fail
+ ord $I11, rx183_tgt, $I11
+ ne $I11, 46, rx183_fail
add rx183_pos, 1
# rx charclass_q d r 1..-1
sub $I10, rx183_pos, rx183_off
@@ -3083,8 +3296,8 @@
add $I11, rx183_pos, 1
gt $I11, rx183_eos, rx183_fail
sub $I11, rx183_pos, rx183_off
- substr $S10, rx183_tgt, $I11, 1
- ne $S10, ".", rx183_fail
+ ord $I11, rx183_tgt, $I11
+ ne $I11, 46, rx183_fail
add rx183_pos, 1
# rx charclass_q d r 1..-1
sub $I10, rx183_pos, rx183_off
@@ -3157,11 +3370,15 @@
.annotate 'line', 71
# rx pass
rx183_cur."!cursor_pass"(rx183_pos, "dec_number")
- rx183_cur."!cursor_debug"("PASS ", "dec_number", " at pos=", rx183_pos)
+ if_null rx183_debug, debug_185
+ rx183_cur."!cursor_debug"("PASS", "dec_number", " at pos=", rx183_pos)
+ debug_185:
.return (rx183_cur)
rx183_restart:
.annotate 'line', 33
- rx183_cur."!cursor_debug"("NEXT ", "dec_number")
+ if_null rx183_debug, debug_186
+ rx183_cur."!cursor_debug"("NEXT", "dec_number")
+ debug_186:
rx183_fail:
(rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
lt rx183_pos, -1, rx183_done
@@ -3169,14 +3386,16 @@
jump $I10
rx183_done:
rx183_cur."!cursor_fail"()
- rx183_cur."!cursor_debug"("FAIL ", "dec_number")
+ if_null rx183_debug, debug_187
+ rx183_cur."!cursor_debug"("FAIL", "dec_number")
+ debug_187:
.return (rx183_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number" :subid("64_1280467467.13603") :method
+.sub "!PREFIX__dec_number" :subid("64_1282323993.58127") :method
.annotate 'line', 33
new $P185, "ResizablePMCArray"
push $P185, ""
@@ -3187,7 +3406,7 @@
.namespace ["HLL";"Grammar"]
-.sub "escale" :subid("65_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "escale" :subid("65_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx196_tgt
.local int rx196_pos
@@ -3195,7 +3414,9 @@
.local int rx196_eos
.local int rx196_rep
.local pmc rx196_cur
+ .local pmc rx196_debug
(rx196_cur, rx196_pos, rx196_tgt, $I10) = self."!cursor_start"()
+ getattribute rx196_debug, rx196_cur, "$!debug"
.lex unicode:"$\x{a2}", rx196_cur
.local pmc match
.lex "$/", match
@@ -3207,7 +3428,9 @@
substr rx196_tgt, rx196_tgt, rx196_off
rx196_start:
eq $I10, 1, rx196_restart
- rx196_cur."!cursor_debug"("START ", "escale")
+ if_null rx196_debug, debug_188
+ rx196_cur."!cursor_debug"("START", "escale")
+ debug_188:
$I10 = self.'from'()
ne $I10, -1, rxscan199_done
goto rxscan199_scan
@@ -3228,20 +3451,20 @@
index $I11, "Ee", $S10
lt $I11, 0, rx196_fail
inc rx196_pos
- # rx rxquantr200 ** 0..1
- set_addr $I10, rxquantr200_done
- rx196_cur."!mark_push"(0, rx196_pos, $I10)
- rxquantr200_loop:
- # rx enumcharlist negate=0
- ge rx196_pos, rx196_eos, rx196_fail
+ # rx enumcharlist_q negate=0 r 0..1
sub $I10, rx196_pos, rx196_off
+ set rx196_rep, 0
+ sub $I12, rx196_eos, rx196_pos
+ le $I12, 1, rxenumcharlistq200_loop
+ set $I12, 1
+ rxenumcharlistq200_loop:
+ le $I12, 0, rxenumcharlistq200_done
substr $S10, rx196_tgt, $I10, 1
index $I11, "+-", $S10
- lt $I11, 0, rx196_fail
- inc rx196_pos
- set_addr $I10, rxquantr200_done
- (rx196_rep) = rx196_cur."!mark_commit"($I10)
- rxquantr200_done:
+ lt $I11, 0, rxenumcharlistq200_done
+ inc rx196_rep
+ rxenumcharlistq200_done:
+ add rx196_pos, rx196_pos, rx196_rep
# rx charclass_q d r 1..-1
sub $I10, rx196_pos, rx196_off
find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
@@ -3250,11 +3473,15 @@
add rx196_pos, rx196_off, $I11
# rx pass
rx196_cur."!cursor_pass"(rx196_pos, "escale")
- rx196_cur."!cursor_debug"("PASS ", "escale", " at pos=", rx196_pos)
+ if_null rx196_debug, debug_189
+ rx196_cur."!cursor_debug"("PASS", "escale", " at pos=", rx196_pos)
+ debug_189:
.return (rx196_cur)
rx196_restart:
.annotate 'line', 33
- rx196_cur."!cursor_debug"("NEXT ", "escale")
+ if_null rx196_debug, debug_190
+ rx196_cur."!cursor_debug"("NEXT", "escale")
+ debug_190:
rx196_fail:
(rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
lt rx196_pos, -1, rx196_done
@@ -3262,14 +3489,16 @@
jump $I10
rx196_done:
rx196_cur."!cursor_fail"()
- rx196_cur."!cursor_debug"("FAIL ", "escale")
+ if_null rx196_debug, debug_191
+ rx196_cur."!cursor_debug"("FAIL", "escale")
+ debug_191:
.return (rx196_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale" :subid("66_1280467467.13603") :method
+.sub "!PREFIX__escale" :subid("66_1282323993.58127") :method
.annotate 'line', 33
new $P198, "ResizablePMCArray"
push $P198, "e"
@@ -3279,7 +3508,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape" :subid("67_1280467467.13603") :method
+.sub "quote_escape" :subid("67_1282323993.58127") :method
.annotate 'line', 79
$P202 = self."!protoregex"("quote_escape")
.return ($P202)
@@ -3287,7 +3516,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape" :subid("68_1280467467.13603") :method
+.sub "!PREFIX__quote_escape" :subid("68_1282323993.58127") :method
.annotate 'line', 79
$P204 = self."!PREFIX__!protoregex"("quote_escape")
.return ($P204)
@@ -3295,7 +3524,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>" :subid("69_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<backslash>" :subid("69_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx206_tgt
.local int rx206_pos
@@ -3303,7 +3532,9 @@
.local int rx206_eos
.local int rx206_rep
.local pmc rx206_cur
+ .local pmc rx206_debug
(rx206_cur, rx206_pos, rx206_tgt, $I10) = self."!cursor_start"()
+ getattribute rx206_debug, rx206_cur, "$!debug"
.lex unicode:"$\x{a2}", rx206_cur
.local pmc match
.lex "$/", match
@@ -3315,7 +3546,9 @@
substr rx206_tgt, rx206_tgt, rx206_off
rx206_start:
eq $I10, 1, rx206_restart
- rx206_cur."!cursor_debug"("START ", "quote_escape:sym<backslash>")
+ if_null rx206_debug, debug_192
+ rx206_cur."!cursor_debug"("START", "quote_escape:sym<backslash>")
+ debug_192:
$I10 = self.'from'()
ne $I10, -1, rxscan209_done
goto rxscan209_scan
@@ -3342,11 +3575,15 @@
unless $P10, rx206_fail
# rx pass
rx206_cur."!cursor_pass"(rx206_pos, "quote_escape:sym<backslash>")
- rx206_cur."!cursor_debug"("PASS ", "quote_escape:sym<backslash>", " at pos=", rx206_pos)
+ if_null rx206_debug, debug_193
+ rx206_cur."!cursor_debug"("PASS", "quote_escape:sym<backslash>", " at pos=", rx206_pos)
+ debug_193:
.return (rx206_cur)
rx206_restart:
.annotate 'line', 33
- rx206_cur."!cursor_debug"("NEXT ", "quote_escape:sym<backslash>")
+ if_null rx206_debug, debug_194
+ rx206_cur."!cursor_debug"("NEXT", "quote_escape:sym<backslash>")
+ debug_194:
rx206_fail:
(rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0)
lt rx206_pos, -1, rx206_done
@@ -3354,14 +3591,16 @@
jump $I10
rx206_done:
rx206_cur."!cursor_fail"()
- rx206_cur."!cursor_debug"("FAIL ", "quote_escape:sym<backslash>")
+ if_null rx206_debug, debug_195
+ rx206_cur."!cursor_debug"("FAIL", "quote_escape:sym<backslash>")
+ debug_195:
.return (rx206_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1282323993.58127") :method
.annotate 'line', 33
new $P208, "ResizablePMCArray"
push $P208, "\\\\"
@@ -3370,7 +3609,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>" :subid("71_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<stopper>" :subid("71_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx211_tgt
.local int rx211_pos
@@ -3378,7 +3617,9 @@
.local int rx211_eos
.local int rx211_rep
.local pmc rx211_cur
+ .local pmc rx211_debug
(rx211_cur, rx211_pos, rx211_tgt, $I10) = self."!cursor_start"()
+ getattribute rx211_debug, rx211_cur, "$!debug"
.lex unicode:"$\x{a2}", rx211_cur
.local pmc match
.lex "$/", match
@@ -3390,7 +3631,9 @@
substr rx211_tgt, rx211_tgt, rx211_off
rx211_start:
eq $I10, 1, rx211_restart
- rx211_cur."!cursor_debug"("START ", "quote_escape:sym<stopper>")
+ if_null rx211_debug, debug_196
+ rx211_cur."!cursor_debug"("START", "quote_escape:sym<stopper>")
+ debug_196:
$I10 = self.'from'()
ne $I10, -1, rxscan214_done
goto rxscan214_scan
@@ -3408,8 +3651,8 @@
add $I11, rx211_pos, 1
gt $I11, rx211_eos, rx211_fail
sub $I11, rx211_pos, rx211_off
- substr $S10, rx211_tgt, $I11, 1
- ne $S10, "\\", rx211_fail
+ ord $I11, rx211_tgt, $I11
+ ne $I11, 92, rx211_fail
add rx211_pos, 1
# rx subrule "quotemod_check" subtype=zerowidth negate=
rx211_cur."!cursor_pos"(rx211_pos)
@@ -3424,11 +3667,15 @@
rx211_pos = $P10."pos"()
# rx pass
rx211_cur."!cursor_pass"(rx211_pos, "quote_escape:sym<stopper>")
- rx211_cur."!cursor_debug"("PASS ", "quote_escape:sym<stopper>", " at pos=", rx211_pos)
+ if_null rx211_debug, debug_197
+ rx211_cur."!cursor_debug"("PASS", "quote_escape:sym<stopper>", " at pos=", rx211_pos)
+ debug_197:
.return (rx211_cur)
rx211_restart:
.annotate 'line', 33
- rx211_cur."!cursor_debug"("NEXT ", "quote_escape:sym<stopper>")
+ if_null rx211_debug, debug_198
+ rx211_cur."!cursor_debug"("NEXT", "quote_escape:sym<stopper>")
+ debug_198:
rx211_fail:
(rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
lt rx211_pos, -1, rx211_done
@@ -3436,14 +3683,16 @@
jump $I10
rx211_done:
rx211_cur."!cursor_fail"()
- rx211_cur."!cursor_debug"("FAIL ", "quote_escape:sym<stopper>")
+ if_null rx211_debug, debug_199
+ rx211_cur."!cursor_debug"("FAIL", "quote_escape:sym<stopper>")
+ debug_199:
.return (rx211_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1282323993.58127") :method
.annotate 'line', 33
new $P213, "ResizablePMCArray"
push $P213, "\\"
@@ -3452,7 +3701,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>" :subid("73_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<bs>" :subid("73_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx216_tgt
.local int rx216_pos
@@ -3460,7 +3709,9 @@
.local int rx216_eos
.local int rx216_rep
.local pmc rx216_cur
+ .local pmc rx216_debug
(rx216_cur, rx216_pos, rx216_tgt, $I10) = self."!cursor_start"()
+ getattribute rx216_debug, rx216_cur, "$!debug"
.lex unicode:"$\x{a2}", rx216_cur
.local pmc match
.lex "$/", match
@@ -3472,7 +3723,9 @@
substr rx216_tgt, rx216_tgt, rx216_off
rx216_start:
eq $I10, 1, rx216_restart
- rx216_cur."!cursor_debug"("START ", "quote_escape:sym<bs>")
+ if_null rx216_debug, debug_200
+ rx216_cur."!cursor_debug"("START", "quote_escape:sym<bs>")
+ debug_200:
$I10 = self.'from'()
ne $I10, -1, rxscan219_done
goto rxscan219_scan
@@ -3499,11 +3752,15 @@
unless $P10, rx216_fail
# rx pass
rx216_cur."!cursor_pass"(rx216_pos, "quote_escape:sym<bs>")
- rx216_cur."!cursor_debug"("PASS ", "quote_escape:sym<bs>", " at pos=", rx216_pos)
+ if_null rx216_debug, debug_201
+ rx216_cur."!cursor_debug"("PASS", "quote_escape:sym<bs>", " at pos=", rx216_pos)
+ debug_201:
.return (rx216_cur)
rx216_restart:
.annotate 'line', 33
- rx216_cur."!cursor_debug"("NEXT ", "quote_escape:sym<bs>")
+ if_null rx216_debug, debug_202
+ rx216_cur."!cursor_debug"("NEXT", "quote_escape:sym<bs>")
+ debug_202:
rx216_fail:
(rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0)
lt rx216_pos, -1, rx216_done
@@ -3511,14 +3768,16 @@
jump $I10
rx216_done:
rx216_cur."!cursor_fail"()
- rx216_cur."!cursor_debug"("FAIL ", "quote_escape:sym<bs>")
+ if_null rx216_debug, debug_203
+ rx216_cur."!cursor_debug"("FAIL", "quote_escape:sym<bs>")
+ debug_203:
.return (rx216_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1282323993.58127") :method
.annotate 'line', 33
new $P218, "ResizablePMCArray"
push $P218, "\\b"
@@ -3527,7 +3786,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>" :subid("75_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<nl>" :subid("75_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx221_tgt
.local int rx221_pos
@@ -3535,7 +3794,9 @@
.local int rx221_eos
.local int rx221_rep
.local pmc rx221_cur
+ .local pmc rx221_debug
(rx221_cur, rx221_pos, rx221_tgt, $I10) = self."!cursor_start"()
+ getattribute rx221_debug, rx221_cur, "$!debug"
.lex unicode:"$\x{a2}", rx221_cur
.local pmc match
.lex "$/", match
@@ -3547,7 +3808,9 @@
substr rx221_tgt, rx221_tgt, rx221_off
rx221_start:
eq $I10, 1, rx221_restart
- rx221_cur."!cursor_debug"("START ", "quote_escape:sym<nl>")
+ if_null rx221_debug, debug_204
+ rx221_cur."!cursor_debug"("START", "quote_escape:sym<nl>")
+ debug_204:
$I10 = self.'from'()
ne $I10, -1, rxscan224_done
goto rxscan224_scan
@@ -3574,11 +3837,15 @@
unless $P10, rx221_fail
# rx pass
rx221_cur."!cursor_pass"(rx221_pos, "quote_escape:sym<nl>")
- rx221_cur."!cursor_debug"("PASS ", "quote_escape:sym<nl>", " at pos=", rx221_pos)
+ if_null rx221_debug, debug_205
+ rx221_cur."!cursor_debug"("PASS", "quote_escape:sym<nl>", " at pos=", rx221_pos)
+ debug_205:
.return (rx221_cur)
rx221_restart:
.annotate 'line', 33
- rx221_cur."!cursor_debug"("NEXT ", "quote_escape:sym<nl>")
+ if_null rx221_debug, debug_206
+ rx221_cur."!cursor_debug"("NEXT", "quote_escape:sym<nl>")
+ debug_206:
rx221_fail:
(rx221_rep, rx221_pos, $I10, $P10) = rx221_cur."!mark_fail"(0)
lt rx221_pos, -1, rx221_done
@@ -3586,14 +3853,16 @@
jump $I10
rx221_done:
rx221_cur."!cursor_fail"()
- rx221_cur."!cursor_debug"("FAIL ", "quote_escape:sym<nl>")
+ if_null rx221_debug, debug_207
+ rx221_cur."!cursor_debug"("FAIL", "quote_escape:sym<nl>")
+ debug_207:
.return (rx221_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1282323993.58127") :method
.annotate 'line', 33
new $P223, "ResizablePMCArray"
push $P223, "\\n"
@@ -3602,7 +3871,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>" :subid("77_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<cr>" :subid("77_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx226_tgt
.local int rx226_pos
@@ -3610,7 +3879,9 @@
.local int rx226_eos
.local int rx226_rep
.local pmc rx226_cur
+ .local pmc rx226_debug
(rx226_cur, rx226_pos, rx226_tgt, $I10) = self."!cursor_start"()
+ getattribute rx226_debug, rx226_cur, "$!debug"
.lex unicode:"$\x{a2}", rx226_cur
.local pmc match
.lex "$/", match
@@ -3622,7 +3893,9 @@
substr rx226_tgt, rx226_tgt, rx226_off
rx226_start:
eq $I10, 1, rx226_restart
- rx226_cur."!cursor_debug"("START ", "quote_escape:sym<cr>")
+ if_null rx226_debug, debug_208
+ rx226_cur."!cursor_debug"("START", "quote_escape:sym<cr>")
+ debug_208:
$I10 = self.'from'()
ne $I10, -1, rxscan229_done
goto rxscan229_scan
@@ -3649,11 +3922,15 @@
unless $P10, rx226_fail
# rx pass
rx226_cur."!cursor_pass"(rx226_pos, "quote_escape:sym<cr>")
- rx226_cur."!cursor_debug"("PASS ", "quote_escape:sym<cr>", " at pos=", rx226_pos)
+ if_null rx226_debug, debug_209
+ rx226_cur."!cursor_debug"("PASS", "quote_escape:sym<cr>", " at pos=", rx226_pos)
+ debug_209:
.return (rx226_cur)
rx226_restart:
.annotate 'line', 33
- rx226_cur."!cursor_debug"("NEXT ", "quote_escape:sym<cr>")
+ if_null rx226_debug, debug_210
+ rx226_cur."!cursor_debug"("NEXT", "quote_escape:sym<cr>")
+ debug_210:
rx226_fail:
(rx226_rep, rx226_pos, $I10, $P10) = rx226_cur."!mark_fail"(0)
lt rx226_pos, -1, rx226_done
@@ -3661,14 +3938,16 @@
jump $I10
rx226_done:
rx226_cur."!cursor_fail"()
- rx226_cur."!cursor_debug"("FAIL ", "quote_escape:sym<cr>")
+ if_null rx226_debug, debug_211
+ rx226_cur."!cursor_debug"("FAIL", "quote_escape:sym<cr>")
+ debug_211:
.return (rx226_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1282323993.58127") :method
.annotate 'line', 33
new $P228, "ResizablePMCArray"
push $P228, "\\r"
@@ -3677,7 +3956,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>" :subid("79_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<tab>" :subid("79_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx231_tgt
.local int rx231_pos
@@ -3685,7 +3964,9 @@
.local int rx231_eos
.local int rx231_rep
.local pmc rx231_cur
+ .local pmc rx231_debug
(rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"()
+ getattribute rx231_debug, rx231_cur, "$!debug"
.lex unicode:"$\x{a2}", rx231_cur
.local pmc match
.lex "$/", match
@@ -3697,7 +3978,9 @@
substr rx231_tgt, rx231_tgt, rx231_off
rx231_start:
eq $I10, 1, rx231_restart
- rx231_cur."!cursor_debug"("START ", "quote_escape:sym<tab>")
+ if_null rx231_debug, debug_212
+ rx231_cur."!cursor_debug"("START", "quote_escape:sym<tab>")
+ debug_212:
$I10 = self.'from'()
ne $I10, -1, rxscan234_done
goto rxscan234_scan
@@ -3724,11 +4007,15 @@
unless $P10, rx231_fail
# rx pass
rx231_cur."!cursor_pass"(rx231_pos, "quote_escape:sym<tab>")
- rx231_cur."!cursor_debug"("PASS ", "quote_escape:sym<tab>", " at pos=", rx231_pos)
+ if_null rx231_debug, debug_213
+ rx231_cur."!cursor_debug"("PASS", "quote_escape:sym<tab>", " at pos=", rx231_pos)
+ debug_213:
.return (rx231_cur)
rx231_restart:
.annotate 'line', 33
- rx231_cur."!cursor_debug"("NEXT ", "quote_escape:sym<tab>")
+ if_null rx231_debug, debug_214
+ rx231_cur."!cursor_debug"("NEXT", "quote_escape:sym<tab>")
+ debug_214:
rx231_fail:
(rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0)
lt rx231_pos, -1, rx231_done
@@ -3736,14 +4023,16 @@
jump $I10
rx231_done:
rx231_cur."!cursor_fail"()
- rx231_cur."!cursor_debug"("FAIL ", "quote_escape:sym<tab>")
+ if_null rx231_debug, debug_215
+ rx231_cur."!cursor_debug"("FAIL", "quote_escape:sym<tab>")
+ debug_215:
.return (rx231_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1282323993.58127") :method
.annotate 'line', 33
new $P233, "ResizablePMCArray"
push $P233, "\\t"
@@ -3752,7 +4041,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>" :subid("81_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<ff>" :subid("81_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx236_tgt
.local int rx236_pos
@@ -3760,7 +4049,9 @@
.local int rx236_eos
.local int rx236_rep
.local pmc rx236_cur
+ .local pmc rx236_debug
(rx236_cur, rx236_pos, rx236_tgt, $I10) = self."!cursor_start"()
+ getattribute rx236_debug, rx236_cur, "$!debug"
.lex unicode:"$\x{a2}", rx236_cur
.local pmc match
.lex "$/", match
@@ -3772,7 +4063,9 @@
substr rx236_tgt, rx236_tgt, rx236_off
rx236_start:
eq $I10, 1, rx236_restart
- rx236_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
+ if_null rx236_debug, debug_216
+ rx236_cur."!cursor_debug"("START", "quote_escape:sym<ff>")
+ debug_216:
$I10 = self.'from'()
ne $I10, -1, rxscan239_done
goto rxscan239_scan
@@ -3799,11 +4092,15 @@
unless $P10, rx236_fail
# rx pass
rx236_cur."!cursor_pass"(rx236_pos, "quote_escape:sym<ff>")
- rx236_cur."!cursor_debug"("PASS ", "quote_escape:sym<ff>", " at pos=", rx236_pos)
+ if_null rx236_debug, debug_217
+ rx236_cur."!cursor_debug"("PASS", "quote_escape:sym<ff>", " at pos=", rx236_pos)
+ debug_217:
.return (rx236_cur)
rx236_restart:
.annotate 'line', 33
- rx236_cur."!cursor_debug"("NEXT ", "quote_escape:sym<ff>")
+ if_null rx236_debug, debug_218
+ rx236_cur."!cursor_debug"("NEXT", "quote_escape:sym<ff>")
+ debug_218:
rx236_fail:
(rx236_rep, rx236_pos, $I10, $P10) = rx236_cur."!mark_fail"(0)
lt rx236_pos, -1, rx236_done
@@ -3811,14 +4108,16 @@
jump $I10
rx236_done:
rx236_cur."!cursor_fail"()
- rx236_cur."!cursor_debug"("FAIL ", "quote_escape:sym<ff>")
+ if_null rx236_debug, debug_219
+ rx236_cur."!cursor_debug"("FAIL", "quote_escape:sym<ff>")
+ debug_219:
.return (rx236_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>" :subid("82_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<ff>" :subid("82_1282323993.58127") :method
.annotate 'line', 33
new $P238, "ResizablePMCArray"
push $P238, "\\f"
@@ -3827,7 +4126,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<esc>" :subid("83_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<esc>" :subid("83_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx241_tgt
.local int rx241_pos
@@ -3835,7 +4134,9 @@
.local int rx241_eos
.local int rx241_rep
.local pmc rx241_cur
+ .local pmc rx241_debug
(rx241_cur, rx241_pos, rx241_tgt, $I10) = self."!cursor_start"()
+ getattribute rx241_debug, rx241_cur, "$!debug"
.lex unicode:"$\x{a2}", rx241_cur
.local pmc match
.lex "$/", match
@@ -3847,7 +4148,9 @@
substr rx241_tgt, rx241_tgt, rx241_off
rx241_start:
eq $I10, 1, rx241_restart
- rx241_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
+ if_null rx241_debug, debug_220
+ rx241_cur."!cursor_debug"("START", "quote_escape:sym<esc>")
+ debug_220:
$I10 = self.'from'()
ne $I10, -1, rxscan244_done
goto rxscan244_scan
@@ -3874,11 +4177,15 @@
unless $P10, rx241_fail
# rx pass
rx241_cur."!cursor_pass"(rx241_pos, "quote_escape:sym<esc>")
- rx241_cur."!cursor_debug"("PASS ", "quote_escape:sym<esc>", " at pos=", rx241_pos)
+ if_null rx241_debug, debug_221
+ rx241_cur."!cursor_debug"("PASS", "quote_escape:sym<esc>", " at pos=", rx241_pos)
+ debug_221:
.return (rx241_cur)
rx241_restart:
.annotate 'line', 33
- rx241_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+ if_null rx241_debug, debug_222
+ rx241_cur."!cursor_debug"("NEXT", "quote_escape:sym<esc>")
+ debug_222:
rx241_fail:
(rx241_rep, rx241_pos, $I10, $P10) = rx241_cur."!mark_fail"(0)
lt rx241_pos, -1, rx241_done
@@ -3886,14 +4193,16 @@
jump $I10
rx241_done:
rx241_cur."!cursor_fail"()
- rx241_cur."!cursor_debug"("FAIL ", "quote_escape:sym<esc>")
+ if_null rx241_debug, debug_223
+ rx241_cur."!cursor_debug"("FAIL", "quote_escape:sym<esc>")
+ debug_223:
.return (rx241_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>" :subid("84_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<esc>" :subid("84_1282323993.58127") :method
.annotate 'line', 33
new $P243, "ResizablePMCArray"
push $P243, "\\e"
@@ -3902,7 +4211,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>" :subid("85_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<hex>" :subid("85_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx246_tgt
.local int rx246_pos
@@ -3910,7 +4219,9 @@
.local int rx246_eos
.local int rx246_rep
.local pmc rx246_cur
+ .local pmc rx246_debug
(rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
+ getattribute rx246_debug, rx246_cur, "$!debug"
.lex unicode:"$\x{a2}", rx246_cur
.local pmc match
.lex "$/", match
@@ -3922,7 +4233,9 @@
substr rx246_tgt, rx246_tgt, rx246_off
rx246_start:
eq $I10, 1, rx246_restart
- rx246_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
+ if_null rx246_debug, debug_224
+ rx246_cur."!cursor_debug"("START", "quote_escape:sym<hex>")
+ debug_224:
$I10 = self.'from'()
ne $I10, -1, rxscan249_done
goto rxscan249_scan
@@ -3964,8 +4277,8 @@
add $I11, rx246_pos, 1
gt $I11, rx246_eos, rx246_fail
sub $I11, rx246_pos, rx246_off
- substr $S10, rx246_tgt, $I11, 1
- ne $S10, "[", rx246_fail
+ ord $I11, rx246_tgt, $I11
+ ne $I11, 91, rx246_fail
add rx246_pos, 1
# rx subrule "hexints" subtype=capture negate=
rx246_cur."!cursor_pos"(rx246_pos)
@@ -3978,18 +4291,22 @@
add $I11, rx246_pos, 1
gt $I11, rx246_eos, rx246_fail
sub $I11, rx246_pos, rx246_off
- substr $S10, rx246_tgt, $I11, 1
- ne $S10, "]", rx246_fail
+ ord $I11, rx246_tgt, $I11
+ ne $I11, 93, rx246_fail
add rx246_pos, 1
alt250_end:
.annotate 'line', 89
# rx pass
rx246_cur."!cursor_pass"(rx246_pos, "quote_escape:sym<hex>")
- rx246_cur."!cursor_debug"("PASS ", "quote_escape:sym<hex>", " at pos=", rx246_pos)
+ if_null rx246_debug, debug_225
+ rx246_cur."!cursor_debug"("PASS", "quote_escape:sym<hex>", " at pos=", rx246_pos)
+ debug_225:
.return (rx246_cur)
rx246_restart:
.annotate 'line', 33
- rx246_cur."!cursor_debug"("NEXT ", "quote_escape:sym<hex>")
+ if_null rx246_debug, debug_226
+ rx246_cur."!cursor_debug"("NEXT", "quote_escape:sym<hex>")
+ debug_226:
rx246_fail:
(rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
lt rx246_pos, -1, rx246_done
@@ -3997,14 +4314,16 @@
jump $I10
rx246_done:
rx246_cur."!cursor_fail"()
- rx246_cur."!cursor_debug"("FAIL ", "quote_escape:sym<hex>")
+ if_null rx246_debug, debug_227
+ rx246_cur."!cursor_debug"("FAIL", "quote_escape:sym<hex>")
+ debug_227:
.return (rx246_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>" :subid("86_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<hex>" :subid("86_1282323993.58127") :method
.annotate 'line', 33
new $P248, "ResizablePMCArray"
push $P248, unicode:"\\x"
@@ -4013,7 +4332,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>" :subid("87_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<oct>" :subid("87_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx252_tgt
.local int rx252_pos
@@ -4021,7 +4340,9 @@
.local int rx252_eos
.local int rx252_rep
.local pmc rx252_cur
+ .local pmc rx252_debug
(rx252_cur, rx252_pos, rx252_tgt, $I10) = self."!cursor_start"()
+ getattribute rx252_debug, rx252_cur, "$!debug"
.lex unicode:"$\x{a2}", rx252_cur
.local pmc match
.lex "$/", match
@@ -4033,7 +4354,9 @@
substr rx252_tgt, rx252_tgt, rx252_off
rx252_start:
eq $I10, 1, rx252_restart
- rx252_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
+ if_null rx252_debug, debug_228
+ rx252_cur."!cursor_debug"("START", "quote_escape:sym<oct>")
+ debug_228:
$I10 = self.'from'()
ne $I10, -1, rxscan255_done
goto rxscan255_scan
@@ -4075,8 +4398,8 @@
add $I11, rx252_pos, 1
gt $I11, rx252_eos, rx252_fail
sub $I11, rx252_pos, rx252_off
- substr $S10, rx252_tgt, $I11, 1
- ne $S10, "[", rx252_fail
+ ord $I11, rx252_tgt, $I11
+ ne $I11, 91, rx252_fail
add rx252_pos, 1
# rx subrule "octints" subtype=capture negate=
rx252_cur."!cursor_pos"(rx252_pos)
@@ -4089,18 +4412,22 @@
add $I11, rx252_pos, 1
gt $I11, rx252_eos, rx252_fail
sub $I11, rx252_pos, rx252_off
- substr $S10, rx252_tgt, $I11, 1
- ne $S10, "]", rx252_fail
+ ord $I11, rx252_tgt, $I11
+ ne $I11, 93, rx252_fail
add rx252_pos, 1
alt256_end:
.annotate 'line', 93
# rx pass
rx252_cur."!cursor_pass"(rx252_pos, "quote_escape:sym<oct>")
- rx252_cur."!cursor_debug"("PASS ", "quote_escape:sym<oct>", " at pos=", rx252_pos)
+ if_null rx252_debug, debug_229
+ rx252_cur."!cursor_debug"("PASS", "quote_escape:sym<oct>", " at pos=", rx252_pos)
+ debug_229:
.return (rx252_cur)
rx252_restart:
.annotate 'line', 33
- rx252_cur."!cursor_debug"("NEXT ", "quote_escape:sym<oct>")
+ if_null rx252_debug, debug_230
+ rx252_cur."!cursor_debug"("NEXT", "quote_escape:sym<oct>")
+ debug_230:
rx252_fail:
(rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0)
lt rx252_pos, -1, rx252_done
@@ -4108,14 +4435,16 @@
jump $I10
rx252_done:
rx252_cur."!cursor_fail"()
- rx252_cur."!cursor_debug"("FAIL ", "quote_escape:sym<oct>")
+ if_null rx252_debug, debug_231
+ rx252_cur."!cursor_debug"("FAIL", "quote_escape:sym<oct>")
+ debug_231:
.return (rx252_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>" :subid("88_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<oct>" :subid("88_1282323993.58127") :method
.annotate 'line', 33
new $P254, "ResizablePMCArray"
push $P254, "\\o"
@@ -4124,7 +4453,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>" :subid("89_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<chr>" :subid("89_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx258_tgt
.local int rx258_pos
@@ -4132,7 +4461,9 @@
.local int rx258_eos
.local int rx258_rep
.local pmc rx258_cur
+ .local pmc rx258_debug
(rx258_cur, rx258_pos, rx258_tgt, $I10) = self."!cursor_start"()
+ getattribute rx258_debug, rx258_cur, "$!debug"
.lex unicode:"$\x{a2}", rx258_cur
.local pmc match
.lex "$/", match
@@ -4144,7 +4475,9 @@
substr rx258_tgt, rx258_tgt, rx258_off
rx258_start:
eq $I10, 1, rx258_restart
- rx258_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
+ if_null rx258_debug, debug_232
+ rx258_cur."!cursor_debug"("START", "quote_escape:sym<chr>")
+ debug_232:
$I10 = self.'from'()
ne $I10, -1, rxscan261_done
goto rxscan261_scan
@@ -4178,11 +4511,15 @@
rx258_pos = $P10."pos"()
# rx pass
rx258_cur."!cursor_pass"(rx258_pos, "quote_escape:sym<chr>")
- rx258_cur."!cursor_debug"("PASS ", "quote_escape:sym<chr>", " at pos=", rx258_pos)
+ if_null rx258_debug, debug_233
+ rx258_cur."!cursor_debug"("PASS", "quote_escape:sym<chr>", " at pos=", rx258_pos)
+ debug_233:
.return (rx258_cur)
rx258_restart:
.annotate 'line', 33
- rx258_cur."!cursor_debug"("NEXT ", "quote_escape:sym<chr>")
+ if_null rx258_debug, debug_234
+ rx258_cur."!cursor_debug"("NEXT", "quote_escape:sym<chr>")
+ debug_234:
rx258_fail:
(rx258_rep, rx258_pos, $I10, $P10) = rx258_cur."!mark_fail"(0)
lt rx258_pos, -1, rx258_done
@@ -4190,14 +4527,16 @@
jump $I10
rx258_done:
rx258_cur."!cursor_fail"()
- rx258_cur."!cursor_debug"("FAIL ", "quote_escape:sym<chr>")
+ if_null rx258_debug, debug_235
+ rx258_cur."!cursor_debug"("FAIL", "quote_escape:sym<chr>")
+ debug_235:
.return (rx258_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>" :subid("90_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<chr>" :subid("90_1282323993.58127") :method
.annotate 'line', 33
new $P260, "ResizablePMCArray"
push $P260, "\\c"
@@ -4206,7 +4545,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>" :subid("91_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<0>" :subid("91_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx263_tgt
.local int rx263_pos
@@ -4214,7 +4553,9 @@
.local int rx263_eos
.local int rx263_rep
.local pmc rx263_cur
+ .local pmc rx263_debug
(rx263_cur, rx263_pos, rx263_tgt, $I10) = self."!cursor_start"()
+ getattribute rx263_debug, rx263_cur, "$!debug"
.lex unicode:"$\x{a2}", rx263_cur
.local pmc match
.lex "$/", match
@@ -4226,7 +4567,9 @@
substr rx263_tgt, rx263_tgt, rx263_off
rx263_start:
eq $I10, 1, rx263_restart
- rx263_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
+ if_null rx263_debug, debug_236
+ rx263_cur."!cursor_debug"("START", "quote_escape:sym<0>")
+ debug_236:
$I10 = self.'from'()
ne $I10, -1, rxscan266_done
goto rxscan266_scan
@@ -4244,8 +4587,8 @@
add $I11, rx263_pos, 1
gt $I11, rx263_eos, rx263_fail
sub $I11, rx263_pos, rx263_off
- substr $S10, rx263_tgt, $I11, 1
- ne $S10, "\\", rx263_fail
+ ord $I11, rx263_tgt, $I11
+ ne $I11, 92, rx263_fail
add rx263_pos, 1
# rx subcapture "sym"
set_addr $I10, rxcap_267_fail
@@ -4254,8 +4597,8 @@
add $I11, rx263_pos, 1
gt $I11, rx263_eos, rx263_fail
sub $I11, rx263_pos, rx263_off
- substr $S10, rx263_tgt, $I11, 1
- ne $S10, "0", rx263_fail
+ ord $I11, rx263_tgt, $I11
+ ne $I11, 48, rx263_fail
add rx263_pos, 1
set_addr $I10, rxcap_267_fail
($I12, $I11) = rx263_cur."!mark_peek"($I10)
@@ -4274,11 +4617,15 @@
unless $P10, rx263_fail
# rx pass
rx263_cur."!cursor_pass"(rx263_pos, "quote_escape:sym<0>")
- rx263_cur."!cursor_debug"("PASS ", "quote_escape:sym<0>", " at pos=", rx263_pos)
+ if_null rx263_debug, debug_237
+ rx263_cur."!cursor_debug"("PASS", "quote_escape:sym<0>", " at pos=", rx263_pos)
+ debug_237:
.return (rx263_cur)
rx263_restart:
.annotate 'line', 33
- rx263_cur."!cursor_debug"("NEXT ", "quote_escape:sym<0>")
+ if_null rx263_debug, debug_238
+ rx263_cur."!cursor_debug"("NEXT", "quote_escape:sym<0>")
+ debug_238:
rx263_fail:
(rx263_rep, rx263_pos, $I10, $P10) = rx263_cur."!mark_fail"(0)
lt rx263_pos, -1, rx263_done
@@ -4286,14 +4633,16 @@
jump $I10
rx263_done:
rx263_cur."!cursor_fail"()
- rx263_cur."!cursor_debug"("FAIL ", "quote_escape:sym<0>")
+ if_null rx263_debug, debug_239
+ rx263_cur."!cursor_debug"("FAIL", "quote_escape:sym<0>")
+ debug_239:
.return (rx263_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>" :subid("92_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<0>" :subid("92_1282323993.58127") :method
.annotate 'line', 33
new $P265, "ResizablePMCArray"
push $P265, "\\0"
@@ -4302,13 +4651,13 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>" :subid("93_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<misc>" :subid("93_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
- .const 'Sub' $P288 = "97_1280467467.13603"
+ .const 'Sub' $P288 = "97_1282323993.58127"
capture_lex $P288
- .const 'Sub' $P281 = "96_1280467467.13603"
+ .const 'Sub' $P281 = "96_1282323993.58127"
capture_lex $P281
- .const 'Sub' $P276 = "95_1280467467.13603"
+ .const 'Sub' $P276 = "95_1282323993.58127"
capture_lex $P276
.local string rx269_tgt
.local int rx269_pos
@@ -4316,7 +4665,9 @@
.local int rx269_eos
.local int rx269_rep
.local pmc rx269_cur
+ .local pmc rx269_debug
(rx269_cur, rx269_pos, rx269_tgt, $I10) = self."!cursor_start"()
+ getattribute rx269_debug, rx269_cur, "$!debug"
.lex unicode:"$\x{a2}", rx269_cur
.local pmc match
.lex "$/", match
@@ -4328,7 +4679,9 @@
substr rx269_tgt, rx269_tgt, rx269_off
rx269_start:
eq $I10, 1, rx269_restart
- rx269_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
+ if_null rx269_debug, debug_240
+ rx269_cur."!cursor_debug"("START", "quote_escape:sym<misc>")
+ debug_240:
$I10 = self.'from'()
ne $I10, -1, rxscan272_done
goto rxscan272_scan
@@ -4346,15 +4699,15 @@
find_lex $P273, unicode:"$\x{a2}"
$P274 = $P273."MATCH"()
store_lex "$/", $P274
- .const 'Sub' $P276 = "95_1280467467.13603"
+ .const 'Sub' $P276 = "95_1282323993.58127"
capture_lex $P276
$P277 = $P276()
# rx literal "\\"
add $I11, rx269_pos, 1
gt $I11, rx269_eos, rx269_fail
sub $I11, rx269_pos, rx269_off
- substr $S10, rx269_tgt, $I11, 1
- ne $S10, "\\", rx269_fail
+ ord $I11, rx269_tgt, $I11
+ ne $I11, 92, rx269_fail
add rx269_pos, 1
alt278_0:
.annotate 'line', 101
@@ -4372,7 +4725,7 @@
.annotate 'line', 104
# rx subrule $P281 subtype=capture negate=
rx269_cur."!cursor_pos"(rx269_pos)
- .const 'Sub' $P281 = "96_1280467467.13603"
+ .const 'Sub' $P281 = "96_1282323993.58127"
capture_lex $P281
$P10 = rx269_cur.$P281()
unless $P10, rx269_fail
@@ -4406,7 +4759,7 @@
find_lex $P285, unicode:"$\x{a2}"
$P286 = $P285."MATCH"()
store_lex "$/", $P286
- .const 'Sub' $P288 = "97_1280467467.13603"
+ .const 'Sub' $P288 = "97_1282323993.58127"
capture_lex $P288
$P298 = $P288()
alt279_end:
@@ -4435,11 +4788,15 @@
.annotate 'line', 99
# rx pass
rx269_cur."!cursor_pass"(rx269_pos, "quote_escape:sym<misc>")
- rx269_cur."!cursor_debug"("PASS ", "quote_escape:sym<misc>", " at pos=", rx269_pos)
+ if_null rx269_debug, debug_247
+ rx269_cur."!cursor_debug"("PASS", "quote_escape:sym<misc>", " at pos=", rx269_pos)
+ debug_247:
.return (rx269_cur)
rx269_restart:
.annotate 'line', 33
- rx269_cur."!cursor_debug"("NEXT ", "quote_escape:sym<misc>")
+ if_null rx269_debug, debug_248
+ rx269_cur."!cursor_debug"("NEXT", "quote_escape:sym<misc>")
+ debug_248:
rx269_fail:
(rx269_rep, rx269_pos, $I10, $P10) = rx269_cur."!mark_fail"(0)
lt rx269_pos, -1, rx269_done
@@ -4447,14 +4804,16 @@
jump $I10
rx269_done:
rx269_cur."!cursor_fail"()
- rx269_cur."!cursor_debug"("FAIL ", "quote_escape:sym<misc>")
+ if_null rx269_debug, debug_249
+ rx269_cur."!cursor_debug"("FAIL", "quote_escape:sym<misc>")
+ debug_249:
.return (rx269_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>" :subid("94_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<misc>" :subid("94_1282323993.58127") :method
.annotate 'line', 33
new $P271, "ResizablePMCArray"
push $P271, ""
@@ -4463,14 +4822,14 @@
.namespace ["HLL";"Grammar"]
-.sub "_block275" :anon :subid("95_1280467467.13603") :outer("93_1280467467.13603")
+.sub "_block275" :anon :subid("95_1282323993.58127") :outer("93_1282323993.58127")
.annotate 'line', 100
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "_block280" :anon :subid("96_1280467467.13603") :method :outer("93_1280467467.13603")
+.sub "_block280" :anon :subid("96_1282323993.58127") :method :outer("93_1282323993.58127")
.annotate 'line', 104
.local string rx282_tgt
.local int rx282_pos
@@ -4478,7 +4837,9 @@
.local int rx282_eos
.local int rx282_rep
.local pmc rx282_cur
+ .local pmc rx282_debug
(rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+ getattribute rx282_debug, rx282_cur, "$!debug"
.lex unicode:"$\x{a2}", rx282_cur
.local pmc match
.lex "$/", match
@@ -4490,7 +4851,9 @@
substr rx282_tgt, rx282_tgt, rx282_off
rx282_start:
eq $I10, 1, rx282_restart
- rx282_cur."!cursor_debug"("START ", "")
+ if_null rx282_debug, debug_241
+ rx282_cur."!cursor_debug"("START", "")
+ debug_241:
$I10 = self.'from'()
ne $I10, -1, rxscan283_done
goto rxscan283_scan
@@ -4511,10 +4874,14 @@
inc rx282_pos
# rx pass
rx282_cur."!cursor_pass"(rx282_pos, "")
- rx282_cur."!cursor_debug"("PASS ", "", " at pos=", rx282_pos)
+ if_null rx282_debug, debug_242
+ rx282_cur."!cursor_debug"("PASS", "", " at pos=", rx282_pos)
+ debug_242:
.return (rx282_cur)
rx282_restart:
- rx282_cur."!cursor_debug"("NEXT ", "")
+ if_null rx282_debug, debug_243
+ rx282_cur."!cursor_debug"("NEXT", "")
+ debug_243:
rx282_fail:
(rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
lt rx282_pos, -1, rx282_done
@@ -4522,27 +4889,29 @@
jump $I10
rx282_done:
rx282_cur."!cursor_fail"()
- rx282_cur."!cursor_debug"("FAIL ", "")
+ if_null rx282_debug, debug_244
+ rx282_cur."!cursor_debug"("FAIL", "")
+ debug_244:
.return (rx282_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "_block287" :anon :subid("97_1280467467.13603") :outer("93_1280467467.13603")
+.sub "_block287" :anon :subid("97_1282323993.58127") :outer("93_1282323993.58127")
.annotate 'line', 105
find_lex $P289, "$/"
$P290 = $P289."CURSOR"()
new $P291, "String"
assign $P291, "Unrecognized backslash sequence: '\\"
find_lex $P292, "$/"
- unless_null $P292, vivify_108
+ unless_null $P292, vivify_245
$P292 = root_new ['parrot';'Hash']
- vivify_108:
+ vivify_245:
set $P293, $P292["x"]
- unless_null $P293, vivify_109
+ unless_null $P293, vivify_246
new $P293, "Undef"
- vivify_109:
+ vivify_246:
$S294 = $P293."Str"()
concat $P295, $P291, $S294
concat $P296, $P295, "'"
@@ -4552,9 +4921,9 @@
.namespace ["HLL";"Grammar"]
-.sub "charname" :subid("98_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charname" :subid("98_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
- .const 'Sub' $P310 = "100_1280467467.13603"
+ .const 'Sub' $P310 = "100_1282323993.58127"
capture_lex $P310
.local string rx301_tgt
.local int rx301_pos
@@ -4562,7 +4931,9 @@
.local int rx301_eos
.local int rx301_rep
.local pmc rx301_cur
+ .local pmc rx301_debug
(rx301_cur, rx301_pos, rx301_tgt, $I10) = self."!cursor_start"()
+ getattribute rx301_debug, rx301_cur, "$!debug"
.lex unicode:"$\x{a2}", rx301_cur
.local pmc match
.lex "$/", match
@@ -4574,7 +4945,9 @@
substr rx301_tgt, rx301_tgt, rx301_off
rx301_start:
eq $I10, 1, rx301_restart
- rx301_cur."!cursor_debug"("START ", "charname")
+ if_null rx301_debug, debug_250
+ rx301_cur."!cursor_debug"("START", "charname")
+ debug_250:
$I10 = self.'from'()
ne $I10, -1, rxscan305_done
goto rxscan305_scan
@@ -4634,7 +5007,7 @@
.annotate 'line', 114
# rx subrule "before" subtype=zerowidth negate=
rx301_cur."!cursor_pos"(rx301_pos)
- .const 'Sub' $P310 = "100_1280467467.13603"
+ .const 'Sub' $P310 = "100_1282323993.58127"
capture_lex $P310
$P10 = rx301_cur."before"($P310)
unless $P10, rx301_fail
@@ -4642,11 +5015,15 @@
.annotate 'line', 111
# rx pass
rx301_cur."!cursor_pass"(rx301_pos, "charname")
- rx301_cur."!cursor_debug"("PASS ", "charname", " at pos=", rx301_pos)
+ if_null rx301_debug, debug_255
+ rx301_cur."!cursor_debug"("PASS", "charname", " at pos=", rx301_pos)
+ debug_255:
.return (rx301_cur)
rx301_restart:
.annotate 'line', 33
- rx301_cur."!cursor_debug"("NEXT ", "charname")
+ if_null rx301_debug, debug_256
+ rx301_cur."!cursor_debug"("NEXT", "charname")
+ debug_256:
rx301_fail:
(rx301_rep, rx301_pos, $I10, $P10) = rx301_cur."!mark_fail"(0)
lt rx301_pos, -1, rx301_done
@@ -4654,14 +5031,16 @@
jump $I10
rx301_done:
rx301_cur."!cursor_fail"()
- rx301_cur."!cursor_debug"("FAIL ", "charname")
+ if_null rx301_debug, debug_257
+ rx301_cur."!cursor_debug"("FAIL", "charname")
+ debug_257:
.return (rx301_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname" :subid("99_1280467467.13603") :method
+.sub "!PREFIX__charname" :subid("99_1282323993.58127") :method
.annotate 'line', 33
$P303 = self."!PREFIX__!subrule"("integer", "")
new $P304, "ResizablePMCArray"
@@ -4723,7 +5102,7 @@
.namespace ["HLL";"Grammar"]
-.sub "_block309" :anon :subid("100_1280467467.13603") :method :outer("98_1280467467.13603")
+.sub "_block309" :anon :subid("100_1282323993.58127") :method :outer("98_1282323993.58127")
.annotate 'line', 114
.local string rx311_tgt
.local int rx311_pos
@@ -4731,7 +5110,9 @@
.local int rx311_eos
.local int rx311_rep
.local pmc rx311_cur
+ .local pmc rx311_debug
(rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+ getattribute rx311_debug, rx311_cur, "$!debug"
.lex unicode:"$\x{a2}", rx311_cur
.local pmc match
.lex "$/", match
@@ -4743,7 +5124,9 @@
substr rx311_tgt, rx311_tgt, rx311_off
rx311_start:
eq $I10, 1, rx311_restart
- rx311_cur."!cursor_debug"("START ", "")
+ if_null rx311_debug, debug_251
+ rx311_cur."!cursor_debug"("START", "")
+ debug_251:
$I10 = self.'from'()
ne $I10, -1, rxscan312_done
goto rxscan312_scan
@@ -4769,10 +5152,14 @@
inc rx311_pos
# rx pass
rx311_cur."!cursor_pass"(rx311_pos, "")
- rx311_cur."!cursor_debug"("PASS ", "", " at pos=", rx311_pos)
+ if_null rx311_debug, debug_252
+ rx311_cur."!cursor_debug"("PASS", "", " at pos=", rx311_pos)
+ debug_252:
.return (rx311_cur)
rx311_restart:
- rx311_cur."!cursor_debug"("NEXT ", "")
+ if_null rx311_debug, debug_253
+ rx311_cur."!cursor_debug"("NEXT", "")
+ debug_253:
rx311_fail:
(rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
lt rx311_pos, -1, rx311_done
@@ -4780,14 +5167,16 @@
jump $I10
rx311_done:
rx311_cur."!cursor_fail"()
- rx311_cur."!cursor_debug"("FAIL ", "")
+ if_null rx311_debug, debug_254
+ rx311_cur."!cursor_debug"("FAIL", "")
+ debug_254:
.return (rx311_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "charnames" :subid("101_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charnames" :subid("101_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx314_tgt
.local int rx314_pos
@@ -4795,8 +5184,10 @@
.local int rx314_eos
.local int rx314_rep
.local pmc rx314_cur
+ .local pmc rx314_debug
(rx314_cur, rx314_pos, rx314_tgt, $I10) = self."!cursor_start"()
rx314_cur."!cursor_caparray"("charname")
+ getattribute rx314_debug, rx314_cur, "$!debug"
.lex unicode:"$\x{a2}", rx314_cur
.local pmc match
.lex "$/", match
@@ -4808,7 +5199,9 @@
substr rx314_tgt, rx314_tgt, rx314_off
rx314_start:
eq $I10, 1, rx314_restart
- rx314_cur."!cursor_debug"("START ", "charnames")
+ if_null rx314_debug, debug_258
+ rx314_cur."!cursor_debug"("START", "charnames")
+ debug_258:
$I10 = self.'from'()
ne $I10, -1, rxscan317_done
goto rxscan317_scan
@@ -4851,18 +5244,22 @@
add $I11, rx314_pos, 1
gt $I11, rx314_eos, rx314_fail
sub $I11, rx314_pos, rx314_off
- substr $S10, rx314_tgt, $I11, 1
- ne $S10, ",", rx314_fail
+ ord $I11, rx314_tgt, $I11
+ ne $I11, 44, rx314_fail
add rx314_pos, 1
goto rxquantr318_loop
rxquantr318_done:
# rx pass
rx314_cur."!cursor_pass"(rx314_pos, "charnames")
- rx314_cur."!cursor_debug"("PASS ", "charnames", " at pos=", rx314_pos)
+ if_null rx314_debug, debug_259
+ rx314_cur."!cursor_debug"("PASS", "charnames", " at pos=", rx314_pos)
+ debug_259:
.return (rx314_cur)
rx314_restart:
.annotate 'line', 33
- rx314_cur."!cursor_debug"("NEXT ", "charnames")
+ if_null rx314_debug, debug_260
+ rx314_cur."!cursor_debug"("NEXT", "charnames")
+ debug_260:
rx314_fail:
(rx314_rep, rx314_pos, $I10, $P10) = rx314_cur."!mark_fail"(0)
lt rx314_pos, -1, rx314_done
@@ -4870,14 +5267,16 @@
jump $I10
rx314_done:
rx314_cur."!cursor_fail"()
- rx314_cur."!cursor_debug"("FAIL ", "charnames")
+ if_null rx314_debug, debug_261
+ rx314_cur."!cursor_debug"("FAIL", "charnames")
+ debug_261:
.return (rx314_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames" :subid("102_1280467467.13603") :method
+.sub "!PREFIX__charnames" :subid("102_1282323993.58127") :method
.annotate 'line', 33
new $P316, "ResizablePMCArray"
push $P316, ""
@@ -4886,7 +5285,7 @@
.namespace ["HLL";"Grammar"]
-.sub "charspec" :subid("103_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charspec" :subid("103_1282323993.58127") :method :outer("11_1282323993.58127")
.annotate 'line', 33
.local string rx320_tgt
.local int rx320_pos
@@ -4894,7 +5293,9 @@
.local int rx320_eos
.local int rx320_rep
.local pmc rx320_cur
+ .local pmc rx320_debug
(rx320_cur, rx320_pos, rx320_tgt, $I10) = self."!cursor_start"()
+ getattribute rx320_debug, rx320_cur, "$!debug"
.lex unicode:"$\x{a2}", rx320_cur
.local pmc match
.lex "$/", match
@@ -4906,7 +5307,9 @@
substr rx320_tgt, rx320_tgt, rx320_off
rx320_start:
eq $I10, 1, rx320_restart
- rx320_cur."!cursor_debug"("START ", "charspec")
+ if_null rx320_debug, debug_262
+ rx320_cur."!cursor_debug"("START", "charspec")
+ debug_262:
$I10 = self.'from'()
ne $I10, -1, rxscan325_done
goto rxscan325_scan
@@ -4928,8 +5331,8 @@
add $I11, rx320_pos, 1
gt $I11, rx320_eos, rx320_fail
sub $I11, rx320_pos, rx320_off
- substr $S10, rx320_tgt, $I11, 1
- ne $S10, "[", rx320_fail
+ ord $I11, rx320_tgt, $I11
+ ne $I11, 91, rx320_fail
add rx320_pos, 1
# rx subrule "charnames" subtype=capture negate=
rx320_cur."!cursor_pos"(rx320_pos)
@@ -4942,8 +5345,8 @@
add $I11, rx320_pos, 1
gt $I11, rx320_eos, rx320_fail
sub $I11, rx320_pos, rx320_off
- substr $S10, rx320_tgt, $I11, 1
- ne $S10, "]", rx320_fail
+ ord $I11, rx320_tgt, $I11
+ ne $I11, 93, rx320_fail
add rx320_pos, 1
goto alt326_end
alt326_1:
@@ -4964,8 +5367,8 @@
add $I11, rx320_pos, 1
gt $I11, rx320_eos, rx320_fail
sub $I11, rx320_pos, rx320_off
- substr $S10, rx320_tgt, $I11, 1
- ne $S10, "_", rx320_fail
+ ord $I11, rx320_tgt, $I11
+ ne $I11, 95, rx320_fail
add rx320_pos, 1
# rx charclass_q d r 1..-1
sub $I10, rx320_pos, rx320_off
@@ -5003,11 +5406,15 @@
.annotate 'line', 117
# rx pass
rx320_cur."!cursor_pass"(rx320_pos, "charspec")
- rx320_cur."!cursor_debug"("PASS ", "charspec", " at pos=", rx320_pos)
+ if_null rx320_debug, debug_263
+ rx320_cur."!cursor_debug"("PASS", "charspec", " at pos=", rx320_pos)
+ debug_263:
.return (rx320_cur)
rx320_restart:
.annotate 'line', 33
- rx320_cur."!cursor_debug"("NEXT ", "charspec")
+ if_null rx320_debug, debug_264
+ rx320_cur."!cursor_debug"("NEXT", "charspec")
+ debug_264:
rx320_fail:
(rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0)
lt rx320_pos, -1, rx320_done
@@ -5015,14 +5422,16 @@
jump $I10
rx320_done:
rx320_cur."!cursor_fail"()
- rx320_cur."!cursor_debug"("FAIL ", "charspec")
+ if_null rx320_debug, debug_265
+ rx320_cur."!cursor_debug"("FAIL", "charspec")
+ debug_265:
.return (rx320_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec" :subid("104_1280467467.13603") :method
+.sub "!PREFIX__charspec" :subid("104_1282323993.58127") :method
.annotate 'line', 33
$P322 = self."!PREFIX__!subrule"("panic", "")
$P323 = self."!PREFIX__!subrule"("charnames", "[")
@@ -5063,18 +5472,18 @@
.namespace ["HLL";"Grammar"]
-.sub "_block328" :load :anon :subid("105_1280467467.13603")
+.sub "_block328" :load :anon :subid("105_1282323993.58127")
.annotate 'line', 5
- .const 'Sub' $P330 = "11_1280467467.13603"
+ .const 'Sub' $P330 = "11_1282323993.58127"
$P331 = $P330()
.return ($P331)
.end
.namespace []
-.sub "_block333" :load :anon :subid("106_1280467467.13603")
+.sub "_block333" :load :anon :subid("106_1282323993.58127")
.annotate 'line', 1
- .const 'Sub' $P335 = "10_1280467467.13603"
+ .const 'Sub' $P335 = "10_1282323993.58127"
$P336 = $P335()
.return ($P336)
.end
@@ -5082,7 +5491,7 @@
### .include 'gen/hllgrammar-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1280467468.44761")
+.sub "_block11" :anon :subid("10_1282323994.69928")
.annotate 'line', 0
get_hll_global $P14, ["HLL";"Actions"], "_block13"
capture_lex $P14
@@ -5099,15 +5508,15 @@
$P627 = $P14()
.annotate 'line', 1
.return ($P627)
- .const 'Sub' $P629 = "55_1280467468.44761"
+ .const 'Sub' $P629 = "55_1282323994.69928"
.return ($P629)
.end
.namespace []
-.sub "" :load :init :subid("post56") :outer("10_1280467468.44761")
+.sub "" :load :init :subid("post56") :outer("10_1282323994.69928")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1280467468.44761"
+ .const 'Sub' $P12 = "10_1282323994.69928"
.local pmc block
set block, $P12
$P632 = get_root_global ["parrot"], "P6metaclass"
@@ -5116,75 +5525,75 @@
.namespace ["HLL";"Actions"]
-.sub "_block13" :subid("11_1280467468.44761") :outer("10_1280467468.44761")
+.sub "_block13" :subid("11_1282323994.69928") :outer("10_1282323994.69928")
.annotate 'line', 3
- .const 'Sub' $P605 = "53_1280467468.44761"
+ .const 'Sub' $P605 = "53_1282323994.69928"
capture_lex $P605
- .const 'Sub' $P580 = "51_1280467468.44761"
+ .const 'Sub' $P580 = "51_1282323994.69928"
capture_lex $P580
- .const 'Sub' $P550 = "50_1280467468.44761"
+ .const 'Sub' $P550 = "50_1282323994.69928"
capture_lex $P550
- .const 'Sub' $P531 = "49_1280467468.44761"
+ .const 'Sub' $P531 = "49_1282323994.69928"
capture_lex $P531
- .const 'Sub' $P524 = "48_1280467468.44761"
+ .const 'Sub' $P524 = "48_1282323994.69928"
capture_lex $P524
- .const 'Sub' $P514 = "47_1280467468.44761"
+ .const 'Sub' $P514 = "47_1282323994.69928"
capture_lex $P514
- .const 'Sub' $P497 = "46_1280467468.44761"
+ .const 'Sub' $P497 = "46_1282323994.69928"
capture_lex $P497
- .const 'Sub' $P480 = "45_1280467468.44761"
+ .const 'Sub' $P480 = "45_1282323994.69928"
capture_lex $P480
- .const 'Sub' $P473 = "44_1280467468.44761"
+ .const 'Sub' $P473 = "44_1282323994.69928"
capture_lex $P473
- .const 'Sub' $P466 = "43_1280467468.44761"
+ .const 'Sub' $P466 = "43_1282323994.69928"
capture_lex $P466
- .const 'Sub' $P459 = "42_1280467468.44761"
+ .const 'Sub' $P459 = "42_1282323994.69928"
capture_lex $P459
- .const 'Sub' $P452 = "41_1280467468.44761"
+ .const 'Sub' $P452 = "41_1282323994.69928"
capture_lex $P452
- .const 'Sub' $P445 = "40_1280467468.44761"
+ .const 'Sub' $P445 = "40_1282323994.69928"
capture_lex $P445
- .const 'Sub' $P438 = "39_1280467468.44761"
+ .const 'Sub' $P438 = "39_1282323994.69928"
capture_lex $P438
- .const 'Sub' $P428 = "38_1280467468.44761"
+ .const 'Sub' $P428 = "38_1282323994.69928"
capture_lex $P428
- .const 'Sub' $P421 = "37_1280467468.44761"
+ .const 'Sub' $P421 = "37_1282323994.69928"
capture_lex $P421
- .const 'Sub' $P405 = "36_1280467468.44761"
+ .const 'Sub' $P405 = "36_1282323994.69928"
capture_lex $P405
- .const 'Sub' $P330 = "34_1280467468.44761"
+ .const 'Sub' $P330 = "34_1282323994.69928"
capture_lex $P330
- .const 'Sub' $P267 = "31_1280467468.44761"
+ .const 'Sub' $P267 = "31_1282323994.69928"
capture_lex $P267
- .const 'Sub' $P258 = "30_1280467468.44761"
+ .const 'Sub' $P258 = "30_1282323994.69928"
capture_lex $P258
- .const 'Sub' $P249 = "29_1280467468.44761"
+ .const 'Sub' $P249 = "29_1282323994.69928"
capture_lex $P249
- .const 'Sub' $P240 = "28_1280467468.44761"
+ .const 'Sub' $P240 = "28_1282323994.69928"
capture_lex $P240
- .const 'Sub' $P231 = "27_1280467468.44761"
+ .const 'Sub' $P231 = "27_1282323994.69928"
capture_lex $P231
- .const 'Sub' $P222 = "26_1280467468.44761"
+ .const 'Sub' $P222 = "26_1282323994.69928"
capture_lex $P222
- .const 'Sub' $P212 = "25_1280467468.44761"
+ .const 'Sub' $P212 = "25_1282323994.69928"
capture_lex $P212
- .const 'Sub' $P202 = "24_1280467468.44761"
+ .const 'Sub' $P202 = "24_1282323994.69928"
capture_lex $P202
- .const 'Sub' $P194 = "23_1280467468.44761"
+ .const 'Sub' $P194 = "23_1282323994.69928"
capture_lex $P194
- .const 'Sub' $P184 = "22_1280467468.44761"
+ .const 'Sub' $P184 = "22_1282323994.69928"
capture_lex $P184
- .const 'Sub' $P174 = "21_1280467468.44761"
+ .const 'Sub' $P174 = "21_1282323994.69928"
capture_lex $P174
- .const 'Sub' $P73 = "18_1280467468.44761"
+ .const 'Sub' $P73 = "18_1282323994.69928"
capture_lex $P73
- .const 'Sub' $P35 = "15_1280467468.44761"
+ .const 'Sub' $P35 = "15_1282323994.69928"
capture_lex $P35
- .const 'Sub' $P28 = "14_1280467468.44761"
+ .const 'Sub' $P28 = "14_1282323994.69928"
capture_lex $P28
- .const 'Sub' $P22 = "13_1280467468.44761"
+ .const 'Sub' $P22 = "13_1282323994.69928"
capture_lex $P22
- .const 'Sub' $P15 = "12_1280467468.44761"
+ .const 'Sub' $P15 = "12_1282323994.69928"
capture_lex $P15
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
@@ -5193,18 +5602,18 @@
$P0."ctxsave"()
ctxsave_done:
.annotate 'line', 225
- .const 'Sub' $P605 = "53_1280467468.44761"
+ .const 'Sub' $P605 = "53_1282323994.69928"
newclosure $P622, $P605
.annotate 'line', 3
.return ($P622)
- .const 'Sub' $P624 = "54_1280467468.44761"
+ .const 'Sub' $P624 = "54_1282323994.69928"
.return ($P624)
.end
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "string_to_int" :subid("12_1280467468.44761") :outer("11_1280467468.44761")
+.sub "string_to_int" :subid("12_1282323994.69928") :outer("11_1282323994.69928")
.param pmc param_18
.param pmc param_19
.annotate 'line', 3
@@ -5258,7 +5667,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "ints_to_string" :subid("13_1280467468.44761") :outer("11_1280467468.44761")
+.sub "ints_to_string" :subid("13_1282323994.69928") :outer("11_1282323994.69928")
.param pmc param_25
.annotate 'line', 37
new $P24, 'ExceptionHandler'
@@ -5300,7 +5709,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "CTXSAVE" :subid("14_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "CTXSAVE" :subid("14_1282323994.69928") :method :outer("11_1282323994.69928")
.annotate 'line', 62
new $P30, 'ExceptionHandler'
set_addr $P30, control_29
@@ -5330,10 +5739,10 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "SET_BLOCK_OUTER_CTX" :subid("15_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "SET_BLOCK_OUTER_CTX" :subid("15_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_38
.annotate 'line', 76
- .const 'Sub' $P48 = "16_1280467468.44761"
+ .const 'Sub' $P48 = "16_1282323994.69928"
capture_lex $P48
new $P37, 'ExceptionHandler'
set_addr $P37, control_36
@@ -5368,7 +5777,7 @@
set $P43, $I46
goto if_44_end
if_44:
- .const 'Sub' $P48 = "16_1280467468.44761"
+ .const 'Sub' $P48 = "16_1282323994.69928"
capture_lex $P48
$P71 = $P48()
set $P43, $P71
@@ -5385,9 +5794,9 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "_block47" :anon :subid("16_1280467468.44761") :outer("15_1280467468.44761")
+.sub "_block47" :anon :subid("16_1282323994.69928") :outer("15_1282323994.69928")
.annotate 'line', 78
- .const 'Sub' $P62 = "17_1280467468.44761"
+ .const 'Sub' $P62 = "17_1282323994.69928"
capture_lex $P62
.annotate 'line', 79
$P49 = root_new ['parrot';'ResizablePMCArray']
@@ -5417,7 +5826,7 @@
unless $P56, loop68_done
shift $P60, $P56
loop68_redo:
- .const 'Sub' $P62 = "17_1280467468.44761"
+ .const 'Sub' $P62 = "17_1282323994.69928"
capture_lex $P62
$P62($P60)
loop68_next:
@@ -5437,7 +5846,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block61" :anon :subid("17_1280467468.44761") :outer("16_1280467468.44761")
+.sub "_block61" :anon :subid("17_1282323994.69928") :outer("16_1282323994.69928")
.param pmc param_63
.annotate 'line', 82
.lex "$_", param_63
@@ -5453,14 +5862,14 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "EXPR" :subid("18_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "EXPR" :subid("18_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_76
.param pmc param_77 :optional
.param int has_param_77 :opt_flag
.annotate 'line', 89
- .const 'Sub' $P156 = "20_1280467468.44761"
+ .const 'Sub' $P156 = "20_1282323994.69928"
capture_lex $P156
- .const 'Sub' $P123 = "19_1280467468.44761"
+ .const 'Sub' $P123 = "19_1282323994.69928"
capture_lex $P123
new $P75, 'ExceptionHandler'
set_addr $P75, control_74
@@ -5595,7 +6004,7 @@
find_lex $P120, "$past"
$P121 = $P120."name"()
if $P121, unless_119_end
- .const 'Sub' $P123 = "19_1280467468.44761"
+ .const 'Sub' $P123 = "19_1282323994.69928"
capture_lex $P123
$P123()
unless_119_end:
@@ -5619,7 +6028,7 @@
unless $P150, loop167_done
shift $P154, $P150
loop167_redo:
- .const 'Sub' $P156 = "20_1280467468.44761"
+ .const 'Sub' $P156 = "20_1282323994.69928"
capture_lex $P156
$P156($P154)
loop167_next:
@@ -5664,7 +6073,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block122" :anon :subid("19_1280467468.44761") :outer("18_1280467468.44761")
+.sub "_block122" :anon :subid("19_1282323994.69928") :outer("18_1282323994.69928")
.annotate 'line', 98
new $P124, "Undef"
.lex "$name", $P124
@@ -5714,7 +6123,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block155" :anon :subid("20_1280467468.44761") :outer("18_1280467468.44761")
+.sub "_block155" :anon :subid("20_1282323994.69928") :outer("18_1282323994.69928")
.param pmc param_157
.annotate 'line', 109
.lex "$_", param_157
@@ -5738,7 +6147,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<circumfix>" :subid("21_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "term:sym<circumfix>" :subid("21_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_177
.annotate 'line', 114
new $P176, 'ExceptionHandler'
@@ -5769,7 +6178,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "termish" :subid("22_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "termish" :subid("22_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_187
.annotate 'line', 116
new $P186, 'ExceptionHandler'
@@ -5800,7 +6209,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "nullterm" :subid("23_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "nullterm" :subid("23_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_197
.annotate 'line', 117
new $P196, 'ExceptionHandler'
@@ -5823,7 +6232,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "nullterm_alt" :subid("24_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "nullterm_alt" :subid("24_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_205
.annotate 'line', 118
new $P204, 'ExceptionHandler'
@@ -5854,7 +6263,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "integer" :subid("25_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "integer" :subid("25_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_215
.annotate 'line', 120
new $P214, 'ExceptionHandler'
@@ -5885,7 +6294,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "dec_number" :subid("26_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "dec_number" :subid("26_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_225
.annotate 'line', 122
new $P224, 'ExceptionHandler'
@@ -5909,7 +6318,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "decint" :subid("27_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "decint" :subid("27_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_234
.annotate 'line', 124
new $P233, 'ExceptionHandler'
@@ -5933,7 +6342,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "hexint" :subid("28_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "hexint" :subid("28_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_243
.annotate 'line', 125
new $P242, 'ExceptionHandler'
@@ -5957,7 +6366,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "octint" :subid("29_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "octint" :subid("29_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_252
.annotate 'line', 126
new $P251, 'ExceptionHandler'
@@ -5981,7 +6390,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "binint" :subid("30_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "binint" :subid("30_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_261
.annotate 'line', 127
new $P260, 'ExceptionHandler'
@@ -6005,10 +6414,10 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_EXPR" :subid("31_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_EXPR" :subid("31_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_270
.annotate 'line', 129
- .const 'Sub' $P286 = "32_1280467468.44761"
+ .const 'Sub' $P286 = "32_1282323994.69928"
capture_lex $P286
new $P269, 'ExceptionHandler'
set_addr $P269, control_268
@@ -6040,7 +6449,7 @@
$P282 = $P280."ACCEPTS"($P281)
if $P282, if_279
.annotate 'line', 135
- .const 'Sub' $P286 = "32_1280467468.44761"
+ .const 'Sub' $P286 = "32_1282323994.69928"
capture_lex $P286
$P286()
goto if_279_end
@@ -6080,9 +6489,9 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "_block285" :anon :subid("32_1280467468.44761") :outer("31_1280467468.44761")
+.sub "_block285" :anon :subid("32_1282323994.69928") :outer("31_1282323994.69928")
.annotate 'line', 135
- .const 'Sub' $P305 = "33_1280467468.44761"
+ .const 'Sub' $P305 = "33_1282323994.69928"
capture_lex $P305
.annotate 'line', 136
$P287 = root_new ['parrot';'ResizablePMCArray']
@@ -6133,7 +6542,7 @@
unless $P300, loop310_done
shift $P303, $P300
loop310_redo:
- .const 'Sub' $P305 = "33_1280467468.44761"
+ .const 'Sub' $P305 = "33_1282323994.69928"
capture_lex $P305
$P305($P303)
loop310_next:
@@ -6156,7 +6565,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block304" :anon :subid("33_1280467468.44761") :outer("32_1280467468.44761")
+.sub "_block304" :anon :subid("33_1282323994.69928") :outer("32_1282323994.69928")
.param pmc param_306
.annotate 'line', 139
.lex "$_", param_306
@@ -6169,10 +6578,10 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_delimited" :subid("34_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_delimited" :subid("34_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_333
.annotate 'line', 152
- .const 'Sub' $P345 = "35_1280467468.44761"
+ .const 'Sub' $P345 = "35_1282323994.69928"
capture_lex $P345
new $P332, 'ExceptionHandler'
set_addr $P332, control_331
@@ -6215,7 +6624,7 @@
unless $P339, loop377_done
shift $P343, $P339
loop377_redo:
- .const 'Sub' $P345 = "35_1280467468.44761"
+ .const 'Sub' $P345 = "35_1282323994.69928"
capture_lex $P345
$P345($P343)
loop377_next:
@@ -6293,7 +6702,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block344" :anon :subid("35_1280467468.44761") :outer("34_1280467468.44761")
+.sub "_block344" :anon :subid("35_1282323994.69928") :outer("34_1282323994.69928")
.param pmc param_347
.annotate 'line', 156
new $P346, "Undef"
@@ -6363,7 +6772,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_atom" :subid("36_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_atom" :subid("36_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_408
.annotate 'line', 177
new $P407, 'ExceptionHandler'
@@ -6413,7 +6822,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<backslash>" :subid("37_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<backslash>" :subid("37_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_424
.annotate 'line', 181
new $P423, 'ExceptionHandler'
@@ -6435,7 +6844,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<stopper>" :subid("38_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<stopper>" :subid("38_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_431
.annotate 'line', 182
new $P430, 'ExceptionHandler'
@@ -6466,7 +6875,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<bs>" :subid("39_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<bs>" :subid("39_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_441
.annotate 'line', 184
new $P440, 'ExceptionHandler'
@@ -6488,7 +6897,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<nl>" :subid("40_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<nl>" :subid("40_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_448
.annotate 'line', 185
new $P447, 'ExceptionHandler'
@@ -6510,7 +6919,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<cr>" :subid("41_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<cr>" :subid("41_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_455
.annotate 'line', 186
new $P454, 'ExceptionHandler'
@@ -6532,7 +6941,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<tab>" :subid("42_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<tab>" :subid("42_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_462
.annotate 'line', 187
new $P461, 'ExceptionHandler'
@@ -6554,7 +6963,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<ff>" :subid("43_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<ff>" :subid("43_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_469
.annotate 'line', 188
new $P468, 'ExceptionHandler'
@@ -6576,7 +6985,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<esc>" :subid("44_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<esc>" :subid("44_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_476
.annotate 'line', 189
new $P475, 'ExceptionHandler'
@@ -6598,7 +7007,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<hex>" :subid("45_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<hex>" :subid("45_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_483
.annotate 'line', 191
new $P482, 'ExceptionHandler'
@@ -6657,7 +7066,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<oct>" :subid("46_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<oct>" :subid("46_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_500
.annotate 'line', 195
new $P499, 'ExceptionHandler'
@@ -6716,7 +7125,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<chr>" :subid("47_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<chr>" :subid("47_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_517
.annotate 'line', 199
new $P516, 'ExceptionHandler'
@@ -6749,7 +7158,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<0>" :subid("48_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<0>" :subid("48_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_527
.annotate 'line', 203
new $P526, 'ExceptionHandler'
@@ -6773,7 +7182,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<misc>" :subid("49_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<misc>" :subid("49_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_534
.annotate 'line', 207
new $P533, 'ExceptionHandler'
@@ -6832,7 +7241,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "charname" :subid("50_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charname" :subid("50_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_553
.annotate 'line', 211
new $P552, 'ExceptionHandler'
@@ -6906,10 +7315,10 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "charnames" :subid("51_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charnames" :subid("51_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_583
.annotate 'line', 219
- .const 'Sub' $P592 = "52_1280467468.44761"
+ .const 'Sub' $P592 = "52_1282323994.69928"
capture_lex $P592
new $P582, 'ExceptionHandler'
set_addr $P582, control_581
@@ -6943,7 +7352,7 @@
unless $P586, loop598_done
shift $P590, $P586
loop598_redo:
- .const 'Sub' $P592 = "52_1280467468.44761"
+ .const 'Sub' $P592 = "52_1282323994.69928"
capture_lex $P592
$P592($P590)
loop598_next:
@@ -6972,7 +7381,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block591" :anon :subid("52_1280467468.44761") :outer("51_1280467468.44761")
+.sub "_block591" :anon :subid("52_1282323994.69928") :outer("51_1282323994.69928")
.param pmc param_593
.annotate 'line', 221
.lex "$_", param_593
@@ -6987,7 +7396,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "charspec" :subid("53_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charspec" :subid("53_1282323994.69928") :method :outer("11_1282323994.69928")
.param pmc param_608
.annotate 'line', 225
new $P607, 'ExceptionHandler'
@@ -7037,18 +7446,18 @@
.namespace ["HLL";"Actions"]
-.sub "_block623" :load :anon :subid("54_1280467468.44761")
+.sub "_block623" :load :anon :subid("54_1282323994.69928")
.annotate 'line', 3
- .const 'Sub' $P625 = "11_1280467468.44761"
+ .const 'Sub' $P625 = "11_1282323994.69928"
$P626 = $P625()
.return ($P626)
.end
.namespace []
-.sub "_block628" :load :anon :subid("55_1280467468.44761")
+.sub "_block628" :load :anon :subid("55_1282323994.69928")
.annotate 'line', 1
- .const 'Sub' $P630 = "10_1280467468.44761"
+ .const 'Sub' $P630 = "10_1282323994.69928"
$P631 = $P630()
.return ($P631)
.end
@@ -7056,7 +7465,7 @@
### .include 'gen/hllcompiler.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1280467469.30058")
+.sub "_block11" :anon :subid("10_1282323995.38516")
.annotate 'line', 0
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
capture_lex $P14
@@ -7073,15 +7482,15 @@
$P497 = $P14()
.annotate 'line', 1
.return ($P497)
- .const 'Sub' $P499 = "36_1280467469.30058"
+ .const 'Sub' $P499 = "36_1282323995.38516"
.return ($P499)
.end
.namespace []
-.sub "" :load :init :subid("post37") :outer("10_1280467469.30058")
+.sub "" :load :init :subid("post37") :outer("10_1282323995.38516")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1280467469.30058"
+ .const 'Sub' $P12 = "10_1282323995.38516"
.local pmc block
set block, $P12
.annotate 'line', 2
@@ -7095,36 +7504,36 @@
.namespace ["HLL";"Compiler"]
-.sub "_block13" :subid("11_1280467469.30058") :outer("10_1280467469.30058")
+.sub "_block13" :subid("11_1282323995.38516") :outer("10_1282323995.38516")
.annotate 'line', 6
- .const 'Sub' $P489 = "35_1280467469.30058"
+ .const 'Sub' $P489 = "35_1282323995.38516"
capture_lex $P489
- .const 'Sub' $P447 = "33_1280467469.30058"
+ .const 'Sub' $P447 = "33_1282323995.38516"
capture_lex $P447
- .const 'Sub' $P298 = "26_1280467469.30058"
+ .const 'Sub' $P298 = "26_1282323995.38516"
capture_lex $P298
- .const 'Sub' $P283 = "25_1280467469.30058"
+ .const 'Sub' $P283 = "25_1282323995.38516"
capture_lex $P283
- .const 'Sub' $P188 = "20_1280467469.30058"
+ .const 'Sub' $P188 = "20_1282323995.38516"
capture_lex $P188
- .const 'Sub' $P153 = "18_1280467469.30058"
+ .const 'Sub' $P153 = "18_1282323995.38516"
capture_lex $P153
- .const 'Sub' $P138 = "17_1280467469.30058"
+ .const 'Sub' $P138 = "17_1282323995.38516"
capture_lex $P138
- .const 'Sub' $P122 = "16_1280467469.30058"
+ .const 'Sub' $P122 = "16_1282323995.38516"
capture_lex $P122
- .const 'Sub' $P33 = "13_1280467469.30058"
+ .const 'Sub' $P33 = "13_1282323995.38516"
capture_lex $P33
- .const 'Sub' $P15 = "12_1280467469.30058"
+ .const 'Sub' $P15 = "12_1282323995.38516"
capture_lex $P15
.annotate 'line', 14
- .const 'Sub' $P15 = "12_1280467469.30058"
+ .const 'Sub' $P15 = "12_1282323995.38516"
newclosure $P31, $P15
.lex "value_type", $P31
.annotate 'line', 10
find_lex $P32, "value_type"
.annotate 'line', 165
- .const 'Sub' $P489 = "35_1280467469.30058"
+ .const 'Sub' $P489 = "35_1282323995.38516"
newclosure $P495, $P489
.annotate 'line', 6
.return ($P495)
@@ -7132,7 +7541,7 @@
.namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post38") :outer("11_1280467469.30058")
+.sub "" :load :init :subid("post38") :outer("11_1282323995.38516")
.annotate 'line', 6
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
.local pmc block
@@ -7145,7 +7554,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "value_type" :subid("12_1280467469.30058") :outer("11_1280467469.30058")
+.sub "value_type" :subid("12_1282323995.38516") :outer("11_1282323995.38516")
.param pmc param_18
.annotate 'line', 14
new $P17, 'ExceptionHandler'
@@ -7190,15 +7599,15 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "get_exports" :subid("13_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "get_exports" :subid("13_1282323995.38516") :method :outer("11_1282323995.38516")
.param pmc param_36
.param pmc param_39 :slurpy
.param pmc param_37 :optional :named("tagset")
.param int has_param_37 :opt_flag
.annotate 'line', 20
- .const 'Sub' $P105 = "15_1280467469.30058"
+ .const 'Sub' $P105 = "15_1282323995.38516"
capture_lex $P105
- .const 'Sub' $P84 = "14_1280467469.30058"
+ .const 'Sub' $P84 = "14_1282323995.38516"
capture_lex $P84
new $P35, 'ExceptionHandler'
set_addr $P35, control_34
@@ -7304,7 +7713,7 @@
unless $P100, loop117_done
shift $P103, $P100
loop117_redo:
- .const 'Sub' $P105 = "15_1280467469.30058"
+ .const 'Sub' $P105 = "15_1282323995.38516"
capture_lex $P105
$P105($P103)
loop117_next:
@@ -7334,7 +7743,7 @@
unless $P79, loop97_done
shift $P82, $P79
loop97_redo:
- .const 'Sub' $P84 = "14_1280467469.30058"
+ .const 'Sub' $P84 = "14_1282323995.38516"
capture_lex $P84
$P84($P82)
loop97_next:
@@ -7362,7 +7771,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block104" :anon :subid("15_1280467469.30058") :outer("13_1280467469.30058")
+.sub "_block104" :anon :subid("15_1282323995.38516") :outer("13_1282323995.38516")
.param pmc param_107
.annotate 'line', 40
new $P106, "Undef"
@@ -7394,7 +7803,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block83" :anon :subid("14_1280467469.30058") :outer("13_1280467469.30058")
+.sub "_block83" :anon :subid("14_1282323995.38516") :outer("13_1282323995.38516")
.param pmc param_86
.annotate 'line', 34
new $P85, "Undef"
@@ -7434,7 +7843,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "get_module" :subid("16_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "get_module" :subid("16_1282323995.38516") :method :outer("11_1282323995.38516")
.param pmc param_125
.annotate 'line', 47
new $P124, 'ExceptionHandler'
@@ -7475,7 +7884,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "language" :subid("17_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "language" :subid("17_1282323995.38516") :method :outer("11_1282323995.38516")
.param pmc param_141 :optional
.param int has_param_141 :opt_flag
.annotate 'line', 53
@@ -7520,10 +7929,10 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "load_module" :subid("18_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "load_module" :subid("18_1282323995.38516") :method :outer("11_1282323995.38516")
.param pmc param_156
.annotate 'line', 61
- .const 'Sub' $P166 = "19_1280467469.30058"
+ .const 'Sub' $P166 = "19_1282323995.38516"
capture_lex $P166
new $P155, 'ExceptionHandler'
set_addr $P155, control_154
@@ -7550,7 +7959,7 @@
assign $P164, 0
store_lex "$loaded", $P164
.annotate 'line', 64
- .const 'Sub' $P166 = "19_1280467469.30058"
+ .const 'Sub' $P166 = "19_1282323995.38516"
capture_lex $P166
$P166()
.annotate 'line', 65
@@ -7580,7 +7989,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block165" :anon :subid("19_1280467469.30058") :outer("18_1280467469.30058")
+.sub "_block165" :anon :subid("19_1282323995.38516") :outer("18_1282323995.38516")
.annotate 'line', 64
new $P173, 'ExceptionHandler'
set_addr $P173, control_172
@@ -7614,11 +8023,11 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "import" :subid("20_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "import" :subid("20_1282323995.38516") :method :outer("11_1282323995.38516")
.param pmc param_191
.param pmc param_192
.annotate 'line', 69
- .const 'Sub' $P198 = "21_1280467469.30058"
+ .const 'Sub' $P198 = "21_1282323995.38516"
capture_lex $P198
new $P190, 'ExceptionHandler'
set_addr $P190, control_189
@@ -7640,7 +8049,7 @@
unless $P193, loop279_done
shift $P196, $P193
loop279_redo:
- .const 'Sub' $P198 = "21_1280467469.30058"
+ .const 'Sub' $P198 = "21_1282323995.38516"
capture_lex $P198
$P198($P196)
loop279_next:
@@ -7666,14 +8075,14 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block197" :anon :subid("21_1280467469.30058") :outer("20_1280467469.30058")
+.sub "_block197" :anon :subid("21_1282323995.38516") :outer("20_1282323995.38516")
.param pmc param_201
.annotate 'line', 70
- .const 'Sub' $P268 = "24_1280467469.30058"
+ .const 'Sub' $P268 = "24_1282323995.38516"
capture_lex $P268
- .const 'Sub' $P248 = "23_1280467469.30058"
+ .const 'Sub' $P248 = "23_1282323995.38516"
capture_lex $P248
- .const 'Sub' $P219 = "22_1280467469.30058"
+ .const 'Sub' $P219 = "22_1282323995.38516"
capture_lex $P219
.annotate 'line', 71
new $P199, "Undef"
@@ -7721,7 +8130,7 @@
unless $P263, loop276_done
shift $P266, $P263
loop276_redo:
- .const 'Sub' $P268 = "24_1280467469.30058"
+ .const 'Sub' $P268 = "24_1282323995.38516"
capture_lex $P268
$P268($P266)
loop276_next:
@@ -7753,7 +8162,7 @@
unless $P243, loop260_done
shift $P246, $P243
loop260_redo:
- .const 'Sub' $P248 = "23_1280467469.30058"
+ .const 'Sub' $P248 = "23_1282323995.38516"
capture_lex $P248
$P248($P246)
loop260_next:
@@ -7787,7 +8196,7 @@
unless $P214, loop232_done
shift $P217, $P214
loop232_redo:
- .const 'Sub' $P219 = "22_1280467469.30058"
+ .const 'Sub' $P219 = "22_1282323995.38516"
capture_lex $P219
$P219($P217)
loop232_next:
@@ -7810,7 +8219,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block267" :anon :subid("24_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block267" :anon :subid("24_1282323995.38516") :outer("21_1282323995.38516")
.param pmc param_269
.annotate 'line', 80
.lex "$_", param_269
@@ -7830,7 +8239,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block247" :anon :subid("23_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block247" :anon :subid("23_1282323995.38516") :outer("21_1282323995.38516")
.param pmc param_249
.annotate 'line', 77
.lex "$_", param_249
@@ -7850,7 +8259,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block218" :anon :subid("22_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block218" :anon :subid("22_1282323995.38516") :outer("21_1282323995.38516")
.param pmc param_220
.annotate 'line', 74
.lex "$_", param_220
@@ -7872,7 +8281,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "autoprint" :subid("25_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "autoprint" :subid("25_1282323995.38516") :method :outer("11_1282323995.38516")
.param pmc param_286
.annotate 'line', 85
new $P285, 'ExceptionHandler'
@@ -7916,10 +8325,10 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "interactive" :subid("26_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "interactive" :subid("26_1282323995.38516") :method :outer("11_1282323995.38516")
.param pmc param_301 :slurpy :named
.annotate 'line', 90
- .const 'Sub' $P333 = "27_1280467469.30058"
+ .const 'Sub' $P333 = "27_1282323995.38516"
capture_lex $P333
new $P300, 'ExceptionHandler'
set_addr $P300, control_299
@@ -8006,7 +8415,7 @@
assign $P331, 1
unless $P331, loop443_done
loop443_redo:
- .const 'Sub' $P333 = "27_1280467469.30058"
+ .const 'Sub' $P333 = "27_1282323995.38516"
capture_lex $P333
$P333()
loop443_next:
@@ -8031,9 +8440,9 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block332" :anon :subid("27_1280467469.30058") :outer("26_1280467469.30058")
+.sub "_block332" :anon :subid("27_1282323995.38516") :outer("26_1282323995.38516")
.annotate 'line', 102
- .const 'Sub' $P365 = "28_1280467469.30058"
+ .const 'Sub' $P365 = "28_1282323995.38516"
capture_lex $P365
.annotate 'line', 105
new $P334, "Undef"
@@ -8101,7 +8510,7 @@
set $P361, $P363
goto if_362_end
if_362:
- .const 'Sub' $P365 = "28_1280467469.30058"
+ .const 'Sub' $P365 = "28_1282323995.38516"
capture_lex $P365
$P442 = $P365()
set $P361, $P442
@@ -8113,11 +8522,11 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block364" :anon :subid("28_1280467469.30058") :outer("27_1280467469.30058")
+.sub "_block364" :anon :subid("28_1282323995.38516") :outer("27_1282323995.38516")
.annotate 'line', 115
- .const 'Sub' $P398 = "31_1280467469.30058"
+ .const 'Sub' $P398 = "31_1282323995.38516"
capture_lex $P398
- .const 'Sub' $P371 = "29_1280467469.30058"
+ .const 'Sub' $P371 = "29_1282323995.38516"
capture_lex $P371
.annotate 'line', 117
new $P366, "Undef"
@@ -8128,7 +8537,7 @@
store_lex "$code", $P368
find_lex $P369, "$output"
.annotate 'line', 118
- .const 'Sub' $P371 = "29_1280467469.30058"
+ .const 'Sub' $P371 = "29_1282323995.38516"
capture_lex $P371
$P371()
.annotate 'line', 125
@@ -8141,7 +8550,7 @@
vivify_67:
defined $I396, $P395
unless $I396, if_394_end
- .const 'Sub' $P398 = "31_1280467469.30058"
+ .const 'Sub' $P398 = "31_1282323995.38516"
capture_lex $P398
$P398()
if_394_end:
@@ -8195,9 +8604,9 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block370" :anon :subid("29_1280467469.30058") :outer("28_1280467469.30058")
+.sub "_block370" :anon :subid("29_1282323995.38516") :outer("28_1282323995.38516")
.annotate 'line', 118
- .const 'Sub' $P383 = "30_1280467469.30058"
+ .const 'Sub' $P383 = "30_1282323995.38516"
capture_lex $P383
new $P379, 'ExceptionHandler'
set_addr $P379, control_378
@@ -8217,7 +8626,7 @@
.annotate 'line', 120
.local pmc exception
.get_results (exception)
- .const 'Sub' $P383 = "30_1280467469.30058"
+ .const 'Sub' $P383 = "30_1282323995.38516"
newclosure $P391, $P383
$P391(exception)
new $P392, 'Integer'
@@ -8237,7 +8646,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block382" :anon :subid("30_1280467469.30058") :outer("29_1280467469.30058")
+.sub "_block382" :anon :subid("30_1282323995.38516") :outer("29_1282323995.38516")
.param pmc param_384
.annotate 'line', 120
.lex "$_", param_384
@@ -8260,9 +8669,9 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block397" :anon :subid("31_1280467469.30058") :outer("28_1280467469.30058")
+.sub "_block397" :anon :subid("31_1282323995.38516") :outer("28_1282323995.38516")
.annotate 'line', 125
- .const 'Sub' $P409 = "32_1280467469.30058"
+ .const 'Sub' $P409 = "32_1282323995.38516"
capture_lex $P409
.annotate 'line', 126
get_global $P399, "$interactive_ctx"
@@ -8299,7 +8708,7 @@
unless $P403, loop416_done
shift $P407, $P403
loop416_redo:
- .const 'Sub' $P409 = "32_1280467469.30058"
+ .const 'Sub' $P409 = "32_1282323995.38516"
capture_lex $P409
$P409($P407)
loop416_next:
@@ -8322,7 +8731,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block408" :anon :subid("32_1280467469.30058") :outer("31_1280467469.30058")
+.sub "_block408" :anon :subid("32_1282323995.38516") :outer("31_1282323995.38516")
.param pmc param_410
.annotate 'line', 128
.lex "$_", param_410
@@ -8344,12 +8753,12 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "eval" :subid("33_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "eval" :subid("33_1282323995.38516") :method :outer("11_1282323995.38516")
.param pmc param_450
.param pmc param_451 :slurpy
.param pmc param_452 :slurpy :named
.annotate 'line', 146
- .const 'Sub' $P471 = "34_1280467469.30058"
+ .const 'Sub' $P471 = "34_1282323995.38516"
capture_lex $P471
new $P449, 'ExceptionHandler'
set_addr $P449, control_448
@@ -8396,7 +8805,7 @@
set $P460, $I469
if_461_end:
unless $P460, if_459_end
- .const 'Sub' $P471 = "34_1280467469.30058"
+ .const 'Sub' $P471 = "34_1282323995.38516"
capture_lex $P471
$P471()
if_459_end:
@@ -8413,7 +8822,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block470" :anon :subid("34_1280467469.30058") :outer("33_1280467469.30058")
+.sub "_block470" :anon :subid("34_1282323995.38516") :outer("33_1282323995.38516")
.annotate 'line', 152
new $P472, "Undef"
.lex "$outer_ctx", $P472
@@ -8467,7 +8876,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "ctxsave" :subid("35_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "ctxsave" :subid("35_1282323995.38516") :method :outer("11_1282323995.38516")
.annotate 'line', 165
new $P491, 'ExceptionHandler'
set_addr $P491, control_490
@@ -8495,9 +8904,9 @@
.namespace []
-.sub "_block498" :load :anon :subid("36_1280467469.30058")
+.sub "_block498" :load :anon :subid("36_1282323995.38516")
.annotate 'line', 1
- .const 'Sub' $P500 = "10_1280467469.30058"
+ .const 'Sub' $P500 = "10_1282323995.38516"
$P501 = $P500()
.return ($P501)
.end
Modified: branches/unshared_buffers/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/unshared_buffers/ext/nqp-rx/src/stage0/NQP-s0.pir Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/ext/nqp-rx/src/stage0/NQP-s0.pir Sun Aug 29 17:09:11 2010 (r48719)
@@ -15,7 +15,7 @@
### .include 'gen/nqp-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1280467477.44751")
+.sub "_block11" :anon :subid("10_1282324002.40722")
.annotate 'line', 0
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
capture_lex $P14
@@ -32,15 +32,15 @@
$P1423 = $P14()
.annotate 'line', 1
.return ($P1423)
- .const 'Sub' $P1425 = "371_1280467477.44751"
+ .const 'Sub' $P1425 = "371_1282324002.40722"
.return ($P1425)
.end
.namespace []
-.sub "" :load :init :subid("post372") :outer("10_1280467477.44751")
+.sub "" :load :init :subid("post372") :outer("10_1282324002.40722")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1280467477.44751"
+ .const 'Sub' $P12 = "10_1282324002.40722"
.local pmc block
set block, $P12
$P1428 = get_root_global ["parrot"], "P6metaclass"
@@ -49,321 +49,321 @@
.namespace ["NQP";"Grammar"]
-.sub "_block13" :subid("11_1280467477.44751") :outer("10_1280467477.44751")
+.sub "_block13" :subid("11_1282324002.40722") :outer("10_1282324002.40722")
.annotate 'line', 4
get_hll_global $P1340, ["NQP";"Regex"], "_block1339"
capture_lex $P1340
- .const 'Sub' $P1326 = "348_1280467477.44751"
+ .const 'Sub' $P1326 = "348_1282324002.40722"
capture_lex $P1326
- .const 'Sub' $P1320 = "346_1280467477.44751"
+ .const 'Sub' $P1320 = "346_1282324002.40722"
capture_lex $P1320
- .const 'Sub' $P1314 = "344_1280467477.44751"
+ .const 'Sub' $P1314 = "344_1282324002.40722"
capture_lex $P1314
- .const 'Sub' $P1308 = "342_1280467477.44751"
+ .const 'Sub' $P1308 = "342_1282324002.40722"
capture_lex $P1308
- .const 'Sub' $P1302 = "340_1280467477.44751"
+ .const 'Sub' $P1302 = "340_1282324002.40722"
capture_lex $P1302
- .const 'Sub' $P1296 = "338_1280467477.44751"
+ .const 'Sub' $P1296 = "338_1282324002.40722"
capture_lex $P1296
- .const 'Sub' $P1289 = "336_1280467477.44751"
+ .const 'Sub' $P1289 = "336_1282324002.40722"
capture_lex $P1289
- .const 'Sub' $P1282 = "334_1280467477.44751"
+ .const 'Sub' $P1282 = "334_1282324002.40722"
capture_lex $P1282
- .const 'Sub' $P1275 = "332_1280467477.44751"
+ .const 'Sub' $P1275 = "332_1282324002.40722"
capture_lex $P1275
- .const 'Sub' $P1268 = "330_1280467477.44751"
+ .const 'Sub' $P1268 = "330_1282324002.40722"
capture_lex $P1268
- .const 'Sub' $P1262 = "328_1280467477.44751"
+ .const 'Sub' $P1262 = "328_1282324002.40722"
capture_lex $P1262
- .const 'Sub' $P1255 = "326_1280467477.44751"
+ .const 'Sub' $P1255 = "326_1282324002.40722"
capture_lex $P1255
- .const 'Sub' $P1248 = "324_1280467477.44751"
+ .const 'Sub' $P1248 = "324_1282324002.40722"
capture_lex $P1248
- .const 'Sub' $P1241 = "322_1280467477.44751"
+ .const 'Sub' $P1241 = "322_1282324002.40722"
capture_lex $P1241
- .const 'Sub' $P1234 = "320_1280467477.44751"
+ .const 'Sub' $P1234 = "320_1282324002.40722"
capture_lex $P1234
- .const 'Sub' $P1227 = "318_1280467477.44751"
+ .const 'Sub' $P1227 = "318_1282324002.40722"
capture_lex $P1227
- .const 'Sub' $P1220 = "316_1280467477.44751"
+ .const 'Sub' $P1220 = "316_1282324002.40722"
capture_lex $P1220
- .const 'Sub' $P1213 = "314_1280467477.44751"
+ .const 'Sub' $P1213 = "314_1282324002.40722"
capture_lex $P1213
- .const 'Sub' $P1206 = "312_1280467477.44751"
+ .const 'Sub' $P1206 = "312_1282324002.40722"
capture_lex $P1206
- .const 'Sub' $P1199 = "310_1280467477.44751"
+ .const 'Sub' $P1199 = "310_1282324002.40722"
capture_lex $P1199
- .const 'Sub' $P1192 = "308_1280467477.44751"
+ .const 'Sub' $P1192 = "308_1282324002.40722"
capture_lex $P1192
- .const 'Sub' $P1185 = "306_1280467477.44751"
+ .const 'Sub' $P1185 = "306_1282324002.40722"
capture_lex $P1185
- .const 'Sub' $P1178 = "304_1280467477.44751"
+ .const 'Sub' $P1178 = "304_1282324002.40722"
capture_lex $P1178
- .const 'Sub' $P1171 = "302_1280467477.44751"
+ .const 'Sub' $P1171 = "302_1282324002.40722"
capture_lex $P1171
- .const 'Sub' $P1164 = "300_1280467477.44751"
+ .const 'Sub' $P1164 = "300_1282324002.40722"
capture_lex $P1164
- .const 'Sub' $P1157 = "298_1280467477.44751"
+ .const 'Sub' $P1157 = "298_1282324002.40722"
capture_lex $P1157
- .const 'Sub' $P1150 = "296_1280467477.44751"
+ .const 'Sub' $P1150 = "296_1282324002.40722"
capture_lex $P1150
- .const 'Sub' $P1143 = "294_1280467477.44751"
+ .const 'Sub' $P1143 = "294_1282324002.40722"
capture_lex $P1143
- .const 'Sub' $P1136 = "292_1280467477.44751"
+ .const 'Sub' $P1136 = "292_1282324002.40722"
capture_lex $P1136
- .const 'Sub' $P1129 = "290_1280467477.44751"
+ .const 'Sub' $P1129 = "290_1282324002.40722"
capture_lex $P1129
- .const 'Sub' $P1122 = "288_1280467477.44751"
+ .const 'Sub' $P1122 = "288_1282324002.40722"
capture_lex $P1122
- .const 'Sub' $P1115 = "286_1280467477.44751"
+ .const 'Sub' $P1115 = "286_1282324002.40722"
capture_lex $P1115
- .const 'Sub' $P1108 = "284_1280467477.44751"
+ .const 'Sub' $P1108 = "284_1282324002.40722"
capture_lex $P1108
- .const 'Sub' $P1101 = "282_1280467477.44751"
+ .const 'Sub' $P1101 = "282_1282324002.40722"
capture_lex $P1101
- .const 'Sub' $P1094 = "280_1280467477.44751"
+ .const 'Sub' $P1094 = "280_1282324002.40722"
capture_lex $P1094
- .const 'Sub' $P1087 = "278_1280467477.44751"
+ .const 'Sub' $P1087 = "278_1282324002.40722"
capture_lex $P1087
- .const 'Sub' $P1080 = "276_1280467477.44751"
+ .const 'Sub' $P1080 = "276_1282324002.40722"
capture_lex $P1080
- .const 'Sub' $P1073 = "274_1280467477.44751"
+ .const 'Sub' $P1073 = "274_1282324002.40722"
capture_lex $P1073
- .const 'Sub' $P1066 = "272_1280467477.44751"
+ .const 'Sub' $P1066 = "272_1282324002.40722"
capture_lex $P1066
- .const 'Sub' $P1059 = "270_1280467477.44751"
+ .const 'Sub' $P1059 = "270_1282324002.40722"
capture_lex $P1059
- .const 'Sub' $P1053 = "268_1280467477.44751"
+ .const 'Sub' $P1053 = "268_1282324002.40722"
capture_lex $P1053
- .const 'Sub' $P1046 = "266_1280467477.44751"
+ .const 'Sub' $P1046 = "266_1282324002.40722"
capture_lex $P1046
- .const 'Sub' $P1039 = "264_1280467477.44751"
+ .const 'Sub' $P1039 = "264_1282324002.40722"
capture_lex $P1039
- .const 'Sub' $P1032 = "262_1280467477.44751"
+ .const 'Sub' $P1032 = "262_1282324002.40722"
capture_lex $P1032
- .const 'Sub' $P1025 = "260_1280467477.44751"
+ .const 'Sub' $P1025 = "260_1282324002.40722"
capture_lex $P1025
- .const 'Sub' $P1018 = "258_1280467477.44751"
+ .const 'Sub' $P1018 = "258_1282324002.40722"
capture_lex $P1018
- .const 'Sub' $P1011 = "256_1280467477.44751"
+ .const 'Sub' $P1011 = "256_1282324002.40722"
capture_lex $P1011
- .const 'Sub' $P1004 = "254_1280467477.44751"
+ .const 'Sub' $P1004 = "254_1282324002.40722"
capture_lex $P1004
- .const 'Sub' $P998 = "252_1280467477.44751"
+ .const 'Sub' $P998 = "252_1282324002.40722"
capture_lex $P998
- .const 'Sub' $P992 = "250_1280467477.44751"
+ .const 'Sub' $P992 = "250_1282324002.40722"
capture_lex $P992
- .const 'Sub' $P987 = "248_1280467477.44751"
+ .const 'Sub' $P987 = "248_1282324002.40722"
capture_lex $P987
- .const 'Sub' $P981 = "246_1280467477.44751"
+ .const 'Sub' $P981 = "246_1282324002.40722"
capture_lex $P981
- .const 'Sub' $P975 = "244_1280467477.44751"
+ .const 'Sub' $P975 = "244_1282324002.40722"
capture_lex $P975
- .const 'Sub' $P970 = "242_1280467477.44751"
+ .const 'Sub' $P970 = "242_1282324002.40722"
capture_lex $P970
- .const 'Sub' $P965 = "240_1280467477.44751"
+ .const 'Sub' $P965 = "240_1282324002.40722"
capture_lex $P965
- .const 'Sub' $P957 = "238_1280467477.44751"
+ .const 'Sub' $P957 = "238_1282324002.40722"
capture_lex $P957
- .const 'Sub' $P948 = "236_1280467477.44751"
+ .const 'Sub' $P948 = "236_1282324002.40722"
capture_lex $P948
- .const 'Sub' $P943 = "234_1280467477.44751"
+ .const 'Sub' $P943 = "234_1282324002.40722"
capture_lex $P943
- .const 'Sub' $P938 = "232_1280467477.44751"
+ .const 'Sub' $P938 = "232_1282324002.40722"
capture_lex $P938
- .const 'Sub' $P933 = "230_1280467477.44751"
+ .const 'Sub' $P933 = "230_1282324002.40722"
capture_lex $P933
- .const 'Sub' $P925 = "228_1280467477.44751"
+ .const 'Sub' $P925 = "228_1282324002.40722"
capture_lex $P925
- .const 'Sub' $P917 = "226_1280467477.44751"
+ .const 'Sub' $P917 = "226_1282324002.40722"
capture_lex $P917
- .const 'Sub' $P912 = "224_1280467477.44751"
+ .const 'Sub' $P912 = "224_1282324002.40722"
capture_lex $P912
- .const 'Sub' $P907 = "222_1280467477.44751"
+ .const 'Sub' $P907 = "222_1282324002.40722"
capture_lex $P907
- .const 'Sub' $P902 = "220_1280467477.44751"
+ .const 'Sub' $P902 = "220_1282324002.40722"
capture_lex $P902
- .const 'Sub' $P896 = "218_1280467477.44751"
+ .const 'Sub' $P896 = "218_1282324002.40722"
capture_lex $P896
- .const 'Sub' $P890 = "216_1280467477.44751"
+ .const 'Sub' $P890 = "216_1282324002.40722"
capture_lex $P890
- .const 'Sub' $P884 = "214_1280467477.44751"
+ .const 'Sub' $P884 = "214_1282324002.40722"
capture_lex $P884
- .const 'Sub' $P878 = "212_1280467477.44751"
+ .const 'Sub' $P878 = "212_1282324002.40722"
capture_lex $P878
- .const 'Sub' $P872 = "210_1280467477.44751"
+ .const 'Sub' $P872 = "210_1282324002.40722"
capture_lex $P872
- .const 'Sub' $P867 = "208_1280467477.44751"
+ .const 'Sub' $P867 = "208_1282324002.40722"
capture_lex $P867
- .const 'Sub' $P862 = "206_1280467477.44751"
+ .const 'Sub' $P862 = "206_1282324002.40722"
capture_lex $P862
- .const 'Sub' $P850 = "202_1280467477.44751"
+ .const 'Sub' $P850 = "202_1282324002.40722"
capture_lex $P850
- .const 'Sub' $P842 = "200_1280467477.44751"
+ .const 'Sub' $P842 = "200_1282324002.40722"
capture_lex $P842
- .const 'Sub' $P836 = "198_1280467477.44751"
+ .const 'Sub' $P836 = "198_1282324002.40722"
capture_lex $P836
- .const 'Sub' $P829 = "196_1280467477.44751"
+ .const 'Sub' $P829 = "196_1282324002.40722"
capture_lex $P829
- .const 'Sub' $P823 = "194_1280467477.44751"
+ .const 'Sub' $P823 = "194_1282324002.40722"
capture_lex $P823
- .const 'Sub' $P815 = "192_1280467477.44751"
+ .const 'Sub' $P815 = "192_1282324002.40722"
capture_lex $P815
- .const 'Sub' $P807 = "190_1280467477.44751"
+ .const 'Sub' $P807 = "190_1282324002.40722"
capture_lex $P807
- .const 'Sub' $P801 = "188_1280467477.44751"
+ .const 'Sub' $P801 = "188_1282324002.40722"
capture_lex $P801
- .const 'Sub' $P795 = "186_1280467477.44751"
+ .const 'Sub' $P795 = "186_1282324002.40722"
capture_lex $P795
- .const 'Sub' $P781 = "182_1280467477.44751"
+ .const 'Sub' $P781 = "182_1282324002.40722"
capture_lex $P781
- .const 'Sub' $P744 = "180_1280467477.44751"
+ .const 'Sub' $P744 = "180_1282324002.40722"
capture_lex $P744
- .const 'Sub' $P735 = "178_1280467477.44751"
+ .const 'Sub' $P735 = "178_1282324002.40722"
capture_lex $P735
- .const 'Sub' $P729 = "176_1280467477.44751"
+ .const 'Sub' $P729 = "176_1282324002.40722"
capture_lex $P729
- .const 'Sub' $P719 = "174_1280467477.44751"
+ .const 'Sub' $P719 = "174_1282324002.40722"
capture_lex $P719
- .const 'Sub' $P706 = "172_1280467477.44751"
+ .const 'Sub' $P706 = "172_1282324002.40722"
capture_lex $P706
- .const 'Sub' $P699 = "170_1280467477.44751"
+ .const 'Sub' $P699 = "170_1282324002.40722"
capture_lex $P699
- .const 'Sub' $P691 = "168_1280467477.44751"
+ .const 'Sub' $P691 = "168_1282324002.40722"
capture_lex $P691
- .const 'Sub' $P681 = "166_1280467477.44751"
+ .const 'Sub' $P681 = "166_1282324002.40722"
capture_lex $P681
- .const 'Sub' $P657 = "162_1280467477.44751"
+ .const 'Sub' $P657 = "162_1282324002.40722"
capture_lex $P657
- .const 'Sub' $P634 = "160_1280467477.44751"
+ .const 'Sub' $P634 = "160_1282324002.40722"
capture_lex $P634
- .const 'Sub' $P627 = "158_1280467477.44751"
+ .const 'Sub' $P627 = "158_1282324002.40722"
capture_lex $P627
- .const 'Sub' $P620 = "156_1280467477.44751"
+ .const 'Sub' $P620 = "156_1282324002.40722"
capture_lex $P620
- .const 'Sub' $P610 = "152_1280467477.44751"
+ .const 'Sub' $P610 = "152_1282324002.40722"
capture_lex $P610
- .const 'Sub' $P602 = "150_1280467477.44751"
+ .const 'Sub' $P602 = "150_1282324002.40722"
capture_lex $P602
- .const 'Sub' $P596 = "148_1280467477.44751"
+ .const 'Sub' $P596 = "148_1282324002.40722"
capture_lex $P596
- .const 'Sub' $P583 = "146_1280467477.44751"
+ .const 'Sub' $P583 = "146_1282324002.40722"
capture_lex $P583
- .const 'Sub' $P576 = "144_1280467477.44751"
+ .const 'Sub' $P576 = "144_1282324002.40722"
capture_lex $P576
- .const 'Sub' $P569 = "142_1280467477.44751"
+ .const 'Sub' $P569 = "142_1282324002.40722"
capture_lex $P569
- .const 'Sub' $P562 = "140_1280467477.44751"
+ .const 'Sub' $P562 = "140_1282324002.40722"
capture_lex $P562
- .const 'Sub' $P535 = "136_1280467477.44751"
+ .const 'Sub' $P535 = "136_1282324002.40722"
capture_lex $P535
- .const 'Sub' $P526 = "134_1280467477.44751"
+ .const 'Sub' $P526 = "134_1282324002.40722"
capture_lex $P526
- .const 'Sub' $P519 = "132_1280467477.44751"
+ .const 'Sub' $P519 = "132_1282324002.40722"
capture_lex $P519
- .const 'Sub' $P510 = "128_1280467477.44751"
+ .const 'Sub' $P510 = "128_1282324002.40722"
capture_lex $P510
- .const 'Sub' $P505 = "126_1280467477.44751"
+ .const 'Sub' $P505 = "126_1282324002.40722"
capture_lex $P505
- .const 'Sub' $P493 = "124_1280467477.44751"
+ .const 'Sub' $P493 = "124_1282324002.40722"
capture_lex $P493
- .const 'Sub' $P481 = "122_1280467477.44751"
+ .const 'Sub' $P481 = "122_1282324002.40722"
capture_lex $P481
- .const 'Sub' $P474 = "120_1280467477.44751"
+ .const 'Sub' $P474 = "120_1282324002.40722"
capture_lex $P474
- .const 'Sub' $P469 = "118_1280467477.44751"
+ .const 'Sub' $P469 = "118_1282324002.40722"
capture_lex $P469
- .const 'Sub' $P463 = "116_1280467477.44751"
+ .const 'Sub' $P463 = "116_1282324002.40722"
capture_lex $P463
- .const 'Sub' $P457 = "114_1280467477.44751"
+ .const 'Sub' $P457 = "114_1282324002.40722"
capture_lex $P457
- .const 'Sub' $P447 = "111_1280467477.44751"
+ .const 'Sub' $P447 = "111_1282324002.40722"
capture_lex $P447
- .const 'Sub' $P441 = "109_1280467477.44751"
+ .const 'Sub' $P441 = "109_1282324002.40722"
capture_lex $P441
- .const 'Sub' $P435 = "107_1280467477.44751"
+ .const 'Sub' $P435 = "107_1282324002.40722"
capture_lex $P435
- .const 'Sub' $P429 = "105_1280467477.44751"
+ .const 'Sub' $P429 = "105_1282324002.40722"
capture_lex $P429
- .const 'Sub' $P423 = "103_1280467477.44751"
+ .const 'Sub' $P423 = "103_1282324002.40722"
capture_lex $P423
- .const 'Sub' $P417 = "101_1280467477.44751"
+ .const 'Sub' $P417 = "101_1282324002.40722"
capture_lex $P417
- .const 'Sub' $P411 = "99_1280467477.44751"
+ .const 'Sub' $P411 = "99_1282324002.40722"
capture_lex $P411
- .const 'Sub' $P402 = "97_1280467477.44751"
+ .const 'Sub' $P402 = "97_1282324002.40722"
capture_lex $P402
- .const 'Sub' $P393 = "95_1280467477.44751"
+ .const 'Sub' $P393 = "95_1282324002.40722"
capture_lex $P393
- .const 'Sub' $P384 = "93_1280467477.44751"
+ .const 'Sub' $P384 = "93_1282324002.40722"
capture_lex $P384
- .const 'Sub' $P371 = "89_1280467477.44751"
+ .const 'Sub' $P371 = "89_1282324002.40722"
capture_lex $P371
- .const 'Sub' $P362 = "87_1280467477.44751"
+ .const 'Sub' $P362 = "87_1282324002.40722"
capture_lex $P362
- .const 'Sub' $P352 = "83_1280467477.44751"
+ .const 'Sub' $P352 = "83_1282324002.40722"
capture_lex $P352
- .const 'Sub' $P345 = "81_1280467477.44751"
+ .const 'Sub' $P345 = "81_1282324002.40722"
capture_lex $P345
- .const 'Sub' $P338 = "79_1280467477.44751"
+ .const 'Sub' $P338 = "79_1282324002.40722"
capture_lex $P338
- .const 'Sub' $P326 = "75_1280467477.44751"
+ .const 'Sub' $P326 = "75_1282324002.40722"
capture_lex $P326
- .const 'Sub' $P318 = "73_1280467477.44751"
+ .const 'Sub' $P318 = "73_1282324002.40722"
capture_lex $P318
- .const 'Sub' $P310 = "71_1280467477.44751"
+ .const 'Sub' $P310 = "71_1282324002.40722"
capture_lex $P310
- .const 'Sub' $P290 = "69_1280467477.44751"
+ .const 'Sub' $P290 = "69_1282324002.40722"
capture_lex $P290
- .const 'Sub' $P281 = "67_1280467477.44751"
+ .const 'Sub' $P281 = "67_1282324002.40722"
capture_lex $P281
- .const 'Sub' $P263 = "64_1280467477.44751"
+ .const 'Sub' $P263 = "64_1282324002.40722"
capture_lex $P263
- .const 'Sub' $P245 = "62_1280467477.44751"
+ .const 'Sub' $P245 = "62_1282324002.40722"
capture_lex $P245
- .const 'Sub' $P236 = "58_1280467477.44751"
+ .const 'Sub' $P236 = "58_1282324002.40722"
capture_lex $P236
- .const 'Sub' $P231 = "56_1280467477.44751"
+ .const 'Sub' $P231 = "56_1282324002.40722"
capture_lex $P231
- .const 'Sub' $P222 = "52_1280467477.44751"
+ .const 'Sub' $P222 = "52_1282324002.40722"
capture_lex $P222
- .const 'Sub' $P217 = "50_1280467477.44751"
+ .const 'Sub' $P217 = "50_1282324002.40722"
capture_lex $P217
- .const 'Sub' $P212 = "48_1280467477.44751"
+ .const 'Sub' $P212 = "48_1282324002.40722"
capture_lex $P212
- .const 'Sub' $P203 = "46_1280467477.44751"
+ .const 'Sub' $P203 = "46_1282324002.40722"
capture_lex $P203
- .const 'Sub' $P196 = "44_1280467477.44751"
+ .const 'Sub' $P196 = "44_1282324002.40722"
capture_lex $P196
- .const 'Sub' $P190 = "42_1280467477.44751"
+ .const 'Sub' $P190 = "42_1282324002.40722"
capture_lex $P190
- .const 'Sub' $P182 = "40_1280467477.44751"
+ .const 'Sub' $P182 = "40_1282324002.40722"
capture_lex $P182
- .const 'Sub' $P176 = "38_1280467477.44751"
+ .const 'Sub' $P176 = "38_1282324002.40722"
capture_lex $P176
- .const 'Sub' $P170 = "36_1280467477.44751"
+ .const 'Sub' $P170 = "36_1282324002.40722"
capture_lex $P170
- .const 'Sub' $P155 = "33_1280467477.44751"
+ .const 'Sub' $P155 = "33_1282324002.40722"
capture_lex $P155
- .const 'Sub' $P141 = "31_1280467477.44751"
+ .const 'Sub' $P141 = "31_1282324002.40722"
capture_lex $P141
- .const 'Sub' $P134 = "29_1280467477.44751"
+ .const 'Sub' $P134 = "29_1282324002.40722"
capture_lex $P134
- .const 'Sub' $P95 = "26_1280467477.44751"
+ .const 'Sub' $P95 = "26_1282324002.40722"
capture_lex $P95
- .const 'Sub' $P80 = "23_1280467477.44751"
+ .const 'Sub' $P80 = "23_1282324002.40722"
capture_lex $P80
- .const 'Sub' $P69 = "21_1280467477.44751"
+ .const 'Sub' $P69 = "21_1282324002.40722"
capture_lex $P69
- .const 'Sub' $P57 = "19_1280467477.44751"
+ .const 'Sub' $P57 = "19_1282324002.40722"
capture_lex $P57
- .const 'Sub' $P49 = "17_1280467477.44751"
+ .const 'Sub' $P49 = "17_1282324002.40722"
capture_lex $P49
- .const 'Sub' $P42 = "15_1280467477.44751"
+ .const 'Sub' $P42 = "15_1282324002.40722"
capture_lex $P42
- .const 'Sub' $P35 = "13_1280467477.44751"
+ .const 'Sub' $P35 = "13_1282324002.40722"
capture_lex $P35
- .const 'Sub' $P15 = "12_1280467477.44751"
+ .const 'Sub' $P15 = "12_1282324002.40722"
capture_lex $P15
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
@@ -377,13 +377,13 @@
$P1402 = $P1340()
.annotate 'line', 4
.return ($P1402)
- .const 'Sub' $P1404 = "370_1280467477.44751"
+ .const 'Sub' $P1404 = "370_1282324002.40722"
.return ($P1404)
.end
.namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post373") :outer("11_1280467477.44751")
+.sub "" :load :init :subid("post373") :outer("11_1282324002.40722")
.annotate 'line', 4
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
.local pmc block
@@ -441,7 +441,7 @@
.namespace ["NQP";"Grammar"]
.include "except_types.pasm"
-.sub "TOP" :subid("12_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "TOP" :subid("12_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
new $P17, 'ExceptionHandler'
set_addr $P17, control_16
@@ -531,7 +531,7 @@
.namespace ["NQP";"Grammar"]
-.sub "identifier" :subid("13_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "identifier" :subid("13_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx36_tgt
.local int rx36_pos
@@ -539,7 +539,9 @@
.local int rx36_eos
.local int rx36_rep
.local pmc rx36_cur
+ .local pmc rx36_debug
(rx36_cur, rx36_pos, rx36_tgt, $I10) = self."!cursor_start"()
+ getattribute rx36_debug, rx36_cur, "$!debug"
.lex unicode:"$\x{a2}", rx36_cur
.local pmc match
.lex "$/", match
@@ -551,7 +553,9 @@
substr rx36_tgt, rx36_tgt, rx36_off
rx36_start:
eq $I10, 1, rx36_restart
- rx36_cur."!cursor_debug"("START ", "identifier")
+ if_null rx36_debug, debug_384
+ rx36_cur."!cursor_debug"("START", "identifier")
+ debug_384:
$I10 = self.'from'()
ne $I10, -1, rxscan40_done
goto rxscan40_scan
@@ -594,11 +598,15 @@
rxquantr41_done:
# rx pass
rx36_cur."!cursor_pass"(rx36_pos, "identifier")
- rx36_cur."!cursor_debug"("PASS ", "identifier", " at pos=", rx36_pos)
+ if_null rx36_debug, debug_385
+ rx36_cur."!cursor_debug"("PASS", "identifier", " at pos=", rx36_pos)
+ debug_385:
.return (rx36_cur)
rx36_restart:
.annotate 'line', 4
- rx36_cur."!cursor_debug"("NEXT ", "identifier")
+ if_null rx36_debug, debug_386
+ rx36_cur."!cursor_debug"("NEXT", "identifier")
+ debug_386:
rx36_fail:
(rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0)
lt rx36_pos, -1, rx36_done
@@ -606,14 +614,16 @@
jump $I10
rx36_done:
rx36_cur."!cursor_fail"()
- rx36_cur."!cursor_debug"("FAIL ", "identifier")
+ if_null rx36_debug, debug_387
+ rx36_cur."!cursor_debug"("FAIL", "identifier")
+ debug_387:
.return (rx36_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier" :subid("14_1280467477.44751") :method
+.sub "!PREFIX__identifier" :subid("14_1282324002.40722") :method
.annotate 'line', 4
$P38 = self."!PREFIX__!subrule"("ident", "")
new $P39, "ResizablePMCArray"
@@ -623,7 +633,7 @@
.namespace ["NQP";"Grammar"]
-.sub "name" :subid("15_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "name" :subid("15_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx43_tgt
.local int rx43_pos
@@ -631,8 +641,10 @@
.local int rx43_eos
.local int rx43_rep
.local pmc rx43_cur
+ .local pmc rx43_debug
(rx43_cur, rx43_pos, rx43_tgt, $I10) = self."!cursor_start"()
rx43_cur."!cursor_caparray"("identifier")
+ getattribute rx43_debug, rx43_cur, "$!debug"
.lex unicode:"$\x{a2}", rx43_cur
.local pmc match
.lex "$/", match
@@ -644,7 +656,9 @@
substr rx43_tgt, rx43_tgt, rx43_off
rx43_start:
eq $I10, 1, rx43_restart
- rx43_cur."!cursor_debug"("START ", "name")
+ if_null rx43_debug, debug_388
+ rx43_cur."!cursor_debug"("START", "name")
+ debug_388:
$I10 = self.'from'()
ne $I10, -1, rxscan46_done
goto rxscan46_scan
@@ -690,11 +704,15 @@
rxquantr47_done:
# rx pass
rx43_cur."!cursor_pass"(rx43_pos, "name")
- rx43_cur."!cursor_debug"("PASS ", "name", " at pos=", rx43_pos)
+ if_null rx43_debug, debug_389
+ rx43_cur."!cursor_debug"("PASS", "name", " at pos=", rx43_pos)
+ debug_389:
.return (rx43_cur)
rx43_restart:
.annotate 'line', 4
- rx43_cur."!cursor_debug"("NEXT ", "name")
+ if_null rx43_debug, debug_390
+ rx43_cur."!cursor_debug"("NEXT", "name")
+ debug_390:
rx43_fail:
(rx43_rep, rx43_pos, $I10, $P10) = rx43_cur."!mark_fail"(0)
lt rx43_pos, -1, rx43_done
@@ -702,14 +720,16 @@
jump $I10
rx43_done:
rx43_cur."!cursor_fail"()
- rx43_cur."!cursor_debug"("FAIL ", "name")
+ if_null rx43_debug, debug_391
+ rx43_cur."!cursor_debug"("FAIL", "name")
+ debug_391:
.return (rx43_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name" :subid("16_1280467477.44751") :method
+.sub "!PREFIX__name" :subid("16_1282324002.40722") :method
.annotate 'line', 4
new $P45, "ResizablePMCArray"
push $P45, ""
@@ -718,7 +738,7 @@
.namespace ["NQP";"Grammar"]
-.sub "deflongname" :subid("17_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "deflongname" :subid("17_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx50_tgt
.local int rx50_pos
@@ -726,8 +746,10 @@
.local int rx50_eos
.local int rx50_rep
.local pmc rx50_cur
+ .local pmc rx50_debug
(rx50_cur, rx50_pos, rx50_tgt, $I10) = self."!cursor_start"()
rx50_cur."!cursor_caparray"("colonpair")
+ getattribute rx50_debug, rx50_cur, "$!debug"
.lex unicode:"$\x{a2}", rx50_cur
.local pmc match
.lex "$/", match
@@ -739,7 +761,9 @@
substr rx50_tgt, rx50_tgt, rx50_off
rx50_start:
eq $I10, 1, rx50_restart
- rx50_cur."!cursor_debug"("START ", "deflongname")
+ if_null rx50_debug, debug_392
+ rx50_cur."!cursor_debug"("START", "deflongname")
+ debug_392:
$I10 = self.'from'()
ne $I10, -1, rxscan54_done
goto rxscan54_scan
@@ -783,11 +807,15 @@
.annotate 'line', 21
# rx pass
rx50_cur."!cursor_pass"(rx50_pos, "deflongname")
- rx50_cur."!cursor_debug"("PASS ", "deflongname", " at pos=", rx50_pos)
+ if_null rx50_debug, debug_393
+ rx50_cur."!cursor_debug"("PASS", "deflongname", " at pos=", rx50_pos)
+ debug_393:
.return (rx50_cur)
rx50_restart:
.annotate 'line', 4
- rx50_cur."!cursor_debug"("NEXT ", "deflongname")
+ if_null rx50_debug, debug_394
+ rx50_cur."!cursor_debug"("NEXT", "deflongname")
+ debug_394:
rx50_fail:
(rx50_rep, rx50_pos, $I10, $P10) = rx50_cur."!mark_fail"(0)
lt rx50_pos, -1, rx50_done
@@ -795,14 +823,16 @@
jump $I10
rx50_done:
rx50_cur."!cursor_fail"()
- rx50_cur."!cursor_debug"("FAIL ", "deflongname")
+ if_null rx50_debug, debug_395
+ rx50_cur."!cursor_debug"("FAIL", "deflongname")
+ debug_395:
.return (rx50_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname" :subid("18_1280467477.44751") :method
+.sub "!PREFIX__deflongname" :subid("18_1282324002.40722") :method
.annotate 'line', 4
$P52 = self."!PREFIX__!subrule"("identifier", "")
new $P53, "ResizablePMCArray"
@@ -812,7 +842,7 @@
.namespace ["NQP";"Grammar"]
-.sub "ENDSTMT" :subid("19_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "ENDSTMT" :subid("19_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx58_tgt
.local int rx58_pos
@@ -820,7 +850,9 @@
.local int rx58_eos
.local int rx58_rep
.local pmc rx58_cur
+ .local pmc rx58_debug
(rx58_cur, rx58_pos, rx58_tgt, $I10) = self."!cursor_start"()
+ getattribute rx58_debug, rx58_cur, "$!debug"
.lex unicode:"$\x{a2}", rx58_cur
.local pmc match
.lex "$/", match
@@ -832,7 +864,9 @@
substr rx58_tgt, rx58_tgt, rx58_off
rx58_start:
eq $I10, 1, rx58_restart
- rx58_cur."!cursor_debug"("START ", "ENDSTMT")
+ if_null rx58_debug, debug_396
+ rx58_cur."!cursor_debug"("START", "ENDSTMT")
+ debug_396:
$I10 = self.'from'()
ne $I10, -1, rxscan61_done
goto rxscan61_scan
@@ -855,23 +889,21 @@
set_addr $I10, alt63_1
rx58_cur."!mark_push"(0, rx58_pos, $I10)
.annotate 'line', 27
- # rx rxquantr64 ** 0..*
- set_addr $I10, rxquantr64_done
- rx58_cur."!mark_push"(0, rx58_pos, $I10)
- rxquantr64_loop:
- # rx enumcharlist negate=0
- ge rx58_pos, rx58_eos, rx58_fail
+ # rx enumcharlist_q negate=0 r 0..-1
sub $I10, rx58_pos, rx58_off
+ set rx58_rep, 0
+ sub $I12, rx58_eos, rx58_pos
+ rxenumcharlistq64_loop:
+ le $I12, 0, rxenumcharlistq64_done
substr $S10, rx58_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx58_fail
- inc rx58_pos
- set_addr $I10, rxquantr64_done
- (rx58_rep) = rx58_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr64_done
- rx58_cur."!mark_push"(rx58_rep, rx58_pos, $I10)
- goto rxquantr64_loop
- rxquantr64_done:
+ lt $I11, 0, rxenumcharlistq64_done
+ inc rx58_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq64_loop
+ rxenumcharlistq64_done:
+ add rx58_pos, rx58_pos, rx58_rep
# rxanchor eol
sub $I10, rx58_pos, rx58_off
is_cclass $I11, 4096, rx58_tgt, $I10
@@ -940,11 +972,15 @@
.annotate 'line', 25
# rx pass
rx58_cur."!cursor_pass"(rx58_pos, "ENDSTMT")
- rx58_cur."!cursor_debug"("PASS ", "ENDSTMT", " at pos=", rx58_pos)
+ if_null rx58_debug, debug_397
+ rx58_cur."!cursor_debug"("PASS", "ENDSTMT", " at pos=", rx58_pos)
+ debug_397:
.return (rx58_cur)
rx58_restart:
.annotate 'line', 4
- rx58_cur."!cursor_debug"("NEXT ", "ENDSTMT")
+ if_null rx58_debug, debug_398
+ rx58_cur."!cursor_debug"("NEXT", "ENDSTMT")
+ debug_398:
rx58_fail:
(rx58_rep, rx58_pos, $I10, $P10) = rx58_cur."!mark_fail"(0)
lt rx58_pos, -1, rx58_done
@@ -952,14 +988,16 @@
jump $I10
rx58_done:
rx58_cur."!cursor_fail"()
- rx58_cur."!cursor_debug"("FAIL ", "ENDSTMT")
+ if_null rx58_debug, debug_399
+ rx58_cur."!cursor_debug"("FAIL", "ENDSTMT")
+ debug_399:
.return (rx58_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT" :subid("20_1280467477.44751") :method
+.sub "!PREFIX__ENDSTMT" :subid("20_1282324002.40722") :method
.annotate 'line', 4
new $P60, "ResizablePMCArray"
push $P60, ""
@@ -968,7 +1006,7 @@
.namespace ["NQP";"Grammar"]
-.sub "ws" :subid("21_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "ws" :subid("21_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx70_tgt
.local int rx70_pos
@@ -976,7 +1014,9 @@
.local int rx70_eos
.local int rx70_rep
.local pmc rx70_cur
+ .local pmc rx70_debug
(rx70_cur, rx70_pos, rx70_tgt, $I10) = self."!cursor_start"()
+ getattribute rx70_debug, rx70_cur, "$!debug"
.lex unicode:"$\x{a2}", rx70_cur
.local pmc match
.lex "$/", match
@@ -988,7 +1028,9 @@
substr rx70_tgt, rx70_tgt, rx70_off
rx70_start:
eq $I10, 1, rx70_restart
- rx70_cur."!cursor_debug"("START ", "ws")
+ if_null rx70_debug, debug_400
+ rx70_cur."!cursor_debug"("START", "ws")
+ debug_400:
$I10 = self.'from'()
ne $I10, -1, rxscan73_done
goto rxscan73_scan
@@ -1026,23 +1068,22 @@
.annotate 'line', 35
set_addr $I10, alt76_1
rx70_cur."!mark_push"(0, rx70_pos, $I10)
- # rx rxquantr77 ** 1..*
- set_addr $I10, rxquantr77_done
- rx70_cur."!mark_push"(0, -1, $I10)
- rxquantr77_loop:
- # rx enumcharlist negate=0
- ge rx70_pos, rx70_eos, rx70_fail
+ # rx enumcharlist_q negate=0 r 1..-1
sub $I10, rx70_pos, rx70_off
+ set rx70_rep, 0
+ sub $I12, rx70_eos, rx70_pos
+ rxenumcharlistq77_loop:
+ le $I12, 0, rxenumcharlistq77_done
substr $S10, rx70_tgt, $I10, 1
index $I11, unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", $S10
- lt $I11, 0, rx70_fail
- inc rx70_pos
- set_addr $I10, rxquantr77_done
- (rx70_rep) = rx70_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr77_done
- rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
- goto rxquantr77_loop
- rxquantr77_done:
+ lt $I11, 0, rxenumcharlistq77_done
+ inc rx70_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq77_loop
+ rxenumcharlistq77_done:
+ lt rx70_rep, 1, rx70_fail
+ add rx70_pos, rx70_pos, rx70_rep
goto alt76_end
alt76_1:
set_addr $I10, alt76_2
@@ -1052,8 +1093,8 @@
add $I11, rx70_pos, 1
gt $I11, rx70_eos, rx70_fail
sub $I11, rx70_pos, rx70_off
- substr $S10, rx70_tgt, $I11, 1
- ne $S10, "#", rx70_fail
+ ord $I11, rx70_tgt, $I11
+ ne $I11, 35, rx70_fail
add rx70_pos, 1
# rx charclass_q N r 0..-1
sub $I10, rx70_pos, rx70_off
@@ -1080,23 +1121,22 @@
goto alt76_end
alt76_3:
.annotate 'line', 38
- # rx rxquantr79 ** 1..*
- set_addr $I10, rxquantr79_done
- rx70_cur."!mark_push"(0, -1, $I10)
- rxquantr79_loop:
- # rx enumcharlist negate=0
- ge rx70_pos, rx70_eos, rx70_fail
+ # rx enumcharlist_q negate=0 r 1..-1
sub $I10, rx70_pos, rx70_off
+ set rx70_rep, 0
+ sub $I12, rx70_eos, rx70_pos
+ rxenumcharlistq79_loop:
+ le $I12, 0, rxenumcharlistq79_done
substr $S10, rx70_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx70_fail
- inc rx70_pos
- set_addr $I10, rxquantr79_done
- (rx70_rep) = rx70_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr79_done
- rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
- goto rxquantr79_loop
- rxquantr79_done:
+ lt $I11, 0, rxenumcharlistq79_done
+ inc rx70_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq79_loop
+ rxenumcharlistq79_done:
+ lt rx70_rep, 1, rx70_fail
+ add rx70_pos, rx70_pos, rx70_rep
alt76_end:
.annotate 'line', 39
set_addr $I10, rxquantr75_done
@@ -1114,11 +1154,15 @@
.annotate 'line', 32
# rx pass
rx70_cur."!cursor_pass"(rx70_pos, "ws")
- rx70_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx70_pos)
+ if_null rx70_debug, debug_401
+ rx70_cur."!cursor_debug"("PASS", "ws", " at pos=", rx70_pos)
+ debug_401:
.return (rx70_cur)
rx70_restart:
.annotate 'line', 4
- rx70_cur."!cursor_debug"("NEXT ", "ws")
+ if_null rx70_debug, debug_402
+ rx70_cur."!cursor_debug"("NEXT", "ws")
+ debug_402:
rx70_fail:
(rx70_rep, rx70_pos, $I10, $P10) = rx70_cur."!mark_fail"(0)
lt rx70_pos, -1, rx70_done
@@ -1126,14 +1170,16 @@
jump $I10
rx70_done:
rx70_cur."!cursor_fail"()
- rx70_cur."!cursor_debug"("FAIL ", "ws")
+ if_null rx70_debug, debug_403
+ rx70_cur."!cursor_debug"("FAIL", "ws")
+ debug_403:
.return (rx70_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws" :subid("22_1280467477.44751") :method
+.sub "!PREFIX__ws" :subid("22_1282324002.40722") :method
.annotate 'line', 4
new $P72, "ResizablePMCArray"
push $P72, ""
@@ -1143,9 +1189,9 @@
.namespace ["NQP";"Grammar"]
-.sub "unv" :subid("23_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "unv" :subid("23_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
- .const 'Sub' $P88 = "25_1280467477.44751"
+ .const 'Sub' $P88 = "25_1282324002.40722"
capture_lex $P88
.local string rx81_tgt
.local int rx81_pos
@@ -1153,7 +1199,9 @@
.local int rx81_eos
.local int rx81_rep
.local pmc rx81_cur
+ .local pmc rx81_debug
(rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+ getattribute rx81_debug, rx81_cur, "$!debug"
.lex unicode:"$\x{a2}", rx81_cur
.local pmc match
.lex "$/", match
@@ -1165,7 +1213,9 @@
substr rx81_tgt, rx81_tgt, rx81_off
rx81_start:
eq $I10, 1, rx81_restart
- rx81_cur."!cursor_debug"("START ", "unv")
+ if_null rx81_debug, debug_404
+ rx81_cur."!cursor_debug"("START", "unv")
+ debug_404:
$I10 = self.'from'()
ne $I10, -1, rxscan84_done
goto rxscan84_scan
@@ -1193,7 +1243,7 @@
rxanchor86_done:
# rx subrule "before" subtype=zerowidth negate=
rx81_cur."!cursor_pos"(rx81_pos)
- .const 'Sub' $P88 = "25_1280467477.44751"
+ .const 'Sub' $P88 = "25_1282324002.40722"
capture_lex $P88
$P10 = rx81_cur."before"($P88)
unless $P10, rx81_fail
@@ -1207,29 +1257,27 @@
set_addr $I10, alt85_2
rx81_cur."!mark_push"(0, rx81_pos, $I10)
.annotate 'line', 47
- # rx rxquantr93 ** 0..*
- set_addr $I10, rxquantr93_done
- rx81_cur."!mark_push"(0, rx81_pos, $I10)
- rxquantr93_loop:
- # rx enumcharlist negate=0
- ge rx81_pos, rx81_eos, rx81_fail
+ # rx enumcharlist_q negate=0 r 0..-1
sub $I10, rx81_pos, rx81_off
+ set rx81_rep, 0
+ sub $I12, rx81_eos, rx81_pos
+ rxenumcharlistq93_loop:
+ le $I12, 0, rxenumcharlistq93_done
substr $S10, rx81_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx81_fail
- inc rx81_pos
- set_addr $I10, rxquantr93_done
- (rx81_rep) = rx81_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr93_done
- rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10)
- goto rxquantr93_loop
- rxquantr93_done:
+ lt $I11, 0, rxenumcharlistq93_done
+ inc rx81_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq93_loop
+ rxenumcharlistq93_done:
+ add rx81_pos, rx81_pos, rx81_rep
# rx literal "#"
add $I11, rx81_pos, 1
gt $I11, rx81_eos, rx81_fail
sub $I11, rx81_pos, rx81_off
- substr $S10, rx81_tgt, $I11, 1
- ne $S10, "#", rx81_fail
+ ord $I11, rx81_tgt, $I11
+ ne $I11, 35, rx81_fail
add rx81_pos, 1
# rx charclass_q N r 0..-1
sub $I10, rx81_pos, rx81_off
@@ -1238,32 +1286,35 @@
goto alt85_end
alt85_2:
.annotate 'line', 48
- # rx rxquantr94 ** 1..*
- set_addr $I10, rxquantr94_done
- rx81_cur."!mark_push"(0, -1, $I10)
- rxquantr94_loop:
- # rx enumcharlist negate=0
- ge rx81_pos, rx81_eos, rx81_fail
+ # rx enumcharlist_q negate=0 r 1..-1
sub $I10, rx81_pos, rx81_off
+ set rx81_rep, 0
+ sub $I12, rx81_eos, rx81_pos
+ rxenumcharlistq94_loop:
+ le $I12, 0, rxenumcharlistq94_done
substr $S10, rx81_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx81_fail
- inc rx81_pos
- set_addr $I10, rxquantr94_done
- (rx81_rep) = rx81_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr94_done
- rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10)
- goto rxquantr94_loop
- rxquantr94_done:
+ lt $I11, 0, rxenumcharlistq94_done
+ inc rx81_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq94_loop
+ rxenumcharlistq94_done:
+ lt rx81_rep, 1, rx81_fail
+ add rx81_pos, rx81_pos, rx81_rep
alt85_end:
.annotate 'line', 43
# rx pass
rx81_cur."!cursor_pass"(rx81_pos, "unv")
- rx81_cur."!cursor_debug"("PASS ", "unv", " at pos=", rx81_pos)
+ if_null rx81_debug, debug_409
+ rx81_cur."!cursor_debug"("PASS", "unv", " at pos=", rx81_pos)
+ debug_409:
.return (rx81_cur)
rx81_restart:
.annotate 'line', 4
- rx81_cur."!cursor_debug"("NEXT ", "unv")
+ if_null rx81_debug, debug_410
+ rx81_cur."!cursor_debug"("NEXT", "unv")
+ debug_410:
rx81_fail:
(rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
lt rx81_pos, -1, rx81_done
@@ -1271,14 +1322,16 @@
jump $I10
rx81_done:
rx81_cur."!cursor_fail"()
- rx81_cur."!cursor_debug"("FAIL ", "unv")
+ if_null rx81_debug, debug_411
+ rx81_cur."!cursor_debug"("FAIL", "unv")
+ debug_411:
.return (rx81_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv" :subid("24_1280467477.44751") :method
+.sub "!PREFIX__unv" :subid("24_1282324002.40722") :method
.annotate 'line', 4
new $P83, "ResizablePMCArray"
push $P83, ""
@@ -1289,7 +1342,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block87" :anon :subid("25_1280467477.44751") :method :outer("23_1280467477.44751")
+.sub "_block87" :anon :subid("25_1282324002.40722") :method :outer("23_1282324002.40722")
.annotate 'line', 46
.local string rx89_tgt
.local int rx89_pos
@@ -1297,7 +1350,9 @@
.local int rx89_eos
.local int rx89_rep
.local pmc rx89_cur
+ .local pmc rx89_debug
(rx89_cur, rx89_pos, rx89_tgt, $I10) = self."!cursor_start"()
+ getattribute rx89_debug, rx89_cur, "$!debug"
.lex unicode:"$\x{a2}", rx89_cur
.local pmc match
.lex "$/", match
@@ -1309,7 +1364,9 @@
substr rx89_tgt, rx89_tgt, rx89_off
rx89_start:
eq $I10, 1, rx89_restart
- rx89_cur."!cursor_debug"("START ", "")
+ if_null rx89_debug, debug_405
+ rx89_cur."!cursor_debug"("START", "")
+ debug_405:
$I10 = self.'from'()
ne $I10, -1, rxscan90_done
goto rxscan90_scan
@@ -1322,29 +1379,27 @@
set_addr $I10, rxscan90_loop
rx89_cur."!mark_push"(0, rx89_pos, $I10)
rxscan90_done:
- # rx rxquantr91 ** 0..*
- set_addr $I10, rxquantr91_done
- rx89_cur."!mark_push"(0, rx89_pos, $I10)
- rxquantr91_loop:
- # rx enumcharlist negate=0
- ge rx89_pos, rx89_eos, rx89_fail
+ # rx enumcharlist_q negate=0 r 0..-1
sub $I10, rx89_pos, rx89_off
+ set rx89_rep, 0
+ sub $I12, rx89_eos, rx89_pos
+ rxenumcharlistq91_loop:
+ le $I12, 0, rxenumcharlistq91_done
substr $S10, rx89_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx89_fail
- inc rx89_pos
- set_addr $I10, rxquantr91_done
- (rx89_rep) = rx89_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr91_done
- rx89_cur."!mark_push"(rx89_rep, rx89_pos, $I10)
- goto rxquantr91_loop
- rxquantr91_done:
+ lt $I11, 0, rxenumcharlistq91_done
+ inc rx89_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq91_loop
+ rxenumcharlistq91_done:
+ add rx89_pos, rx89_pos, rx89_rep
# rx literal "="
add $I11, rx89_pos, 1
gt $I11, rx89_eos, rx89_fail
sub $I11, rx89_pos, rx89_off
- substr $S10, rx89_tgt, $I11, 1
- ne $S10, "=", rx89_fail
+ ord $I11, rx89_tgt, $I11
+ ne $I11, 61, rx89_fail
add rx89_pos, 1
alt92_0:
set_addr $I10, alt92_1
@@ -1361,16 +1416,20 @@
add $I11, rx89_pos, 1
gt $I11, rx89_eos, rx89_fail
sub $I11, rx89_pos, rx89_off
- substr $S10, rx89_tgt, $I11, 1
- ne $S10, "\\", rx89_fail
+ ord $I11, rx89_tgt, $I11
+ ne $I11, 92, rx89_fail
add rx89_pos, 1
alt92_end:
# rx pass
rx89_cur."!cursor_pass"(rx89_pos, "")
- rx89_cur."!cursor_debug"("PASS ", "", " at pos=", rx89_pos)
+ if_null rx89_debug, debug_406
+ rx89_cur."!cursor_debug"("PASS", "", " at pos=", rx89_pos)
+ debug_406:
.return (rx89_cur)
rx89_restart:
- rx89_cur."!cursor_debug"("NEXT ", "")
+ if_null rx89_debug, debug_407
+ rx89_cur."!cursor_debug"("NEXT", "")
+ debug_407:
rx89_fail:
(rx89_rep, rx89_pos, $I10, $P10) = rx89_cur."!mark_fail"(0)
lt rx89_pos, -1, rx89_done
@@ -1378,16 +1437,18 @@
jump $I10
rx89_done:
rx89_cur."!cursor_fail"()
- rx89_cur."!cursor_debug"("FAIL ", "")
+ if_null rx89_debug, debug_408
+ rx89_cur."!cursor_debug"("FAIL", "")
+ debug_408:
.return (rx89_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "pod_comment" :subid("26_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "pod_comment" :subid("26_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
- .const 'Sub' $P127 = "28_1280467477.44751"
+ .const 'Sub' $P127 = "28_1282324002.40722"
capture_lex $P127
.local string rx96_tgt
.local int rx96_pos
@@ -1395,7 +1456,9 @@
.local int rx96_eos
.local int rx96_rep
.local pmc rx96_cur
+ .local pmc rx96_debug
(rx96_cur, rx96_pos, rx96_tgt, $I10) = self."!cursor_start"()
+ getattribute rx96_debug, rx96_cur, "$!debug"
.lex unicode:"$\x{a2}", rx96_cur
.local pmc match
.lex "$/", match
@@ -1407,7 +1470,9 @@
substr rx96_tgt, rx96_tgt, rx96_off
rx96_start:
eq $I10, 1, rx96_restart
- rx96_cur."!cursor_debug"("START ", "pod_comment")
+ if_null rx96_debug, debug_412
+ rx96_cur."!cursor_debug"("START", "pod_comment")
+ debug_412:
$I10 = self.'from'()
ne $I10, -1, rxscan99_done
goto rxscan99_scan
@@ -1429,29 +1494,27 @@
is_cclass $I11, 4096, rx96_tgt, $I10
unless $I11, rx96_fail
rxanchor100_done:
- # rx rxquantr101 ** 0..*
- set_addr $I10, rxquantr101_done
- rx96_cur."!mark_push"(0, rx96_pos, $I10)
- rxquantr101_loop:
- # rx enumcharlist negate=0
- ge rx96_pos, rx96_eos, rx96_fail
+ # rx enumcharlist_q negate=0 r 0..-1
sub $I10, rx96_pos, rx96_off
+ set rx96_rep, 0
+ sub $I12, rx96_eos, rx96_pos
+ rxenumcharlistq101_loop:
+ le $I12, 0, rxenumcharlistq101_done
substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx96_fail
- inc rx96_pos
- set_addr $I10, rxquantr101_done
- (rx96_rep) = rx96_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr101_done
- rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
- goto rxquantr101_loop
- rxquantr101_done:
+ lt $I11, 0, rxenumcharlistq101_done
+ inc rx96_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq101_loop
+ rxenumcharlistq101_done:
+ add rx96_pos, rx96_pos, rx96_rep
# rx literal "="
add $I11, rx96_pos, 1
gt $I11, rx96_eos, rx96_fail
sub $I11, rx96_pos, rx96_off
- substr $S10, rx96_tgt, $I11, 1
- ne $S10, "=", rx96_fail
+ ord $I11, rx96_tgt, $I11
+ ne $I11, 61, rx96_fail
add rx96_pos, 1
alt102_0:
.annotate 'line', 54
@@ -1465,23 +1528,22 @@
substr $S10, rx96_tgt, $I11, 5
ne $S10, "begin", rx96_fail
add rx96_pos, 5
- # rx rxquantr103 ** 1..*
- set_addr $I10, rxquantr103_done
- rx96_cur."!mark_push"(0, -1, $I10)
- rxquantr103_loop:
- # rx enumcharlist negate=0
- ge rx96_pos, rx96_eos, rx96_fail
+ # rx enumcharlist_q negate=0 r 1..-1
sub $I10, rx96_pos, rx96_off
+ set rx96_rep, 0
+ sub $I12, rx96_eos, rx96_pos
+ rxenumcharlistq103_loop:
+ le $I12, 0, rxenumcharlistq103_done
substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx96_fail
- inc rx96_pos
- set_addr $I10, rxquantr103_done
- (rx96_rep) = rx96_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr103_done
- rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
- goto rxquantr103_loop
- rxquantr103_done:
+ lt $I11, 0, rxenumcharlistq103_done
+ inc rx96_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq103_loop
+ rxenumcharlistq103_done:
+ lt rx96_rep, 1, rx96_fail
+ add rx96_pos, rx96_pos, rx96_rep
# rx literal "END"
add $I11, rx96_pos, 3
gt $I11, rx96_eos, rx96_fail
@@ -1521,23 +1583,21 @@
iseq $I11, $S10, "\r\n"
add rx96_pos, $I11
inc rx96_pos
- # rx rxquantr107 ** 0..*
- set_addr $I10, rxquantr107_done
- rx96_cur."!mark_push"(0, rx96_pos, $I10)
- rxquantr107_loop:
- # rx enumcharlist negate=0
- ge rx96_pos, rx96_eos, rx96_fail
+ # rx enumcharlist_q negate=0 r 0..-1
sub $I10, rx96_pos, rx96_off
+ set rx96_rep, 0
+ sub $I12, rx96_eos, rx96_pos
+ rxenumcharlistq107_loop:
+ le $I12, 0, rxenumcharlistq107_done
substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx96_fail
- inc rx96_pos
- set_addr $I10, rxquantr107_done
- (rx96_rep) = rx96_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr107_done
- rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
- goto rxquantr107_loop
- rxquantr107_done:
+ lt $I11, 0, rxenumcharlistq107_done
+ inc rx96_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq107_loop
+ rxenumcharlistq107_done:
+ add rx96_pos, rx96_pos, rx96_rep
# rx literal "=end"
add $I11, rx96_pos, 4
gt $I11, rx96_eos, rx96_fail
@@ -1545,23 +1605,22 @@
substr $S10, rx96_tgt, $I11, 4
ne $S10, "=end", rx96_fail
add rx96_pos, 4
- # rx rxquantr108 ** 1..*
- set_addr $I10, rxquantr108_done
- rx96_cur."!mark_push"(0, -1, $I10)
- rxquantr108_loop:
- # rx enumcharlist negate=0
- ge rx96_pos, rx96_eos, rx96_fail
+ # rx enumcharlist_q negate=0 r 1..-1
sub $I10, rx96_pos, rx96_off
+ set rx96_rep, 0
+ sub $I12, rx96_eos, rx96_pos
+ rxenumcharlistq108_loop:
+ le $I12, 0, rxenumcharlistq108_done
substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx96_fail
- inc rx96_pos
- set_addr $I10, rxquantr108_done
- (rx96_rep) = rx96_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr108_done
- rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
- goto rxquantr108_loop
- rxquantr108_done:
+ lt $I11, 0, rxenumcharlistq108_done
+ inc rx96_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq108_loop
+ rxenumcharlistq108_done:
+ lt rx96_rep, 1, rx96_fail
+ add rx96_pos, rx96_pos, rx96_rep
# rx literal "END"
add $I11, rx96_pos, 3
gt $I11, rx96_eos, rx96_fail
@@ -1601,23 +1660,22 @@
substr $S10, rx96_tgt, $I11, 5
ne $S10, "begin", rx96_fail
add rx96_pos, 5
- # rx rxquantr109 ** 1..*
- set_addr $I10, rxquantr109_done
- rx96_cur."!mark_push"(0, -1, $I10)
- rxquantr109_loop:
- # rx enumcharlist negate=0
- ge rx96_pos, rx96_eos, rx96_fail
+ # rx enumcharlist_q negate=0 r 1..-1
sub $I10, rx96_pos, rx96_off
+ set rx96_rep, 0
+ sub $I12, rx96_eos, rx96_pos
+ rxenumcharlistq109_loop:
+ le $I12, 0, rxenumcharlistq109_done
substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx96_fail
- inc rx96_pos
- set_addr $I10, rxquantr109_done
- (rx96_rep) = rx96_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr109_done
- rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
- goto rxquantr109_loop
- rxquantr109_done:
+ lt $I11, 0, rxenumcharlistq109_done
+ inc rx96_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq109_loop
+ rxenumcharlistq109_done:
+ lt rx96_rep, 1, rx96_fail
+ add rx96_pos, rx96_pos, rx96_rep
# rx subrule "identifier" subtype=capture negate=
rx96_cur."!cursor_pos"(rx96_pos)
$P10 = rx96_cur."identifier"()
@@ -1650,23 +1708,21 @@
iseq $I11, $S10, "\r\n"
add rx96_pos, $I11
inc rx96_pos
- # rx rxquantr113 ** 0..*
- set_addr $I10, rxquantr113_done
- rx96_cur."!mark_push"(0, rx96_pos, $I10)
- rxquantr113_loop:
- # rx enumcharlist negate=0
- ge rx96_pos, rx96_eos, rx96_fail
+ # rx enumcharlist_q negate=0 r 0..-1
sub $I10, rx96_pos, rx96_off
+ set rx96_rep, 0
+ sub $I12, rx96_eos, rx96_pos
+ rxenumcharlistq113_loop:
+ le $I12, 0, rxenumcharlistq113_done
substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx96_fail
- inc rx96_pos
- set_addr $I10, rxquantr113_done
- (rx96_rep) = rx96_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr113_done
- rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
- goto rxquantr113_loop
- rxquantr113_done:
+ lt $I11, 0, rxenumcharlistq113_done
+ inc rx96_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq113_loop
+ rxenumcharlistq113_done:
+ add rx96_pos, rx96_pos, rx96_rep
# rx literal "=end"
add $I11, rx96_pos, 4
gt $I11, rx96_eos, rx96_fail
@@ -1674,23 +1730,22 @@
substr $S10, rx96_tgt, $I11, 4
ne $S10, "=end", rx96_fail
add rx96_pos, 4
- # rx rxquantr114 ** 1..*
- set_addr $I10, rxquantr114_done
- rx96_cur."!mark_push"(0, -1, $I10)
- rxquantr114_loop:
- # rx enumcharlist negate=0
- ge rx96_pos, rx96_eos, rx96_fail
+ # rx enumcharlist_q negate=0 r 1..-1
sub $I10, rx96_pos, rx96_off
+ set rx96_rep, 0
+ sub $I12, rx96_eos, rx96_pos
+ rxenumcharlistq114_loop:
+ le $I12, 0, rxenumcharlistq114_done
substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx96_fail
- inc rx96_pos
- set_addr $I10, rxquantr114_done
- (rx96_rep) = rx96_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr114_done
- rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
- goto rxquantr114_loop
- rxquantr114_done:
+ lt $I11, 0, rxenumcharlistq114_done
+ inc rx96_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq114_loop
+ rxenumcharlistq114_done:
+ lt rx96_rep, 1, rx96_fail
+ add rx96_pos, rx96_pos, rx96_rep
# rx subrule "!BACKREF" subtype=method negate=
rx96_cur."!cursor_pos"(rx96_pos)
$P10 = rx96_cur."!BACKREF"("identifier")
@@ -1738,23 +1793,21 @@
dec $I10
is_cclass $I11, 8192, rx96_tgt, $I10
unless $I11, rx96_fail
- # rx rxquantr116 ** 0..*
- set_addr $I10, rxquantr116_done
- rx96_cur."!mark_push"(0, rx96_pos, $I10)
- rxquantr116_loop:
- # rx enumcharlist negate=0
- ge rx96_pos, rx96_eos, rx96_fail
+ # rx enumcharlist_q negate=0 r 0..-1
sub $I10, rx96_pos, rx96_off
+ set rx96_rep, 0
+ sub $I12, rx96_eos, rx96_pos
+ rxenumcharlistq116_loop:
+ le $I12, 0, rxenumcharlistq116_done
substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx96_fail
- inc rx96_pos
- set_addr $I10, rxquantr116_done
- (rx96_rep) = rx96_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr116_done
- rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
- goto rxquantr116_loop
- rxquantr116_done:
+ lt $I11, 0, rxenumcharlistq116_done
+ inc rx96_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq116_loop
+ rxenumcharlistq116_done:
+ add rx96_pos, rx96_pos, rx96_rep
alt117_0:
.annotate 'line', 63
set_addr $I10, alt117_1
@@ -1777,8 +1830,8 @@
add $I11, rx96_pos, 1
gt $I11, rx96_eos, rx96_fail
sub $I11, rx96_pos, rx96_off
- substr $S10, rx96_tgt, $I11, 1
- ne $S10, "#", rx96_fail
+ ord $I11, rx96_tgt, $I11
+ ne $I11, 35, rx96_fail
add rx96_pos, 1
goto alt117_end
alt117_2:
@@ -1813,23 +1866,21 @@
iseq $I11, $S10, "\r\n"
add rx96_pos, $I11
inc rx96_pos
- # rx rxquantr122 ** 0..*
- set_addr $I10, rxquantr122_done
- rx96_cur."!mark_push"(0, rx96_pos, $I10)
- rxquantr122_loop:
- # rx enumcharlist negate=0
- ge rx96_pos, rx96_eos, rx96_fail
+ # rx enumcharlist_q negate=0 r 0..-1
sub $I10, rx96_pos, rx96_off
+ set rx96_rep, 0
+ sub $I12, rx96_eos, rx96_pos
+ rxenumcharlistq122_loop:
+ le $I12, 0, rxenumcharlistq122_done
substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx96_fail
- inc rx96_pos
- set_addr $I10, rxquantr122_done
- (rx96_rep) = rx96_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr122_done
- rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
- goto rxquantr122_loop
- rxquantr122_done:
+ lt $I11, 0, rxenumcharlistq122_done
+ inc rx96_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq122_loop
+ rxenumcharlistq122_done:
+ add rx96_pos, rx96_pos, rx96_rep
# rx literal "=end"
add $I11, rx96_pos, 4
gt $I11, rx96_eos, rx96_fail
@@ -1893,7 +1944,7 @@
rxanchor125_done:
# rx subrule "before" subtype=zerowidth negate=
rx96_cur."!cursor_pos"(rx96_pos)
- .const 'Sub' $P127 = "28_1280467477.44751"
+ .const 'Sub' $P127 = "28_1282324002.40722"
capture_lex $P127
$P10 = rx96_cur."before"($P127)
unless $P10, rx96_fail
@@ -1927,11 +1978,15 @@
.annotate 'line', 52
# rx pass
rx96_cur."!cursor_pass"(rx96_pos, "pod_comment")
- rx96_cur."!cursor_debug"("PASS ", "pod_comment", " at pos=", rx96_pos)
+ if_null rx96_debug, debug_417
+ rx96_cur."!cursor_debug"("PASS", "pod_comment", " at pos=", rx96_pos)
+ debug_417:
.return (rx96_cur)
rx96_restart:
.annotate 'line', 4
- rx96_cur."!cursor_debug"("NEXT ", "pod_comment")
+ if_null rx96_debug, debug_418
+ rx96_cur."!cursor_debug"("NEXT", "pod_comment")
+ debug_418:
rx96_fail:
(rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
lt rx96_pos, -1, rx96_done
@@ -1939,14 +1994,16 @@
jump $I10
rx96_done:
rx96_cur."!cursor_fail"()
- rx96_cur."!cursor_debug"("FAIL ", "pod_comment")
+ if_null rx96_debug, debug_419
+ rx96_cur."!cursor_debug"("FAIL", "pod_comment")
+ debug_419:
.return (rx96_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment" :subid("27_1280467477.44751") :method
+.sub "!PREFIX__pod_comment" :subid("27_1282324002.40722") :method
.annotate 'line', 4
new $P98, "ResizablePMCArray"
push $P98, ""
@@ -1955,7 +2012,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block126" :anon :subid("28_1280467477.44751") :method :outer("26_1280467477.44751")
+.sub "_block126" :anon :subid("28_1282324002.40722") :method :outer("26_1282324002.40722")
.annotate 'line', 69
.local string rx128_tgt
.local int rx128_pos
@@ -1963,7 +2020,9 @@
.local int rx128_eos
.local int rx128_rep
.local pmc rx128_cur
+ .local pmc rx128_debug
(rx128_cur, rx128_pos, rx128_tgt, $I10) = self."!cursor_start"()
+ getattribute rx128_debug, rx128_cur, "$!debug"
.lex unicode:"$\x{a2}", rx128_cur
.local pmc match
.lex "$/", match
@@ -1975,7 +2034,9 @@
substr rx128_tgt, rx128_tgt, rx128_off
rx128_start:
eq $I10, 1, rx128_restart
- rx128_cur."!cursor_debug"("START ", "")
+ if_null rx128_debug, debug_413
+ rx128_cur."!cursor_debug"("START", "")
+ debug_413:
$I10 = self.'from'()
ne $I10, -1, rxscan129_done
goto rxscan129_scan
@@ -1988,23 +2049,21 @@
set_addr $I10, rxscan129_loop
rx128_cur."!mark_push"(0, rx128_pos, $I10)
rxscan129_done:
- # rx rxquantr130 ** 0..*
- set_addr $I10, rxquantr130_done
- rx128_cur."!mark_push"(0, rx128_pos, $I10)
- rxquantr130_loop:
- # rx enumcharlist negate=0
- ge rx128_pos, rx128_eos, rx128_fail
+ # rx enumcharlist_q negate=0 r 0..-1
sub $I10, rx128_pos, rx128_off
+ set rx128_rep, 0
+ sub $I12, rx128_eos, rx128_pos
+ rxenumcharlistq130_loop:
+ le $I12, 0, rxenumcharlistq130_done
substr $S10, rx128_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx128_fail
- inc rx128_pos
- set_addr $I10, rxquantr130_done
- (rx128_rep) = rx128_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr130_done
- rx128_cur."!mark_push"(rx128_rep, rx128_pos, $I10)
- goto rxquantr130_loop
- rxquantr130_done:
+ lt $I11, 0, rxenumcharlistq130_done
+ inc rx128_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq130_loop
+ rxenumcharlistq130_done:
+ add rx128_pos, rx128_pos, rx128_rep
alt131_0:
set_addr $I10, alt131_1
rx128_cur."!mark_push"(0, rx128_pos, $I10)
@@ -2013,8 +2072,8 @@
add $I11, rx128_pos, 1
gt $I11, rx128_eos, rx128_fail
sub $I11, rx128_pos, rx128_off
- substr $S10, rx128_tgt, $I11, 1
- ne $S10, "=", rx128_fail
+ ord $I11, rx128_tgt, $I11
+ ne $I11, 61, rx128_fail
add rx128_pos, 1
.annotate 'line', 72
# rx rxquantr132 ** 0..1
@@ -2063,10 +2122,14 @@
.annotate 'line', 69
# rx pass
rx128_cur."!cursor_pass"(rx128_pos, "")
- rx128_cur."!cursor_debug"("PASS ", "", " at pos=", rx128_pos)
+ if_null rx128_debug, debug_414
+ rx128_cur."!cursor_debug"("PASS", "", " at pos=", rx128_pos)
+ debug_414:
.return (rx128_cur)
rx128_restart:
- rx128_cur."!cursor_debug"("NEXT ", "")
+ if_null rx128_debug, debug_415
+ rx128_cur."!cursor_debug"("NEXT", "")
+ debug_415:
rx128_fail:
(rx128_rep, rx128_pos, $I10, $P10) = rx128_cur."!mark_fail"(0)
lt rx128_pos, -1, rx128_done
@@ -2074,14 +2137,16 @@
jump $I10
rx128_done:
rx128_cur."!cursor_fail"()
- rx128_cur."!cursor_debug"("FAIL ", "")
+ if_null rx128_debug, debug_416
+ rx128_cur."!cursor_debug"("FAIL", "")
+ debug_416:
.return (rx128_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "comp_unit" :subid("29_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "comp_unit" :subid("29_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx135_tgt
.local int rx135_pos
@@ -2089,7 +2154,9 @@
.local int rx135_eos
.local int rx135_rep
.local pmc rx135_cur
+ .local pmc rx135_debug
(rx135_cur, rx135_pos, rx135_tgt, $I10) = self."!cursor_start"()
+ getattribute rx135_debug, rx135_cur, "$!debug"
.lex unicode:"$\x{a2}", rx135_cur
.local pmc match
.lex "$/", match
@@ -2101,7 +2168,9 @@
substr rx135_tgt, rx135_tgt, rx135_off
rx135_start:
eq $I10, 1, rx135_restart
- rx135_cur."!cursor_debug"("START ", "comp_unit")
+ if_null rx135_debug, debug_420
+ rx135_cur."!cursor_debug"("START", "comp_unit")
+ debug_420:
$I10 = self.'from'()
ne $I10, -1, rxscan139_done
goto rxscan139_scan
@@ -2151,11 +2220,15 @@
.annotate 'line', 83
# rx pass
rx135_cur."!cursor_pass"(rx135_pos, "comp_unit")
- rx135_cur."!cursor_debug"("PASS ", "comp_unit", " at pos=", rx135_pos)
+ if_null rx135_debug, debug_421
+ rx135_cur."!cursor_debug"("PASS", "comp_unit", " at pos=", rx135_pos)
+ debug_421:
.return (rx135_cur)
rx135_restart:
.annotate 'line', 4
- rx135_cur."!cursor_debug"("NEXT ", "comp_unit")
+ if_null rx135_debug, debug_422
+ rx135_cur."!cursor_debug"("NEXT", "comp_unit")
+ debug_422:
rx135_fail:
(rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
lt rx135_pos, -1, rx135_done
@@ -2163,14 +2236,16 @@
jump $I10
rx135_done:
rx135_cur."!cursor_fail"()
- rx135_cur."!cursor_debug"("FAIL ", "comp_unit")
+ if_null rx135_debug, debug_423
+ rx135_cur."!cursor_debug"("FAIL", "comp_unit")
+ debug_423:
.return (rx135_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit" :subid("30_1280467477.44751") :method
+.sub "!PREFIX__comp_unit" :subid("30_1282324002.40722") :method
.annotate 'line', 4
$P137 = self."!PREFIX__!subrule"("newpad", "")
new $P138, "ResizablePMCArray"
@@ -2180,7 +2255,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statementlist" :subid("31_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statementlist" :subid("31_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx142_tgt
.local int rx142_pos
@@ -2188,8 +2263,10 @@
.local int rx142_eos
.local int rx142_rep
.local pmc rx142_cur
+ .local pmc rx142_debug
(rx142_cur, rx142_pos, rx142_tgt, $I10) = self."!cursor_start"()
rx142_cur."!cursor_caparray"("statement")
+ getattribute rx142_debug, rx142_cur, "$!debug"
.lex unicode:"$\x{a2}", rx142_cur
.local pmc match
.lex "$/", match
@@ -2201,7 +2278,9 @@
substr rx142_tgt, rx142_tgt, rx142_off
rx142_start:
eq $I10, 1, rx142_restart
- rx142_cur."!cursor_debug"("START ", "statementlist")
+ if_null rx142_debug, debug_424
+ rx142_cur."!cursor_debug"("START", "statementlist")
+ debug_424:
$I10 = self.'from'()
ne $I10, -1, rxscan147_done
goto rxscan147_scan
@@ -2275,11 +2354,15 @@
.annotate 'line', 90
# rx pass
rx142_cur."!cursor_pass"(rx142_pos, "statementlist")
- rx142_cur."!cursor_debug"("PASS ", "statementlist", " at pos=", rx142_pos)
+ if_null rx142_debug, debug_425
+ rx142_cur."!cursor_debug"("PASS", "statementlist", " at pos=", rx142_pos)
+ debug_425:
.return (rx142_cur)
rx142_restart:
.annotate 'line', 4
- rx142_cur."!cursor_debug"("NEXT ", "statementlist")
+ if_null rx142_debug, debug_426
+ rx142_cur."!cursor_debug"("NEXT", "statementlist")
+ debug_426:
rx142_fail:
(rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
lt rx142_pos, -1, rx142_done
@@ -2287,14 +2370,16 @@
jump $I10
rx142_done:
rx142_cur."!cursor_fail"()
- rx142_cur."!cursor_debug"("FAIL ", "statementlist")
+ if_null rx142_debug, debug_427
+ rx142_cur."!cursor_debug"("FAIL", "statementlist")
+ debug_427:
.return (rx142_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist" :subid("32_1280467477.44751") :method
+.sub "!PREFIX__statementlist" :subid("32_1282324002.40722") :method
.annotate 'line', 4
$P144 = self."!PREFIX__!subrule"("ws", "")
$P145 = self."!PREFIX__!subrule"("ws", "")
@@ -2306,9 +2391,9 @@
.namespace ["NQP";"Grammar"]
-.sub "statement" :subid("33_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement" :subid("33_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
- .const 'Sub' $P161 = "35_1280467477.44751"
+ .const 'Sub' $P161 = "35_1282324002.40722"
capture_lex $P161
.local string rx156_tgt
.local int rx156_pos
@@ -2316,8 +2401,10 @@
.local int rx156_eos
.local int rx156_rep
.local pmc rx156_cur
+ .local pmc rx156_debug
(rx156_cur, rx156_pos, rx156_tgt, $I10) = self."!cursor_start"()
rx156_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
+ getattribute rx156_debug, rx156_cur, "$!debug"
.lex unicode:"$\x{a2}", rx156_cur
.local pmc match
.lex "$/", match
@@ -2329,7 +2416,9 @@
substr rx156_tgt, rx156_tgt, rx156_off
rx156_start:
eq $I10, 1, rx156_restart
- rx156_cur."!cursor_debug"("START ", "statement")
+ if_null rx156_debug, debug_428
+ rx156_cur."!cursor_debug"("START", "statement")
+ debug_428:
$I10 = self.'from'()
ne $I10, -1, rxscan159_done
goto rxscan159_scan
@@ -2345,7 +2434,7 @@
.annotate 'line', 96
# rx subrule "before" subtype=zerowidth negate=1
rx156_cur."!cursor_pos"(rx156_pos)
- .const 'Sub' $P161 = "35_1280467477.44751"
+ .const 'Sub' $P161 = "35_1282324002.40722"
capture_lex $P161
$P10 = rx156_cur."before"($P161)
if $P10, rx156_fail
@@ -2441,11 +2530,15 @@
.annotate 'line', 95
# rx pass
rx156_cur."!cursor_pass"(rx156_pos, "statement")
- rx156_cur."!cursor_debug"("PASS ", "statement", " at pos=", rx156_pos)
+ if_null rx156_debug, debug_433
+ rx156_cur."!cursor_debug"("PASS", "statement", " at pos=", rx156_pos)
+ debug_433:
.return (rx156_cur)
rx156_restart:
.annotate 'line', 4
- rx156_cur."!cursor_debug"("NEXT ", "statement")
+ if_null rx156_debug, debug_434
+ rx156_cur."!cursor_debug"("NEXT", "statement")
+ debug_434:
rx156_fail:
(rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
lt rx156_pos, -1, rx156_done
@@ -2453,14 +2546,16 @@
jump $I10
rx156_done:
rx156_cur."!cursor_fail"()
- rx156_cur."!cursor_debug"("FAIL ", "statement")
+ if_null rx156_debug, debug_435
+ rx156_cur."!cursor_debug"("FAIL", "statement")
+ debug_435:
.return (rx156_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement" :subid("34_1280467477.44751") :method
+.sub "!PREFIX__statement" :subid("34_1282324002.40722") :method
.annotate 'line', 4
new $P158, "ResizablePMCArray"
push $P158, ""
@@ -2469,7 +2564,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block160" :anon :subid("35_1280467477.44751") :method :outer("33_1280467477.44751")
+.sub "_block160" :anon :subid("35_1282324002.40722") :method :outer("33_1282324002.40722")
.annotate 'line', 96
.local string rx162_tgt
.local int rx162_pos
@@ -2477,7 +2572,9 @@
.local int rx162_eos
.local int rx162_rep
.local pmc rx162_cur
+ .local pmc rx162_debug
(rx162_cur, rx162_pos, rx162_tgt, $I10) = self."!cursor_start"()
+ getattribute rx162_debug, rx162_cur, "$!debug"
.lex unicode:"$\x{a2}", rx162_cur
.local pmc match
.lex "$/", match
@@ -2489,7 +2586,9 @@
substr rx162_tgt, rx162_tgt, rx162_off
rx162_start:
eq $I10, 1, rx162_restart
- rx162_cur."!cursor_debug"("START ", "")
+ if_null rx162_debug, debug_429
+ rx162_cur."!cursor_debug"("START", "")
+ debug_429:
$I10 = self.'from'()
ne $I10, -1, rxscan163_done
goto rxscan163_scan
@@ -2519,10 +2618,14 @@
alt164_end:
# rx pass
rx162_cur."!cursor_pass"(rx162_pos, "")
- rx162_cur."!cursor_debug"("PASS ", "", " at pos=", rx162_pos)
+ if_null rx162_debug, debug_430
+ rx162_cur."!cursor_debug"("PASS", "", " at pos=", rx162_pos)
+ debug_430:
.return (rx162_cur)
rx162_restart:
- rx162_cur."!cursor_debug"("NEXT ", "")
+ if_null rx162_debug, debug_431
+ rx162_cur."!cursor_debug"("NEXT", "")
+ debug_431:
rx162_fail:
(rx162_rep, rx162_pos, $I10, $P10) = rx162_cur."!mark_fail"(0)
lt rx162_pos, -1, rx162_done
@@ -2530,14 +2633,16 @@
jump $I10
rx162_done:
rx162_cur."!cursor_fail"()
- rx162_cur."!cursor_debug"("FAIL ", "")
+ if_null rx162_debug, debug_432
+ rx162_cur."!cursor_debug"("FAIL", "")
+ debug_432:
.return (rx162_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "eat_terminator" :subid("36_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "eat_terminator" :subid("36_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx171_tgt
.local int rx171_pos
@@ -2545,7 +2650,9 @@
.local int rx171_eos
.local int rx171_rep
.local pmc rx171_cur
+ .local pmc rx171_debug
(rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+ getattribute rx171_debug, rx171_cur, "$!debug"
.lex unicode:"$\x{a2}", rx171_cur
.local pmc match
.lex "$/", match
@@ -2557,7 +2664,9 @@
substr rx171_tgt, rx171_tgt, rx171_off
rx171_start:
eq $I10, 1, rx171_restart
- rx171_cur."!cursor_debug"("START ", "eat_terminator")
+ if_null rx171_debug, debug_436
+ rx171_cur."!cursor_debug"("START", "eat_terminator")
+ debug_436:
$I10 = self.'from'()
ne $I10, -1, rxscan174_done
goto rxscan174_scan
@@ -2579,8 +2688,8 @@
add $I11, rx171_pos, 1
gt $I11, rx171_eos, rx171_fail
sub $I11, rx171_pos, rx171_off
- substr $S10, rx171_tgt, $I11, 1
- ne $S10, ";", rx171_fail
+ ord $I11, rx171_tgt, $I11
+ ne $I11, 59, rx171_fail
add rx171_pos, 1
goto alt175_end
alt175_1:
@@ -2609,11 +2718,15 @@
.annotate 'line', 108
# rx pass
rx171_cur."!cursor_pass"(rx171_pos, "eat_terminator")
- rx171_cur."!cursor_debug"("PASS ", "eat_terminator", " at pos=", rx171_pos)
+ if_null rx171_debug, debug_437
+ rx171_cur."!cursor_debug"("PASS", "eat_terminator", " at pos=", rx171_pos)
+ debug_437:
.return (rx171_cur)
rx171_restart:
.annotate 'line', 4
- rx171_cur."!cursor_debug"("NEXT ", "eat_terminator")
+ if_null rx171_debug, debug_438
+ rx171_cur."!cursor_debug"("NEXT", "eat_terminator")
+ debug_438:
rx171_fail:
(rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
lt rx171_pos, -1, rx171_done
@@ -2621,14 +2734,16 @@
jump $I10
rx171_done:
rx171_cur."!cursor_fail"()
- rx171_cur."!cursor_debug"("FAIL ", "eat_terminator")
+ if_null rx171_debug, debug_439
+ rx171_cur."!cursor_debug"("FAIL", "eat_terminator")
+ debug_439:
.return (rx171_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator" :subid("37_1280467477.44751") :method
+.sub "!PREFIX__eat_terminator" :subid("37_1282324002.40722") :method
.annotate 'line', 4
new $P173, "ResizablePMCArray"
push $P173, ""
@@ -2640,7 +2755,7 @@
.namespace ["NQP";"Grammar"]
-.sub "xblock" :subid("38_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "xblock" :subid("38_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx177_tgt
.local int rx177_pos
@@ -2648,7 +2763,9 @@
.local int rx177_eos
.local int rx177_rep
.local pmc rx177_cur
+ .local pmc rx177_debug
(rx177_cur, rx177_pos, rx177_tgt, $I10) = self."!cursor_start"()
+ getattribute rx177_debug, rx177_cur, "$!debug"
.lex unicode:"$\x{a2}", rx177_cur
.local pmc match
.lex "$/", match
@@ -2660,7 +2777,9 @@
substr rx177_tgt, rx177_tgt, rx177_off
rx177_start:
eq $I10, 1, rx177_restart
- rx177_cur."!cursor_debug"("START ", "xblock")
+ if_null rx177_debug, debug_440
+ rx177_cur."!cursor_debug"("START", "xblock")
+ debug_440:
$I10 = self.'from'()
ne $I10, -1, rxscan181_done
goto rxscan181_scan
@@ -2696,11 +2815,15 @@
.annotate 'line', 115
# rx pass
rx177_cur."!cursor_pass"(rx177_pos, "xblock")
- rx177_cur."!cursor_debug"("PASS ", "xblock", " at pos=", rx177_pos)
+ if_null rx177_debug, debug_441
+ rx177_cur."!cursor_debug"("PASS", "xblock", " at pos=", rx177_pos)
+ debug_441:
.return (rx177_cur)
rx177_restart:
.annotate 'line', 4
- rx177_cur."!cursor_debug"("NEXT ", "xblock")
+ if_null rx177_debug, debug_442
+ rx177_cur."!cursor_debug"("NEXT", "xblock")
+ debug_442:
rx177_fail:
(rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
lt rx177_pos, -1, rx177_done
@@ -2708,14 +2831,16 @@
jump $I10
rx177_done:
rx177_cur."!cursor_fail"()
- rx177_cur."!cursor_debug"("FAIL ", "xblock")
+ if_null rx177_debug, debug_443
+ rx177_cur."!cursor_debug"("FAIL", "xblock")
+ debug_443:
.return (rx177_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock" :subid("39_1280467477.44751") :method
+.sub "!PREFIX__xblock" :subid("39_1282324002.40722") :method
.annotate 'line', 4
$P179 = self."!PREFIX__!subrule"("EXPR", "")
new $P180, "ResizablePMCArray"
@@ -2725,7 +2850,7 @@
.namespace ["NQP";"Grammar"]
-.sub "pblock" :subid("40_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "pblock" :subid("40_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx183_tgt
.local int rx183_pos
@@ -2733,7 +2858,9 @@
.local int rx183_eos
.local int rx183_rep
.local pmc rx183_cur
+ .local pmc rx183_debug
(rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
+ getattribute rx183_debug, rx183_cur, "$!debug"
.lex unicode:"$\x{a2}", rx183_cur
.local pmc match
.lex "$/", match
@@ -2745,7 +2872,9 @@
substr rx183_tgt, rx183_tgt, rx183_off
rx183_start:
eq $I10, 1, rx183_restart
- rx183_cur."!cursor_debug"("START ", "pblock")
+ if_null rx183_debug, debug_444
+ rx183_cur."!cursor_debug"("START", "pblock")
+ debug_444:
$I10 = self.'from'()
ne $I10, -1, rxscan188_done
goto rxscan188_scan
@@ -2829,11 +2958,15 @@
.annotate 'line', 119
# rx pass
rx183_cur."!cursor_pass"(rx183_pos, "pblock")
- rx183_cur."!cursor_debug"("PASS ", "pblock", " at pos=", rx183_pos)
+ if_null rx183_debug, debug_445
+ rx183_cur."!cursor_debug"("PASS", "pblock", " at pos=", rx183_pos)
+ debug_445:
.return (rx183_cur)
rx183_restart:
.annotate 'line', 4
- rx183_cur."!cursor_debug"("NEXT ", "pblock")
+ if_null rx183_debug, debug_446
+ rx183_cur."!cursor_debug"("NEXT", "pblock")
+ debug_446:
rx183_fail:
(rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
lt rx183_pos, -1, rx183_done
@@ -2841,14 +2974,16 @@
jump $I10
rx183_done:
rx183_cur."!cursor_fail"()
- rx183_cur."!cursor_debug"("FAIL ", "pblock")
+ if_null rx183_debug, debug_447
+ rx183_cur."!cursor_debug"("FAIL", "pblock")
+ debug_447:
.return (rx183_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock" :subid("41_1280467477.44751") :method
+.sub "!PREFIX__pblock" :subid("41_1282324002.40722") :method
.annotate 'line', 4
$P185 = self."!PREFIX__!subrule"("panic", "")
$P186 = self."!PREFIX__!subrule"("lambda", "")
@@ -2861,7 +2996,7 @@
.namespace ["NQP";"Grammar"]
-.sub "lambda" :subid("42_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "lambda" :subid("42_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx191_tgt
.local int rx191_pos
@@ -2869,7 +3004,9 @@
.local int rx191_eos
.local int rx191_rep
.local pmc rx191_cur
+ .local pmc rx191_debug
(rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"()
+ getattribute rx191_debug, rx191_cur, "$!debug"
.lex unicode:"$\x{a2}", rx191_cur
.local pmc match
.lex "$/", match
@@ -2881,7 +3018,9 @@
substr rx191_tgt, rx191_tgt, rx191_off
rx191_start:
eq $I10, 1, rx191_restart
- rx191_cur."!cursor_debug"("START ", "lambda")
+ if_null rx191_debug, debug_448
+ rx191_cur."!cursor_debug"("START", "lambda")
+ debug_448:
$I10 = self.'from'()
ne $I10, -1, rxscan194_done
goto rxscan194_scan
@@ -2917,11 +3056,15 @@
alt195_end:
# rx pass
rx191_cur."!cursor_pass"(rx191_pos, "lambda")
- rx191_cur."!cursor_debug"("PASS ", "lambda", " at pos=", rx191_pos)
+ if_null rx191_debug, debug_449
+ rx191_cur."!cursor_debug"("PASS", "lambda", " at pos=", rx191_pos)
+ debug_449:
.return (rx191_cur)
rx191_restart:
.annotate 'line', 4
- rx191_cur."!cursor_debug"("NEXT ", "lambda")
+ if_null rx191_debug, debug_450
+ rx191_cur."!cursor_debug"("NEXT", "lambda")
+ debug_450:
rx191_fail:
(rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
lt rx191_pos, -1, rx191_done
@@ -2929,14 +3072,16 @@
jump $I10
rx191_done:
rx191_cur."!cursor_fail"()
- rx191_cur."!cursor_debug"("FAIL ", "lambda")
+ if_null rx191_debug, debug_451
+ rx191_cur."!cursor_debug"("FAIL", "lambda")
+ debug_451:
.return (rx191_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda" :subid("43_1280467477.44751") :method
+.sub "!PREFIX__lambda" :subid("43_1282324002.40722") :method
.annotate 'line', 4
new $P193, "ResizablePMCArray"
push $P193, "<->"
@@ -2946,7 +3091,7 @@
.namespace ["NQP";"Grammar"]
-.sub "block" :subid("44_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "block" :subid("44_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx197_tgt
.local int rx197_pos
@@ -2954,7 +3099,9 @@
.local int rx197_eos
.local int rx197_rep
.local pmc rx197_cur
+ .local pmc rx197_debug
(rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"()
+ getattribute rx197_debug, rx197_cur, "$!debug"
.lex unicode:"$\x{a2}", rx197_cur
.local pmc match
.lex "$/", match
@@ -2966,7 +3113,9 @@
substr rx197_tgt, rx197_tgt, rx197_off
rx197_start:
eq $I10, 1, rx197_restart
- rx197_cur."!cursor_debug"("START ", "block")
+ if_null rx197_debug, debug_452
+ rx197_cur."!cursor_debug"("START", "block")
+ debug_452:
$I10 = self.'from'()
ne $I10, -1, rxscan201_done
goto rxscan201_scan
@@ -3014,11 +3163,15 @@
.annotate 'line', 132
# rx pass
rx197_cur."!cursor_pass"(rx197_pos, "block")
- rx197_cur."!cursor_debug"("PASS ", "block", " at pos=", rx197_pos)
+ if_null rx197_debug, debug_453
+ rx197_cur."!cursor_debug"("PASS", "block", " at pos=", rx197_pos)
+ debug_453:
.return (rx197_cur)
rx197_restart:
.annotate 'line', 4
- rx197_cur."!cursor_debug"("NEXT ", "block")
+ if_null rx197_debug, debug_454
+ rx197_cur."!cursor_debug"("NEXT", "block")
+ debug_454:
rx197_fail:
(rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
lt rx197_pos, -1, rx197_done
@@ -3026,14 +3179,16 @@
jump $I10
rx197_done:
rx197_cur."!cursor_fail"()
- rx197_cur."!cursor_debug"("FAIL ", "block")
+ if_null rx197_debug, debug_455
+ rx197_cur."!cursor_debug"("FAIL", "block")
+ debug_455:
.return (rx197_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block" :subid("45_1280467477.44751") :method
+.sub "!PREFIX__block" :subid("45_1282324002.40722") :method
.annotate 'line', 4
$P199 = self."!PREFIX__!subrule"("panic", "")
new $P200, "ResizablePMCArray"
@@ -3044,7 +3199,7 @@
.namespace ["NQP";"Grammar"]
-.sub "blockoid" :subid("46_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "blockoid" :subid("46_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx204_tgt
.local int rx204_pos
@@ -3052,7 +3207,9 @@
.local int rx204_eos
.local int rx204_rep
.local pmc rx204_cur
+ .local pmc rx204_debug
(rx204_cur, rx204_pos, rx204_tgt, $I10) = self."!cursor_start"()
+ getattribute rx204_debug, rx204_cur, "$!debug"
.lex unicode:"$\x{a2}", rx204_cur
.local pmc match
.lex "$/", match
@@ -3064,7 +3221,9 @@
substr rx204_tgt, rx204_tgt, rx204_off
rx204_start:
eq $I10, 1, rx204_restart
- rx204_cur."!cursor_debug"("START ", "blockoid")
+ if_null rx204_debug, debug_456
+ rx204_cur."!cursor_debug"("START", "blockoid")
+ debug_456:
$I10 = self.'from'()
ne $I10, -1, rxscan208_done
goto rxscan208_scan
@@ -3088,8 +3247,8 @@
add $I11, rx204_pos, 1
gt $I11, rx204_eos, rx204_fail
sub $I11, rx204_pos, rx204_off
- substr $S10, rx204_tgt, $I11, 1
- ne $S10, "{", rx204_fail
+ ord $I11, rx204_tgt, $I11
+ ne $I11, 123, rx204_fail
add rx204_pos, 1
# rx subrule "statementlist" subtype=capture negate=
rx204_cur."!cursor_pos"(rx204_pos)
@@ -3105,8 +3264,8 @@
add $I11, rx204_pos, 1
gt $I11, rx204_eos, rx204_fail
sub $I11, rx204_pos, rx204_off
- substr $S10, rx204_tgt, $I11, 1
- ne $S10, "}", rx204_fail
+ ord $I11, rx204_tgt, $I11
+ ne $I11, 125, rx204_fail
add rx204_pos, 1
goto alt209_end
alt209_1:
@@ -3131,11 +3290,15 @@
.annotate 'line', 138
# rx pass
rx204_cur."!cursor_pass"(rx204_pos, "blockoid")
- rx204_cur."!cursor_debug"("PASS ", "blockoid", " at pos=", rx204_pos)
+ if_null rx204_debug, debug_457
+ rx204_cur."!cursor_debug"("PASS", "blockoid", " at pos=", rx204_pos)
+ debug_457:
.return (rx204_cur)
rx204_restart:
.annotate 'line', 4
- rx204_cur."!cursor_debug"("NEXT ", "blockoid")
+ if_null rx204_debug, debug_458
+ rx204_cur."!cursor_debug"("NEXT", "blockoid")
+ debug_458:
rx204_fail:
(rx204_rep, rx204_pos, $I10, $P10) = rx204_cur."!mark_fail"(0)
lt rx204_pos, -1, rx204_done
@@ -3143,14 +3306,16 @@
jump $I10
rx204_done:
rx204_cur."!cursor_fail"()
- rx204_cur."!cursor_debug"("FAIL ", "blockoid")
+ if_null rx204_debug, debug_459
+ rx204_cur."!cursor_debug"("FAIL", "blockoid")
+ debug_459:
.return (rx204_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid" :subid("47_1280467477.44751") :method
+.sub "!PREFIX__blockoid" :subid("47_1282324002.40722") :method
.annotate 'line', 4
$P206 = self."!PREFIX__!subrule"("finishpad", "")
new $P207, "ResizablePMCArray"
@@ -3160,7 +3325,7 @@
.namespace ["NQP";"Grammar"]
-.sub "newpad" :subid("48_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "newpad" :subid("48_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx213_tgt
.local int rx213_pos
@@ -3168,7 +3333,9 @@
.local int rx213_eos
.local int rx213_rep
.local pmc rx213_cur
+ .local pmc rx213_debug
(rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"()
+ getattribute rx213_debug, rx213_cur, "$!debug"
.lex unicode:"$\x{a2}", rx213_cur
.local pmc match
.lex "$/", match
@@ -3180,7 +3347,9 @@
substr rx213_tgt, rx213_tgt, rx213_off
rx213_start:
eq $I10, 1, rx213_restart
- rx213_cur."!cursor_debug"("START ", "newpad")
+ if_null rx213_debug, debug_460
+ rx213_cur."!cursor_debug"("START", "newpad")
+ debug_460:
$I10 = self.'from'()
ne $I10, -1, rxscan216_done
goto rxscan216_scan
@@ -3196,11 +3365,15 @@
.annotate 'line', 144
# rx pass
rx213_cur."!cursor_pass"(rx213_pos, "newpad")
- rx213_cur."!cursor_debug"("PASS ", "newpad", " at pos=", rx213_pos)
+ if_null rx213_debug, debug_461
+ rx213_cur."!cursor_debug"("PASS", "newpad", " at pos=", rx213_pos)
+ debug_461:
.return (rx213_cur)
rx213_restart:
.annotate 'line', 4
- rx213_cur."!cursor_debug"("NEXT ", "newpad")
+ if_null rx213_debug, debug_462
+ rx213_cur."!cursor_debug"("NEXT", "newpad")
+ debug_462:
rx213_fail:
(rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
lt rx213_pos, -1, rx213_done
@@ -3208,14 +3381,16 @@
jump $I10
rx213_done:
rx213_cur."!cursor_fail"()
- rx213_cur."!cursor_debug"("FAIL ", "newpad")
+ if_null rx213_debug, debug_463
+ rx213_cur."!cursor_debug"("FAIL", "newpad")
+ debug_463:
.return (rx213_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad" :subid("49_1280467477.44751") :method
+.sub "!PREFIX__newpad" :subid("49_1282324002.40722") :method
.annotate 'line', 4
new $P215, "ResizablePMCArray"
push $P215, ""
@@ -3224,7 +3399,7 @@
.namespace ["NQP";"Grammar"]
-.sub "outerctx" :subid("50_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "outerctx" :subid("50_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx218_tgt
.local int rx218_pos
@@ -3232,7 +3407,9 @@
.local int rx218_eos
.local int rx218_rep
.local pmc rx218_cur
+ .local pmc rx218_debug
(rx218_cur, rx218_pos, rx218_tgt, $I10) = self."!cursor_start"()
+ getattribute rx218_debug, rx218_cur, "$!debug"
.lex unicode:"$\x{a2}", rx218_cur
.local pmc match
.lex "$/", match
@@ -3244,7 +3421,9 @@
substr rx218_tgt, rx218_tgt, rx218_off
rx218_start:
eq $I10, 1, rx218_restart
- rx218_cur."!cursor_debug"("START ", "outerctx")
+ if_null rx218_debug, debug_464
+ rx218_cur."!cursor_debug"("START", "outerctx")
+ debug_464:
$I10 = self.'from'()
ne $I10, -1, rxscan221_done
goto rxscan221_scan
@@ -3260,11 +3439,15 @@
.annotate 'line', 145
# rx pass
rx218_cur."!cursor_pass"(rx218_pos, "outerctx")
- rx218_cur."!cursor_debug"("PASS ", "outerctx", " at pos=", rx218_pos)
+ if_null rx218_debug, debug_465
+ rx218_cur."!cursor_debug"("PASS", "outerctx", " at pos=", rx218_pos)
+ debug_465:
.return (rx218_cur)
rx218_restart:
.annotate 'line', 4
- rx218_cur."!cursor_debug"("NEXT ", "outerctx")
+ if_null rx218_debug, debug_466
+ rx218_cur."!cursor_debug"("NEXT", "outerctx")
+ debug_466:
rx218_fail:
(rx218_rep, rx218_pos, $I10, $P10) = rx218_cur."!mark_fail"(0)
lt rx218_pos, -1, rx218_done
@@ -3272,14 +3455,16 @@
jump $I10
rx218_done:
rx218_cur."!cursor_fail"()
- rx218_cur."!cursor_debug"("FAIL ", "outerctx")
+ if_null rx218_debug, debug_467
+ rx218_cur."!cursor_debug"("FAIL", "outerctx")
+ debug_467:
.return (rx218_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__outerctx" :subid("51_1280467477.44751") :method
+.sub "!PREFIX__outerctx" :subid("51_1282324002.40722") :method
.annotate 'line', 4
new $P220, "ResizablePMCArray"
push $P220, ""
@@ -3288,7 +3473,7 @@
.namespace ["NQP";"Grammar"]
-.sub "finishpad" :subid("52_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "finishpad" :subid("52_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx223_tgt
.local int rx223_pos
@@ -3296,7 +3481,9 @@
.local int rx223_eos
.local int rx223_rep
.local pmc rx223_cur
+ .local pmc rx223_debug
(rx223_cur, rx223_pos, rx223_tgt, $I10) = self."!cursor_start"()
+ getattribute rx223_debug, rx223_cur, "$!debug"
.lex unicode:"$\x{a2}", rx223_cur
.local pmc match
.lex "$/", match
@@ -3308,7 +3495,9 @@
substr rx223_tgt, rx223_tgt, rx223_off
rx223_start:
eq $I10, 1, rx223_restart
- rx223_cur."!cursor_debug"("START ", "finishpad")
+ if_null rx223_debug, debug_468
+ rx223_cur."!cursor_debug"("START", "finishpad")
+ debug_468:
$I10 = self.'from'()
ne $I10, -1, rxscan226_done
goto rxscan226_scan
@@ -3324,11 +3513,15 @@
.annotate 'line', 146
# rx pass
rx223_cur."!cursor_pass"(rx223_pos, "finishpad")
- rx223_cur."!cursor_debug"("PASS ", "finishpad", " at pos=", rx223_pos)
+ if_null rx223_debug, debug_469
+ rx223_cur."!cursor_debug"("PASS", "finishpad", " at pos=", rx223_pos)
+ debug_469:
.return (rx223_cur)
rx223_restart:
.annotate 'line', 4
- rx223_cur."!cursor_debug"("NEXT ", "finishpad")
+ if_null rx223_debug, debug_470
+ rx223_cur."!cursor_debug"("NEXT", "finishpad")
+ debug_470:
rx223_fail:
(rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0)
lt rx223_pos, -1, rx223_done
@@ -3336,14 +3529,16 @@
jump $I10
rx223_done:
rx223_cur."!cursor_fail"()
- rx223_cur."!cursor_debug"("FAIL ", "finishpad")
+ if_null rx223_debug, debug_471
+ rx223_cur."!cursor_debug"("FAIL", "finishpad")
+ debug_471:
.return (rx223_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad" :subid("53_1280467477.44751") :method
+.sub "!PREFIX__finishpad" :subid("53_1282324002.40722") :method
.annotate 'line', 4
new $P225, "ResizablePMCArray"
push $P225, ""
@@ -3352,7 +3547,7 @@
.namespace ["NQP";"Grammar"]
-.sub "terminator" :subid("54_1280467477.44751") :method
+.sub "terminator" :subid("54_1282324002.40722") :method
.annotate 'line', 148
$P228 = self."!protoregex"("terminator")
.return ($P228)
@@ -3360,7 +3555,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator" :subid("55_1280467477.44751") :method
+.sub "!PREFIX__terminator" :subid("55_1282324002.40722") :method
.annotate 'line', 148
$P230 = self."!PREFIX__!protoregex"("terminator")
.return ($P230)
@@ -3368,7 +3563,7 @@
.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>" :subid("56_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "terminator:sym<;>" :subid("56_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx232_tgt
.local int rx232_pos
@@ -3376,7 +3571,9 @@
.local int rx232_eos
.local int rx232_rep
.local pmc rx232_cur
+ .local pmc rx232_debug
(rx232_cur, rx232_pos, rx232_tgt, $I10) = self."!cursor_start"()
+ getattribute rx232_debug, rx232_cur, "$!debug"
.lex unicode:"$\x{a2}", rx232_cur
.local pmc match
.lex "$/", match
@@ -3388,7 +3585,9 @@
substr rx232_tgt, rx232_tgt, rx232_off
rx232_start:
eq $I10, 1, rx232_restart
- rx232_cur."!cursor_debug"("START ", "terminator:sym<;>")
+ if_null rx232_debug, debug_472
+ rx232_cur."!cursor_debug"("START", "terminator:sym<;>")
+ debug_472:
$I10 = self.'from'()
ne $I10, -1, rxscan235_done
goto rxscan235_scan
@@ -3410,11 +3609,15 @@
lt $I11, 0, rx232_fail
# rx pass
rx232_cur."!cursor_pass"(rx232_pos, "terminator:sym<;>")
- rx232_cur."!cursor_debug"("PASS ", "terminator:sym<;>", " at pos=", rx232_pos)
+ if_null rx232_debug, debug_473
+ rx232_cur."!cursor_debug"("PASS", "terminator:sym<;>", " at pos=", rx232_pos)
+ debug_473:
.return (rx232_cur)
rx232_restart:
.annotate 'line', 4
- rx232_cur."!cursor_debug"("NEXT ", "terminator:sym<;>")
+ if_null rx232_debug, debug_474
+ rx232_cur."!cursor_debug"("NEXT", "terminator:sym<;>")
+ debug_474:
rx232_fail:
(rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0)
lt rx232_pos, -1, rx232_done
@@ -3422,14 +3625,16 @@
jump $I10
rx232_done:
rx232_cur."!cursor_fail"()
- rx232_cur."!cursor_debug"("FAIL ", "terminator:sym<;>")
+ if_null rx232_debug, debug_475
+ rx232_cur."!cursor_debug"("FAIL", "terminator:sym<;>")
+ debug_475:
.return (rx232_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>" :subid("57_1280467477.44751") :method
+.sub "!PREFIX__terminator:sym<;>" :subid("57_1282324002.40722") :method
.annotate 'line', 4
new $P234, "ResizablePMCArray"
push $P234, ";"
@@ -3438,7 +3643,7 @@
.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>" :subid("58_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "terminator:sym<}>" :subid("58_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx237_tgt
.local int rx237_pos
@@ -3446,7 +3651,9 @@
.local int rx237_eos
.local int rx237_rep
.local pmc rx237_cur
+ .local pmc rx237_debug
(rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"()
+ getattribute rx237_debug, rx237_cur, "$!debug"
.lex unicode:"$\x{a2}", rx237_cur
.local pmc match
.lex "$/", match
@@ -3458,7 +3665,9 @@
substr rx237_tgt, rx237_tgt, rx237_off
rx237_start:
eq $I10, 1, rx237_restart
- rx237_cur."!cursor_debug"("START ", "terminator:sym<}>")
+ if_null rx237_debug, debug_476
+ rx237_cur."!cursor_debug"("START", "terminator:sym<}>")
+ debug_476:
$I10 = self.'from'()
ne $I10, -1, rxscan240_done
goto rxscan240_scan
@@ -3480,11 +3689,15 @@
lt $I11, 0, rx237_fail
# rx pass
rx237_cur."!cursor_pass"(rx237_pos, "terminator:sym<}>")
- rx237_cur."!cursor_debug"("PASS ", "terminator:sym<}>", " at pos=", rx237_pos)
+ if_null rx237_debug, debug_477
+ rx237_cur."!cursor_debug"("PASS", "terminator:sym<}>", " at pos=", rx237_pos)
+ debug_477:
.return (rx237_cur)
rx237_restart:
.annotate 'line', 4
- rx237_cur."!cursor_debug"("NEXT ", "terminator:sym<}>")
+ if_null rx237_debug, debug_478
+ rx237_cur."!cursor_debug"("NEXT", "terminator:sym<}>")
+ debug_478:
rx237_fail:
(rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
lt rx237_pos, -1, rx237_done
@@ -3492,14 +3705,16 @@
jump $I10
rx237_done:
rx237_cur."!cursor_fail"()
- rx237_cur."!cursor_debug"("FAIL ", "terminator:sym<}>")
+ if_null rx237_debug, debug_479
+ rx237_cur."!cursor_debug"("FAIL", "terminator:sym<}>")
+ debug_479:
.return (rx237_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>" :subid("59_1280467477.44751") :method
+.sub "!PREFIX__terminator:sym<}>" :subid("59_1282324002.40722") :method
.annotate 'line', 4
new $P239, "ResizablePMCArray"
push $P239, "}"
@@ -3508,7 +3723,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control" :subid("60_1280467477.44751") :method
+.sub "statement_control" :subid("60_1282324002.40722") :method
.annotate 'line', 155
$P242 = self."!protoregex"("statement_control")
.return ($P242)
@@ -3516,7 +3731,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control" :subid("61_1280467477.44751") :method
+.sub "!PREFIX__statement_control" :subid("61_1282324002.40722") :method
.annotate 'line', 155
$P244 = self."!PREFIX__!protoregex"("statement_control")
.return ($P244)
@@ -3524,7 +3739,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>" :subid("62_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<if>" :subid("62_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx246_tgt
.local int rx246_pos
@@ -3532,8 +3747,10 @@
.local int rx246_eos
.local int rx246_rep
.local pmc rx246_cur
+ .local pmc rx246_debug
(rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
- rx246_cur."!cursor_caparray"("xblock", "else")
+ rx246_cur."!cursor_caparray"("else", "xblock")
+ getattribute rx246_debug, rx246_cur, "$!debug"
.lex unicode:"$\x{a2}", rx246_cur
.local pmc match
.lex "$/", match
@@ -3545,7 +3762,9 @@
substr rx246_tgt, rx246_tgt, rx246_off
rx246_start:
eq $I10, 1, rx246_restart
- rx246_cur."!cursor_debug"("START ", "statement_control:sym<if>")
+ if_null rx246_debug, debug_480
+ rx246_cur."!cursor_debug"("START", "statement_control:sym<if>")
+ debug_480:
$I10 = self.'from'()
ne $I10, -1, rxscan249_done
goto rxscan249_scan
@@ -3706,11 +3925,15 @@
.annotate 'line', 157
# rx pass
rx246_cur."!cursor_pass"(rx246_pos, "statement_control:sym<if>")
- rx246_cur."!cursor_debug"("PASS ", "statement_control:sym<if>", " at pos=", rx246_pos)
+ if_null rx246_debug, debug_481
+ rx246_cur."!cursor_debug"("PASS", "statement_control:sym<if>", " at pos=", rx246_pos)
+ debug_481:
.return (rx246_cur)
rx246_restart:
.annotate 'line', 4
- rx246_cur."!cursor_debug"("NEXT ", "statement_control:sym<if>")
+ if_null rx246_debug, debug_482
+ rx246_cur."!cursor_debug"("NEXT", "statement_control:sym<if>")
+ debug_482:
rx246_fail:
(rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
lt rx246_pos, -1, rx246_done
@@ -3718,14 +3941,16 @@
jump $I10
rx246_done:
rx246_cur."!cursor_fail"()
- rx246_cur."!cursor_debug"("FAIL ", "statement_control:sym<if>")
+ if_null rx246_debug, debug_483
+ rx246_cur."!cursor_debug"("FAIL", "statement_control:sym<if>")
+ debug_483:
.return (rx246_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>" :subid("63_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<if>" :subid("63_1282324002.40722") :method
.annotate 'line', 4
new $P248, "ResizablePMCArray"
push $P248, "if"
@@ -3734,9 +3959,9 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>" :subid("64_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<unless>" :subid("64_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
- .const 'Sub' $P274 = "66_1280467477.44751"
+ .const 'Sub' $P274 = "66_1282324002.40722"
capture_lex $P274
.local string rx264_tgt
.local int rx264_pos
@@ -3744,7 +3969,9 @@
.local int rx264_eos
.local int rx264_rep
.local pmc rx264_cur
+ .local pmc rx264_debug
(rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"()
+ getattribute rx264_debug, rx264_cur, "$!debug"
.lex unicode:"$\x{a2}", rx264_cur
.local pmc match
.lex "$/", match
@@ -3756,7 +3983,9 @@
substr rx264_tgt, rx264_tgt, rx264_off
rx264_start:
eq $I10, 1, rx264_restart
- rx264_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
+ if_null rx264_debug, debug_484
+ rx264_cur."!cursor_debug"("START", "statement_control:sym<unless>")
+ debug_484:
$I10 = self.'from'()
ne $I10, -1, rxscan267_done
goto rxscan267_scan
@@ -3826,7 +4055,7 @@
rx264_pos = $P10."pos"()
# rx subrule "before" subtype=zerowidth negate=1
rx264_cur."!cursor_pos"(rx264_pos)
- .const 'Sub' $P274 = "66_1280467477.44751"
+ .const 'Sub' $P274 = "66_1282324002.40722"
capture_lex $P274
$P10 = rx264_cur."before"($P274)
if $P10, rx264_fail
@@ -3861,11 +4090,15 @@
.annotate 'line', 164
# rx pass
rx264_cur."!cursor_pass"(rx264_pos, "statement_control:sym<unless>")
- rx264_cur."!cursor_debug"("PASS ", "statement_control:sym<unless>", " at pos=", rx264_pos)
+ if_null rx264_debug, debug_489
+ rx264_cur."!cursor_debug"("PASS", "statement_control:sym<unless>", " at pos=", rx264_pos)
+ debug_489:
.return (rx264_cur)
rx264_restart:
.annotate 'line', 4
- rx264_cur."!cursor_debug"("NEXT ", "statement_control:sym<unless>")
+ if_null rx264_debug, debug_490
+ rx264_cur."!cursor_debug"("NEXT", "statement_control:sym<unless>")
+ debug_490:
rx264_fail:
(rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0)
lt rx264_pos, -1, rx264_done
@@ -3873,14 +4106,16 @@
jump $I10
rx264_done:
rx264_cur."!cursor_fail"()
- rx264_cur."!cursor_debug"("FAIL ", "statement_control:sym<unless>")
+ if_null rx264_debug, debug_491
+ rx264_cur."!cursor_debug"("FAIL", "statement_control:sym<unless>")
+ debug_491:
.return (rx264_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>" :subid("65_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<unless>" :subid("65_1282324002.40722") :method
.annotate 'line', 4
new $P266, "ResizablePMCArray"
push $P266, "unless"
@@ -3889,7 +4124,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block273" :anon :subid("66_1280467477.44751") :method :outer("64_1280467477.44751")
+.sub "_block273" :anon :subid("66_1282324002.40722") :method :outer("64_1282324002.40722")
.annotate 'line', 167
.local string rx275_tgt
.local int rx275_pos
@@ -3897,7 +4132,9 @@
.local int rx275_eos
.local int rx275_rep
.local pmc rx275_cur
+ .local pmc rx275_debug
(rx275_cur, rx275_pos, rx275_tgt, $I10) = self."!cursor_start"()
+ getattribute rx275_debug, rx275_cur, "$!debug"
.lex unicode:"$\x{a2}", rx275_cur
.local pmc match
.lex "$/", match
@@ -3909,7 +4146,9 @@
substr rx275_tgt, rx275_tgt, rx275_off
rx275_start:
eq $I10, 1, rx275_restart
- rx275_cur."!cursor_debug"("START ", "")
+ if_null rx275_debug, debug_485
+ rx275_cur."!cursor_debug"("START", "")
+ debug_485:
$I10 = self.'from'()
ne $I10, -1, rxscan276_done
goto rxscan276_scan
@@ -3931,10 +4170,14 @@
add rx275_pos, 4
# rx pass
rx275_cur."!cursor_pass"(rx275_pos, "")
- rx275_cur."!cursor_debug"("PASS ", "", " at pos=", rx275_pos)
+ if_null rx275_debug, debug_486
+ rx275_cur."!cursor_debug"("PASS", "", " at pos=", rx275_pos)
+ debug_486:
.return (rx275_cur)
rx275_restart:
- rx275_cur."!cursor_debug"("NEXT ", "")
+ if_null rx275_debug, debug_487
+ rx275_cur."!cursor_debug"("NEXT", "")
+ debug_487:
rx275_fail:
(rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0)
lt rx275_pos, -1, rx275_done
@@ -3942,14 +4185,16 @@
jump $I10
rx275_done:
rx275_cur."!cursor_fail"()
- rx275_cur."!cursor_debug"("FAIL ", "")
+ if_null rx275_debug, debug_488
+ rx275_cur."!cursor_debug"("FAIL", "")
+ debug_488:
.return (rx275_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>" :subid("67_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<while>" :subid("67_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx282_tgt
.local int rx282_pos
@@ -3957,7 +4202,9 @@
.local int rx282_eos
.local int rx282_rep
.local pmc rx282_cur
+ .local pmc rx282_debug
(rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+ getattribute rx282_debug, rx282_cur, "$!debug"
.lex unicode:"$\x{a2}", rx282_cur
.local pmc match
.lex "$/", match
@@ -3969,7 +4216,9 @@
substr rx282_tgt, rx282_tgt, rx282_off
rx282_start:
eq $I10, 1, rx282_restart
- rx282_cur."!cursor_debug"("START ", "statement_control:sym<while>")
+ if_null rx282_debug, debug_492
+ rx282_cur."!cursor_debug"("START", "statement_control:sym<while>")
+ debug_492:
$I10 = self.'from'()
ne $I10, -1, rxscan285_done
goto rxscan285_scan
@@ -4044,11 +4293,15 @@
.annotate 'line', 170
# rx pass
rx282_cur."!cursor_pass"(rx282_pos, "statement_control:sym<while>")
- rx282_cur."!cursor_debug"("PASS ", "statement_control:sym<while>", " at pos=", rx282_pos)
+ if_null rx282_debug, debug_493
+ rx282_cur."!cursor_debug"("PASS", "statement_control:sym<while>", " at pos=", rx282_pos)
+ debug_493:
.return (rx282_cur)
rx282_restart:
.annotate 'line', 4
- rx282_cur."!cursor_debug"("NEXT ", "statement_control:sym<while>")
+ if_null rx282_debug, debug_494
+ rx282_cur."!cursor_debug"("NEXT", "statement_control:sym<while>")
+ debug_494:
rx282_fail:
(rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
lt rx282_pos, -1, rx282_done
@@ -4056,14 +4309,16 @@
jump $I10
rx282_done:
rx282_cur."!cursor_fail"()
- rx282_cur."!cursor_debug"("FAIL ", "statement_control:sym<while>")
+ if_null rx282_debug, debug_495
+ rx282_cur."!cursor_debug"("FAIL", "statement_control:sym<while>")
+ debug_495:
.return (rx282_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>" :subid("68_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<while>" :subid("68_1282324002.40722") :method
.annotate 'line', 4
new $P284, "ResizablePMCArray"
push $P284, "until"
@@ -4073,7 +4328,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>" :subid("69_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<repeat>" :subid("69_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx291_tgt
.local int rx291_pos
@@ -4081,7 +4336,9 @@
.local int rx291_eos
.local int rx291_rep
.local pmc rx291_cur
+ .local pmc rx291_debug
(rx291_cur, rx291_pos, rx291_tgt, $I10) = self."!cursor_start"()
+ getattribute rx291_debug, rx291_cur, "$!debug"
.lex unicode:"$\x{a2}", rx291_cur
.local pmc match
.lex "$/", match
@@ -4093,7 +4350,9 @@
substr rx291_tgt, rx291_tgt, rx291_off
rx291_start:
eq $I10, 1, rx291_restart
- rx291_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
+ if_null rx291_debug, debug_496
+ rx291_cur."!cursor_debug"("START", "statement_control:sym<repeat>")
+ debug_496:
$I10 = self.'from'()
ne $I10, -1, rxscan294_done
goto rxscan294_scan
@@ -4293,11 +4552,15 @@
.annotate 'line', 175
# rx pass
rx291_cur."!cursor_pass"(rx291_pos, "statement_control:sym<repeat>")
- rx291_cur."!cursor_debug"("PASS ", "statement_control:sym<repeat>", " at pos=", rx291_pos)
+ if_null rx291_debug, debug_497
+ rx291_cur."!cursor_debug"("PASS", "statement_control:sym<repeat>", " at pos=", rx291_pos)
+ debug_497:
.return (rx291_cur)
rx291_restart:
.annotate 'line', 4
- rx291_cur."!cursor_debug"("NEXT ", "statement_control:sym<repeat>")
+ if_null rx291_debug, debug_498
+ rx291_cur."!cursor_debug"("NEXT", "statement_control:sym<repeat>")
+ debug_498:
rx291_fail:
(rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0)
lt rx291_pos, -1, rx291_done
@@ -4305,14 +4568,16 @@
jump $I10
rx291_done:
rx291_cur."!cursor_fail"()
- rx291_cur."!cursor_debug"("FAIL ", "statement_control:sym<repeat>")
+ if_null rx291_debug, debug_499
+ rx291_cur."!cursor_debug"("FAIL", "statement_control:sym<repeat>")
+ debug_499:
.return (rx291_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>" :subid("70_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<repeat>" :subid("70_1282324002.40722") :method
.annotate 'line', 4
new $P293, "ResizablePMCArray"
push $P293, "repeat"
@@ -4321,7 +4586,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>" :subid("71_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<for>" :subid("71_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx311_tgt
.local int rx311_pos
@@ -4329,7 +4594,9 @@
.local int rx311_eos
.local int rx311_rep
.local pmc rx311_cur
+ .local pmc rx311_debug
(rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+ getattribute rx311_debug, rx311_cur, "$!debug"
.lex unicode:"$\x{a2}", rx311_cur
.local pmc match
.lex "$/", match
@@ -4341,7 +4608,9 @@
substr rx311_tgt, rx311_tgt, rx311_off
rx311_start:
eq $I10, 1, rx311_restart
- rx311_cur."!cursor_debug"("START ", "statement_control:sym<for>")
+ if_null rx311_debug, debug_500
+ rx311_cur."!cursor_debug"("START", "statement_control:sym<for>")
+ debug_500:
$I10 = self.'from'()
ne $I10, -1, rxscan314_done
goto rxscan314_scan
@@ -4403,11 +4672,15 @@
.annotate 'line', 183
# rx pass
rx311_cur."!cursor_pass"(rx311_pos, "statement_control:sym<for>")
- rx311_cur."!cursor_debug"("PASS ", "statement_control:sym<for>", " at pos=", rx311_pos)
+ if_null rx311_debug, debug_501
+ rx311_cur."!cursor_debug"("PASS", "statement_control:sym<for>", " at pos=", rx311_pos)
+ debug_501:
.return (rx311_cur)
rx311_restart:
.annotate 'line', 4
- rx311_cur."!cursor_debug"("NEXT ", "statement_control:sym<for>")
+ if_null rx311_debug, debug_502
+ rx311_cur."!cursor_debug"("NEXT", "statement_control:sym<for>")
+ debug_502:
rx311_fail:
(rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
lt rx311_pos, -1, rx311_done
@@ -4415,14 +4688,16 @@
jump $I10
rx311_done:
rx311_cur."!cursor_fail"()
- rx311_cur."!cursor_debug"("FAIL ", "statement_control:sym<for>")
+ if_null rx311_debug, debug_503
+ rx311_cur."!cursor_debug"("FAIL", "statement_control:sym<for>")
+ debug_503:
.return (rx311_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>" :subid("72_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<for>" :subid("72_1282324002.40722") :method
.annotate 'line', 4
new $P313, "ResizablePMCArray"
push $P313, "for"
@@ -4431,7 +4706,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>" :subid("73_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<CATCH>" :subid("73_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx319_tgt
.local int rx319_pos
@@ -4439,7 +4714,9 @@
.local int rx319_eos
.local int rx319_rep
.local pmc rx319_cur
+ .local pmc rx319_debug
(rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"()
+ getattribute rx319_debug, rx319_cur, "$!debug"
.lex unicode:"$\x{a2}", rx319_cur
.local pmc match
.lex "$/", match
@@ -4451,7 +4728,9 @@
substr rx319_tgt, rx319_tgt, rx319_off
rx319_start:
eq $I10, 1, rx319_restart
- rx319_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
+ if_null rx319_debug, debug_504
+ rx319_cur."!cursor_debug"("START", "statement_control:sym<CATCH>")
+ debug_504:
$I10 = self.'from'()
ne $I10, -1, rxscan322_done
goto rxscan322_scan
@@ -4513,11 +4792,15 @@
.annotate 'line', 188
# rx pass
rx319_cur."!cursor_pass"(rx319_pos, "statement_control:sym<CATCH>")
- rx319_cur."!cursor_debug"("PASS ", "statement_control:sym<CATCH>", " at pos=", rx319_pos)
+ if_null rx319_debug, debug_505
+ rx319_cur."!cursor_debug"("PASS", "statement_control:sym<CATCH>", " at pos=", rx319_pos)
+ debug_505:
.return (rx319_cur)
rx319_restart:
.annotate 'line', 4
- rx319_cur."!cursor_debug"("NEXT ", "statement_control:sym<CATCH>")
+ if_null rx319_debug, debug_506
+ rx319_cur."!cursor_debug"("NEXT", "statement_control:sym<CATCH>")
+ debug_506:
rx319_fail:
(rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0)
lt rx319_pos, -1, rx319_done
@@ -4525,14 +4808,16 @@
jump $I10
rx319_done:
rx319_cur."!cursor_fail"()
- rx319_cur."!cursor_debug"("FAIL ", "statement_control:sym<CATCH>")
+ if_null rx319_debug, debug_507
+ rx319_cur."!cursor_debug"("FAIL", "statement_control:sym<CATCH>")
+ debug_507:
.return (rx319_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>" :subid("74_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<CATCH>" :subid("74_1282324002.40722") :method
.annotate 'line', 4
new $P321, "ResizablePMCArray"
push $P321, "CATCH"
@@ -4541,7 +4826,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>" :subid("75_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<CONTROL>" :subid("75_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx327_tgt
.local int rx327_pos
@@ -4549,7 +4834,9 @@
.local int rx327_eos
.local int rx327_rep
.local pmc rx327_cur
+ .local pmc rx327_debug
(rx327_cur, rx327_pos, rx327_tgt, $I10) = self."!cursor_start"()
+ getattribute rx327_debug, rx327_cur, "$!debug"
.lex unicode:"$\x{a2}", rx327_cur
.local pmc match
.lex "$/", match
@@ -4561,7 +4848,9 @@
substr rx327_tgt, rx327_tgt, rx327_off
rx327_start:
eq $I10, 1, rx327_restart
- rx327_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
+ if_null rx327_debug, debug_508
+ rx327_cur."!cursor_debug"("START", "statement_control:sym<CONTROL>")
+ debug_508:
$I10 = self.'from'()
ne $I10, -1, rxscan330_done
goto rxscan330_scan
@@ -4623,11 +4912,15 @@
.annotate 'line', 193
# rx pass
rx327_cur."!cursor_pass"(rx327_pos, "statement_control:sym<CONTROL>")
- rx327_cur."!cursor_debug"("PASS ", "statement_control:sym<CONTROL>", " at pos=", rx327_pos)
+ if_null rx327_debug, debug_509
+ rx327_cur."!cursor_debug"("PASS", "statement_control:sym<CONTROL>", " at pos=", rx327_pos)
+ debug_509:
.return (rx327_cur)
rx327_restart:
.annotate 'line', 4
- rx327_cur."!cursor_debug"("NEXT ", "statement_control:sym<CONTROL>")
+ if_null rx327_debug, debug_510
+ rx327_cur."!cursor_debug"("NEXT", "statement_control:sym<CONTROL>")
+ debug_510:
rx327_fail:
(rx327_rep, rx327_pos, $I10, $P10) = rx327_cur."!mark_fail"(0)
lt rx327_pos, -1, rx327_done
@@ -4635,14 +4928,16 @@
jump $I10
rx327_done:
rx327_cur."!cursor_fail"()
- rx327_cur."!cursor_debug"("FAIL ", "statement_control:sym<CONTROL>")
+ if_null rx327_debug, debug_511
+ rx327_cur."!cursor_debug"("FAIL", "statement_control:sym<CONTROL>")
+ debug_511:
.return (rx327_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("76_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("76_1282324002.40722") :method
.annotate 'line', 4
new $P329, "ResizablePMCArray"
push $P329, "CONTROL"
@@ -4651,7 +4946,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix" :subid("77_1280467477.44751") :method
+.sub "statement_prefix" :subid("77_1282324002.40722") :method
.annotate 'line', 198
$P335 = self."!protoregex"("statement_prefix")
.return ($P335)
@@ -4659,7 +4954,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix" :subid("78_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix" :subid("78_1282324002.40722") :method
.annotate 'line', 198
$P337 = self."!PREFIX__!protoregex"("statement_prefix")
.return ($P337)
@@ -4667,7 +4962,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>" :subid("79_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_prefix:sym<INIT>" :subid("79_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx339_tgt
.local int rx339_pos
@@ -4675,7 +4970,9 @@
.local int rx339_eos
.local int rx339_rep
.local pmc rx339_cur
+ .local pmc rx339_debug
(rx339_cur, rx339_pos, rx339_tgt, $I10) = self."!cursor_start"()
+ getattribute rx339_debug, rx339_cur, "$!debug"
.lex unicode:"$\x{a2}", rx339_cur
.local pmc match
.lex "$/", match
@@ -4687,7 +4984,9 @@
substr rx339_tgt, rx339_tgt, rx339_off
rx339_start:
eq $I10, 1, rx339_restart
- rx339_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
+ if_null rx339_debug, debug_512
+ rx339_cur."!cursor_debug"("START", "statement_prefix:sym<INIT>")
+ debug_512:
$I10 = self.'from'()
ne $I10, -1, rxscan343_done
goto rxscan343_scan
@@ -4731,11 +5030,15 @@
rx339_pos = $P10."pos"()
# rx pass
rx339_cur."!cursor_pass"(rx339_pos, "statement_prefix:sym<INIT>")
- rx339_cur."!cursor_debug"("PASS ", "statement_prefix:sym<INIT>", " at pos=", rx339_pos)
+ if_null rx339_debug, debug_513
+ rx339_cur."!cursor_debug"("PASS", "statement_prefix:sym<INIT>", " at pos=", rx339_pos)
+ debug_513:
.return (rx339_cur)
rx339_restart:
.annotate 'line', 4
- rx339_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<INIT>")
+ if_null rx339_debug, debug_514
+ rx339_cur."!cursor_debug"("NEXT", "statement_prefix:sym<INIT>")
+ debug_514:
rx339_fail:
(rx339_rep, rx339_pos, $I10, $P10) = rx339_cur."!mark_fail"(0)
lt rx339_pos, -1, rx339_done
@@ -4743,14 +5046,16 @@
jump $I10
rx339_done:
rx339_cur."!cursor_fail"()
- rx339_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<INIT>")
+ if_null rx339_debug, debug_515
+ rx339_cur."!cursor_debug"("FAIL", "statement_prefix:sym<INIT>")
+ debug_515:
.return (rx339_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("80_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("80_1282324002.40722") :method
.annotate 'line', 4
$P341 = self."!PREFIX__!subrule"("blorst", "INIT")
new $P342, "ResizablePMCArray"
@@ -4760,7 +5065,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>" :subid("81_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_prefix:sym<try>" :subid("81_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx346_tgt
.local int rx346_pos
@@ -4768,7 +5073,9 @@
.local int rx346_eos
.local int rx346_rep
.local pmc rx346_cur
+ .local pmc rx346_debug
(rx346_cur, rx346_pos, rx346_tgt, $I10) = self."!cursor_start"()
+ getattribute rx346_debug, rx346_cur, "$!debug"
.lex unicode:"$\x{a2}", rx346_cur
.local pmc match
.lex "$/", match
@@ -4780,7 +5087,9 @@
substr rx346_tgt, rx346_tgt, rx346_off
rx346_start:
eq $I10, 1, rx346_restart
- rx346_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
+ if_null rx346_debug, debug_516
+ rx346_cur."!cursor_debug"("START", "statement_prefix:sym<try>")
+ debug_516:
$I10 = self.'from'()
ne $I10, -1, rxscan350_done
goto rxscan350_scan
@@ -4826,11 +5135,15 @@
.annotate 'line', 201
# rx pass
rx346_cur."!cursor_pass"(rx346_pos, "statement_prefix:sym<try>")
- rx346_cur."!cursor_debug"("PASS ", "statement_prefix:sym<try>", " at pos=", rx346_pos)
+ if_null rx346_debug, debug_517
+ rx346_cur."!cursor_debug"("PASS", "statement_prefix:sym<try>", " at pos=", rx346_pos)
+ debug_517:
.return (rx346_cur)
rx346_restart:
.annotate 'line', 4
- rx346_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<try>")
+ if_null rx346_debug, debug_518
+ rx346_cur."!cursor_debug"("NEXT", "statement_prefix:sym<try>")
+ debug_518:
rx346_fail:
(rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0)
lt rx346_pos, -1, rx346_done
@@ -4838,14 +5151,16 @@
jump $I10
rx346_done:
rx346_cur."!cursor_fail"()
- rx346_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<try>")
+ if_null rx346_debug, debug_519
+ rx346_cur."!cursor_debug"("FAIL", "statement_prefix:sym<try>")
+ debug_519:
.return (rx346_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>" :subid("82_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix:sym<try>" :subid("82_1282324002.40722") :method
.annotate 'line', 4
$P348 = self."!PREFIX__!subrule"("blorst", "try")
new $P349, "ResizablePMCArray"
@@ -4855,7 +5170,7 @@
.namespace ["NQP";"Grammar"]
-.sub "blorst" :subid("83_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "blorst" :subid("83_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx353_tgt
.local int rx353_pos
@@ -4863,7 +5178,9 @@
.local int rx353_eos
.local int rx353_rep
.local pmc rx353_cur
+ .local pmc rx353_debug
(rx353_cur, rx353_pos, rx353_tgt, $I10) = self."!cursor_start"()
+ getattribute rx353_debug, rx353_cur, "$!debug"
.lex unicode:"$\x{a2}", rx353_cur
.local pmc match
.lex "$/", match
@@ -4875,7 +5192,9 @@
substr rx353_tgt, rx353_tgt, rx353_off
rx353_start:
eq $I10, 1, rx353_restart
- rx353_cur."!cursor_debug"("START ", "blorst")
+ if_null rx353_debug, debug_520
+ rx353_cur."!cursor_debug"("START", "blorst")
+ debug_520:
$I10 = self.'from'()
ne $I10, -1, rxscan356_done
goto rxscan356_scan
@@ -4929,11 +5248,15 @@
.annotate 'line', 206
# rx pass
rx353_cur."!cursor_pass"(rx353_pos, "blorst")
- rx353_cur."!cursor_debug"("PASS ", "blorst", " at pos=", rx353_pos)
+ if_null rx353_debug, debug_521
+ rx353_cur."!cursor_debug"("PASS", "blorst", " at pos=", rx353_pos)
+ debug_521:
.return (rx353_cur)
rx353_restart:
.annotate 'line', 4
- rx353_cur."!cursor_debug"("NEXT ", "blorst")
+ if_null rx353_debug, debug_522
+ rx353_cur."!cursor_debug"("NEXT", "blorst")
+ debug_522:
rx353_fail:
(rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
lt rx353_pos, -1, rx353_done
@@ -4941,14 +5264,16 @@
jump $I10
rx353_done:
rx353_cur."!cursor_fail"()
- rx353_cur."!cursor_debug"("FAIL ", "blorst")
+ if_null rx353_debug, debug_523
+ rx353_cur."!cursor_debug"("FAIL", "blorst")
+ debug_523:
.return (rx353_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst" :subid("84_1280467477.44751") :method
+.sub "!PREFIX__blorst" :subid("84_1282324002.40722") :method
.annotate 'line', 4
new $P355, "ResizablePMCArray"
push $P355, ""
@@ -4957,7 +5282,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond" :subid("85_1280467477.44751") :method
+.sub "statement_mod_cond" :subid("85_1282324002.40722") :method
.annotate 'line', 212
$P359 = self."!protoregex"("statement_mod_cond")
.return ($P359)
@@ -4965,7 +5290,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond" :subid("86_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond" :subid("86_1282324002.40722") :method
.annotate 'line', 212
$P361 = self."!PREFIX__!protoregex"("statement_mod_cond")
.return ($P361)
@@ -4973,7 +5298,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>" :subid("87_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_cond:sym<if>" :subid("87_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx363_tgt
.local int rx363_pos
@@ -4981,7 +5306,9 @@
.local int rx363_eos
.local int rx363_rep
.local pmc rx363_cur
+ .local pmc rx363_debug
(rx363_cur, rx363_pos, rx363_tgt, $I10) = self."!cursor_start"()
+ getattribute rx363_debug, rx363_cur, "$!debug"
.lex unicode:"$\x{a2}", rx363_cur
.local pmc match
.lex "$/", match
@@ -4993,7 +5320,9 @@
substr rx363_tgt, rx363_tgt, rx363_off
rx363_start:
eq $I10, 1, rx363_restart
- rx363_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
+ if_null rx363_debug, debug_524
+ rx363_cur."!cursor_debug"("START", "statement_mod_cond:sym<if>")
+ debug_524:
$I10 = self.'from'()
ne $I10, -1, rxscan367_done
goto rxscan367_scan
@@ -5047,11 +5376,15 @@
rx363_pos = $P10."pos"()
# rx pass
rx363_cur."!cursor_pass"(rx363_pos, "statement_mod_cond:sym<if>")
- rx363_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<if>", " at pos=", rx363_pos)
+ if_null rx363_debug, debug_525
+ rx363_cur."!cursor_debug"("PASS", "statement_mod_cond:sym<if>", " at pos=", rx363_pos)
+ debug_525:
.return (rx363_cur)
rx363_restart:
.annotate 'line', 4
- rx363_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<if>")
+ if_null rx363_debug, debug_526
+ rx363_cur."!cursor_debug"("NEXT", "statement_mod_cond:sym<if>")
+ debug_526:
rx363_fail:
(rx363_rep, rx363_pos, $I10, $P10) = rx363_cur."!mark_fail"(0)
lt rx363_pos, -1, rx363_done
@@ -5059,14 +5392,16 @@
jump $I10
rx363_done:
rx363_cur."!cursor_fail"()
- rx363_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<if>")
+ if_null rx363_debug, debug_527
+ rx363_cur."!cursor_debug"("FAIL", "statement_mod_cond:sym<if>")
+ debug_527:
.return (rx363_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("88_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("88_1282324002.40722") :method
.annotate 'line', 4
$P365 = self."!PREFIX__!subrule"("ws", "if")
new $P366, "ResizablePMCArray"
@@ -5076,7 +5411,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>" :subid("89_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_cond:sym<unless>" :subid("89_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx372_tgt
.local int rx372_pos
@@ -5084,7 +5419,9 @@
.local int rx372_eos
.local int rx372_rep
.local pmc rx372_cur
+ .local pmc rx372_debug
(rx372_cur, rx372_pos, rx372_tgt, $I10) = self."!cursor_start"()
+ getattribute rx372_debug, rx372_cur, "$!debug"
.lex unicode:"$\x{a2}", rx372_cur
.local pmc match
.lex "$/", match
@@ -5096,7 +5433,9 @@
substr rx372_tgt, rx372_tgt, rx372_off
rx372_start:
eq $I10, 1, rx372_restart
- rx372_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
+ if_null rx372_debug, debug_528
+ rx372_cur."!cursor_debug"("START", "statement_mod_cond:sym<unless>")
+ debug_528:
$I10 = self.'from'()
ne $I10, -1, rxscan376_done
goto rxscan376_scan
@@ -5150,11 +5489,15 @@
rx372_pos = $P10."pos"()
# rx pass
rx372_cur."!cursor_pass"(rx372_pos, "statement_mod_cond:sym<unless>")
- rx372_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<unless>", " at pos=", rx372_pos)
+ if_null rx372_debug, debug_529
+ rx372_cur."!cursor_debug"("PASS", "statement_mod_cond:sym<unless>", " at pos=", rx372_pos)
+ debug_529:
.return (rx372_cur)
rx372_restart:
.annotate 'line', 4
- rx372_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<unless>")
+ if_null rx372_debug, debug_530
+ rx372_cur."!cursor_debug"("NEXT", "statement_mod_cond:sym<unless>")
+ debug_530:
rx372_fail:
(rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0)
lt rx372_pos, -1, rx372_done
@@ -5162,14 +5505,16 @@
jump $I10
rx372_done:
rx372_cur."!cursor_fail"()
- rx372_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<unless>")
+ if_null rx372_debug, debug_531
+ rx372_cur."!cursor_debug"("FAIL", "statement_mod_cond:sym<unless>")
+ debug_531:
.return (rx372_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("90_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("90_1282324002.40722") :method
.annotate 'line', 4
$P374 = self."!PREFIX__!subrule"("ws", "unless")
new $P375, "ResizablePMCArray"
@@ -5179,7 +5524,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop" :subid("91_1280467477.44751") :method
+.sub "statement_mod_loop" :subid("91_1282324002.40722") :method
.annotate 'line', 217
$P381 = self."!protoregex"("statement_mod_loop")
.return ($P381)
@@ -5187,7 +5532,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop" :subid("92_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop" :subid("92_1282324002.40722") :method
.annotate 'line', 217
$P383 = self."!PREFIX__!protoregex"("statement_mod_loop")
.return ($P383)
@@ -5195,7 +5540,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>" :subid("93_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_loop:sym<while>" :subid("93_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx385_tgt
.local int rx385_pos
@@ -5203,7 +5548,9 @@
.local int rx385_eos
.local int rx385_rep
.local pmc rx385_cur
+ .local pmc rx385_debug
(rx385_cur, rx385_pos, rx385_tgt, $I10) = self."!cursor_start"()
+ getattribute rx385_debug, rx385_cur, "$!debug"
.lex unicode:"$\x{a2}", rx385_cur
.local pmc match
.lex "$/", match
@@ -5215,7 +5562,9 @@
substr rx385_tgt, rx385_tgt, rx385_off
rx385_start:
eq $I10, 1, rx385_restart
- rx385_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
+ if_null rx385_debug, debug_532
+ rx385_cur."!cursor_debug"("START", "statement_mod_loop:sym<while>")
+ debug_532:
$I10 = self.'from'()
ne $I10, -1, rxscan389_done
goto rxscan389_scan
@@ -5269,11 +5618,15 @@
rx385_pos = $P10."pos"()
# rx pass
rx385_cur."!cursor_pass"(rx385_pos, "statement_mod_loop:sym<while>")
- rx385_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<while>", " at pos=", rx385_pos)
+ if_null rx385_debug, debug_533
+ rx385_cur."!cursor_debug"("PASS", "statement_mod_loop:sym<while>", " at pos=", rx385_pos)
+ debug_533:
.return (rx385_cur)
rx385_restart:
.annotate 'line', 4
- rx385_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<while>")
+ if_null rx385_debug, debug_534
+ rx385_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym<while>")
+ debug_534:
rx385_fail:
(rx385_rep, rx385_pos, $I10, $P10) = rx385_cur."!mark_fail"(0)
lt rx385_pos, -1, rx385_done
@@ -5281,14 +5634,16 @@
jump $I10
rx385_done:
rx385_cur."!cursor_fail"()
- rx385_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<while>")
+ if_null rx385_debug, debug_535
+ rx385_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym<while>")
+ debug_535:
.return (rx385_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("94_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("94_1282324002.40722") :method
.annotate 'line', 4
$P387 = self."!PREFIX__!subrule"("ws", "while")
new $P388, "ResizablePMCArray"
@@ -5298,7 +5653,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>" :subid("95_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_loop:sym<until>" :subid("95_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx394_tgt
.local int rx394_pos
@@ -5306,7 +5661,9 @@
.local int rx394_eos
.local int rx394_rep
.local pmc rx394_cur
+ .local pmc rx394_debug
(rx394_cur, rx394_pos, rx394_tgt, $I10) = self."!cursor_start"()
+ getattribute rx394_debug, rx394_cur, "$!debug"
.lex unicode:"$\x{a2}", rx394_cur
.local pmc match
.lex "$/", match
@@ -5318,7 +5675,9 @@
substr rx394_tgt, rx394_tgt, rx394_off
rx394_start:
eq $I10, 1, rx394_restart
- rx394_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
+ if_null rx394_debug, debug_536
+ rx394_cur."!cursor_debug"("START", "statement_mod_loop:sym<until>")
+ debug_536:
$I10 = self.'from'()
ne $I10, -1, rxscan398_done
goto rxscan398_scan
@@ -5372,11 +5731,15 @@
rx394_pos = $P10."pos"()
# rx pass
rx394_cur."!cursor_pass"(rx394_pos, "statement_mod_loop:sym<until>")
- rx394_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<until>", " at pos=", rx394_pos)
+ if_null rx394_debug, debug_537
+ rx394_cur."!cursor_debug"("PASS", "statement_mod_loop:sym<until>", " at pos=", rx394_pos)
+ debug_537:
.return (rx394_cur)
rx394_restart:
.annotate 'line', 4
- rx394_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<until>")
+ if_null rx394_debug, debug_538
+ rx394_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym<until>")
+ debug_538:
rx394_fail:
(rx394_rep, rx394_pos, $I10, $P10) = rx394_cur."!mark_fail"(0)
lt rx394_pos, -1, rx394_done
@@ -5384,14 +5747,16 @@
jump $I10
rx394_done:
rx394_cur."!cursor_fail"()
- rx394_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<until>")
+ if_null rx394_debug, debug_539
+ rx394_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym<until>")
+ debug_539:
.return (rx394_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("96_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("96_1282324002.40722") :method
.annotate 'line', 4
$P396 = self."!PREFIX__!subrule"("ws", "until")
new $P397, "ResizablePMCArray"
@@ -5401,7 +5766,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<for>" :subid("97_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_loop:sym<for>" :subid("97_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx403_tgt
.local int rx403_pos
@@ -5409,7 +5774,9 @@
.local int rx403_eos
.local int rx403_rep
.local pmc rx403_cur
+ .local pmc rx403_debug
(rx403_cur, rx403_pos, rx403_tgt, $I10) = self."!cursor_start"()
+ getattribute rx403_debug, rx403_cur, "$!debug"
.lex unicode:"$\x{a2}", rx403_cur
.local pmc match
.lex "$/", match
@@ -5421,7 +5788,9 @@
substr rx403_tgt, rx403_tgt, rx403_off
rx403_start:
eq $I10, 1, rx403_restart
- rx403_cur."!cursor_debug"("START ", "statement_mod_loop:sym<for>")
+ if_null rx403_debug, debug_540
+ rx403_cur."!cursor_debug"("START", "statement_mod_loop:sym<for>")
+ debug_540:
$I10 = self.'from'()
ne $I10, -1, rxscan407_done
goto rxscan407_scan
@@ -5475,11 +5844,15 @@
rx403_pos = $P10."pos"()
# rx pass
rx403_cur."!cursor_pass"(rx403_pos, "statement_mod_loop:sym<for>")
- rx403_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<for>", " at pos=", rx403_pos)
+ if_null rx403_debug, debug_541
+ rx403_cur."!cursor_debug"("PASS", "statement_mod_loop:sym<for>", " at pos=", rx403_pos)
+ debug_541:
.return (rx403_cur)
rx403_restart:
.annotate 'line', 4
- rx403_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<for>")
+ if_null rx403_debug, debug_542
+ rx403_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym<for>")
+ debug_542:
rx403_fail:
(rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0)
lt rx403_pos, -1, rx403_done
@@ -5487,14 +5860,16 @@
jump $I10
rx403_done:
rx403_cur."!cursor_fail"()
- rx403_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<for>")
+ if_null rx403_debug, debug_543
+ rx403_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym<for>")
+ debug_543:
.return (rx403_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<for>" :subid("98_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<for>" :subid("98_1282324002.40722") :method
.annotate 'line', 4
$P405 = self."!PREFIX__!subrule"("ws", "for")
new $P406, "ResizablePMCArray"
@@ -5504,7 +5879,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>" :subid("99_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<fatarrow>" :subid("99_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx412_tgt
.local int rx412_pos
@@ -5512,7 +5887,9 @@
.local int rx412_eos
.local int rx412_rep
.local pmc rx412_cur
+ .local pmc rx412_debug
(rx412_cur, rx412_pos, rx412_tgt, $I10) = self."!cursor_start"()
+ getattribute rx412_debug, rx412_cur, "$!debug"
.lex unicode:"$\x{a2}", rx412_cur
.local pmc match
.lex "$/", match
@@ -5524,7 +5901,9 @@
substr rx412_tgt, rx412_tgt, rx412_off
rx412_start:
eq $I10, 1, rx412_restart
- rx412_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
+ if_null rx412_debug, debug_544
+ rx412_cur."!cursor_debug"("START", "term:sym<fatarrow>")
+ debug_544:
$I10 = self.'from'()
ne $I10, -1, rxscan416_done
goto rxscan416_scan
@@ -5547,11 +5926,15 @@
rx412_pos = $P10."pos"()
# rx pass
rx412_cur."!cursor_pass"(rx412_pos, "term:sym<fatarrow>")
- rx412_cur."!cursor_debug"("PASS ", "term:sym<fatarrow>", " at pos=", rx412_pos)
+ if_null rx412_debug, debug_545
+ rx412_cur."!cursor_debug"("PASS", "term:sym<fatarrow>", " at pos=", rx412_pos)
+ debug_545:
.return (rx412_cur)
rx412_restart:
.annotate 'line', 4
- rx412_cur."!cursor_debug"("NEXT ", "term:sym<fatarrow>")
+ if_null rx412_debug, debug_546
+ rx412_cur."!cursor_debug"("NEXT", "term:sym<fatarrow>")
+ debug_546:
rx412_fail:
(rx412_rep, rx412_pos, $I10, $P10) = rx412_cur."!mark_fail"(0)
lt rx412_pos, -1, rx412_done
@@ -5559,14 +5942,16 @@
jump $I10
rx412_done:
rx412_cur."!cursor_fail"()
- rx412_cur."!cursor_debug"("FAIL ", "term:sym<fatarrow>")
+ if_null rx412_debug, debug_547
+ rx412_cur."!cursor_debug"("FAIL", "term:sym<fatarrow>")
+ debug_547:
.return (rx412_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>" :subid("100_1280467477.44751") :method
+.sub "!PREFIX__term:sym<fatarrow>" :subid("100_1282324002.40722") :method
.annotate 'line', 4
$P414 = self."!PREFIX__!subrule"("fatarrow", "")
new $P415, "ResizablePMCArray"
@@ -5576,7 +5961,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>" :subid("101_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<colonpair>" :subid("101_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx418_tgt
.local int rx418_pos
@@ -5584,7 +5969,9 @@
.local int rx418_eos
.local int rx418_rep
.local pmc rx418_cur
+ .local pmc rx418_debug
(rx418_cur, rx418_pos, rx418_tgt, $I10) = self."!cursor_start"()
+ getattribute rx418_debug, rx418_cur, "$!debug"
.lex unicode:"$\x{a2}", rx418_cur
.local pmc match
.lex "$/", match
@@ -5596,7 +5983,9 @@
substr rx418_tgt, rx418_tgt, rx418_off
rx418_start:
eq $I10, 1, rx418_restart
- rx418_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+ if_null rx418_debug, debug_548
+ rx418_cur."!cursor_debug"("START", "term:sym<colonpair>")
+ debug_548:
$I10 = self.'from'()
ne $I10, -1, rxscan422_done
goto rxscan422_scan
@@ -5619,11 +6008,15 @@
rx418_pos = $P10."pos"()
# rx pass
rx418_cur."!cursor_pass"(rx418_pos, "term:sym<colonpair>")
- rx418_cur."!cursor_debug"("PASS ", "term:sym<colonpair>", " at pos=", rx418_pos)
+ if_null rx418_debug, debug_549
+ rx418_cur."!cursor_debug"("PASS", "term:sym<colonpair>", " at pos=", rx418_pos)
+ debug_549:
.return (rx418_cur)
rx418_restart:
.annotate 'line', 4
- rx418_cur."!cursor_debug"("NEXT ", "term:sym<colonpair>")
+ if_null rx418_debug, debug_550
+ rx418_cur."!cursor_debug"("NEXT", "term:sym<colonpair>")
+ debug_550:
rx418_fail:
(rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0)
lt rx418_pos, -1, rx418_done
@@ -5631,14 +6024,16 @@
jump $I10
rx418_done:
rx418_cur."!cursor_fail"()
- rx418_cur."!cursor_debug"("FAIL ", "term:sym<colonpair>")
+ if_null rx418_debug, debug_551
+ rx418_cur."!cursor_debug"("FAIL", "term:sym<colonpair>")
+ debug_551:
.return (rx418_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>" :subid("102_1280467477.44751") :method
+.sub "!PREFIX__term:sym<colonpair>" :subid("102_1282324002.40722") :method
.annotate 'line', 4
$P420 = self."!PREFIX__!subrule"("colonpair", "")
new $P421, "ResizablePMCArray"
@@ -5648,7 +6043,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>" :subid("103_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<variable>" :subid("103_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx424_tgt
.local int rx424_pos
@@ -5656,7 +6051,9 @@
.local int rx424_eos
.local int rx424_rep
.local pmc rx424_cur
+ .local pmc rx424_debug
(rx424_cur, rx424_pos, rx424_tgt, $I10) = self."!cursor_start"()
+ getattribute rx424_debug, rx424_cur, "$!debug"
.lex unicode:"$\x{a2}", rx424_cur
.local pmc match
.lex "$/", match
@@ -5668,7 +6065,9 @@
substr rx424_tgt, rx424_tgt, rx424_off
rx424_start:
eq $I10, 1, rx424_restart
- rx424_cur."!cursor_debug"("START ", "term:sym<variable>")
+ if_null rx424_debug, debug_552
+ rx424_cur."!cursor_debug"("START", "term:sym<variable>")
+ debug_552:
$I10 = self.'from'()
ne $I10, -1, rxscan428_done
goto rxscan428_scan
@@ -5691,11 +6090,15 @@
rx424_pos = $P10."pos"()
# rx pass
rx424_cur."!cursor_pass"(rx424_pos, "term:sym<variable>")
- rx424_cur."!cursor_debug"("PASS ", "term:sym<variable>", " at pos=", rx424_pos)
+ if_null rx424_debug, debug_553
+ rx424_cur."!cursor_debug"("PASS", "term:sym<variable>", " at pos=", rx424_pos)
+ debug_553:
.return (rx424_cur)
rx424_restart:
.annotate 'line', 4
- rx424_cur."!cursor_debug"("NEXT ", "term:sym<variable>")
+ if_null rx424_debug, debug_554
+ rx424_cur."!cursor_debug"("NEXT", "term:sym<variable>")
+ debug_554:
rx424_fail:
(rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
lt rx424_pos, -1, rx424_done
@@ -5703,14 +6106,16 @@
jump $I10
rx424_done:
rx424_cur."!cursor_fail"()
- rx424_cur."!cursor_debug"("FAIL ", "term:sym<variable>")
+ if_null rx424_debug, debug_555
+ rx424_cur."!cursor_debug"("FAIL", "term:sym<variable>")
+ debug_555:
.return (rx424_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>" :subid("104_1280467477.44751") :method
+.sub "!PREFIX__term:sym<variable>" :subid("104_1282324002.40722") :method
.annotate 'line', 4
$P426 = self."!PREFIX__!subrule"("variable", "")
new $P427, "ResizablePMCArray"
@@ -5720,7 +6125,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>" :subid("105_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<package_declarator>" :subid("105_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx430_tgt
.local int rx430_pos
@@ -5728,7 +6133,9 @@
.local int rx430_eos
.local int rx430_rep
.local pmc rx430_cur
+ .local pmc rx430_debug
(rx430_cur, rx430_pos, rx430_tgt, $I10) = self."!cursor_start"()
+ getattribute rx430_debug, rx430_cur, "$!debug"
.lex unicode:"$\x{a2}", rx430_cur
.local pmc match
.lex "$/", match
@@ -5740,7 +6147,9 @@
substr rx430_tgt, rx430_tgt, rx430_off
rx430_start:
eq $I10, 1, rx430_restart
- rx430_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
+ if_null rx430_debug, debug_556
+ rx430_cur."!cursor_debug"("START", "term:sym<package_declarator>")
+ debug_556:
$I10 = self.'from'()
ne $I10, -1, rxscan434_done
goto rxscan434_scan
@@ -5763,11 +6172,15 @@
rx430_pos = $P10."pos"()
# rx pass
rx430_cur."!cursor_pass"(rx430_pos, "term:sym<package_declarator>")
- rx430_cur."!cursor_debug"("PASS ", "term:sym<package_declarator>", " at pos=", rx430_pos)
+ if_null rx430_debug, debug_557
+ rx430_cur."!cursor_debug"("PASS", "term:sym<package_declarator>", " at pos=", rx430_pos)
+ debug_557:
.return (rx430_cur)
rx430_restart:
.annotate 'line', 4
- rx430_cur."!cursor_debug"("NEXT ", "term:sym<package_declarator>")
+ if_null rx430_debug, debug_558
+ rx430_cur."!cursor_debug"("NEXT", "term:sym<package_declarator>")
+ debug_558:
rx430_fail:
(rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
lt rx430_pos, -1, rx430_done
@@ -5775,14 +6188,16 @@
jump $I10
rx430_done:
rx430_cur."!cursor_fail"()
- rx430_cur."!cursor_debug"("FAIL ", "term:sym<package_declarator>")
+ if_null rx430_debug, debug_559
+ rx430_cur."!cursor_debug"("FAIL", "term:sym<package_declarator>")
+ debug_559:
.return (rx430_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>" :subid("106_1280467477.44751") :method
+.sub "!PREFIX__term:sym<package_declarator>" :subid("106_1282324002.40722") :method
.annotate 'line', 4
$P432 = self."!PREFIX__!subrule"("package_declarator", "")
new $P433, "ResizablePMCArray"
@@ -5792,7 +6207,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>" :subid("107_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<scope_declarator>" :subid("107_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx436_tgt
.local int rx436_pos
@@ -5800,7 +6215,9 @@
.local int rx436_eos
.local int rx436_rep
.local pmc rx436_cur
+ .local pmc rx436_debug
(rx436_cur, rx436_pos, rx436_tgt, $I10) = self."!cursor_start"()
+ getattribute rx436_debug, rx436_cur, "$!debug"
.lex unicode:"$\x{a2}", rx436_cur
.local pmc match
.lex "$/", match
@@ -5812,7 +6229,9 @@
substr rx436_tgt, rx436_tgt, rx436_off
rx436_start:
eq $I10, 1, rx436_restart
- rx436_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
+ if_null rx436_debug, debug_560
+ rx436_cur."!cursor_debug"("START", "term:sym<scope_declarator>")
+ debug_560:
$I10 = self.'from'()
ne $I10, -1, rxscan440_done
goto rxscan440_scan
@@ -5835,11 +6254,15 @@
rx436_pos = $P10."pos"()
# rx pass
rx436_cur."!cursor_pass"(rx436_pos, "term:sym<scope_declarator>")
- rx436_cur."!cursor_debug"("PASS ", "term:sym<scope_declarator>", " at pos=", rx436_pos)
+ if_null rx436_debug, debug_561
+ rx436_cur."!cursor_debug"("PASS", "term:sym<scope_declarator>", " at pos=", rx436_pos)
+ debug_561:
.return (rx436_cur)
rx436_restart:
.annotate 'line', 4
- rx436_cur."!cursor_debug"("NEXT ", "term:sym<scope_declarator>")
+ if_null rx436_debug, debug_562
+ rx436_cur."!cursor_debug"("NEXT", "term:sym<scope_declarator>")
+ debug_562:
rx436_fail:
(rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
lt rx436_pos, -1, rx436_done
@@ -5847,14 +6270,16 @@
jump $I10
rx436_done:
rx436_cur."!cursor_fail"()
- rx436_cur."!cursor_debug"("FAIL ", "term:sym<scope_declarator>")
+ if_null rx436_debug, debug_563
+ rx436_cur."!cursor_debug"("FAIL", "term:sym<scope_declarator>")
+ debug_563:
.return (rx436_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>" :subid("108_1280467477.44751") :method
+.sub "!PREFIX__term:sym<scope_declarator>" :subid("108_1282324002.40722") :method
.annotate 'line', 4
$P438 = self."!PREFIX__!subrule"("scope_declarator", "")
new $P439, "ResizablePMCArray"
@@ -5864,7 +6289,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>" :subid("109_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<routine_declarator>" :subid("109_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx442_tgt
.local int rx442_pos
@@ -5872,7 +6297,9 @@
.local int rx442_eos
.local int rx442_rep
.local pmc rx442_cur
+ .local pmc rx442_debug
(rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
+ getattribute rx442_debug, rx442_cur, "$!debug"
.lex unicode:"$\x{a2}", rx442_cur
.local pmc match
.lex "$/", match
@@ -5884,7 +6311,9 @@
substr rx442_tgt, rx442_tgt, rx442_off
rx442_start:
eq $I10, 1, rx442_restart
- rx442_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
+ if_null rx442_debug, debug_564
+ rx442_cur."!cursor_debug"("START", "term:sym<routine_declarator>")
+ debug_564:
$I10 = self.'from'()
ne $I10, -1, rxscan446_done
goto rxscan446_scan
@@ -5907,11 +6336,15 @@
rx442_pos = $P10."pos"()
# rx pass
rx442_cur."!cursor_pass"(rx442_pos, "term:sym<routine_declarator>")
- rx442_cur."!cursor_debug"("PASS ", "term:sym<routine_declarator>", " at pos=", rx442_pos)
+ if_null rx442_debug, debug_565
+ rx442_cur."!cursor_debug"("PASS", "term:sym<routine_declarator>", " at pos=", rx442_pos)
+ debug_565:
.return (rx442_cur)
rx442_restart:
.annotate 'line', 4
- rx442_cur."!cursor_debug"("NEXT ", "term:sym<routine_declarator>")
+ if_null rx442_debug, debug_566
+ rx442_cur."!cursor_debug"("NEXT", "term:sym<routine_declarator>")
+ debug_566:
rx442_fail:
(rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
lt rx442_pos, -1, rx442_done
@@ -5919,14 +6352,16 @@
jump $I10
rx442_done:
rx442_cur."!cursor_fail"()
- rx442_cur."!cursor_debug"("FAIL ", "term:sym<routine_declarator>")
+ if_null rx442_debug, debug_567
+ rx442_cur."!cursor_debug"("FAIL", "term:sym<routine_declarator>")
+ debug_567:
.return (rx442_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>" :subid("110_1280467477.44751") :method
+.sub "!PREFIX__term:sym<routine_declarator>" :subid("110_1282324002.40722") :method
.annotate 'line', 4
$P444 = self."!PREFIX__!subrule"("routine_declarator", "")
new $P445, "ResizablePMCArray"
@@ -5936,9 +6371,9 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<multi_declarator>" :subid("111_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<multi_declarator>" :subid("111_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
- .const 'Sub' $P453 = "113_1280467477.44751"
+ .const 'Sub' $P453 = "113_1282324002.40722"
capture_lex $P453
.local string rx448_tgt
.local int rx448_pos
@@ -5946,7 +6381,9 @@
.local int rx448_eos
.local int rx448_rep
.local pmc rx448_cur
+ .local pmc rx448_debug
(rx448_cur, rx448_pos, rx448_tgt, $I10) = self."!cursor_start"()
+ getattribute rx448_debug, rx448_cur, "$!debug"
.lex unicode:"$\x{a2}", rx448_cur
.local pmc match
.lex "$/", match
@@ -5958,7 +6395,9 @@
substr rx448_tgt, rx448_tgt, rx448_off
rx448_start:
eq $I10, 1, rx448_restart
- rx448_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
+ if_null rx448_debug, debug_568
+ rx448_cur."!cursor_debug"("START", "term:sym<multi_declarator>")
+ debug_568:
$I10 = self.'from'()
ne $I10, -1, rxscan451_done
goto rxscan451_scan
@@ -5974,7 +6413,7 @@
.annotate 'line', 231
# rx subrule "before" subtype=zerowidth negate=
rx448_cur."!cursor_pos"(rx448_pos)
- .const 'Sub' $P453 = "113_1280467477.44751"
+ .const 'Sub' $P453 = "113_1282324002.40722"
capture_lex $P453
$P10 = rx448_cur."before"($P453)
unless $P10, rx448_fail
@@ -5987,11 +6426,15 @@
rx448_pos = $P10."pos"()
# rx pass
rx448_cur."!cursor_pass"(rx448_pos, "term:sym<multi_declarator>")
- rx448_cur."!cursor_debug"("PASS ", "term:sym<multi_declarator>", " at pos=", rx448_pos)
+ if_null rx448_debug, debug_573
+ rx448_cur."!cursor_debug"("PASS", "term:sym<multi_declarator>", " at pos=", rx448_pos)
+ debug_573:
.return (rx448_cur)
rx448_restart:
.annotate 'line', 4
- rx448_cur."!cursor_debug"("NEXT ", "term:sym<multi_declarator>")
+ if_null rx448_debug, debug_574
+ rx448_cur."!cursor_debug"("NEXT", "term:sym<multi_declarator>")
+ debug_574:
rx448_fail:
(rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
lt rx448_pos, -1, rx448_done
@@ -5999,14 +6442,16 @@
jump $I10
rx448_done:
rx448_cur."!cursor_fail"()
- rx448_cur."!cursor_debug"("FAIL ", "term:sym<multi_declarator>")
+ if_null rx448_debug, debug_575
+ rx448_cur."!cursor_debug"("FAIL", "term:sym<multi_declarator>")
+ debug_575:
.return (rx448_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<multi_declarator>" :subid("112_1280467477.44751") :method
+.sub "!PREFIX__term:sym<multi_declarator>" :subid("112_1282324002.40722") :method
.annotate 'line', 4
new $P450, "ResizablePMCArray"
push $P450, ""
@@ -6015,7 +6460,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block452" :anon :subid("113_1280467477.44751") :method :outer("111_1280467477.44751")
+.sub "_block452" :anon :subid("113_1282324002.40722") :method :outer("111_1282324002.40722")
.annotate 'line', 231
.local string rx454_tgt
.local int rx454_pos
@@ -6023,7 +6468,9 @@
.local int rx454_eos
.local int rx454_rep
.local pmc rx454_cur
+ .local pmc rx454_debug
(rx454_cur, rx454_pos, rx454_tgt, $I10) = self."!cursor_start"()
+ getattribute rx454_debug, rx454_cur, "$!debug"
.lex unicode:"$\x{a2}", rx454_cur
.local pmc match
.lex "$/", match
@@ -6035,7 +6482,9 @@
substr rx454_tgt, rx454_tgt, rx454_off
rx454_start:
eq $I10, 1, rx454_restart
- rx454_cur."!cursor_debug"("START ", "")
+ if_null rx454_debug, debug_569
+ rx454_cur."!cursor_debug"("START", "")
+ debug_569:
$I10 = self.'from'()
ne $I10, -1, rxscan455_done
goto rxscan455_scan
@@ -6081,10 +6530,14 @@
alt456_end:
# rx pass
rx454_cur."!cursor_pass"(rx454_pos, "")
- rx454_cur."!cursor_debug"("PASS ", "", " at pos=", rx454_pos)
+ if_null rx454_debug, debug_570
+ rx454_cur."!cursor_debug"("PASS", "", " at pos=", rx454_pos)
+ debug_570:
.return (rx454_cur)
rx454_restart:
- rx454_cur."!cursor_debug"("NEXT ", "")
+ if_null rx454_debug, debug_571
+ rx454_cur."!cursor_debug"("NEXT", "")
+ debug_571:
rx454_fail:
(rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0)
lt rx454_pos, -1, rx454_done
@@ -6092,14 +6545,16 @@
jump $I10
rx454_done:
rx454_cur."!cursor_fail"()
- rx454_cur."!cursor_debug"("FAIL ", "")
+ if_null rx454_debug, debug_572
+ rx454_cur."!cursor_debug"("FAIL", "")
+ debug_572:
.return (rx454_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>" :subid("114_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<regex_declarator>" :subid("114_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx458_tgt
.local int rx458_pos
@@ -6107,7 +6562,9 @@
.local int rx458_eos
.local int rx458_rep
.local pmc rx458_cur
+ .local pmc rx458_debug
(rx458_cur, rx458_pos, rx458_tgt, $I10) = self."!cursor_start"()
+ getattribute rx458_debug, rx458_cur, "$!debug"
.lex unicode:"$\x{a2}", rx458_cur
.local pmc match
.lex "$/", match
@@ -6119,7 +6576,9 @@
substr rx458_tgt, rx458_tgt, rx458_off
rx458_start:
eq $I10, 1, rx458_restart
- rx458_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+ if_null rx458_debug, debug_576
+ rx458_cur."!cursor_debug"("START", "term:sym<regex_declarator>")
+ debug_576:
$I10 = self.'from'()
ne $I10, -1, rxscan462_done
goto rxscan462_scan
@@ -6142,11 +6601,15 @@
rx458_pos = $P10."pos"()
# rx pass
rx458_cur."!cursor_pass"(rx458_pos, "term:sym<regex_declarator>")
- rx458_cur."!cursor_debug"("PASS ", "term:sym<regex_declarator>", " at pos=", rx458_pos)
+ if_null rx458_debug, debug_577
+ rx458_cur."!cursor_debug"("PASS", "term:sym<regex_declarator>", " at pos=", rx458_pos)
+ debug_577:
.return (rx458_cur)
rx458_restart:
.annotate 'line', 4
- rx458_cur."!cursor_debug"("NEXT ", "term:sym<regex_declarator>")
+ if_null rx458_debug, debug_578
+ rx458_cur."!cursor_debug"("NEXT", "term:sym<regex_declarator>")
+ debug_578:
rx458_fail:
(rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0)
lt rx458_pos, -1, rx458_done
@@ -6154,14 +6617,16 @@
jump $I10
rx458_done:
rx458_cur."!cursor_fail"()
- rx458_cur."!cursor_debug"("FAIL ", "term:sym<regex_declarator>")
+ if_null rx458_debug, debug_579
+ rx458_cur."!cursor_debug"("FAIL", "term:sym<regex_declarator>")
+ debug_579:
.return (rx458_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>" :subid("115_1280467477.44751") :method
+.sub "!PREFIX__term:sym<regex_declarator>" :subid("115_1282324002.40722") :method
.annotate 'line', 4
$P460 = self."!PREFIX__!subrule"("regex_declarator", "")
new $P461, "ResizablePMCArray"
@@ -6171,7 +6636,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>" :subid("116_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<statement_prefix>" :subid("116_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx464_tgt
.local int rx464_pos
@@ -6179,7 +6644,9 @@
.local int rx464_eos
.local int rx464_rep
.local pmc rx464_cur
+ .local pmc rx464_debug
(rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"()
+ getattribute rx464_debug, rx464_cur, "$!debug"
.lex unicode:"$\x{a2}", rx464_cur
.local pmc match
.lex "$/", match
@@ -6191,7 +6658,9 @@
substr rx464_tgt, rx464_tgt, rx464_off
rx464_start:
eq $I10, 1, rx464_restart
- rx464_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
+ if_null rx464_debug, debug_580
+ rx464_cur."!cursor_debug"("START", "term:sym<statement_prefix>")
+ debug_580:
$I10 = self.'from'()
ne $I10, -1, rxscan468_done
goto rxscan468_scan
@@ -6214,11 +6683,15 @@
rx464_pos = $P10."pos"()
# rx pass
rx464_cur."!cursor_pass"(rx464_pos, "term:sym<statement_prefix>")
- rx464_cur."!cursor_debug"("PASS ", "term:sym<statement_prefix>", " at pos=", rx464_pos)
+ if_null rx464_debug, debug_581
+ rx464_cur."!cursor_debug"("PASS", "term:sym<statement_prefix>", " at pos=", rx464_pos)
+ debug_581:
.return (rx464_cur)
rx464_restart:
.annotate 'line', 4
- rx464_cur."!cursor_debug"("NEXT ", "term:sym<statement_prefix>")
+ if_null rx464_debug, debug_582
+ rx464_cur."!cursor_debug"("NEXT", "term:sym<statement_prefix>")
+ debug_582:
rx464_fail:
(rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
lt rx464_pos, -1, rx464_done
@@ -6226,14 +6699,16 @@
jump $I10
rx464_done:
rx464_cur."!cursor_fail"()
- rx464_cur."!cursor_debug"("FAIL ", "term:sym<statement_prefix>")
+ if_null rx464_debug, debug_583
+ rx464_cur."!cursor_debug"("FAIL", "term:sym<statement_prefix>")
+ debug_583:
.return (rx464_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>" :subid("117_1280467477.44751") :method
+.sub "!PREFIX__term:sym<statement_prefix>" :subid("117_1282324002.40722") :method
.annotate 'line', 4
$P466 = self."!PREFIX__!subrule"("statement_prefix", "")
new $P467, "ResizablePMCArray"
@@ -6243,7 +6718,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>" :subid("118_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<lambda>" :subid("118_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx470_tgt
.local int rx470_pos
@@ -6251,7 +6726,9 @@
.local int rx470_eos
.local int rx470_rep
.local pmc rx470_cur
+ .local pmc rx470_debug
(rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"()
+ getattribute rx470_debug, rx470_cur, "$!debug"
.lex unicode:"$\x{a2}", rx470_cur
.local pmc match
.lex "$/", match
@@ -6263,7 +6740,9 @@
substr rx470_tgt, rx470_tgt, rx470_off
rx470_start:
eq $I10, 1, rx470_restart
- rx470_cur."!cursor_debug"("START ", "term:sym<lambda>")
+ if_null rx470_debug, debug_584
+ rx470_cur."!cursor_debug"("START", "term:sym<lambda>")
+ debug_584:
$I10 = self.'from'()
ne $I10, -1, rxscan473_done
goto rxscan473_scan
@@ -6290,11 +6769,15 @@
rx470_pos = $P10."pos"()
# rx pass
rx470_cur."!cursor_pass"(rx470_pos, "term:sym<lambda>")
- rx470_cur."!cursor_debug"("PASS ", "term:sym<lambda>", " at pos=", rx470_pos)
+ if_null rx470_debug, debug_585
+ rx470_cur."!cursor_debug"("PASS", "term:sym<lambda>", " at pos=", rx470_pos)
+ debug_585:
.return (rx470_cur)
rx470_restart:
.annotate 'line', 4
- rx470_cur."!cursor_debug"("NEXT ", "term:sym<lambda>")
+ if_null rx470_debug, debug_586
+ rx470_cur."!cursor_debug"("NEXT", "term:sym<lambda>")
+ debug_586:
rx470_fail:
(rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
lt rx470_pos, -1, rx470_done
@@ -6302,14 +6785,16 @@
jump $I10
rx470_done:
rx470_cur."!cursor_fail"()
- rx470_cur."!cursor_debug"("FAIL ", "term:sym<lambda>")
+ if_null rx470_debug, debug_587
+ rx470_cur."!cursor_debug"("FAIL", "term:sym<lambda>")
+ debug_587:
.return (rx470_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>" :subid("119_1280467477.44751") :method
+.sub "!PREFIX__term:sym<lambda>" :subid("119_1282324002.40722") :method
.annotate 'line', 4
new $P472, "ResizablePMCArray"
push $P472, ""
@@ -6318,7 +6803,7 @@
.namespace ["NQP";"Grammar"]
-.sub "fatarrow" :subid("120_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "fatarrow" :subid("120_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx475_tgt
.local int rx475_pos
@@ -6326,7 +6811,9 @@
.local int rx475_eos
.local int rx475_rep
.local pmc rx475_cur
+ .local pmc rx475_debug
(rx475_cur, rx475_pos, rx475_tgt, $I10) = self."!cursor_start"()
+ getattribute rx475_debug, rx475_cur, "$!debug"
.lex unicode:"$\x{a2}", rx475_cur
.local pmc match
.lex "$/", match
@@ -6338,7 +6825,9 @@
substr rx475_tgt, rx475_tgt, rx475_off
rx475_start:
eq $I10, 1, rx475_restart
- rx475_cur."!cursor_debug"("START ", "fatarrow")
+ if_null rx475_debug, debug_588
+ rx475_cur."!cursor_debug"("START", "fatarrow")
+ debug_588:
$I10 = self.'from'()
ne $I10, -1, rxscan479_done
goto rxscan479_scan
@@ -6359,23 +6848,21 @@
rx475_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("key")
rx475_pos = $P10."pos"()
- # rx rxquantr480 ** 0..*
- set_addr $I10, rxquantr480_done
- rx475_cur."!mark_push"(0, rx475_pos, $I10)
- rxquantr480_loop:
- # rx enumcharlist negate=0
- ge rx475_pos, rx475_eos, rx475_fail
+ # rx enumcharlist_q negate=0 r 0..-1
sub $I10, rx475_pos, rx475_off
+ set rx475_rep, 0
+ sub $I12, rx475_eos, rx475_pos
+ rxenumcharlistq480_loop:
+ le $I12, 0, rxenumcharlistq480_done
substr $S10, rx475_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx475_fail
- inc rx475_pos
- set_addr $I10, rxquantr480_done
- (rx475_rep) = rx475_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr480_done
- rx475_cur."!mark_push"(rx475_rep, rx475_pos, $I10)
- goto rxquantr480_loop
- rxquantr480_done:
+ lt $I11, 0, rxenumcharlistq480_done
+ inc rx475_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq480_loop
+ rxenumcharlistq480_done:
+ add rx475_pos, rx475_pos, rx475_rep
# rx literal "=>"
add $I11, rx475_pos, 2
gt $I11, rx475_eos, rx475_fail
@@ -6398,11 +6885,15 @@
.annotate 'line', 236
# rx pass
rx475_cur."!cursor_pass"(rx475_pos, "fatarrow")
- rx475_cur."!cursor_debug"("PASS ", "fatarrow", " at pos=", rx475_pos)
+ if_null rx475_debug, debug_589
+ rx475_cur."!cursor_debug"("PASS", "fatarrow", " at pos=", rx475_pos)
+ debug_589:
.return (rx475_cur)
rx475_restart:
.annotate 'line', 4
- rx475_cur."!cursor_debug"("NEXT ", "fatarrow")
+ if_null rx475_debug, debug_590
+ rx475_cur."!cursor_debug"("NEXT", "fatarrow")
+ debug_590:
rx475_fail:
(rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0)
lt rx475_pos, -1, rx475_done
@@ -6410,14 +6901,16 @@
jump $I10
rx475_done:
rx475_cur."!cursor_fail"()
- rx475_cur."!cursor_debug"("FAIL ", "fatarrow")
+ if_null rx475_debug, debug_591
+ rx475_cur."!cursor_debug"("FAIL", "fatarrow")
+ debug_591:
.return (rx475_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow" :subid("121_1280467477.44751") :method
+.sub "!PREFIX__fatarrow" :subid("121_1282324002.40722") :method
.annotate 'line', 4
$P477 = self."!PREFIX__!subrule"("identifier", "")
new $P478, "ResizablePMCArray"
@@ -6427,7 +6920,7 @@
.namespace ["NQP";"Grammar"]
-.sub "colonpair" :subid("122_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "colonpair" :subid("122_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx482_tgt
.local int rx482_pos
@@ -6435,8 +6928,10 @@
.local int rx482_eos
.local int rx482_rep
.local pmc rx482_cur
+ .local pmc rx482_debug
(rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"()
rx482_cur."!cursor_caparray"("circumfix")
+ getattribute rx482_debug, rx482_cur, "$!debug"
.lex unicode:"$\x{a2}", rx482_cur
.local pmc match
.lex "$/", match
@@ -6448,7 +6943,9 @@
substr rx482_tgt, rx482_tgt, rx482_off
rx482_start:
eq $I10, 1, rx482_restart
- rx482_cur."!cursor_debug"("START ", "colonpair")
+ if_null rx482_debug, debug_592
+ rx482_cur."!cursor_debug"("START", "colonpair")
+ debug_592:
$I10 = self.'from'()
ne $I10, -1, rxscan488_done
goto rxscan488_scan
@@ -6466,8 +6963,8 @@
add $I11, rx482_pos, 1
gt $I11, rx482_eos, rx482_fail
sub $I11, rx482_pos, rx482_off
- substr $S10, rx482_tgt, $I11, 1
- ne $S10, ":", rx482_fail
+ ord $I11, rx482_tgt, $I11
+ ne $I11, 58, rx482_fail
add rx482_pos, 1
alt489_0:
.annotate 'line', 242
@@ -6481,8 +6978,8 @@
add $I11, rx482_pos, 1
gt $I11, rx482_eos, rx482_fail
sub $I11, rx482_pos, rx482_off
- substr $S10, rx482_tgt, $I11, 1
- ne $S10, "!", rx482_fail
+ ord $I11, rx482_tgt, $I11
+ ne $I11, 33, rx482_fail
add rx482_pos, 1
set_addr $I10, rxcap_490_fail
($I12, $I11) = rx482_cur."!mark_peek"($I10)
@@ -6548,11 +7045,15 @@
.annotate 'line', 240
# rx pass
rx482_cur."!cursor_pass"(rx482_pos, "colonpair")
- rx482_cur."!cursor_debug"("PASS ", "colonpair", " at pos=", rx482_pos)
+ if_null rx482_debug, debug_593
+ rx482_cur."!cursor_debug"("PASS", "colonpair", " at pos=", rx482_pos)
+ debug_593:
.return (rx482_cur)
rx482_restart:
.annotate 'line', 4
- rx482_cur."!cursor_debug"("NEXT ", "colonpair")
+ if_null rx482_debug, debug_594
+ rx482_cur."!cursor_debug"("NEXT", "colonpair")
+ debug_594:
rx482_fail:
(rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
lt rx482_pos, -1, rx482_done
@@ -6560,14 +7061,16 @@
jump $I10
rx482_done:
rx482_cur."!cursor_fail"()
- rx482_cur."!cursor_debug"("FAIL ", "colonpair")
+ if_null rx482_debug, debug_595
+ rx482_cur."!cursor_debug"("FAIL", "colonpair")
+ debug_595:
.return (rx482_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair" :subid("123_1280467477.44751") :method
+.sub "!PREFIX__colonpair" :subid("123_1282324002.40722") :method
.annotate 'line', 4
$P484 = self."!PREFIX__!subrule"("circumfix", ":")
$P485 = self."!PREFIX__!subrule"("identifier", ":")
@@ -6581,7 +7084,7 @@
.namespace ["NQP";"Grammar"]
-.sub "variable" :subid("124_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "variable" :subid("124_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx494_tgt
.local int rx494_pos
@@ -6589,8 +7092,10 @@
.local int rx494_eos
.local int rx494_rep
.local pmc rx494_cur
+ .local pmc rx494_debug
(rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"()
rx494_cur."!cursor_caparray"("twigil")
+ getattribute rx494_debug, rx494_cur, "$!debug"
.lex unicode:"$\x{a2}", rx494_cur
.local pmc match
.lex "$/", match
@@ -6602,7 +7107,9 @@
substr rx494_tgt, rx494_tgt, rx494_off
rx494_start:
eq $I10, 1, rx494_restart
- rx494_cur."!cursor_debug"("START ", "variable")
+ if_null rx494_debug, debug_596
+ rx494_cur."!cursor_debug"("START", "variable")
+ debug_596:
$I10 = self.'from'()
ne $I10, -1, rxscan499_done
goto rxscan499_scan
@@ -6689,8 +7196,8 @@
add $I11, rx494_pos, 1
gt $I11, rx494_eos, rx494_fail
sub $I11, rx494_pos, rx494_off
- substr $S10, rx494_tgt, $I11, 1
- ne $S10, "$", rx494_fail
+ ord $I11, rx494_tgt, $I11
+ ne $I11, 36, rx494_fail
add rx494_pos, 1
set_addr $I10, rxcap_503_fail
($I12, $I11) = rx494_cur."!mark_peek"($I10)
@@ -6728,11 +7235,15 @@
.annotate 'line', 249
# rx pass
rx494_cur."!cursor_pass"(rx494_pos, "variable")
- rx494_cur."!cursor_debug"("PASS ", "variable", " at pos=", rx494_pos)
+ if_null rx494_debug, debug_597
+ rx494_cur."!cursor_debug"("PASS", "variable", " at pos=", rx494_pos)
+ debug_597:
.return (rx494_cur)
rx494_restart:
.annotate 'line', 4
- rx494_cur."!cursor_debug"("NEXT ", "variable")
+ if_null rx494_debug, debug_598
+ rx494_cur."!cursor_debug"("NEXT", "variable")
+ debug_598:
rx494_fail:
(rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
lt rx494_pos, -1, rx494_done
@@ -6740,14 +7251,16 @@
jump $I10
rx494_done:
rx494_cur."!cursor_fail"()
- rx494_cur."!cursor_debug"("FAIL ", "variable")
+ if_null rx494_debug, debug_599
+ rx494_cur."!cursor_debug"("FAIL", "variable")
+ debug_599:
.return (rx494_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable" :subid("125_1280467477.44751") :method
+.sub "!PREFIX__variable" :subid("125_1282324002.40722") :method
.annotate 'line', 4
$P496 = self."!PREFIX__!subrule"("sigil", "")
$P497 = self."!PREFIX__!subrule"("sigil", "")
@@ -6762,7 +7275,7 @@
.namespace ["NQP";"Grammar"]
-.sub "sigil" :subid("126_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "sigil" :subid("126_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx506_tgt
.local int rx506_pos
@@ -6770,7 +7283,9 @@
.local int rx506_eos
.local int rx506_rep
.local pmc rx506_cur
+ .local pmc rx506_debug
(rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"()
+ getattribute rx506_debug, rx506_cur, "$!debug"
.lex unicode:"$\x{a2}", rx506_cur
.local pmc match
.lex "$/", match
@@ -6782,7 +7297,9 @@
substr rx506_tgt, rx506_tgt, rx506_off
rx506_start:
eq $I10, 1, rx506_restart
- rx506_cur."!cursor_debug"("START ", "sigil")
+ if_null rx506_debug, debug_600
+ rx506_cur."!cursor_debug"("START", "sigil")
+ debug_600:
$I10 = self.'from'()
ne $I10, -1, rxscan509_done
goto rxscan509_scan
@@ -6805,11 +7322,15 @@
inc rx506_pos
# rx pass
rx506_cur."!cursor_pass"(rx506_pos, "sigil")
- rx506_cur."!cursor_debug"("PASS ", "sigil", " at pos=", rx506_pos)
+ if_null rx506_debug, debug_601
+ rx506_cur."!cursor_debug"("PASS", "sigil", " at pos=", rx506_pos)
+ debug_601:
.return (rx506_cur)
rx506_restart:
.annotate 'line', 4
- rx506_cur."!cursor_debug"("NEXT ", "sigil")
+ if_null rx506_debug, debug_602
+ rx506_cur."!cursor_debug"("NEXT", "sigil")
+ debug_602:
rx506_fail:
(rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
lt rx506_pos, -1, rx506_done
@@ -6817,14 +7338,16 @@
jump $I10
rx506_done:
rx506_cur."!cursor_fail"()
- rx506_cur."!cursor_debug"("FAIL ", "sigil")
+ if_null rx506_debug, debug_603
+ rx506_cur."!cursor_debug"("FAIL", "sigil")
+ debug_603:
.return (rx506_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil" :subid("127_1280467477.44751") :method
+.sub "!PREFIX__sigil" :subid("127_1282324002.40722") :method
.annotate 'line', 4
new $P508, "ResizablePMCArray"
push $P508, "&"
@@ -6836,7 +7359,7 @@
.namespace ["NQP";"Grammar"]
-.sub "twigil" :subid("128_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "twigil" :subid("128_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx511_tgt
.local int rx511_pos
@@ -6844,7 +7367,9 @@
.local int rx511_eos
.local int rx511_rep
.local pmc rx511_cur
+ .local pmc rx511_debug
(rx511_cur, rx511_pos, rx511_tgt, $I10) = self."!cursor_start"()
+ getattribute rx511_debug, rx511_cur, "$!debug"
.lex unicode:"$\x{a2}", rx511_cur
.local pmc match
.lex "$/", match
@@ -6856,7 +7381,9 @@
substr rx511_tgt, rx511_tgt, rx511_off
rx511_start:
eq $I10, 1, rx511_restart
- rx511_cur."!cursor_debug"("START ", "twigil")
+ if_null rx511_debug, debug_604
+ rx511_cur."!cursor_debug"("START", "twigil")
+ debug_604:
$I10 = self.'from'()
ne $I10, -1, rxscan514_done
goto rxscan514_scan
@@ -6879,11 +7406,15 @@
inc rx511_pos
# rx pass
rx511_cur."!cursor_pass"(rx511_pos, "twigil")
- rx511_cur."!cursor_debug"("PASS ", "twigil", " at pos=", rx511_pos)
+ if_null rx511_debug, debug_605
+ rx511_cur."!cursor_debug"("PASS", "twigil", " at pos=", rx511_pos)
+ debug_605:
.return (rx511_cur)
rx511_restart:
.annotate 'line', 4
- rx511_cur."!cursor_debug"("NEXT ", "twigil")
+ if_null rx511_debug, debug_606
+ rx511_cur."!cursor_debug"("NEXT", "twigil")
+ debug_606:
rx511_fail:
(rx511_rep, rx511_pos, $I10, $P10) = rx511_cur."!mark_fail"(0)
lt rx511_pos, -1, rx511_done
@@ -6891,14 +7422,16 @@
jump $I10
rx511_done:
rx511_cur."!cursor_fail"()
- rx511_cur."!cursor_debug"("FAIL ", "twigil")
+ if_null rx511_debug, debug_607
+ rx511_cur."!cursor_debug"("FAIL", "twigil")
+ debug_607:
.return (rx511_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil" :subid("129_1280467477.44751") :method
+.sub "!PREFIX__twigil" :subid("129_1282324002.40722") :method
.annotate 'line', 4
new $P513, "ResizablePMCArray"
push $P513, "?"
@@ -6909,7 +7442,7 @@
.namespace ["NQP";"Grammar"]
-.sub "package_declarator" :subid("130_1280467477.44751") :method
+.sub "package_declarator" :subid("130_1282324002.40722") :method
.annotate 'line', 259
$P516 = self."!protoregex"("package_declarator")
.return ($P516)
@@ -6917,7 +7450,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator" :subid("131_1280467477.44751") :method
+.sub "!PREFIX__package_declarator" :subid("131_1282324002.40722") :method
.annotate 'line', 259
$P518 = self."!PREFIX__!protoregex"("package_declarator")
.return ($P518)
@@ -6925,7 +7458,7 @@
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>" :subid("132_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "package_declarator:sym<module>" :subid("132_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx520_tgt
.local int rx520_pos
@@ -6933,7 +7466,9 @@
.local int rx520_eos
.local int rx520_rep
.local pmc rx520_cur
+ .local pmc rx520_debug
(rx520_cur, rx520_pos, rx520_tgt, $I10) = self."!cursor_start"()
+ getattribute rx520_debug, rx520_cur, "$!debug"
.lex unicode:"$\x{a2}", rx520_cur
.local pmc match
.lex "$/", match
@@ -6945,7 +7480,9 @@
substr rx520_tgt, rx520_tgt, rx520_off
rx520_start:
eq $I10, 1, rx520_restart
- rx520_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
+ if_null rx520_debug, debug_608
+ rx520_cur."!cursor_debug"("START", "package_declarator:sym<module>")
+ debug_608:
$I10 = self.'from'()
ne $I10, -1, rxscan524_done
goto rxscan524_scan
@@ -6989,11 +7526,15 @@
rx520_pos = $P10."pos"()
# rx pass
rx520_cur."!cursor_pass"(rx520_pos, "package_declarator:sym<module>")
- rx520_cur."!cursor_debug"("PASS ", "package_declarator:sym<module>", " at pos=", rx520_pos)
+ if_null rx520_debug, debug_609
+ rx520_cur."!cursor_debug"("PASS", "package_declarator:sym<module>", " at pos=", rx520_pos)
+ debug_609:
.return (rx520_cur)
rx520_restart:
.annotate 'line', 4
- rx520_cur."!cursor_debug"("NEXT ", "package_declarator:sym<module>")
+ if_null rx520_debug, debug_610
+ rx520_cur."!cursor_debug"("NEXT", "package_declarator:sym<module>")
+ debug_610:
rx520_fail:
(rx520_rep, rx520_pos, $I10, $P10) = rx520_cur."!mark_fail"(0)
lt rx520_pos, -1, rx520_done
@@ -7001,14 +7542,16 @@
jump $I10
rx520_done:
rx520_cur."!cursor_fail"()
- rx520_cur."!cursor_debug"("FAIL ", "package_declarator:sym<module>")
+ if_null rx520_debug, debug_611
+ rx520_cur."!cursor_debug"("FAIL", "package_declarator:sym<module>")
+ debug_611:
.return (rx520_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>" :subid("133_1280467477.44751") :method
+.sub "!PREFIX__package_declarator:sym<module>" :subid("133_1282324002.40722") :method
.annotate 'line', 4
$P522 = self."!PREFIX__!subrule"("package_def", "module")
new $P523, "ResizablePMCArray"
@@ -7018,7 +7561,7 @@
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>" :subid("134_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "package_declarator:sym<class>" :subid("134_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx527_tgt
.local int rx527_pos
@@ -7026,7 +7569,9 @@
.local int rx527_eos
.local int rx527_rep
.local pmc rx527_cur
+ .local pmc rx527_debug
(rx527_cur, rx527_pos, rx527_tgt, $I10) = self."!cursor_start"()
+ getattribute rx527_debug, rx527_cur, "$!debug"
.lex unicode:"$\x{a2}", rx527_cur
.local pmc match
.lex "$/", match
@@ -7038,7 +7583,9 @@
substr rx527_tgt, rx527_tgt, rx527_off
rx527_start:
eq $I10, 1, rx527_restart
- rx527_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
+ if_null rx527_debug, debug_612
+ rx527_cur."!cursor_debug"("START", "package_declarator:sym<class>")
+ debug_612:
$I10 = self.'from'()
ne $I10, -1, rxscan532_done
goto rxscan532_scan
@@ -7095,11 +7642,15 @@
rx527_pos = $P10."pos"()
# rx pass
rx527_cur."!cursor_pass"(rx527_pos, "package_declarator:sym<class>")
- rx527_cur."!cursor_debug"("PASS ", "package_declarator:sym<class>", " at pos=", rx527_pos)
+ if_null rx527_debug, debug_613
+ rx527_cur."!cursor_debug"("PASS", "package_declarator:sym<class>", " at pos=", rx527_pos)
+ debug_613:
.return (rx527_cur)
rx527_restart:
.annotate 'line', 4
- rx527_cur."!cursor_debug"("NEXT ", "package_declarator:sym<class>")
+ if_null rx527_debug, debug_614
+ rx527_cur."!cursor_debug"("NEXT", "package_declarator:sym<class>")
+ debug_614:
rx527_fail:
(rx527_rep, rx527_pos, $I10, $P10) = rx527_cur."!mark_fail"(0)
lt rx527_pos, -1, rx527_done
@@ -7107,14 +7658,16 @@
jump $I10
rx527_done:
rx527_cur."!cursor_fail"()
- rx527_cur."!cursor_debug"("FAIL ", "package_declarator:sym<class>")
+ if_null rx527_debug, debug_615
+ rx527_cur."!cursor_debug"("FAIL", "package_declarator:sym<class>")
+ debug_615:
.return (rx527_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>" :subid("135_1280467477.44751") :method
+.sub "!PREFIX__package_declarator:sym<class>" :subid("135_1282324002.40722") :method
.annotate 'line', 4
$P529 = self."!PREFIX__!subrule"("package_def", "grammar")
$P530 = self."!PREFIX__!subrule"("package_def", "class")
@@ -7126,7 +7679,7 @@
.namespace ["NQP";"Grammar"]
-.sub "package_def" :subid("136_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "package_def" :subid("136_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx536_tgt
.local int rx536_pos
@@ -7134,8 +7687,10 @@
.local int rx536_eos
.local int rx536_rep
.local pmc rx536_cur
+ .local pmc rx536_debug
(rx536_cur, rx536_pos, rx536_tgt, $I10) = self."!cursor_start"()
rx536_cur."!cursor_caparray"("parent")
+ getattribute rx536_debug, rx536_cur, "$!debug"
.lex unicode:"$\x{a2}", rx536_cur
.local pmc match
.lex "$/", match
@@ -7147,7 +7702,9 @@
substr rx536_tgt, rx536_tgt, rx536_off
rx536_start:
eq $I10, 1, rx536_restart
- rx536_cur."!cursor_debug"("START ", "package_def")
+ if_null rx536_debug, debug_616
+ rx536_cur."!cursor_debug"("START", "package_def")
+ debug_616:
$I10 = self.'from'()
ne $I10, -1, rxscan540_done
goto rxscan540_scan
@@ -7235,8 +7792,8 @@
add $I11, rx536_pos, 1
gt $I11, rx536_eos, rx536_fail
sub $I11, rx536_pos, rx536_off
- substr $S10, rx536_tgt, $I11, 1
- ne $S10, ";", rx536_fail
+ ord $I11, rx536_tgt, $I11
+ ne $I11, 59, rx536_fail
add rx536_pos, 1
# rx subrule "ws" subtype=method negate=
rx536_cur."!cursor_pos"(rx536_pos)
@@ -7316,11 +7873,15 @@
.annotate 'line', 263
# rx pass
rx536_cur."!cursor_pass"(rx536_pos, "package_def")
- rx536_cur."!cursor_debug"("PASS ", "package_def", " at pos=", rx536_pos)
+ if_null rx536_debug, debug_617
+ rx536_cur."!cursor_debug"("PASS", "package_def", " at pos=", rx536_pos)
+ debug_617:
.return (rx536_cur)
rx536_restart:
.annotate 'line', 4
- rx536_cur."!cursor_debug"("NEXT ", "package_def")
+ if_null rx536_debug, debug_618
+ rx536_cur."!cursor_debug"("NEXT", "package_def")
+ debug_618:
rx536_fail:
(rx536_rep, rx536_pos, $I10, $P10) = rx536_cur."!mark_fail"(0)
lt rx536_pos, -1, rx536_done
@@ -7328,14 +7889,16 @@
jump $I10
rx536_done:
rx536_cur."!cursor_fail"()
- rx536_cur."!cursor_debug"("FAIL ", "package_def")
+ if_null rx536_debug, debug_619
+ rx536_cur."!cursor_debug"("FAIL", "package_def")
+ debug_619:
.return (rx536_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def" :subid("137_1280467477.44751") :method
+.sub "!PREFIX__package_def" :subid("137_1282324002.40722") :method
.annotate 'line', 4
$P538 = self."!PREFIX__!subrule"("ws", "")
new $P539, "ResizablePMCArray"
@@ -7345,7 +7908,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator" :subid("138_1280467477.44751") :method
+.sub "scope_declarator" :subid("138_1282324002.40722") :method
.annotate 'line', 273
$P559 = self."!protoregex"("scope_declarator")
.return ($P559)
@@ -7353,7 +7916,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator" :subid("139_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator" :subid("139_1282324002.40722") :method
.annotate 'line', 273
$P561 = self."!PREFIX__!protoregex"("scope_declarator")
.return ($P561)
@@ -7361,7 +7924,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>" :subid("140_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scope_declarator:sym<my>" :subid("140_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx563_tgt
.local int rx563_pos
@@ -7369,7 +7932,9 @@
.local int rx563_eos
.local int rx563_rep
.local pmc rx563_cur
+ .local pmc rx563_debug
(rx563_cur, rx563_pos, rx563_tgt, $I10) = self."!cursor_start"()
+ getattribute rx563_debug, rx563_cur, "$!debug"
.lex unicode:"$\x{a2}", rx563_cur
.local pmc match
.lex "$/", match
@@ -7381,7 +7946,9 @@
substr rx563_tgt, rx563_tgt, rx563_off
rx563_start:
eq $I10, 1, rx563_restart
- rx563_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+ if_null rx563_debug, debug_620
+ rx563_cur."!cursor_debug"("START", "scope_declarator:sym<my>")
+ debug_620:
$I10 = self.'from'()
ne $I10, -1, rxscan567_done
goto rxscan567_scan
@@ -7425,11 +7992,15 @@
rx563_pos = $P10."pos"()
# rx pass
rx563_cur."!cursor_pass"(rx563_pos, "scope_declarator:sym<my>")
- rx563_cur."!cursor_debug"("PASS ", "scope_declarator:sym<my>", " at pos=", rx563_pos)
+ if_null rx563_debug, debug_621
+ rx563_cur."!cursor_debug"("PASS", "scope_declarator:sym<my>", " at pos=", rx563_pos)
+ debug_621:
.return (rx563_cur)
rx563_restart:
.annotate 'line', 4
- rx563_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<my>")
+ if_null rx563_debug, debug_622
+ rx563_cur."!cursor_debug"("NEXT", "scope_declarator:sym<my>")
+ debug_622:
rx563_fail:
(rx563_rep, rx563_pos, $I10, $P10) = rx563_cur."!mark_fail"(0)
lt rx563_pos, -1, rx563_done
@@ -7437,14 +8008,16 @@
jump $I10
rx563_done:
rx563_cur."!cursor_fail"()
- rx563_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<my>")
+ if_null rx563_debug, debug_623
+ rx563_cur."!cursor_debug"("FAIL", "scope_declarator:sym<my>")
+ debug_623:
.return (rx563_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>" :subid("141_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<my>" :subid("141_1282324002.40722") :method
.annotate 'line', 4
$P565 = self."!PREFIX__!subrule"("scoped", "my")
new $P566, "ResizablePMCArray"
@@ -7454,7 +8027,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>" :subid("142_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scope_declarator:sym<our>" :subid("142_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx570_tgt
.local int rx570_pos
@@ -7462,7 +8035,9 @@
.local int rx570_eos
.local int rx570_rep
.local pmc rx570_cur
+ .local pmc rx570_debug
(rx570_cur, rx570_pos, rx570_tgt, $I10) = self."!cursor_start"()
+ getattribute rx570_debug, rx570_cur, "$!debug"
.lex unicode:"$\x{a2}", rx570_cur
.local pmc match
.lex "$/", match
@@ -7474,7 +8049,9 @@
substr rx570_tgt, rx570_tgt, rx570_off
rx570_start:
eq $I10, 1, rx570_restart
- rx570_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
+ if_null rx570_debug, debug_624
+ rx570_cur."!cursor_debug"("START", "scope_declarator:sym<our>")
+ debug_624:
$I10 = self.'from'()
ne $I10, -1, rxscan574_done
goto rxscan574_scan
@@ -7518,11 +8095,15 @@
rx570_pos = $P10."pos"()
# rx pass
rx570_cur."!cursor_pass"(rx570_pos, "scope_declarator:sym<our>")
- rx570_cur."!cursor_debug"("PASS ", "scope_declarator:sym<our>", " at pos=", rx570_pos)
+ if_null rx570_debug, debug_625
+ rx570_cur."!cursor_debug"("PASS", "scope_declarator:sym<our>", " at pos=", rx570_pos)
+ debug_625:
.return (rx570_cur)
rx570_restart:
.annotate 'line', 4
- rx570_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<our>")
+ if_null rx570_debug, debug_626
+ rx570_cur."!cursor_debug"("NEXT", "scope_declarator:sym<our>")
+ debug_626:
rx570_fail:
(rx570_rep, rx570_pos, $I10, $P10) = rx570_cur."!mark_fail"(0)
lt rx570_pos, -1, rx570_done
@@ -7530,14 +8111,16 @@
jump $I10
rx570_done:
rx570_cur."!cursor_fail"()
- rx570_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<our>")
+ if_null rx570_debug, debug_627
+ rx570_cur."!cursor_debug"("FAIL", "scope_declarator:sym<our>")
+ debug_627:
.return (rx570_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>" :subid("143_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<our>" :subid("143_1282324002.40722") :method
.annotate 'line', 4
$P572 = self."!PREFIX__!subrule"("scoped", "our")
new $P573, "ResizablePMCArray"
@@ -7547,7 +8130,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>" :subid("144_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scope_declarator:sym<has>" :subid("144_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx577_tgt
.local int rx577_pos
@@ -7555,7 +8138,9 @@
.local int rx577_eos
.local int rx577_rep
.local pmc rx577_cur
+ .local pmc rx577_debug
(rx577_cur, rx577_pos, rx577_tgt, $I10) = self."!cursor_start"()
+ getattribute rx577_debug, rx577_cur, "$!debug"
.lex unicode:"$\x{a2}", rx577_cur
.local pmc match
.lex "$/", match
@@ -7567,7 +8152,9 @@
substr rx577_tgt, rx577_tgt, rx577_off
rx577_start:
eq $I10, 1, rx577_restart
- rx577_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
+ if_null rx577_debug, debug_628
+ rx577_cur."!cursor_debug"("START", "scope_declarator:sym<has>")
+ debug_628:
$I10 = self.'from'()
ne $I10, -1, rxscan581_done
goto rxscan581_scan
@@ -7611,11 +8198,15 @@
rx577_pos = $P10."pos"()
# rx pass
rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<has>")
- rx577_cur."!cursor_debug"("PASS ", "scope_declarator:sym<has>", " at pos=", rx577_pos)
+ if_null rx577_debug, debug_629
+ rx577_cur."!cursor_debug"("PASS", "scope_declarator:sym<has>", " at pos=", rx577_pos)
+ debug_629:
.return (rx577_cur)
rx577_restart:
.annotate 'line', 4
- rx577_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<has>")
+ if_null rx577_debug, debug_630
+ rx577_cur."!cursor_debug"("NEXT", "scope_declarator:sym<has>")
+ debug_630:
rx577_fail:
(rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
lt rx577_pos, -1, rx577_done
@@ -7623,14 +8214,16 @@
jump $I10
rx577_done:
rx577_cur."!cursor_fail"()
- rx577_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<has>")
+ if_null rx577_debug, debug_631
+ rx577_cur."!cursor_debug"("FAIL", "scope_declarator:sym<has>")
+ debug_631:
.return (rx577_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>" :subid("145_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<has>" :subid("145_1282324002.40722") :method
.annotate 'line', 4
$P579 = self."!PREFIX__!subrule"("scoped", "has")
new $P580, "ResizablePMCArray"
@@ -7640,7 +8233,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scoped" :subid("146_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scoped" :subid("146_1282324002.40722") :method :outer("11_1282324002.40722")
.param pmc param_584
.annotate 'line', 278
.lex "$*SCOPE", param_584
@@ -7651,7 +8244,9 @@
.local int rx585_eos
.local int rx585_rep
.local pmc rx585_cur
+ .local pmc rx585_debug
(rx585_cur, rx585_pos, rx585_tgt, $I10) = self."!cursor_start"()
+ getattribute rx585_debug, rx585_cur, "$!debug"
.lex unicode:"$\x{a2}", rx585_cur
.local pmc match
.lex "$/", match
@@ -7663,7 +8258,9 @@
substr rx585_tgt, rx585_tgt, rx585_off
rx585_start:
eq $I10, 1, rx585_restart
- rx585_cur."!cursor_debug"("START ", "scoped")
+ if_null rx585_debug, debug_632
+ rx585_cur."!cursor_debug"("START", "scoped")
+ debug_632:
$I10 = self.'from'()
ne $I10, -1, rxscan590_done
goto rxscan590_scan
@@ -7722,11 +8319,15 @@
.annotate 'line', 278
# rx pass
rx585_cur."!cursor_pass"(rx585_pos, "scoped")
- rx585_cur."!cursor_debug"("PASS ", "scoped", " at pos=", rx585_pos)
+ if_null rx585_debug, debug_633
+ rx585_cur."!cursor_debug"("PASS", "scoped", " at pos=", rx585_pos)
+ debug_633:
.return (rx585_cur)
rx585_restart:
.annotate 'line', 4
- rx585_cur."!cursor_debug"("NEXT ", "scoped")
+ if_null rx585_debug, debug_634
+ rx585_cur."!cursor_debug"("NEXT", "scoped")
+ debug_634:
rx585_fail:
(rx585_rep, rx585_pos, $I10, $P10) = rx585_cur."!mark_fail"(0)
lt rx585_pos, -1, rx585_done
@@ -7734,14 +8335,16 @@
jump $I10
rx585_done:
rx585_cur."!cursor_fail"()
- rx585_cur."!cursor_debug"("FAIL ", "scoped")
+ if_null rx585_debug, debug_635
+ rx585_cur."!cursor_debug"("FAIL", "scoped")
+ debug_635:
.return (rx585_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped" :subid("147_1280467477.44751") :method
+.sub "!PREFIX__scoped" :subid("147_1282324002.40722") :method
.annotate 'line', 4
$P587 = self."!PREFIX__!subrule"("ws", "")
$P588 = self."!PREFIX__!subrule"("ws", "")
@@ -7753,7 +8356,7 @@
.namespace ["NQP";"Grammar"]
-.sub "typename" :subid("148_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "typename" :subid("148_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx597_tgt
.local int rx597_pos
@@ -7761,7 +8364,9 @@
.local int rx597_eos
.local int rx597_rep
.local pmc rx597_cur
+ .local pmc rx597_debug
(rx597_cur, rx597_pos, rx597_tgt, $I10) = self."!cursor_start"()
+ getattribute rx597_debug, rx597_cur, "$!debug"
.lex unicode:"$\x{a2}", rx597_cur
.local pmc match
.lex "$/", match
@@ -7773,7 +8378,9 @@
substr rx597_tgt, rx597_tgt, rx597_off
rx597_start:
eq $I10, 1, rx597_restart
- rx597_cur."!cursor_debug"("START ", "typename")
+ if_null rx597_debug, debug_636
+ rx597_cur."!cursor_debug"("START", "typename")
+ debug_636:
$I10 = self.'from'()
ne $I10, -1, rxscan601_done
goto rxscan601_scan
@@ -7796,11 +8403,15 @@
rx597_pos = $P10."pos"()
# rx pass
rx597_cur."!cursor_pass"(rx597_pos, "typename")
- rx597_cur."!cursor_debug"("PASS ", "typename", " at pos=", rx597_pos)
+ if_null rx597_debug, debug_637
+ rx597_cur."!cursor_debug"("PASS", "typename", " at pos=", rx597_pos)
+ debug_637:
.return (rx597_cur)
rx597_restart:
.annotate 'line', 4
- rx597_cur."!cursor_debug"("NEXT ", "typename")
+ if_null rx597_debug, debug_638
+ rx597_cur."!cursor_debug"("NEXT", "typename")
+ debug_638:
rx597_fail:
(rx597_rep, rx597_pos, $I10, $P10) = rx597_cur."!mark_fail"(0)
lt rx597_pos, -1, rx597_done
@@ -7808,14 +8419,16 @@
jump $I10
rx597_done:
rx597_cur."!cursor_fail"()
- rx597_cur."!cursor_debug"("FAIL ", "typename")
+ if_null rx597_debug, debug_639
+ rx597_cur."!cursor_debug"("FAIL", "typename")
+ debug_639:
.return (rx597_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename" :subid("149_1280467477.44751") :method
+.sub "!PREFIX__typename" :subid("149_1282324002.40722") :method
.annotate 'line', 4
$P599 = self."!PREFIX__!subrule"("name", "")
new $P600, "ResizablePMCArray"
@@ -7825,7 +8438,7 @@
.namespace ["NQP";"Grammar"]
-.sub "declarator" :subid("150_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "declarator" :subid("150_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx603_tgt
.local int rx603_pos
@@ -7833,7 +8446,9 @@
.local int rx603_eos
.local int rx603_rep
.local pmc rx603_cur
+ .local pmc rx603_debug
(rx603_cur, rx603_pos, rx603_tgt, $I10) = self."!cursor_start"()
+ getattribute rx603_debug, rx603_cur, "$!debug"
.lex unicode:"$\x{a2}", rx603_cur
.local pmc match
.lex "$/", match
@@ -7845,7 +8460,9 @@
substr rx603_tgt, rx603_tgt, rx603_off
rx603_start:
eq $I10, 1, rx603_restart
- rx603_cur."!cursor_debug"("START ", "declarator")
+ if_null rx603_debug, debug_640
+ rx603_cur."!cursor_debug"("START", "declarator")
+ debug_640:
$I10 = self.'from'()
ne $I10, -1, rxscan608_done
goto rxscan608_scan
@@ -7884,11 +8501,15 @@
.annotate 'line', 285
# rx pass
rx603_cur."!cursor_pass"(rx603_pos, "declarator")
- rx603_cur."!cursor_debug"("PASS ", "declarator", " at pos=", rx603_pos)
+ if_null rx603_debug, debug_641
+ rx603_cur."!cursor_debug"("PASS", "declarator", " at pos=", rx603_pos)
+ debug_641:
.return (rx603_cur)
rx603_restart:
.annotate 'line', 4
- rx603_cur."!cursor_debug"("NEXT ", "declarator")
+ if_null rx603_debug, debug_642
+ rx603_cur."!cursor_debug"("NEXT", "declarator")
+ debug_642:
rx603_fail:
(rx603_rep, rx603_pos, $I10, $P10) = rx603_cur."!mark_fail"(0)
lt rx603_pos, -1, rx603_done
@@ -7896,14 +8517,16 @@
jump $I10
rx603_done:
rx603_cur."!cursor_fail"()
- rx603_cur."!cursor_debug"("FAIL ", "declarator")
+ if_null rx603_debug, debug_643
+ rx603_cur."!cursor_debug"("FAIL", "declarator")
+ debug_643:
.return (rx603_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator" :subid("151_1280467477.44751") :method
+.sub "!PREFIX__declarator" :subid("151_1282324002.40722") :method
.annotate 'line', 4
$P605 = self."!PREFIX__!subrule"("routine_declarator", "")
$P606 = self."!PREFIX__!subrule"("variable_declarator", "")
@@ -7915,7 +8538,7 @@
.namespace ["NQP";"Grammar"]
-.sub "variable_declarator" :subid("152_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "variable_declarator" :subid("152_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx611_tgt
.local int rx611_pos
@@ -7923,7 +8546,9 @@
.local int rx611_eos
.local int rx611_rep
.local pmc rx611_cur
+ .local pmc rx611_debug
(rx611_cur, rx611_pos, rx611_tgt, $I10) = self."!cursor_start"()
+ getattribute rx611_debug, rx611_cur, "$!debug"
.lex unicode:"$\x{a2}", rx611_cur
.local pmc match
.lex "$/", match
@@ -7935,7 +8560,9 @@
substr rx611_tgt, rx611_tgt, rx611_off
rx611_start:
eq $I10, 1, rx611_restart
- rx611_cur."!cursor_debug"("START ", "variable_declarator")
+ if_null rx611_debug, debug_644
+ rx611_cur."!cursor_debug"("START", "variable_declarator")
+ debug_644:
$I10 = self.'from'()
ne $I10, -1, rxscan615_done
goto rxscan615_scan
@@ -7958,11 +8585,15 @@
rx611_pos = $P10."pos"()
# rx pass
rx611_cur."!cursor_pass"(rx611_pos, "variable_declarator")
- rx611_cur."!cursor_debug"("PASS ", "variable_declarator", " at pos=", rx611_pos)
+ if_null rx611_debug, debug_645
+ rx611_cur."!cursor_debug"("PASS", "variable_declarator", " at pos=", rx611_pos)
+ debug_645:
.return (rx611_cur)
rx611_restart:
.annotate 'line', 4
- rx611_cur."!cursor_debug"("NEXT ", "variable_declarator")
+ if_null rx611_debug, debug_646
+ rx611_cur."!cursor_debug"("NEXT", "variable_declarator")
+ debug_646:
rx611_fail:
(rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0)
lt rx611_pos, -1, rx611_done
@@ -7970,14 +8601,16 @@
jump $I10
rx611_done:
rx611_cur."!cursor_fail"()
- rx611_cur."!cursor_debug"("FAIL ", "variable_declarator")
+ if_null rx611_debug, debug_647
+ rx611_cur."!cursor_debug"("FAIL", "variable_declarator")
+ debug_647:
.return (rx611_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator" :subid("153_1280467477.44751") :method
+.sub "!PREFIX__variable_declarator" :subid("153_1282324002.40722") :method
.annotate 'line', 4
$P613 = self."!PREFIX__!subrule"("variable", "")
new $P614, "ResizablePMCArray"
@@ -7987,7 +8620,7 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator" :subid("154_1280467477.44751") :method
+.sub "routine_declarator" :subid("154_1282324002.40722") :method
.annotate 'line', 292
$P617 = self."!protoregex"("routine_declarator")
.return ($P617)
@@ -7995,7 +8628,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator" :subid("155_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator" :subid("155_1282324002.40722") :method
.annotate 'line', 292
$P619 = self."!PREFIX__!protoregex"("routine_declarator")
.return ($P619)
@@ -8003,7 +8636,7 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>" :subid("156_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "routine_declarator:sym<sub>" :subid("156_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx621_tgt
.local int rx621_pos
@@ -8011,7 +8644,9 @@
.local int rx621_eos
.local int rx621_rep
.local pmc rx621_cur
+ .local pmc rx621_debug
(rx621_cur, rx621_pos, rx621_tgt, $I10) = self."!cursor_start"()
+ getattribute rx621_debug, rx621_cur, "$!debug"
.lex unicode:"$\x{a2}", rx621_cur
.local pmc match
.lex "$/", match
@@ -8023,7 +8658,9 @@
substr rx621_tgt, rx621_tgt, rx621_off
rx621_start:
eq $I10, 1, rx621_restart
- rx621_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+ if_null rx621_debug, debug_648
+ rx621_cur."!cursor_debug"("START", "routine_declarator:sym<sub>")
+ debug_648:
$I10 = self.'from'()
ne $I10, -1, rxscan625_done
goto rxscan625_scan
@@ -8067,11 +8704,15 @@
rx621_pos = $P10."pos"()
# rx pass
rx621_cur."!cursor_pass"(rx621_pos, "routine_declarator:sym<sub>")
- rx621_cur."!cursor_debug"("PASS ", "routine_declarator:sym<sub>", " at pos=", rx621_pos)
+ if_null rx621_debug, debug_649
+ rx621_cur."!cursor_debug"("PASS", "routine_declarator:sym<sub>", " at pos=", rx621_pos)
+ debug_649:
.return (rx621_cur)
rx621_restart:
.annotate 'line', 4
- rx621_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<sub>")
+ if_null rx621_debug, debug_650
+ rx621_cur."!cursor_debug"("NEXT", "routine_declarator:sym<sub>")
+ debug_650:
rx621_fail:
(rx621_rep, rx621_pos, $I10, $P10) = rx621_cur."!mark_fail"(0)
lt rx621_pos, -1, rx621_done
@@ -8079,14 +8720,16 @@
jump $I10
rx621_done:
rx621_cur."!cursor_fail"()
- rx621_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<sub>")
+ if_null rx621_debug, debug_651
+ rx621_cur."!cursor_debug"("FAIL", "routine_declarator:sym<sub>")
+ debug_651:
.return (rx621_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>" :subid("157_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator:sym<sub>" :subid("157_1282324002.40722") :method
.annotate 'line', 4
$P623 = self."!PREFIX__!subrule"("routine_def", "sub")
new $P624, "ResizablePMCArray"
@@ -8096,7 +8739,7 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>" :subid("158_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "routine_declarator:sym<method>" :subid("158_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx628_tgt
.local int rx628_pos
@@ -8104,7 +8747,9 @@
.local int rx628_eos
.local int rx628_rep
.local pmc rx628_cur
+ .local pmc rx628_debug
(rx628_cur, rx628_pos, rx628_tgt, $I10) = self."!cursor_start"()
+ getattribute rx628_debug, rx628_cur, "$!debug"
.lex unicode:"$\x{a2}", rx628_cur
.local pmc match
.lex "$/", match
@@ -8116,7 +8761,9 @@
substr rx628_tgt, rx628_tgt, rx628_off
rx628_start:
eq $I10, 1, rx628_restart
- rx628_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
+ if_null rx628_debug, debug_652
+ rx628_cur."!cursor_debug"("START", "routine_declarator:sym<method>")
+ debug_652:
$I10 = self.'from'()
ne $I10, -1, rxscan632_done
goto rxscan632_scan
@@ -8160,11 +8807,15 @@
rx628_pos = $P10."pos"()
# rx pass
rx628_cur."!cursor_pass"(rx628_pos, "routine_declarator:sym<method>")
- rx628_cur."!cursor_debug"("PASS ", "routine_declarator:sym<method>", " at pos=", rx628_pos)
+ if_null rx628_debug, debug_653
+ rx628_cur."!cursor_debug"("PASS", "routine_declarator:sym<method>", " at pos=", rx628_pos)
+ debug_653:
.return (rx628_cur)
rx628_restart:
.annotate 'line', 4
- rx628_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<method>")
+ if_null rx628_debug, debug_654
+ rx628_cur."!cursor_debug"("NEXT", "routine_declarator:sym<method>")
+ debug_654:
rx628_fail:
(rx628_rep, rx628_pos, $I10, $P10) = rx628_cur."!mark_fail"(0)
lt rx628_pos, -1, rx628_done
@@ -8172,14 +8823,16 @@
jump $I10
rx628_done:
rx628_cur."!cursor_fail"()
- rx628_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<method>")
+ if_null rx628_debug, debug_655
+ rx628_cur."!cursor_debug"("FAIL", "routine_declarator:sym<method>")
+ debug_655:
.return (rx628_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>" :subid("159_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator:sym<method>" :subid("159_1282324002.40722") :method
.annotate 'line', 4
$P630 = self."!PREFIX__!subrule"("method_def", "method")
new $P631, "ResizablePMCArray"
@@ -8189,7 +8842,7 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_def" :subid("160_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "routine_def" :subid("160_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx635_tgt
.local int rx635_pos
@@ -8197,8 +8850,10 @@
.local int rx635_eos
.local int rx635_rep
.local pmc rx635_cur
+ .local pmc rx635_debug
(rx635_cur, rx635_pos, rx635_tgt, $I10) = self."!cursor_start"()
- rx635_cur."!cursor_caparray"("sigil", "deflongname")
+ rx635_cur."!cursor_caparray"("deflongname", "sigil")
+ getattribute rx635_debug, rx635_cur, "$!debug"
.lex unicode:"$\x{a2}", rx635_cur
.local pmc match
.lex "$/", match
@@ -8210,7 +8865,9 @@
substr rx635_tgt, rx635_tgt, rx635_off
rx635_start:
eq $I10, 1, rx635_restart
- rx635_cur."!cursor_debug"("START ", "routine_def")
+ if_null rx635_debug, debug_656
+ rx635_cur."!cursor_debug"("START", "routine_def")
+ debug_656:
$I10 = self.'from'()
ne $I10, -1, rxscan639_done
goto rxscan639_scan
@@ -8250,8 +8907,8 @@
add $I11, rx635_pos, 1
gt $I11, rx635_eos, rx635_fail
sub $I11, rx635_pos, rx635_off
- substr $S10, rx635_tgt, $I11, 1
- ne $S10, "&", rx635_fail
+ ord $I11, rx635_tgt, $I11
+ ne $I11, 38, rx635_fail
add rx635_pos, 1
set_addr $I10, rxquantr643_done
(rx635_rep) = rx635_cur."!mark_commit"($I10)
@@ -8311,8 +8968,8 @@
add $I11, rx635_pos, 1
gt $I11, rx635_eos, rx635_fail
sub $I11, rx635_pos, rx635_off
- substr $S10, rx635_tgt, $I11, 1
- ne $S10, "(", rx635_fail
+ ord $I11, rx635_tgt, $I11
+ ne $I11, 40, rx635_fail
add rx635_pos, 1
# rx subrule "ws" subtype=method negate=
rx635_cur."!cursor_pos"(rx635_pos)
@@ -8335,8 +8992,8 @@
add $I11, rx635_pos, 1
gt $I11, rx635_eos, rx635_fail
sub $I11, rx635_pos, rx635_off
- substr $S10, rx635_tgt, $I11, 1
- ne $S10, ")", rx635_fail
+ ord $I11, rx635_tgt, $I11
+ ne $I11, 41, rx635_fail
add rx635_pos, 1
# rx subrule "ws" subtype=method negate=
rx635_cur."!cursor_pos"(rx635_pos)
@@ -8383,11 +9040,15 @@
.annotate 'line', 296
# rx pass
rx635_cur."!cursor_pass"(rx635_pos, "routine_def")
- rx635_cur."!cursor_debug"("PASS ", "routine_def", " at pos=", rx635_pos)
+ if_null rx635_debug, debug_657
+ rx635_cur."!cursor_debug"("PASS", "routine_def", " at pos=", rx635_pos)
+ debug_657:
.return (rx635_cur)
rx635_restart:
.annotate 'line', 4
- rx635_cur."!cursor_debug"("NEXT ", "routine_def")
+ if_null rx635_debug, debug_658
+ rx635_cur."!cursor_debug"("NEXT", "routine_def")
+ debug_658:
rx635_fail:
(rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0)
lt rx635_pos, -1, rx635_done
@@ -8395,14 +9056,16 @@
jump $I10
rx635_done:
rx635_cur."!cursor_fail"()
- rx635_cur."!cursor_debug"("FAIL ", "routine_def")
+ if_null rx635_debug, debug_659
+ rx635_cur."!cursor_debug"("FAIL", "routine_def")
+ debug_659:
.return (rx635_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def" :subid("161_1280467477.44751") :method
+.sub "!PREFIX__routine_def" :subid("161_1282324002.40722") :method
.annotate 'line', 4
$P637 = self."!PREFIX__!subrule"("ws", "")
new $P638, "ResizablePMCArray"
@@ -8412,7 +9075,7 @@
.namespace ["NQP";"Grammar"]
-.sub "method_def" :subid("162_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "method_def" :subid("162_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx658_tgt
.local int rx658_pos
@@ -8420,8 +9083,10 @@
.local int rx658_eos
.local int rx658_rep
.local pmc rx658_cur
+ .local pmc rx658_debug
(rx658_cur, rx658_pos, rx658_tgt, $I10) = self."!cursor_start"()
rx658_cur."!cursor_caparray"("deflongname")
+ getattribute rx658_debug, rx658_cur, "$!debug"
.lex unicode:"$\x{a2}", rx658_cur
.local pmc match
.lex "$/", match
@@ -8433,7 +9098,9 @@
substr rx658_tgt, rx658_tgt, rx658_off
rx658_start:
eq $I10, 1, rx658_restart
- rx658_cur."!cursor_debug"("START ", "method_def")
+ if_null rx658_debug, debug_660
+ rx658_cur."!cursor_debug"("START", "method_def")
+ debug_660:
$I10 = self.'from'()
ne $I10, -1, rxscan662_done
goto rxscan662_scan
@@ -8502,8 +9169,8 @@
add $I11, rx658_pos, 1
gt $I11, rx658_eos, rx658_fail
sub $I11, rx658_pos, rx658_off
- substr $S10, rx658_tgt, $I11, 1
- ne $S10, "(", rx658_fail
+ ord $I11, rx658_tgt, $I11
+ ne $I11, 40, rx658_fail
add rx658_pos, 1
# rx subrule "ws" subtype=method negate=
rx658_cur."!cursor_pos"(rx658_pos)
@@ -8526,8 +9193,8 @@
add $I11, rx658_pos, 1
gt $I11, rx658_eos, rx658_fail
sub $I11, rx658_pos, rx658_off
- substr $S10, rx658_tgt, $I11, 1
- ne $S10, ")", rx658_fail
+ ord $I11, rx658_tgt, $I11
+ ne $I11, 41, rx658_fail
add rx658_pos, 1
# rx subrule "ws" subtype=method negate=
rx658_cur."!cursor_pos"(rx658_pos)
@@ -8574,11 +9241,15 @@
.annotate 'line', 304
# rx pass
rx658_cur."!cursor_pass"(rx658_pos, "method_def")
- rx658_cur."!cursor_debug"("PASS ", "method_def", " at pos=", rx658_pos)
+ if_null rx658_debug, debug_661
+ rx658_cur."!cursor_debug"("PASS", "method_def", " at pos=", rx658_pos)
+ debug_661:
.return (rx658_cur)
rx658_restart:
.annotate 'line', 4
- rx658_cur."!cursor_debug"("NEXT ", "method_def")
+ if_null rx658_debug, debug_662
+ rx658_cur."!cursor_debug"("NEXT", "method_def")
+ debug_662:
rx658_fail:
(rx658_rep, rx658_pos, $I10, $P10) = rx658_cur."!mark_fail"(0)
lt rx658_pos, -1, rx658_done
@@ -8586,14 +9257,16 @@
jump $I10
rx658_done:
rx658_cur."!cursor_fail"()
- rx658_cur."!cursor_debug"("FAIL ", "method_def")
+ if_null rx658_debug, debug_663
+ rx658_cur."!cursor_debug"("FAIL", "method_def")
+ debug_663:
.return (rx658_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def" :subid("163_1280467477.44751") :method
+.sub "!PREFIX__method_def" :subid("163_1282324002.40722") :method
.annotate 'line', 4
$P660 = self."!PREFIX__!subrule"("ws", "")
new $P661, "ResizablePMCArray"
@@ -8603,7 +9276,7 @@
.namespace ["NQP";"Grammar"]
-.sub "multi_declarator" :subid("164_1280467477.44751") :method
+.sub "multi_declarator" :subid("164_1282324002.40722") :method
.annotate 'line', 312
$P678 = self."!protoregex"("multi_declarator")
.return ($P678)
@@ -8611,7 +9284,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator" :subid("165_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator" :subid("165_1282324002.40722") :method
.annotate 'line', 312
$P680 = self."!PREFIX__!protoregex"("multi_declarator")
.return ($P680)
@@ -8619,7 +9292,7 @@
.namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<multi>" :subid("166_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "multi_declarator:sym<multi>" :subid("166_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 314
new $P682, "Undef"
.lex "$*MULTINESS", $P682
@@ -8630,7 +9303,9 @@
.local int rx683_eos
.local int rx683_rep
.local pmc rx683_cur
+ .local pmc rx683_debug
(rx683_cur, rx683_pos, rx683_tgt, $I10) = self."!cursor_start"()
+ getattribute rx683_debug, rx683_cur, "$!debug"
.lex unicode:"$\x{a2}", rx683_cur
.local pmc match
.lex "$/", match
@@ -8642,7 +9317,9 @@
substr rx683_tgt, rx683_tgt, rx683_off
rx683_start:
eq $I10, 1, rx683_restart
- rx683_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
+ if_null rx683_debug, debug_664
+ rx683_cur."!cursor_debug"("START", "multi_declarator:sym<multi>")
+ debug_664:
$I10 = self.'from'()
ne $I10, -1, rxscan687_done
goto rxscan687_scan
@@ -8720,11 +9397,15 @@
.annotate 'line', 313
# rx pass
rx683_cur."!cursor_pass"(rx683_pos, "multi_declarator:sym<multi>")
- rx683_cur."!cursor_debug"("PASS ", "multi_declarator:sym<multi>", " at pos=", rx683_pos)
+ if_null rx683_debug, debug_665
+ rx683_cur."!cursor_debug"("PASS", "multi_declarator:sym<multi>", " at pos=", rx683_pos)
+ debug_665:
.return (rx683_cur)
rx683_restart:
.annotate 'line', 4
- rx683_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<multi>")
+ if_null rx683_debug, debug_666
+ rx683_cur."!cursor_debug"("NEXT", "multi_declarator:sym<multi>")
+ debug_666:
rx683_fail:
(rx683_rep, rx683_pos, $I10, $P10) = rx683_cur."!mark_fail"(0)
lt rx683_pos, -1, rx683_done
@@ -8732,14 +9413,16 @@
jump $I10
rx683_done:
rx683_cur."!cursor_fail"()
- rx683_cur."!cursor_debug"("FAIL ", "multi_declarator:sym<multi>")
+ if_null rx683_debug, debug_667
+ rx683_cur."!cursor_debug"("FAIL", "multi_declarator:sym<multi>")
+ debug_667:
.return (rx683_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<multi>" :subid("167_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator:sym<multi>" :subid("167_1282324002.40722") :method
.annotate 'line', 4
$P685 = self."!PREFIX__!subrule"("ws", "multi")
new $P686, "ResizablePMCArray"
@@ -8749,7 +9432,7 @@
.namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<null>" :subid("168_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "multi_declarator:sym<null>" :subid("168_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 319
new $P692, "Undef"
.lex "$*MULTINESS", $P692
@@ -8760,7 +9443,9 @@
.local int rx693_eos
.local int rx693_rep
.local pmc rx693_cur
+ .local pmc rx693_debug
(rx693_cur, rx693_pos, rx693_tgt, $I10) = self."!cursor_start"()
+ getattribute rx693_debug, rx693_cur, "$!debug"
.lex unicode:"$\x{a2}", rx693_cur
.local pmc match
.lex "$/", match
@@ -8772,7 +9457,9 @@
substr rx693_tgt, rx693_tgt, rx693_off
rx693_start:
eq $I10, 1, rx693_restart
- rx693_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
+ if_null rx693_debug, debug_668
+ rx693_cur."!cursor_debug"("START", "multi_declarator:sym<null>")
+ debug_668:
$I10 = self.'from'()
ne $I10, -1, rxscan697_done
goto rxscan697_scan
@@ -8801,11 +9488,15 @@
.annotate 'line', 318
# rx pass
rx693_cur."!cursor_pass"(rx693_pos, "multi_declarator:sym<null>")
- rx693_cur."!cursor_debug"("PASS ", "multi_declarator:sym<null>", " at pos=", rx693_pos)
+ if_null rx693_debug, debug_669
+ rx693_cur."!cursor_debug"("PASS", "multi_declarator:sym<null>", " at pos=", rx693_pos)
+ debug_669:
.return (rx693_cur)
rx693_restart:
.annotate 'line', 4
- rx693_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<null>")
+ if_null rx693_debug, debug_670
+ rx693_cur."!cursor_debug"("NEXT", "multi_declarator:sym<null>")
+ debug_670:
rx693_fail:
(rx693_rep, rx693_pos, $I10, $P10) = rx693_cur."!mark_fail"(0)
lt rx693_pos, -1, rx693_done
@@ -8813,14 +9504,16 @@
jump $I10
rx693_done:
rx693_cur."!cursor_fail"()
- rx693_cur."!cursor_debug"("FAIL ", "multi_declarator:sym<null>")
+ if_null rx693_debug, debug_671
+ rx693_cur."!cursor_debug"("FAIL", "multi_declarator:sym<null>")
+ debug_671:
.return (rx693_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<null>" :subid("169_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator:sym<null>" :subid("169_1282324002.40722") :method
.annotate 'line', 4
$P695 = self."!PREFIX__!subrule"("declarator", "")
new $P696, "ResizablePMCArray"
@@ -8830,7 +9523,7 @@
.namespace ["NQP";"Grammar"]
-.sub "signature" :subid("170_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "signature" :subid("170_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx700_tgt
.local int rx700_pos
@@ -8838,8 +9531,10 @@
.local int rx700_eos
.local int rx700_rep
.local pmc rx700_cur
+ .local pmc rx700_debug
(rx700_cur, rx700_pos, rx700_tgt, $I10) = self."!cursor_start"()
rx700_cur."!cursor_caparray"("parameter")
+ getattribute rx700_debug, rx700_cur, "$!debug"
.lex unicode:"$\x{a2}", rx700_cur
.local pmc match
.lex "$/", match
@@ -8851,7 +9546,9 @@
substr rx700_tgt, rx700_tgt, rx700_off
rx700_start:
eq $I10, 1, rx700_restart
- rx700_cur."!cursor_debug"("START ", "signature")
+ if_null rx700_debug, debug_672
+ rx700_cur."!cursor_debug"("START", "signature")
+ debug_672:
$I10 = self.'from'()
ne $I10, -1, rxscan703_done
goto rxscan703_scan
@@ -8898,8 +9595,8 @@
add $I11, rx700_pos, 1
gt $I11, rx700_eos, rx700_fail
sub $I11, rx700_pos, rx700_off
- substr $S10, rx700_tgt, $I11, 1
- ne $S10, ",", rx700_fail
+ ord $I11, rx700_tgt, $I11
+ ne $I11, 44, rx700_fail
add rx700_pos, 1
goto rxquantr705_loop
rxquantr705_done:
@@ -8908,11 +9605,15 @@
rxquantr704_done:
# rx pass
rx700_cur."!cursor_pass"(rx700_pos, "signature")
- rx700_cur."!cursor_debug"("PASS ", "signature", " at pos=", rx700_pos)
+ if_null rx700_debug, debug_673
+ rx700_cur."!cursor_debug"("PASS", "signature", " at pos=", rx700_pos)
+ debug_673:
.return (rx700_cur)
rx700_restart:
.annotate 'line', 4
- rx700_cur."!cursor_debug"("NEXT ", "signature")
+ if_null rx700_debug, debug_674
+ rx700_cur."!cursor_debug"("NEXT", "signature")
+ debug_674:
rx700_fail:
(rx700_rep, rx700_pos, $I10, $P10) = rx700_cur."!mark_fail"(0)
lt rx700_pos, -1, rx700_done
@@ -8920,14 +9621,16 @@
jump $I10
rx700_done:
rx700_cur."!cursor_fail"()
- rx700_cur."!cursor_debug"("FAIL ", "signature")
+ if_null rx700_debug, debug_675
+ rx700_cur."!cursor_debug"("FAIL", "signature")
+ debug_675:
.return (rx700_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature" :subid("171_1280467477.44751") :method
+.sub "!PREFIX__signature" :subid("171_1282324002.40722") :method
.annotate 'line', 4
new $P702, "ResizablePMCArray"
push $P702, ""
@@ -8936,7 +9639,7 @@
.namespace ["NQP";"Grammar"]
-.sub "parameter" :subid("172_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "parameter" :subid("172_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx707_tgt
.local int rx707_pos
@@ -8944,8 +9647,10 @@
.local int rx707_eos
.local int rx707_rep
.local pmc rx707_cur
+ .local pmc rx707_debug
(rx707_cur, rx707_pos, rx707_tgt, $I10) = self."!cursor_start"()
- rx707_cur."!cursor_caparray"("typename", "default_value")
+ rx707_cur."!cursor_caparray"("default_value", "typename")
+ getattribute rx707_debug, rx707_cur, "$!debug"
.lex unicode:"$\x{a2}", rx707_cur
.local pmc match
.lex "$/", match
@@ -8957,7 +9662,9 @@
substr rx707_tgt, rx707_tgt, rx707_off
rx707_start:
eq $I10, 1, rx707_restart
- rx707_cur."!cursor_debug"("START ", "parameter")
+ if_null rx707_debug, debug_676
+ rx707_cur."!cursor_debug"("START", "parameter")
+ debug_676:
$I10 = self.'from'()
ne $I10, -1, rxscan710_done
goto rxscan710_scan
@@ -9005,8 +9712,8 @@
add $I11, rx707_pos, 1
gt $I11, rx707_eos, rx707_fail
sub $I11, rx707_pos, rx707_off
- substr $S10, rx707_tgt, $I11, 1
- ne $S10, "*", rx707_fail
+ ord $I11, rx707_tgt, $I11
+ ne $I11, 42, rx707_fail
add rx707_pos, 1
set_addr $I10, rxcap_713_fail
($I12, $I11) = rx707_cur."!mark_peek"($I10)
@@ -9059,8 +9766,8 @@
add $I11, rx707_pos, 1
gt $I11, rx707_eos, rx707_fail
sub $I11, rx707_pos, rx707_off
- substr $S10, rx707_tgt, $I11, 1
- ne $S10, "?", rx707_fail
+ ord $I11, rx707_tgt, $I11
+ ne $I11, 63, rx707_fail
add rx707_pos, 1
goto alt715_end
alt715_1:
@@ -9070,8 +9777,8 @@
add $I11, rx707_pos, 1
gt $I11, rx707_eos, rx707_fail
sub $I11, rx707_pos, rx707_off
- substr $S10, rx707_tgt, $I11, 1
- ne $S10, "!", rx707_fail
+ ord $I11, rx707_tgt, $I11
+ ne $I11, 33, rx707_fail
add rx707_pos, 1
goto alt715_end
alt715_2:
@@ -9112,11 +9819,15 @@
.annotate 'line', 325
# rx pass
rx707_cur."!cursor_pass"(rx707_pos, "parameter")
- rx707_cur."!cursor_debug"("PASS ", "parameter", " at pos=", rx707_pos)
+ if_null rx707_debug, debug_677
+ rx707_cur."!cursor_debug"("PASS", "parameter", " at pos=", rx707_pos)
+ debug_677:
.return (rx707_cur)
rx707_restart:
.annotate 'line', 4
- rx707_cur."!cursor_debug"("NEXT ", "parameter")
+ if_null rx707_debug, debug_678
+ rx707_cur."!cursor_debug"("NEXT", "parameter")
+ debug_678:
rx707_fail:
(rx707_rep, rx707_pos, $I10, $P10) = rx707_cur."!mark_fail"(0)
lt rx707_pos, -1, rx707_done
@@ -9124,14 +9835,16 @@
jump $I10
rx707_done:
rx707_cur."!cursor_fail"()
- rx707_cur."!cursor_debug"("FAIL ", "parameter")
+ if_null rx707_debug, debug_679
+ rx707_cur."!cursor_debug"("FAIL", "parameter")
+ debug_679:
.return (rx707_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter" :subid("173_1280467477.44751") :method
+.sub "!PREFIX__parameter" :subid("173_1282324002.40722") :method
.annotate 'line', 4
new $P709, "ResizablePMCArray"
push $P709, ""
@@ -9140,7 +9853,7 @@
.namespace ["NQP";"Grammar"]
-.sub "param_var" :subid("174_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "param_var" :subid("174_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx720_tgt
.local int rx720_pos
@@ -9148,8 +9861,10 @@
.local int rx720_eos
.local int rx720_rep
.local pmc rx720_cur
+ .local pmc rx720_debug
(rx720_cur, rx720_pos, rx720_tgt, $I10) = self."!cursor_start"()
rx720_cur."!cursor_caparray"("twigil")
+ getattribute rx720_debug, rx720_cur, "$!debug"
.lex unicode:"$\x{a2}", rx720_cur
.local pmc match
.lex "$/", match
@@ -9161,7 +9876,9 @@
substr rx720_tgt, rx720_tgt, rx720_off
rx720_start:
eq $I10, 1, rx720_restart
- rx720_cur."!cursor_debug"("START ", "param_var")
+ if_null rx720_debug, debug_680
+ rx720_cur."!cursor_debug"("START", "param_var")
+ debug_680:
$I10 = self.'from'()
ne $I10, -1, rxscan724_done
goto rxscan724_scan
@@ -9240,11 +9957,15 @@
.annotate 'line', 334
# rx pass
rx720_cur."!cursor_pass"(rx720_pos, "param_var")
- rx720_cur."!cursor_debug"("PASS ", "param_var", " at pos=", rx720_pos)
+ if_null rx720_debug, debug_681
+ rx720_cur."!cursor_debug"("PASS", "param_var", " at pos=", rx720_pos)
+ debug_681:
.return (rx720_cur)
rx720_restart:
.annotate 'line', 4
- rx720_cur."!cursor_debug"("NEXT ", "param_var")
+ if_null rx720_debug, debug_682
+ rx720_cur."!cursor_debug"("NEXT", "param_var")
+ debug_682:
rx720_fail:
(rx720_rep, rx720_pos, $I10, $P10) = rx720_cur."!mark_fail"(0)
lt rx720_pos, -1, rx720_done
@@ -9252,14 +9973,16 @@
jump $I10
rx720_done:
rx720_cur."!cursor_fail"()
- rx720_cur."!cursor_debug"("FAIL ", "param_var")
+ if_null rx720_debug, debug_683
+ rx720_cur."!cursor_debug"("FAIL", "param_var")
+ debug_683:
.return (rx720_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var" :subid("175_1280467477.44751") :method
+.sub "!PREFIX__param_var" :subid("175_1282324002.40722") :method
.annotate 'line', 4
$P722 = self."!PREFIX__!subrule"("sigil", "")
new $P723, "ResizablePMCArray"
@@ -9269,7 +9992,7 @@
.namespace ["NQP";"Grammar"]
-.sub "named_param" :subid("176_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "named_param" :subid("176_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx730_tgt
.local int rx730_pos
@@ -9277,7 +10000,9 @@
.local int rx730_eos
.local int rx730_rep
.local pmc rx730_cur
+ .local pmc rx730_debug
(rx730_cur, rx730_pos, rx730_tgt, $I10) = self."!cursor_start"()
+ getattribute rx730_debug, rx730_cur, "$!debug"
.lex unicode:"$\x{a2}", rx730_cur
.local pmc match
.lex "$/", match
@@ -9289,7 +10014,9 @@
substr rx730_tgt, rx730_tgt, rx730_off
rx730_start:
eq $I10, 1, rx730_restart
- rx730_cur."!cursor_debug"("START ", "named_param")
+ if_null rx730_debug, debug_684
+ rx730_cur."!cursor_debug"("START", "named_param")
+ debug_684:
$I10 = self.'from'()
ne $I10, -1, rxscan734_done
goto rxscan734_scan
@@ -9307,8 +10034,8 @@
add $I11, rx730_pos, 1
gt $I11, rx730_eos, rx730_fail
sub $I11, rx730_pos, rx730_off
- substr $S10, rx730_tgt, $I11, 1
- ne $S10, ":", rx730_fail
+ ord $I11, rx730_tgt, $I11
+ ne $I11, 58, rx730_fail
add rx730_pos, 1
# rx subrule "param_var" subtype=capture negate=
rx730_cur."!cursor_pos"(rx730_pos)
@@ -9320,11 +10047,15 @@
.annotate 'line', 339
# rx pass
rx730_cur."!cursor_pass"(rx730_pos, "named_param")
- rx730_cur."!cursor_debug"("PASS ", "named_param", " at pos=", rx730_pos)
+ if_null rx730_debug, debug_685
+ rx730_cur."!cursor_debug"("PASS", "named_param", " at pos=", rx730_pos)
+ debug_685:
.return (rx730_cur)
rx730_restart:
.annotate 'line', 4
- rx730_cur."!cursor_debug"("NEXT ", "named_param")
+ if_null rx730_debug, debug_686
+ rx730_cur."!cursor_debug"("NEXT", "named_param")
+ debug_686:
rx730_fail:
(rx730_rep, rx730_pos, $I10, $P10) = rx730_cur."!mark_fail"(0)
lt rx730_pos, -1, rx730_done
@@ -9332,14 +10063,16 @@
jump $I10
rx730_done:
rx730_cur."!cursor_fail"()
- rx730_cur."!cursor_debug"("FAIL ", "named_param")
+ if_null rx730_debug, debug_687
+ rx730_cur."!cursor_debug"("FAIL", "named_param")
+ debug_687:
.return (rx730_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param" :subid("177_1280467477.44751") :method
+.sub "!PREFIX__named_param" :subid("177_1282324002.40722") :method
.annotate 'line', 4
$P732 = self."!PREFIX__!subrule"("param_var", ":")
new $P733, "ResizablePMCArray"
@@ -9349,7 +10082,7 @@
.namespace ["NQP";"Grammar"]
-.sub "default_value" :subid("178_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "default_value" :subid("178_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx736_tgt
.local int rx736_pos
@@ -9357,7 +10090,9 @@
.local int rx736_eos
.local int rx736_rep
.local pmc rx736_cur
+ .local pmc rx736_debug
(rx736_cur, rx736_pos, rx736_tgt, $I10) = self."!cursor_start"()
+ getattribute rx736_debug, rx736_cur, "$!debug"
.lex unicode:"$\x{a2}", rx736_cur
.local pmc match
.lex "$/", match
@@ -9369,7 +10104,9 @@
substr rx736_tgt, rx736_tgt, rx736_off
rx736_start:
eq $I10, 1, rx736_restart
- rx736_cur."!cursor_debug"("START ", "default_value")
+ if_null rx736_debug, debug_688
+ rx736_cur."!cursor_debug"("START", "default_value")
+ debug_688:
$I10 = self.'from'()
ne $I10, -1, rxscan740_done
goto rxscan740_scan
@@ -9392,8 +10129,8 @@
add $I11, rx736_pos, 1
gt $I11, rx736_eos, rx736_fail
sub $I11, rx736_pos, rx736_off
- substr $S10, rx736_tgt, $I11, 1
- ne $S10, "=", rx736_fail
+ ord $I11, rx736_tgt, $I11
+ ne $I11, 61, rx736_fail
add rx736_pos, 1
# rx subrule "ws" subtype=method negate=
rx736_cur."!cursor_pos"(rx736_pos)
@@ -9414,11 +10151,15 @@
rx736_pos = $P10."pos"()
# rx pass
rx736_cur."!cursor_pass"(rx736_pos, "default_value")
- rx736_cur."!cursor_debug"("PASS ", "default_value", " at pos=", rx736_pos)
+ if_null rx736_debug, debug_689
+ rx736_cur."!cursor_debug"("PASS", "default_value", " at pos=", rx736_pos)
+ debug_689:
.return (rx736_cur)
rx736_restart:
.annotate 'line', 4
- rx736_cur."!cursor_debug"("NEXT ", "default_value")
+ if_null rx736_debug, debug_690
+ rx736_cur."!cursor_debug"("NEXT", "default_value")
+ debug_690:
rx736_fail:
(rx736_rep, rx736_pos, $I10, $P10) = rx736_cur."!mark_fail"(0)
lt rx736_pos, -1, rx736_done
@@ -9426,14 +10167,16 @@
jump $I10
rx736_done:
rx736_cur."!cursor_fail"()
- rx736_cur."!cursor_debug"("FAIL ", "default_value")
+ if_null rx736_debug, debug_691
+ rx736_cur."!cursor_debug"("FAIL", "default_value")
+ debug_691:
.return (rx736_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value" :subid("179_1280467477.44751") :method
+.sub "!PREFIX__default_value" :subid("179_1282324002.40722") :method
.annotate 'line', 4
$P738 = self."!PREFIX__!subrule"("ws", "")
new $P739, "ResizablePMCArray"
@@ -9443,7 +10186,7 @@
.namespace ["NQP";"Grammar"]
-.sub "regex_declarator" :subid("180_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "regex_declarator" :subid("180_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx745_tgt
.local int rx745_pos
@@ -9451,8 +10194,10 @@
.local int rx745_eos
.local int rx745_rep
.local pmc rx745_cur
+ .local pmc rx745_debug
(rx745_cur, rx745_pos, rx745_tgt, $I10) = self."!cursor_start"()
rx745_cur."!cursor_caparray"("signature")
+ getattribute rx745_debug, rx745_cur, "$!debug"
.lex unicode:"$\x{a2}", rx745_cur
.local pmc match
.lex "$/", match
@@ -9464,7 +10209,9 @@
substr rx745_tgt, rx745_tgt, rx745_off
rx745_start:
eq $I10, 1, rx745_restart
- rx745_cur."!cursor_debug"("START ", "regex_declarator")
+ if_null rx745_debug, debug_692
+ rx745_cur."!cursor_debug"("START", "regex_declarator")
+ debug_692:
$I10 = self.'from'()
ne $I10, -1, rxscan749_done
goto rxscan749_scan
@@ -9582,8 +10329,8 @@
add $I11, rx745_pos, 1
gt $I11, rx745_eos, rx745_fail
sub $I11, rx745_pos, rx745_off
- substr $S10, rx745_tgt, $I11, 1
- ne $S10, "{", rx745_fail
+ ord $I11, rx745_tgt, $I11
+ ne $I11, 123, rx745_fail
add rx745_pos, 1
# rx subrule "ws" subtype=method negate=
rx745_cur."!cursor_pos"(rx745_pos)
@@ -9606,8 +10353,8 @@
add $I11, rx745_pos, 1
gt $I11, rx745_eos, rx745_fail
sub $I11, rx745_pos, rx745_off
- substr $S10, rx745_tgt, $I11, 1
- ne $S10, "}", rx745_fail
+ ord $I11, rx745_tgt, $I11
+ ne $I11, 125, rx745_fail
add rx745_pos, 1
# rx subrule "ENDSTMT" subtype=zerowidth negate=
rx745_cur."!cursor_pos"(rx745_pos)
@@ -9740,8 +10487,8 @@
add $I11, rx745_pos, 1
gt $I11, rx745_eos, rx745_fail
sub $I11, rx745_pos, rx745_off
- substr $S10, rx745_tgt, $I11, 1
- ne $S10, "(", rx745_fail
+ ord $I11, rx745_tgt, $I11
+ ne $I11, 40, rx745_fail
add rx745_pos, 1
# rx subrule "ws" subtype=method negate=
rx745_cur."!cursor_pos"(rx745_pos)
@@ -9764,8 +10511,8 @@
add $I11, rx745_pos, 1
gt $I11, rx745_eos, rx745_fail
sub $I11, rx745_pos, rx745_off
- substr $S10, rx745_tgt, $I11, 1
- ne $S10, ")", rx745_fail
+ ord $I11, rx745_tgt, $I11
+ ne $I11, 41, rx745_fail
add rx745_pos, 1
# rx subrule "ws" subtype=method negate=
rx745_cur."!cursor_pos"(rx745_pos)
@@ -9794,8 +10541,8 @@
add $I11, rx745_pos, 1
gt $I11, rx745_eos, rx745_fail
sub $I11, rx745_pos, rx745_off
- substr $S10, rx745_tgt, $I11, 1
- ne $S10, "{", rx745_fail
+ ord $I11, rx745_tgt, $I11
+ ne $I11, 123, rx745_fail
add rx745_pos, 1
# rx subrule "LANG" subtype=capture negate=
rx745_cur."!cursor_pos"(rx745_pos)
@@ -9808,8 +10555,8 @@
add $I11, rx745_pos, 1
gt $I11, rx745_eos, rx745_fail
sub $I11, rx745_pos, rx745_off
- substr $S10, rx745_tgt, $I11, 1
- ne $S10, "}", rx745_fail
+ ord $I11, rx745_tgt, $I11
+ ne $I11, 125, rx745_fail
add rx745_pos, 1
# rx subrule "ENDSTMT" subtype=zerowidth negate=
rx745_cur."!cursor_pos"(rx745_pos)
@@ -9830,11 +10577,15 @@
.annotate 'line', 345
# rx pass
rx745_cur."!cursor_pass"(rx745_pos, "regex_declarator")
- rx745_cur."!cursor_debug"("PASS ", "regex_declarator", " at pos=", rx745_pos)
+ if_null rx745_debug, debug_693
+ rx745_cur."!cursor_debug"("PASS", "regex_declarator", " at pos=", rx745_pos)
+ debug_693:
.return (rx745_cur)
rx745_restart:
.annotate 'line', 4
- rx745_cur."!cursor_debug"("NEXT ", "regex_declarator")
+ if_null rx745_debug, debug_694
+ rx745_cur."!cursor_debug"("NEXT", "regex_declarator")
+ debug_694:
rx745_fail:
(rx745_rep, rx745_pos, $I10, $P10) = rx745_cur."!mark_fail"(0)
lt rx745_pos, -1, rx745_done
@@ -9842,14 +10593,16 @@
jump $I10
rx745_done:
rx745_cur."!cursor_fail"()
- rx745_cur."!cursor_debug"("FAIL ", "regex_declarator")
+ if_null rx745_debug, debug_695
+ rx745_cur."!cursor_debug"("FAIL", "regex_declarator")
+ debug_695:
.return (rx745_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator" :subid("181_1280467477.44751") :method
+.sub "!PREFIX__regex_declarator" :subid("181_1282324002.40722") :method
.annotate 'line', 4
$P747 = self."!PREFIX__!subrule"("ws", "")
new $P748, "ResizablePMCArray"
@@ -9859,7 +10612,7 @@
.namespace ["NQP";"Grammar"]
-.sub "dotty" :subid("182_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "dotty" :subid("182_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx782_tgt
.local int rx782_pos
@@ -9867,8 +10620,10 @@
.local int rx782_eos
.local int rx782_rep
.local pmc rx782_cur
+ .local pmc rx782_debug
(rx782_cur, rx782_pos, rx782_tgt, $I10) = self."!cursor_start"()
rx782_cur."!cursor_caparray"("args")
+ getattribute rx782_debug, rx782_cur, "$!debug"
.lex unicode:"$\x{a2}", rx782_cur
.local pmc match
.lex "$/", match
@@ -9880,7 +10635,9 @@
substr rx782_tgt, rx782_tgt, rx782_off
rx782_start:
eq $I10, 1, rx782_restart
- rx782_cur."!cursor_debug"("START ", "dotty")
+ if_null rx782_debug, debug_696
+ rx782_cur."!cursor_debug"("START", "dotty")
+ debug_696:
$I10 = self.'from'()
ne $I10, -1, rxscan786_done
goto rxscan786_scan
@@ -9898,8 +10655,8 @@
add $I11, rx782_pos, 1
gt $I11, rx782_eos, rx782_fail
sub $I11, rx782_pos, rx782_off
- substr $S10, rx782_tgt, $I11, 1
- ne $S10, ".", rx782_fail
+ ord $I11, rx782_tgt, $I11
+ ne $I11, 46, rx782_fail
add rx782_pos, 1
alt787_0:
.annotate 'line', 364
@@ -9977,8 +10734,8 @@
add $I11, rx782_pos, 1
gt $I11, rx782_eos, rx782_fail
sub $I11, rx782_pos, rx782_off
- substr $S10, rx782_tgt, $I11, 1
- ne $S10, ":", rx782_fail
+ ord $I11, rx782_tgt, $I11
+ ne $I11, 58, rx782_fail
add rx782_pos, 1
# rx charclass s
ge rx782_pos, rx782_eos, rx782_fail
@@ -10001,11 +10758,15 @@
.annotate 'line', 362
# rx pass
rx782_cur."!cursor_pass"(rx782_pos, "dotty")
- rx782_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx782_pos)
+ if_null rx782_debug, debug_697
+ rx782_cur."!cursor_debug"("PASS", "dotty", " at pos=", rx782_pos)
+ debug_697:
.return (rx782_cur)
rx782_restart:
.annotate 'line', 4
- rx782_cur."!cursor_debug"("NEXT ", "dotty")
+ if_null rx782_debug, debug_698
+ rx782_cur."!cursor_debug"("NEXT", "dotty")
+ debug_698:
rx782_fail:
(rx782_rep, rx782_pos, $I10, $P10) = rx782_cur."!mark_fail"(0)
lt rx782_pos, -1, rx782_done
@@ -10013,14 +10774,16 @@
jump $I10
rx782_done:
rx782_cur."!cursor_fail"()
- rx782_cur."!cursor_debug"("FAIL ", "dotty")
+ if_null rx782_debug, debug_699
+ rx782_cur."!cursor_debug"("FAIL", "dotty")
+ debug_699:
.return (rx782_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty" :subid("183_1280467477.44751") :method
+.sub "!PREFIX__dotty" :subid("183_1282324002.40722") :method
.annotate 'line', 4
$P784 = self."!PREFIX__!subrule"("deflongname", ".")
new $P785, "ResizablePMCArray"
@@ -10032,7 +10795,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term" :subid("184_1280467477.44751") :method
+.sub "term" :subid("184_1282324002.40722") :method
.annotate 'line', 376
$P792 = self."!protoregex"("term")
.return ($P792)
@@ -10040,7 +10803,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term" :subid("185_1280467477.44751") :method
+.sub "!PREFIX__term" :subid("185_1282324002.40722") :method
.annotate 'line', 376
$P794 = self."!PREFIX__!protoregex"("term")
.return ($P794)
@@ -10048,7 +10811,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<self>" :subid("186_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<self>" :subid("186_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx796_tgt
.local int rx796_pos
@@ -10056,7 +10819,9 @@
.local int rx796_eos
.local int rx796_rep
.local pmc rx796_cur
+ .local pmc rx796_debug
(rx796_cur, rx796_pos, rx796_tgt, $I10) = self."!cursor_start"()
+ getattribute rx796_debug, rx796_cur, "$!debug"
.lex unicode:"$\x{a2}", rx796_cur
.local pmc match
.lex "$/", match
@@ -10068,7 +10833,9 @@
substr rx796_tgt, rx796_tgt, rx796_off
rx796_start:
eq $I10, 1, rx796_restart
- rx796_cur."!cursor_debug"("START ", "term:sym<self>")
+ if_null rx796_debug, debug_700
+ rx796_cur."!cursor_debug"("START", "term:sym<self>")
+ debug_700:
$I10 = self.'from'()
ne $I10, -1, rxscan799_done
goto rxscan799_scan
@@ -10113,11 +10880,15 @@
unless $I11, rx796_fail
# rx pass
rx796_cur."!cursor_pass"(rx796_pos, "term:sym<self>")
- rx796_cur."!cursor_debug"("PASS ", "term:sym<self>", " at pos=", rx796_pos)
+ if_null rx796_debug, debug_701
+ rx796_cur."!cursor_debug"("PASS", "term:sym<self>", " at pos=", rx796_pos)
+ debug_701:
.return (rx796_cur)
rx796_restart:
.annotate 'line', 4
- rx796_cur."!cursor_debug"("NEXT ", "term:sym<self>")
+ if_null rx796_debug, debug_702
+ rx796_cur."!cursor_debug"("NEXT", "term:sym<self>")
+ debug_702:
rx796_fail:
(rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0)
lt rx796_pos, -1, rx796_done
@@ -10125,14 +10896,16 @@
jump $I10
rx796_done:
rx796_cur."!cursor_fail"()
- rx796_cur."!cursor_debug"("FAIL ", "term:sym<self>")
+ if_null rx796_debug, debug_703
+ rx796_cur."!cursor_debug"("FAIL", "term:sym<self>")
+ debug_703:
.return (rx796_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>" :subid("187_1280467477.44751") :method
+.sub "!PREFIX__term:sym<self>" :subid("187_1282324002.40722") :method
.annotate 'line', 4
new $P798, "ResizablePMCArray"
push $P798, "self"
@@ -10141,7 +10914,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>" :subid("188_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<identifier>" :subid("188_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx802_tgt
.local int rx802_pos
@@ -10149,7 +10922,9 @@
.local int rx802_eos
.local int rx802_rep
.local pmc rx802_cur
+ .local pmc rx802_debug
(rx802_cur, rx802_pos, rx802_tgt, $I10) = self."!cursor_start"()
+ getattribute rx802_debug, rx802_cur, "$!debug"
.lex unicode:"$\x{a2}", rx802_cur
.local pmc match
.lex "$/", match
@@ -10161,7 +10936,9 @@
substr rx802_tgt, rx802_tgt, rx802_off
rx802_start:
eq $I10, 1, rx802_restart
- rx802_cur."!cursor_debug"("START ", "term:sym<identifier>")
+ if_null rx802_debug, debug_704
+ rx802_cur."!cursor_debug"("START", "term:sym<identifier>")
+ debug_704:
$I10 = self.'from'()
ne $I10, -1, rxscan806_done
goto rxscan806_scan
@@ -10198,11 +10975,15 @@
.annotate 'line', 380
# rx pass
rx802_cur."!cursor_pass"(rx802_pos, "term:sym<identifier>")
- rx802_cur."!cursor_debug"("PASS ", "term:sym<identifier>", " at pos=", rx802_pos)
+ if_null rx802_debug, debug_705
+ rx802_cur."!cursor_debug"("PASS", "term:sym<identifier>", " at pos=", rx802_pos)
+ debug_705:
.return (rx802_cur)
rx802_restart:
.annotate 'line', 4
- rx802_cur."!cursor_debug"("NEXT ", "term:sym<identifier>")
+ if_null rx802_debug, debug_706
+ rx802_cur."!cursor_debug"("NEXT", "term:sym<identifier>")
+ debug_706:
rx802_fail:
(rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0)
lt rx802_pos, -1, rx802_done
@@ -10210,14 +10991,16 @@
jump $I10
rx802_done:
rx802_cur."!cursor_fail"()
- rx802_cur."!cursor_debug"("FAIL ", "term:sym<identifier>")
+ if_null rx802_debug, debug_707
+ rx802_cur."!cursor_debug"("FAIL", "term:sym<identifier>")
+ debug_707:
.return (rx802_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>" :subid("189_1280467477.44751") :method
+.sub "!PREFIX__term:sym<identifier>" :subid("189_1282324002.40722") :method
.annotate 'line', 4
$P804 = self."!PREFIX__!subrule"("deflongname", "")
new $P805, "ResizablePMCArray"
@@ -10227,7 +11010,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<name>" :subid("190_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<name>" :subid("190_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx808_tgt
.local int rx808_pos
@@ -10235,8 +11018,10 @@
.local int rx808_eos
.local int rx808_rep
.local pmc rx808_cur
+ .local pmc rx808_debug
(rx808_cur, rx808_pos, rx808_tgt, $I10) = self."!cursor_start"()
rx808_cur."!cursor_caparray"("args")
+ getattribute rx808_debug, rx808_cur, "$!debug"
.lex unicode:"$\x{a2}", rx808_cur
.local pmc match
.lex "$/", match
@@ -10248,7 +11033,9 @@
substr rx808_tgt, rx808_tgt, rx808_off
rx808_start:
eq $I10, 1, rx808_restart
- rx808_cur."!cursor_debug"("START ", "term:sym<name>")
+ if_null rx808_debug, debug_708
+ rx808_cur."!cursor_debug"("START", "term:sym<name>")
+ debug_708:
$I10 = self.'from'()
ne $I10, -1, rxscan812_done
goto rxscan812_scan
@@ -10292,11 +11079,15 @@
.annotate 'line', 384
# rx pass
rx808_cur."!cursor_pass"(rx808_pos, "term:sym<name>")
- rx808_cur."!cursor_debug"("PASS ", "term:sym<name>", " at pos=", rx808_pos)
+ if_null rx808_debug, debug_709
+ rx808_cur."!cursor_debug"("PASS", "term:sym<name>", " at pos=", rx808_pos)
+ debug_709:
.return (rx808_cur)
rx808_restart:
.annotate 'line', 4
- rx808_cur."!cursor_debug"("NEXT ", "term:sym<name>")
+ if_null rx808_debug, debug_710
+ rx808_cur."!cursor_debug"("NEXT", "term:sym<name>")
+ debug_710:
rx808_fail:
(rx808_rep, rx808_pos, $I10, $P10) = rx808_cur."!mark_fail"(0)
lt rx808_pos, -1, rx808_done
@@ -10304,14 +11095,16 @@
jump $I10
rx808_done:
rx808_cur."!cursor_fail"()
- rx808_cur."!cursor_debug"("FAIL ", "term:sym<name>")
+ if_null rx808_debug, debug_711
+ rx808_cur."!cursor_debug"("FAIL", "term:sym<name>")
+ debug_711:
.return (rx808_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>" :subid("191_1280467477.44751") :method
+.sub "!PREFIX__term:sym<name>" :subid("191_1282324002.40722") :method
.annotate 'line', 4
$P810 = self."!PREFIX__!subrule"("name", "")
new $P811, "ResizablePMCArray"
@@ -10321,7 +11114,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>" :subid("192_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<pir::op>" :subid("192_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx816_tgt
.local int rx816_pos
@@ -10329,8 +11122,10 @@
.local int rx816_eos
.local int rx816_rep
.local pmc rx816_cur
+ .local pmc rx816_debug
(rx816_cur, rx816_pos, rx816_tgt, $I10) = self."!cursor_start"()
rx816_cur."!cursor_caparray"("args")
+ getattribute rx816_debug, rx816_cur, "$!debug"
.lex unicode:"$\x{a2}", rx816_cur
.local pmc match
.lex "$/", match
@@ -10342,7 +11137,9 @@
substr rx816_tgt, rx816_tgt, rx816_off
rx816_start:
eq $I10, 1, rx816_restart
- rx816_cur."!cursor_debug"("START ", "term:sym<pir::op>")
+ if_null rx816_debug, debug_712
+ rx816_cur."!cursor_debug"("START", "term:sym<pir::op>")
+ debug_712:
$I10 = self.'from'()
ne $I10, -1, rxscan819_done
goto rxscan819_scan
@@ -10406,11 +11203,15 @@
.annotate 'line', 388
# rx pass
rx816_cur."!cursor_pass"(rx816_pos, "term:sym<pir::op>")
- rx816_cur."!cursor_debug"("PASS ", "term:sym<pir::op>", " at pos=", rx816_pos)
+ if_null rx816_debug, debug_713
+ rx816_cur."!cursor_debug"("PASS", "term:sym<pir::op>", " at pos=", rx816_pos)
+ debug_713:
.return (rx816_cur)
rx816_restart:
.annotate 'line', 4
- rx816_cur."!cursor_debug"("NEXT ", "term:sym<pir::op>")
+ if_null rx816_debug, debug_714
+ rx816_cur."!cursor_debug"("NEXT", "term:sym<pir::op>")
+ debug_714:
rx816_fail:
(rx816_rep, rx816_pos, $I10, $P10) = rx816_cur."!mark_fail"(0)
lt rx816_pos, -1, rx816_done
@@ -10418,14 +11219,16 @@
jump $I10
rx816_done:
rx816_cur."!cursor_fail"()
- rx816_cur."!cursor_debug"("FAIL ", "term:sym<pir::op>")
+ if_null rx816_debug, debug_715
+ rx816_cur."!cursor_debug"("FAIL", "term:sym<pir::op>")
+ debug_715:
.return (rx816_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>" :subid("193_1280467477.44751") :method
+.sub "!PREFIX__term:sym<pir::op>" :subid("193_1282324002.40722") :method
.annotate 'line', 4
new $P818, "ResizablePMCArray"
push $P818, "pir::"
@@ -10434,7 +11237,7 @@
.namespace ["NQP";"Grammar"]
-.sub "args" :subid("194_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "args" :subid("194_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx824_tgt
.local int rx824_pos
@@ -10442,7 +11245,9 @@
.local int rx824_eos
.local int rx824_rep
.local pmc rx824_cur
+ .local pmc rx824_debug
(rx824_cur, rx824_pos, rx824_tgt, $I10) = self."!cursor_start"()
+ getattribute rx824_debug, rx824_cur, "$!debug"
.lex unicode:"$\x{a2}", rx824_cur
.local pmc match
.lex "$/", match
@@ -10454,7 +11259,9 @@
substr rx824_tgt, rx824_tgt, rx824_off
rx824_start:
eq $I10, 1, rx824_restart
- rx824_cur."!cursor_debug"("START ", "args")
+ if_null rx824_debug, debug_716
+ rx824_cur."!cursor_debug"("START", "args")
+ debug_716:
$I10 = self.'from'()
ne $I10, -1, rxscan828_done
goto rxscan828_scan
@@ -10472,8 +11279,8 @@
add $I11, rx824_pos, 1
gt $I11, rx824_eos, rx824_fail
sub $I11, rx824_pos, rx824_off
- substr $S10, rx824_tgt, $I11, 1
- ne $S10, "(", rx824_fail
+ ord $I11, rx824_tgt, $I11
+ ne $I11, 40, rx824_fail
add rx824_pos, 1
# rx subrule "arglist" subtype=capture negate=
rx824_cur."!cursor_pos"(rx824_pos)
@@ -10486,16 +11293,20 @@
add $I11, rx824_pos, 1
gt $I11, rx824_eos, rx824_fail
sub $I11, rx824_pos, rx824_off
- substr $S10, rx824_tgt, $I11, 1
- ne $S10, ")", rx824_fail
+ ord $I11, rx824_tgt, $I11
+ ne $I11, 41, rx824_fail
add rx824_pos, 1
# rx pass
rx824_cur."!cursor_pass"(rx824_pos, "args")
- rx824_cur."!cursor_debug"("PASS ", "args", " at pos=", rx824_pos)
+ if_null rx824_debug, debug_717
+ rx824_cur."!cursor_debug"("PASS", "args", " at pos=", rx824_pos)
+ debug_717:
.return (rx824_cur)
rx824_restart:
.annotate 'line', 4
- rx824_cur."!cursor_debug"("NEXT ", "args")
+ if_null rx824_debug, debug_718
+ rx824_cur."!cursor_debug"("NEXT", "args")
+ debug_718:
rx824_fail:
(rx824_rep, rx824_pos, $I10, $P10) = rx824_cur."!mark_fail"(0)
lt rx824_pos, -1, rx824_done
@@ -10503,14 +11314,16 @@
jump $I10
rx824_done:
rx824_cur."!cursor_fail"()
- rx824_cur."!cursor_debug"("FAIL ", "args")
+ if_null rx824_debug, debug_719
+ rx824_cur."!cursor_debug"("FAIL", "args")
+ debug_719:
.return (rx824_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args" :subid("195_1280467477.44751") :method
+.sub "!PREFIX__args" :subid("195_1282324002.40722") :method
.annotate 'line', 4
$P826 = self."!PREFIX__!subrule"("arglist", "(")
new $P827, "ResizablePMCArray"
@@ -10520,7 +11333,7 @@
.namespace ["NQP";"Grammar"]
-.sub "arglist" :subid("196_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "arglist" :subid("196_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx830_tgt
.local int rx830_pos
@@ -10528,7 +11341,9 @@
.local int rx830_eos
.local int rx830_rep
.local pmc rx830_cur
+ .local pmc rx830_debug
(rx830_cur, rx830_pos, rx830_tgt, $I10) = self."!cursor_start"()
+ getattribute rx830_debug, rx830_cur, "$!debug"
.lex unicode:"$\x{a2}", rx830_cur
.local pmc match
.lex "$/", match
@@ -10540,7 +11355,9 @@
substr rx830_tgt, rx830_tgt, rx830_off
rx830_start:
eq $I10, 1, rx830_restart
- rx830_cur."!cursor_debug"("START ", "arglist")
+ if_null rx830_debug, debug_720
+ rx830_cur."!cursor_debug"("START", "arglist")
+ debug_720:
$I10 = self.'from'()
ne $I10, -1, rxscan834_done
goto rxscan834_scan
@@ -10577,11 +11394,15 @@
.annotate 'line', 396
# rx pass
rx830_cur."!cursor_pass"(rx830_pos, "arglist")
- rx830_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx830_pos)
+ if_null rx830_debug, debug_721
+ rx830_cur."!cursor_debug"("PASS", "arglist", " at pos=", rx830_pos)
+ debug_721:
.return (rx830_cur)
rx830_restart:
.annotate 'line', 4
- rx830_cur."!cursor_debug"("NEXT ", "arglist")
+ if_null rx830_debug, debug_722
+ rx830_cur."!cursor_debug"("NEXT", "arglist")
+ debug_722:
rx830_fail:
(rx830_rep, rx830_pos, $I10, $P10) = rx830_cur."!mark_fail"(0)
lt rx830_pos, -1, rx830_done
@@ -10589,14 +11410,16 @@
jump $I10
rx830_done:
rx830_cur."!cursor_fail"()
- rx830_cur."!cursor_debug"("FAIL ", "arglist")
+ if_null rx830_debug, debug_723
+ rx830_cur."!cursor_debug"("FAIL", "arglist")
+ debug_723:
.return (rx830_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist" :subid("197_1280467477.44751") :method
+.sub "!PREFIX__arglist" :subid("197_1282324002.40722") :method
.annotate 'line', 4
$P832 = self."!PREFIX__!subrule"("ws", "")
new $P833, "ResizablePMCArray"
@@ -10606,7 +11429,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<value>" :subid("198_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<value>" :subid("198_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx837_tgt
.local int rx837_pos
@@ -10614,7 +11437,9 @@
.local int rx837_eos
.local int rx837_rep
.local pmc rx837_cur
+ .local pmc rx837_debug
(rx837_cur, rx837_pos, rx837_tgt, $I10) = self."!cursor_start"()
+ getattribute rx837_debug, rx837_cur, "$!debug"
.lex unicode:"$\x{a2}", rx837_cur
.local pmc match
.lex "$/", match
@@ -10626,7 +11451,9 @@
substr rx837_tgt, rx837_tgt, rx837_off
rx837_start:
eq $I10, 1, rx837_restart
- rx837_cur."!cursor_debug"("START ", "term:sym<value>")
+ if_null rx837_debug, debug_724
+ rx837_cur."!cursor_debug"("START", "term:sym<value>")
+ debug_724:
$I10 = self.'from'()
ne $I10, -1, rxscan841_done
goto rxscan841_scan
@@ -10649,11 +11476,15 @@
rx837_pos = $P10."pos"()
# rx pass
rx837_cur."!cursor_pass"(rx837_pos, "term:sym<value>")
- rx837_cur."!cursor_debug"("PASS ", "term:sym<value>", " at pos=", rx837_pos)
+ if_null rx837_debug, debug_725
+ rx837_cur."!cursor_debug"("PASS", "term:sym<value>", " at pos=", rx837_pos)
+ debug_725:
.return (rx837_cur)
rx837_restart:
.annotate 'line', 4
- rx837_cur."!cursor_debug"("NEXT ", "term:sym<value>")
+ if_null rx837_debug, debug_726
+ rx837_cur."!cursor_debug"("NEXT", "term:sym<value>")
+ debug_726:
rx837_fail:
(rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
lt rx837_pos, -1, rx837_done
@@ -10661,14 +11492,16 @@
jump $I10
rx837_done:
rx837_cur."!cursor_fail"()
- rx837_cur."!cursor_debug"("FAIL ", "term:sym<value>")
+ if_null rx837_debug, debug_727
+ rx837_cur."!cursor_debug"("FAIL", "term:sym<value>")
+ debug_727:
.return (rx837_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>" :subid("199_1280467477.44751") :method
+.sub "!PREFIX__term:sym<value>" :subid("199_1282324002.40722") :method
.annotate 'line', 4
$P839 = self."!PREFIX__!subrule"("value", "")
new $P840, "ResizablePMCArray"
@@ -10678,7 +11511,7 @@
.namespace ["NQP";"Grammar"]
-.sub "value" :subid("200_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "value" :subid("200_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx843_tgt
.local int rx843_pos
@@ -10686,7 +11519,9 @@
.local int rx843_eos
.local int rx843_rep
.local pmc rx843_cur
+ .local pmc rx843_debug
(rx843_cur, rx843_pos, rx843_tgt, $I10) = self."!cursor_start"()
+ getattribute rx843_debug, rx843_cur, "$!debug"
.lex unicode:"$\x{a2}", rx843_cur
.local pmc match
.lex "$/", match
@@ -10698,7 +11533,9 @@
substr rx843_tgt, rx843_tgt, rx843_off
rx843_start:
eq $I10, 1, rx843_restart
- rx843_cur."!cursor_debug"("START ", "value")
+ if_null rx843_debug, debug_728
+ rx843_cur."!cursor_debug"("START", "value")
+ debug_728:
$I10 = self.'from'()
ne $I10, -1, rxscan848_done
goto rxscan848_scan
@@ -10737,11 +11574,15 @@
.annotate 'line', 407
# rx pass
rx843_cur."!cursor_pass"(rx843_pos, "value")
- rx843_cur."!cursor_debug"("PASS ", "value", " at pos=", rx843_pos)
+ if_null rx843_debug, debug_729
+ rx843_cur."!cursor_debug"("PASS", "value", " at pos=", rx843_pos)
+ debug_729:
.return (rx843_cur)
rx843_restart:
.annotate 'line', 4
- rx843_cur."!cursor_debug"("NEXT ", "value")
+ if_null rx843_debug, debug_730
+ rx843_cur."!cursor_debug"("NEXT", "value")
+ debug_730:
rx843_fail:
(rx843_rep, rx843_pos, $I10, $P10) = rx843_cur."!mark_fail"(0)
lt rx843_pos, -1, rx843_done
@@ -10749,14 +11590,16 @@
jump $I10
rx843_done:
rx843_cur."!cursor_fail"()
- rx843_cur."!cursor_debug"("FAIL ", "value")
+ if_null rx843_debug, debug_731
+ rx843_cur."!cursor_debug"("FAIL", "value")
+ debug_731:
.return (rx843_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value" :subid("201_1280467477.44751") :method
+.sub "!PREFIX__value" :subid("201_1282324002.40722") :method
.annotate 'line', 4
$P845 = self."!PREFIX__!subrule"("number", "")
$P846 = self."!PREFIX__!subrule"("quote", "")
@@ -10768,7 +11611,7 @@
.namespace ["NQP";"Grammar"]
-.sub "number" :subid("202_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "number" :subid("202_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx851_tgt
.local int rx851_pos
@@ -10776,7 +11619,9 @@
.local int rx851_eos
.local int rx851_rep
.local pmc rx851_cur
+ .local pmc rx851_debug
(rx851_cur, rx851_pos, rx851_tgt, $I10) = self."!cursor_start"()
+ getattribute rx851_debug, rx851_cur, "$!debug"
.lex unicode:"$\x{a2}", rx851_cur
.local pmc match
.lex "$/", match
@@ -10788,7 +11633,9 @@
substr rx851_tgt, rx851_tgt, rx851_off
rx851_start:
eq $I10, 1, rx851_restart
- rx851_cur."!cursor_debug"("START ", "number")
+ if_null rx851_debug, debug_732
+ rx851_cur."!cursor_debug"("START", "number")
+ debug_732:
$I10 = self.'from'()
ne $I10, -1, rxscan854_done
goto rxscan854_scan
@@ -10805,20 +11652,20 @@
# rx subcapture "sign"
set_addr $I10, rxcap_856_fail
rx851_cur."!mark_push"(0, rx851_pos, $I10)
- # rx rxquantr855 ** 0..1
- set_addr $I10, rxquantr855_done
- rx851_cur."!mark_push"(0, rx851_pos, $I10)
- rxquantr855_loop:
- # rx enumcharlist negate=0
- ge rx851_pos, rx851_eos, rx851_fail
+ # rx enumcharlist_q negate=0 r 0..1
sub $I10, rx851_pos, rx851_off
+ set rx851_rep, 0
+ sub $I12, rx851_eos, rx851_pos
+ le $I12, 1, rxenumcharlistq855_loop
+ set $I12, 1
+ rxenumcharlistq855_loop:
+ le $I12, 0, rxenumcharlistq855_done
substr $S10, rx851_tgt, $I10, 1
index $I11, "+-", $S10
- lt $I11, 0, rx851_fail
- inc rx851_pos
- set_addr $I10, rxquantr855_done
- (rx851_rep) = rx851_cur."!mark_commit"($I10)
- rxquantr855_done:
+ lt $I11, 0, rxenumcharlistq855_done
+ inc rx851_rep
+ rxenumcharlistq855_done:
+ add rx851_pos, rx851_pos, rx851_rep
set_addr $I10, rxcap_856_fail
($I12, $I11) = rx851_cur."!mark_peek"($I10)
rx851_cur."!cursor_pos"($I11)
@@ -10854,11 +11701,15 @@
.annotate 'line', 412
# rx pass
rx851_cur."!cursor_pass"(rx851_pos, "number")
- rx851_cur."!cursor_debug"("PASS ", "number", " at pos=", rx851_pos)
+ if_null rx851_debug, debug_733
+ rx851_cur."!cursor_debug"("PASS", "number", " at pos=", rx851_pos)
+ debug_733:
.return (rx851_cur)
rx851_restart:
.annotate 'line', 4
- rx851_cur."!cursor_debug"("NEXT ", "number")
+ if_null rx851_debug, debug_734
+ rx851_cur."!cursor_debug"("NEXT", "number")
+ debug_734:
rx851_fail:
(rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0)
lt rx851_pos, -1, rx851_done
@@ -10866,14 +11717,16 @@
jump $I10
rx851_done:
rx851_cur."!cursor_fail"()
- rx851_cur."!cursor_debug"("FAIL ", "number")
+ if_null rx851_debug, debug_735
+ rx851_cur."!cursor_debug"("FAIL", "number")
+ debug_735:
.return (rx851_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number" :subid("203_1280467477.44751") :method
+.sub "!PREFIX__number" :subid("203_1282324002.40722") :method
.annotate 'line', 4
new $P853, "ResizablePMCArray"
push $P853, ""
@@ -10882,7 +11735,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote" :subid("204_1280467477.44751") :method
+.sub "quote" :subid("204_1282324002.40722") :method
.annotate 'line', 417
$P859 = self."!protoregex"("quote")
.return ($P859)
@@ -10890,7 +11743,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote" :subid("205_1280467477.44751") :method
+.sub "!PREFIX__quote" :subid("205_1282324002.40722") :method
.annotate 'line', 417
$P861 = self."!PREFIX__!protoregex"("quote")
.return ($P861)
@@ -10898,7 +11751,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>" :subid("206_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<apos>" :subid("206_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx863_tgt
.local int rx863_pos
@@ -10906,7 +11759,9 @@
.local int rx863_eos
.local int rx863_rep
.local pmc rx863_cur
+ .local pmc rx863_debug
(rx863_cur, rx863_pos, rx863_tgt, $I10) = self."!cursor_start"()
+ getattribute rx863_debug, rx863_cur, "$!debug"
.lex unicode:"$\x{a2}", rx863_cur
.local pmc match
.lex "$/", match
@@ -10918,7 +11773,9 @@
substr rx863_tgt, rx863_tgt, rx863_off
rx863_start:
eq $I10, 1, rx863_restart
- rx863_cur."!cursor_debug"("START ", "quote:sym<apos>")
+ if_null rx863_debug, debug_736
+ rx863_cur."!cursor_debug"("START", "quote:sym<apos>")
+ debug_736:
$I10 = self.'from'()
ne $I10, -1, rxscan866_done
goto rxscan866_scan
@@ -10947,11 +11804,15 @@
rx863_pos = $P10."pos"()
# rx pass
rx863_cur."!cursor_pass"(rx863_pos, "quote:sym<apos>")
- rx863_cur."!cursor_debug"("PASS ", "quote:sym<apos>", " at pos=", rx863_pos)
+ if_null rx863_debug, debug_737
+ rx863_cur."!cursor_debug"("PASS", "quote:sym<apos>", " at pos=", rx863_pos)
+ debug_737:
.return (rx863_cur)
rx863_restart:
.annotate 'line', 4
- rx863_cur."!cursor_debug"("NEXT ", "quote:sym<apos>")
+ if_null rx863_debug, debug_738
+ rx863_cur."!cursor_debug"("NEXT", "quote:sym<apos>")
+ debug_738:
rx863_fail:
(rx863_rep, rx863_pos, $I10, $P10) = rx863_cur."!mark_fail"(0)
lt rx863_pos, -1, rx863_done
@@ -10959,14 +11820,16 @@
jump $I10
rx863_done:
rx863_cur."!cursor_fail"()
- rx863_cur."!cursor_debug"("FAIL ", "quote:sym<apos>")
+ if_null rx863_debug, debug_739
+ rx863_cur."!cursor_debug"("FAIL", "quote:sym<apos>")
+ debug_739:
.return (rx863_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>" :subid("207_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<apos>" :subid("207_1282324002.40722") :method
.annotate 'line', 4
new $P865, "ResizablePMCArray"
push $P865, "'"
@@ -10975,7 +11838,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>" :subid("208_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<dblq>" :subid("208_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx868_tgt
.local int rx868_pos
@@ -10983,7 +11846,9 @@
.local int rx868_eos
.local int rx868_rep
.local pmc rx868_cur
+ .local pmc rx868_debug
(rx868_cur, rx868_pos, rx868_tgt, $I10) = self."!cursor_start"()
+ getattribute rx868_debug, rx868_cur, "$!debug"
.lex unicode:"$\x{a2}", rx868_cur
.local pmc match
.lex "$/", match
@@ -10995,7 +11860,9 @@
substr rx868_tgt, rx868_tgt, rx868_off
rx868_start:
eq $I10, 1, rx868_restart
- rx868_cur."!cursor_debug"("START ", "quote:sym<dblq>")
+ if_null rx868_debug, debug_740
+ rx868_cur."!cursor_debug"("START", "quote:sym<dblq>")
+ debug_740:
$I10 = self.'from'()
ne $I10, -1, rxscan871_done
goto rxscan871_scan
@@ -11024,11 +11891,15 @@
rx868_pos = $P10."pos"()
# rx pass
rx868_cur."!cursor_pass"(rx868_pos, "quote:sym<dblq>")
- rx868_cur."!cursor_debug"("PASS ", "quote:sym<dblq>", " at pos=", rx868_pos)
+ if_null rx868_debug, debug_741
+ rx868_cur."!cursor_debug"("PASS", "quote:sym<dblq>", " at pos=", rx868_pos)
+ debug_741:
.return (rx868_cur)
rx868_restart:
.annotate 'line', 4
- rx868_cur."!cursor_debug"("NEXT ", "quote:sym<dblq>")
+ if_null rx868_debug, debug_742
+ rx868_cur."!cursor_debug"("NEXT", "quote:sym<dblq>")
+ debug_742:
rx868_fail:
(rx868_rep, rx868_pos, $I10, $P10) = rx868_cur."!mark_fail"(0)
lt rx868_pos, -1, rx868_done
@@ -11036,14 +11907,16 @@
jump $I10
rx868_done:
rx868_cur."!cursor_fail"()
- rx868_cur."!cursor_debug"("FAIL ", "quote:sym<dblq>")
+ if_null rx868_debug, debug_743
+ rx868_cur."!cursor_debug"("FAIL", "quote:sym<dblq>")
+ debug_743:
.return (rx868_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>" :subid("209_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<dblq>" :subid("209_1282324002.40722") :method
.annotate 'line', 4
new $P870, "ResizablePMCArray"
push $P870, "\""
@@ -11052,7 +11925,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>" :subid("210_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<q>" :subid("210_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx873_tgt
.local int rx873_pos
@@ -11060,7 +11933,9 @@
.local int rx873_eos
.local int rx873_rep
.local pmc rx873_cur
+ .local pmc rx873_debug
(rx873_cur, rx873_pos, rx873_tgt, $I10) = self."!cursor_start"()
+ getattribute rx873_debug, rx873_cur, "$!debug"
.lex unicode:"$\x{a2}", rx873_cur
.local pmc match
.lex "$/", match
@@ -11072,7 +11947,9 @@
substr rx873_tgt, rx873_tgt, rx873_off
rx873_start:
eq $I10, 1, rx873_restart
- rx873_cur."!cursor_debug"("START ", "quote:sym<q>")
+ if_null rx873_debug, debug_744
+ rx873_cur."!cursor_debug"("START", "quote:sym<q>")
+ debug_744:
$I10 = self.'from'()
ne $I10, -1, rxscan877_done
goto rxscan877_scan
@@ -11090,8 +11967,8 @@
add $I11, rx873_pos, 1
gt $I11, rx873_eos, rx873_fail
sub $I11, rx873_pos, rx873_off
- substr $S10, rx873_tgt, $I11, 1
- ne $S10, "q", rx873_fail
+ ord $I11, rx873_tgt, $I11
+ ne $I11, 113, rx873_fail
add rx873_pos, 1
# rxanchor rwb
le rx873_pos, 0, rx873_fail
@@ -11121,11 +11998,15 @@
rx873_pos = $P10."pos"()
# rx pass
rx873_cur."!cursor_pass"(rx873_pos, "quote:sym<q>")
- rx873_cur."!cursor_debug"("PASS ", "quote:sym<q>", " at pos=", rx873_pos)
+ if_null rx873_debug, debug_745
+ rx873_cur."!cursor_debug"("PASS", "quote:sym<q>", " at pos=", rx873_pos)
+ debug_745:
.return (rx873_cur)
rx873_restart:
.annotate 'line', 4
- rx873_cur."!cursor_debug"("NEXT ", "quote:sym<q>")
+ if_null rx873_debug, debug_746
+ rx873_cur."!cursor_debug"("NEXT", "quote:sym<q>")
+ debug_746:
rx873_fail:
(rx873_rep, rx873_pos, $I10, $P10) = rx873_cur."!mark_fail"(0)
lt rx873_pos, -1, rx873_done
@@ -11133,14 +12014,16 @@
jump $I10
rx873_done:
rx873_cur."!cursor_fail"()
- rx873_cur."!cursor_debug"("FAIL ", "quote:sym<q>")
+ if_null rx873_debug, debug_747
+ rx873_cur."!cursor_debug"("FAIL", "quote:sym<q>")
+ debug_747:
.return (rx873_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>" :subid("211_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<q>" :subid("211_1282324002.40722") :method
.annotate 'line', 4
$P875 = self."!PREFIX__!subrule"("ws", "q")
new $P876, "ResizablePMCArray"
@@ -11150,7 +12033,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>" :subid("212_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<qq>" :subid("212_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx879_tgt
.local int rx879_pos
@@ -11158,7 +12041,9 @@
.local int rx879_eos
.local int rx879_rep
.local pmc rx879_cur
+ .local pmc rx879_debug
(rx879_cur, rx879_pos, rx879_tgt, $I10) = self."!cursor_start"()
+ getattribute rx879_debug, rx879_cur, "$!debug"
.lex unicode:"$\x{a2}", rx879_cur
.local pmc match
.lex "$/", match
@@ -11170,7 +12055,9 @@
substr rx879_tgt, rx879_tgt, rx879_off
rx879_start:
eq $I10, 1, rx879_restart
- rx879_cur."!cursor_debug"("START ", "quote:sym<qq>")
+ if_null rx879_debug, debug_748
+ rx879_cur."!cursor_debug"("START", "quote:sym<qq>")
+ debug_748:
$I10 = self.'from'()
ne $I10, -1, rxscan883_done
goto rxscan883_scan
@@ -11219,11 +12106,15 @@
rx879_pos = $P10."pos"()
# rx pass
rx879_cur."!cursor_pass"(rx879_pos, "quote:sym<qq>")
- rx879_cur."!cursor_debug"("PASS ", "quote:sym<qq>", " at pos=", rx879_pos)
+ if_null rx879_debug, debug_749
+ rx879_cur."!cursor_debug"("PASS", "quote:sym<qq>", " at pos=", rx879_pos)
+ debug_749:
.return (rx879_cur)
rx879_restart:
.annotate 'line', 4
- rx879_cur."!cursor_debug"("NEXT ", "quote:sym<qq>")
+ if_null rx879_debug, debug_750
+ rx879_cur."!cursor_debug"("NEXT", "quote:sym<qq>")
+ debug_750:
rx879_fail:
(rx879_rep, rx879_pos, $I10, $P10) = rx879_cur."!mark_fail"(0)
lt rx879_pos, -1, rx879_done
@@ -11231,14 +12122,16 @@
jump $I10
rx879_done:
rx879_cur."!cursor_fail"()
- rx879_cur."!cursor_debug"("FAIL ", "quote:sym<qq>")
+ if_null rx879_debug, debug_751
+ rx879_cur."!cursor_debug"("FAIL", "quote:sym<qq>")
+ debug_751:
.return (rx879_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>" :subid("213_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<qq>" :subid("213_1282324002.40722") :method
.annotate 'line', 4
$P881 = self."!PREFIX__!subrule"("ws", "qq")
new $P882, "ResizablePMCArray"
@@ -11248,7 +12141,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>" :subid("214_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<Q>" :subid("214_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx885_tgt
.local int rx885_pos
@@ -11256,7 +12149,9 @@
.local int rx885_eos
.local int rx885_rep
.local pmc rx885_cur
+ .local pmc rx885_debug
(rx885_cur, rx885_pos, rx885_tgt, $I10) = self."!cursor_start"()
+ getattribute rx885_debug, rx885_cur, "$!debug"
.lex unicode:"$\x{a2}", rx885_cur
.local pmc match
.lex "$/", match
@@ -11268,7 +12163,9 @@
substr rx885_tgt, rx885_tgt, rx885_off
rx885_start:
eq $I10, 1, rx885_restart
- rx885_cur."!cursor_debug"("START ", "quote:sym<Q>")
+ if_null rx885_debug, debug_752
+ rx885_cur."!cursor_debug"("START", "quote:sym<Q>")
+ debug_752:
$I10 = self.'from'()
ne $I10, -1, rxscan889_done
goto rxscan889_scan
@@ -11286,8 +12183,8 @@
add $I11, rx885_pos, 1
gt $I11, rx885_eos, rx885_fail
sub $I11, rx885_pos, rx885_off
- substr $S10, rx885_tgt, $I11, 1
- ne $S10, "Q", rx885_fail
+ ord $I11, rx885_tgt, $I11
+ ne $I11, 81, rx885_fail
add rx885_pos, 1
# rxanchor rwb
le rx885_pos, 0, rx885_fail
@@ -11317,11 +12214,15 @@
rx885_pos = $P10."pos"()
# rx pass
rx885_cur."!cursor_pass"(rx885_pos, "quote:sym<Q>")
- rx885_cur."!cursor_debug"("PASS ", "quote:sym<Q>", " at pos=", rx885_pos)
+ if_null rx885_debug, debug_753
+ rx885_cur."!cursor_debug"("PASS", "quote:sym<Q>", " at pos=", rx885_pos)
+ debug_753:
.return (rx885_cur)
rx885_restart:
.annotate 'line', 4
- rx885_cur."!cursor_debug"("NEXT ", "quote:sym<Q>")
+ if_null rx885_debug, debug_754
+ rx885_cur."!cursor_debug"("NEXT", "quote:sym<Q>")
+ debug_754:
rx885_fail:
(rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0)
lt rx885_pos, -1, rx885_done
@@ -11329,14 +12230,16 @@
jump $I10
rx885_done:
rx885_cur."!cursor_fail"()
- rx885_cur."!cursor_debug"("FAIL ", "quote:sym<Q>")
+ if_null rx885_debug, debug_755
+ rx885_cur."!cursor_debug"("FAIL", "quote:sym<Q>")
+ debug_755:
.return (rx885_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>" :subid("215_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<Q>" :subid("215_1282324002.40722") :method
.annotate 'line', 4
$P887 = self."!PREFIX__!subrule"("ws", "Q")
new $P888, "ResizablePMCArray"
@@ -11346,7 +12249,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>" :subid("216_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<Q:PIR>" :subid("216_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx891_tgt
.local int rx891_pos
@@ -11354,7 +12257,9 @@
.local int rx891_eos
.local int rx891_rep
.local pmc rx891_cur
+ .local pmc rx891_debug
(rx891_cur, rx891_pos, rx891_tgt, $I10) = self."!cursor_start"()
+ getattribute rx891_debug, rx891_cur, "$!debug"
.lex unicode:"$\x{a2}", rx891_cur
.local pmc match
.lex "$/", match
@@ -11366,7 +12271,9 @@
substr rx891_tgt, rx891_tgt, rx891_off
rx891_start:
eq $I10, 1, rx891_restart
- rx891_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+ if_null rx891_debug, debug_756
+ rx891_cur."!cursor_debug"("START", "quote:sym<Q:PIR>")
+ debug_756:
$I10 = self.'from'()
ne $I10, -1, rxscan895_done
goto rxscan895_scan
@@ -11401,11 +12308,15 @@
rx891_pos = $P10."pos"()
# rx pass
rx891_cur."!cursor_pass"(rx891_pos, "quote:sym<Q:PIR>")
- rx891_cur."!cursor_debug"("PASS ", "quote:sym<Q:PIR>", " at pos=", rx891_pos)
+ if_null rx891_debug, debug_757
+ rx891_cur."!cursor_debug"("PASS", "quote:sym<Q:PIR>", " at pos=", rx891_pos)
+ debug_757:
.return (rx891_cur)
rx891_restart:
.annotate 'line', 4
- rx891_cur."!cursor_debug"("NEXT ", "quote:sym<Q:PIR>")
+ if_null rx891_debug, debug_758
+ rx891_cur."!cursor_debug"("NEXT", "quote:sym<Q:PIR>")
+ debug_758:
rx891_fail:
(rx891_rep, rx891_pos, $I10, $P10) = rx891_cur."!mark_fail"(0)
lt rx891_pos, -1, rx891_done
@@ -11413,14 +12324,16 @@
jump $I10
rx891_done:
rx891_cur."!cursor_fail"()
- rx891_cur."!cursor_debug"("FAIL ", "quote:sym<Q:PIR>")
+ if_null rx891_debug, debug_759
+ rx891_cur."!cursor_debug"("FAIL", "quote:sym<Q:PIR>")
+ debug_759:
.return (rx891_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>" :subid("217_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<Q:PIR>" :subid("217_1282324002.40722") :method
.annotate 'line', 4
$P893 = self."!PREFIX__!subrule"("ws", "Q:PIR")
new $P894, "ResizablePMCArray"
@@ -11430,7 +12343,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />" :subid("218_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym</ />" :subid("218_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx897_tgt
.local int rx897_pos
@@ -11438,7 +12351,9 @@
.local int rx897_eos
.local int rx897_rep
.local pmc rx897_cur
+ .local pmc rx897_debug
(rx897_cur, rx897_pos, rx897_tgt, $I10) = self."!cursor_start"()
+ getattribute rx897_debug, rx897_cur, "$!debug"
.lex unicode:"$\x{a2}", rx897_cur
.local pmc match
.lex "$/", match
@@ -11450,7 +12365,9 @@
substr rx897_tgt, rx897_tgt, rx897_off
rx897_start:
eq $I10, 1, rx897_restart
- rx897_cur."!cursor_debug"("START ", "quote:sym</ />")
+ if_null rx897_debug, debug_760
+ rx897_cur."!cursor_debug"("START", "quote:sym</ />")
+ debug_760:
$I10 = self.'from'()
ne $I10, -1, rxscan901_done
goto rxscan901_scan
@@ -11468,8 +12385,8 @@
add $I11, rx897_pos, 1
gt $I11, rx897_eos, rx897_fail
sub $I11, rx897_pos, rx897_off
- substr $S10, rx897_tgt, $I11, 1
- ne $S10, "/", rx897_fail
+ ord $I11, rx897_tgt, $I11
+ ne $I11, 47, rx897_fail
add rx897_pos, 1
.annotate 'line', 426
# rx subrule "newpad" subtype=method negate=
@@ -11494,17 +12411,21 @@
add $I11, rx897_pos, 1
gt $I11, rx897_eos, rx897_fail
sub $I11, rx897_pos, rx897_off
- substr $S10, rx897_tgt, $I11, 1
- ne $S10, "/", rx897_fail
+ ord $I11, rx897_tgt, $I11
+ ne $I11, 47, rx897_fail
add rx897_pos, 1
.annotate 'line', 424
# rx pass
rx897_cur."!cursor_pass"(rx897_pos, "quote:sym</ />")
- rx897_cur."!cursor_debug"("PASS ", "quote:sym</ />", " at pos=", rx897_pos)
+ if_null rx897_debug, debug_761
+ rx897_cur."!cursor_debug"("PASS", "quote:sym</ />", " at pos=", rx897_pos)
+ debug_761:
.return (rx897_cur)
rx897_restart:
.annotate 'line', 4
- rx897_cur."!cursor_debug"("NEXT ", "quote:sym</ />")
+ if_null rx897_debug, debug_762
+ rx897_cur."!cursor_debug"("NEXT", "quote:sym</ />")
+ debug_762:
rx897_fail:
(rx897_rep, rx897_pos, $I10, $P10) = rx897_cur."!mark_fail"(0)
lt rx897_pos, -1, rx897_done
@@ -11512,14 +12433,16 @@
jump $I10
rx897_done:
rx897_cur."!cursor_fail"()
- rx897_cur."!cursor_debug"("FAIL ", "quote:sym</ />")
+ if_null rx897_debug, debug_763
+ rx897_cur."!cursor_debug"("FAIL", "quote:sym</ />")
+ debug_763:
.return (rx897_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />" :subid("219_1280467477.44751") :method
+.sub "!PREFIX__quote:sym</ />" :subid("219_1282324002.40722") :method
.annotate 'line', 4
$P899 = self."!PREFIX__!subrule"("newpad", "/")
new $P900, "ResizablePMCArray"
@@ -11529,7 +12452,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>" :subid("220_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<$>" :subid("220_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx903_tgt
.local int rx903_pos
@@ -11537,7 +12460,9 @@
.local int rx903_eos
.local int rx903_rep
.local pmc rx903_cur
+ .local pmc rx903_debug
(rx903_cur, rx903_pos, rx903_tgt, $I10) = self."!cursor_start"()
+ getattribute rx903_debug, rx903_cur, "$!debug"
.lex unicode:"$\x{a2}", rx903_cur
.local pmc match
.lex "$/", match
@@ -11549,7 +12474,9 @@
substr rx903_tgt, rx903_tgt, rx903_off
rx903_start:
eq $I10, 1, rx903_restart
- rx903_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
+ if_null rx903_debug, debug_764
+ rx903_cur."!cursor_debug"("START", "quote_escape:sym<$>")
+ debug_764:
$I10 = self.'from'()
ne $I10, -1, rxscan906_done
goto rxscan906_scan
@@ -11582,11 +12509,15 @@
rx903_pos = $P10."pos"()
# rx pass
rx903_cur."!cursor_pass"(rx903_pos, "quote_escape:sym<$>")
- rx903_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx903_pos)
+ if_null rx903_debug, debug_765
+ rx903_cur."!cursor_debug"("PASS", "quote_escape:sym<$>", " at pos=", rx903_pos)
+ debug_765:
.return (rx903_cur)
rx903_restart:
.annotate 'line', 4
- rx903_cur."!cursor_debug"("NEXT ", "quote_escape:sym<$>")
+ if_null rx903_debug, debug_766
+ rx903_cur."!cursor_debug"("NEXT", "quote_escape:sym<$>")
+ debug_766:
rx903_fail:
(rx903_rep, rx903_pos, $I10, $P10) = rx903_cur."!mark_fail"(0)
lt rx903_pos, -1, rx903_done
@@ -11594,14 +12525,16 @@
jump $I10
rx903_done:
rx903_cur."!cursor_fail"()
- rx903_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>")
+ if_null rx903_debug, debug_767
+ rx903_cur."!cursor_debug"("FAIL", "quote_escape:sym<$>")
+ debug_767:
.return (rx903_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>" :subid("221_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<$>" :subid("221_1282324002.40722") :method
.annotate 'line', 4
new $P905, "ResizablePMCArray"
push $P905, "$"
@@ -11610,7 +12543,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>" :subid("222_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<{ }>" :subid("222_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx908_tgt
.local int rx908_pos
@@ -11618,7 +12551,9 @@
.local int rx908_eos
.local int rx908_rep
.local pmc rx908_cur
+ .local pmc rx908_debug
(rx908_cur, rx908_pos, rx908_tgt, $I10) = self."!cursor_start"()
+ getattribute rx908_debug, rx908_cur, "$!debug"
.lex unicode:"$\x{a2}", rx908_cur
.local pmc match
.lex "$/", match
@@ -11630,7 +12565,9 @@
substr rx908_tgt, rx908_tgt, rx908_off
rx908_start:
eq $I10, 1, rx908_restart
- rx908_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
+ if_null rx908_debug, debug_768
+ rx908_cur."!cursor_debug"("START", "quote_escape:sym<{ }>")
+ debug_768:
$I10 = self.'from'()
ne $I10, -1, rxscan911_done
goto rxscan911_scan
@@ -11663,11 +12600,15 @@
rx908_pos = $P10."pos"()
# rx pass
rx908_cur."!cursor_pass"(rx908_pos, "quote_escape:sym<{ }>")
- rx908_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx908_pos)
+ if_null rx908_debug, debug_769
+ rx908_cur."!cursor_debug"("PASS", "quote_escape:sym<{ }>", " at pos=", rx908_pos)
+ debug_769:
.return (rx908_cur)
rx908_restart:
.annotate 'line', 4
- rx908_cur."!cursor_debug"("NEXT ", "quote_escape:sym<{ }>")
+ if_null rx908_debug, debug_770
+ rx908_cur."!cursor_debug"("NEXT", "quote_escape:sym<{ }>")
+ debug_770:
rx908_fail:
(rx908_rep, rx908_pos, $I10, $P10) = rx908_cur."!mark_fail"(0)
lt rx908_pos, -1, rx908_done
@@ -11675,14 +12616,16 @@
jump $I10
rx908_done:
rx908_cur."!cursor_fail"()
- rx908_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>")
+ if_null rx908_debug, debug_771
+ rx908_cur."!cursor_debug"("FAIL", "quote_escape:sym<{ }>")
+ debug_771:
.return (rx908_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>" :subid("223_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<{ }>" :subid("223_1282324002.40722") :method
.annotate 'line', 4
new $P910, "ResizablePMCArray"
push $P910, "{"
@@ -11691,7 +12634,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>" :subid("224_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<esc>" :subid("224_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx913_tgt
.local int rx913_pos
@@ -11699,7 +12642,9 @@
.local int rx913_eos
.local int rx913_rep
.local pmc rx913_cur
+ .local pmc rx913_debug
(rx913_cur, rx913_pos, rx913_tgt, $I10) = self."!cursor_start"()
+ getattribute rx913_debug, rx913_cur, "$!debug"
.lex unicode:"$\x{a2}", rx913_cur
.local pmc match
.lex "$/", match
@@ -11711,7 +12656,9 @@
substr rx913_tgt, rx913_tgt, rx913_off
rx913_start:
eq $I10, 1, rx913_restart
- rx913_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
+ if_null rx913_debug, debug_772
+ rx913_cur."!cursor_debug"("START", "quote_escape:sym<esc>")
+ debug_772:
$I10 = self.'from'()
ne $I10, -1, rxscan916_done
goto rxscan916_scan
@@ -11738,11 +12685,15 @@
unless $P10, rx913_fail
# rx pass
rx913_cur."!cursor_pass"(rx913_pos, "quote_escape:sym<esc>")
- rx913_cur."!cursor_debug"("PASS ", "quote_escape:sym<esc>", " at pos=", rx913_pos)
+ if_null rx913_debug, debug_773
+ rx913_cur."!cursor_debug"("PASS", "quote_escape:sym<esc>", " at pos=", rx913_pos)
+ debug_773:
.return (rx913_cur)
rx913_restart:
.annotate 'line', 4
- rx913_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+ if_null rx913_debug, debug_774
+ rx913_cur."!cursor_debug"("NEXT", "quote_escape:sym<esc>")
+ debug_774:
rx913_fail:
(rx913_rep, rx913_pos, $I10, $P10) = rx913_cur."!mark_fail"(0)
lt rx913_pos, -1, rx913_done
@@ -11750,14 +12701,16 @@
jump $I10
rx913_done:
rx913_cur."!cursor_fail"()
- rx913_cur."!cursor_debug"("FAIL ", "quote_escape:sym<esc>")
+ if_null rx913_debug, debug_775
+ rx913_cur."!cursor_debug"("FAIL", "quote_escape:sym<esc>")
+ debug_775:
.return (rx913_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>" :subid("225_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<esc>" :subid("225_1282324002.40722") :method
.annotate 'line', 4
new $P915, "ResizablePMCArray"
push $P915, "\\e"
@@ -11766,7 +12719,7 @@
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>" :subid("226_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<( )>" :subid("226_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx918_tgt
.local int rx918_pos
@@ -11774,8 +12727,10 @@
.local int rx918_eos
.local int rx918_rep
.local pmc rx918_cur
+ .local pmc rx918_debug
(rx918_cur, rx918_pos, rx918_tgt, $I10) = self."!cursor_start"()
rx918_cur."!cursor_caparray"("EXPR")
+ getattribute rx918_debug, rx918_cur, "$!debug"
.lex unicode:"$\x{a2}", rx918_cur
.local pmc match
.lex "$/", match
@@ -11787,7 +12742,9 @@
substr rx918_tgt, rx918_tgt, rx918_off
rx918_start:
eq $I10, 1, rx918_restart
- rx918_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
+ if_null rx918_debug, debug_776
+ rx918_cur."!cursor_debug"("START", "circumfix:sym<( )>")
+ debug_776:
$I10 = self.'from'()
ne $I10, -1, rxscan922_done
goto rxscan922_scan
@@ -11805,8 +12762,8 @@
add $I11, rx918_pos, 1
gt $I11, rx918_eos, rx918_fail
sub $I11, rx918_pos, rx918_off
- substr $S10, rx918_tgt, $I11, 1
- ne $S10, "(", rx918_fail
+ ord $I11, rx918_tgt, $I11
+ ne $I11, 40, rx918_fail
add rx918_pos, 1
# rx subrule "ws" subtype=method negate=
rx918_cur."!cursor_pos"(rx918_pos)
@@ -11837,16 +12794,20 @@
add $I11, rx918_pos, 1
gt $I11, rx918_eos, rx918_fail
sub $I11, rx918_pos, rx918_off
- substr $S10, rx918_tgt, $I11, 1
- ne $S10, ")", rx918_fail
+ ord $I11, rx918_tgt, $I11
+ ne $I11, 41, rx918_fail
add rx918_pos, 1
# rx pass
rx918_cur."!cursor_pass"(rx918_pos, "circumfix:sym<( )>")
- rx918_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx918_pos)
+ if_null rx918_debug, debug_777
+ rx918_cur."!cursor_debug"("PASS", "circumfix:sym<( )>", " at pos=", rx918_pos)
+ debug_777:
.return (rx918_cur)
rx918_restart:
.annotate 'line', 4
- rx918_cur."!cursor_debug"("NEXT ", "circumfix:sym<( )>")
+ if_null rx918_debug, debug_778
+ rx918_cur."!cursor_debug"("NEXT", "circumfix:sym<( )>")
+ debug_778:
rx918_fail:
(rx918_rep, rx918_pos, $I10, $P10) = rx918_cur."!mark_fail"(0)
lt rx918_pos, -1, rx918_done
@@ -11854,14 +12815,16 @@
jump $I10
rx918_done:
rx918_cur."!cursor_fail"()
- rx918_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>")
+ if_null rx918_debug, debug_779
+ rx918_cur."!cursor_debug"("FAIL", "circumfix:sym<( )>")
+ debug_779:
.return (rx918_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>" :subid("227_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<( )>" :subid("227_1282324002.40722") :method
.annotate 'line', 4
$P920 = self."!PREFIX__!subrule"("ws", "(")
new $P921, "ResizablePMCArray"
@@ -11871,7 +12834,7 @@
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>" :subid("228_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<[ ]>" :subid("228_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx926_tgt
.local int rx926_pos
@@ -11879,8 +12842,10 @@
.local int rx926_eos
.local int rx926_rep
.local pmc rx926_cur
+ .local pmc rx926_debug
(rx926_cur, rx926_pos, rx926_tgt, $I10) = self."!cursor_start"()
rx926_cur."!cursor_caparray"("EXPR")
+ getattribute rx926_debug, rx926_cur, "$!debug"
.lex unicode:"$\x{a2}", rx926_cur
.local pmc match
.lex "$/", match
@@ -11892,7 +12857,9 @@
substr rx926_tgt, rx926_tgt, rx926_off
rx926_start:
eq $I10, 1, rx926_restart
- rx926_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
+ if_null rx926_debug, debug_780
+ rx926_cur."!cursor_debug"("START", "circumfix:sym<[ ]>")
+ debug_780:
$I10 = self.'from'()
ne $I10, -1, rxscan930_done
goto rxscan930_scan
@@ -11910,8 +12877,8 @@
add $I11, rx926_pos, 1
gt $I11, rx926_eos, rx926_fail
sub $I11, rx926_pos, rx926_off
- substr $S10, rx926_tgt, $I11, 1
- ne $S10, "[", rx926_fail
+ ord $I11, rx926_tgt, $I11
+ ne $I11, 91, rx926_fail
add rx926_pos, 1
# rx subrule "ws" subtype=method negate=
rx926_cur."!cursor_pos"(rx926_pos)
@@ -11942,16 +12909,20 @@
add $I11, rx926_pos, 1
gt $I11, rx926_eos, rx926_fail
sub $I11, rx926_pos, rx926_off
- substr $S10, rx926_tgt, $I11, 1
- ne $S10, "]", rx926_fail
+ ord $I11, rx926_tgt, $I11
+ ne $I11, 93, rx926_fail
add rx926_pos, 1
# rx pass
rx926_cur."!cursor_pass"(rx926_pos, "circumfix:sym<[ ]>")
- rx926_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx926_pos)
+ if_null rx926_debug, debug_781
+ rx926_cur."!cursor_debug"("PASS", "circumfix:sym<[ ]>", " at pos=", rx926_pos)
+ debug_781:
.return (rx926_cur)
rx926_restart:
.annotate 'line', 4
- rx926_cur."!cursor_debug"("NEXT ", "circumfix:sym<[ ]>")
+ if_null rx926_debug, debug_782
+ rx926_cur."!cursor_debug"("NEXT", "circumfix:sym<[ ]>")
+ debug_782:
rx926_fail:
(rx926_rep, rx926_pos, $I10, $P10) = rx926_cur."!mark_fail"(0)
lt rx926_pos, -1, rx926_done
@@ -11959,14 +12930,16 @@
jump $I10
rx926_done:
rx926_cur."!cursor_fail"()
- rx926_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>")
+ if_null rx926_debug, debug_783
+ rx926_cur."!cursor_debug"("FAIL", "circumfix:sym<[ ]>")
+ debug_783:
.return (rx926_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>" :subid("229_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<[ ]>" :subid("229_1282324002.40722") :method
.annotate 'line', 4
$P928 = self."!PREFIX__!subrule"("ws", "[")
new $P929, "ResizablePMCArray"
@@ -11976,7 +12949,7 @@
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>" :subid("230_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<ang>" :subid("230_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx934_tgt
.local int rx934_pos
@@ -11984,7 +12957,9 @@
.local int rx934_eos
.local int rx934_rep
.local pmc rx934_cur
+ .local pmc rx934_debug
(rx934_cur, rx934_pos, rx934_tgt, $I10) = self."!cursor_start"()
+ getattribute rx934_debug, rx934_cur, "$!debug"
.lex unicode:"$\x{a2}", rx934_cur
.local pmc match
.lex "$/", match
@@ -11996,7 +12971,9 @@
substr rx934_tgt, rx934_tgt, rx934_off
rx934_start:
eq $I10, 1, rx934_restart
- rx934_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
+ if_null rx934_debug, debug_784
+ rx934_cur."!cursor_debug"("START", "circumfix:sym<ang>")
+ debug_784:
$I10 = self.'from'()
ne $I10, -1, rxscan937_done
goto rxscan937_scan
@@ -12025,11 +13002,15 @@
rx934_pos = $P10."pos"()
# rx pass
rx934_cur."!cursor_pass"(rx934_pos, "circumfix:sym<ang>")
- rx934_cur."!cursor_debug"("PASS ", "circumfix:sym<ang>", " at pos=", rx934_pos)
+ if_null rx934_debug, debug_785
+ rx934_cur."!cursor_debug"("PASS", "circumfix:sym<ang>", " at pos=", rx934_pos)
+ debug_785:
.return (rx934_cur)
rx934_restart:
.annotate 'line', 4
- rx934_cur."!cursor_debug"("NEXT ", "circumfix:sym<ang>")
+ if_null rx934_debug, debug_786
+ rx934_cur."!cursor_debug"("NEXT", "circumfix:sym<ang>")
+ debug_786:
rx934_fail:
(rx934_rep, rx934_pos, $I10, $P10) = rx934_cur."!mark_fail"(0)
lt rx934_pos, -1, rx934_done
@@ -12037,14 +13018,16 @@
jump $I10
rx934_done:
rx934_cur."!cursor_fail"()
- rx934_cur."!cursor_debug"("FAIL ", "circumfix:sym<ang>")
+ if_null rx934_debug, debug_787
+ rx934_cur."!cursor_debug"("FAIL", "circumfix:sym<ang>")
+ debug_787:
.return (rx934_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>" :subid("231_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<ang>" :subid("231_1282324002.40722") :method
.annotate 'line', 4
new $P936, "ResizablePMCArray"
push $P936, "<"
@@ -12053,7 +13036,7 @@
.namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("232_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("232_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx939_tgt
.local int rx939_pos
@@ -12061,7 +13044,9 @@
.local int rx939_eos
.local int rx939_rep
.local pmc rx939_cur
+ .local pmc rx939_debug
(rx939_cur, rx939_pos, rx939_tgt, $I10) = self."!cursor_start"()
+ getattribute rx939_debug, rx939_cur, "$!debug"
.lex unicode:"$\x{a2}", rx939_cur
.local pmc match
.lex "$/", match
@@ -12073,7 +13058,9 @@
substr rx939_tgt, rx939_tgt, rx939_off
rx939_start:
eq $I10, 1, rx939_restart
- rx939_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ if_null rx939_debug, debug_788
+ rx939_cur."!cursor_debug"("START", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ debug_788:
$I10 = self.'from'()
ne $I10, -1, rxscan942_done
goto rxscan942_scan
@@ -12102,11 +13089,15 @@
rx939_pos = $P10."pos"()
# rx pass
rx939_cur."!cursor_pass"(rx939_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
- rx939_cur."!cursor_debug"("PASS ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx939_pos)
+ if_null rx939_debug, debug_789
+ rx939_cur."!cursor_debug"("PASS", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx939_pos)
+ debug_789:
.return (rx939_cur)
rx939_restart:
.annotate 'line', 4
- rx939_cur."!cursor_debug"("NEXT ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ if_null rx939_debug, debug_790
+ rx939_cur."!cursor_debug"("NEXT", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ debug_790:
rx939_fail:
(rx939_rep, rx939_pos, $I10, $P10) = rx939_cur."!mark_fail"(0)
lt rx939_pos, -1, rx939_done
@@ -12114,14 +13105,16 @@
jump $I10
rx939_done:
rx939_cur."!cursor_fail"()
- rx939_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ if_null rx939_debug, debug_791
+ rx939_cur."!cursor_debug"("FAIL", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ debug_791:
.return (rx939_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("233_1280467477.44751") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("233_1282324002.40722") :method
.annotate 'line', 4
new $P941, "ResizablePMCArray"
push $P941, unicode:"\x{ab}"
@@ -12130,7 +13123,7 @@
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>" :subid("234_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<{ }>" :subid("234_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx944_tgt
.local int rx944_pos
@@ -12138,7 +13131,9 @@
.local int rx944_eos
.local int rx944_rep
.local pmc rx944_cur
+ .local pmc rx944_debug
(rx944_cur, rx944_pos, rx944_tgt, $I10) = self."!cursor_start"()
+ getattribute rx944_debug, rx944_cur, "$!debug"
.lex unicode:"$\x{a2}", rx944_cur
.local pmc match
.lex "$/", match
@@ -12150,7 +13145,9 @@
substr rx944_tgt, rx944_tgt, rx944_off
rx944_start:
eq $I10, 1, rx944_restart
- rx944_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
+ if_null rx944_debug, debug_792
+ rx944_cur."!cursor_debug"("START", "circumfix:sym<{ }>")
+ debug_792:
$I10 = self.'from'()
ne $I10, -1, rxscan947_done
goto rxscan947_scan
@@ -12179,11 +13176,15 @@
rx944_pos = $P10."pos"()
# rx pass
rx944_cur."!cursor_pass"(rx944_pos, "circumfix:sym<{ }>")
- rx944_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx944_pos)
+ if_null rx944_debug, debug_793
+ rx944_cur."!cursor_debug"("PASS", "circumfix:sym<{ }>", " at pos=", rx944_pos)
+ debug_793:
.return (rx944_cur)
rx944_restart:
.annotate 'line', 4
- rx944_cur."!cursor_debug"("NEXT ", "circumfix:sym<{ }>")
+ if_null rx944_debug, debug_794
+ rx944_cur."!cursor_debug"("NEXT", "circumfix:sym<{ }>")
+ debug_794:
rx944_fail:
(rx944_rep, rx944_pos, $I10, $P10) = rx944_cur."!mark_fail"(0)
lt rx944_pos, -1, rx944_done
@@ -12191,14 +13192,16 @@
jump $I10
rx944_done:
rx944_cur."!cursor_fail"()
- rx944_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>")
+ if_null rx944_debug, debug_795
+ rx944_cur."!cursor_debug"("FAIL", "circumfix:sym<{ }>")
+ debug_795:
.return (rx944_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>" :subid("235_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<{ }>" :subid("235_1282324002.40722") :method
.annotate 'line', 4
new $P946, "ResizablePMCArray"
push $P946, "{"
@@ -12207,7 +13210,7 @@
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>" :subid("236_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<sigil>" :subid("236_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx949_tgt
.local int rx949_pos
@@ -12215,7 +13218,9 @@
.local int rx949_eos
.local int rx949_rep
.local pmc rx949_cur
+ .local pmc rx949_debug
(rx949_cur, rx949_pos, rx949_tgt, $I10) = self."!cursor_start"()
+ getattribute rx949_debug, rx949_cur, "$!debug"
.lex unicode:"$\x{a2}", rx949_cur
.local pmc match
.lex "$/", match
@@ -12227,7 +13232,9 @@
substr rx949_tgt, rx949_tgt, rx949_off
rx949_start:
eq $I10, 1, rx949_restart
- rx949_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
+ if_null rx949_debug, debug_796
+ rx949_cur."!cursor_debug"("START", "circumfix:sym<sigil>")
+ debug_796:
$I10 = self.'from'()
ne $I10, -1, rxscan953_done
goto rxscan953_scan
@@ -12252,8 +13259,8 @@
add $I11, rx949_pos, 1
gt $I11, rx949_eos, rx949_fail
sub $I11, rx949_pos, rx949_off
- substr $S10, rx949_tgt, $I11, 1
- ne $S10, "(", rx949_fail
+ ord $I11, rx949_tgt, $I11
+ ne $I11, 40, rx949_fail
add rx949_pos, 1
# rx subrule "semilist" subtype=capture negate=
rx949_cur."!cursor_pos"(rx949_pos)
@@ -12269,8 +13276,8 @@
add $I11, rx949_pos, 1
gt $I11, rx949_eos, rx949_fail
sub $I11, rx949_pos, rx949_off
- substr $S10, rx949_tgt, $I11, 1
- ne $S10, ")", rx949_fail
+ ord $I11, rx949_tgt, $I11
+ ne $I11, 41, rx949_fail
add rx949_pos, 1
goto alt954_end
alt954_1:
@@ -12289,11 +13296,15 @@
alt954_end:
# rx pass
rx949_cur."!cursor_pass"(rx949_pos, "circumfix:sym<sigil>")
- rx949_cur."!cursor_debug"("PASS ", "circumfix:sym<sigil>", " at pos=", rx949_pos)
+ if_null rx949_debug, debug_797
+ rx949_cur."!cursor_debug"("PASS", "circumfix:sym<sigil>", " at pos=", rx949_pos)
+ debug_797:
.return (rx949_cur)
rx949_restart:
.annotate 'line', 4
- rx949_cur."!cursor_debug"("NEXT ", "circumfix:sym<sigil>")
+ if_null rx949_debug, debug_798
+ rx949_cur."!cursor_debug"("NEXT", "circumfix:sym<sigil>")
+ debug_798:
rx949_fail:
(rx949_rep, rx949_pos, $I10, $P10) = rx949_cur."!mark_fail"(0)
lt rx949_pos, -1, rx949_done
@@ -12301,14 +13312,16 @@
jump $I10
rx949_done:
rx949_cur."!cursor_fail"()
- rx949_cur."!cursor_debug"("FAIL ", "circumfix:sym<sigil>")
+ if_null rx949_debug, debug_799
+ rx949_cur."!cursor_debug"("FAIL", "circumfix:sym<sigil>")
+ debug_799:
.return (rx949_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>" :subid("237_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<sigil>" :subid("237_1282324002.40722") :method
.annotate 'line', 4
$P951 = self."!PREFIX__!subrule"("sigil", "")
new $P952, "ResizablePMCArray"
@@ -12318,7 +13331,7 @@
.namespace ["NQP";"Grammar"]
-.sub "semilist" :subid("238_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "semilist" :subid("238_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 4
.local string rx958_tgt
.local int rx958_pos
@@ -12326,7 +13339,9 @@
.local int rx958_eos
.local int rx958_rep
.local pmc rx958_cur
+ .local pmc rx958_debug
(rx958_cur, rx958_pos, rx958_tgt, $I10) = self."!cursor_start"()
+ getattribute rx958_debug, rx958_cur, "$!debug"
.lex unicode:"$\x{a2}", rx958_cur
.local pmc match
.lex "$/", match
@@ -12338,7 +13353,9 @@
substr rx958_tgt, rx958_tgt, rx958_off
rx958_start:
eq $I10, 1, rx958_restart
- rx958_cur."!cursor_debug"("START ", "semilist")
+ if_null rx958_debug, debug_800
+ rx958_cur."!cursor_debug"("START", "semilist")
+ debug_800:
$I10 = self.'from'()
ne $I10, -1, rxscan962_done
goto rxscan962_scan
@@ -12371,11 +13388,15 @@
rx958_pos = $P10."pos"()
# rx pass
rx958_cur."!cursor_pass"(rx958_pos, "semilist")
- rx958_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx958_pos)
+ if_null rx958_debug, debug_801
+ rx958_cur."!cursor_debug"("PASS", "semilist", " at pos=", rx958_pos)
+ debug_801:
.return (rx958_cur)
rx958_restart:
.annotate 'line', 4
- rx958_cur."!cursor_debug"("NEXT ", "semilist")
+ if_null rx958_debug, debug_802
+ rx958_cur."!cursor_debug"("NEXT", "semilist")
+ debug_802:
rx958_fail:
(rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0)
lt rx958_pos, -1, rx958_done
@@ -12383,14 +13404,16 @@
jump $I10
rx958_done:
rx958_cur."!cursor_fail"()
- rx958_cur."!cursor_debug"("FAIL ", "semilist")
+ if_null rx958_debug, debug_803
+ rx958_cur."!cursor_debug"("FAIL", "semilist")
+ debug_803:
.return (rx958_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist" :subid("239_1280467477.44751") :method
+.sub "!PREFIX__semilist" :subid("239_1282324002.40722") :method
.annotate 'line', 4
$P960 = self."!PREFIX__!subrule"("ws", "")
new $P961, "ResizablePMCArray"
@@ -12400,7 +13423,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infixish" :subid("240_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infixish" :subid("240_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx966_tgt
.local int rx966_pos
@@ -12408,7 +13431,9 @@
.local int rx966_eos
.local int rx966_rep
.local pmc rx966_cur
+ .local pmc rx966_debug
(rx966_cur, rx966_pos, rx966_tgt, $I10) = self."!cursor_start"()
+ getattribute rx966_debug, rx966_cur, "$!debug"
.lex unicode:"$\x{a2}", rx966_cur
.local pmc match
.lex "$/", match
@@ -12420,7 +13445,9 @@
substr rx966_tgt, rx966_tgt, rx966_off
rx966_start:
eq $I10, 1, rx966_restart
- rx966_cur."!cursor_debug"("START ", "infixish")
+ if_null rx966_debug, debug_804
+ rx966_cur."!cursor_debug"("START", "infixish")
+ debug_804:
$I10 = self.'from'()
ne $I10, -1, rxscan969_done
goto rxscan969_scan
@@ -12447,11 +13474,15 @@
rx966_pos = $P10."pos"()
# rx pass
rx966_cur."!cursor_pass"(rx966_pos, "infixish")
- rx966_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx966_pos)
+ if_null rx966_debug, debug_805
+ rx966_cur."!cursor_debug"("PASS", "infixish", " at pos=", rx966_pos)
+ debug_805:
.return (rx966_cur)
rx966_restart:
.annotate 'line', 447
- rx966_cur."!cursor_debug"("NEXT ", "infixish")
+ if_null rx966_debug, debug_806
+ rx966_cur."!cursor_debug"("NEXT", "infixish")
+ debug_806:
rx966_fail:
(rx966_rep, rx966_pos, $I10, $P10) = rx966_cur."!mark_fail"(0)
lt rx966_pos, -1, rx966_done
@@ -12459,14 +13490,16 @@
jump $I10
rx966_done:
rx966_cur."!cursor_fail"()
- rx966_cur."!cursor_debug"("FAIL ", "infixish")
+ if_null rx966_debug, debug_807
+ rx966_cur."!cursor_debug"("FAIL", "infixish")
+ debug_807:
.return (rx966_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish" :subid("241_1280467477.44751") :method
+.sub "!PREFIX__infixish" :subid("241_1282324002.40722") :method
.annotate 'line', 447
new $P968, "ResizablePMCArray"
push $P968, ""
@@ -12475,7 +13508,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infixstopper" :subid("242_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infixstopper" :subid("242_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx971_tgt
.local int rx971_pos
@@ -12483,7 +13516,9 @@
.local int rx971_eos
.local int rx971_rep
.local pmc rx971_cur
+ .local pmc rx971_debug
(rx971_cur, rx971_pos, rx971_tgt, $I10) = self."!cursor_start"()
+ getattribute rx971_debug, rx971_cur, "$!debug"
.lex unicode:"$\x{a2}", rx971_cur
.local pmc match
.lex "$/", match
@@ -12495,7 +13530,9 @@
substr rx971_tgt, rx971_tgt, rx971_off
rx971_start:
eq $I10, 1, rx971_restart
- rx971_cur."!cursor_debug"("START ", "infixstopper")
+ if_null rx971_debug, debug_808
+ rx971_cur."!cursor_debug"("START", "infixstopper")
+ debug_808:
$I10 = self.'from'()
ne $I10, -1, rxscan974_done
goto rxscan974_scan
@@ -12515,11 +13552,15 @@
unless $P10, rx971_fail
# rx pass
rx971_cur."!cursor_pass"(rx971_pos, "infixstopper")
- rx971_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx971_pos)
+ if_null rx971_debug, debug_809
+ rx971_cur."!cursor_debug"("PASS", "infixstopper", " at pos=", rx971_pos)
+ debug_809:
.return (rx971_cur)
rx971_restart:
.annotate 'line', 447
- rx971_cur."!cursor_debug"("NEXT ", "infixstopper")
+ if_null rx971_debug, debug_810
+ rx971_cur."!cursor_debug"("NEXT", "infixstopper")
+ debug_810:
rx971_fail:
(rx971_rep, rx971_pos, $I10, $P10) = rx971_cur."!mark_fail"(0)
lt rx971_pos, -1, rx971_done
@@ -12527,14 +13568,16 @@
jump $I10
rx971_done:
rx971_cur."!cursor_fail"()
- rx971_cur."!cursor_debug"("FAIL ", "infixstopper")
+ if_null rx971_debug, debug_811
+ rx971_cur."!cursor_debug"("FAIL", "infixstopper")
+ debug_811:
.return (rx971_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper" :subid("243_1280467477.44751") :method
+.sub "!PREFIX__infixstopper" :subid("243_1282324002.40722") :method
.annotate 'line', 447
new $P973, "ResizablePMCArray"
push $P973, ""
@@ -12543,7 +13586,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>" :subid("244_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<[ ]>" :subid("244_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx976_tgt
.local int rx976_pos
@@ -12551,7 +13594,9 @@
.local int rx976_eos
.local int rx976_rep
.local pmc rx976_cur
+ .local pmc rx976_debug
(rx976_cur, rx976_pos, rx976_tgt, $I10) = self."!cursor_start"()
+ getattribute rx976_debug, rx976_cur, "$!debug"
.lex unicode:"$\x{a2}", rx976_cur
.local pmc match
.lex "$/", match
@@ -12563,7 +13608,9 @@
substr rx976_tgt, rx976_tgt, rx976_off
rx976_start:
eq $I10, 1, rx976_restart
- rx976_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+ if_null rx976_debug, debug_812
+ rx976_cur."!cursor_debug"("START", "postcircumfix:sym<[ ]>")
+ debug_812:
$I10 = self.'from'()
ne $I10, -1, rxscan980_done
goto rxscan980_scan
@@ -12581,8 +13628,8 @@
add $I11, rx976_pos, 1
gt $I11, rx976_eos, rx976_fail
sub $I11, rx976_pos, rx976_off
- substr $S10, rx976_tgt, $I11, 1
- ne $S10, "[", rx976_fail
+ ord $I11, rx976_tgt, $I11
+ ne $I11, 91, rx976_fail
add rx976_pos, 1
# rx subrule "ws" subtype=method negate=
rx976_cur."!cursor_pos"(rx976_pos)
@@ -12600,8 +13647,8 @@
add $I11, rx976_pos, 1
gt $I11, rx976_eos, rx976_fail
sub $I11, rx976_pos, rx976_off
- substr $S10, rx976_tgt, $I11, 1
- ne $S10, "]", rx976_fail
+ ord $I11, rx976_tgt, $I11
+ ne $I11, 93, rx976_fail
add rx976_pos, 1
.annotate 'line', 471
# rx subrule "O" subtype=capture negate=
@@ -12614,11 +13661,15 @@
.annotate 'line', 469
# rx pass
rx976_cur."!cursor_pass"(rx976_pos, "postcircumfix:sym<[ ]>")
- rx976_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos)
+ if_null rx976_debug, debug_813
+ rx976_cur."!cursor_debug"("PASS", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos)
+ debug_813:
.return (rx976_cur)
rx976_restart:
.annotate 'line', 447
- rx976_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<[ ]>")
+ if_null rx976_debug, debug_814
+ rx976_cur."!cursor_debug"("NEXT", "postcircumfix:sym<[ ]>")
+ debug_814:
rx976_fail:
(rx976_rep, rx976_pos, $I10, $P10) = rx976_cur."!mark_fail"(0)
lt rx976_pos, -1, rx976_done
@@ -12626,14 +13677,16 @@
jump $I10
rx976_done:
rx976_cur."!cursor_fail"()
- rx976_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>")
+ if_null rx976_debug, debug_815
+ rx976_cur."!cursor_debug"("FAIL", "postcircumfix:sym<[ ]>")
+ debug_815:
.return (rx976_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("245_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("245_1282324002.40722") :method
.annotate 'line', 447
$P978 = self."!PREFIX__!subrule"("ws", "[")
new $P979, "ResizablePMCArray"
@@ -12643,7 +13696,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>" :subid("246_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<{ }>" :subid("246_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx982_tgt
.local int rx982_pos
@@ -12651,7 +13704,9 @@
.local int rx982_eos
.local int rx982_rep
.local pmc rx982_cur
+ .local pmc rx982_debug
(rx982_cur, rx982_pos, rx982_tgt, $I10) = self."!cursor_start"()
+ getattribute rx982_debug, rx982_cur, "$!debug"
.lex unicode:"$\x{a2}", rx982_cur
.local pmc match
.lex "$/", match
@@ -12663,7 +13718,9 @@
substr rx982_tgt, rx982_tgt, rx982_off
rx982_start:
eq $I10, 1, rx982_restart
- rx982_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+ if_null rx982_debug, debug_816
+ rx982_cur."!cursor_debug"("START", "postcircumfix:sym<{ }>")
+ debug_816:
$I10 = self.'from'()
ne $I10, -1, rxscan986_done
goto rxscan986_scan
@@ -12681,8 +13738,8 @@
add $I11, rx982_pos, 1
gt $I11, rx982_eos, rx982_fail
sub $I11, rx982_pos, rx982_off
- substr $S10, rx982_tgt, $I11, 1
- ne $S10, "{", rx982_fail
+ ord $I11, rx982_tgt, $I11
+ ne $I11, 123, rx982_fail
add rx982_pos, 1
# rx subrule "ws" subtype=method negate=
rx982_cur."!cursor_pos"(rx982_pos)
@@ -12700,8 +13757,8 @@
add $I11, rx982_pos, 1
gt $I11, rx982_eos, rx982_fail
sub $I11, rx982_pos, rx982_off
- substr $S10, rx982_tgt, $I11, 1
- ne $S10, "}", rx982_fail
+ ord $I11, rx982_tgt, $I11
+ ne $I11, 125, rx982_fail
add rx982_pos, 1
.annotate 'line', 476
# rx subrule "O" subtype=capture negate=
@@ -12714,11 +13771,15 @@
.annotate 'line', 474
# rx pass
rx982_cur."!cursor_pass"(rx982_pos, "postcircumfix:sym<{ }>")
- rx982_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx982_pos)
+ if_null rx982_debug, debug_817
+ rx982_cur."!cursor_debug"("PASS", "postcircumfix:sym<{ }>", " at pos=", rx982_pos)
+ debug_817:
.return (rx982_cur)
rx982_restart:
.annotate 'line', 447
- rx982_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<{ }>")
+ if_null rx982_debug, debug_818
+ rx982_cur."!cursor_debug"("NEXT", "postcircumfix:sym<{ }>")
+ debug_818:
rx982_fail:
(rx982_rep, rx982_pos, $I10, $P10) = rx982_cur."!mark_fail"(0)
lt rx982_pos, -1, rx982_done
@@ -12726,14 +13787,16 @@
jump $I10
rx982_done:
rx982_cur."!cursor_fail"()
- rx982_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>")
+ if_null rx982_debug, debug_819
+ rx982_cur."!cursor_debug"("FAIL", "postcircumfix:sym<{ }>")
+ debug_819:
.return (rx982_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("247_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("247_1282324002.40722") :method
.annotate 'line', 447
$P984 = self."!PREFIX__!subrule"("ws", "{")
new $P985, "ResizablePMCArray"
@@ -12743,7 +13806,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>" :subid("248_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<ang>" :subid("248_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx988_tgt
.local int rx988_pos
@@ -12751,7 +13814,9 @@
.local int rx988_eos
.local int rx988_rep
.local pmc rx988_cur
+ .local pmc rx988_debug
(rx988_cur, rx988_pos, rx988_tgt, $I10) = self."!cursor_start"()
+ getattribute rx988_debug, rx988_cur, "$!debug"
.lex unicode:"$\x{a2}", rx988_cur
.local pmc match
.lex "$/", match
@@ -12763,7 +13828,9 @@
substr rx988_tgt, rx988_tgt, rx988_off
rx988_start:
eq $I10, 1, rx988_restart
- rx988_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
+ if_null rx988_debug, debug_820
+ rx988_cur."!cursor_debug"("START", "postcircumfix:sym<ang>")
+ debug_820:
$I10 = self.'from'()
ne $I10, -1, rxscan991_done
goto rxscan991_scan
@@ -12801,11 +13868,15 @@
.annotate 'line', 479
# rx pass
rx988_cur."!cursor_pass"(rx988_pos, "postcircumfix:sym<ang>")
- rx988_cur."!cursor_debug"("PASS ", "postcircumfix:sym<ang>", " at pos=", rx988_pos)
+ if_null rx988_debug, debug_821
+ rx988_cur."!cursor_debug"("PASS", "postcircumfix:sym<ang>", " at pos=", rx988_pos)
+ debug_821:
.return (rx988_cur)
rx988_restart:
.annotate 'line', 447
- rx988_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<ang>")
+ if_null rx988_debug, debug_822
+ rx988_cur."!cursor_debug"("NEXT", "postcircumfix:sym<ang>")
+ debug_822:
rx988_fail:
(rx988_rep, rx988_pos, $I10, $P10) = rx988_cur."!mark_fail"(0)
lt rx988_pos, -1, rx988_done
@@ -12813,14 +13884,16 @@
jump $I10
rx988_done:
rx988_cur."!cursor_fail"()
- rx988_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<ang>")
+ if_null rx988_debug, debug_823
+ rx988_cur."!cursor_debug"("FAIL", "postcircumfix:sym<ang>")
+ debug_823:
.return (rx988_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>" :subid("249_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<ang>" :subid("249_1282324002.40722") :method
.annotate 'line', 447
new $P990, "ResizablePMCArray"
push $P990, "<"
@@ -12829,7 +13902,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>" :subid("250_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<( )>" :subid("250_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx993_tgt
.local int rx993_pos
@@ -12837,7 +13910,9 @@
.local int rx993_eos
.local int rx993_rep
.local pmc rx993_cur
+ .local pmc rx993_debug
(rx993_cur, rx993_pos, rx993_tgt, $I10) = self."!cursor_start"()
+ getattribute rx993_debug, rx993_cur, "$!debug"
.lex unicode:"$\x{a2}", rx993_cur
.local pmc match
.lex "$/", match
@@ -12849,7 +13924,9 @@
substr rx993_tgt, rx993_tgt, rx993_off
rx993_start:
eq $I10, 1, rx993_restart
- rx993_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
+ if_null rx993_debug, debug_824
+ rx993_cur."!cursor_debug"("START", "postcircumfix:sym<( )>")
+ debug_824:
$I10 = self.'from'()
ne $I10, -1, rxscan997_done
goto rxscan997_scan
@@ -12867,8 +13944,8 @@
add $I11, rx993_pos, 1
gt $I11, rx993_eos, rx993_fail
sub $I11, rx993_pos, rx993_off
- substr $S10, rx993_tgt, $I11, 1
- ne $S10, "(", rx993_fail
+ ord $I11, rx993_tgt, $I11
+ ne $I11, 40, rx993_fail
add rx993_pos, 1
# rx subrule "ws" subtype=method negate=
rx993_cur."!cursor_pos"(rx993_pos)
@@ -12886,8 +13963,8 @@
add $I11, rx993_pos, 1
gt $I11, rx993_eos, rx993_fail
sub $I11, rx993_pos, rx993_off
- substr $S10, rx993_tgt, $I11, 1
- ne $S10, ")", rx993_fail
+ ord $I11, rx993_tgt, $I11
+ ne $I11, 41, rx993_fail
add rx993_pos, 1
.annotate 'line', 486
# rx subrule "O" subtype=capture negate=
@@ -12900,11 +13977,15 @@
.annotate 'line', 484
# rx pass
rx993_cur."!cursor_pass"(rx993_pos, "postcircumfix:sym<( )>")
- rx993_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx993_pos)
+ if_null rx993_debug, debug_825
+ rx993_cur."!cursor_debug"("PASS", "postcircumfix:sym<( )>", " at pos=", rx993_pos)
+ debug_825:
.return (rx993_cur)
rx993_restart:
.annotate 'line', 447
- rx993_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<( )>")
+ if_null rx993_debug, debug_826
+ rx993_cur."!cursor_debug"("NEXT", "postcircumfix:sym<( )>")
+ debug_826:
rx993_fail:
(rx993_rep, rx993_pos, $I10, $P10) = rx993_cur."!mark_fail"(0)
lt rx993_pos, -1, rx993_done
@@ -12912,14 +13993,16 @@
jump $I10
rx993_done:
rx993_cur."!cursor_fail"()
- rx993_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>")
+ if_null rx993_debug, debug_827
+ rx993_cur."!cursor_debug"("FAIL", "postcircumfix:sym<( )>")
+ debug_827:
.return (rx993_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>" :subid("251_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<( )>" :subid("251_1282324002.40722") :method
.annotate 'line', 447
$P995 = self."!PREFIX__!subrule"("ws", "(")
new $P996, "ResizablePMCArray"
@@ -12929,7 +14012,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>" :subid("252_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<.>" :subid("252_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx999_tgt
.local int rx999_pos
@@ -12937,7 +14020,9 @@
.local int rx999_eos
.local int rx999_rep
.local pmc rx999_cur
+ .local pmc rx999_debug
(rx999_cur, rx999_pos, rx999_tgt, $I10) = self."!cursor_start"()
+ getattribute rx999_debug, rx999_cur, "$!debug"
.lex unicode:"$\x{a2}", rx999_cur
.local pmc match
.lex "$/", match
@@ -12949,7 +14034,9 @@
substr rx999_tgt, rx999_tgt, rx999_off
rx999_start:
eq $I10, 1, rx999_restart
- rx999_cur."!cursor_debug"("START ", "postfix:sym<.>")
+ if_null rx999_debug, debug_828
+ rx999_cur."!cursor_debug"("START", "postfix:sym<.>")
+ debug_828:
$I10 = self.'from'()
ne $I10, -1, rxscan1003_done
goto rxscan1003_scan
@@ -12979,11 +14066,15 @@
rx999_pos = $P10."pos"()
# rx pass
rx999_cur."!cursor_pass"(rx999_pos, "postfix:sym<.>")
- rx999_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx999_pos)
+ if_null rx999_debug, debug_829
+ rx999_cur."!cursor_debug"("PASS", "postfix:sym<.>", " at pos=", rx999_pos)
+ debug_829:
.return (rx999_cur)
rx999_restart:
.annotate 'line', 447
- rx999_cur."!cursor_debug"("NEXT ", "postfix:sym<.>")
+ if_null rx999_debug, debug_830
+ rx999_cur."!cursor_debug"("NEXT", "postfix:sym<.>")
+ debug_830:
rx999_fail:
(rx999_rep, rx999_pos, $I10, $P10) = rx999_cur."!mark_fail"(0)
lt rx999_pos, -1, rx999_done
@@ -12991,14 +14082,16 @@
jump $I10
rx999_done:
rx999_cur."!cursor_fail"()
- rx999_cur."!cursor_debug"("FAIL ", "postfix:sym<.>")
+ if_null rx999_debug, debug_831
+ rx999_cur."!cursor_debug"("FAIL", "postfix:sym<.>")
+ debug_831:
.return (rx999_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>" :subid("253_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<.>" :subid("253_1282324002.40722") :method
.annotate 'line', 447
$P1001 = self."!PREFIX__!subrule"("dotty", "")
new $P1002, "ResizablePMCArray"
@@ -13008,7 +14101,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>" :subid("254_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<++>" :subid("254_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1005_tgt
.local int rx1005_pos
@@ -13016,7 +14109,9 @@
.local int rx1005_eos
.local int rx1005_rep
.local pmc rx1005_cur
+ .local pmc rx1005_debug
(rx1005_cur, rx1005_pos, rx1005_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1005_debug, rx1005_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1005_cur
.local pmc match
.lex "$/", match
@@ -13028,7 +14123,9 @@
substr rx1005_tgt, rx1005_tgt, rx1005_off
rx1005_start:
eq $I10, 1, rx1005_restart
- rx1005_cur."!cursor_debug"("START ", "prefix:sym<++>")
+ if_null rx1005_debug, debug_832
+ rx1005_cur."!cursor_debug"("START", "prefix:sym<++>")
+ debug_832:
$I10 = self.'from'()
ne $I10, -1, rxscan1009_done
goto rxscan1009_scan
@@ -13072,11 +14169,15 @@
rx1005_pos = $P10."pos"()
# rx pass
rx1005_cur."!cursor_pass"(rx1005_pos, "prefix:sym<++>")
- rx1005_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx1005_pos)
+ if_null rx1005_debug, debug_833
+ rx1005_cur."!cursor_debug"("PASS", "prefix:sym<++>", " at pos=", rx1005_pos)
+ debug_833:
.return (rx1005_cur)
rx1005_restart:
.annotate 'line', 447
- rx1005_cur."!cursor_debug"("NEXT ", "prefix:sym<++>")
+ if_null rx1005_debug, debug_834
+ rx1005_cur."!cursor_debug"("NEXT", "prefix:sym<++>")
+ debug_834:
rx1005_fail:
(rx1005_rep, rx1005_pos, $I10, $P10) = rx1005_cur."!mark_fail"(0)
lt rx1005_pos, -1, rx1005_done
@@ -13084,14 +14185,16 @@
jump $I10
rx1005_done:
rx1005_cur."!cursor_fail"()
- rx1005_cur."!cursor_debug"("FAIL ", "prefix:sym<++>")
+ if_null rx1005_debug, debug_835
+ rx1005_cur."!cursor_debug"("FAIL", "prefix:sym<++>")
+ debug_835:
.return (rx1005_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>" :subid("255_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<++>" :subid("255_1282324002.40722") :method
.annotate 'line', 447
$P1007 = self."!PREFIX__!subrule"("O", "++")
new $P1008, "ResizablePMCArray"
@@ -13101,7 +14204,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->" :subid("256_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<-->" :subid("256_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1012_tgt
.local int rx1012_pos
@@ -13109,7 +14212,9 @@
.local int rx1012_eos
.local int rx1012_rep
.local pmc rx1012_cur
+ .local pmc rx1012_debug
(rx1012_cur, rx1012_pos, rx1012_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1012_debug, rx1012_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1012_cur
.local pmc match
.lex "$/", match
@@ -13121,7 +14226,9 @@
substr rx1012_tgt, rx1012_tgt, rx1012_off
rx1012_start:
eq $I10, 1, rx1012_restart
- rx1012_cur."!cursor_debug"("START ", "prefix:sym<-->")
+ if_null rx1012_debug, debug_836
+ rx1012_cur."!cursor_debug"("START", "prefix:sym<-->")
+ debug_836:
$I10 = self.'from'()
ne $I10, -1, rxscan1016_done
goto rxscan1016_scan
@@ -13165,11 +14272,15 @@
rx1012_pos = $P10."pos"()
# rx pass
rx1012_cur."!cursor_pass"(rx1012_pos, "prefix:sym<-->")
- rx1012_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx1012_pos)
+ if_null rx1012_debug, debug_837
+ rx1012_cur."!cursor_debug"("PASS", "prefix:sym<-->", " at pos=", rx1012_pos)
+ debug_837:
.return (rx1012_cur)
rx1012_restart:
.annotate 'line', 447
- rx1012_cur."!cursor_debug"("NEXT ", "prefix:sym<-->")
+ if_null rx1012_debug, debug_838
+ rx1012_cur."!cursor_debug"("NEXT", "prefix:sym<-->")
+ debug_838:
rx1012_fail:
(rx1012_rep, rx1012_pos, $I10, $P10) = rx1012_cur."!mark_fail"(0)
lt rx1012_pos, -1, rx1012_done
@@ -13177,14 +14288,16 @@
jump $I10
rx1012_done:
rx1012_cur."!cursor_fail"()
- rx1012_cur."!cursor_debug"("FAIL ", "prefix:sym<-->")
+ if_null rx1012_debug, debug_839
+ rx1012_cur."!cursor_debug"("FAIL", "prefix:sym<-->")
+ debug_839:
.return (rx1012_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->" :subid("257_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<-->" :subid("257_1282324002.40722") :method
.annotate 'line', 447
$P1014 = self."!PREFIX__!subrule"("O", "--")
new $P1015, "ResizablePMCArray"
@@ -13194,7 +14307,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>" :subid("258_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<++>" :subid("258_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1019_tgt
.local int rx1019_pos
@@ -13202,7 +14315,9 @@
.local int rx1019_eos
.local int rx1019_rep
.local pmc rx1019_cur
+ .local pmc rx1019_debug
(rx1019_cur, rx1019_pos, rx1019_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1019_debug, rx1019_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1019_cur
.local pmc match
.lex "$/", match
@@ -13214,7 +14329,9 @@
substr rx1019_tgt, rx1019_tgt, rx1019_off
rx1019_start:
eq $I10, 1, rx1019_restart
- rx1019_cur."!cursor_debug"("START ", "postfix:sym<++>")
+ if_null rx1019_debug, debug_840
+ rx1019_cur."!cursor_debug"("START", "postfix:sym<++>")
+ debug_840:
$I10 = self.'from'()
ne $I10, -1, rxscan1023_done
goto rxscan1023_scan
@@ -13258,11 +14375,15 @@
rx1019_pos = $P10."pos"()
# rx pass
rx1019_cur."!cursor_pass"(rx1019_pos, "postfix:sym<++>")
- rx1019_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx1019_pos)
+ if_null rx1019_debug, debug_841
+ rx1019_cur."!cursor_debug"("PASS", "postfix:sym<++>", " at pos=", rx1019_pos)
+ debug_841:
.return (rx1019_cur)
rx1019_restart:
.annotate 'line', 447
- rx1019_cur."!cursor_debug"("NEXT ", "postfix:sym<++>")
+ if_null rx1019_debug, debug_842
+ rx1019_cur."!cursor_debug"("NEXT", "postfix:sym<++>")
+ debug_842:
rx1019_fail:
(rx1019_rep, rx1019_pos, $I10, $P10) = rx1019_cur."!mark_fail"(0)
lt rx1019_pos, -1, rx1019_done
@@ -13270,14 +14391,16 @@
jump $I10
rx1019_done:
rx1019_cur."!cursor_fail"()
- rx1019_cur."!cursor_debug"("FAIL ", "postfix:sym<++>")
+ if_null rx1019_debug, debug_843
+ rx1019_cur."!cursor_debug"("FAIL", "postfix:sym<++>")
+ debug_843:
.return (rx1019_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>" :subid("259_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<++>" :subid("259_1282324002.40722") :method
.annotate 'line', 447
$P1021 = self."!PREFIX__!subrule"("O", "++")
new $P1022, "ResizablePMCArray"
@@ -13287,7 +14410,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->" :subid("260_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<-->" :subid("260_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1026_tgt
.local int rx1026_pos
@@ -13295,7 +14418,9 @@
.local int rx1026_eos
.local int rx1026_rep
.local pmc rx1026_cur
+ .local pmc rx1026_debug
(rx1026_cur, rx1026_pos, rx1026_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1026_debug, rx1026_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1026_cur
.local pmc match
.lex "$/", match
@@ -13307,7 +14432,9 @@
substr rx1026_tgt, rx1026_tgt, rx1026_off
rx1026_start:
eq $I10, 1, rx1026_restart
- rx1026_cur."!cursor_debug"("START ", "postfix:sym<-->")
+ if_null rx1026_debug, debug_844
+ rx1026_cur."!cursor_debug"("START", "postfix:sym<-->")
+ debug_844:
$I10 = self.'from'()
ne $I10, -1, rxscan1030_done
goto rxscan1030_scan
@@ -13351,11 +14478,15 @@
rx1026_pos = $P10."pos"()
# rx pass
rx1026_cur."!cursor_pass"(rx1026_pos, "postfix:sym<-->")
- rx1026_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx1026_pos)
+ if_null rx1026_debug, debug_845
+ rx1026_cur."!cursor_debug"("PASS", "postfix:sym<-->", " at pos=", rx1026_pos)
+ debug_845:
.return (rx1026_cur)
rx1026_restart:
.annotate 'line', 447
- rx1026_cur."!cursor_debug"("NEXT ", "postfix:sym<-->")
+ if_null rx1026_debug, debug_846
+ rx1026_cur."!cursor_debug"("NEXT", "postfix:sym<-->")
+ debug_846:
rx1026_fail:
(rx1026_rep, rx1026_pos, $I10, $P10) = rx1026_cur."!mark_fail"(0)
lt rx1026_pos, -1, rx1026_done
@@ -13363,14 +14494,16 @@
jump $I10
rx1026_done:
rx1026_cur."!cursor_fail"()
- rx1026_cur."!cursor_debug"("FAIL ", "postfix:sym<-->")
+ if_null rx1026_debug, debug_847
+ rx1026_cur."!cursor_debug"("FAIL", "postfix:sym<-->")
+ debug_847:
.return (rx1026_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->" :subid("261_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<-->" :subid("261_1282324002.40722") :method
.annotate 'line', 447
$P1028 = self."!PREFIX__!subrule"("O", "--")
new $P1029, "ResizablePMCArray"
@@ -13380,7 +14513,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>" :subid("262_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<**>" :subid("262_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1033_tgt
.local int rx1033_pos
@@ -13388,7 +14521,9 @@
.local int rx1033_eos
.local int rx1033_rep
.local pmc rx1033_cur
+ .local pmc rx1033_debug
(rx1033_cur, rx1033_pos, rx1033_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1033_debug, rx1033_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1033_cur
.local pmc match
.lex "$/", match
@@ -13400,7 +14535,9 @@
substr rx1033_tgt, rx1033_tgt, rx1033_off
rx1033_start:
eq $I10, 1, rx1033_restart
- rx1033_cur."!cursor_debug"("START ", "infix:sym<**>")
+ if_null rx1033_debug, debug_848
+ rx1033_cur."!cursor_debug"("START", "infix:sym<**>")
+ debug_848:
$I10 = self.'from'()
ne $I10, -1, rxscan1037_done
goto rxscan1037_scan
@@ -13444,11 +14581,15 @@
rx1033_pos = $P10."pos"()
# rx pass
rx1033_cur."!cursor_pass"(rx1033_pos, "infix:sym<**>")
- rx1033_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx1033_pos)
+ if_null rx1033_debug, debug_849
+ rx1033_cur."!cursor_debug"("PASS", "infix:sym<**>", " at pos=", rx1033_pos)
+ debug_849:
.return (rx1033_cur)
rx1033_restart:
.annotate 'line', 447
- rx1033_cur."!cursor_debug"("NEXT ", "infix:sym<**>")
+ if_null rx1033_debug, debug_850
+ rx1033_cur."!cursor_debug"("NEXT", "infix:sym<**>")
+ debug_850:
rx1033_fail:
(rx1033_rep, rx1033_pos, $I10, $P10) = rx1033_cur."!mark_fail"(0)
lt rx1033_pos, -1, rx1033_done
@@ -13456,14 +14597,16 @@
jump $I10
rx1033_done:
rx1033_cur."!cursor_fail"()
- rx1033_cur."!cursor_debug"("FAIL ", "infix:sym<**>")
+ if_null rx1033_debug, debug_851
+ rx1033_cur."!cursor_debug"("FAIL", "infix:sym<**>")
+ debug_851:
.return (rx1033_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>" :subid("263_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<**>" :subid("263_1282324002.40722") :method
.annotate 'line', 447
$P1035 = self."!PREFIX__!subrule"("O", "**")
new $P1036, "ResizablePMCArray"
@@ -13473,7 +14616,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>" :subid("264_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<+>" :subid("264_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1040_tgt
.local int rx1040_pos
@@ -13481,7 +14624,9 @@
.local int rx1040_eos
.local int rx1040_rep
.local pmc rx1040_cur
+ .local pmc rx1040_debug
(rx1040_cur, rx1040_pos, rx1040_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1040_debug, rx1040_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1040_cur
.local pmc match
.lex "$/", match
@@ -13493,7 +14638,9 @@
substr rx1040_tgt, rx1040_tgt, rx1040_off
rx1040_start:
eq $I10, 1, rx1040_restart
- rx1040_cur."!cursor_debug"("START ", "prefix:sym<+>")
+ if_null rx1040_debug, debug_852
+ rx1040_cur."!cursor_debug"("START", "prefix:sym<+>")
+ debug_852:
$I10 = self.'from'()
ne $I10, -1, rxscan1044_done
goto rxscan1044_scan
@@ -13514,8 +14661,8 @@
add $I11, rx1040_pos, 1
gt $I11, rx1040_eos, rx1040_fail
sub $I11, rx1040_pos, rx1040_off
- substr $S10, rx1040_tgt, $I11, 1
- ne $S10, "+", rx1040_fail
+ ord $I11, rx1040_tgt, $I11
+ ne $I11, 43, rx1040_fail
add rx1040_pos, 1
set_addr $I10, rxcap_1045_fail
($I12, $I11) = rx1040_cur."!mark_peek"($I10)
@@ -13537,11 +14684,15 @@
rx1040_pos = $P10."pos"()
# rx pass
rx1040_cur."!cursor_pass"(rx1040_pos, "prefix:sym<+>")
- rx1040_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx1040_pos)
+ if_null rx1040_debug, debug_853
+ rx1040_cur."!cursor_debug"("PASS", "prefix:sym<+>", " at pos=", rx1040_pos)
+ debug_853:
.return (rx1040_cur)
rx1040_restart:
.annotate 'line', 447
- rx1040_cur."!cursor_debug"("NEXT ", "prefix:sym<+>")
+ if_null rx1040_debug, debug_854
+ rx1040_cur."!cursor_debug"("NEXT", "prefix:sym<+>")
+ debug_854:
rx1040_fail:
(rx1040_rep, rx1040_pos, $I10, $P10) = rx1040_cur."!mark_fail"(0)
lt rx1040_pos, -1, rx1040_done
@@ -13549,14 +14700,16 @@
jump $I10
rx1040_done:
rx1040_cur."!cursor_fail"()
- rx1040_cur."!cursor_debug"("FAIL ", "prefix:sym<+>")
+ if_null rx1040_debug, debug_855
+ rx1040_cur."!cursor_debug"("FAIL", "prefix:sym<+>")
+ debug_855:
.return (rx1040_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>" :subid("265_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<+>" :subid("265_1282324002.40722") :method
.annotate 'line', 447
$P1042 = self."!PREFIX__!subrule"("O", "+")
new $P1043, "ResizablePMCArray"
@@ -13566,7 +14719,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>" :subid("266_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<~>" :subid("266_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1047_tgt
.local int rx1047_pos
@@ -13574,7 +14727,9 @@
.local int rx1047_eos
.local int rx1047_rep
.local pmc rx1047_cur
+ .local pmc rx1047_debug
(rx1047_cur, rx1047_pos, rx1047_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1047_debug, rx1047_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1047_cur
.local pmc match
.lex "$/", match
@@ -13586,7 +14741,9 @@
substr rx1047_tgt, rx1047_tgt, rx1047_off
rx1047_start:
eq $I10, 1, rx1047_restart
- rx1047_cur."!cursor_debug"("START ", "prefix:sym<~>")
+ if_null rx1047_debug, debug_856
+ rx1047_cur."!cursor_debug"("START", "prefix:sym<~>")
+ debug_856:
$I10 = self.'from'()
ne $I10, -1, rxscan1051_done
goto rxscan1051_scan
@@ -13607,8 +14764,8 @@
add $I11, rx1047_pos, 1
gt $I11, rx1047_eos, rx1047_fail
sub $I11, rx1047_pos, rx1047_off
- substr $S10, rx1047_tgt, $I11, 1
- ne $S10, "~", rx1047_fail
+ ord $I11, rx1047_tgt, $I11
+ ne $I11, 126, rx1047_fail
add rx1047_pos, 1
set_addr $I10, rxcap_1052_fail
($I12, $I11) = rx1047_cur."!mark_peek"($I10)
@@ -13630,11 +14787,15 @@
rx1047_pos = $P10."pos"()
# rx pass
rx1047_cur."!cursor_pass"(rx1047_pos, "prefix:sym<~>")
- rx1047_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx1047_pos)
+ if_null rx1047_debug, debug_857
+ rx1047_cur."!cursor_debug"("PASS", "prefix:sym<~>", " at pos=", rx1047_pos)
+ debug_857:
.return (rx1047_cur)
rx1047_restart:
.annotate 'line', 447
- rx1047_cur."!cursor_debug"("NEXT ", "prefix:sym<~>")
+ if_null rx1047_debug, debug_858
+ rx1047_cur."!cursor_debug"("NEXT", "prefix:sym<~>")
+ debug_858:
rx1047_fail:
(rx1047_rep, rx1047_pos, $I10, $P10) = rx1047_cur."!mark_fail"(0)
lt rx1047_pos, -1, rx1047_done
@@ -13642,14 +14803,16 @@
jump $I10
rx1047_done:
rx1047_cur."!cursor_fail"()
- rx1047_cur."!cursor_debug"("FAIL ", "prefix:sym<~>")
+ if_null rx1047_debug, debug_859
+ rx1047_cur."!cursor_debug"("FAIL", "prefix:sym<~>")
+ debug_859:
.return (rx1047_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>" :subid("267_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<~>" :subid("267_1282324002.40722") :method
.annotate 'line', 447
$P1049 = self."!PREFIX__!subrule"("O", "~")
new $P1050, "ResizablePMCArray"
@@ -13659,7 +14822,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->" :subid("268_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<->" :subid("268_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1054_tgt
.local int rx1054_pos
@@ -13667,7 +14830,9 @@
.local int rx1054_eos
.local int rx1054_rep
.local pmc rx1054_cur
+ .local pmc rx1054_debug
(rx1054_cur, rx1054_pos, rx1054_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1054_debug, rx1054_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1054_cur
.local pmc match
.lex "$/", match
@@ -13679,7 +14844,9 @@
substr rx1054_tgt, rx1054_tgt, rx1054_off
rx1054_start:
eq $I10, 1, rx1054_restart
- rx1054_cur."!cursor_debug"("START ", "prefix:sym<->")
+ if_null rx1054_debug, debug_860
+ rx1054_cur."!cursor_debug"("START", "prefix:sym<->")
+ debug_860:
$I10 = self.'from'()
ne $I10, -1, rxscan1057_done
goto rxscan1057_scan
@@ -13700,8 +14867,8 @@
add $I11, rx1054_pos, 1
gt $I11, rx1054_eos, rx1054_fail
sub $I11, rx1054_pos, rx1054_off
- substr $S10, rx1054_tgt, $I11, 1
- ne $S10, "-", rx1054_fail
+ ord $I11, rx1054_tgt, $I11
+ ne $I11, 45, rx1054_fail
add rx1054_pos, 1
set_addr $I10, rxcap_1058_fail
($I12, $I11) = rx1054_cur."!mark_peek"($I10)
@@ -13733,11 +14900,15 @@
rx1054_pos = $P10."pos"()
# rx pass
rx1054_cur."!cursor_pass"(rx1054_pos, "prefix:sym<->")
- rx1054_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx1054_pos)
+ if_null rx1054_debug, debug_861
+ rx1054_cur."!cursor_debug"("PASS", "prefix:sym<->", " at pos=", rx1054_pos)
+ debug_861:
.return (rx1054_cur)
rx1054_restart:
.annotate 'line', 447
- rx1054_cur."!cursor_debug"("NEXT ", "prefix:sym<->")
+ if_null rx1054_debug, debug_862
+ rx1054_cur."!cursor_debug"("NEXT", "prefix:sym<->")
+ debug_862:
rx1054_fail:
(rx1054_rep, rx1054_pos, $I10, $P10) = rx1054_cur."!mark_fail"(0)
lt rx1054_pos, -1, rx1054_done
@@ -13745,14 +14916,16 @@
jump $I10
rx1054_done:
rx1054_cur."!cursor_fail"()
- rx1054_cur."!cursor_debug"("FAIL ", "prefix:sym<->")
+ if_null rx1054_debug, debug_863
+ rx1054_cur."!cursor_debug"("FAIL", "prefix:sym<->")
+ debug_863:
.return (rx1054_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->" :subid("269_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<->" :subid("269_1282324002.40722") :method
.annotate 'line', 447
new $P1056, "ResizablePMCArray"
push $P1056, "-"
@@ -13761,7 +14934,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>" :subid("270_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<?>" :subid("270_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1060_tgt
.local int rx1060_pos
@@ -13769,7 +14942,9 @@
.local int rx1060_eos
.local int rx1060_rep
.local pmc rx1060_cur
+ .local pmc rx1060_debug
(rx1060_cur, rx1060_pos, rx1060_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1060_debug, rx1060_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1060_cur
.local pmc match
.lex "$/", match
@@ -13781,7 +14956,9 @@
substr rx1060_tgt, rx1060_tgt, rx1060_off
rx1060_start:
eq $I10, 1, rx1060_restart
- rx1060_cur."!cursor_debug"("START ", "prefix:sym<?>")
+ if_null rx1060_debug, debug_864
+ rx1060_cur."!cursor_debug"("START", "prefix:sym<?>")
+ debug_864:
$I10 = self.'from'()
ne $I10, -1, rxscan1064_done
goto rxscan1064_scan
@@ -13802,8 +14979,8 @@
add $I11, rx1060_pos, 1
gt $I11, rx1060_eos, rx1060_fail
sub $I11, rx1060_pos, rx1060_off
- substr $S10, rx1060_tgt, $I11, 1
- ne $S10, "?", rx1060_fail
+ ord $I11, rx1060_tgt, $I11
+ ne $I11, 63, rx1060_fail
add rx1060_pos, 1
set_addr $I10, rxcap_1065_fail
($I12, $I11) = rx1060_cur."!mark_peek"($I10)
@@ -13825,11 +15002,15 @@
rx1060_pos = $P10."pos"()
# rx pass
rx1060_cur."!cursor_pass"(rx1060_pos, "prefix:sym<?>")
- rx1060_cur."!cursor_debug"("PASS ", "prefix:sym<?>", " at pos=", rx1060_pos)
+ if_null rx1060_debug, debug_865
+ rx1060_cur."!cursor_debug"("PASS", "prefix:sym<?>", " at pos=", rx1060_pos)
+ debug_865:
.return (rx1060_cur)
rx1060_restart:
.annotate 'line', 447
- rx1060_cur."!cursor_debug"("NEXT ", "prefix:sym<?>")
+ if_null rx1060_debug, debug_866
+ rx1060_cur."!cursor_debug"("NEXT", "prefix:sym<?>")
+ debug_866:
rx1060_fail:
(rx1060_rep, rx1060_pos, $I10, $P10) = rx1060_cur."!mark_fail"(0)
lt rx1060_pos, -1, rx1060_done
@@ -13837,14 +15018,16 @@
jump $I10
rx1060_done:
rx1060_cur."!cursor_fail"()
- rx1060_cur."!cursor_debug"("FAIL ", "prefix:sym<?>")
+ if_null rx1060_debug, debug_867
+ rx1060_cur."!cursor_debug"("FAIL", "prefix:sym<?>")
+ debug_867:
.return (rx1060_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>" :subid("271_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<?>" :subid("271_1282324002.40722") :method
.annotate 'line', 447
$P1062 = self."!PREFIX__!subrule"("O", "?")
new $P1063, "ResizablePMCArray"
@@ -13854,7 +15037,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>" :subid("272_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<!>" :subid("272_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1067_tgt
.local int rx1067_pos
@@ -13862,7 +15045,9 @@
.local int rx1067_eos
.local int rx1067_rep
.local pmc rx1067_cur
+ .local pmc rx1067_debug
(rx1067_cur, rx1067_pos, rx1067_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1067_debug, rx1067_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1067_cur
.local pmc match
.lex "$/", match
@@ -13874,7 +15059,9 @@
substr rx1067_tgt, rx1067_tgt, rx1067_off
rx1067_start:
eq $I10, 1, rx1067_restart
- rx1067_cur."!cursor_debug"("START ", "prefix:sym<!>")
+ if_null rx1067_debug, debug_868
+ rx1067_cur."!cursor_debug"("START", "prefix:sym<!>")
+ debug_868:
$I10 = self.'from'()
ne $I10, -1, rxscan1071_done
goto rxscan1071_scan
@@ -13895,8 +15082,8 @@
add $I11, rx1067_pos, 1
gt $I11, rx1067_eos, rx1067_fail
sub $I11, rx1067_pos, rx1067_off
- substr $S10, rx1067_tgt, $I11, 1
- ne $S10, "!", rx1067_fail
+ ord $I11, rx1067_tgt, $I11
+ ne $I11, 33, rx1067_fail
add rx1067_pos, 1
set_addr $I10, rxcap_1072_fail
($I12, $I11) = rx1067_cur."!mark_peek"($I10)
@@ -13918,11 +15105,15 @@
rx1067_pos = $P10."pos"()
# rx pass
rx1067_cur."!cursor_pass"(rx1067_pos, "prefix:sym<!>")
- rx1067_cur."!cursor_debug"("PASS ", "prefix:sym<!>", " at pos=", rx1067_pos)
+ if_null rx1067_debug, debug_869
+ rx1067_cur."!cursor_debug"("PASS", "prefix:sym<!>", " at pos=", rx1067_pos)
+ debug_869:
.return (rx1067_cur)
rx1067_restart:
.annotate 'line', 447
- rx1067_cur."!cursor_debug"("NEXT ", "prefix:sym<!>")
+ if_null rx1067_debug, debug_870
+ rx1067_cur."!cursor_debug"("NEXT", "prefix:sym<!>")
+ debug_870:
rx1067_fail:
(rx1067_rep, rx1067_pos, $I10, $P10) = rx1067_cur."!mark_fail"(0)
lt rx1067_pos, -1, rx1067_done
@@ -13930,14 +15121,16 @@
jump $I10
rx1067_done:
rx1067_cur."!cursor_fail"()
- rx1067_cur."!cursor_debug"("FAIL ", "prefix:sym<!>")
+ if_null rx1067_debug, debug_871
+ rx1067_cur."!cursor_debug"("FAIL", "prefix:sym<!>")
+ debug_871:
.return (rx1067_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>" :subid("273_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<!>" :subid("273_1282324002.40722") :method
.annotate 'line', 447
$P1069 = self."!PREFIX__!subrule"("O", "!")
new $P1070, "ResizablePMCArray"
@@ -13947,7 +15140,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>" :subid("274_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<|>" :subid("274_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1074_tgt
.local int rx1074_pos
@@ -13955,7 +15148,9 @@
.local int rx1074_eos
.local int rx1074_rep
.local pmc rx1074_cur
+ .local pmc rx1074_debug
(rx1074_cur, rx1074_pos, rx1074_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1074_debug, rx1074_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1074_cur
.local pmc match
.lex "$/", match
@@ -13967,7 +15162,9 @@
substr rx1074_tgt, rx1074_tgt, rx1074_off
rx1074_start:
eq $I10, 1, rx1074_restart
- rx1074_cur."!cursor_debug"("START ", "prefix:sym<|>")
+ if_null rx1074_debug, debug_872
+ rx1074_cur."!cursor_debug"("START", "prefix:sym<|>")
+ debug_872:
$I10 = self.'from'()
ne $I10, -1, rxscan1078_done
goto rxscan1078_scan
@@ -13988,8 +15185,8 @@
add $I11, rx1074_pos, 1
gt $I11, rx1074_eos, rx1074_fail
sub $I11, rx1074_pos, rx1074_off
- substr $S10, rx1074_tgt, $I11, 1
- ne $S10, "|", rx1074_fail
+ ord $I11, rx1074_tgt, $I11
+ ne $I11, 124, rx1074_fail
add rx1074_pos, 1
set_addr $I10, rxcap_1079_fail
($I12, $I11) = rx1074_cur."!mark_peek"($I10)
@@ -14011,11 +15208,15 @@
rx1074_pos = $P10."pos"()
# rx pass
rx1074_cur."!cursor_pass"(rx1074_pos, "prefix:sym<|>")
- rx1074_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1074_pos)
+ if_null rx1074_debug, debug_873
+ rx1074_cur."!cursor_debug"("PASS", "prefix:sym<|>", " at pos=", rx1074_pos)
+ debug_873:
.return (rx1074_cur)
rx1074_restart:
.annotate 'line', 447
- rx1074_cur."!cursor_debug"("NEXT ", "prefix:sym<|>")
+ if_null rx1074_debug, debug_874
+ rx1074_cur."!cursor_debug"("NEXT", "prefix:sym<|>")
+ debug_874:
rx1074_fail:
(rx1074_rep, rx1074_pos, $I10, $P10) = rx1074_cur."!mark_fail"(0)
lt rx1074_pos, -1, rx1074_done
@@ -14023,14 +15224,16 @@
jump $I10
rx1074_done:
rx1074_cur."!cursor_fail"()
- rx1074_cur."!cursor_debug"("FAIL ", "prefix:sym<|>")
+ if_null rx1074_debug, debug_875
+ rx1074_cur."!cursor_debug"("FAIL", "prefix:sym<|>")
+ debug_875:
.return (rx1074_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>" :subid("275_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<|>" :subid("275_1282324002.40722") :method
.annotate 'line', 447
$P1076 = self."!PREFIX__!subrule"("O", "|")
new $P1077, "ResizablePMCArray"
@@ -14040,7 +15243,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>" :subid("276_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<*>" :subid("276_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1081_tgt
.local int rx1081_pos
@@ -14048,7 +15251,9 @@
.local int rx1081_eos
.local int rx1081_rep
.local pmc rx1081_cur
+ .local pmc rx1081_debug
(rx1081_cur, rx1081_pos, rx1081_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1081_debug, rx1081_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1081_cur
.local pmc match
.lex "$/", match
@@ -14060,7 +15265,9 @@
substr rx1081_tgt, rx1081_tgt, rx1081_off
rx1081_start:
eq $I10, 1, rx1081_restart
- rx1081_cur."!cursor_debug"("START ", "infix:sym<*>")
+ if_null rx1081_debug, debug_876
+ rx1081_cur."!cursor_debug"("START", "infix:sym<*>")
+ debug_876:
$I10 = self.'from'()
ne $I10, -1, rxscan1085_done
goto rxscan1085_scan
@@ -14081,8 +15288,8 @@
add $I11, rx1081_pos, 1
gt $I11, rx1081_eos, rx1081_fail
sub $I11, rx1081_pos, rx1081_off
- substr $S10, rx1081_tgt, $I11, 1
- ne $S10, "*", rx1081_fail
+ ord $I11, rx1081_tgt, $I11
+ ne $I11, 42, rx1081_fail
add rx1081_pos, 1
set_addr $I10, rxcap_1086_fail
($I12, $I11) = rx1081_cur."!mark_peek"($I10)
@@ -14104,11 +15311,15 @@
rx1081_pos = $P10."pos"()
# rx pass
rx1081_cur."!cursor_pass"(rx1081_pos, "infix:sym<*>")
- rx1081_cur."!cursor_debug"("PASS ", "infix:sym<*>", " at pos=", rx1081_pos)
+ if_null rx1081_debug, debug_877
+ rx1081_cur."!cursor_debug"("PASS", "infix:sym<*>", " at pos=", rx1081_pos)
+ debug_877:
.return (rx1081_cur)
rx1081_restart:
.annotate 'line', 447
- rx1081_cur."!cursor_debug"("NEXT ", "infix:sym<*>")
+ if_null rx1081_debug, debug_878
+ rx1081_cur."!cursor_debug"("NEXT", "infix:sym<*>")
+ debug_878:
rx1081_fail:
(rx1081_rep, rx1081_pos, $I10, $P10) = rx1081_cur."!mark_fail"(0)
lt rx1081_pos, -1, rx1081_done
@@ -14116,14 +15327,16 @@
jump $I10
rx1081_done:
rx1081_cur."!cursor_fail"()
- rx1081_cur."!cursor_debug"("FAIL ", "infix:sym<*>")
+ if_null rx1081_debug, debug_879
+ rx1081_cur."!cursor_debug"("FAIL", "infix:sym<*>")
+ debug_879:
.return (rx1081_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>" :subid("277_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<*>" :subid("277_1282324002.40722") :method
.annotate 'line', 447
$P1083 = self."!PREFIX__!subrule"("O", "*")
new $P1084, "ResizablePMCArray"
@@ -14133,7 +15346,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym</>" :subid("278_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym</>" :subid("278_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1088_tgt
.local int rx1088_pos
@@ -14141,7 +15354,9 @@
.local int rx1088_eos
.local int rx1088_rep
.local pmc rx1088_cur
+ .local pmc rx1088_debug
(rx1088_cur, rx1088_pos, rx1088_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1088_debug, rx1088_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1088_cur
.local pmc match
.lex "$/", match
@@ -14153,7 +15368,9 @@
substr rx1088_tgt, rx1088_tgt, rx1088_off
rx1088_start:
eq $I10, 1, rx1088_restart
- rx1088_cur."!cursor_debug"("START ", "infix:sym</>")
+ if_null rx1088_debug, debug_880
+ rx1088_cur."!cursor_debug"("START", "infix:sym</>")
+ debug_880:
$I10 = self.'from'()
ne $I10, -1, rxscan1092_done
goto rxscan1092_scan
@@ -14174,8 +15391,8 @@
add $I11, rx1088_pos, 1
gt $I11, rx1088_eos, rx1088_fail
sub $I11, rx1088_pos, rx1088_off
- substr $S10, rx1088_tgt, $I11, 1
- ne $S10, "/", rx1088_fail
+ ord $I11, rx1088_tgt, $I11
+ ne $I11, 47, rx1088_fail
add rx1088_pos, 1
set_addr $I10, rxcap_1093_fail
($I12, $I11) = rx1088_cur."!mark_peek"($I10)
@@ -14197,11 +15414,15 @@
rx1088_pos = $P10."pos"()
# rx pass
rx1088_cur."!cursor_pass"(rx1088_pos, "infix:sym</>")
- rx1088_cur."!cursor_debug"("PASS ", "infix:sym</>", " at pos=", rx1088_pos)
+ if_null rx1088_debug, debug_881
+ rx1088_cur."!cursor_debug"("PASS", "infix:sym</>", " at pos=", rx1088_pos)
+ debug_881:
.return (rx1088_cur)
rx1088_restart:
.annotate 'line', 447
- rx1088_cur."!cursor_debug"("NEXT ", "infix:sym</>")
+ if_null rx1088_debug, debug_882
+ rx1088_cur."!cursor_debug"("NEXT", "infix:sym</>")
+ debug_882:
rx1088_fail:
(rx1088_rep, rx1088_pos, $I10, $P10) = rx1088_cur."!mark_fail"(0)
lt rx1088_pos, -1, rx1088_done
@@ -14209,14 +15430,16 @@
jump $I10
rx1088_done:
rx1088_cur."!cursor_fail"()
- rx1088_cur."!cursor_debug"("FAIL ", "infix:sym</>")
+ if_null rx1088_debug, debug_883
+ rx1088_cur."!cursor_debug"("FAIL", "infix:sym</>")
+ debug_883:
.return (rx1088_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>" :subid("279_1280467477.44751") :method
+.sub "!PREFIX__infix:sym</>" :subid("279_1282324002.40722") :method
.annotate 'line', 447
$P1090 = self."!PREFIX__!subrule"("O", "/")
new $P1091, "ResizablePMCArray"
@@ -14226,7 +15449,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>" :subid("280_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<%>" :subid("280_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1095_tgt
.local int rx1095_pos
@@ -14234,7 +15457,9 @@
.local int rx1095_eos
.local int rx1095_rep
.local pmc rx1095_cur
+ .local pmc rx1095_debug
(rx1095_cur, rx1095_pos, rx1095_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1095_debug, rx1095_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1095_cur
.local pmc match
.lex "$/", match
@@ -14246,7 +15471,9 @@
substr rx1095_tgt, rx1095_tgt, rx1095_off
rx1095_start:
eq $I10, 1, rx1095_restart
- rx1095_cur."!cursor_debug"("START ", "infix:sym<%>")
+ if_null rx1095_debug, debug_884
+ rx1095_cur."!cursor_debug"("START", "infix:sym<%>")
+ debug_884:
$I10 = self.'from'()
ne $I10, -1, rxscan1099_done
goto rxscan1099_scan
@@ -14267,8 +15494,8 @@
add $I11, rx1095_pos, 1
gt $I11, rx1095_eos, rx1095_fail
sub $I11, rx1095_pos, rx1095_off
- substr $S10, rx1095_tgt, $I11, 1
- ne $S10, "%", rx1095_fail
+ ord $I11, rx1095_tgt, $I11
+ ne $I11, 37, rx1095_fail
add rx1095_pos, 1
set_addr $I10, rxcap_1100_fail
($I12, $I11) = rx1095_cur."!mark_peek"($I10)
@@ -14290,11 +15517,15 @@
rx1095_pos = $P10."pos"()
# rx pass
rx1095_cur."!cursor_pass"(rx1095_pos, "infix:sym<%>")
- rx1095_cur."!cursor_debug"("PASS ", "infix:sym<%>", " at pos=", rx1095_pos)
+ if_null rx1095_debug, debug_885
+ rx1095_cur."!cursor_debug"("PASS", "infix:sym<%>", " at pos=", rx1095_pos)
+ debug_885:
.return (rx1095_cur)
rx1095_restart:
.annotate 'line', 447
- rx1095_cur."!cursor_debug"("NEXT ", "infix:sym<%>")
+ if_null rx1095_debug, debug_886
+ rx1095_cur."!cursor_debug"("NEXT", "infix:sym<%>")
+ debug_886:
rx1095_fail:
(rx1095_rep, rx1095_pos, $I10, $P10) = rx1095_cur."!mark_fail"(0)
lt rx1095_pos, -1, rx1095_done
@@ -14302,14 +15533,16 @@
jump $I10
rx1095_done:
rx1095_cur."!cursor_fail"()
- rx1095_cur."!cursor_debug"("FAIL ", "infix:sym<%>")
+ if_null rx1095_debug, debug_887
+ rx1095_cur."!cursor_debug"("FAIL", "infix:sym<%>")
+ debug_887:
.return (rx1095_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>" :subid("281_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<%>" :subid("281_1282324002.40722") :method
.annotate 'line', 447
$P1097 = self."!PREFIX__!subrule"("O", "%")
new $P1098, "ResizablePMCArray"
@@ -14319,7 +15552,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<+&>" :subid("282_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+&>" :subid("282_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1102_tgt
.local int rx1102_pos
@@ -14327,7 +15560,9 @@
.local int rx1102_eos
.local int rx1102_rep
.local pmc rx1102_cur
+ .local pmc rx1102_debug
(rx1102_cur, rx1102_pos, rx1102_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1102_debug, rx1102_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1102_cur
.local pmc match
.lex "$/", match
@@ -14339,7 +15574,9 @@
substr rx1102_tgt, rx1102_tgt, rx1102_off
rx1102_start:
eq $I10, 1, rx1102_restart
- rx1102_cur."!cursor_debug"("START ", "infix:sym<+&>")
+ if_null rx1102_debug, debug_888
+ rx1102_cur."!cursor_debug"("START", "infix:sym<+&>")
+ debug_888:
$I10 = self.'from'()
ne $I10, -1, rxscan1106_done
goto rxscan1106_scan
@@ -14383,11 +15620,15 @@
rx1102_pos = $P10."pos"()
# rx pass
rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<+&>")
- rx1102_cur."!cursor_debug"("PASS ", "infix:sym<+&>", " at pos=", rx1102_pos)
+ if_null rx1102_debug, debug_889
+ rx1102_cur."!cursor_debug"("PASS", "infix:sym<+&>", " at pos=", rx1102_pos)
+ debug_889:
.return (rx1102_cur)
rx1102_restart:
.annotate 'line', 447
- rx1102_cur."!cursor_debug"("NEXT ", "infix:sym<+&>")
+ if_null rx1102_debug, debug_890
+ rx1102_cur."!cursor_debug"("NEXT", "infix:sym<+&>")
+ debug_890:
rx1102_fail:
(rx1102_rep, rx1102_pos, $I10, $P10) = rx1102_cur."!mark_fail"(0)
lt rx1102_pos, -1, rx1102_done
@@ -14395,14 +15636,16 @@
jump $I10
rx1102_done:
rx1102_cur."!cursor_fail"()
- rx1102_cur."!cursor_debug"("FAIL ", "infix:sym<+&>")
+ if_null rx1102_debug, debug_891
+ rx1102_cur."!cursor_debug"("FAIL", "infix:sym<+&>")
+ debug_891:
.return (rx1102_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+&>" :subid("283_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+&>" :subid("283_1282324002.40722") :method
.annotate 'line', 447
$P1104 = self."!PREFIX__!subrule"("O", "+&")
new $P1105, "ResizablePMCArray"
@@ -14412,7 +15655,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>" :subid("284_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+>" :subid("284_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1109_tgt
.local int rx1109_pos
@@ -14420,7 +15663,9 @@
.local int rx1109_eos
.local int rx1109_rep
.local pmc rx1109_cur
+ .local pmc rx1109_debug
(rx1109_cur, rx1109_pos, rx1109_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1109_debug, rx1109_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1109_cur
.local pmc match
.lex "$/", match
@@ -14432,7 +15677,9 @@
substr rx1109_tgt, rx1109_tgt, rx1109_off
rx1109_start:
eq $I10, 1, rx1109_restart
- rx1109_cur."!cursor_debug"("START ", "infix:sym<+>")
+ if_null rx1109_debug, debug_892
+ rx1109_cur."!cursor_debug"("START", "infix:sym<+>")
+ debug_892:
$I10 = self.'from'()
ne $I10, -1, rxscan1113_done
goto rxscan1113_scan
@@ -14453,8 +15700,8 @@
add $I11, rx1109_pos, 1
gt $I11, rx1109_eos, rx1109_fail
sub $I11, rx1109_pos, rx1109_off
- substr $S10, rx1109_tgt, $I11, 1
- ne $S10, "+", rx1109_fail
+ ord $I11, rx1109_tgt, $I11
+ ne $I11, 43, rx1109_fail
add rx1109_pos, 1
set_addr $I10, rxcap_1114_fail
($I12, $I11) = rx1109_cur."!mark_peek"($I10)
@@ -14476,11 +15723,15 @@
rx1109_pos = $P10."pos"()
# rx pass
rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym<+>")
- rx1109_cur."!cursor_debug"("PASS ", "infix:sym<+>", " at pos=", rx1109_pos)
+ if_null rx1109_debug, debug_893
+ rx1109_cur."!cursor_debug"("PASS", "infix:sym<+>", " at pos=", rx1109_pos)
+ debug_893:
.return (rx1109_cur)
rx1109_restart:
.annotate 'line', 447
- rx1109_cur."!cursor_debug"("NEXT ", "infix:sym<+>")
+ if_null rx1109_debug, debug_894
+ rx1109_cur."!cursor_debug"("NEXT", "infix:sym<+>")
+ debug_894:
rx1109_fail:
(rx1109_rep, rx1109_pos, $I10, $P10) = rx1109_cur."!mark_fail"(0)
lt rx1109_pos, -1, rx1109_done
@@ -14488,14 +15739,16 @@
jump $I10
rx1109_done:
rx1109_cur."!cursor_fail"()
- rx1109_cur."!cursor_debug"("FAIL ", "infix:sym<+>")
+ if_null rx1109_debug, debug_895
+ rx1109_cur."!cursor_debug"("FAIL", "infix:sym<+>")
+ debug_895:
.return (rx1109_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>" :subid("285_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+>" :subid("285_1282324002.40722") :method
.annotate 'line', 447
$P1111 = self."!PREFIX__!subrule"("O", "+")
new $P1112, "ResizablePMCArray"
@@ -14505,7 +15758,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<->" :subid("286_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<->" :subid("286_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1116_tgt
.local int rx1116_pos
@@ -14513,7 +15766,9 @@
.local int rx1116_eos
.local int rx1116_rep
.local pmc rx1116_cur
+ .local pmc rx1116_debug
(rx1116_cur, rx1116_pos, rx1116_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1116_debug, rx1116_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1116_cur
.local pmc match
.lex "$/", match
@@ -14525,7 +15780,9 @@
substr rx1116_tgt, rx1116_tgt, rx1116_off
rx1116_start:
eq $I10, 1, rx1116_restart
- rx1116_cur."!cursor_debug"("START ", "infix:sym<->")
+ if_null rx1116_debug, debug_896
+ rx1116_cur."!cursor_debug"("START", "infix:sym<->")
+ debug_896:
$I10 = self.'from'()
ne $I10, -1, rxscan1120_done
goto rxscan1120_scan
@@ -14546,8 +15803,8 @@
add $I11, rx1116_pos, 1
gt $I11, rx1116_eos, rx1116_fail
sub $I11, rx1116_pos, rx1116_off
- substr $S10, rx1116_tgt, $I11, 1
- ne $S10, "-", rx1116_fail
+ ord $I11, rx1116_tgt, $I11
+ ne $I11, 45, rx1116_fail
add rx1116_pos, 1
set_addr $I10, rxcap_1121_fail
($I12, $I11) = rx1116_cur."!mark_peek"($I10)
@@ -14569,11 +15826,15 @@
rx1116_pos = $P10."pos"()
# rx pass
rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<->")
- rx1116_cur."!cursor_debug"("PASS ", "infix:sym<->", " at pos=", rx1116_pos)
+ if_null rx1116_debug, debug_897
+ rx1116_cur."!cursor_debug"("PASS", "infix:sym<->", " at pos=", rx1116_pos)
+ debug_897:
.return (rx1116_cur)
rx1116_restart:
.annotate 'line', 447
- rx1116_cur."!cursor_debug"("NEXT ", "infix:sym<->")
+ if_null rx1116_debug, debug_898
+ rx1116_cur."!cursor_debug"("NEXT", "infix:sym<->")
+ debug_898:
rx1116_fail:
(rx1116_rep, rx1116_pos, $I10, $P10) = rx1116_cur."!mark_fail"(0)
lt rx1116_pos, -1, rx1116_done
@@ -14581,14 +15842,16 @@
jump $I10
rx1116_done:
rx1116_cur."!cursor_fail"()
- rx1116_cur."!cursor_debug"("FAIL ", "infix:sym<->")
+ if_null rx1116_debug, debug_899
+ rx1116_cur."!cursor_debug"("FAIL", "infix:sym<->")
+ debug_899:
.return (rx1116_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->" :subid("287_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<->" :subid("287_1282324002.40722") :method
.annotate 'line', 447
$P1118 = self."!PREFIX__!subrule"("O", "-")
new $P1119, "ResizablePMCArray"
@@ -14598,7 +15861,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<+|>" :subid("288_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+|>" :subid("288_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1123_tgt
.local int rx1123_pos
@@ -14606,7 +15869,9 @@
.local int rx1123_eos
.local int rx1123_rep
.local pmc rx1123_cur
+ .local pmc rx1123_debug
(rx1123_cur, rx1123_pos, rx1123_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1123_debug, rx1123_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1123_cur
.local pmc match
.lex "$/", match
@@ -14618,7 +15883,9 @@
substr rx1123_tgt, rx1123_tgt, rx1123_off
rx1123_start:
eq $I10, 1, rx1123_restart
- rx1123_cur."!cursor_debug"("START ", "infix:sym<+|>")
+ if_null rx1123_debug, debug_900
+ rx1123_cur."!cursor_debug"("START", "infix:sym<+|>")
+ debug_900:
$I10 = self.'from'()
ne $I10, -1, rxscan1127_done
goto rxscan1127_scan
@@ -14662,11 +15929,15 @@
rx1123_pos = $P10."pos"()
# rx pass
rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+|>")
- rx1123_cur."!cursor_debug"("PASS ", "infix:sym<+|>", " at pos=", rx1123_pos)
+ if_null rx1123_debug, debug_901
+ rx1123_cur."!cursor_debug"("PASS", "infix:sym<+|>", " at pos=", rx1123_pos)
+ debug_901:
.return (rx1123_cur)
rx1123_restart:
.annotate 'line', 447
- rx1123_cur."!cursor_debug"("NEXT ", "infix:sym<+|>")
+ if_null rx1123_debug, debug_902
+ rx1123_cur."!cursor_debug"("NEXT", "infix:sym<+|>")
+ debug_902:
rx1123_fail:
(rx1123_rep, rx1123_pos, $I10, $P10) = rx1123_cur."!mark_fail"(0)
lt rx1123_pos, -1, rx1123_done
@@ -14674,14 +15945,16 @@
jump $I10
rx1123_done:
rx1123_cur."!cursor_fail"()
- rx1123_cur."!cursor_debug"("FAIL ", "infix:sym<+|>")
+ if_null rx1123_debug, debug_903
+ rx1123_cur."!cursor_debug"("FAIL", "infix:sym<+|>")
+ debug_903:
.return (rx1123_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+|>" :subid("289_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+|>" :subid("289_1282324002.40722") :method
.annotate 'line', 447
$P1125 = self."!PREFIX__!subrule"("O", "+|")
new $P1126, "ResizablePMCArray"
@@ -14691,7 +15964,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<+^>" :subid("290_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+^>" :subid("290_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1130_tgt
.local int rx1130_pos
@@ -14699,7 +15972,9 @@
.local int rx1130_eos
.local int rx1130_rep
.local pmc rx1130_cur
+ .local pmc rx1130_debug
(rx1130_cur, rx1130_pos, rx1130_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1130_debug, rx1130_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1130_cur
.local pmc match
.lex "$/", match
@@ -14711,7 +15986,9 @@
substr rx1130_tgt, rx1130_tgt, rx1130_off
rx1130_start:
eq $I10, 1, rx1130_restart
- rx1130_cur."!cursor_debug"("START ", "infix:sym<+^>")
+ if_null rx1130_debug, debug_904
+ rx1130_cur."!cursor_debug"("START", "infix:sym<+^>")
+ debug_904:
$I10 = self.'from'()
ne $I10, -1, rxscan1134_done
goto rxscan1134_scan
@@ -14755,11 +16032,15 @@
rx1130_pos = $P10."pos"()
# rx pass
rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<+^>")
- rx1130_cur."!cursor_debug"("PASS ", "infix:sym<+^>", " at pos=", rx1130_pos)
+ if_null rx1130_debug, debug_905
+ rx1130_cur."!cursor_debug"("PASS", "infix:sym<+^>", " at pos=", rx1130_pos)
+ debug_905:
.return (rx1130_cur)
rx1130_restart:
.annotate 'line', 447
- rx1130_cur."!cursor_debug"("NEXT ", "infix:sym<+^>")
+ if_null rx1130_debug, debug_906
+ rx1130_cur."!cursor_debug"("NEXT", "infix:sym<+^>")
+ debug_906:
rx1130_fail:
(rx1130_rep, rx1130_pos, $I10, $P10) = rx1130_cur."!mark_fail"(0)
lt rx1130_pos, -1, rx1130_done
@@ -14767,14 +16048,16 @@
jump $I10
rx1130_done:
rx1130_cur."!cursor_fail"()
- rx1130_cur."!cursor_debug"("FAIL ", "infix:sym<+^>")
+ if_null rx1130_debug, debug_907
+ rx1130_cur."!cursor_debug"("FAIL", "infix:sym<+^>")
+ debug_907:
.return (rx1130_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+^>" :subid("291_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+^>" :subid("291_1282324002.40722") :method
.annotate 'line', 447
$P1132 = self."!PREFIX__!subrule"("O", "+^")
new $P1133, "ResizablePMCArray"
@@ -14784,7 +16067,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>" :subid("292_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<~>" :subid("292_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1137_tgt
.local int rx1137_pos
@@ -14792,7 +16075,9 @@
.local int rx1137_eos
.local int rx1137_rep
.local pmc rx1137_cur
+ .local pmc rx1137_debug
(rx1137_cur, rx1137_pos, rx1137_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1137_debug, rx1137_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1137_cur
.local pmc match
.lex "$/", match
@@ -14804,7 +16089,9 @@
substr rx1137_tgt, rx1137_tgt, rx1137_off
rx1137_start:
eq $I10, 1, rx1137_restart
- rx1137_cur."!cursor_debug"("START ", "infix:sym<~>")
+ if_null rx1137_debug, debug_908
+ rx1137_cur."!cursor_debug"("START", "infix:sym<~>")
+ debug_908:
$I10 = self.'from'()
ne $I10, -1, rxscan1141_done
goto rxscan1141_scan
@@ -14825,8 +16112,8 @@
add $I11, rx1137_pos, 1
gt $I11, rx1137_eos, rx1137_fail
sub $I11, rx1137_pos, rx1137_off
- substr $S10, rx1137_tgt, $I11, 1
- ne $S10, "~", rx1137_fail
+ ord $I11, rx1137_tgt, $I11
+ ne $I11, 126, rx1137_fail
add rx1137_pos, 1
set_addr $I10, rxcap_1142_fail
($I12, $I11) = rx1137_cur."!mark_peek"($I10)
@@ -14848,11 +16135,15 @@
rx1137_pos = $P10."pos"()
# rx pass
rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>")
- rx1137_cur."!cursor_debug"("PASS ", "infix:sym<~>", " at pos=", rx1137_pos)
+ if_null rx1137_debug, debug_909
+ rx1137_cur."!cursor_debug"("PASS", "infix:sym<~>", " at pos=", rx1137_pos)
+ debug_909:
.return (rx1137_cur)
rx1137_restart:
.annotate 'line', 447
- rx1137_cur."!cursor_debug"("NEXT ", "infix:sym<~>")
+ if_null rx1137_debug, debug_910
+ rx1137_cur."!cursor_debug"("NEXT", "infix:sym<~>")
+ debug_910:
rx1137_fail:
(rx1137_rep, rx1137_pos, $I10, $P10) = rx1137_cur."!mark_fail"(0)
lt rx1137_pos, -1, rx1137_done
@@ -14860,14 +16151,16 @@
jump $I10
rx1137_done:
rx1137_cur."!cursor_fail"()
- rx1137_cur."!cursor_debug"("FAIL ", "infix:sym<~>")
+ if_null rx1137_debug, debug_911
+ rx1137_cur."!cursor_debug"("FAIL", "infix:sym<~>")
+ debug_911:
.return (rx1137_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>" :subid("293_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<~>" :subid("293_1282324002.40722") :method
.annotate 'line', 447
$P1139 = self."!PREFIX__!subrule"("O", "~")
new $P1140, "ResizablePMCArray"
@@ -14877,7 +16170,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>" :subid("294_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<==>" :subid("294_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1144_tgt
.local int rx1144_pos
@@ -14885,7 +16178,9 @@
.local int rx1144_eos
.local int rx1144_rep
.local pmc rx1144_cur
+ .local pmc rx1144_debug
(rx1144_cur, rx1144_pos, rx1144_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1144_debug, rx1144_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1144_cur
.local pmc match
.lex "$/", match
@@ -14897,7 +16192,9 @@
substr rx1144_tgt, rx1144_tgt, rx1144_off
rx1144_start:
eq $I10, 1, rx1144_restart
- rx1144_cur."!cursor_debug"("START ", "infix:sym<==>")
+ if_null rx1144_debug, debug_912
+ rx1144_cur."!cursor_debug"("START", "infix:sym<==>")
+ debug_912:
$I10 = self.'from'()
ne $I10, -1, rxscan1148_done
goto rxscan1148_scan
@@ -14941,11 +16238,15 @@
rx1144_pos = $P10."pos"()
# rx pass
rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>")
- rx1144_cur."!cursor_debug"("PASS ", "infix:sym<==>", " at pos=", rx1144_pos)
+ if_null rx1144_debug, debug_913
+ rx1144_cur."!cursor_debug"("PASS", "infix:sym<==>", " at pos=", rx1144_pos)
+ debug_913:
.return (rx1144_cur)
rx1144_restart:
.annotate 'line', 447
- rx1144_cur."!cursor_debug"("NEXT ", "infix:sym<==>")
+ if_null rx1144_debug, debug_914
+ rx1144_cur."!cursor_debug"("NEXT", "infix:sym<==>")
+ debug_914:
rx1144_fail:
(rx1144_rep, rx1144_pos, $I10, $P10) = rx1144_cur."!mark_fail"(0)
lt rx1144_pos, -1, rx1144_done
@@ -14953,14 +16254,16 @@
jump $I10
rx1144_done:
rx1144_cur."!cursor_fail"()
- rx1144_cur."!cursor_debug"("FAIL ", "infix:sym<==>")
+ if_null rx1144_debug, debug_915
+ rx1144_cur."!cursor_debug"("FAIL", "infix:sym<==>")
+ debug_915:
.return (rx1144_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>" :subid("295_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<==>" :subid("295_1282324002.40722") :method
.annotate 'line', 447
$P1146 = self."!PREFIX__!subrule"("O", "==")
new $P1147, "ResizablePMCArray"
@@ -14970,7 +16273,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>" :subid("296_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<!=>" :subid("296_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1151_tgt
.local int rx1151_pos
@@ -14978,7 +16281,9 @@
.local int rx1151_eos
.local int rx1151_rep
.local pmc rx1151_cur
+ .local pmc rx1151_debug
(rx1151_cur, rx1151_pos, rx1151_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1151_debug, rx1151_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1151_cur
.local pmc match
.lex "$/", match
@@ -14990,7 +16295,9 @@
substr rx1151_tgt, rx1151_tgt, rx1151_off
rx1151_start:
eq $I10, 1, rx1151_restart
- rx1151_cur."!cursor_debug"("START ", "infix:sym<!=>")
+ if_null rx1151_debug, debug_916
+ rx1151_cur."!cursor_debug"("START", "infix:sym<!=>")
+ debug_916:
$I10 = self.'from'()
ne $I10, -1, rxscan1155_done
goto rxscan1155_scan
@@ -15034,11 +16341,15 @@
rx1151_pos = $P10."pos"()
# rx pass
rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym<!=>")
- rx1151_cur."!cursor_debug"("PASS ", "infix:sym<!=>", " at pos=", rx1151_pos)
+ if_null rx1151_debug, debug_917
+ rx1151_cur."!cursor_debug"("PASS", "infix:sym<!=>", " at pos=", rx1151_pos)
+ debug_917:
.return (rx1151_cur)
rx1151_restart:
.annotate 'line', 447
- rx1151_cur."!cursor_debug"("NEXT ", "infix:sym<!=>")
+ if_null rx1151_debug, debug_918
+ rx1151_cur."!cursor_debug"("NEXT", "infix:sym<!=>")
+ debug_918:
rx1151_fail:
(rx1151_rep, rx1151_pos, $I10, $P10) = rx1151_cur."!mark_fail"(0)
lt rx1151_pos, -1, rx1151_done
@@ -15046,14 +16357,16 @@
jump $I10
rx1151_done:
rx1151_cur."!cursor_fail"()
- rx1151_cur."!cursor_debug"("FAIL ", "infix:sym<!=>")
+ if_null rx1151_debug, debug_919
+ rx1151_cur."!cursor_debug"("FAIL", "infix:sym<!=>")
+ debug_919:
.return (rx1151_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>" :subid("297_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<!=>" :subid("297_1282324002.40722") :method
.annotate 'line', 447
$P1153 = self."!PREFIX__!subrule"("O", "!=")
new $P1154, "ResizablePMCArray"
@@ -15063,7 +16376,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>" :subid("298_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<<=>" :subid("298_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1158_tgt
.local int rx1158_pos
@@ -15071,7 +16384,9 @@
.local int rx1158_eos
.local int rx1158_rep
.local pmc rx1158_cur
+ .local pmc rx1158_debug
(rx1158_cur, rx1158_pos, rx1158_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1158_debug, rx1158_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1158_cur
.local pmc match
.lex "$/", match
@@ -15083,7 +16398,9 @@
substr rx1158_tgt, rx1158_tgt, rx1158_off
rx1158_start:
eq $I10, 1, rx1158_restart
- rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>")
+ if_null rx1158_debug, debug_920
+ rx1158_cur."!cursor_debug"("START", "infix:sym<<=>")
+ debug_920:
$I10 = self.'from'()
ne $I10, -1, rxscan1162_done
goto rxscan1162_scan
@@ -15127,11 +16444,15 @@
rx1158_pos = $P10."pos"()
# rx pass
rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>")
- rx1158_cur."!cursor_debug"("PASS ", "infix:sym<<=>", " at pos=", rx1158_pos)
+ if_null rx1158_debug, debug_921
+ rx1158_cur."!cursor_debug"("PASS", "infix:sym<<=>", " at pos=", rx1158_pos)
+ debug_921:
.return (rx1158_cur)
rx1158_restart:
.annotate 'line', 447
- rx1158_cur."!cursor_debug"("NEXT ", "infix:sym<<=>")
+ if_null rx1158_debug, debug_922
+ rx1158_cur."!cursor_debug"("NEXT", "infix:sym<<=>")
+ debug_922:
rx1158_fail:
(rx1158_rep, rx1158_pos, $I10, $P10) = rx1158_cur."!mark_fail"(0)
lt rx1158_pos, -1, rx1158_done
@@ -15139,14 +16460,16 @@
jump $I10
rx1158_done:
rx1158_cur."!cursor_fail"()
- rx1158_cur."!cursor_debug"("FAIL ", "infix:sym<<=>")
+ if_null rx1158_debug, debug_923
+ rx1158_cur."!cursor_debug"("FAIL", "infix:sym<<=>")
+ debug_923:
.return (rx1158_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>" :subid("299_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<<=>" :subid("299_1282324002.40722") :method
.annotate 'line', 447
$P1160 = self."!PREFIX__!subrule"("O", "<=")
new $P1161, "ResizablePMCArray"
@@ -15156,7 +16479,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>" :subid("300_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<>=>" :subid("300_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1165_tgt
.local int rx1165_pos
@@ -15164,7 +16487,9 @@
.local int rx1165_eos
.local int rx1165_rep
.local pmc rx1165_cur
+ .local pmc rx1165_debug
(rx1165_cur, rx1165_pos, rx1165_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1165_debug, rx1165_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1165_cur
.local pmc match
.lex "$/", match
@@ -15176,7 +16501,9 @@
substr rx1165_tgt, rx1165_tgt, rx1165_off
rx1165_start:
eq $I10, 1, rx1165_restart
- rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>")
+ if_null rx1165_debug, debug_924
+ rx1165_cur."!cursor_debug"("START", "infix:sym<>=>")
+ debug_924:
$I10 = self.'from'()
ne $I10, -1, rxscan1169_done
goto rxscan1169_scan
@@ -15220,11 +16547,15 @@
rx1165_pos = $P10."pos"()
# rx pass
rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>")
- rx1165_cur."!cursor_debug"("PASS ", "infix:sym<>=>", " at pos=", rx1165_pos)
+ if_null rx1165_debug, debug_925
+ rx1165_cur."!cursor_debug"("PASS", "infix:sym<>=>", " at pos=", rx1165_pos)
+ debug_925:
.return (rx1165_cur)
rx1165_restart:
.annotate 'line', 447
- rx1165_cur."!cursor_debug"("NEXT ", "infix:sym<>=>")
+ if_null rx1165_debug, debug_926
+ rx1165_cur."!cursor_debug"("NEXT", "infix:sym<>=>")
+ debug_926:
rx1165_fail:
(rx1165_rep, rx1165_pos, $I10, $P10) = rx1165_cur."!mark_fail"(0)
lt rx1165_pos, -1, rx1165_done
@@ -15232,14 +16563,16 @@
jump $I10
rx1165_done:
rx1165_cur."!cursor_fail"()
- rx1165_cur."!cursor_debug"("FAIL ", "infix:sym<>=>")
+ if_null rx1165_debug, debug_927
+ rx1165_cur."!cursor_debug"("FAIL", "infix:sym<>=>")
+ debug_927:
.return (rx1165_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>" :subid("301_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<>=>" :subid("301_1282324002.40722") :method
.annotate 'line', 447
$P1167 = self."!PREFIX__!subrule"("O", ">=")
new $P1168, "ResizablePMCArray"
@@ -15249,7 +16582,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>" :subid("302_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<<>" :subid("302_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1172_tgt
.local int rx1172_pos
@@ -15257,7 +16590,9 @@
.local int rx1172_eos
.local int rx1172_rep
.local pmc rx1172_cur
+ .local pmc rx1172_debug
(rx1172_cur, rx1172_pos, rx1172_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1172_debug, rx1172_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1172_cur
.local pmc match
.lex "$/", match
@@ -15269,7 +16604,9 @@
substr rx1172_tgt, rx1172_tgt, rx1172_off
rx1172_start:
eq $I10, 1, rx1172_restart
- rx1172_cur."!cursor_debug"("START ", "infix:sym<<>")
+ if_null rx1172_debug, debug_928
+ rx1172_cur."!cursor_debug"("START", "infix:sym<<>")
+ debug_928:
$I10 = self.'from'()
ne $I10, -1, rxscan1176_done
goto rxscan1176_scan
@@ -15290,8 +16627,8 @@
add $I11, rx1172_pos, 1
gt $I11, rx1172_eos, rx1172_fail
sub $I11, rx1172_pos, rx1172_off
- substr $S10, rx1172_tgt, $I11, 1
- ne $S10, "<", rx1172_fail
+ ord $I11, rx1172_tgt, $I11
+ ne $I11, 60, rx1172_fail
add rx1172_pos, 1
set_addr $I10, rxcap_1177_fail
($I12, $I11) = rx1172_cur."!mark_peek"($I10)
@@ -15313,11 +16650,15 @@
rx1172_pos = $P10."pos"()
# rx pass
rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>")
- rx1172_cur."!cursor_debug"("PASS ", "infix:sym<<>", " at pos=", rx1172_pos)
+ if_null rx1172_debug, debug_929
+ rx1172_cur."!cursor_debug"("PASS", "infix:sym<<>", " at pos=", rx1172_pos)
+ debug_929:
.return (rx1172_cur)
rx1172_restart:
.annotate 'line', 447
- rx1172_cur."!cursor_debug"("NEXT ", "infix:sym<<>")
+ if_null rx1172_debug, debug_930
+ rx1172_cur."!cursor_debug"("NEXT", "infix:sym<<>")
+ debug_930:
rx1172_fail:
(rx1172_rep, rx1172_pos, $I10, $P10) = rx1172_cur."!mark_fail"(0)
lt rx1172_pos, -1, rx1172_done
@@ -15325,14 +16666,16 @@
jump $I10
rx1172_done:
rx1172_cur."!cursor_fail"()
- rx1172_cur."!cursor_debug"("FAIL ", "infix:sym<<>")
+ if_null rx1172_debug, debug_931
+ rx1172_cur."!cursor_debug"("FAIL", "infix:sym<<>")
+ debug_931:
.return (rx1172_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>" :subid("303_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<<>" :subid("303_1282324002.40722") :method
.annotate 'line', 447
$P1174 = self."!PREFIX__!subrule"("O", "<")
new $P1175, "ResizablePMCArray"
@@ -15342,7 +16685,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>" :subid("304_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<>>" :subid("304_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1179_tgt
.local int rx1179_pos
@@ -15350,7 +16693,9 @@
.local int rx1179_eos
.local int rx1179_rep
.local pmc rx1179_cur
+ .local pmc rx1179_debug
(rx1179_cur, rx1179_pos, rx1179_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1179_debug, rx1179_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1179_cur
.local pmc match
.lex "$/", match
@@ -15362,7 +16707,9 @@
substr rx1179_tgt, rx1179_tgt, rx1179_off
rx1179_start:
eq $I10, 1, rx1179_restart
- rx1179_cur."!cursor_debug"("START ", "infix:sym<>>")
+ if_null rx1179_debug, debug_932
+ rx1179_cur."!cursor_debug"("START", "infix:sym<>>")
+ debug_932:
$I10 = self.'from'()
ne $I10, -1, rxscan1183_done
goto rxscan1183_scan
@@ -15383,8 +16730,8 @@
add $I11, rx1179_pos, 1
gt $I11, rx1179_eos, rx1179_fail
sub $I11, rx1179_pos, rx1179_off
- substr $S10, rx1179_tgt, $I11, 1
- ne $S10, ">", rx1179_fail
+ ord $I11, rx1179_tgt, $I11
+ ne $I11, 62, rx1179_fail
add rx1179_pos, 1
set_addr $I10, rxcap_1184_fail
($I12, $I11) = rx1179_cur."!mark_peek"($I10)
@@ -15406,11 +16753,15 @@
rx1179_pos = $P10."pos"()
# rx pass
rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>")
- rx1179_cur."!cursor_debug"("PASS ", "infix:sym<>>", " at pos=", rx1179_pos)
+ if_null rx1179_debug, debug_933
+ rx1179_cur."!cursor_debug"("PASS", "infix:sym<>>", " at pos=", rx1179_pos)
+ debug_933:
.return (rx1179_cur)
rx1179_restart:
.annotate 'line', 447
- rx1179_cur."!cursor_debug"("NEXT ", "infix:sym<>>")
+ if_null rx1179_debug, debug_934
+ rx1179_cur."!cursor_debug"("NEXT", "infix:sym<>>")
+ debug_934:
rx1179_fail:
(rx1179_rep, rx1179_pos, $I10, $P10) = rx1179_cur."!mark_fail"(0)
lt rx1179_pos, -1, rx1179_done
@@ -15418,14 +16769,16 @@
jump $I10
rx1179_done:
rx1179_cur."!cursor_fail"()
- rx1179_cur."!cursor_debug"("FAIL ", "infix:sym<>>")
+ if_null rx1179_debug, debug_935
+ rx1179_cur."!cursor_debug"("FAIL", "infix:sym<>>")
+ debug_935:
.return (rx1179_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>" :subid("305_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<>>" :subid("305_1282324002.40722") :method
.annotate 'line', 447
$P1181 = self."!PREFIX__!subrule"("O", ">")
new $P1182, "ResizablePMCArray"
@@ -15435,7 +16788,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>" :subid("306_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<eq>" :subid("306_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1186_tgt
.local int rx1186_pos
@@ -15443,7 +16796,9 @@
.local int rx1186_eos
.local int rx1186_rep
.local pmc rx1186_cur
+ .local pmc rx1186_debug
(rx1186_cur, rx1186_pos, rx1186_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1186_debug, rx1186_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1186_cur
.local pmc match
.lex "$/", match
@@ -15455,7 +16810,9 @@
substr rx1186_tgt, rx1186_tgt, rx1186_off
rx1186_start:
eq $I10, 1, rx1186_restart
- rx1186_cur."!cursor_debug"("START ", "infix:sym<eq>")
+ if_null rx1186_debug, debug_936
+ rx1186_cur."!cursor_debug"("START", "infix:sym<eq>")
+ debug_936:
$I10 = self.'from'()
ne $I10, -1, rxscan1190_done
goto rxscan1190_scan
@@ -15499,11 +16856,15 @@
rx1186_pos = $P10."pos"()
# rx pass
rx1186_cur."!cursor_pass"(rx1186_pos, "infix:sym<eq>")
- rx1186_cur."!cursor_debug"("PASS ", "infix:sym<eq>", " at pos=", rx1186_pos)
+ if_null rx1186_debug, debug_937
+ rx1186_cur."!cursor_debug"("PASS", "infix:sym<eq>", " at pos=", rx1186_pos)
+ debug_937:
.return (rx1186_cur)
rx1186_restart:
.annotate 'line', 447
- rx1186_cur."!cursor_debug"("NEXT ", "infix:sym<eq>")
+ if_null rx1186_debug, debug_938
+ rx1186_cur."!cursor_debug"("NEXT", "infix:sym<eq>")
+ debug_938:
rx1186_fail:
(rx1186_rep, rx1186_pos, $I10, $P10) = rx1186_cur."!mark_fail"(0)
lt rx1186_pos, -1, rx1186_done
@@ -15511,14 +16872,16 @@
jump $I10
rx1186_done:
rx1186_cur."!cursor_fail"()
- rx1186_cur."!cursor_debug"("FAIL ", "infix:sym<eq>")
+ if_null rx1186_debug, debug_939
+ rx1186_cur."!cursor_debug"("FAIL", "infix:sym<eq>")
+ debug_939:
.return (rx1186_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>" :subid("307_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<eq>" :subid("307_1282324002.40722") :method
.annotate 'line', 447
$P1188 = self."!PREFIX__!subrule"("O", "eq")
new $P1189, "ResizablePMCArray"
@@ -15528,7 +16891,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>" :subid("308_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<ne>" :subid("308_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1193_tgt
.local int rx1193_pos
@@ -15536,7 +16899,9 @@
.local int rx1193_eos
.local int rx1193_rep
.local pmc rx1193_cur
+ .local pmc rx1193_debug
(rx1193_cur, rx1193_pos, rx1193_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1193_debug, rx1193_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1193_cur
.local pmc match
.lex "$/", match
@@ -15548,7 +16913,9 @@
substr rx1193_tgt, rx1193_tgt, rx1193_off
rx1193_start:
eq $I10, 1, rx1193_restart
- rx1193_cur."!cursor_debug"("START ", "infix:sym<ne>")
+ if_null rx1193_debug, debug_940
+ rx1193_cur."!cursor_debug"("START", "infix:sym<ne>")
+ debug_940:
$I10 = self.'from'()
ne $I10, -1, rxscan1197_done
goto rxscan1197_scan
@@ -15592,11 +16959,15 @@
rx1193_pos = $P10."pos"()
# rx pass
rx1193_cur."!cursor_pass"(rx1193_pos, "infix:sym<ne>")
- rx1193_cur."!cursor_debug"("PASS ", "infix:sym<ne>", " at pos=", rx1193_pos)
+ if_null rx1193_debug, debug_941
+ rx1193_cur."!cursor_debug"("PASS", "infix:sym<ne>", " at pos=", rx1193_pos)
+ debug_941:
.return (rx1193_cur)
rx1193_restart:
.annotate 'line', 447
- rx1193_cur."!cursor_debug"("NEXT ", "infix:sym<ne>")
+ if_null rx1193_debug, debug_942
+ rx1193_cur."!cursor_debug"("NEXT", "infix:sym<ne>")
+ debug_942:
rx1193_fail:
(rx1193_rep, rx1193_pos, $I10, $P10) = rx1193_cur."!mark_fail"(0)
lt rx1193_pos, -1, rx1193_done
@@ -15604,14 +16975,16 @@
jump $I10
rx1193_done:
rx1193_cur."!cursor_fail"()
- rx1193_cur."!cursor_debug"("FAIL ", "infix:sym<ne>")
+ if_null rx1193_debug, debug_943
+ rx1193_cur."!cursor_debug"("FAIL", "infix:sym<ne>")
+ debug_943:
.return (rx1193_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>" :subid("309_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<ne>" :subid("309_1282324002.40722") :method
.annotate 'line', 447
$P1195 = self."!PREFIX__!subrule"("O", "ne")
new $P1196, "ResizablePMCArray"
@@ -15621,7 +16994,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>" :subid("310_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<le>" :subid("310_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1200_tgt
.local int rx1200_pos
@@ -15629,7 +17002,9 @@
.local int rx1200_eos
.local int rx1200_rep
.local pmc rx1200_cur
+ .local pmc rx1200_debug
(rx1200_cur, rx1200_pos, rx1200_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1200_debug, rx1200_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1200_cur
.local pmc match
.lex "$/", match
@@ -15641,7 +17016,9 @@
substr rx1200_tgt, rx1200_tgt, rx1200_off
rx1200_start:
eq $I10, 1, rx1200_restart
- rx1200_cur."!cursor_debug"("START ", "infix:sym<le>")
+ if_null rx1200_debug, debug_944
+ rx1200_cur."!cursor_debug"("START", "infix:sym<le>")
+ debug_944:
$I10 = self.'from'()
ne $I10, -1, rxscan1204_done
goto rxscan1204_scan
@@ -15685,11 +17062,15 @@
rx1200_pos = $P10."pos"()
# rx pass
rx1200_cur."!cursor_pass"(rx1200_pos, "infix:sym<le>")
- rx1200_cur."!cursor_debug"("PASS ", "infix:sym<le>", " at pos=", rx1200_pos)
+ if_null rx1200_debug, debug_945
+ rx1200_cur."!cursor_debug"("PASS", "infix:sym<le>", " at pos=", rx1200_pos)
+ debug_945:
.return (rx1200_cur)
rx1200_restart:
.annotate 'line', 447
- rx1200_cur."!cursor_debug"("NEXT ", "infix:sym<le>")
+ if_null rx1200_debug, debug_946
+ rx1200_cur."!cursor_debug"("NEXT", "infix:sym<le>")
+ debug_946:
rx1200_fail:
(rx1200_rep, rx1200_pos, $I10, $P10) = rx1200_cur."!mark_fail"(0)
lt rx1200_pos, -1, rx1200_done
@@ -15697,14 +17078,16 @@
jump $I10
rx1200_done:
rx1200_cur."!cursor_fail"()
- rx1200_cur."!cursor_debug"("FAIL ", "infix:sym<le>")
+ if_null rx1200_debug, debug_947
+ rx1200_cur."!cursor_debug"("FAIL", "infix:sym<le>")
+ debug_947:
.return (rx1200_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>" :subid("311_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<le>" :subid("311_1282324002.40722") :method
.annotate 'line', 447
$P1202 = self."!PREFIX__!subrule"("O", "le")
new $P1203, "ResizablePMCArray"
@@ -15714,7 +17097,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>" :subid("312_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<ge>" :subid("312_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1207_tgt
.local int rx1207_pos
@@ -15722,7 +17105,9 @@
.local int rx1207_eos
.local int rx1207_rep
.local pmc rx1207_cur
+ .local pmc rx1207_debug
(rx1207_cur, rx1207_pos, rx1207_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1207_debug, rx1207_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1207_cur
.local pmc match
.lex "$/", match
@@ -15734,7 +17119,9 @@
substr rx1207_tgt, rx1207_tgt, rx1207_off
rx1207_start:
eq $I10, 1, rx1207_restart
- rx1207_cur."!cursor_debug"("START ", "infix:sym<ge>")
+ if_null rx1207_debug, debug_948
+ rx1207_cur."!cursor_debug"("START", "infix:sym<ge>")
+ debug_948:
$I10 = self.'from'()
ne $I10, -1, rxscan1211_done
goto rxscan1211_scan
@@ -15778,11 +17165,15 @@
rx1207_pos = $P10."pos"()
# rx pass
rx1207_cur."!cursor_pass"(rx1207_pos, "infix:sym<ge>")
- rx1207_cur."!cursor_debug"("PASS ", "infix:sym<ge>", " at pos=", rx1207_pos)
+ if_null rx1207_debug, debug_949
+ rx1207_cur."!cursor_debug"("PASS", "infix:sym<ge>", " at pos=", rx1207_pos)
+ debug_949:
.return (rx1207_cur)
rx1207_restart:
.annotate 'line', 447
- rx1207_cur."!cursor_debug"("NEXT ", "infix:sym<ge>")
+ if_null rx1207_debug, debug_950
+ rx1207_cur."!cursor_debug"("NEXT", "infix:sym<ge>")
+ debug_950:
rx1207_fail:
(rx1207_rep, rx1207_pos, $I10, $P10) = rx1207_cur."!mark_fail"(0)
lt rx1207_pos, -1, rx1207_done
@@ -15790,14 +17181,16 @@
jump $I10
rx1207_done:
rx1207_cur."!cursor_fail"()
- rx1207_cur."!cursor_debug"("FAIL ", "infix:sym<ge>")
+ if_null rx1207_debug, debug_951
+ rx1207_cur."!cursor_debug"("FAIL", "infix:sym<ge>")
+ debug_951:
.return (rx1207_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>" :subid("313_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<ge>" :subid("313_1282324002.40722") :method
.annotate 'line', 447
$P1209 = self."!PREFIX__!subrule"("O", "ge")
new $P1210, "ResizablePMCArray"
@@ -15807,7 +17200,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>" :subid("314_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<lt>" :subid("314_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1214_tgt
.local int rx1214_pos
@@ -15815,7 +17208,9 @@
.local int rx1214_eos
.local int rx1214_rep
.local pmc rx1214_cur
+ .local pmc rx1214_debug
(rx1214_cur, rx1214_pos, rx1214_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1214_debug, rx1214_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1214_cur
.local pmc match
.lex "$/", match
@@ -15827,7 +17222,9 @@
substr rx1214_tgt, rx1214_tgt, rx1214_off
rx1214_start:
eq $I10, 1, rx1214_restart
- rx1214_cur."!cursor_debug"("START ", "infix:sym<lt>")
+ if_null rx1214_debug, debug_952
+ rx1214_cur."!cursor_debug"("START", "infix:sym<lt>")
+ debug_952:
$I10 = self.'from'()
ne $I10, -1, rxscan1218_done
goto rxscan1218_scan
@@ -15871,11 +17268,15 @@
rx1214_pos = $P10."pos"()
# rx pass
rx1214_cur."!cursor_pass"(rx1214_pos, "infix:sym<lt>")
- rx1214_cur."!cursor_debug"("PASS ", "infix:sym<lt>", " at pos=", rx1214_pos)
+ if_null rx1214_debug, debug_953
+ rx1214_cur."!cursor_debug"("PASS", "infix:sym<lt>", " at pos=", rx1214_pos)
+ debug_953:
.return (rx1214_cur)
rx1214_restart:
.annotate 'line', 447
- rx1214_cur."!cursor_debug"("NEXT ", "infix:sym<lt>")
+ if_null rx1214_debug, debug_954
+ rx1214_cur."!cursor_debug"("NEXT", "infix:sym<lt>")
+ debug_954:
rx1214_fail:
(rx1214_rep, rx1214_pos, $I10, $P10) = rx1214_cur."!mark_fail"(0)
lt rx1214_pos, -1, rx1214_done
@@ -15883,14 +17284,16 @@
jump $I10
rx1214_done:
rx1214_cur."!cursor_fail"()
- rx1214_cur."!cursor_debug"("FAIL ", "infix:sym<lt>")
+ if_null rx1214_debug, debug_955
+ rx1214_cur."!cursor_debug"("FAIL", "infix:sym<lt>")
+ debug_955:
.return (rx1214_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>" :subid("315_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<lt>" :subid("315_1282324002.40722") :method
.annotate 'line', 447
$P1216 = self."!PREFIX__!subrule"("O", "lt")
new $P1217, "ResizablePMCArray"
@@ -15900,7 +17303,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>" :subid("316_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<gt>" :subid("316_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1221_tgt
.local int rx1221_pos
@@ -15908,7 +17311,9 @@
.local int rx1221_eos
.local int rx1221_rep
.local pmc rx1221_cur
+ .local pmc rx1221_debug
(rx1221_cur, rx1221_pos, rx1221_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1221_debug, rx1221_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1221_cur
.local pmc match
.lex "$/", match
@@ -15920,7 +17325,9 @@
substr rx1221_tgt, rx1221_tgt, rx1221_off
rx1221_start:
eq $I10, 1, rx1221_restart
- rx1221_cur."!cursor_debug"("START ", "infix:sym<gt>")
+ if_null rx1221_debug, debug_956
+ rx1221_cur."!cursor_debug"("START", "infix:sym<gt>")
+ debug_956:
$I10 = self.'from'()
ne $I10, -1, rxscan1225_done
goto rxscan1225_scan
@@ -15964,11 +17371,15 @@
rx1221_pos = $P10."pos"()
# rx pass
rx1221_cur."!cursor_pass"(rx1221_pos, "infix:sym<gt>")
- rx1221_cur."!cursor_debug"("PASS ", "infix:sym<gt>", " at pos=", rx1221_pos)
+ if_null rx1221_debug, debug_957
+ rx1221_cur."!cursor_debug"("PASS", "infix:sym<gt>", " at pos=", rx1221_pos)
+ debug_957:
.return (rx1221_cur)
rx1221_restart:
.annotate 'line', 447
- rx1221_cur."!cursor_debug"("NEXT ", "infix:sym<gt>")
+ if_null rx1221_debug, debug_958
+ rx1221_cur."!cursor_debug"("NEXT", "infix:sym<gt>")
+ debug_958:
rx1221_fail:
(rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0)
lt rx1221_pos, -1, rx1221_done
@@ -15976,14 +17387,16 @@
jump $I10
rx1221_done:
rx1221_cur."!cursor_fail"()
- rx1221_cur."!cursor_debug"("FAIL ", "infix:sym<gt>")
+ if_null rx1221_debug, debug_959
+ rx1221_cur."!cursor_debug"("FAIL", "infix:sym<gt>")
+ debug_959:
.return (rx1221_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>" :subid("317_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<gt>" :subid("317_1282324002.40722") :method
.annotate 'line', 447
$P1223 = self."!PREFIX__!subrule"("O", "gt")
new $P1224, "ResizablePMCArray"
@@ -15993,7 +17406,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>" :subid("318_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<=:=>" :subid("318_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1228_tgt
.local int rx1228_pos
@@ -16001,7 +17414,9 @@
.local int rx1228_eos
.local int rx1228_rep
.local pmc rx1228_cur
+ .local pmc rx1228_debug
(rx1228_cur, rx1228_pos, rx1228_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1228_debug, rx1228_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1228_cur
.local pmc match
.lex "$/", match
@@ -16013,7 +17428,9 @@
substr rx1228_tgt, rx1228_tgt, rx1228_off
rx1228_start:
eq $I10, 1, rx1228_restart
- rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>")
+ if_null rx1228_debug, debug_960
+ rx1228_cur."!cursor_debug"("START", "infix:sym<=:=>")
+ debug_960:
$I10 = self.'from'()
ne $I10, -1, rxscan1232_done
goto rxscan1232_scan
@@ -16057,11 +17474,15 @@
rx1228_pos = $P10."pos"()
# rx pass
rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>")
- rx1228_cur."!cursor_debug"("PASS ", "infix:sym<=:=>", " at pos=", rx1228_pos)
+ if_null rx1228_debug, debug_961
+ rx1228_cur."!cursor_debug"("PASS", "infix:sym<=:=>", " at pos=", rx1228_pos)
+ debug_961:
.return (rx1228_cur)
rx1228_restart:
.annotate 'line', 447
- rx1228_cur."!cursor_debug"("NEXT ", "infix:sym<=:=>")
+ if_null rx1228_debug, debug_962
+ rx1228_cur."!cursor_debug"("NEXT", "infix:sym<=:=>")
+ debug_962:
rx1228_fail:
(rx1228_rep, rx1228_pos, $I10, $P10) = rx1228_cur."!mark_fail"(0)
lt rx1228_pos, -1, rx1228_done
@@ -16069,14 +17490,16 @@
jump $I10
rx1228_done:
rx1228_cur."!cursor_fail"()
- rx1228_cur."!cursor_debug"("FAIL ", "infix:sym<=:=>")
+ if_null rx1228_debug, debug_963
+ rx1228_cur."!cursor_debug"("FAIL", "infix:sym<=:=>")
+ debug_963:
.return (rx1228_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>" :subid("319_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<=:=>" :subid("319_1282324002.40722") :method
.annotate 'line', 447
$P1230 = self."!PREFIX__!subrule"("O", "=:=")
new $P1231, "ResizablePMCArray"
@@ -16086,7 +17509,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>" :subid("320_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<~~>" :subid("320_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1235_tgt
.local int rx1235_pos
@@ -16094,7 +17517,9 @@
.local int rx1235_eos
.local int rx1235_rep
.local pmc rx1235_cur
+ .local pmc rx1235_debug
(rx1235_cur, rx1235_pos, rx1235_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1235_debug, rx1235_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1235_cur
.local pmc match
.lex "$/", match
@@ -16106,7 +17531,9 @@
substr rx1235_tgt, rx1235_tgt, rx1235_off
rx1235_start:
eq $I10, 1, rx1235_restart
- rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>")
+ if_null rx1235_debug, debug_964
+ rx1235_cur."!cursor_debug"("START", "infix:sym<~~>")
+ debug_964:
$I10 = self.'from'()
ne $I10, -1, rxscan1239_done
goto rxscan1239_scan
@@ -16150,11 +17577,15 @@
rx1235_pos = $P10."pos"()
# rx pass
rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>")
- rx1235_cur."!cursor_debug"("PASS ", "infix:sym<~~>", " at pos=", rx1235_pos)
+ if_null rx1235_debug, debug_965
+ rx1235_cur."!cursor_debug"("PASS", "infix:sym<~~>", " at pos=", rx1235_pos)
+ debug_965:
.return (rx1235_cur)
rx1235_restart:
.annotate 'line', 447
- rx1235_cur."!cursor_debug"("NEXT ", "infix:sym<~~>")
+ if_null rx1235_debug, debug_966
+ rx1235_cur."!cursor_debug"("NEXT", "infix:sym<~~>")
+ debug_966:
rx1235_fail:
(rx1235_rep, rx1235_pos, $I10, $P10) = rx1235_cur."!mark_fail"(0)
lt rx1235_pos, -1, rx1235_done
@@ -16162,14 +17593,16 @@
jump $I10
rx1235_done:
rx1235_cur."!cursor_fail"()
- rx1235_cur."!cursor_debug"("FAIL ", "infix:sym<~~>")
+ if_null rx1235_debug, debug_967
+ rx1235_cur."!cursor_debug"("FAIL", "infix:sym<~~>")
+ debug_967:
.return (rx1235_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>" :subid("321_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<~~>" :subid("321_1282324002.40722") :method
.annotate 'line', 447
$P1237 = self."!PREFIX__!subrule"("O", "~~")
new $P1238, "ResizablePMCArray"
@@ -16179,7 +17612,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>" :subid("322_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<&&>" :subid("322_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1242_tgt
.local int rx1242_pos
@@ -16187,7 +17620,9 @@
.local int rx1242_eos
.local int rx1242_rep
.local pmc rx1242_cur
+ .local pmc rx1242_debug
(rx1242_cur, rx1242_pos, rx1242_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1242_debug, rx1242_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1242_cur
.local pmc match
.lex "$/", match
@@ -16199,7 +17634,9 @@
substr rx1242_tgt, rx1242_tgt, rx1242_off
rx1242_start:
eq $I10, 1, rx1242_restart
- rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>")
+ if_null rx1242_debug, debug_968
+ rx1242_cur."!cursor_debug"("START", "infix:sym<&&>")
+ debug_968:
$I10 = self.'from'()
ne $I10, -1, rxscan1246_done
goto rxscan1246_scan
@@ -16243,11 +17680,15 @@
rx1242_pos = $P10."pos"()
# rx pass
rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>")
- rx1242_cur."!cursor_debug"("PASS ", "infix:sym<&&>", " at pos=", rx1242_pos)
+ if_null rx1242_debug, debug_969
+ rx1242_cur."!cursor_debug"("PASS", "infix:sym<&&>", " at pos=", rx1242_pos)
+ debug_969:
.return (rx1242_cur)
rx1242_restart:
.annotate 'line', 447
- rx1242_cur."!cursor_debug"("NEXT ", "infix:sym<&&>")
+ if_null rx1242_debug, debug_970
+ rx1242_cur."!cursor_debug"("NEXT", "infix:sym<&&>")
+ debug_970:
rx1242_fail:
(rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0)
lt rx1242_pos, -1, rx1242_done
@@ -16255,14 +17696,16 @@
jump $I10
rx1242_done:
rx1242_cur."!cursor_fail"()
- rx1242_cur."!cursor_debug"("FAIL ", "infix:sym<&&>")
+ if_null rx1242_debug, debug_971
+ rx1242_cur."!cursor_debug"("FAIL", "infix:sym<&&>")
+ debug_971:
.return (rx1242_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>" :subid("323_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<&&>" :subid("323_1282324002.40722") :method
.annotate 'line', 447
$P1244 = self."!PREFIX__!subrule"("O", "&&")
new $P1245, "ResizablePMCArray"
@@ -16272,7 +17715,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>" :subid("324_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<||>" :subid("324_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1249_tgt
.local int rx1249_pos
@@ -16280,7 +17723,9 @@
.local int rx1249_eos
.local int rx1249_rep
.local pmc rx1249_cur
+ .local pmc rx1249_debug
(rx1249_cur, rx1249_pos, rx1249_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1249_debug, rx1249_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1249_cur
.local pmc match
.lex "$/", match
@@ -16292,7 +17737,9 @@
substr rx1249_tgt, rx1249_tgt, rx1249_off
rx1249_start:
eq $I10, 1, rx1249_restart
- rx1249_cur."!cursor_debug"("START ", "infix:sym<||>")
+ if_null rx1249_debug, debug_972
+ rx1249_cur."!cursor_debug"("START", "infix:sym<||>")
+ debug_972:
$I10 = self.'from'()
ne $I10, -1, rxscan1253_done
goto rxscan1253_scan
@@ -16336,11 +17783,15 @@
rx1249_pos = $P10."pos"()
# rx pass
rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>")
- rx1249_cur."!cursor_debug"("PASS ", "infix:sym<||>", " at pos=", rx1249_pos)
+ if_null rx1249_debug, debug_973
+ rx1249_cur."!cursor_debug"("PASS", "infix:sym<||>", " at pos=", rx1249_pos)
+ debug_973:
.return (rx1249_cur)
rx1249_restart:
.annotate 'line', 447
- rx1249_cur."!cursor_debug"("NEXT ", "infix:sym<||>")
+ if_null rx1249_debug, debug_974
+ rx1249_cur."!cursor_debug"("NEXT", "infix:sym<||>")
+ debug_974:
rx1249_fail:
(rx1249_rep, rx1249_pos, $I10, $P10) = rx1249_cur."!mark_fail"(0)
lt rx1249_pos, -1, rx1249_done
@@ -16348,14 +17799,16 @@
jump $I10
rx1249_done:
rx1249_cur."!cursor_fail"()
- rx1249_cur."!cursor_debug"("FAIL ", "infix:sym<||>")
+ if_null rx1249_debug, debug_975
+ rx1249_cur."!cursor_debug"("FAIL", "infix:sym<||>")
+ debug_975:
.return (rx1249_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>" :subid("325_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<||>" :subid("325_1282324002.40722") :method
.annotate 'line', 447
$P1251 = self."!PREFIX__!subrule"("O", "||")
new $P1252, "ResizablePMCArray"
@@ -16365,7 +17818,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>" :subid("326_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<//>" :subid("326_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1256_tgt
.local int rx1256_pos
@@ -16373,7 +17826,9 @@
.local int rx1256_eos
.local int rx1256_rep
.local pmc rx1256_cur
+ .local pmc rx1256_debug
(rx1256_cur, rx1256_pos, rx1256_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1256_debug, rx1256_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1256_cur
.local pmc match
.lex "$/", match
@@ -16385,7 +17840,9 @@
substr rx1256_tgt, rx1256_tgt, rx1256_off
rx1256_start:
eq $I10, 1, rx1256_restart
- rx1256_cur."!cursor_debug"("START ", "infix:sym<//>")
+ if_null rx1256_debug, debug_976
+ rx1256_cur."!cursor_debug"("START", "infix:sym<//>")
+ debug_976:
$I10 = self.'from'()
ne $I10, -1, rxscan1260_done
goto rxscan1260_scan
@@ -16429,11 +17886,15 @@
rx1256_pos = $P10."pos"()
# rx pass
rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym<//>")
- rx1256_cur."!cursor_debug"("PASS ", "infix:sym<//>", " at pos=", rx1256_pos)
+ if_null rx1256_debug, debug_977
+ rx1256_cur."!cursor_debug"("PASS", "infix:sym<//>", " at pos=", rx1256_pos)
+ debug_977:
.return (rx1256_cur)
rx1256_restart:
.annotate 'line', 447
- rx1256_cur."!cursor_debug"("NEXT ", "infix:sym<//>")
+ if_null rx1256_debug, debug_978
+ rx1256_cur."!cursor_debug"("NEXT", "infix:sym<//>")
+ debug_978:
rx1256_fail:
(rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
lt rx1256_pos, -1, rx1256_done
@@ -16441,14 +17902,16 @@
jump $I10
rx1256_done:
rx1256_cur."!cursor_fail"()
- rx1256_cur."!cursor_debug"("FAIL ", "infix:sym<//>")
+ if_null rx1256_debug, debug_979
+ rx1256_cur."!cursor_debug"("FAIL", "infix:sym<//>")
+ debug_979:
.return (rx1256_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>" :subid("327_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<//>" :subid("327_1282324002.40722") :method
.annotate 'line', 447
$P1258 = self."!PREFIX__!subrule"("O", "//")
new $P1259, "ResizablePMCArray"
@@ -16458,7 +17921,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>" :subid("328_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<?? !!>" :subid("328_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1263_tgt
.local int rx1263_pos
@@ -16466,7 +17929,9 @@
.local int rx1263_eos
.local int rx1263_rep
.local pmc rx1263_cur
+ .local pmc rx1263_debug
(rx1263_cur, rx1263_pos, rx1263_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1263_debug, rx1263_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1263_cur
.local pmc match
.lex "$/", match
@@ -16478,7 +17943,9 @@
substr rx1263_tgt, rx1263_tgt, rx1263_off
rx1263_start:
eq $I10, 1, rx1263_restart
- rx1263_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
+ if_null rx1263_debug, debug_980
+ rx1263_cur."!cursor_debug"("START", "infix:sym<?? !!>")
+ debug_980:
$I10 = self.'from'()
ne $I10, -1, rxscan1267_done
goto rxscan1267_scan
@@ -16532,11 +17999,15 @@
.annotate 'line', 539
# rx pass
rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym<?? !!>")
- rx1263_cur."!cursor_debug"("PASS ", "infix:sym<?? !!>", " at pos=", rx1263_pos)
+ if_null rx1263_debug, debug_981
+ rx1263_cur."!cursor_debug"("PASS", "infix:sym<?? !!>", " at pos=", rx1263_pos)
+ debug_981:
.return (rx1263_cur)
rx1263_restart:
.annotate 'line', 447
- rx1263_cur."!cursor_debug"("NEXT ", "infix:sym<?? !!>")
+ if_null rx1263_debug, debug_982
+ rx1263_cur."!cursor_debug"("NEXT", "infix:sym<?? !!>")
+ debug_982:
rx1263_fail:
(rx1263_rep, rx1263_pos, $I10, $P10) = rx1263_cur."!mark_fail"(0)
lt rx1263_pos, -1, rx1263_done
@@ -16544,14 +18015,16 @@
jump $I10
rx1263_done:
rx1263_cur."!cursor_fail"()
- rx1263_cur."!cursor_debug"("FAIL ", "infix:sym<?? !!>")
+ if_null rx1263_debug, debug_983
+ rx1263_cur."!cursor_debug"("FAIL", "infix:sym<?? !!>")
+ debug_983:
.return (rx1263_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>" :subid("329_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<?? !!>" :subid("329_1282324002.40722") :method
.annotate 'line', 447
$P1265 = self."!PREFIX__!subrule"("ws", "??")
new $P1266, "ResizablePMCArray"
@@ -16561,7 +18034,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>" :subid("330_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<=>" :subid("330_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1269_tgt
.local int rx1269_pos
@@ -16569,7 +18042,9 @@
.local int rx1269_eos
.local int rx1269_rep
.local pmc rx1269_cur
+ .local pmc rx1269_debug
(rx1269_cur, rx1269_pos, rx1269_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1269_debug, rx1269_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1269_cur
.local pmc match
.lex "$/", match
@@ -16581,7 +18056,9 @@
substr rx1269_tgt, rx1269_tgt, rx1269_off
rx1269_start:
eq $I10, 1, rx1269_restart
- rx1269_cur."!cursor_debug"("START ", "infix:sym<=>")
+ if_null rx1269_debug, debug_984
+ rx1269_cur."!cursor_debug"("START", "infix:sym<=>")
+ debug_984:
$I10 = self.'from'()
ne $I10, -1, rxscan1273_done
goto rxscan1273_scan
@@ -16602,8 +18079,8 @@
add $I11, rx1269_pos, 1
gt $I11, rx1269_eos, rx1269_fail
sub $I11, rx1269_pos, rx1269_off
- substr $S10, rx1269_tgt, $I11, 1
- ne $S10, "=", rx1269_fail
+ ord $I11, rx1269_tgt, $I11
+ ne $I11, 61, rx1269_fail
add rx1269_pos, 1
set_addr $I10, rxcap_1274_fail
($I12, $I11) = rx1269_cur."!mark_peek"($I10)
@@ -16624,11 +18101,15 @@
.annotate 'line', 547
# rx pass
rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>")
- rx1269_cur."!cursor_debug"("PASS ", "infix:sym<=>", " at pos=", rx1269_pos)
+ if_null rx1269_debug, debug_985
+ rx1269_cur."!cursor_debug"("PASS", "infix:sym<=>", " at pos=", rx1269_pos)
+ debug_985:
.return (rx1269_cur)
rx1269_restart:
.annotate 'line', 447
- rx1269_cur."!cursor_debug"("NEXT ", "infix:sym<=>")
+ if_null rx1269_debug, debug_986
+ rx1269_cur."!cursor_debug"("NEXT", "infix:sym<=>")
+ debug_986:
rx1269_fail:
(rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0)
lt rx1269_pos, -1, rx1269_done
@@ -16636,14 +18117,16 @@
jump $I10
rx1269_done:
rx1269_cur."!cursor_fail"()
- rx1269_cur."!cursor_debug"("FAIL ", "infix:sym<=>")
+ if_null rx1269_debug, debug_987
+ rx1269_cur."!cursor_debug"("FAIL", "infix:sym<=>")
+ debug_987:
.return (rx1269_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>" :subid("331_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<=>" :subid("331_1282324002.40722") :method
.annotate 'line', 447
$P1271 = self."!PREFIX__!subrule"("panic", "=")
new $P1272, "ResizablePMCArray"
@@ -16653,7 +18136,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>" :subid("332_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<:=>" :subid("332_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1276_tgt
.local int rx1276_pos
@@ -16661,7 +18144,9 @@
.local int rx1276_eos
.local int rx1276_rep
.local pmc rx1276_cur
+ .local pmc rx1276_debug
(rx1276_cur, rx1276_pos, rx1276_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1276_debug, rx1276_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1276_cur
.local pmc match
.lex "$/", match
@@ -16673,7 +18158,9 @@
substr rx1276_tgt, rx1276_tgt, rx1276_off
rx1276_start:
eq $I10, 1, rx1276_restart
- rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>")
+ if_null rx1276_debug, debug_988
+ rx1276_cur."!cursor_debug"("START", "infix:sym<:=>")
+ debug_988:
$I10 = self.'from'()
ne $I10, -1, rxscan1280_done
goto rxscan1280_scan
@@ -16717,11 +18204,15 @@
rx1276_pos = $P10."pos"()
# rx pass
rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>")
- rx1276_cur."!cursor_debug"("PASS ", "infix:sym<:=>", " at pos=", rx1276_pos)
+ if_null rx1276_debug, debug_989
+ rx1276_cur."!cursor_debug"("PASS", "infix:sym<:=>", " at pos=", rx1276_pos)
+ debug_989:
.return (rx1276_cur)
rx1276_restart:
.annotate 'line', 447
- rx1276_cur."!cursor_debug"("NEXT ", "infix:sym<:=>")
+ if_null rx1276_debug, debug_990
+ rx1276_cur."!cursor_debug"("NEXT", "infix:sym<:=>")
+ debug_990:
rx1276_fail:
(rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0)
lt rx1276_pos, -1, rx1276_done
@@ -16729,14 +18220,16 @@
jump $I10
rx1276_done:
rx1276_cur."!cursor_fail"()
- rx1276_cur."!cursor_debug"("FAIL ", "infix:sym<:=>")
+ if_null rx1276_debug, debug_991
+ rx1276_cur."!cursor_debug"("FAIL", "infix:sym<:=>")
+ debug_991:
.return (rx1276_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>" :subid("333_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<:=>" :subid("333_1282324002.40722") :method
.annotate 'line', 447
$P1278 = self."!PREFIX__!subrule"("O", ":=")
new $P1279, "ResizablePMCArray"
@@ -16746,7 +18239,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>" :subid("334_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<::=>" :subid("334_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1283_tgt
.local int rx1283_pos
@@ -16754,7 +18247,9 @@
.local int rx1283_eos
.local int rx1283_rep
.local pmc rx1283_cur
+ .local pmc rx1283_debug
(rx1283_cur, rx1283_pos, rx1283_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1283_debug, rx1283_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1283_cur
.local pmc match
.lex "$/", match
@@ -16766,7 +18261,9 @@
substr rx1283_tgt, rx1283_tgt, rx1283_off
rx1283_start:
eq $I10, 1, rx1283_restart
- rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>")
+ if_null rx1283_debug, debug_992
+ rx1283_cur."!cursor_debug"("START", "infix:sym<::=>")
+ debug_992:
$I10 = self.'from'()
ne $I10, -1, rxscan1287_done
goto rxscan1287_scan
@@ -16810,11 +18307,15 @@
rx1283_pos = $P10."pos"()
# rx pass
rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>")
- rx1283_cur."!cursor_debug"("PASS ", "infix:sym<::=>", " at pos=", rx1283_pos)
+ if_null rx1283_debug, debug_993
+ rx1283_cur."!cursor_debug"("PASS", "infix:sym<::=>", " at pos=", rx1283_pos)
+ debug_993:
.return (rx1283_cur)
rx1283_restart:
.annotate 'line', 447
- rx1283_cur."!cursor_debug"("NEXT ", "infix:sym<::=>")
+ if_null rx1283_debug, debug_994
+ rx1283_cur."!cursor_debug"("NEXT", "infix:sym<::=>")
+ debug_994:
rx1283_fail:
(rx1283_rep, rx1283_pos, $I10, $P10) = rx1283_cur."!mark_fail"(0)
lt rx1283_pos, -1, rx1283_done
@@ -16822,14 +18323,16 @@
jump $I10
rx1283_done:
rx1283_cur."!cursor_fail"()
- rx1283_cur."!cursor_debug"("FAIL ", "infix:sym<::=>")
+ if_null rx1283_debug, debug_995
+ rx1283_cur."!cursor_debug"("FAIL", "infix:sym<::=>")
+ debug_995:
.return (rx1283_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>" :subid("335_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<::=>" :subid("335_1282324002.40722") :method
.annotate 'line', 447
$P1285 = self."!PREFIX__!subrule"("O", "::=")
new $P1286, "ResizablePMCArray"
@@ -16839,7 +18342,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>" :subid("336_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<,>" :subid("336_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1290_tgt
.local int rx1290_pos
@@ -16847,7 +18350,9 @@
.local int rx1290_eos
.local int rx1290_rep
.local pmc rx1290_cur
+ .local pmc rx1290_debug
(rx1290_cur, rx1290_pos, rx1290_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1290_debug, rx1290_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1290_cur
.local pmc match
.lex "$/", match
@@ -16859,7 +18364,9 @@
substr rx1290_tgt, rx1290_tgt, rx1290_off
rx1290_start:
eq $I10, 1, rx1290_restart
- rx1290_cur."!cursor_debug"("START ", "infix:sym<,>")
+ if_null rx1290_debug, debug_996
+ rx1290_cur."!cursor_debug"("START", "infix:sym<,>")
+ debug_996:
$I10 = self.'from'()
ne $I10, -1, rxscan1294_done
goto rxscan1294_scan
@@ -16880,8 +18387,8 @@
add $I11, rx1290_pos, 1
gt $I11, rx1290_eos, rx1290_fail
sub $I11, rx1290_pos, rx1290_off
- substr $S10, rx1290_tgt, $I11, 1
- ne $S10, ",", rx1290_fail
+ ord $I11, rx1290_tgt, $I11
+ ne $I11, 44, rx1290_fail
add rx1290_pos, 1
set_addr $I10, rxcap_1295_fail
($I12, $I11) = rx1290_cur."!mark_peek"($I10)
@@ -16903,11 +18410,15 @@
rx1290_pos = $P10."pos"()
# rx pass
rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>")
- rx1290_cur."!cursor_debug"("PASS ", "infix:sym<,>", " at pos=", rx1290_pos)
+ if_null rx1290_debug, debug_997
+ rx1290_cur."!cursor_debug"("PASS", "infix:sym<,>", " at pos=", rx1290_pos)
+ debug_997:
.return (rx1290_cur)
rx1290_restart:
.annotate 'line', 447
- rx1290_cur."!cursor_debug"("NEXT ", "infix:sym<,>")
+ if_null rx1290_debug, debug_998
+ rx1290_cur."!cursor_debug"("NEXT", "infix:sym<,>")
+ debug_998:
rx1290_fail:
(rx1290_rep, rx1290_pos, $I10, $P10) = rx1290_cur."!mark_fail"(0)
lt rx1290_pos, -1, rx1290_done
@@ -16915,14 +18426,16 @@
jump $I10
rx1290_done:
rx1290_cur."!cursor_fail"()
- rx1290_cur."!cursor_debug"("FAIL ", "infix:sym<,>")
+ if_null rx1290_debug, debug_999
+ rx1290_cur."!cursor_debug"("FAIL", "infix:sym<,>")
+ debug_999:
.return (rx1290_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>" :subid("337_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<,>" :subid("337_1282324002.40722") :method
.annotate 'line', 447
$P1292 = self."!PREFIX__!subrule"("O", ",")
new $P1293, "ResizablePMCArray"
@@ -16932,7 +18445,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>" :subid("338_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<return>" :subid("338_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1297_tgt
.local int rx1297_pos
@@ -16940,7 +18453,9 @@
.local int rx1297_eos
.local int rx1297_rep
.local pmc rx1297_cur
+ .local pmc rx1297_debug
(rx1297_cur, rx1297_pos, rx1297_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1297_debug, rx1297_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1297_cur
.local pmc match
.lex "$/", match
@@ -16952,7 +18467,9 @@
substr rx1297_tgt, rx1297_tgt, rx1297_off
rx1297_start:
eq $I10, 1, rx1297_restart
- rx1297_cur."!cursor_debug"("START ", "prefix:sym<return>")
+ if_null rx1297_debug, debug_1000
+ rx1297_cur."!cursor_debug"("START", "prefix:sym<return>")
+ debug_1000:
$I10 = self.'from'()
ne $I10, -1, rxscan1300_done
goto rxscan1300_scan
@@ -17002,11 +18519,15 @@
rx1297_pos = $P10."pos"()
# rx pass
rx1297_cur."!cursor_pass"(rx1297_pos, "prefix:sym<return>")
- rx1297_cur."!cursor_debug"("PASS ", "prefix:sym<return>", " at pos=", rx1297_pos)
+ if_null rx1297_debug, debug_1001
+ rx1297_cur."!cursor_debug"("PASS", "prefix:sym<return>", " at pos=", rx1297_pos)
+ debug_1001:
.return (rx1297_cur)
rx1297_restart:
.annotate 'line', 447
- rx1297_cur."!cursor_debug"("NEXT ", "prefix:sym<return>")
+ if_null rx1297_debug, debug_1002
+ rx1297_cur."!cursor_debug"("NEXT", "prefix:sym<return>")
+ debug_1002:
rx1297_fail:
(rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0)
lt rx1297_pos, -1, rx1297_done
@@ -17014,14 +18535,16 @@
jump $I10
rx1297_done:
rx1297_cur."!cursor_fail"()
- rx1297_cur."!cursor_debug"("FAIL ", "prefix:sym<return>")
+ if_null rx1297_debug, debug_1003
+ rx1297_cur."!cursor_debug"("FAIL", "prefix:sym<return>")
+ debug_1003:
.return (rx1297_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>" :subid("339_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<return>" :subid("339_1282324002.40722") :method
.annotate 'line', 447
new $P1299, "ResizablePMCArray"
push $P1299, "return"
@@ -17030,7 +18553,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>" :subid("340_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<make>" :subid("340_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1303_tgt
.local int rx1303_pos
@@ -17038,7 +18561,9 @@
.local int rx1303_eos
.local int rx1303_rep
.local pmc rx1303_cur
+ .local pmc rx1303_debug
(rx1303_cur, rx1303_pos, rx1303_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1303_debug, rx1303_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1303_cur
.local pmc match
.lex "$/", match
@@ -17050,7 +18575,9 @@
substr rx1303_tgt, rx1303_tgt, rx1303_off
rx1303_start:
eq $I10, 1, rx1303_restart
- rx1303_cur."!cursor_debug"("START ", "prefix:sym<make>")
+ if_null rx1303_debug, debug_1004
+ rx1303_cur."!cursor_debug"("START", "prefix:sym<make>")
+ debug_1004:
$I10 = self.'from'()
ne $I10, -1, rxscan1306_done
goto rxscan1306_scan
@@ -17100,11 +18627,15 @@
rx1303_pos = $P10."pos"()
# rx pass
rx1303_cur."!cursor_pass"(rx1303_pos, "prefix:sym<make>")
- rx1303_cur."!cursor_debug"("PASS ", "prefix:sym<make>", " at pos=", rx1303_pos)
+ if_null rx1303_debug, debug_1005
+ rx1303_cur."!cursor_debug"("PASS", "prefix:sym<make>", " at pos=", rx1303_pos)
+ debug_1005:
.return (rx1303_cur)
rx1303_restart:
.annotate 'line', 447
- rx1303_cur."!cursor_debug"("NEXT ", "prefix:sym<make>")
+ if_null rx1303_debug, debug_1006
+ rx1303_cur."!cursor_debug"("NEXT", "prefix:sym<make>")
+ debug_1006:
rx1303_fail:
(rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0)
lt rx1303_pos, -1, rx1303_done
@@ -17112,14 +18643,16 @@
jump $I10
rx1303_done:
rx1303_cur."!cursor_fail"()
- rx1303_cur."!cursor_debug"("FAIL ", "prefix:sym<make>")
+ if_null rx1303_debug, debug_1007
+ rx1303_cur."!cursor_debug"("FAIL", "prefix:sym<make>")
+ debug_1007:
.return (rx1303_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>" :subid("341_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<make>" :subid("341_1282324002.40722") :method
.annotate 'line', 447
new $P1305, "ResizablePMCArray"
push $P1305, "make"
@@ -17128,7 +18661,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<last>" :subid("342_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<last>" :subid("342_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1309_tgt
.local int rx1309_pos
@@ -17136,7 +18669,9 @@
.local int rx1309_eos
.local int rx1309_rep
.local pmc rx1309_cur
+ .local pmc rx1309_debug
(rx1309_cur, rx1309_pos, rx1309_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1309_debug, rx1309_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1309_cur
.local pmc match
.lex "$/", match
@@ -17148,7 +18683,9 @@
substr rx1309_tgt, rx1309_tgt, rx1309_off
rx1309_start:
eq $I10, 1, rx1309_restart
- rx1309_cur."!cursor_debug"("START ", "term:sym<last>")
+ if_null rx1309_debug, debug_1008
+ rx1309_cur."!cursor_debug"("START", "term:sym<last>")
+ debug_1008:
$I10 = self.'from'()
ne $I10, -1, rxscan1312_done
goto rxscan1312_scan
@@ -17185,11 +18722,15 @@
rxcap_1313_done:
# rx pass
rx1309_cur."!cursor_pass"(rx1309_pos, "term:sym<last>")
- rx1309_cur."!cursor_debug"("PASS ", "term:sym<last>", " at pos=", rx1309_pos)
+ if_null rx1309_debug, debug_1009
+ rx1309_cur."!cursor_debug"("PASS", "term:sym<last>", " at pos=", rx1309_pos)
+ debug_1009:
.return (rx1309_cur)
rx1309_restart:
.annotate 'line', 447
- rx1309_cur."!cursor_debug"("NEXT ", "term:sym<last>")
+ if_null rx1309_debug, debug_1010
+ rx1309_cur."!cursor_debug"("NEXT", "term:sym<last>")
+ debug_1010:
rx1309_fail:
(rx1309_rep, rx1309_pos, $I10, $P10) = rx1309_cur."!mark_fail"(0)
lt rx1309_pos, -1, rx1309_done
@@ -17197,14 +18738,16 @@
jump $I10
rx1309_done:
rx1309_cur."!cursor_fail"()
- rx1309_cur."!cursor_debug"("FAIL ", "term:sym<last>")
+ if_null rx1309_debug, debug_1011
+ rx1309_cur."!cursor_debug"("FAIL", "term:sym<last>")
+ debug_1011:
.return (rx1309_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>" :subid("343_1280467477.44751") :method
+.sub "!PREFIX__term:sym<last>" :subid("343_1282324002.40722") :method
.annotate 'line', 447
new $P1311, "ResizablePMCArray"
push $P1311, "last"
@@ -17213,7 +18756,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<next>" :subid("344_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<next>" :subid("344_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1315_tgt
.local int rx1315_pos
@@ -17221,7 +18764,9 @@
.local int rx1315_eos
.local int rx1315_rep
.local pmc rx1315_cur
+ .local pmc rx1315_debug
(rx1315_cur, rx1315_pos, rx1315_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1315_debug, rx1315_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1315_cur
.local pmc match
.lex "$/", match
@@ -17233,7 +18778,9 @@
substr rx1315_tgt, rx1315_tgt, rx1315_off
rx1315_start:
eq $I10, 1, rx1315_restart
- rx1315_cur."!cursor_debug"("START ", "term:sym<next>")
+ if_null rx1315_debug, debug_1012
+ rx1315_cur."!cursor_debug"("START", "term:sym<next>")
+ debug_1012:
$I10 = self.'from'()
ne $I10, -1, rxscan1318_done
goto rxscan1318_scan
@@ -17270,11 +18817,15 @@
rxcap_1319_done:
# rx pass
rx1315_cur."!cursor_pass"(rx1315_pos, "term:sym<next>")
- rx1315_cur."!cursor_debug"("PASS ", "term:sym<next>", " at pos=", rx1315_pos)
+ if_null rx1315_debug, debug_1013
+ rx1315_cur."!cursor_debug"("PASS", "term:sym<next>", " at pos=", rx1315_pos)
+ debug_1013:
.return (rx1315_cur)
rx1315_restart:
.annotate 'line', 447
- rx1315_cur."!cursor_debug"("NEXT ", "term:sym<next>")
+ if_null rx1315_debug, debug_1014
+ rx1315_cur."!cursor_debug"("NEXT", "term:sym<next>")
+ debug_1014:
rx1315_fail:
(rx1315_rep, rx1315_pos, $I10, $P10) = rx1315_cur."!mark_fail"(0)
lt rx1315_pos, -1, rx1315_done
@@ -17282,14 +18833,16 @@
jump $I10
rx1315_done:
rx1315_cur."!cursor_fail"()
- rx1315_cur."!cursor_debug"("FAIL ", "term:sym<next>")
+ if_null rx1315_debug, debug_1015
+ rx1315_cur."!cursor_debug"("FAIL", "term:sym<next>")
+ debug_1015:
.return (rx1315_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>" :subid("345_1280467477.44751") :method
+.sub "!PREFIX__term:sym<next>" :subid("345_1282324002.40722") :method
.annotate 'line', 447
new $P1317, "ResizablePMCArray"
push $P1317, "next"
@@ -17298,7 +18851,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>" :subid("346_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<redo>" :subid("346_1282324002.40722") :method :outer("11_1282324002.40722")
.annotate 'line', 447
.local string rx1321_tgt
.local int rx1321_pos
@@ -17306,7 +18859,9 @@
.local int rx1321_eos
.local int rx1321_rep
.local pmc rx1321_cur
+ .local pmc rx1321_debug
(rx1321_cur, rx1321_pos, rx1321_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1321_debug, rx1321_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1321_cur
.local pmc match
.lex "$/", match
@@ -17318,7 +18873,9 @@
substr rx1321_tgt, rx1321_tgt, rx1321_off
rx1321_start:
eq $I10, 1, rx1321_restart
- rx1321_cur."!cursor_debug"("START ", "term:sym<redo>")
+ if_null rx1321_debug, debug_1016
+ rx1321_cur."!cursor_debug"("START", "term:sym<redo>")
+ debug_1016:
$I10 = self.'from'()
ne $I10, -1, rxscan1324_done
goto rxscan1324_scan
@@ -17355,11 +18912,15 @@
rxcap_1325_done:
# rx pass
rx1321_cur."!cursor_pass"(rx1321_pos, "term:sym<redo>")
- rx1321_cur."!cursor_debug"("PASS ", "term:sym<redo>", " at pos=", rx1321_pos)
+ if_null rx1321_debug, debug_1017
+ rx1321_cur."!cursor_debug"("PASS", "term:sym<redo>", " at pos=", rx1321_pos)
+ debug_1017:
.return (rx1321_cur)
rx1321_restart:
.annotate 'line', 447
- rx1321_cur."!cursor_debug"("NEXT ", "term:sym<redo>")
+ if_null rx1321_debug, debug_1018
+ rx1321_cur."!cursor_debug"("NEXT", "term:sym<redo>")
+ debug_1018:
rx1321_fail:
(rx1321_rep, rx1321_pos, $I10, $P10) = rx1321_cur."!mark_fail"(0)
lt rx1321_pos, -1, rx1321_done
@@ -17367,14 +18928,16 @@
jump $I10
rx1321_done:
rx1321_cur."!cursor_fail"()
- rx1321_cur."!cursor_debug"("FAIL ", "term:sym<redo>")
+ if_null rx1321_debug, debug_1019
+ rx1321_cur."!cursor_debug"("FAIL", "term:sym<redo>")
+ debug_1019:
.return (rx1321_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>" :subid("347_1280467477.44751") :method
+.sub "!PREFIX__term:sym<redo>" :subid("347_1282324002.40722") :method
.annotate 'line', 447
new $P1323, "ResizablePMCArray"
push $P1323, "redo"
@@ -17384,7 +18947,7 @@
.namespace ["NQP";"Grammar"]
.include "except_types.pasm"
-.sub "smartmatch" :subid("348_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "smartmatch" :subid("348_1282324002.40722") :method :outer("11_1282324002.40722")
.param pmc param_1329
.annotate 'line', 561
new $P1328, 'ExceptionHandler'
@@ -17397,34 +18960,34 @@
new $P1330, "Undef"
.lex "$t", $P1330
find_lex $P1331, "$/"
- unless_null $P1331, vivify_384
+ unless_null $P1331, vivify_1020
$P1331 = root_new ['parrot';'ResizablePMCArray']
- vivify_384:
+ vivify_1020:
set $P1332, $P1331[0]
- unless_null $P1332, vivify_385
+ unless_null $P1332, vivify_1021
new $P1332, "Undef"
- vivify_385:
+ vivify_1021:
store_lex "$t", $P1332
find_lex $P1333, "$/"
- unless_null $P1333, vivify_386
+ unless_null $P1333, vivify_1022
$P1333 = root_new ['parrot';'ResizablePMCArray']
- vivify_386:
+ vivify_1022:
set $P1334, $P1333[1]
- unless_null $P1334, vivify_387
+ unless_null $P1334, vivify_1023
new $P1334, "Undef"
- vivify_387:
+ vivify_1023:
find_lex $P1335, "$/"
- unless_null $P1335, vivify_388
+ unless_null $P1335, vivify_1024
$P1335 = root_new ['parrot';'ResizablePMCArray']
store_lex "$/", $P1335
- vivify_388:
+ vivify_1024:
set $P1335[0], $P1334
find_lex $P1336, "$t"
find_lex $P1337, "$/"
- unless_null $P1337, vivify_389
+ unless_null $P1337, vivify_1025
$P1337 = root_new ['parrot';'ResizablePMCArray']
store_lex "$/", $P1337
- vivify_389:
+ vivify_1025:
set $P1337[1], $P1336
.annotate 'line', 561
.return ($P1336)
@@ -17437,34 +19000,34 @@
.namespace ["NQP";"Regex"]
-.sub "_block1339" :subid("349_1280467477.44751") :outer("11_1280467477.44751")
+.sub "_block1339" :subid("349_1282324002.40722") :outer("11_1282324002.40722")
.annotate 'line', 567
- .const 'Sub' $P1396 = "368_1280467477.44751"
+ .const 'Sub' $P1396 = "368_1282324002.40722"
capture_lex $P1396
- .const 'Sub' $P1391 = "366_1280467477.44751"
+ .const 'Sub' $P1391 = "366_1282324002.40722"
capture_lex $P1391
- .const 'Sub' $P1379 = "363_1280467477.44751"
+ .const 'Sub' $P1379 = "363_1282324002.40722"
capture_lex $P1379
- .const 'Sub' $P1369 = "360_1280467477.44751"
+ .const 'Sub' $P1369 = "360_1282324002.40722"
capture_lex $P1369
- .const 'Sub' $P1364 = "358_1280467477.44751"
+ .const 'Sub' $P1364 = "358_1282324002.40722"
capture_lex $P1364
- .const 'Sub' $P1355 = "355_1280467477.44751"
+ .const 'Sub' $P1355 = "355_1282324002.40722"
capture_lex $P1355
- .const 'Sub' $P1350 = "353_1280467477.44751"
+ .const 'Sub' $P1350 = "353_1282324002.40722"
capture_lex $P1350
- .const 'Sub' $P1341 = "350_1280467477.44751"
+ .const 'Sub' $P1341 = "350_1282324002.40722"
capture_lex $P1341
- .const 'Sub' $P1396 = "368_1280467477.44751"
+ .const 'Sub' $P1396 = "368_1282324002.40722"
capture_lex $P1396
.return ($P1396)
.end
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>" :subid("350_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<:my>" :subid("350_1282324002.40722") :method :outer("349_1282324002.40722")
.annotate 'line', 567
- .const 'Sub' $P1347 = "352_1280467477.44751"
+ .const 'Sub' $P1347 = "352_1282324002.40722"
capture_lex $P1347
.local string rx1342_tgt
.local int rx1342_pos
@@ -17472,7 +19035,9 @@
.local int rx1342_eos
.local int rx1342_rep
.local pmc rx1342_cur
+ .local pmc rx1342_debug
(rx1342_cur, rx1342_pos, rx1342_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1342_debug, rx1342_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1342_cur
.local pmc match
.lex "$/", match
@@ -17484,7 +19049,9 @@
substr rx1342_tgt, rx1342_tgt, rx1342_off
rx1342_start:
eq $I10, 1, rx1342_restart
- rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>")
+ if_null rx1342_debug, debug_1026
+ rx1342_cur."!cursor_debug"("START", "metachar:sym<:my>")
+ debug_1026:
$I10 = self.'from'()
ne $I10, -1, rxscan1345_done
goto rxscan1345_scan
@@ -17502,12 +19069,12 @@
add $I11, rx1342_pos, 1
gt $I11, rx1342_eos, rx1342_fail
sub $I11, rx1342_pos, rx1342_off
- substr $S10, rx1342_tgt, $I11, 1
- ne $S10, ":", rx1342_fail
+ ord $I11, rx1342_tgt, $I11
+ ne $I11, 58, rx1342_fail
add rx1342_pos, 1
# rx subrule "before" subtype=zerowidth negate=
rx1342_cur."!cursor_pos"(rx1342_pos)
- .const 'Sub' $P1347 = "352_1280467477.44751"
+ .const 'Sub' $P1347 = "352_1282324002.40722"
capture_lex $P1347
$P10 = rx1342_cur."before"($P1347)
unless $P10, rx1342_fail
@@ -17527,17 +19094,21 @@
add $I11, rx1342_pos, 1
gt $I11, rx1342_eos, rx1342_fail
sub $I11, rx1342_pos, rx1342_off
- substr $S10, rx1342_tgt, $I11, 1
- ne $S10, ";", rx1342_fail
+ ord $I11, rx1342_tgt, $I11
+ ne $I11, 59, rx1342_fail
add rx1342_pos, 1
.annotate 'line', 568
# rx pass
rx1342_cur."!cursor_pass"(rx1342_pos, "metachar:sym<:my>")
- rx1342_cur."!cursor_debug"("PASS ", "metachar:sym<:my>", " at pos=", rx1342_pos)
+ if_null rx1342_debug, debug_1031
+ rx1342_cur."!cursor_debug"("PASS", "metachar:sym<:my>", " at pos=", rx1342_pos)
+ debug_1031:
.return (rx1342_cur)
rx1342_restart:
.annotate 'line', 567
- rx1342_cur."!cursor_debug"("NEXT ", "metachar:sym<:my>")
+ if_null rx1342_debug, debug_1032
+ rx1342_cur."!cursor_debug"("NEXT", "metachar:sym<:my>")
+ debug_1032:
rx1342_fail:
(rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0)
lt rx1342_pos, -1, rx1342_done
@@ -17545,14 +19116,16 @@
jump $I10
rx1342_done:
rx1342_cur."!cursor_fail"()
- rx1342_cur."!cursor_debug"("FAIL ", "metachar:sym<:my>")
+ if_null rx1342_debug, debug_1033
+ rx1342_cur."!cursor_debug"("FAIL", "metachar:sym<:my>")
+ debug_1033:
.return (rx1342_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>" :subid("351_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<:my>" :subid("351_1282324002.40722") :method
.annotate 'line', 567
new $P1344, "ResizablePMCArray"
push $P1344, ":"
@@ -17561,7 +19134,7 @@
.namespace ["NQP";"Regex"]
-.sub "_block1346" :anon :subid("352_1280467477.44751") :method :outer("350_1280467477.44751")
+.sub "_block1346" :anon :subid("352_1282324002.40722") :method :outer("350_1282324002.40722")
.annotate 'line', 569
.local string rx1348_tgt
.local int rx1348_pos
@@ -17569,7 +19142,9 @@
.local int rx1348_eos
.local int rx1348_rep
.local pmc rx1348_cur
+ .local pmc rx1348_debug
(rx1348_cur, rx1348_pos, rx1348_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1348_debug, rx1348_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1348_cur
.local pmc match
.lex "$/", match
@@ -17581,7 +19156,9 @@
substr rx1348_tgt, rx1348_tgt, rx1348_off
rx1348_start:
eq $I10, 1, rx1348_restart
- rx1348_cur."!cursor_debug"("START ", "")
+ if_null rx1348_debug, debug_1027
+ rx1348_cur."!cursor_debug"("START", "")
+ debug_1027:
$I10 = self.'from'()
ne $I10, -1, rxscan1349_done
goto rxscan1349_scan
@@ -17603,10 +19180,14 @@
add rx1348_pos, 2
# rx pass
rx1348_cur."!cursor_pass"(rx1348_pos, "")
- rx1348_cur."!cursor_debug"("PASS ", "", " at pos=", rx1348_pos)
+ if_null rx1348_debug, debug_1028
+ rx1348_cur."!cursor_debug"("PASS", "", " at pos=", rx1348_pos)
+ debug_1028:
.return (rx1348_cur)
rx1348_restart:
- rx1348_cur."!cursor_debug"("NEXT ", "")
+ if_null rx1348_debug, debug_1029
+ rx1348_cur."!cursor_debug"("NEXT", "")
+ debug_1029:
rx1348_fail:
(rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0)
lt rx1348_pos, -1, rx1348_done
@@ -17614,14 +19195,16 @@
jump $I10
rx1348_done:
rx1348_cur."!cursor_fail"()
- rx1348_cur."!cursor_debug"("FAIL ", "")
+ if_null rx1348_debug, debug_1030
+ rx1348_cur."!cursor_debug"("FAIL", "")
+ debug_1030:
.return (rx1348_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>" :subid("353_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<{ }>" :subid("353_1282324002.40722") :method :outer("349_1282324002.40722")
.annotate 'line', 567
.local string rx1351_tgt
.local int rx1351_pos
@@ -17629,7 +19212,9 @@
.local int rx1351_eos
.local int rx1351_rep
.local pmc rx1351_cur
+ .local pmc rx1351_debug
(rx1351_cur, rx1351_pos, rx1351_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1351_debug, rx1351_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1351_cur
.local pmc match
.lex "$/", match
@@ -17641,7 +19226,9 @@
substr rx1351_tgt, rx1351_tgt, rx1351_off
rx1351_start:
eq $I10, 1, rx1351_restart
- rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+ if_null rx1351_debug, debug_1034
+ rx1351_cur."!cursor_debug"("START", "metachar:sym<{ }>")
+ debug_1034:
$I10 = self.'from'()
ne $I10, -1, rxscan1354_done
goto rxscan1354_scan
@@ -17671,11 +19258,15 @@
.annotate 'line', 572
# rx pass
rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>")
- rx1351_cur."!cursor_debug"("PASS ", "metachar:sym<{ }>", " at pos=", rx1351_pos)
+ if_null rx1351_debug, debug_1035
+ rx1351_cur."!cursor_debug"("PASS", "metachar:sym<{ }>", " at pos=", rx1351_pos)
+ debug_1035:
.return (rx1351_cur)
rx1351_restart:
.annotate 'line', 567
- rx1351_cur."!cursor_debug"("NEXT ", "metachar:sym<{ }>")
+ if_null rx1351_debug, debug_1036
+ rx1351_cur."!cursor_debug"("NEXT", "metachar:sym<{ }>")
+ debug_1036:
rx1351_fail:
(rx1351_rep, rx1351_pos, $I10, $P10) = rx1351_cur."!mark_fail"(0)
lt rx1351_pos, -1, rx1351_done
@@ -17683,14 +19274,16 @@
jump $I10
rx1351_done:
rx1351_cur."!cursor_fail"()
- rx1351_cur."!cursor_debug"("FAIL ", "metachar:sym<{ }>")
+ if_null rx1351_debug, debug_1037
+ rx1351_cur."!cursor_debug"("FAIL", "metachar:sym<{ }>")
+ debug_1037:
.return (rx1351_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>" :subid("354_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<{ }>" :subid("354_1282324002.40722") :method
.annotate 'line', 567
new $P1353, "ResizablePMCArray"
push $P1353, "{"
@@ -17699,9 +19292,9 @@
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<nqpvar>" :subid("355_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<nqpvar>" :subid("355_1282324002.40722") :method :outer("349_1282324002.40722")
.annotate 'line', 567
- .const 'Sub' $P1361 = "357_1280467477.44751"
+ .const 'Sub' $P1361 = "357_1282324002.40722"
capture_lex $P1361
.local string rx1356_tgt
.local int rx1356_pos
@@ -17709,7 +19302,9 @@
.local int rx1356_eos
.local int rx1356_rep
.local pmc rx1356_cur
+ .local pmc rx1356_debug
(rx1356_cur, rx1356_pos, rx1356_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1356_debug, rx1356_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1356_cur
.local pmc match
.lex "$/", match
@@ -17721,7 +19316,9 @@
substr rx1356_tgt, rx1356_tgt, rx1356_off
rx1356_start:
eq $I10, 1, rx1356_restart
- rx1356_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
+ if_null rx1356_debug, debug_1038
+ rx1356_cur."!cursor_debug"("START", "metachar:sym<nqpvar>")
+ debug_1038:
$I10 = self.'from'()
ne $I10, -1, rxscan1359_done
goto rxscan1359_scan
@@ -17743,7 +19340,7 @@
lt $I11, 0, rx1356_fail
# rx subrule "before" subtype=zerowidth negate=
rx1356_cur."!cursor_pos"(rx1356_pos)
- .const 'Sub' $P1361 = "357_1280467477.44751"
+ .const 'Sub' $P1361 = "357_1282324002.40722"
capture_lex $P1361
$P10 = rx1356_cur."before"($P1361)
unless $P10, rx1356_fail
@@ -17757,11 +19354,15 @@
.annotate 'line', 576
# rx pass
rx1356_cur."!cursor_pass"(rx1356_pos, "metachar:sym<nqpvar>")
- rx1356_cur."!cursor_debug"("PASS ", "metachar:sym<nqpvar>", " at pos=", rx1356_pos)
+ if_null rx1356_debug, debug_1043
+ rx1356_cur."!cursor_debug"("PASS", "metachar:sym<nqpvar>", " at pos=", rx1356_pos)
+ debug_1043:
.return (rx1356_cur)
rx1356_restart:
.annotate 'line', 567
- rx1356_cur."!cursor_debug"("NEXT ", "metachar:sym<nqpvar>")
+ if_null rx1356_debug, debug_1044
+ rx1356_cur."!cursor_debug"("NEXT", "metachar:sym<nqpvar>")
+ debug_1044:
rx1356_fail:
(rx1356_rep, rx1356_pos, $I10, $P10) = rx1356_cur."!mark_fail"(0)
lt rx1356_pos, -1, rx1356_done
@@ -17769,14 +19370,16 @@
jump $I10
rx1356_done:
rx1356_cur."!cursor_fail"()
- rx1356_cur."!cursor_debug"("FAIL ", "metachar:sym<nqpvar>")
+ if_null rx1356_debug, debug_1045
+ rx1356_cur."!cursor_debug"("FAIL", "metachar:sym<nqpvar>")
+ debug_1045:
.return (rx1356_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<nqpvar>" :subid("356_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<nqpvar>" :subid("356_1282324002.40722") :method
.annotate 'line', 567
new $P1358, "ResizablePMCArray"
push $P1358, "$"
@@ -17786,7 +19389,7 @@
.namespace ["NQP";"Regex"]
-.sub "_block1360" :anon :subid("357_1280467477.44751") :method :outer("355_1280467477.44751")
+.sub "_block1360" :anon :subid("357_1282324002.40722") :method :outer("355_1282324002.40722")
.annotate 'line', 577
.local string rx1362_tgt
.local int rx1362_pos
@@ -17794,7 +19397,9 @@
.local int rx1362_eos
.local int rx1362_rep
.local pmc rx1362_cur
+ .local pmc rx1362_debug
(rx1362_cur, rx1362_pos, rx1362_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1362_debug, rx1362_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1362_cur
.local pmc match
.lex "$/", match
@@ -17806,7 +19411,9 @@
substr rx1362_tgt, rx1362_tgt, rx1362_off
rx1362_start:
eq $I10, 1, rx1362_restart
- rx1362_cur."!cursor_debug"("START ", "")
+ if_null rx1362_debug, debug_1039
+ rx1362_cur."!cursor_debug"("START", "")
+ debug_1039:
$I10 = self.'from'()
ne $I10, -1, rxscan1363_done
goto rxscan1363_scan
@@ -17830,10 +19437,14 @@
inc rx1362_pos
# rx pass
rx1362_cur."!cursor_pass"(rx1362_pos, "")
- rx1362_cur."!cursor_debug"("PASS ", "", " at pos=", rx1362_pos)
+ if_null rx1362_debug, debug_1040
+ rx1362_cur."!cursor_debug"("PASS", "", " at pos=", rx1362_pos)
+ debug_1040:
.return (rx1362_cur)
rx1362_restart:
- rx1362_cur."!cursor_debug"("NEXT ", "")
+ if_null rx1362_debug, debug_1041
+ rx1362_cur."!cursor_debug"("NEXT", "")
+ debug_1041:
rx1362_fail:
(rx1362_rep, rx1362_pos, $I10, $P10) = rx1362_cur."!mark_fail"(0)
lt rx1362_pos, -1, rx1362_done
@@ -17841,14 +19452,16 @@
jump $I10
rx1362_done:
rx1362_cur."!cursor_fail"()
- rx1362_cur."!cursor_debug"("FAIL ", "")
+ if_null rx1362_debug, debug_1042
+ rx1362_cur."!cursor_debug"("FAIL", "")
+ debug_1042:
.return (rx1362_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>" :subid("358_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<{ }>" :subid("358_1282324002.40722") :method :outer("349_1282324002.40722")
.annotate 'line', 567
.local string rx1365_tgt
.local int rx1365_pos
@@ -17856,7 +19469,9 @@
.local int rx1365_eos
.local int rx1365_rep
.local pmc rx1365_cur
+ .local pmc rx1365_debug
(rx1365_cur, rx1365_pos, rx1365_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1365_debug, rx1365_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1365_cur
.local pmc match
.lex "$/", match
@@ -17868,7 +19483,9 @@
substr rx1365_tgt, rx1365_tgt, rx1365_off
rx1365_start:
eq $I10, 1, rx1365_restart
- rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+ if_null rx1365_debug, debug_1046
+ rx1365_cur."!cursor_debug"("START", "assertion:sym<{ }>")
+ debug_1046:
$I10 = self.'from'()
ne $I10, -1, rxscan1368_done
goto rxscan1368_scan
@@ -17898,11 +19515,15 @@
.annotate 'line', 580
# rx pass
rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>")
- rx1365_cur."!cursor_debug"("PASS ", "assertion:sym<{ }>", " at pos=", rx1365_pos)
+ if_null rx1365_debug, debug_1047
+ rx1365_cur."!cursor_debug"("PASS", "assertion:sym<{ }>", " at pos=", rx1365_pos)
+ debug_1047:
.return (rx1365_cur)
rx1365_restart:
.annotate 'line', 567
- rx1365_cur."!cursor_debug"("NEXT ", "assertion:sym<{ }>")
+ if_null rx1365_debug, debug_1048
+ rx1365_cur."!cursor_debug"("NEXT", "assertion:sym<{ }>")
+ debug_1048:
rx1365_fail:
(rx1365_rep, rx1365_pos, $I10, $P10) = rx1365_cur."!mark_fail"(0)
lt rx1365_pos, -1, rx1365_done
@@ -17910,14 +19531,16 @@
jump $I10
rx1365_done:
rx1365_cur."!cursor_fail"()
- rx1365_cur."!cursor_debug"("FAIL ", "assertion:sym<{ }>")
+ if_null rx1365_debug, debug_1049
+ rx1365_cur."!cursor_debug"("FAIL", "assertion:sym<{ }>")
+ debug_1049:
.return (rx1365_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>" :subid("359_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<{ }>" :subid("359_1282324002.40722") :method
.annotate 'line', 567
new $P1367, "ResizablePMCArray"
push $P1367, "{"
@@ -17926,9 +19549,9 @@
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<?{ }>" :subid("360_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<?{ }>" :subid("360_1282324002.40722") :method :outer("349_1282324002.40722")
.annotate 'line', 567
- .const 'Sub' $P1375 = "362_1280467477.44751"
+ .const 'Sub' $P1375 = "362_1282324002.40722"
capture_lex $P1375
.local string rx1370_tgt
.local int rx1370_pos
@@ -17936,7 +19559,9 @@
.local int rx1370_eos
.local int rx1370_rep
.local pmc rx1370_cur
+ .local pmc rx1370_debug
(rx1370_cur, rx1370_pos, rx1370_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1370_debug, rx1370_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1370_cur
.local pmc match
.lex "$/", match
@@ -17948,7 +19573,9 @@
substr rx1370_tgt, rx1370_tgt, rx1370_off
rx1370_start:
eq $I10, 1, rx1370_restart
- rx1370_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
+ if_null rx1370_debug, debug_1050
+ rx1370_cur."!cursor_debug"("START", "assertion:sym<?{ }>")
+ debug_1050:
$I10 = self.'from'()
ne $I10, -1, rxscan1373_done
goto rxscan1373_scan
@@ -17974,7 +19601,7 @@
inc rx1370_pos
# rx subrule "before" subtype=zerowidth negate=
rx1370_cur."!cursor_pos"(rx1370_pos)
- .const 'Sub' $P1375 = "362_1280467477.44751"
+ .const 'Sub' $P1375 = "362_1282324002.40722"
capture_lex $P1375
$P10 = rx1370_cur."before"($P1375)
unless $P10, rx1370_fail
@@ -17999,11 +19626,15 @@
.annotate 'line', 584
# rx pass
rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym<?{ }>")
- rx1370_cur."!cursor_debug"("PASS ", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
+ if_null rx1370_debug, debug_1055
+ rx1370_cur."!cursor_debug"("PASS", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
+ debug_1055:
.return (rx1370_cur)
rx1370_restart:
.annotate 'line', 567
- rx1370_cur."!cursor_debug"("NEXT ", "assertion:sym<?{ }>")
+ if_null rx1370_debug, debug_1056
+ rx1370_cur."!cursor_debug"("NEXT", "assertion:sym<?{ }>")
+ debug_1056:
rx1370_fail:
(rx1370_rep, rx1370_pos, $I10, $P10) = rx1370_cur."!mark_fail"(0)
lt rx1370_pos, -1, rx1370_done
@@ -18011,14 +19642,16 @@
jump $I10
rx1370_done:
rx1370_cur."!cursor_fail"()
- rx1370_cur."!cursor_debug"("FAIL ", "assertion:sym<?{ }>")
+ if_null rx1370_debug, debug_1057
+ rx1370_cur."!cursor_debug"("FAIL", "assertion:sym<?{ }>")
+ debug_1057:
.return (rx1370_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<?{ }>" :subid("361_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<?{ }>" :subid("361_1282324002.40722") :method
.annotate 'line', 567
new $P1372, "ResizablePMCArray"
push $P1372, "!"
@@ -18028,7 +19661,7 @@
.namespace ["NQP";"Regex"]
-.sub "_block1374" :anon :subid("362_1280467477.44751") :method :outer("360_1280467477.44751")
+.sub "_block1374" :anon :subid("362_1282324002.40722") :method :outer("360_1282324002.40722")
.annotate 'line', 585
.local string rx1376_tgt
.local int rx1376_pos
@@ -18036,7 +19669,9 @@
.local int rx1376_eos
.local int rx1376_rep
.local pmc rx1376_cur
+ .local pmc rx1376_debug
(rx1376_cur, rx1376_pos, rx1376_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1376_debug, rx1376_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1376_cur
.local pmc match
.lex "$/", match
@@ -18048,7 +19683,9 @@
substr rx1376_tgt, rx1376_tgt, rx1376_off
rx1376_start:
eq $I10, 1, rx1376_restart
- rx1376_cur."!cursor_debug"("START ", "")
+ if_null rx1376_debug, debug_1051
+ rx1376_cur."!cursor_debug"("START", "")
+ debug_1051:
$I10 = self.'from'()
ne $I10, -1, rxscan1377_done
goto rxscan1377_scan
@@ -18065,15 +19702,19 @@
add $I11, rx1376_pos, 1
gt $I11, rx1376_eos, rx1376_fail
sub $I11, rx1376_pos, rx1376_off
- substr $S10, rx1376_tgt, $I11, 1
- ne $S10, "{", rx1376_fail
+ ord $I11, rx1376_tgt, $I11
+ ne $I11, 123, rx1376_fail
add rx1376_pos, 1
# rx pass
rx1376_cur."!cursor_pass"(rx1376_pos, "")
- rx1376_cur."!cursor_debug"("PASS ", "", " at pos=", rx1376_pos)
+ if_null rx1376_debug, debug_1052
+ rx1376_cur."!cursor_debug"("PASS", "", " at pos=", rx1376_pos)
+ debug_1052:
.return (rx1376_cur)
rx1376_restart:
- rx1376_cur."!cursor_debug"("NEXT ", "")
+ if_null rx1376_debug, debug_1053
+ rx1376_cur."!cursor_debug"("NEXT", "")
+ debug_1053:
rx1376_fail:
(rx1376_rep, rx1376_pos, $I10, $P10) = rx1376_cur."!mark_fail"(0)
lt rx1376_pos, -1, rx1376_done
@@ -18081,16 +19722,18 @@
jump $I10
rx1376_done:
rx1376_cur."!cursor_fail"()
- rx1376_cur."!cursor_debug"("FAIL ", "")
+ if_null rx1376_debug, debug_1054
+ rx1376_cur."!cursor_debug"("FAIL", "")
+ debug_1054:
.return (rx1376_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>" :subid("363_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<name>" :subid("363_1282324002.40722") :method :outer("349_1282324002.40722")
.annotate 'line', 567
- .const 'Sub' $P1388 = "365_1280467477.44751"
+ .const 'Sub' $P1388 = "365_1282324002.40722"
capture_lex $P1388
.local string rx1380_tgt
.local int rx1380_pos
@@ -18098,8 +19741,10 @@
.local int rx1380_eos
.local int rx1380_rep
.local pmc rx1380_cur
+ .local pmc rx1380_debug
(rx1380_cur, rx1380_pos, rx1380_tgt, $I10) = self."!cursor_start"()
- rx1380_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+ rx1380_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+ getattribute rx1380_debug, rx1380_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1380_cur
.local pmc match
.lex "$/", match
@@ -18111,7 +19756,9 @@
substr rx1380_tgt, rx1380_tgt, rx1380_off
rx1380_start:
eq $I10, 1, rx1380_restart
- rx1380_cur."!cursor_debug"("START ", "assertion:sym<name>")
+ if_null rx1380_debug, debug_1058
+ rx1380_cur."!cursor_debug"("START", "assertion:sym<name>")
+ debug_1058:
$I10 = self.'from'()
ne $I10, -1, rxscan1384_done
goto rxscan1384_scan
@@ -18144,7 +19791,7 @@
.annotate 'line', 591
# rx subrule "before" subtype=zerowidth negate=
rx1380_cur."!cursor_pos"(rx1380_pos)
- .const 'Sub' $P1388 = "365_1280467477.44751"
+ .const 'Sub' $P1388 = "365_1282324002.40722"
capture_lex $P1388
$P10 = rx1380_cur."before"($P1388)
unless $P10, rx1380_fail
@@ -18157,8 +19804,8 @@
add $I11, rx1380_pos, 1
gt $I11, rx1380_eos, rx1380_fail
sub $I11, rx1380_pos, rx1380_off
- substr $S10, rx1380_tgt, $I11, 1
- ne $S10, "=", rx1380_fail
+ ord $I11, rx1380_tgt, $I11
+ ne $I11, 61, rx1380_fail
add rx1380_pos, 1
# rx subrule "assertion" subtype=capture negate=
rx1380_cur."!cursor_pos"(rx1380_pos)
@@ -18176,8 +19823,8 @@
add $I11, rx1380_pos, 1
gt $I11, rx1380_eos, rx1380_fail
sub $I11, rx1380_pos, rx1380_off
- substr $S10, rx1380_tgt, $I11, 1
- ne $S10, ":", rx1380_fail
+ ord $I11, rx1380_tgt, $I11
+ ne $I11, 58, rx1380_fail
add rx1380_pos, 1
# rx subrule "arglist" subtype=capture negate=
rx1380_cur."!cursor_pos"(rx1380_pos)
@@ -18195,8 +19842,8 @@
add $I11, rx1380_pos, 1
gt $I11, rx1380_eos, rx1380_fail
sub $I11, rx1380_pos, rx1380_off
- substr $S10, rx1380_tgt, $I11, 1
- ne $S10, "(", rx1380_fail
+ ord $I11, rx1380_tgt, $I11
+ ne $I11, 40, rx1380_fail
add rx1380_pos, 1
# rx subrule "LANG" subtype=capture negate=
rx1380_cur."!cursor_pos"(rx1380_pos)
@@ -18209,8 +19856,8 @@
add $I11, rx1380_pos, 1
gt $I11, rx1380_eos, rx1380_fail
sub $I11, rx1380_pos, rx1380_off
- substr $S10, rx1380_tgt, $I11, 1
- ne $S10, ")", rx1380_fail
+ ord $I11, rx1380_tgt, $I11
+ ne $I11, 41, rx1380_fail
add rx1380_pos, 1
goto alt1386_end
alt1386_4:
@@ -18235,11 +19882,15 @@
.annotate 'line', 588
# rx pass
rx1380_cur."!cursor_pass"(rx1380_pos, "assertion:sym<name>")
- rx1380_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx1380_pos)
+ if_null rx1380_debug, debug_1063
+ rx1380_cur."!cursor_debug"("PASS", "assertion:sym<name>", " at pos=", rx1380_pos)
+ debug_1063:
.return (rx1380_cur)
rx1380_restart:
.annotate 'line', 567
- rx1380_cur."!cursor_debug"("NEXT ", "assertion:sym<name>")
+ if_null rx1380_debug, debug_1064
+ rx1380_cur."!cursor_debug"("NEXT", "assertion:sym<name>")
+ debug_1064:
rx1380_fail:
(rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0)
lt rx1380_pos, -1, rx1380_done
@@ -18247,14 +19898,16 @@
jump $I10
rx1380_done:
rx1380_cur."!cursor_fail"()
- rx1380_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
+ if_null rx1380_debug, debug_1065
+ rx1380_cur."!cursor_debug"("FAIL", "assertion:sym<name>")
+ debug_1065:
.return (rx1380_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>" :subid("364_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<name>" :subid("364_1282324002.40722") :method
.annotate 'line', 567
$P1382 = self."!PREFIX__!subrule"("identifier", "")
new $P1383, "ResizablePMCArray"
@@ -18264,7 +19917,7 @@
.namespace ["NQP";"Regex"]
-.sub "_block1387" :anon :subid("365_1280467477.44751") :method :outer("363_1280467477.44751")
+.sub "_block1387" :anon :subid("365_1282324002.40722") :method :outer("363_1282324002.40722")
.annotate 'line', 591
.local string rx1389_tgt
.local int rx1389_pos
@@ -18272,7 +19925,9 @@
.local int rx1389_eos
.local int rx1389_rep
.local pmc rx1389_cur
+ .local pmc rx1389_debug
(rx1389_cur, rx1389_pos, rx1389_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1389_debug, rx1389_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1389_cur
.local pmc match
.lex "$/", match
@@ -18284,7 +19939,9 @@
substr rx1389_tgt, rx1389_tgt, rx1389_off
rx1389_start:
eq $I10, 1, rx1389_restart
- rx1389_cur."!cursor_debug"("START ", "")
+ if_null rx1389_debug, debug_1059
+ rx1389_cur."!cursor_debug"("START", "")
+ debug_1059:
$I10 = self.'from'()
ne $I10, -1, rxscan1390_done
goto rxscan1390_scan
@@ -18301,15 +19958,19 @@
add $I11, rx1389_pos, 1
gt $I11, rx1389_eos, rx1389_fail
sub $I11, rx1389_pos, rx1389_off
- substr $S10, rx1389_tgt, $I11, 1
- ne $S10, ">", rx1389_fail
+ ord $I11, rx1389_tgt, $I11
+ ne $I11, 62, rx1389_fail
add rx1389_pos, 1
# rx pass
rx1389_cur."!cursor_pass"(rx1389_pos, "")
- rx1389_cur."!cursor_debug"("PASS ", "", " at pos=", rx1389_pos)
+ if_null rx1389_debug, debug_1060
+ rx1389_cur."!cursor_debug"("PASS", "", " at pos=", rx1389_pos)
+ debug_1060:
.return (rx1389_cur)
rx1389_restart:
- rx1389_cur."!cursor_debug"("NEXT ", "")
+ if_null rx1389_debug, debug_1061
+ rx1389_cur."!cursor_debug"("NEXT", "")
+ debug_1061:
rx1389_fail:
(rx1389_rep, rx1389_pos, $I10, $P10) = rx1389_cur."!mark_fail"(0)
lt rx1389_pos, -1, rx1389_done
@@ -18317,14 +19978,16 @@
jump $I10
rx1389_done:
rx1389_cur."!cursor_fail"()
- rx1389_cur."!cursor_debug"("FAIL ", "")
+ if_null rx1389_debug, debug_1062
+ rx1389_cur."!cursor_debug"("FAIL", "")
+ debug_1062:
.return (rx1389_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<var>" :subid("366_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<var>" :subid("366_1282324002.40722") :method :outer("349_1282324002.40722")
.annotate 'line', 567
.local string rx1392_tgt
.local int rx1392_pos
@@ -18332,7 +19995,9 @@
.local int rx1392_eos
.local int rx1392_rep
.local pmc rx1392_cur
+ .local pmc rx1392_debug
(rx1392_cur, rx1392_pos, rx1392_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1392_debug, rx1392_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1392_cur
.local pmc match
.lex "$/", match
@@ -18344,7 +20009,9 @@
substr rx1392_tgt, rx1392_tgt, rx1392_off
rx1392_start:
eq $I10, 1, rx1392_restart
- rx1392_cur."!cursor_debug"("START ", "assertion:sym<var>")
+ if_null rx1392_debug, debug_1066
+ rx1392_cur."!cursor_debug"("START", "assertion:sym<var>")
+ debug_1066:
$I10 = self.'from'()
ne $I10, -1, rxscan1395_done
goto rxscan1395_scan
@@ -18374,11 +20041,15 @@
.annotate 'line', 599
# rx pass
rx1392_cur."!cursor_pass"(rx1392_pos, "assertion:sym<var>")
- rx1392_cur."!cursor_debug"("PASS ", "assertion:sym<var>", " at pos=", rx1392_pos)
+ if_null rx1392_debug, debug_1067
+ rx1392_cur."!cursor_debug"("PASS", "assertion:sym<var>", " at pos=", rx1392_pos)
+ debug_1067:
.return (rx1392_cur)
rx1392_restart:
.annotate 'line', 567
- rx1392_cur."!cursor_debug"("NEXT ", "assertion:sym<var>")
+ if_null rx1392_debug, debug_1068
+ rx1392_cur."!cursor_debug"("NEXT", "assertion:sym<var>")
+ debug_1068:
rx1392_fail:
(rx1392_rep, rx1392_pos, $I10, $P10) = rx1392_cur."!mark_fail"(0)
lt rx1392_pos, -1, rx1392_done
@@ -18386,14 +20057,16 @@
jump $I10
rx1392_done:
rx1392_cur."!cursor_fail"()
- rx1392_cur."!cursor_debug"("FAIL ", "assertion:sym<var>")
+ if_null rx1392_debug, debug_1069
+ rx1392_cur."!cursor_debug"("FAIL", "assertion:sym<var>")
+ debug_1069:
.return (rx1392_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<var>" :subid("367_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<var>" :subid("367_1282324002.40722") :method
.annotate 'line', 567
new $P1394, "ResizablePMCArray"
push $P1394, "$"
@@ -18403,7 +20076,7 @@
.namespace ["NQP";"Regex"]
-.sub "codeblock" :subid("368_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "codeblock" :subid("368_1282324002.40722") :method :outer("349_1282324002.40722")
.annotate 'line', 567
.local string rx1397_tgt
.local int rx1397_pos
@@ -18411,7 +20084,9 @@
.local int rx1397_eos
.local int rx1397_rep
.local pmc rx1397_cur
+ .local pmc rx1397_debug
(rx1397_cur, rx1397_pos, rx1397_tgt, $I10) = self."!cursor_start"()
+ getattribute rx1397_debug, rx1397_cur, "$!debug"
.lex unicode:"$\x{a2}", rx1397_cur
.local pmc match
.lex "$/", match
@@ -18423,7 +20098,9 @@
substr rx1397_tgt, rx1397_tgt, rx1397_off
rx1397_start:
eq $I10, 1, rx1397_restart
- rx1397_cur."!cursor_debug"("START ", "codeblock")
+ if_null rx1397_debug, debug_1070
+ rx1397_cur."!cursor_debug"("START", "codeblock")
+ debug_1070:
$I10 = self.'from'()
ne $I10, -1, rxscan1401_done
goto rxscan1401_scan
@@ -18447,11 +20124,15 @@
.annotate 'line', 603
# rx pass
rx1397_cur."!cursor_pass"(rx1397_pos, "codeblock")
- rx1397_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1397_pos)
+ if_null rx1397_debug, debug_1071
+ rx1397_cur."!cursor_debug"("PASS", "codeblock", " at pos=", rx1397_pos)
+ debug_1071:
.return (rx1397_cur)
rx1397_restart:
.annotate 'line', 567
- rx1397_cur."!cursor_debug"("NEXT ", "codeblock")
+ if_null rx1397_debug, debug_1072
+ rx1397_cur."!cursor_debug"("NEXT", "codeblock")
+ debug_1072:
rx1397_fail:
(rx1397_rep, rx1397_pos, $I10, $P10) = rx1397_cur."!mark_fail"(0)
lt rx1397_pos, -1, rx1397_done
@@ -18459,14 +20140,16 @@
jump $I10
rx1397_done:
rx1397_cur."!cursor_fail"()
- rx1397_cur."!cursor_debug"("FAIL ", "codeblock")
+ if_null rx1397_debug, debug_1073
+ rx1397_cur."!cursor_debug"("FAIL", "codeblock")
+ debug_1073:
.return (rx1397_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock" :subid("369_1280467477.44751") :method
+.sub "!PREFIX__codeblock" :subid("369_1282324002.40722") :method
.annotate 'line', 567
$P1399 = self."!PREFIX__!subrule"("LANG", "")
new $P1400, "ResizablePMCArray"
@@ -18476,18 +20159,18 @@
.namespace ["NQP";"Grammar"]
-.sub "_block1403" :load :anon :subid("370_1280467477.44751")
+.sub "_block1403" :load :anon :subid("370_1282324002.40722")
.annotate 'line', 4
- .const 'Sub' $P1405 = "11_1280467477.44751"
+ .const 'Sub' $P1405 = "11_1282324002.40722"
$P1406 = $P1405()
.return ($P1406)
.end
.namespace []
-.sub "_block1424" :load :anon :subid("371_1280467477.44751")
+.sub "_block1424" :load :anon :subid("371_1282324002.40722")
.annotate 'line', 1
- .const 'Sub' $P1426 = "10_1280467477.44751"
+ .const 'Sub' $P1426 = "10_1282324002.40722"
$P1427 = $P1426()
.return ($P1427)
.end
@@ -18495,7 +20178,7 @@
### .include 'gen/nqp-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1280467483.70067")
+.sub "_block11" :anon :subid("10_1282324007.53935")
.annotate 'line', 0
get_hll_global $P14, ["NQP";"Actions"], "_block13"
capture_lex $P14
@@ -18512,15 +20195,15 @@
$P2452 = $P14()
.annotate 'line', 1
.return ($P2452)
- .const 'Sub' $P2454 = "143_1280467483.70067"
+ .const 'Sub' $P2454 = "143_1282324007.53935"
.return ($P2454)
.end
.namespace []
-.sub "" :load :init :subid("post144") :outer("10_1280467483.70067")
+.sub "" :load :init :subid("post144") :outer("10_1282324007.53935")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1280467483.70067"
+ .const 'Sub' $P12 = "10_1282324007.53935"
.local pmc block
set block, $P12
$P2457 = get_root_global ["parrot"], "P6metaclass"
@@ -18529,217 +20212,217 @@
.namespace ["NQP";"Actions"]
-.sub "_block13" :subid("11_1280467483.70067") :outer("10_1280467483.70067")
+.sub "_block13" :subid("11_1282324007.53935") :outer("10_1282324007.53935")
.annotate 'line', 3
- .const 'Sub' $P2448 = "142_1280467483.70067"
+ .const 'Sub' $P2448 = "142_1282324007.53935"
capture_lex $P2448
get_hll_global $P2331, ["NQP";"RegexActions"], "_block2330"
capture_lex $P2331
- .const 'Sub' $P2320 = "132_1280467483.70067"
+ .const 'Sub' $P2320 = "132_1282324007.53935"
capture_lex $P2320
- .const 'Sub' $P2313 = "131_1280467483.70067"
+ .const 'Sub' $P2313 = "131_1282324007.53935"
capture_lex $P2313
- .const 'Sub' $P2306 = "130_1280467483.70067"
+ .const 'Sub' $P2306 = "130_1282324007.53935"
capture_lex $P2306
- .const 'Sub' $P2299 = "129_1280467483.70067"
+ .const 'Sub' $P2299 = "129_1282324007.53935"
capture_lex $P2299
- .const 'Sub' $P2286 = "128_1280467483.70067"
+ .const 'Sub' $P2286 = "128_1282324007.53935"
capture_lex $P2286
- .const 'Sub' $P2276 = "127_1280467483.70067"
+ .const 'Sub' $P2276 = "127_1282324007.53935"
capture_lex $P2276
- .const 'Sub' $P2266 = "126_1280467483.70067"
+ .const 'Sub' $P2266 = "126_1282324007.53935"
capture_lex $P2266
- .const 'Sub' $P2256 = "125_1280467483.70067"
+ .const 'Sub' $P2256 = "125_1282324007.53935"
capture_lex $P2256
- .const 'Sub' $P2249 = "124_1280467483.70067"
+ .const 'Sub' $P2249 = "124_1282324007.53935"
capture_lex $P2249
- .const 'Sub' $P2235 = "123_1280467483.70067"
+ .const 'Sub' $P2235 = "123_1282324007.53935"
capture_lex $P2235
- .const 'Sub' $P2225 = "122_1280467483.70067"
+ .const 'Sub' $P2225 = "122_1282324007.53935"
capture_lex $P2225
- .const 'Sub' $P2188 = "121_1280467483.70067"
+ .const 'Sub' $P2188 = "121_1282324007.53935"
capture_lex $P2188
- .const 'Sub' $P2174 = "120_1280467483.70067"
+ .const 'Sub' $P2174 = "120_1282324007.53935"
capture_lex $P2174
- .const 'Sub' $P2164 = "119_1280467483.70067"
+ .const 'Sub' $P2164 = "119_1282324007.53935"
capture_lex $P2164
- .const 'Sub' $P2154 = "118_1280467483.70067"
+ .const 'Sub' $P2154 = "118_1282324007.53935"
capture_lex $P2154
- .const 'Sub' $P2144 = "117_1280467483.70067"
+ .const 'Sub' $P2144 = "117_1282324007.53935"
capture_lex $P2144
- .const 'Sub' $P2134 = "116_1280467483.70067"
+ .const 'Sub' $P2134 = "116_1282324007.53935"
capture_lex $P2134
- .const 'Sub' $P2124 = "115_1280467483.70067"
+ .const 'Sub' $P2124 = "115_1282324007.53935"
capture_lex $P2124
- .const 'Sub' $P2096 = "114_1280467483.70067"
+ .const 'Sub' $P2096 = "114_1282324007.53935"
capture_lex $P2096
- .const 'Sub' $P2079 = "113_1280467483.70067"
+ .const 'Sub' $P2079 = "113_1282324007.53935"
capture_lex $P2079
- .const 'Sub' $P2069 = "112_1280467483.70067"
+ .const 'Sub' $P2069 = "112_1282324007.53935"
capture_lex $P2069
- .const 'Sub' $P2056 = "111_1280467483.70067"
+ .const 'Sub' $P2056 = "111_1282324007.53935"
capture_lex $P2056
- .const 'Sub' $P2043 = "110_1280467483.70067"
+ .const 'Sub' $P2043 = "110_1282324007.53935"
capture_lex $P2043
- .const 'Sub' $P2030 = "109_1280467483.70067"
+ .const 'Sub' $P2030 = "109_1282324007.53935"
capture_lex $P2030
- .const 'Sub' $P2020 = "108_1280467483.70067"
+ .const 'Sub' $P2020 = "108_1282324007.53935"
capture_lex $P2020
- .const 'Sub' $P1991 = "107_1280467483.70067"
+ .const 'Sub' $P1991 = "107_1282324007.53935"
capture_lex $P1991
- .const 'Sub' $P1967 = "106_1280467483.70067"
+ .const 'Sub' $P1967 = "106_1282324007.53935"
capture_lex $P1967
- .const 'Sub' $P1957 = "105_1280467483.70067"
+ .const 'Sub' $P1957 = "105_1282324007.53935"
capture_lex $P1957
- .const 'Sub' $P1947 = "104_1280467483.70067"
+ .const 'Sub' $P1947 = "104_1282324007.53935"
capture_lex $P1947
- .const 'Sub' $P1920 = "103_1280467483.70067"
+ .const 'Sub' $P1920 = "103_1282324007.53935"
capture_lex $P1920
- .const 'Sub' $P1902 = "102_1280467483.70067"
+ .const 'Sub' $P1902 = "102_1282324007.53935"
capture_lex $P1902
- .const 'Sub' $P1892 = "101_1280467483.70067"
+ .const 'Sub' $P1892 = "101_1282324007.53935"
capture_lex $P1892
- .const 'Sub' $P1788 = "98_1280467483.70067"
+ .const 'Sub' $P1788 = "98_1282324007.53935"
capture_lex $P1788
- .const 'Sub' $P1778 = "97_1280467483.70067"
+ .const 'Sub' $P1778 = "97_1282324007.53935"
capture_lex $P1778
- .const 'Sub' $P1749 = "96_1280467483.70067"
+ .const 'Sub' $P1749 = "96_1282324007.53935"
capture_lex $P1749
- .const 'Sub' $P1707 = "95_1280467483.70067"
+ .const 'Sub' $P1707 = "95_1282324007.53935"
capture_lex $P1707
- .const 'Sub' $P1691 = "94_1280467483.70067"
+ .const 'Sub' $P1691 = "94_1282324007.53935"
capture_lex $P1691
- .const 'Sub' $P1682 = "93_1280467483.70067"
+ .const 'Sub' $P1682 = "93_1282324007.53935"
capture_lex $P1682
- .const 'Sub' $P1650 = "92_1280467483.70067"
+ .const 'Sub' $P1650 = "92_1282324007.53935"
capture_lex $P1650
- .const 'Sub' $P1551 = "89_1280467483.70067"
+ .const 'Sub' $P1551 = "89_1282324007.53935"
capture_lex $P1551
- .const 'Sub' $P1534 = "88_1280467483.70067"
+ .const 'Sub' $P1534 = "88_1282324007.53935"
capture_lex $P1534
- .const 'Sub' $P1514 = "87_1280467483.70067"
+ .const 'Sub' $P1514 = "87_1282324007.53935"
capture_lex $P1514
- .const 'Sub' $P1402 = "84_1280467483.70067"
+ .const 'Sub' $P1402 = "84_1282324007.53935"
capture_lex $P1402
- .const 'Sub' $P1345 = "80_1280467483.70067"
+ .const 'Sub' $P1345 = "80_1282324007.53935"
capture_lex $P1345
- .const 'Sub' $P1300 = "78_1280467483.70067"
+ .const 'Sub' $P1300 = "78_1282324007.53935"
capture_lex $P1300
- .const 'Sub' $P1250 = "76_1280467483.70067"
+ .const 'Sub' $P1250 = "76_1282324007.53935"
capture_lex $P1250
- .const 'Sub' $P1240 = "75_1280467483.70067"
+ .const 'Sub' $P1240 = "75_1282324007.53935"
capture_lex $P1240
- .const 'Sub' $P1230 = "74_1280467483.70067"
+ .const 'Sub' $P1230 = "74_1282324007.53935"
capture_lex $P1230
- .const 'Sub' $P1159 = "72_1280467483.70067"
+ .const 'Sub' $P1159 = "72_1282324007.53935"
capture_lex $P1159
- .const 'Sub' $P1149 = "71_1280467483.70067"
+ .const 'Sub' $P1149 = "71_1282324007.53935"
capture_lex $P1149
- .const 'Sub' $P1132 = "70_1280467483.70067"
+ .const 'Sub' $P1132 = "70_1282324007.53935"
capture_lex $P1132
- .const 'Sub' $P1115 = "69_1280467483.70067"
+ .const 'Sub' $P1115 = "69_1282324007.53935"
capture_lex $P1115
- .const 'Sub' $P1098 = "68_1280467483.70067"
+ .const 'Sub' $P1098 = "68_1282324007.53935"
capture_lex $P1098
- .const 'Sub' $P1088 = "67_1280467483.70067"
+ .const 'Sub' $P1088 = "67_1282324007.53935"
capture_lex $P1088
- .const 'Sub' $P1078 = "66_1280467483.70067"
+ .const 'Sub' $P1078 = "66_1282324007.53935"
capture_lex $P1078
- .const 'Sub' $P1068 = "65_1280467483.70067"
+ .const 'Sub' $P1068 = "65_1282324007.53935"
capture_lex $P1068
- .const 'Sub' $P1044 = "64_1280467483.70067"
+ .const 'Sub' $P1044 = "64_1282324007.53935"
capture_lex $P1044
- .const 'Sub' $P991 = "63_1280467483.70067"
+ .const 'Sub' $P991 = "63_1282324007.53935"
capture_lex $P991
- .const 'Sub' $P981 = "62_1280467483.70067"
+ .const 'Sub' $P981 = "62_1282324007.53935"
capture_lex $P981
- .const 'Sub' $P892 = "60_1280467483.70067"
+ .const 'Sub' $P892 = "60_1282324007.53935"
capture_lex $P892
- .const 'Sub' $P866 = "59_1280467483.70067"
+ .const 'Sub' $P866 = "59_1282324007.53935"
capture_lex $P866
- .const 'Sub' $P850 = "58_1280467483.70067"
+ .const 'Sub' $P850 = "58_1282324007.53935"
capture_lex $P850
- .const 'Sub' $P840 = "57_1280467483.70067"
+ .const 'Sub' $P840 = "57_1282324007.53935"
capture_lex $P840
- .const 'Sub' $P830 = "56_1280467483.70067"
+ .const 'Sub' $P830 = "56_1282324007.53935"
capture_lex $P830
- .const 'Sub' $P820 = "55_1280467483.70067"
+ .const 'Sub' $P820 = "55_1282324007.53935"
capture_lex $P820
- .const 'Sub' $P810 = "54_1280467483.70067"
+ .const 'Sub' $P810 = "54_1282324007.53935"
capture_lex $P810
- .const 'Sub' $P800 = "53_1280467483.70067"
+ .const 'Sub' $P800 = "53_1282324007.53935"
capture_lex $P800
- .const 'Sub' $P790 = "52_1280467483.70067"
+ .const 'Sub' $P790 = "52_1282324007.53935"
capture_lex $P790
- .const 'Sub' $P780 = "51_1280467483.70067"
+ .const 'Sub' $P780 = "51_1282324007.53935"
capture_lex $P780
- .const 'Sub' $P770 = "50_1280467483.70067"
+ .const 'Sub' $P770 = "50_1282324007.53935"
capture_lex $P770
- .const 'Sub' $P760 = "49_1280467483.70067"
+ .const 'Sub' $P760 = "49_1282324007.53935"
capture_lex $P760
- .const 'Sub' $P750 = "48_1280467483.70067"
+ .const 'Sub' $P750 = "48_1282324007.53935"
capture_lex $P750
- .const 'Sub' $P740 = "47_1280467483.70067"
+ .const 'Sub' $P740 = "47_1282324007.53935"
capture_lex $P740
- .const 'Sub' $P730 = "46_1280467483.70067"
+ .const 'Sub' $P730 = "46_1282324007.53935"
capture_lex $P730
- .const 'Sub' $P720 = "45_1280467483.70067"
+ .const 'Sub' $P720 = "45_1282324007.53935"
capture_lex $P720
- .const 'Sub' $P702 = "44_1280467483.70067"
+ .const 'Sub' $P702 = "44_1282324007.53935"
capture_lex $P702
- .const 'Sub' $P667 = "43_1280467483.70067"
+ .const 'Sub' $P667 = "43_1282324007.53935"
capture_lex $P667
- .const 'Sub' $P651 = "42_1280467483.70067"
+ .const 'Sub' $P651 = "42_1282324007.53935"
capture_lex $P651
- .const 'Sub' $P630 = "41_1280467483.70067"
+ .const 'Sub' $P630 = "41_1282324007.53935"
capture_lex $P630
- .const 'Sub' $P610 = "40_1280467483.70067"
+ .const 'Sub' $P610 = "40_1282324007.53935"
capture_lex $P610
- .const 'Sub' $P597 = "39_1280467483.70067"
+ .const 'Sub' $P597 = "39_1282324007.53935"
capture_lex $P597
- .const 'Sub' $P571 = "38_1280467483.70067"
+ .const 'Sub' $P571 = "38_1282324007.53935"
capture_lex $P571
- .const 'Sub' $P535 = "37_1280467483.70067"
+ .const 'Sub' $P535 = "37_1282324007.53935"
capture_lex $P535
- .const 'Sub' $P518 = "36_1280467483.70067"
+ .const 'Sub' $P518 = "36_1282324007.53935"
capture_lex $P518
- .const 'Sub' $P504 = "35_1280467483.70067"
+ .const 'Sub' $P504 = "35_1282324007.53935"
capture_lex $P504
- .const 'Sub' $P451 = "33_1280467483.70067"
+ .const 'Sub' $P451 = "33_1282324007.53935"
capture_lex $P451
- .const 'Sub' $P440 = "32_1280467483.70067"
+ .const 'Sub' $P440 = "32_1282324007.53935"
capture_lex $P440
- .const 'Sub' $P427 = "31_1280467483.70067"
+ .const 'Sub' $P427 = "31_1282324007.53935"
capture_lex $P427
- .const 'Sub' $P407 = "30_1280467483.70067"
+ .const 'Sub' $P407 = "30_1282324007.53935"
capture_lex $P407
- .const 'Sub' $P397 = "29_1280467483.70067"
+ .const 'Sub' $P397 = "29_1282324007.53935"
capture_lex $P397
- .const 'Sub' $P387 = "28_1280467483.70067"
+ .const 'Sub' $P387 = "28_1282324007.53935"
capture_lex $P387
- .const 'Sub' $P371 = "27_1280467483.70067"
+ .const 'Sub' $P371 = "27_1282324007.53935"
capture_lex $P371
- .const 'Sub' $P288 = "25_1280467483.70067"
+ .const 'Sub' $P288 = "25_1282324007.53935"
capture_lex $P288
- .const 'Sub' $P245 = "23_1280467483.70067"
+ .const 'Sub' $P245 = "23_1282324007.53935"
capture_lex $P245
- .const 'Sub' $P213 = "22_1280467483.70067"
+ .const 'Sub' $P213 = "22_1282324007.53935"
capture_lex $P213
- .const 'Sub' $P180 = "21_1280467483.70067"
+ .const 'Sub' $P180 = "21_1282324007.53935"
capture_lex $P180
- .const 'Sub' $P170 = "20_1280467483.70067"
+ .const 'Sub' $P170 = "20_1282324007.53935"
capture_lex $P170
- .const 'Sub' $P151 = "19_1280467483.70067"
+ .const 'Sub' $P151 = "19_1282324007.53935"
capture_lex $P151
- .const 'Sub' $P100 = "18_1280467483.70067"
+ .const 'Sub' $P100 = "18_1282324007.53935"
capture_lex $P100
- .const 'Sub' $P84 = "17_1280467483.70067"
+ .const 'Sub' $P84 = "17_1282324007.53935"
capture_lex $P84
- .const 'Sub' $P63 = "16_1280467483.70067"
+ .const 'Sub' $P63 = "16_1282324007.53935"
capture_lex $P63
- .const 'Sub' $P27 = "13_1280467483.70067"
+ .const 'Sub' $P27 = "13_1282324007.53935"
capture_lex $P27
- .const 'Sub' $P16 = "12_1280467483.70067"
+ .const 'Sub' $P16 = "12_1282324007.53935"
capture_lex $P16
get_global $P15, "@BLOCK"
unless_null $P15, vivify_147
@@ -18747,27 +20430,27 @@
set_global "@BLOCK", $P15
vivify_147:
.annotate 'line', 9
- .const 'Sub' $P16 = "12_1280467483.70067"
+ .const 'Sub' $P16 = "12_1282324007.53935"
newclosure $P26, $P16
.lex "xblock_immediate", $P26
.annotate 'line', 14
- .const 'Sub' $P27 = "13_1280467483.70067"
+ .const 'Sub' $P27 = "13_1282324007.53935"
newclosure $P62, $P27
.lex "block_immediate", $P62
.annotate 'line', 24
- .const 'Sub' $P63 = "16_1280467483.70067"
+ .const 'Sub' $P63 = "16_1282324007.53935"
newclosure $P83, $P63
.lex "vivitype", $P83
.annotate 'line', 43
- .const 'Sub' $P84 = "17_1280467483.70067"
+ .const 'Sub' $P84 = "17_1282324007.53935"
newclosure $P99, $P84
.lex "colonpair_str", $P99
.annotate 'line', 223
- .const 'Sub' $P100 = "18_1280467483.70067"
+ .const 'Sub' $P100 = "18_1282324007.53935"
newclosure $P150, $P100
.lex "push_block_handler", $P150
.annotate 'line', 835
- .const 'Sub' $P151 = "19_1280467483.70067"
+ .const 'Sub' $P151 = "19_1282324007.53935"
newclosure $P165, $P151
.lex "control", $P165
.annotate 'line', 3
@@ -18794,19 +20477,19 @@
$P2442 = $P2331()
.annotate 'line', 3
.return ($P2442)
- .const 'Sub' $P2444 = "141_1280467483.70067"
+ .const 'Sub' $P2444 = "141_1282324007.53935"
.return ($P2444)
.end
.namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post145") :outer("11_1280467483.70067")
+.sub "" :load :init :subid("post145") :outer("11_1282324007.53935")
.annotate 'line', 3
get_hll_global $P14, ["NQP";"Actions"], "_block13"
.local pmc block
set block, $P14
.annotate 'line', 5
- .const 'Sub' $P2448 = "142_1280467483.70067"
+ .const 'Sub' $P2448 = "142_1282324007.53935"
capture_lex $P2448
$P2448()
$P2451 = get_root_global ["parrot"], "P6metaclass"
@@ -18815,7 +20498,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block2447" :anon :subid("142_1280467483.70067") :outer("11_1280467483.70067")
+.sub "_block2447" :anon :subid("142_1282324007.53935") :outer("11_1282324007.53935")
.annotate 'line', 6
get_global $P2449, "@BLOCK"
unless_null $P2449, vivify_146
@@ -18831,7 +20514,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "xblock_immediate" :subid("12_1280467483.70067") :outer("11_1280467483.70067")
+.sub "xblock_immediate" :subid("12_1282324007.53935") :outer("11_1282324007.53935")
.param pmc param_19
.annotate 'line', 9
new $P18, 'ExceptionHandler'
@@ -18868,10 +20551,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "block_immediate" :subid("13_1280467483.70067") :outer("11_1280467483.70067")
+.sub "block_immediate" :subid("13_1282324007.53935") :outer("11_1282324007.53935")
.param pmc param_30
.annotate 'line', 14
- .const 'Sub' $P40 = "14_1280467483.70067"
+ .const 'Sub' $P40 = "14_1282324007.53935"
capture_lex $P40
new $P29, 'ExceptionHandler'
set_addr $P29, control_28
@@ -18893,7 +20576,7 @@
set $P33, $P38
unless_34_end:
if $P33, unless_32_end
- .const 'Sub' $P40 = "14_1280467483.70067"
+ .const 'Sub' $P40 = "14_1282324007.53935"
capture_lex $P40
$P40()
unless_32_end:
@@ -18910,9 +20593,9 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "_block39" :anon :subid("14_1280467483.70067") :outer("13_1280467483.70067")
+.sub "_block39" :anon :subid("14_1282324007.53935") :outer("13_1282324007.53935")
.annotate 'line', 16
- .const 'Sub' $P51 = "15_1280467483.70067"
+ .const 'Sub' $P51 = "15_1282324007.53935"
capture_lex $P51
.annotate 'line', 17
new $P41, "Undef"
@@ -18935,7 +20618,7 @@
unless $P45, loop56_done
shift $P49, $P45
loop56_redo:
- .const 'Sub' $P51 = "15_1280467483.70067"
+ .const 'Sub' $P51 = "15_1282324007.53935"
capture_lex $P51
$P51($P49)
loop56_next:
@@ -18958,7 +20641,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block50" :anon :subid("15_1280467483.70067") :outer("14_1280467483.70067")
+.sub "_block50" :anon :subid("15_1282324007.53935") :outer("14_1282324007.53935")
.param pmc param_52
.annotate 'line', 18
.lex "$_", param_52
@@ -18971,7 +20654,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "vivitype" :subid("16_1280467483.70067") :outer("11_1280467483.70067")
+.sub "vivitype" :subid("16_1282324007.53935") :outer("11_1282324007.53935")
.param pmc param_66
.annotate 'line', 24
new $P65, 'ExceptionHandler'
@@ -19020,7 +20703,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "colonpair_str" :subid("17_1280467483.70067") :outer("11_1280467483.70067")
+.sub "colonpair_str" :subid("17_1282324007.53935") :outer("11_1282324007.53935")
.param pmc param_87
.annotate 'line', 43
new $P86, 'ExceptionHandler'
@@ -19059,7 +20742,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "push_block_handler" :subid("18_1280467483.70067") :outer("11_1280467483.70067")
+.sub "push_block_handler" :subid("18_1282324007.53935") :outer("11_1282324007.53935")
.param pmc param_103
.param pmc param_104
.annotate 'line', 223
@@ -19177,7 +20860,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "control" :subid("19_1280467483.70067") :outer("11_1280467483.70067")
+.sub "control" :subid("19_1282324007.53935") :outer("11_1282324007.53935")
.param pmc param_154
.param pmc param_155
.annotate 'line', 835
@@ -19210,7 +20893,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "TOP" :subid("20_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "TOP" :subid("20_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_173
.annotate 'line', 33
new $P172, 'ExceptionHandler'
@@ -19241,7 +20924,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "deflongname" :subid("21_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "deflongname" :subid("21_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_183
.annotate 'line', 35
new $P182, 'ExceptionHandler'
@@ -19331,7 +21014,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "comp_unit" :subid("22_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "comp_unit" :subid("22_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_216
.annotate 'line', 49
new $P215, 'ExceptionHandler'
@@ -19406,10 +21089,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statementlist" :subid("23_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statementlist" :subid("23_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_248
.annotate 'line', 76
- .const 'Sub' $P262 = "24_1280467483.70067"
+ .const 'Sub' $P262 = "24_1282324007.53935"
capture_lex $P262
new $P247, 'ExceptionHandler'
set_addr $P247, control_246
@@ -19454,7 +21137,7 @@
unless $P256, loop281_done
shift $P260, $P256
loop281_redo:
- .const 'Sub' $P262 = "24_1280467483.70067"
+ .const 'Sub' $P262 = "24_1282324007.53935"
capture_lex $P262
$P262($P260)
loop281_next:
@@ -19484,7 +21167,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block261" :anon :subid("24_1280467483.70067") :outer("23_1280467483.70067")
+.sub "_block261" :anon :subid("24_1282324007.53935") :outer("23_1282324007.53935")
.param pmc param_264
.annotate 'line', 80
new $P263, "Undef"
@@ -19539,12 +21222,12 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement" :subid("25_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement" :subid("25_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_291
.param pmc param_292 :optional
.param int has_param_292 :opt_flag
.annotate 'line', 89
- .const 'Sub' $P300 = "26_1280467483.70067"
+ .const 'Sub' $P300 = "26_1282324007.53935"
capture_lex $P300
new $P290, 'ExceptionHandler'
set_addr $P290, control_289
@@ -19603,7 +21286,7 @@
goto if_296_end
if_296:
.annotate 'line', 91
- .const 'Sub' $P300 = "26_1280467483.70067"
+ .const 'Sub' $P300 = "26_1282324007.53935"
capture_lex $P300
$P300()
if_296_end:
@@ -19622,7 +21305,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block299" :anon :subid("26_1280467483.70067") :outer("25_1280467483.70067")
+.sub "_block299" :anon :subid("26_1282324007.53935") :outer("25_1282324007.53935")
.annotate 'line', 92
new $P301, "Undef"
.lex "$mc", $P301
@@ -19795,7 +21478,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "xblock" :subid("27_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "xblock" :subid("27_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_374
.annotate 'line', 117
new $P373, 'ExceptionHandler'
@@ -19840,7 +21523,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "pblock" :subid("28_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "pblock" :subid("28_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_390
.annotate 'line', 121
new $P389, 'ExceptionHandler'
@@ -19873,7 +21556,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "block" :subid("29_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "block" :subid("29_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_400
.annotate 'line', 125
new $P399, 'ExceptionHandler'
@@ -19906,7 +21589,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "blockoid" :subid("30_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "blockoid" :subid("30_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_410
.annotate 'line', 129
new $P409, 'ExceptionHandler'
@@ -19963,7 +21646,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "newpad" :subid("31_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "newpad" :subid("31_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_430
.annotate 'line', 138
new $P429, 'ExceptionHandler'
@@ -19999,7 +21682,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "outerctx" :subid("32_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "outerctx" :subid("32_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_443
.annotate 'line', 143
new $P442, 'ExceptionHandler'
@@ -20039,10 +21722,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<if>" :subid("33_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<if>" :subid("33_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_454
.annotate 'line', 150
- .const 'Sub' $P482 = "34_1280467483.70067"
+ .const 'Sub' $P482 = "34_1282324007.53935"
capture_lex $P482
new $P453, 'ExceptionHandler'
set_addr $P453, control_452
@@ -20127,7 +21810,7 @@
isgt $I480, $N479, 0.0
unless $I480, loop497_done
loop497_redo:
- .const 'Sub' $P482 = "34_1280467483.70067"
+ .const 'Sub' $P482 = "34_1282324007.53935"
capture_lex $P482
$P482()
loop497_next:
@@ -20155,7 +21838,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block481" :anon :subid("34_1280467483.70067") :outer("33_1280467483.70067")
+.sub "_block481" :anon :subid("34_1282324007.53935") :outer("33_1282324007.53935")
.annotate 'line', 159
new $P483, "Undef"
.lex "$else", $P483
@@ -20195,7 +21878,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<unless>" :subid("35_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<unless>" :subid("35_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_507
.annotate 'line', 166
new $P506, 'ExceptionHandler'
@@ -20237,7 +21920,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<while>" :subid("36_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<while>" :subid("36_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_521
.annotate 'line', 172
new $P520, 'ExceptionHandler'
@@ -20288,7 +21971,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<repeat>" :subid("37_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<repeat>" :subid("37_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_538
.annotate 'line', 178
new $P537, 'ExceptionHandler'
@@ -20389,7 +22072,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<for>" :subid("38_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<for>" :subid("38_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_574
.annotate 'line', 192
new $P573, 'ExceptionHandler'
@@ -20470,7 +22153,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<return>" :subid("39_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<return>" :subid("39_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_600
.annotate 'line', 205
new $P599, 'ExceptionHandler'
@@ -20506,7 +22189,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<CATCH>" :subid("40_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<CATCH>" :subid("40_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_613
.annotate 'line', 209
new $P612, 'ExceptionHandler'
@@ -20565,7 +22248,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<CONTROL>" :subid("41_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<CONTROL>" :subid("41_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_633
.annotate 'line', 216
new $P632, 'ExceptionHandler'
@@ -20624,7 +22307,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_prefix:sym<INIT>" :subid("42_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_prefix:sym<INIT>" :subid("42_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_654
.annotate 'line', 260
new $P653, 'ExceptionHandler'
@@ -20671,7 +22354,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_prefix:sym<try>" :subid("43_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_prefix:sym<try>" :subid("43_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_670
.annotate 'line', 265
new $P669, 'ExceptionHandler'
@@ -20749,7 +22432,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "blorst" :subid("44_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "blorst" :subid("44_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_705
.annotate 'line', 288
new $P704, 'ExceptionHandler'
@@ -20809,7 +22492,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_mod_cond:sym<if>" :subid("45_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_cond:sym<if>" :subid("45_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_723
.annotate 'line', 296
new $P722, 'ExceptionHandler'
@@ -20840,7 +22523,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_mod_cond:sym<unless>" :subid("46_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_cond:sym<unless>" :subid("46_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_733
.annotate 'line', 297
new $P732, 'ExceptionHandler'
@@ -20871,7 +22554,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_mod_loop:sym<while>" :subid("47_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_loop:sym<while>" :subid("47_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_743
.annotate 'line', 299
new $P742, 'ExceptionHandler'
@@ -20902,7 +22585,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_mod_loop:sym<until>" :subid("48_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_loop:sym<until>" :subid("48_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_753
.annotate 'line', 300
new $P752, 'ExceptionHandler'
@@ -20933,7 +22616,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<fatarrow>" :subid("49_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<fatarrow>" :subid("49_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_763
.annotate 'line', 304
new $P762, 'ExceptionHandler'
@@ -20964,7 +22647,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<colonpair>" :subid("50_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<colonpair>" :subid("50_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_773
.annotate 'line', 305
new $P772, 'ExceptionHandler'
@@ -20995,7 +22678,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<variable>" :subid("51_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<variable>" :subid("51_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_783
.annotate 'line', 306
new $P782, 'ExceptionHandler'
@@ -21026,7 +22709,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<package_declarator>" :subid("52_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<package_declarator>" :subid("52_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_793
.annotate 'line', 307
new $P792, 'ExceptionHandler'
@@ -21057,7 +22740,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<scope_declarator>" :subid("53_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<scope_declarator>" :subid("53_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_803
.annotate 'line', 308
new $P802, 'ExceptionHandler'
@@ -21088,7 +22771,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<routine_declarator>" :subid("54_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<routine_declarator>" :subid("54_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_813
.annotate 'line', 309
new $P812, 'ExceptionHandler'
@@ -21119,7 +22802,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<regex_declarator>" :subid("55_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<regex_declarator>" :subid("55_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_823
.annotate 'line', 310
new $P822, 'ExceptionHandler'
@@ -21150,7 +22833,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<statement_prefix>" :subid("56_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<statement_prefix>" :subid("56_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_833
.annotate 'line', 311
new $P832, 'ExceptionHandler'
@@ -21181,7 +22864,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<lambda>" :subid("57_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<lambda>" :subid("57_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_843
.annotate 'line', 312
new $P842, 'ExceptionHandler'
@@ -21212,7 +22895,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "fatarrow" :subid("58_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "fatarrow" :subid("58_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_853
.annotate 'line', 314
new $P852, 'ExceptionHandler'
@@ -21262,7 +22945,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "colonpair" :subid("59_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "colonpair" :subid("59_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_869
.annotate 'line', 320
new $P868, 'ExceptionHandler'
@@ -21344,10 +23027,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "variable" :subid("60_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "variable" :subid("60_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_895
.annotate 'line', 328
- .const 'Sub' $P908 = "61_1280467483.70067"
+ .const 'Sub' $P908 = "61_1282324007.53935"
capture_lex $P908
new $P894, 'ExceptionHandler'
set_addr $P894, control_893
@@ -21371,7 +23054,7 @@
vivify_325:
if $P900, if_898
.annotate 'line', 334
- .const 'Sub' $P908 = "61_1280467483.70067"
+ .const 'Sub' $P908 = "61_1282324007.53935"
capture_lex $P908
$P908()
goto if_898_end
@@ -21408,7 +23091,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block907" :anon :subid("61_1280467483.70067") :outer("60_1280467483.70067")
+.sub "_block907" :anon :subid("61_1282324007.53935") :outer("60_1282324007.53935")
.annotate 'line', 335
$P909 = root_new ['parrot';'ResizablePMCArray']
.lex "@name", $P909
@@ -21578,7 +23261,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "package_declarator:sym<module>" :subid("62_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "package_declarator:sym<module>" :subid("62_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_984
.annotate 'line', 366
new $P983, 'ExceptionHandler'
@@ -21609,7 +23292,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "package_declarator:sym<class>" :subid("63_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "package_declarator:sym<class>" :subid("63_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_994
.annotate 'line', 367
new $P993, 'ExceptionHandler'
@@ -21767,7 +23450,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "package_def" :subid("64_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "package_def" :subid("64_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1047
.annotate 'line', 390
new $P1046, 'ExceptionHandler'
@@ -21846,7 +23529,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "scope_declarator:sym<my>" :subid("65_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scope_declarator:sym<my>" :subid("65_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1071
.annotate 'line', 397
new $P1070, 'ExceptionHandler'
@@ -21877,7 +23560,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "scope_declarator:sym<our>" :subid("66_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scope_declarator:sym<our>" :subid("66_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1081
.annotate 'line', 398
new $P1080, 'ExceptionHandler'
@@ -21908,7 +23591,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "scope_declarator:sym<has>" :subid("67_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scope_declarator:sym<has>" :subid("67_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1091
.annotate 'line', 399
new $P1090, 'ExceptionHandler'
@@ -21939,7 +23622,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "scoped" :subid("68_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scoped" :subid("68_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1101
.annotate 'line', 401
new $P1100, 'ExceptionHandler'
@@ -21998,7 +23681,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "declarator" :subid("69_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "declarator" :subid("69_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1118
.annotate 'line', 407
new $P1117, 'ExceptionHandler'
@@ -22057,7 +23740,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "multi_declarator:sym<multi>" :subid("70_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "multi_declarator:sym<multi>" :subid("70_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1135
.annotate 'line', 413
new $P1134, 'ExceptionHandler'
@@ -22111,7 +23794,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "multi_declarator:sym<null>" :subid("71_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "multi_declarator:sym<null>" :subid("71_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1152
.annotate 'line', 414
new $P1151, 'ExceptionHandler'
@@ -22142,10 +23825,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "variable_declarator" :subid("72_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "variable_declarator" :subid("72_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1162
.annotate 'line', 417
- .const 'Sub' $P1202 = "73_1280467483.70067"
+ .const 'Sub' $P1202 = "73_1282324007.53935"
capture_lex $P1202
new $P1161, 'ExceptionHandler'
set_addr $P1161, control_1160
@@ -22227,7 +23910,7 @@
iseq $I1187, $S1186, "has"
if $I1187, if_1184
.annotate 'line', 434
- .const 'Sub' $P1202 = "73_1280467483.70067"
+ .const 'Sub' $P1202 = "73_1282324007.53935"
capture_lex $P1202
$P1202()
goto if_1184_end
@@ -22287,7 +23970,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1201" :anon :subid("73_1280467483.70067") :outer("72_1280467483.70067")
+.sub "_block1201" :anon :subid("73_1282324007.53935") :outer("72_1282324007.53935")
.annotate 'line', 435
new $P1203, "Undef"
.lex "$scope", $P1203
@@ -22349,7 +24032,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "routine_declarator:sym<sub>" :subid("74_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "routine_declarator:sym<sub>" :subid("74_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1233
.annotate 'line', 445
new $P1232, 'ExceptionHandler'
@@ -22380,7 +24063,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "routine_declarator:sym<method>" :subid("75_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "routine_declarator:sym<method>" :subid("75_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1243
.annotate 'line', 446
new $P1242, 'ExceptionHandler'
@@ -22411,10 +24094,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "routine_def" :subid("76_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "routine_def" :subid("76_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1253
.annotate 'line', 448
- .const 'Sub' $P1264 = "77_1280467483.70067"
+ .const 'Sub' $P1264 = "77_1282324007.53935"
capture_lex $P1264
new $P1252, 'ExceptionHandler'
set_addr $P1252, control_1251
@@ -22451,7 +24134,7 @@
new $P1262, "Undef"
vivify_423:
unless $P1262, if_1260_end
- .const 'Sub' $P1264 = "77_1280467483.70067"
+ .const 'Sub' $P1264 = "77_1282324007.53935"
capture_lex $P1264
$P1264()
if_1260_end:
@@ -22470,7 +24153,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1263" :anon :subid("77_1280467483.70067") :outer("76_1280467483.70067")
+.sub "_block1263" :anon :subid("77_1282324007.53935") :outer("76_1282324007.53935")
.annotate 'line', 453
new $P1265, "Undef"
.lex "$name", $P1265
@@ -22567,10 +24250,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "method_def" :subid("78_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "method_def" :subid("78_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1303
.annotate 'line', 466
- .const 'Sub' $P1324 = "79_1280467483.70067"
+ .const 'Sub' $P1324 = "79_1282324007.53935"
capture_lex $P1324
new $P1302, 'ExceptionHandler'
set_addr $P1302, control_1301
@@ -22637,7 +24320,7 @@
new $P1322, "Undef"
vivify_444:
unless $P1322, if_1320_end
- .const 'Sub' $P1324 = "79_1280467483.70067"
+ .const 'Sub' $P1324 = "79_1282324007.53935"
capture_lex $P1324
$P1324()
if_1320_end:
@@ -22671,7 +24354,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1323" :anon :subid("79_1280467483.70067") :outer("78_1280467483.70067")
+.sub "_block1323" :anon :subid("79_1282324007.53935") :outer("78_1282324007.53935")
.annotate 'line', 476
new $P1325, "Undef"
.lex "$name", $P1325
@@ -22703,12 +24386,12 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "signature" :subid("80_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "signature" :subid("80_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1348
.annotate 'line', 484
- .const 'Sub' $P1374 = "82_1280467483.70067"
+ .const 'Sub' $P1374 = "82_1282324007.53935"
capture_lex $P1374
- .const 'Sub' $P1359 = "81_1280467483.70067"
+ .const 'Sub' $P1359 = "81_1282324007.53935"
capture_lex $P1359
new $P1347, 'ExceptionHandler'
set_addr $P1347, control_1346
@@ -22752,7 +24435,7 @@
unless $P1353, loop1365_done
shift $P1357, $P1353
loop1365_redo:
- .const 'Sub' $P1359 = "81_1280467483.70067"
+ .const 'Sub' $P1359 = "81_1282324007.53935"
capture_lex $P1359
$P1359($P1357)
loop1365_next:
@@ -22781,7 +24464,7 @@
set $P1368, $I1372
goto if_1369_end
if_1369:
- .const 'Sub' $P1374 = "82_1280467483.70067"
+ .const 'Sub' $P1374 = "82_1282324007.53935"
capture_lex $P1374
$P1400 = $P1374()
set $P1368, $P1400
@@ -22797,7 +24480,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1358" :anon :subid("81_1280467483.70067") :outer("80_1280467483.70067")
+.sub "_block1358" :anon :subid("81_1282324007.53935") :outer("80_1282324007.53935")
.param pmc param_1360
.annotate 'line', 487
.lex "$_", param_1360
@@ -22811,9 +24494,9 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "_block1373" :anon :subid("82_1280467483.70067") :outer("80_1280467483.70067")
+.sub "_block1373" :anon :subid("82_1282324007.53935") :outer("80_1282324007.53935")
.annotate 'line', 490
- .const 'Sub' $P1383 = "83_1280467483.70067"
+ .const 'Sub' $P1383 = "83_1282324007.53935"
capture_lex $P1383
.annotate 'line', 491
$P1375 = root_new ['parrot';'ResizablePMCArray']
@@ -22834,7 +24517,7 @@
unless $P1377, loop1393_done
shift $P1381, $P1377
loop1393_redo:
- .const 'Sub' $P1383 = "83_1280467483.70067"
+ .const 'Sub' $P1383 = "83_1282324007.53935"
capture_lex $P1383
$P1383($P1381)
loop1393_next:
@@ -22865,7 +24548,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1382" :anon :subid("83_1280467483.70067") :outer("82_1280467483.70067")
+.sub "_block1382" :anon :subid("83_1282324007.53935") :outer("82_1282324007.53935")
.param pmc param_1384
.annotate 'line', 492
.lex "$_", param_1384
@@ -22888,10 +24571,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "parameter" :subid("84_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "parameter" :subid("84_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1405
.annotate 'line', 499
- .const 'Sub' $P1486 = "85_1280467483.70067"
+ .const 'Sub' $P1486 = "85_1282324007.53935"
capture_lex $P1486
new $P1404, 'ExceptionHandler'
set_addr $P1404, control_1403
@@ -23117,7 +24800,7 @@
new $P1484, "Undef"
vivify_490:
unless $P1484, if_1482_end
- .const 'Sub' $P1486 = "85_1280467483.70067"
+ .const 'Sub' $P1486 = "85_1282324007.53935"
capture_lex $P1486
$P1486()
if_1482_end:
@@ -23137,9 +24820,9 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "_block1485" :anon :subid("85_1280467483.70067") :outer("84_1280467483.70067")
+.sub "_block1485" :anon :subid("85_1282324007.53935") :outer("84_1282324007.53935")
.annotate 'line', 530
- .const 'Sub' $P1498 = "86_1280467483.70067"
+ .const 'Sub' $P1498 = "86_1282324007.53935"
capture_lex $P1498
.annotate 'line', 531
$P1487 = root_new ['parrot';'ResizablePMCArray']
@@ -23178,7 +24861,7 @@
unless $P1489, loop1504_done
shift $P1496, $P1489
loop1504_redo:
- .const 'Sub' $P1498 = "86_1280467483.70067"
+ .const 'Sub' $P1498 = "86_1282324007.53935"
capture_lex $P1498
$P1498($P1496)
loop1504_next:
@@ -23202,7 +24885,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1497" :anon :subid("86_1280467483.70067") :outer("85_1280467483.70067")
+.sub "_block1497" :anon :subid("86_1282324007.53935") :outer("85_1282324007.53935")
.param pmc param_1499
.annotate 'line', 532
.lex "$_", param_1499
@@ -23216,7 +24899,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "param_var" :subid("87_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "param_var" :subid("87_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1517
.annotate 'line', 539
new $P1516, 'ExceptionHandler'
@@ -23270,7 +24953,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "named_param" :subid("88_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "named_param" :subid("88_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1537
.annotate 'line', 547
new $P1536, 'ExceptionHandler'
@@ -23324,14 +25007,14 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "regex_declarator" :subid("89_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "regex_declarator" :subid("89_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1554
.param pmc param_1555 :optional
.param int has_param_1555 :opt_flag
.annotate 'line', 553
- .const 'Sub' $P1625 = "91_1280467483.70067"
+ .const 'Sub' $P1625 = "91_1282324007.53935"
capture_lex $P1625
- .const 'Sub' $P1597 = "90_1280467483.70067"
+ .const 'Sub' $P1597 = "90_1282324007.53935"
capture_lex $P1597
new $P1553, 'ExceptionHandler'
set_addr $P1553, control_1552
@@ -23389,13 +25072,13 @@
iseq $I1595, $S1594, "open"
if $I1595, if_1592
.annotate 'line', 599
- .const 'Sub' $P1625 = "91_1280467483.70067"
+ .const 'Sub' $P1625 = "91_1282324007.53935"
capture_lex $P1625
$P1625()
goto if_1592_end
if_1592:
.annotate 'line', 586
- .const 'Sub' $P1597 = "90_1280467483.70067"
+ .const 'Sub' $P1597 = "90_1282324007.53935"
capture_lex $P1597
$P1597()
if_1592_end:
@@ -23452,7 +25135,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1624" :anon :subid("91_1280467483.70067") :outer("89_1280467483.70067")
+.sub "_block1624" :anon :subid("91_1282324007.53935") :outer("89_1282324007.53935")
.annotate 'line', 600
new $P1626, "Undef"
.lex "$regex", $P1626
@@ -23504,7 +25187,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "_block1596" :anon :subid("90_1280467483.70067") :outer("89_1280467483.70067")
+.sub "_block1596" :anon :subid("90_1282324007.53935") :outer("89_1282324007.53935")
.annotate 'line', 587
$P1598 = root_new ['parrot';'Hash']
.lex "%h", $P1598
@@ -23603,7 +25286,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "dotty" :subid("92_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "dotty" :subid("92_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1653
.annotate 'line', 617
new $P1652, 'ExceptionHandler'
@@ -23701,7 +25384,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<self>" :subid("93_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<self>" :subid("93_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1685
.annotate 'line', 626
new $P1684, 'ExceptionHandler'
@@ -23727,7 +25410,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<identifier>" :subid("94_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<identifier>" :subid("94_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1694
.annotate 'line', 630
new $P1693, 'ExceptionHandler'
@@ -23777,7 +25460,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<name>" :subid("95_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<name>" :subid("95_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1710
.annotate 'line', 636
new $P1709, 'ExceptionHandler'
@@ -23896,7 +25579,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<pir::op>" :subid("96_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<pir::op>" :subid("96_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1752
.annotate 'line', 650
new $P1751, 'ExceptionHandler'
@@ -23988,7 +25671,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "args" :subid("97_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "args" :subid("97_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1781
.annotate 'line', 665
new $P1780, 'ExceptionHandler'
@@ -24019,10 +25702,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "arglist" :subid("98_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "arglist" :subid("98_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1791
.annotate 'line', 667
- .const 'Sub' $P1802 = "99_1280467483.70067"
+ .const 'Sub' $P1802 = "99_1282324007.53935"
capture_lex $P1802
new $P1790, 'ExceptionHandler'
set_addr $P1790, control_1789
@@ -24054,7 +25737,7 @@
new $P1800, "Undef"
vivify_558:
unless $P1800, if_1798_end
- .const 'Sub' $P1802 = "99_1280467483.70067"
+ .const 'Sub' $P1802 = "99_1282324007.53935"
capture_lex $P1802
$P1802()
if_1798_end:
@@ -24211,9 +25894,9 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "_block1801" :anon :subid("99_1280467483.70067") :outer("98_1280467483.70067")
+.sub "_block1801" :anon :subid("99_1282324007.53935") :outer("98_1282324007.53935")
.annotate 'line', 669
- .const 'Sub' $P1823 = "100_1280467483.70067"
+ .const 'Sub' $P1823 = "100_1282324007.53935"
capture_lex $P1823
.annotate 'line', 670
new $P1803, "Undef"
@@ -24266,7 +25949,7 @@
unless $P1817, loop1828_done
shift $P1821, $P1817
loop1828_redo:
- .const 'Sub' $P1823 = "100_1280467483.70067"
+ .const 'Sub' $P1823 = "100_1282324007.53935"
capture_lex $P1823
$P1823($P1821)
loop1828_next:
@@ -24289,7 +25972,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1822" :anon :subid("100_1280467483.70067") :outer("99_1280467483.70067")
+.sub "_block1822" :anon :subid("100_1282324007.53935") :outer("99_1282324007.53935")
.param pmc param_1824
.annotate 'line', 672
.lex "$_", param_1824
@@ -24302,7 +25985,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<value>" :subid("101_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<value>" :subid("101_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1895
.annotate 'line', 693
new $P1894, 'ExceptionHandler'
@@ -24333,7 +26016,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "circumfix:sym<( )>" :subid("102_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<( )>" :subid("102_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1905
.annotate 'line', 695
new $P1904, 'ExceptionHandler'
@@ -24390,7 +26073,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "circumfix:sym<[ ]>" :subid("103_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<[ ]>" :subid("103_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1923
.annotate 'line', 701
new $P1922, 'ExceptionHandler'
@@ -24467,7 +26150,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "circumfix:sym<ang>" :subid("104_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<ang>" :subid("104_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1950
.annotate 'line', 716
new $P1949, 'ExceptionHandler'
@@ -24498,7 +26181,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("105_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("105_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1960
.annotate 'line', 717
new $P1959, 'ExceptionHandler'
@@ -24529,7 +26212,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "circumfix:sym<{ }>" :subid("106_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<{ }>" :subid("106_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1970
.annotate 'line', 719
new $P1969, 'ExceptionHandler'
@@ -24608,7 +26291,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "circumfix:sym<sigil>" :subid("107_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<sigil>" :subid("107_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_1994
.annotate 'line', 727
new $P1993, 'ExceptionHandler'
@@ -24688,7 +26371,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "semilist" :subid("108_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "semilist" :subid("108_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2023
.annotate 'line', 734
new $P2022, 'ExceptionHandler'
@@ -24719,7 +26402,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postcircumfix:sym<[ ]>" :subid("109_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<[ ]>" :subid("109_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2033
.annotate 'line', 736
new $P2032, 'ExceptionHandler'
@@ -24757,7 +26440,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postcircumfix:sym<{ }>" :subid("110_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<{ }>" :subid("110_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2046
.annotate 'line', 742
new $P2045, 'ExceptionHandler'
@@ -24795,7 +26478,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postcircumfix:sym<ang>" :subid("111_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<ang>" :subid("111_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2059
.annotate 'line', 748
new $P2058, 'ExceptionHandler'
@@ -24833,7 +26516,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postcircumfix:sym<( )>" :subid("112_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<( )>" :subid("112_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2072
.annotate 'line', 754
new $P2071, 'ExceptionHandler'
@@ -24866,7 +26549,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "value" :subid("113_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "value" :subid("113_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2082
.annotate 'line', 758
new $P2081, 'ExceptionHandler'
@@ -24922,7 +26605,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "number" :subid("114_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "number" :subid("114_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2099
.annotate 'line', 762
new $P2098, 'ExceptionHandler'
@@ -25001,7 +26684,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<apos>" :subid("115_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<apos>" :subid("115_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2127
.annotate 'line', 768
new $P2126, 'ExceptionHandler'
@@ -25032,7 +26715,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<dblq>" :subid("116_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<dblq>" :subid("116_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2137
.annotate 'line', 769
new $P2136, 'ExceptionHandler'
@@ -25063,7 +26746,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<qq>" :subid("117_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<qq>" :subid("117_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2147
.annotate 'line', 770
new $P2146, 'ExceptionHandler'
@@ -25094,7 +26777,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<q>" :subid("118_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<q>" :subid("118_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2157
.annotate 'line', 771
new $P2156, 'ExceptionHandler'
@@ -25125,7 +26808,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<Q>" :subid("119_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<Q>" :subid("119_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2167
.annotate 'line', 772
new $P2166, 'ExceptionHandler'
@@ -25156,7 +26839,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<Q:PIR>" :subid("120_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<Q:PIR>" :subid("120_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2177
.annotate 'line', 773
new $P2176, 'ExceptionHandler'
@@ -25193,7 +26876,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym</ />" :subid("121_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym</ />" :subid("121_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2191
.param pmc param_2192 :optional
.param int has_param_2192 :opt_flag
@@ -25303,7 +26986,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<$>" :subid("122_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote_escape:sym<$>" :subid("122_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2228
.annotate 'line', 802
new $P2227, 'ExceptionHandler'
@@ -25334,7 +27017,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<{ }>" :subid("123_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote_escape:sym<{ }>" :subid("123_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2238
.annotate 'line', 803
new $P2237, 'ExceptionHandler'
@@ -25373,7 +27056,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<esc>" :subid("124_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote_escape:sym<esc>" :subid("124_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2252
.annotate 'line', 808
new $P2251, 'ExceptionHandler'
@@ -25395,7 +27078,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postfix:sym<.>" :subid("125_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postfix:sym<.>" :subid("125_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2259
.annotate 'line', 812
new $P2258, 'ExceptionHandler'
@@ -25426,7 +27109,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postfix:sym<++>" :subid("126_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postfix:sym<++>" :subid("126_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2269
.annotate 'line', 814
new $P2268, 'ExceptionHandler'
@@ -25457,7 +27140,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postfix:sym<-->" :subid("127_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postfix:sym<-->" :subid("127_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2279
.annotate 'line', 820
new $P2278, 'ExceptionHandler'
@@ -25488,7 +27171,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "prefix:sym<make>" :subid("128_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "prefix:sym<make>" :subid("128_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2289
.annotate 'line', 826
new $P2288, 'ExceptionHandler'
@@ -25519,7 +27202,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<next>" :subid("129_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<next>" :subid("129_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2302
.annotate 'line', 844
new $P2301, 'ExceptionHandler'
@@ -25541,7 +27224,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<last>" :subid("130_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<last>" :subid("130_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2309
.annotate 'line', 845
new $P2308, 'ExceptionHandler'
@@ -25563,7 +27246,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<redo>" :subid("131_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<redo>" :subid("131_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2316
.annotate 'line', 846
new $P2315, 'ExceptionHandler'
@@ -25585,7 +27268,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "infix:sym<~~>" :subid("132_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "infix:sym<~~>" :subid("132_1282324007.53935") :method :outer("11_1282324007.53935")
.param pmc param_2323
.annotate 'line', 848
new $P2322, 'ExceptionHandler'
@@ -25611,24 +27294,24 @@
.namespace ["NQP";"RegexActions"]
-.sub "_block2330" :subid("133_1280467483.70067") :outer("11_1280467483.70067")
+.sub "_block2330" :subid("133_1282324007.53935") :outer("11_1282324007.53935")
.annotate 'line', 853
- .const 'Sub' $P2416 = "140_1280467483.70067"
+ .const 'Sub' $P2416 = "140_1282324007.53935"
capture_lex $P2416
- .const 'Sub' $P2403 = "139_1280467483.70067"
+ .const 'Sub' $P2403 = "139_1282324007.53935"
capture_lex $P2403
- .const 'Sub' $P2386 = "138_1280467483.70067"
+ .const 'Sub' $P2386 = "138_1282324007.53935"
capture_lex $P2386
- .const 'Sub' $P2373 = "137_1280467483.70067"
+ .const 'Sub' $P2373 = "137_1282324007.53935"
capture_lex $P2373
- .const 'Sub' $P2360 = "136_1280467483.70067"
+ .const 'Sub' $P2360 = "136_1282324007.53935"
capture_lex $P2360
- .const 'Sub' $P2347 = "135_1280467483.70067"
+ .const 'Sub' $P2347 = "135_1282324007.53935"
capture_lex $P2347
- .const 'Sub' $P2332 = "134_1280467483.70067"
+ .const 'Sub' $P2332 = "134_1282324007.53935"
capture_lex $P2332
.annotate 'line', 887
- .const 'Sub' $P2416 = "140_1280467483.70067"
+ .const 'Sub' $P2416 = "140_1282324007.53935"
newclosure $P2441, $P2416
.annotate 'line', 853
.return ($P2441)
@@ -25637,7 +27320,7 @@
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "metachar:sym<:my>" :subid("134_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "metachar:sym<:my>" :subid("134_1282324007.53935") :method :outer("133_1282324007.53935")
.param pmc param_2335
.annotate 'line', 855
new $P2334, 'ExceptionHandler'
@@ -25678,7 +27361,7 @@
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "metachar:sym<{ }>" :subid("135_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "metachar:sym<{ }>" :subid("135_1282324007.53935") :method :outer("133_1282324007.53935")
.param pmc param_2350
.annotate 'line', 861
new $P2349, 'ExceptionHandler'
@@ -25714,7 +27397,7 @@
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "metachar:sym<nqpvar>" :subid("136_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "metachar:sym<nqpvar>" :subid("136_1282324007.53935") :method :outer("133_1282324007.53935")
.param pmc param_2363
.annotate 'line', 866
new $P2362, 'ExceptionHandler'
@@ -25750,7 +27433,7 @@
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "assertion:sym<{ }>" :subid("137_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "assertion:sym<{ }>" :subid("137_1282324007.53935") :method :outer("133_1282324007.53935")
.param pmc param_2376
.annotate 'line', 871
new $P2375, 'ExceptionHandler'
@@ -25786,7 +27469,7 @@
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "assertion:sym<?{ }>" :subid("138_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "assertion:sym<?{ }>" :subid("138_1282324007.53935") :method :outer("133_1282324007.53935")
.param pmc param_2389
.annotate 'line', 876
new $P2388, 'ExceptionHandler'
@@ -25834,7 +27517,7 @@
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "assertion:sym<var>" :subid("139_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "assertion:sym<var>" :subid("139_1282324007.53935") :method :outer("133_1282324007.53935")
.param pmc param_2406
.annotate 'line', 882
new $P2405, 'ExceptionHandler'
@@ -25870,7 +27553,7 @@
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "codeblock" :subid("140_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "codeblock" :subid("140_1282324007.53935") :method :outer("133_1282324007.53935")
.param pmc param_2419
.annotate 'line', 887
new $P2418, 'ExceptionHandler'
@@ -25934,18 +27617,18 @@
.namespace ["NQP";"Actions"]
-.sub "_block2443" :load :anon :subid("141_1280467483.70067")
+.sub "_block2443" :load :anon :subid("141_1282324007.53935")
.annotate 'line', 3
- .const 'Sub' $P2445 = "11_1280467483.70067"
+ .const 'Sub' $P2445 = "11_1282324007.53935"
$P2446 = $P2445()
.return ($P2446)
.end
.namespace []
-.sub "_block2453" :load :anon :subid("143_1280467483.70067")
+.sub "_block2453" :load :anon :subid("143_1282324007.53935")
.annotate 'line', 1
- .const 'Sub' $P2455 = "10_1280467483.70067"
+ .const 'Sub' $P2455 = "10_1282324007.53935"
$P2456 = $P2455()
.return ($P2456)
.end
Modified: branches/unshared_buffers/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/unshared_buffers/ext/nqp-rx/src/stage0/P6Regex-s0.pir Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/ext/nqp-rx/src/stage0/P6Regex-s0.pir Sun Aug 29 17:09:11 2010 (r48719)
@@ -16,7 +16,7 @@
### .include 'gen/p6regex-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1280467470.54449")
+.sub "_block11" :anon :subid("10_1282323996.47527")
.annotate 'line', 0
get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13"
capture_lex $P14
@@ -30,153 +30,155 @@
.annotate 'line', 3
get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13"
capture_lex $P14
- $P572 = $P14()
+ $P581 = $P14()
.annotate 'line', 1
- .return ($P572)
- .const 'Sub' $P574 = "161_1280467470.54449"
- .return ($P574)
+ .return ($P581)
+ .const 'Sub' $P583 = "163_1282323996.47527"
+ .return ($P583)
.end
.namespace []
-.sub "" :load :init :subid("post162") :outer("10_1280467470.54449")
+.sub "" :load :init :subid("post164") :outer("10_1282323996.47527")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1280467470.54449"
+ .const 'Sub' $P12 = "10_1282323996.47527"
.local pmc block
set block, $P12
- $P577 = get_root_global ["parrot"], "P6metaclass"
- $P577."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
+ $P586 = get_root_global ["parrot"], "P6metaclass"
+ $P586."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13" :subid("11_1280467470.54449") :outer("10_1280467470.54449")
+.sub "_block13" :subid("11_1282323996.47527") :outer("10_1282323996.47527")
.annotate 'line', 3
- .const 'Sub' $P561 = "158_1280467470.54449"
- capture_lex $P561
- .const 'Sub' $P554 = "156_1280467470.54449"
- capture_lex $P554
- .const 'Sub' $P547 = "154_1280467470.54449"
- capture_lex $P547
- .const 'Sub' $P527 = "149_1280467470.54449"
- capture_lex $P527
- .const 'Sub' $P493 = "143_1280467470.54449"
- capture_lex $P493
- .const 'Sub' $P481 = "140_1280467470.54449"
- capture_lex $P481
- .const 'Sub' $P469 = "137_1280467470.54449"
- capture_lex $P469
- .const 'Sub' $P463 = "135_1280467470.54449"
- capture_lex $P463
- .const 'Sub' $P452 = "132_1280467470.54449"
- capture_lex $P452
- .const 'Sub' $P441 = "129_1280467470.54449"
+ .const 'Sub' $P570 = "160_1282323996.47527"
+ capture_lex $P570
+ .const 'Sub' $P563 = "158_1282323996.47527"
+ capture_lex $P563
+ .const 'Sub' $P556 = "156_1282323996.47527"
+ capture_lex $P556
+ .const 'Sub' $P536 = "151_1282323996.47527"
+ capture_lex $P536
+ .const 'Sub' $P502 = "145_1282323996.47527"
+ capture_lex $P502
+ .const 'Sub' $P490 = "142_1282323996.47527"
+ capture_lex $P490
+ .const 'Sub' $P478 = "139_1282323996.47527"
+ capture_lex $P478
+ .const 'Sub' $P472 = "137_1282323996.47527"
+ capture_lex $P472
+ .const 'Sub' $P461 = "134_1282323996.47527"
+ capture_lex $P461
+ .const 'Sub' $P450 = "131_1282323996.47527"
+ capture_lex $P450
+ .const 'Sub' $P441 = "127_1282323996.47527"
capture_lex $P441
- .const 'Sub' $P432 = "125_1280467470.54449"
- capture_lex $P432
- .const 'Sub' $P426 = "123_1280467470.54449"
- capture_lex $P426
- .const 'Sub' $P420 = "121_1280467470.54449"
- capture_lex $P420
- .const 'Sub' $P414 = "119_1280467470.54449"
- capture_lex $P414
- .const 'Sub' $P408 = "117_1280467470.54449"
- capture_lex $P408
- .const 'Sub' $P400 = "115_1280467470.54449"
- capture_lex $P400
- .const 'Sub' $P389 = "113_1280467470.54449"
- capture_lex $P389
- .const 'Sub' $P378 = "111_1280467470.54449"
- capture_lex $P378
- .const 'Sub' $P372 = "109_1280467470.54449"
- capture_lex $P372
- .const 'Sub' $P366 = "107_1280467470.54449"
- capture_lex $P366
- .const 'Sub' $P360 = "105_1280467470.54449"
- capture_lex $P360
- .const 'Sub' $P354 = "103_1280467470.54449"
- capture_lex $P354
- .const 'Sub' $P348 = "101_1280467470.54449"
- capture_lex $P348
- .const 'Sub' $P342 = "99_1280467470.54449"
- capture_lex $P342
- .const 'Sub' $P336 = "97_1280467470.54449"
- capture_lex $P336
- .const 'Sub' $P330 = "95_1280467470.54449"
- capture_lex $P330
- .const 'Sub' $P318 = "91_1280467470.54449"
- capture_lex $P318
- .const 'Sub' $P308 = "89_1280467470.54449"
- capture_lex $P308
- .const 'Sub' $P301 = "87_1280467470.54449"
- capture_lex $P301
- .const 'Sub' $P289 = "85_1280467470.54449"
- capture_lex $P289
- .const 'Sub' $P282 = "83_1280467470.54449"
- capture_lex $P282
- .const 'Sub' $P276 = "81_1280467470.54449"
- capture_lex $P276
- .const 'Sub' $P270 = "79_1280467470.54449"
- capture_lex $P270
- .const 'Sub' $P263 = "77_1280467470.54449"
- capture_lex $P263
- .const 'Sub' $P256 = "75_1280467470.54449"
- capture_lex $P256
- .const 'Sub' $P249 = "73_1280467470.54449"
- capture_lex $P249
- .const 'Sub' $P242 = "71_1280467470.54449"
- capture_lex $P242
- .const 'Sub' $P236 = "69_1280467470.54449"
- capture_lex $P236
- .const 'Sub' $P230 = "67_1280467470.54449"
- capture_lex $P230
- .const 'Sub' $P224 = "65_1280467470.54449"
- capture_lex $P224
- .const 'Sub' $P218 = "63_1280467470.54449"
- capture_lex $P218
- .const 'Sub' $P212 = "61_1280467470.54449"
- capture_lex $P212
- .const 'Sub' $P207 = "59_1280467470.54449"
- capture_lex $P207
- .const 'Sub' $P202 = "57_1280467470.54449"
- capture_lex $P202
- .const 'Sub' $P196 = "55_1280467470.54449"
- capture_lex $P196
- .const 'Sub' $P190 = "53_1280467470.54449"
- capture_lex $P190
- .const 'Sub' $P184 = "51_1280467470.54449"
- capture_lex $P184
- .const 'Sub' $P169 = "46_1280467470.54449"
- capture_lex $P169
- .const 'Sub' $P154 = "44_1280467470.54449"
- capture_lex $P154
- .const 'Sub' $P147 = "42_1280467470.54449"
- capture_lex $P147
- .const 'Sub' $P140 = "40_1280467470.54449"
- capture_lex $P140
- .const 'Sub' $P133 = "38_1280467470.54449"
- capture_lex $P133
- .const 'Sub' $P116 = "33_1280467470.54449"
- capture_lex $P116
- .const 'Sub' $P104 = "30_1280467470.54449"
- capture_lex $P104
- .const 'Sub' $P97 = "28_1280467470.54449"
+ .const 'Sub' $P435 = "125_1282323996.47527"
+ capture_lex $P435
+ .const 'Sub' $P429 = "123_1282323996.47527"
+ capture_lex $P429
+ .const 'Sub' $P423 = "121_1282323996.47527"
+ capture_lex $P423
+ .const 'Sub' $P417 = "119_1282323996.47527"
+ capture_lex $P417
+ .const 'Sub' $P409 = "117_1282323996.47527"
+ capture_lex $P409
+ .const 'Sub' $P398 = "115_1282323996.47527"
+ capture_lex $P398
+ .const 'Sub' $P387 = "113_1282323996.47527"
+ capture_lex $P387
+ .const 'Sub' $P381 = "111_1282323996.47527"
+ capture_lex $P381
+ .const 'Sub' $P375 = "109_1282323996.47527"
+ capture_lex $P375
+ .const 'Sub' $P369 = "107_1282323996.47527"
+ capture_lex $P369
+ .const 'Sub' $P363 = "105_1282323996.47527"
+ capture_lex $P363
+ .const 'Sub' $P357 = "103_1282323996.47527"
+ capture_lex $P357
+ .const 'Sub' $P351 = "101_1282323996.47527"
+ capture_lex $P351
+ .const 'Sub' $P345 = "99_1282323996.47527"
+ capture_lex $P345
+ .const 'Sub' $P339 = "97_1282323996.47527"
+ capture_lex $P339
+ .const 'Sub' $P327 = "93_1282323996.47527"
+ capture_lex $P327
+ .const 'Sub' $P317 = "91_1282323996.47527"
+ capture_lex $P317
+ .const 'Sub' $P310 = "89_1282323996.47527"
+ capture_lex $P310
+ .const 'Sub' $P298 = "87_1282323996.47527"
+ capture_lex $P298
+ .const 'Sub' $P291 = "85_1282323996.47527"
+ capture_lex $P291
+ .const 'Sub' $P285 = "83_1282323996.47527"
+ capture_lex $P285
+ .const 'Sub' $P279 = "81_1282323996.47527"
+ capture_lex $P279
+ .const 'Sub' $P272 = "79_1282323996.47527"
+ capture_lex $P272
+ .const 'Sub' $P265 = "77_1282323996.47527"
+ capture_lex $P265
+ .const 'Sub' $P258 = "75_1282323996.47527"
+ capture_lex $P258
+ .const 'Sub' $P251 = "73_1282323996.47527"
+ capture_lex $P251
+ .const 'Sub' $P245 = "71_1282323996.47527"
+ capture_lex $P245
+ .const 'Sub' $P239 = "69_1282323996.47527"
+ capture_lex $P239
+ .const 'Sub' $P233 = "67_1282323996.47527"
+ capture_lex $P233
+ .const 'Sub' $P227 = "65_1282323996.47527"
+ capture_lex $P227
+ .const 'Sub' $P221 = "63_1282323996.47527"
+ capture_lex $P221
+ .const 'Sub' $P216 = "61_1282323996.47527"
+ capture_lex $P216
+ .const 'Sub' $P211 = "59_1282323996.47527"
+ capture_lex $P211
+ .const 'Sub' $P205 = "57_1282323996.47527"
+ capture_lex $P205
+ .const 'Sub' $P199 = "55_1282323996.47527"
+ capture_lex $P199
+ .const 'Sub' $P193 = "53_1282323996.47527"
+ capture_lex $P193
+ .const 'Sub' $P178 = "48_1282323996.47527"
+ capture_lex $P178
+ .const 'Sub' $P163 = "46_1282323996.47527"
+ capture_lex $P163
+ .const 'Sub' $P156 = "44_1282323996.47527"
+ capture_lex $P156
+ .const 'Sub' $P149 = "42_1282323996.47527"
+ capture_lex $P149
+ .const 'Sub' $P142 = "40_1282323996.47527"
+ capture_lex $P142
+ .const 'Sub' $P125 = "35_1282323996.47527"
+ capture_lex $P125
+ .const 'Sub' $P113 = "32_1282323996.47527"
+ capture_lex $P113
+ .const 'Sub' $P106 = "30_1282323996.47527"
+ capture_lex $P106
+ .const 'Sub' $P97 = "28_1282323996.47527"
capture_lex $P97
- .const 'Sub' $P87 = "26_1280467470.54449"
+ .const 'Sub' $P87 = "26_1282323996.47527"
capture_lex $P87
- .const 'Sub' $P80 = "24_1280467470.54449"
+ .const 'Sub' $P80 = "24_1282323996.47527"
capture_lex $P80
- .const 'Sub' $P68 = "22_1280467470.54449"
+ .const 'Sub' $P68 = "22_1282323996.47527"
capture_lex $P68
- .const 'Sub' $P61 = "20_1280467470.54449"
+ .const 'Sub' $P61 = "20_1282323996.47527"
capture_lex $P61
- .const 'Sub' $P54 = "18_1280467470.54449"
+ .const 'Sub' $P54 = "18_1282323996.47527"
capture_lex $P54
- .const 'Sub' $P44 = "15_1280467470.54449"
+ .const 'Sub' $P44 = "15_1282323996.47527"
capture_lex $P44
- .const 'Sub' $P37 = "13_1280467470.54449"
+ .const 'Sub' $P37 = "13_1282323996.47527"
capture_lex $P37
- .const 'Sub' $P15 = "12_1280467470.54449"
+ .const 'Sub' $P15 = "12_1282323996.47527"
capture_lex $P15
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
@@ -184,17 +186,17 @@
unless $I0 goto ctxsave_done
$P0."ctxsave"()
ctxsave_done:
- .const 'Sub' $P561 = "158_1280467470.54449"
- capture_lex $P561
- .return ($P561)
- .const 'Sub' $P569 = "160_1280467470.54449"
- .return ($P569)
+ .const 'Sub' $P570 = "160_1282323996.47527"
+ capture_lex $P570
+ .return ($P570)
+ .const 'Sub' $P578 = "162_1282323996.47527"
+ .return ($P578)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
.include "except_types.pasm"
-.sub "obs" :subid("12_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "obs" :subid("12_1282323996.47527") :method :outer("11_1282323996.47527")
.param pmc param_18
.param pmc param_19
.param pmc param_20 :optional
@@ -207,11 +209,11 @@
.lex "self", self
.lex "$old", param_18
.lex "$new", param_19
- if has_param_20, optparam_163
+ if has_param_20, optparam_165
new $P21, "String"
assign $P21, "in Perl 6"
set param_20, $P21
- optparam_163:
+ optparam_165:
.lex "$when", param_20
.annotate 'line', 4
find_lex $P22, "self"
@@ -241,7 +243,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws" :subid("13_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "ws" :subid("13_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
.local string rx38_tgt
.local int rx38_pos
@@ -249,7 +251,9 @@
.local int rx38_eos
.local int rx38_rep
.local pmc rx38_cur
+ .local pmc rx38_debug
(rx38_cur, rx38_pos, rx38_tgt, $I10) = self."!cursor_start"()
+ getattribute rx38_debug, rx38_cur, "$!debug"
.lex unicode:"$\x{a2}", rx38_cur
.local pmc match
.lex "$/", match
@@ -261,7 +265,9 @@
substr rx38_tgt, rx38_tgt, rx38_off
rx38_start:
eq $I10, 1, rx38_restart
- rx38_cur."!cursor_debug"("START ", "ws")
+ if_null rx38_debug, debug_166
+ rx38_cur."!cursor_debug"("START", "ws")
+ debug_166:
$I10 = self.'from'()
ne $I10, -1, rxscan41_done
goto rxscan41_scan
@@ -294,8 +300,8 @@
add $I11, rx38_pos, 1
gt $I11, rx38_eos, rx38_fail
sub $I11, rx38_pos, rx38_off
- substr $S10, rx38_tgt, $I11, 1
- ne $S10, "#", rx38_fail
+ ord $I11, rx38_tgt, $I11
+ ne $I11, 35, rx38_fail
add rx38_pos, 1
# rx charclass_q N r 0..-1
sub $I10, rx38_pos, rx38_off
@@ -310,11 +316,15 @@
rxquantr42_done:
# rx pass
rx38_cur."!cursor_pass"(rx38_pos, "ws")
- rx38_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx38_pos)
+ if_null rx38_debug, debug_167
+ rx38_cur."!cursor_debug"("PASS", "ws", " at pos=", rx38_pos)
+ debug_167:
.return (rx38_cur)
rx38_restart:
.annotate 'line', 3
- rx38_cur."!cursor_debug"("NEXT ", "ws")
+ if_null rx38_debug, debug_168
+ rx38_cur."!cursor_debug"("NEXT", "ws")
+ debug_168:
rx38_fail:
(rx38_rep, rx38_pos, $I10, $P10) = rx38_cur."!mark_fail"(0)
lt rx38_pos, -1, rx38_done
@@ -322,14 +332,16 @@
jump $I10
rx38_done:
rx38_cur."!cursor_fail"()
- rx38_cur."!cursor_debug"("FAIL ", "ws")
+ if_null rx38_debug, debug_169
+ rx38_cur."!cursor_debug"("FAIL", "ws")
+ debug_169:
.return (rx38_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws" :subid("14_1280467470.54449") :method
+.sub "!PREFIX__ws" :subid("14_1282323996.47527") :method
.annotate 'line', 3
new $P40, "ResizablePMCArray"
push $P40, ""
@@ -338,9 +350,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace" :subid("15_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "normspace" :subid("15_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
- .const 'Sub' $P50 = "17_1280467470.54449"
+ .const 'Sub' $P50 = "17_1282323996.47527"
capture_lex $P50
.local string rx45_tgt
.local int rx45_pos
@@ -348,7 +360,9 @@
.local int rx45_eos
.local int rx45_rep
.local pmc rx45_cur
+ .local pmc rx45_debug
(rx45_cur, rx45_pos, rx45_tgt, $I10) = self."!cursor_start"()
+ getattribute rx45_debug, rx45_cur, "$!debug"
.lex unicode:"$\x{a2}", rx45_cur
.local pmc match
.lex "$/", match
@@ -360,7 +374,9 @@
substr rx45_tgt, rx45_tgt, rx45_off
rx45_start:
eq $I10, 1, rx45_restart
- rx45_cur."!cursor_debug"("START ", "normspace")
+ if_null rx45_debug, debug_170
+ rx45_cur."!cursor_debug"("START", "normspace")
+ debug_170:
$I10 = self.'from'()
ne $I10, -1, rxscan48_done
goto rxscan48_scan
@@ -376,7 +392,7 @@
.annotate 'line', 10
# rx subrule "before" subtype=zerowidth negate=
rx45_cur."!cursor_pos"(rx45_pos)
- .const 'Sub' $P50 = "17_1280467470.54449"
+ .const 'Sub' $P50 = "17_1282323996.47527"
capture_lex $P50
$P10 = rx45_cur."before"($P50)
unless $P10, rx45_fail
@@ -387,11 +403,15 @@
rx45_pos = $P10."pos"()
# rx pass
rx45_cur."!cursor_pass"(rx45_pos, "normspace")
- rx45_cur."!cursor_debug"("PASS ", "normspace", " at pos=", rx45_pos)
+ if_null rx45_debug, debug_175
+ rx45_cur."!cursor_debug"("PASS", "normspace", " at pos=", rx45_pos)
+ debug_175:
.return (rx45_cur)
rx45_restart:
.annotate 'line', 3
- rx45_cur."!cursor_debug"("NEXT ", "normspace")
+ if_null rx45_debug, debug_176
+ rx45_cur."!cursor_debug"("NEXT", "normspace")
+ debug_176:
rx45_fail:
(rx45_rep, rx45_pos, $I10, $P10) = rx45_cur."!mark_fail"(0)
lt rx45_pos, -1, rx45_done
@@ -399,14 +419,16 @@
jump $I10
rx45_done:
rx45_cur."!cursor_fail"()
- rx45_cur."!cursor_debug"("FAIL ", "normspace")
+ if_null rx45_debug, debug_177
+ rx45_cur."!cursor_debug"("FAIL", "normspace")
+ debug_177:
.return (rx45_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace" :subid("16_1280467470.54449") :method
+.sub "!PREFIX__normspace" :subid("16_1282323996.47527") :method
.annotate 'line', 3
new $P47, "ResizablePMCArray"
push $P47, ""
@@ -415,7 +437,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block49" :anon :subid("17_1280467470.54449") :method :outer("15_1280467470.54449")
+.sub "_block49" :anon :subid("17_1282323996.47527") :method :outer("15_1282323996.47527")
.annotate 'line', 10
.local string rx51_tgt
.local int rx51_pos
@@ -423,7 +445,9 @@
.local int rx51_eos
.local int rx51_rep
.local pmc rx51_cur
+ .local pmc rx51_debug
(rx51_cur, rx51_pos, rx51_tgt, $I10) = self."!cursor_start"()
+ getattribute rx51_debug, rx51_cur, "$!debug"
.lex unicode:"$\x{a2}", rx51_cur
.local pmc match
.lex "$/", match
@@ -435,7 +459,9 @@
substr rx51_tgt, rx51_tgt, rx51_off
rx51_start:
eq $I10, 1, rx51_restart
- rx51_cur."!cursor_debug"("START ", "")
+ if_null rx51_debug, debug_171
+ rx51_cur."!cursor_debug"("START", "")
+ debug_171:
$I10 = self.'from'()
ne $I10, -1, rxscan52_done
goto rxscan52_scan
@@ -463,16 +489,20 @@
add $I11, rx51_pos, 1
gt $I11, rx51_eos, rx51_fail
sub $I11, rx51_pos, rx51_off
- substr $S10, rx51_tgt, $I11, 1
- ne $S10, "#", rx51_fail
+ ord $I11, rx51_tgt, $I11
+ ne $I11, 35, rx51_fail
add rx51_pos, 1
alt53_end:
# rx pass
rx51_cur."!cursor_pass"(rx51_pos, "")
- rx51_cur."!cursor_debug"("PASS ", "", " at pos=", rx51_pos)
+ if_null rx51_debug, debug_172
+ rx51_cur."!cursor_debug"("PASS", "", " at pos=", rx51_pos)
+ debug_172:
.return (rx51_cur)
rx51_restart:
- rx51_cur."!cursor_debug"("NEXT ", "")
+ if_null rx51_debug, debug_173
+ rx51_cur."!cursor_debug"("NEXT", "")
+ debug_173:
rx51_fail:
(rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0)
lt rx51_pos, -1, rx51_done
@@ -480,14 +510,16 @@
jump $I10
rx51_done:
rx51_cur."!cursor_fail"()
- rx51_cur."!cursor_debug"("FAIL ", "")
+ if_null rx51_debug, debug_174
+ rx51_cur."!cursor_debug"("FAIL", "")
+ debug_174:
.return (rx51_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "identifier" :subid("18_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "identifier" :subid("18_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
.local string rx55_tgt
.local int rx55_pos
@@ -495,7 +527,9 @@
.local int rx55_eos
.local int rx55_rep
.local pmc rx55_cur
+ .local pmc rx55_debug
(rx55_cur, rx55_pos, rx55_tgt, $I10) = self."!cursor_start"()
+ getattribute rx55_debug, rx55_cur, "$!debug"
.lex unicode:"$\x{a2}", rx55_cur
.local pmc match
.lex "$/", match
@@ -507,7 +541,9 @@
substr rx55_tgt, rx55_tgt, rx55_off
rx55_start:
eq $I10, 1, rx55_restart
- rx55_cur."!cursor_debug"("START ", "identifier")
+ if_null rx55_debug, debug_178
+ rx55_cur."!cursor_debug"("START", "identifier")
+ debug_178:
$I10 = self.'from'()
ne $I10, -1, rxscan59_done
goto rxscan59_scan
@@ -550,11 +586,15 @@
rxquantr60_done:
# rx pass
rx55_cur."!cursor_pass"(rx55_pos, "identifier")
- rx55_cur."!cursor_debug"("PASS ", "identifier", " at pos=", rx55_pos)
+ if_null rx55_debug, debug_179
+ rx55_cur."!cursor_debug"("PASS", "identifier", " at pos=", rx55_pos)
+ debug_179:
.return (rx55_cur)
rx55_restart:
.annotate 'line', 3
- rx55_cur."!cursor_debug"("NEXT ", "identifier")
+ if_null rx55_debug, debug_180
+ rx55_cur."!cursor_debug"("NEXT", "identifier")
+ debug_180:
rx55_fail:
(rx55_rep, rx55_pos, $I10, $P10) = rx55_cur."!mark_fail"(0)
lt rx55_pos, -1, rx55_done
@@ -562,14 +602,16 @@
jump $I10
rx55_done:
rx55_cur."!cursor_fail"()
- rx55_cur."!cursor_debug"("FAIL ", "identifier")
+ if_null rx55_debug, debug_181
+ rx55_cur."!cursor_debug"("FAIL", "identifier")
+ debug_181:
.return (rx55_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__identifier" :subid("19_1280467470.54449") :method
+.sub "!PREFIX__identifier" :subid("19_1282323996.47527") :method
.annotate 'line', 3
$P57 = self."!PREFIX__!subrule"("ident", "")
new $P58, "ResizablePMCArray"
@@ -579,7 +621,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg" :subid("20_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "arg" :subid("20_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
.local string rx62_tgt
.local int rx62_pos
@@ -587,7 +629,9 @@
.local int rx62_eos
.local int rx62_rep
.local pmc rx62_cur
+ .local pmc rx62_debug
(rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+ getattribute rx62_debug, rx62_cur, "$!debug"
.lex unicode:"$\x{a2}", rx62_cur
.local pmc match
.lex "$/", match
@@ -599,7 +643,9 @@
substr rx62_tgt, rx62_tgt, rx62_off
rx62_start:
eq $I10, 1, rx62_restart
- rx62_cur."!cursor_debug"("START ", "arg")
+ if_null rx62_debug, debug_182
+ rx62_cur."!cursor_debug"("START", "arg")
+ debug_182:
$I10 = self.'from'()
ne $I10, -1, rxscan65_done
goto rxscan65_scan
@@ -675,11 +721,15 @@
.annotate 'line', 14
# rx pass
rx62_cur."!cursor_pass"(rx62_pos, "arg")
- rx62_cur."!cursor_debug"("PASS ", "arg", " at pos=", rx62_pos)
+ if_null rx62_debug, debug_183
+ rx62_cur."!cursor_debug"("PASS", "arg", " at pos=", rx62_pos)
+ debug_183:
.return (rx62_cur)
rx62_restart:
.annotate 'line', 3
- rx62_cur."!cursor_debug"("NEXT ", "arg")
+ if_null rx62_debug, debug_184
+ rx62_cur."!cursor_debug"("NEXT", "arg")
+ debug_184:
rx62_fail:
(rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
lt rx62_pos, -1, rx62_done
@@ -687,14 +737,16 @@
jump $I10
rx62_done:
rx62_cur."!cursor_fail"()
- rx62_cur."!cursor_debug"("FAIL ", "arg")
+ if_null rx62_debug, debug_185
+ rx62_cur."!cursor_debug"("FAIL", "arg")
+ debug_185:
.return (rx62_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg" :subid("21_1280467470.54449") :method
+.sub "!PREFIX__arg" :subid("21_1282323996.47527") :method
.annotate 'line', 3
new $P64, "ResizablePMCArray"
push $P64, ""
@@ -705,7 +757,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist" :subid("22_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "arglist" :subid("22_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
.local string rx69_tgt
.local int rx69_pos
@@ -713,8 +765,10 @@
.local int rx69_eos
.local int rx69_rep
.local pmc rx69_cur
+ .local pmc rx69_debug
(rx69_cur, rx69_pos, rx69_tgt, $I10) = self."!cursor_start"()
rx69_cur."!cursor_caparray"("arg")
+ getattribute rx69_debug, rx69_cur, "$!debug"
.lex unicode:"$\x{a2}", rx69_cur
.local pmc match
.lex "$/", match
@@ -726,7 +780,9 @@
substr rx69_tgt, rx69_tgt, rx69_off
rx69_start:
eq $I10, 1, rx69_restart
- rx69_cur."!cursor_debug"("START ", "arglist")
+ if_null rx69_debug, debug_186
+ rx69_cur."!cursor_debug"("START", "arglist")
+ debug_186:
$I10 = self.'from'()
ne $I10, -1, rxscan73_done
goto rxscan73_scan
@@ -770,8 +826,8 @@
add $I11, rx69_pos, 1
gt $I11, rx69_eos, rx69_fail
sub $I11, rx69_pos, rx69_off
- substr $S10, rx69_tgt, $I11, 1
- ne $S10, ",", rx69_fail
+ ord $I11, rx69_tgt, $I11
+ ne $I11, 44, rx69_fail
add rx69_pos, 1
# rx subrule "ws" subtype=method negate=
rx69_cur."!cursor_pos"(rx69_pos)
@@ -798,11 +854,15 @@
rx69_pos = $P10."pos"()
# rx pass
rx69_cur."!cursor_pass"(rx69_pos, "arglist")
- rx69_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx69_pos)
+ if_null rx69_debug, debug_187
+ rx69_cur."!cursor_debug"("PASS", "arglist", " at pos=", rx69_pos)
+ debug_187:
.return (rx69_cur)
rx69_restart:
.annotate 'line', 3
- rx69_cur."!cursor_debug"("NEXT ", "arglist")
+ if_null rx69_debug, debug_188
+ rx69_cur."!cursor_debug"("NEXT", "arglist")
+ debug_188:
rx69_fail:
(rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
lt rx69_pos, -1, rx69_done
@@ -810,14 +870,16 @@
jump $I10
rx69_done:
rx69_cur."!cursor_fail"()
- rx69_cur."!cursor_debug"("FAIL ", "arglist")
+ if_null rx69_debug, debug_189
+ rx69_cur."!cursor_debug"("FAIL", "arglist")
+ debug_189:
.return (rx69_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist" :subid("23_1280467470.54449") :method
+.sub "!PREFIX__arglist" :subid("23_1282323996.47527") :method
.annotate 'line', 3
$P71 = self."!PREFIX__!subrule"("ws", "")
new $P72, "ResizablePMCArray"
@@ -827,7 +889,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP" :subid("24_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "TOP" :subid("24_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
.local string rx81_tgt
.local int rx81_pos
@@ -835,7 +897,9 @@
.local int rx81_eos
.local int rx81_rep
.local pmc rx81_cur
+ .local pmc rx81_debug
(rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+ getattribute rx81_debug, rx81_cur, "$!debug"
.lex unicode:"$\x{a2}", rx81_cur
.local pmc match
.lex "$/", match
@@ -847,7 +911,9 @@
substr rx81_tgt, rx81_tgt, rx81_off
rx81_start:
eq $I10, 1, rx81_restart
- rx81_cur."!cursor_debug"("START ", "TOP")
+ if_null rx81_debug, debug_190
+ rx81_cur."!cursor_debug"("START", "TOP")
+ debug_190:
$I10 = self.'from'()
ne $I10, -1, rxscan85_done
goto rxscan85_scan
@@ -885,11 +951,15 @@
.annotate 'line', 24
# rx pass
rx81_cur."!cursor_pass"(rx81_pos, "TOP")
- rx81_cur."!cursor_debug"("PASS ", "TOP", " at pos=", rx81_pos)
+ if_null rx81_debug, debug_191
+ rx81_cur."!cursor_debug"("PASS", "TOP", " at pos=", rx81_pos)
+ debug_191:
.return (rx81_cur)
rx81_restart:
.annotate 'line', 3
- rx81_cur."!cursor_debug"("NEXT ", "TOP")
+ if_null rx81_debug, debug_192
+ rx81_cur."!cursor_debug"("NEXT", "TOP")
+ debug_192:
rx81_fail:
(rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
lt rx81_pos, -1, rx81_done
@@ -897,14 +967,16 @@
jump $I10
rx81_done:
rx81_cur."!cursor_fail"()
- rx81_cur."!cursor_debug"("FAIL ", "TOP")
+ if_null rx81_debug, debug_193
+ rx81_cur."!cursor_debug"("FAIL", "TOP")
+ debug_193:
.return (rx81_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP" :subid("25_1280467470.54449") :method
+.sub "!PREFIX__TOP" :subid("25_1282323996.47527") :method
.annotate 'line', 3
$P83 = self."!PREFIX__!subrule"("nibbler", "")
new $P84, "ResizablePMCArray"
@@ -914,7 +986,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler" :subid("26_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "nibbler" :subid("26_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
.local string rx88_tgt
.local int rx88_pos
@@ -922,8 +994,10 @@
.local int rx88_eos
.local int rx88_rep
.local pmc rx88_cur
+ .local pmc rx88_debug
(rx88_cur, rx88_pos, rx88_tgt, $I10) = self."!cursor_start"()
- rx88_cur."!cursor_caparray"("termish")
+ rx88_cur."!cursor_caparray"("termconj")
+ getattribute rx88_debug, rx88_cur, "$!debug"
.lex unicode:"$\x{a2}", rx88_cur
.local pmc match
.lex "$/", match
@@ -935,7 +1009,9 @@
substr rx88_tgt, rx88_tgt, rx88_off
rx88_start:
eq $I10, 1, rx88_restart
- rx88_cur."!cursor_debug"("START ", "nibbler")
+ if_null rx88_debug, debug_194
+ rx88_cur."!cursor_debug"("START", "nibbler")
+ debug_194:
$I10 = self.'from'()
ne $I10, -1, rxscan91_done
goto rxscan91_scan
@@ -980,8 +1056,8 @@
add $I11, rx88_pos, 1
gt $I11, rx88_eos, rx88_fail
sub $I11, rx88_pos, rx88_off
- substr $S10, rx88_tgt, $I11, 1
- ne $S10, "|", rx88_fail
+ ord $I11, rx88_tgt, $I11
+ ne $I11, 124, rx88_fail
add rx88_pos, 1
goto alt93_end
alt93_2:
@@ -1000,20 +1076,20 @@
add $I11, rx88_pos, 1
gt $I11, rx88_eos, rx88_fail
sub $I11, rx88_pos, rx88_off
- substr $S10, rx88_tgt, $I11, 1
- ne $S10, "&", rx88_fail
+ ord $I11, rx88_tgt, $I11
+ ne $I11, 38, rx88_fail
add rx88_pos, 1
alt93_end:
set_addr $I10, rxquantr92_done
(rx88_rep) = rx88_cur."!mark_commit"($I10)
rxquantr92_done:
.annotate 'line', 32
- # rx subrule "termish" subtype=capture negate=
+ # rx subrule "termconj" subtype=capture negate=
rx88_cur."!cursor_pos"(rx88_pos)
- $P10 = rx88_cur."termish"()
+ $P10 = rx88_cur."termconj"()
unless $P10, rx88_fail
rx88_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("termish")
+ $P10."!cursor_names"("termconj")
rx88_pos = $P10."pos"()
.annotate 'line', 35
# rx rxquantr94 ** 0..*
@@ -1037,20 +1113,20 @@
add $I11, rx88_pos, 1
gt $I11, rx88_eos, rx88_fail
sub $I11, rx88_pos, rx88_off
- substr $S10, rx88_tgt, $I11, 1
- ne $S10, "|", rx88_fail
+ ord $I11, rx88_tgt, $I11
+ ne $I11, 124, rx88_fail
add rx88_pos, 1
alt95_end:
alt96_0:
.annotate 'line', 34
set_addr $I10, alt96_1
rx88_cur."!mark_push"(0, rx88_pos, $I10)
- # rx subrule "termish" subtype=capture negate=
+ # rx subrule "termconj" subtype=capture negate=
rx88_cur."!cursor_pos"(rx88_pos)
- $P10 = rx88_cur."termish"()
+ $P10 = rx88_cur."termconj"()
unless $P10, rx88_fail
rx88_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("termish")
+ $P10."!cursor_names"("termconj")
rx88_pos = $P10."pos"()
goto alt96_end
alt96_1:
@@ -1070,11 +1146,15 @@
.annotate 'line', 29
# rx pass
rx88_cur."!cursor_pass"(rx88_pos, "nibbler")
- rx88_cur."!cursor_debug"("PASS ", "nibbler", " at pos=", rx88_pos)
+ if_null rx88_debug, debug_195
+ rx88_cur."!cursor_debug"("PASS", "nibbler", " at pos=", rx88_pos)
+ debug_195:
.return (rx88_cur)
rx88_restart:
.annotate 'line', 3
- rx88_cur."!cursor_debug"("NEXT ", "nibbler")
+ if_null rx88_debug, debug_196
+ rx88_cur."!cursor_debug"("NEXT", "nibbler")
+ debug_196:
rx88_fail:
(rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0)
lt rx88_pos, -1, rx88_done
@@ -1082,14 +1162,16 @@
jump $I10
rx88_done:
rx88_cur."!cursor_fail"()
- rx88_cur."!cursor_debug"("FAIL ", "nibbler")
+ if_null rx88_debug, debug_197
+ rx88_cur."!cursor_debug"("FAIL", "nibbler")
+ debug_197:
.return (rx88_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler" :subid("27_1280467470.54449") :method
+.sub "!PREFIX__nibbler" :subid("27_1282323996.47527") :method
.annotate 'line', 3
new $P90, "ResizablePMCArray"
push $P90, ""
@@ -1098,7 +1180,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish" :subid("28_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "termconj" :subid("28_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
.local string rx98_tgt
.local int rx98_pos
@@ -1106,8 +1188,10 @@
.local int rx98_eos
.local int rx98_rep
.local pmc rx98_cur
+ .local pmc rx98_debug
(rx98_cur, rx98_pos, rx98_tgt, $I10) = self."!cursor_start"()
- rx98_cur."!cursor_caparray"("noun")
+ rx98_cur."!cursor_caparray"("termish")
+ getattribute rx98_debug, rx98_cur, "$!debug"
.lex unicode:"$\x{a2}", rx98_cur
.local pmc match
.lex "$/", match
@@ -1119,51 +1203,93 @@
substr rx98_tgt, rx98_tgt, rx98_off
rx98_start:
eq $I10, 1, rx98_restart
- rx98_cur."!cursor_debug"("START ", "termish")
- $I10 = self.'from'()
- ne $I10, -1, rxscan101_done
- goto rxscan101_scan
- rxscan101_loop:
+ if_null rx98_debug, debug_198
+ rx98_cur."!cursor_debug"("START", "termconj")
+ debug_198:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan102_done
+ goto rxscan102_scan
+ rxscan102_loop:
($P10) = rx98_cur."from"()
inc $P10
set rx98_pos, $P10
- ge rx98_pos, rx98_eos, rxscan101_done
- rxscan101_scan:
- set_addr $I10, rxscan101_loop
+ ge rx98_pos, rx98_eos, rxscan102_done
+ rxscan102_scan:
+ set_addr $I10, rxscan102_loop
rx98_cur."!mark_push"(0, rx98_pos, $I10)
- rxscan101_done:
+ rxscan102_done:
.annotate 'line', 39
- # rx rxquantr102 ** 1..*
- set_addr $I10, rxquantr102_done
- rx98_cur."!mark_push"(0, -1, $I10)
- rxquantr102_loop:
- # rx subrule "quantified_atom" subtype=capture negate=
+ # rx subrule "termish" subtype=capture negate=
rx98_cur."!cursor_pos"(rx98_pos)
- $P10 = rx98_cur."quantified_atom"()
+ $P10 = rx98_cur."termish"()
unless $P10, rx98_fail
- goto rxsubrule103_pass
- rxsubrule103_back:
- $P10 = $P10."!cursor_next"()
+ rx98_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("termish")
+ rx98_pos = $P10."pos"()
+.annotate 'line', 42
+ # rx rxquantr103 ** 0..*
+ set_addr $I10, rxquantr103_done
+ rx98_cur."!mark_push"(0, rx98_pos, $I10)
+ rxquantr103_loop:
+ alt104_0:
+.annotate 'line', 40
+ set_addr $I10, alt104_1
+ rx98_cur."!mark_push"(0, rx98_pos, $I10)
+ # rx literal "&&"
+ add $I11, rx98_pos, 2
+ gt $I11, rx98_eos, rx98_fail
+ sub $I11, rx98_pos, rx98_off
+ substr $S10, rx98_tgt, $I11, 2
+ ne $S10, "&&", rx98_fail
+ add rx98_pos, 2
+ goto alt104_end
+ alt104_1:
+ # rx literal "&"
+ add $I11, rx98_pos, 1
+ gt $I11, rx98_eos, rx98_fail
+ sub $I11, rx98_pos, rx98_off
+ ord $I11, rx98_tgt, $I11
+ ne $I11, 38, rx98_fail
+ add rx98_pos, 1
+ alt104_end:
+ alt105_0:
+.annotate 'line', 41
+ set_addr $I10, alt105_1
+ rx98_cur."!mark_push"(0, rx98_pos, $I10)
+ # rx subrule "termish" subtype=capture negate=
+ rx98_cur."!cursor_pos"(rx98_pos)
+ $P10 = rx98_cur."termish"()
+ unless $P10, rx98_fail
+ rx98_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("termish")
+ rx98_pos = $P10."pos"()
+ goto alt105_end
+ alt105_1:
+ # rx subrule "panic" subtype=method negate=
+ rx98_cur."!cursor_pos"(rx98_pos)
+ $P10 = rx98_cur."panic"("Null pattern not allowed")
unless $P10, rx98_fail
- rxsubrule103_pass:
- set_addr $I10, rxsubrule103_back
- rx98_cur."!mark_push"(0, rx98_pos, $I10, $P10)
- $P10."!cursor_names"("noun")
rx98_pos = $P10."pos"()
- set_addr $I10, rxquantr102_done
+ alt105_end:
+.annotate 'line', 42
+ set_addr $I10, rxquantr103_done
(rx98_rep) = rx98_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr102_done
+ set_addr $I10, rxquantr103_done
rx98_cur."!mark_push"(rx98_rep, rx98_pos, $I10)
- goto rxquantr102_loop
- rxquantr102_done:
+ goto rxquantr103_loop
+ rxquantr103_done:
.annotate 'line', 38
# rx pass
- rx98_cur."!cursor_pass"(rx98_pos, "termish")
- rx98_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx98_pos)
+ rx98_cur."!cursor_pass"(rx98_pos, "termconj")
+ if_null rx98_debug, debug_199
+ rx98_cur."!cursor_debug"("PASS", "termconj", " at pos=", rx98_pos)
+ debug_199:
.return (rx98_cur)
rx98_restart:
.annotate 'line', 3
- rx98_cur."!cursor_debug"("NEXT ", "termish")
+ if_null rx98_debug, debug_200
+ rx98_cur."!cursor_debug"("NEXT", "termconj")
+ debug_200:
rx98_fail:
(rx98_rep, rx98_pos, $I10, $P10) = rx98_cur."!mark_fail"(0)
lt rx98_pos, -1, rx98_done
@@ -1171,149 +1297,138 @@
jump $I10
rx98_done:
rx98_cur."!cursor_fail"()
- rx98_cur."!cursor_debug"("FAIL ", "termish")
+ if_null rx98_debug, debug_201
+ rx98_cur."!cursor_debug"("FAIL", "termconj")
+ debug_201:
.return (rx98_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish" :subid("29_1280467470.54449") :method
+.sub "!PREFIX__termconj" :subid("29_1282323996.47527") :method
.annotate 'line', 3
- new $P100, "ResizablePMCArray"
- push $P100, ""
- .return ($P100)
+ $P100 = self."!PREFIX__!subrule"("termish", "")
+ new $P101, "ResizablePMCArray"
+ push $P101, $P100
+ .return ($P101)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom" :subid("30_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .const 'Sub' $P113 = "32_1280467470.54449"
- capture_lex $P113
- .local string rx105_tgt
- .local int rx105_pos
- .local int rx105_off
- .local int rx105_eos
- .local int rx105_rep
- .local pmc rx105_cur
- (rx105_cur, rx105_pos, rx105_tgt, $I10) = self."!cursor_start"()
- rx105_cur."!cursor_caparray"("quantifier", "backmod")
- .lex unicode:"$\x{a2}", rx105_cur
- .local pmc match
- .lex "$/", match
- length rx105_eos, rx105_tgt
- gt rx105_pos, rx105_eos, rx105_done
- set rx105_off, 0
- lt rx105_pos, 2, rx105_start
- sub rx105_off, rx105_pos, 1
- substr rx105_tgt, rx105_tgt, rx105_off
- rx105_start:
- eq $I10, 1, rx105_restart
- rx105_cur."!cursor_debug"("START ", "quantified_atom")
- $I10 = self.'from'()
- ne $I10, -1, rxscan109_done
- goto rxscan109_scan
- rxscan109_loop:
- ($P10) = rx105_cur."from"()
- inc $P10
- set rx105_pos, $P10
- ge rx105_pos, rx105_eos, rxscan109_done
- rxscan109_scan:
- set_addr $I10, rxscan109_loop
- rx105_cur."!mark_push"(0, rx105_pos, $I10)
- rxscan109_done:
-.annotate 'line', 43
- # rx subrule "atom" subtype=capture negate=
- rx105_cur."!cursor_pos"(rx105_pos)
- $P10 = rx105_cur."atom"()
- unless $P10, rx105_fail
- rx105_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("atom")
- rx105_pos = $P10."pos"()
- # rx rxquantr110 ** 0..1
- set_addr $I10, rxquantr110_done
- rx105_cur."!mark_push"(0, rx105_pos, $I10)
- rxquantr110_loop:
- # rx subrule "ws" subtype=method negate=
- rx105_cur."!cursor_pos"(rx105_pos)
- $P10 = rx105_cur."ws"()
- unless $P10, rx105_fail
- rx105_pos = $P10."pos"()
- alt111_0:
- set_addr $I10, alt111_1
- rx105_cur."!mark_push"(0, rx105_pos, $I10)
- # rx subrule "quantifier" subtype=capture negate=
- rx105_cur."!cursor_pos"(rx105_pos)
- $P10 = rx105_cur."quantifier"()
- unless $P10, rx105_fail
- rx105_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quantifier")
- rx105_pos = $P10."pos"()
- goto alt111_end
- alt111_1:
- # rx subrule "before" subtype=zerowidth negate=
- rx105_cur."!cursor_pos"(rx105_pos)
- .const 'Sub' $P113 = "32_1280467470.54449"
- capture_lex $P113
- $P10 = rx105_cur."before"($P113)
- unless $P10, rx105_fail
- # rx subrule "backmod" subtype=capture negate=
- rx105_cur."!cursor_pos"(rx105_pos)
- $P10 = rx105_cur."backmod"()
- unless $P10, rx105_fail
- rx105_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("backmod")
- rx105_pos = $P10."pos"()
- # rx subrule "alpha" subtype=zerowidth negate=1
- rx105_cur."!cursor_pos"(rx105_pos)
- $P10 = rx105_cur."alpha"()
- if $P10, rx105_fail
- alt111_end:
- set_addr $I10, rxquantr110_done
- (rx105_rep) = rx105_cur."!mark_commit"($I10)
- rxquantr110_done:
-.annotate 'line', 42
+.sub "termish" :subid("30_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx107_tgt
+ .local int rx107_pos
+ .local int rx107_off
+ .local int rx107_eos
+ .local int rx107_rep
+ .local pmc rx107_cur
+ .local pmc rx107_debug
+ (rx107_cur, rx107_pos, rx107_tgt, $I10) = self."!cursor_start"()
+ rx107_cur."!cursor_caparray"("noun")
+ getattribute rx107_debug, rx107_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx107_cur
+ .local pmc match
+ .lex "$/", match
+ length rx107_eos, rx107_tgt
+ gt rx107_pos, rx107_eos, rx107_done
+ set rx107_off, 0
+ lt rx107_pos, 2, rx107_start
+ sub rx107_off, rx107_pos, 1
+ substr rx107_tgt, rx107_tgt, rx107_off
+ rx107_start:
+ eq $I10, 1, rx107_restart
+ if_null rx107_debug, debug_202
+ rx107_cur."!cursor_debug"("START", "termish")
+ debug_202:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan110_done
+ goto rxscan110_scan
+ rxscan110_loop:
+ ($P10) = rx107_cur."from"()
+ inc $P10
+ set rx107_pos, $P10
+ ge rx107_pos, rx107_eos, rxscan110_done
+ rxscan110_scan:
+ set_addr $I10, rxscan110_loop
+ rx107_cur."!mark_push"(0, rx107_pos, $I10)
+ rxscan110_done:
+.annotate 'line', 46
+ # rx rxquantr111 ** 1..*
+ set_addr $I10, rxquantr111_done
+ rx107_cur."!mark_push"(0, -1, $I10)
+ rxquantr111_loop:
+ # rx subrule "quantified_atom" subtype=capture negate=
+ rx107_cur."!cursor_pos"(rx107_pos)
+ $P10 = rx107_cur."quantified_atom"()
+ unless $P10, rx107_fail
+ goto rxsubrule112_pass
+ rxsubrule112_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx107_fail
+ rxsubrule112_pass:
+ set_addr $I10, rxsubrule112_back
+ rx107_cur."!mark_push"(0, rx107_pos, $I10, $P10)
+ $P10."!cursor_names"("noun")
+ rx107_pos = $P10."pos"()
+ set_addr $I10, rxquantr111_done
+ (rx107_rep) = rx107_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr111_done
+ rx107_cur."!mark_push"(rx107_rep, rx107_pos, $I10)
+ goto rxquantr111_loop
+ rxquantr111_done:
+.annotate 'line', 45
# rx pass
- rx105_cur."!cursor_pass"(rx105_pos, "quantified_atom")
- rx105_cur."!cursor_debug"("PASS ", "quantified_atom", " at pos=", rx105_pos)
- .return (rx105_cur)
- rx105_restart:
+ rx107_cur."!cursor_pass"(rx107_pos, "termish")
+ if_null rx107_debug, debug_203
+ rx107_cur."!cursor_debug"("PASS", "termish", " at pos=", rx107_pos)
+ debug_203:
+ .return (rx107_cur)
+ rx107_restart:
.annotate 'line', 3
- rx105_cur."!cursor_debug"("NEXT ", "quantified_atom")
- rx105_fail:
- (rx105_rep, rx105_pos, $I10, $P10) = rx105_cur."!mark_fail"(0)
- lt rx105_pos, -1, rx105_done
- eq rx105_pos, -1, rx105_fail
+ if_null rx107_debug, debug_204
+ rx107_cur."!cursor_debug"("NEXT", "termish")
+ debug_204:
+ rx107_fail:
+ (rx107_rep, rx107_pos, $I10, $P10) = rx107_cur."!mark_fail"(0)
+ lt rx107_pos, -1, rx107_done
+ eq rx107_pos, -1, rx107_fail
jump $I10
- rx105_done:
- rx105_cur."!cursor_fail"()
- rx105_cur."!cursor_debug"("FAIL ", "quantified_atom")
- .return (rx105_cur)
+ rx107_done:
+ rx107_cur."!cursor_fail"()
+ if_null rx107_debug, debug_205
+ rx107_cur."!cursor_debug"("FAIL", "termish")
+ debug_205:
+ .return (rx107_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom" :subid("31_1280467470.54449") :method
+.sub "!PREFIX__termish" :subid("31_1282323996.47527") :method
.annotate 'line', 3
- $P107 = self."!PREFIX__!subrule"("atom", "")
- new $P108, "ResizablePMCArray"
- push $P108, $P107
- .return ($P108)
+ new $P109, "ResizablePMCArray"
+ push $P109, ""
+ .return ($P109)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block112" :anon :subid("32_1280467470.54449") :method :outer("30_1280467470.54449")
-.annotate 'line', 43
+.sub "quantified_atom" :subid("32_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .const 'Sub' $P122 = "34_1282323996.47527"
+ capture_lex $P122
.local string rx114_tgt
.local int rx114_pos
.local int rx114_off
.local int rx114_eos
.local int rx114_rep
.local pmc rx114_cur
+ .local pmc rx114_debug
(rx114_cur, rx114_pos, rx114_tgt, $I10) = self."!cursor_start"()
+ rx114_cur."!cursor_caparray"("quantifier", "backmod")
+ getattribute rx114_debug, rx114_cur, "$!debug"
.lex unicode:"$\x{a2}", rx114_cur
.local pmc match
.lex "$/", match
@@ -1325,32 +1440,83 @@
substr rx114_tgt, rx114_tgt, rx114_off
rx114_start:
eq $I10, 1, rx114_restart
- rx114_cur."!cursor_debug"("START ", "")
- $I10 = self.'from'()
- ne $I10, -1, rxscan115_done
- goto rxscan115_scan
- rxscan115_loop:
+ if_null rx114_debug, debug_206
+ rx114_cur."!cursor_debug"("START", "quantified_atom")
+ debug_206:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan118_done
+ goto rxscan118_scan
+ rxscan118_loop:
($P10) = rx114_cur."from"()
inc $P10
set rx114_pos, $P10
- ge rx114_pos, rx114_eos, rxscan115_done
- rxscan115_scan:
- set_addr $I10, rxscan115_loop
+ ge rx114_pos, rx114_eos, rxscan118_done
+ rxscan118_scan:
+ set_addr $I10, rxscan118_loop
rx114_cur."!mark_push"(0, rx114_pos, $I10)
- rxscan115_done:
- # rx literal ":"
- add $I11, rx114_pos, 1
- gt $I11, rx114_eos, rx114_fail
- sub $I11, rx114_pos, rx114_off
- substr $S10, rx114_tgt, $I11, 1
- ne $S10, ":", rx114_fail
- add rx114_pos, 1
+ rxscan118_done:
+.annotate 'line', 50
+ # rx subrule "atom" subtype=capture negate=
+ rx114_cur."!cursor_pos"(rx114_pos)
+ $P10 = rx114_cur."atom"()
+ unless $P10, rx114_fail
+ rx114_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("atom")
+ rx114_pos = $P10."pos"()
+ # rx rxquantr119 ** 0..1
+ set_addr $I10, rxquantr119_done
+ rx114_cur."!mark_push"(0, rx114_pos, $I10)
+ rxquantr119_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx114_cur."!cursor_pos"(rx114_pos)
+ $P10 = rx114_cur."ws"()
+ unless $P10, rx114_fail
+ rx114_pos = $P10."pos"()
+ alt120_0:
+ set_addr $I10, alt120_1
+ rx114_cur."!mark_push"(0, rx114_pos, $I10)
+ # rx subrule "quantifier" subtype=capture negate=
+ rx114_cur."!cursor_pos"(rx114_pos)
+ $P10 = rx114_cur."quantifier"()
+ unless $P10, rx114_fail
+ rx114_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quantifier")
+ rx114_pos = $P10."pos"()
+ goto alt120_end
+ alt120_1:
+ # rx subrule "before" subtype=zerowidth negate=
+ rx114_cur."!cursor_pos"(rx114_pos)
+ .const 'Sub' $P122 = "34_1282323996.47527"
+ capture_lex $P122
+ $P10 = rx114_cur."before"($P122)
+ unless $P10, rx114_fail
+ # rx subrule "backmod" subtype=capture negate=
+ rx114_cur."!cursor_pos"(rx114_pos)
+ $P10 = rx114_cur."backmod"()
+ unless $P10, rx114_fail
+ rx114_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("backmod")
+ rx114_pos = $P10."pos"()
+ # rx subrule "alpha" subtype=zerowidth negate=1
+ rx114_cur."!cursor_pos"(rx114_pos)
+ $P10 = rx114_cur."alpha"()
+ if $P10, rx114_fail
+ alt120_end:
+ set_addr $I10, rxquantr119_done
+ (rx114_rep) = rx114_cur."!mark_commit"($I10)
+ rxquantr119_done:
+.annotate 'line', 49
# rx pass
- rx114_cur."!cursor_pass"(rx114_pos, "")
- rx114_cur."!cursor_debug"("PASS ", "", " at pos=", rx114_pos)
+ rx114_cur."!cursor_pass"(rx114_pos, "quantified_atom")
+ if_null rx114_debug, debug_211
+ rx114_cur."!cursor_debug"("PASS", "quantified_atom", " at pos=", rx114_pos)
+ debug_211:
.return (rx114_cur)
rx114_restart:
- rx114_cur."!cursor_debug"("NEXT ", "")
+.annotate 'line', 3
+ if_null rx114_debug, debug_212
+ rx114_cur."!cursor_debug"("NEXT", "quantified_atom")
+ debug_212:
rx114_fail:
(rx114_rep, rx114_pos, $I10, $P10) = rx114_cur."!mark_fail"(0)
lt rx114_pos, -1, rx114_done
@@ -1358,3989 +1524,4360 @@
jump $I10
rx114_done:
rx114_cur."!cursor_fail"()
- rx114_cur."!cursor_debug"("FAIL ", "")
+ if_null rx114_debug, debug_213
+ rx114_cur."!cursor_debug"("FAIL", "quantified_atom")
+ debug_213:
.return (rx114_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom" :subid("33_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "!PREFIX__quantified_atom" :subid("33_1282323996.47527") :method
.annotate 'line', 3
- .const 'Sub' $P126 = "35_1280467470.54449"
- capture_lex $P126
- .local string rx117_tgt
- .local int rx117_pos
- .local int rx117_off
- .local int rx117_eos
- .local int rx117_rep
- .local pmc rx117_cur
- (rx117_cur, rx117_pos, rx117_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx117_cur
- .local pmc match
- .lex "$/", match
- length rx117_eos, rx117_tgt
- gt rx117_pos, rx117_eos, rx117_done
- set rx117_off, 0
- lt rx117_pos, 2, rx117_start
- sub rx117_off, rx117_pos, 1
- substr rx117_tgt, rx117_tgt, rx117_off
- rx117_start:
- eq $I10, 1, rx117_restart
- rx117_cur."!cursor_debug"("START ", "atom")
- $I10 = self.'from'()
- ne $I10, -1, rxscan121_done
- goto rxscan121_scan
- rxscan121_loop:
- ($P10) = rx117_cur."from"()
- inc $P10
- set rx117_pos, $P10
- ge rx117_pos, rx117_eos, rxscan121_done
- rxscan121_scan:
- set_addr $I10, rxscan121_loop
- rx117_cur."!mark_push"(0, rx117_pos, $I10)
- rxscan121_done:
- alt122_0:
-.annotate 'line', 48
- set_addr $I10, alt122_1
- rx117_cur."!mark_push"(0, rx117_pos, $I10)
-.annotate 'line', 49
+ $P116 = self."!PREFIX__!subrule"("atom", "")
+ new $P117, "ResizablePMCArray"
+ push $P117, $P116
+ .return ($P117)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "_block121" :anon :subid("34_1282323996.47527") :method :outer("32_1282323996.47527")
+.annotate 'line', 50
+ .local string rx123_tgt
+ .local int rx123_pos
+ .local int rx123_off
+ .local int rx123_eos
+ .local int rx123_rep
+ .local pmc rx123_cur
+ .local pmc rx123_debug
+ (rx123_cur, rx123_pos, rx123_tgt, $I10) = self."!cursor_start"()
+ getattribute rx123_debug, rx123_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx123_cur
+ .local pmc match
+ .lex "$/", match
+ length rx123_eos, rx123_tgt
+ gt rx123_pos, rx123_eos, rx123_done
+ set rx123_off, 0
+ lt rx123_pos, 2, rx123_start
+ sub rx123_off, rx123_pos, 1
+ substr rx123_tgt, rx123_tgt, rx123_off
+ rx123_start:
+ eq $I10, 1, rx123_restart
+ if_null rx123_debug, debug_207
+ rx123_cur."!cursor_debug"("START", "")
+ debug_207:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan124_done
+ goto rxscan124_scan
+ rxscan124_loop:
+ ($P10) = rx123_cur."from"()
+ inc $P10
+ set rx123_pos, $P10
+ ge rx123_pos, rx123_eos, rxscan124_done
+ rxscan124_scan:
+ set_addr $I10, rxscan124_loop
+ rx123_cur."!mark_push"(0, rx123_pos, $I10)
+ rxscan124_done:
+ # rx literal ":"
+ add $I11, rx123_pos, 1
+ gt $I11, rx123_eos, rx123_fail
+ sub $I11, rx123_pos, rx123_off
+ ord $I11, rx123_tgt, $I11
+ ne $I11, 58, rx123_fail
+ add rx123_pos, 1
+ # rx pass
+ rx123_cur."!cursor_pass"(rx123_pos, "")
+ if_null rx123_debug, debug_208
+ rx123_cur."!cursor_debug"("PASS", "", " at pos=", rx123_pos)
+ debug_208:
+ .return (rx123_cur)
+ rx123_restart:
+ if_null rx123_debug, debug_209
+ rx123_cur."!cursor_debug"("NEXT", "")
+ debug_209:
+ rx123_fail:
+ (rx123_rep, rx123_pos, $I10, $P10) = rx123_cur."!mark_fail"(0)
+ lt rx123_pos, -1, rx123_done
+ eq rx123_pos, -1, rx123_fail
+ jump $I10
+ rx123_done:
+ rx123_cur."!cursor_fail"()
+ if_null rx123_debug, debug_210
+ rx123_cur."!cursor_debug"("FAIL", "")
+ debug_210:
+ .return (rx123_cur)
+ .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "atom" :subid("35_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .const 'Sub' $P135 = "37_1282323996.47527"
+ capture_lex $P135
+ .local string rx126_tgt
+ .local int rx126_pos
+ .local int rx126_off
+ .local int rx126_eos
+ .local int rx126_rep
+ .local pmc rx126_cur
+ .local pmc rx126_debug
+ (rx126_cur, rx126_pos, rx126_tgt, $I10) = self."!cursor_start"()
+ getattribute rx126_debug, rx126_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx126_cur
+ .local pmc match
+ .lex "$/", match
+ length rx126_eos, rx126_tgt
+ gt rx126_pos, rx126_eos, rx126_done
+ set rx126_off, 0
+ lt rx126_pos, 2, rx126_start
+ sub rx126_off, rx126_pos, 1
+ substr rx126_tgt, rx126_tgt, rx126_off
+ rx126_start:
+ eq $I10, 1, rx126_restart
+ if_null rx126_debug, debug_214
+ rx126_cur."!cursor_debug"("START", "atom")
+ debug_214:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan130_done
+ goto rxscan130_scan
+ rxscan130_loop:
+ ($P10) = rx126_cur."from"()
+ inc $P10
+ set rx126_pos, $P10
+ ge rx126_pos, rx126_eos, rxscan130_done
+ rxscan130_scan:
+ set_addr $I10, rxscan130_loop
+ rx126_cur."!mark_push"(0, rx126_pos, $I10)
+ rxscan130_done:
+ alt131_0:
+.annotate 'line', 55
+ set_addr $I10, alt131_1
+ rx126_cur."!mark_push"(0, rx126_pos, $I10)
+.annotate 'line', 56
# rx charclass w
- ge rx117_pos, rx117_eos, rx117_fail
- sub $I10, rx117_pos, rx117_off
- is_cclass $I11, 8192, rx117_tgt, $I10
- unless $I11, rx117_fail
- inc rx117_pos
- # rx rxquantr123 ** 0..1
- set_addr $I10, rxquantr123_done
- rx117_cur."!mark_push"(0, rx117_pos, $I10)
- rxquantr123_loop:
- # rx rxquantg124 ** 1..*
- rxquantg124_loop:
+ 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
+ # rx rxquantr132 ** 0..1
+ set_addr $I10, rxquantr132_done
+ rx126_cur."!mark_push"(0, rx126_pos, $I10)
+ rxquantr132_loop:
+ # rx rxquantg133 ** 1..*
+ rxquantg133_loop:
# rx charclass w
- ge rx117_pos, rx117_eos, rx117_fail
- sub $I10, rx117_pos, rx117_off
- is_cclass $I11, 8192, rx117_tgt, $I10
- unless $I11, rx117_fail
- inc rx117_pos
- set_addr $I10, rxquantg124_done
- rx117_cur."!mark_push"(rx117_rep, rx117_pos, $I10)
- goto rxquantg124_loop
- rxquantg124_done:
+ 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
+ set_addr $I10, rxquantg133_done
+ rx126_cur."!mark_push"(rx126_rep, rx126_pos, $I10)
+ goto rxquantg133_loop
+ rxquantg133_done:
# rx subrule "before" subtype=zerowidth negate=
- rx117_cur."!cursor_pos"(rx117_pos)
- .const 'Sub' $P126 = "35_1280467470.54449"
- capture_lex $P126
- $P10 = rx117_cur."before"($P126)
- unless $P10, rx117_fail
- set_addr $I10, rxquantr123_done
- (rx117_rep) = rx117_cur."!mark_commit"($I10)
- rxquantr123_done:
- goto alt122_end
- alt122_1:
-.annotate 'line', 50
+ rx126_cur."!cursor_pos"(rx126_pos)
+ .const 'Sub' $P135 = "37_1282323996.47527"
+ capture_lex $P135
+ $P10 = rx126_cur."before"($P135)
+ unless $P10, rx126_fail
+ set_addr $I10, rxquantr132_done
+ (rx126_rep) = rx126_cur."!mark_commit"($I10)
+ rxquantr132_done:
+ goto alt131_end
+ alt131_1:
+.annotate 'line', 57
# rx subrule "metachar" subtype=capture negate=
- rx117_cur."!cursor_pos"(rx117_pos)
- $P10 = rx117_cur."metachar"()
- unless $P10, rx117_fail
- rx117_cur."!mark_push"(0, -1, 0, $P10)
+ rx126_cur."!cursor_pos"(rx126_pos)
+ $P10 = rx126_cur."metachar"()
+ unless $P10, rx126_fail
+ rx126_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("metachar")
- rx117_pos = $P10."pos"()
- alt122_end:
-.annotate 'line', 46
+ rx126_pos = $P10."pos"()
+ alt131_end:
+.annotate 'line', 53
# rx pass
- rx117_cur."!cursor_pass"(rx117_pos, "atom")
- rx117_cur."!cursor_debug"("PASS ", "atom", " at pos=", rx117_pos)
- .return (rx117_cur)
- rx117_restart:
+ rx126_cur."!cursor_pass"(rx126_pos, "atom")
+ if_null rx126_debug, debug_219
+ rx126_cur."!cursor_debug"("PASS", "atom", " at pos=", rx126_pos)
+ debug_219:
+ .return (rx126_cur)
+ rx126_restart:
.annotate 'line', 3
- rx117_cur."!cursor_debug"("NEXT ", "atom")
- rx117_fail:
- (rx117_rep, rx117_pos, $I10, $P10) = rx117_cur."!mark_fail"(0)
- lt rx117_pos, -1, rx117_done
- eq rx117_pos, -1, rx117_fail
+ if_null rx126_debug, debug_220
+ rx126_cur."!cursor_debug"("NEXT", "atom")
+ debug_220:
+ rx126_fail:
+ (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0)
+ lt rx126_pos, -1, rx126_done
+ eq rx126_pos, -1, rx126_fail
jump $I10
- rx117_done:
- rx117_cur."!cursor_fail"()
- rx117_cur."!cursor_debug"("FAIL ", "atom")
- .return (rx117_cur)
+ rx126_done:
+ rx126_cur."!cursor_fail"()
+ if_null rx126_debug, debug_221
+ rx126_cur."!cursor_debug"("FAIL", "atom")
+ debug_221:
+ .return (rx126_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom" :subid("34_1280467470.54449") :method
+.sub "!PREFIX__atom" :subid("36_1282323996.47527") :method
.annotate 'line', 3
- $P119 = self."!PREFIX__!subrule"("metachar", "")
- new $P120, "ResizablePMCArray"
- push $P120, $P119
- push $P120, ""
- .return ($P120)
+ $P128 = self."!PREFIX__!subrule"("metachar", "")
+ new $P129, "ResizablePMCArray"
+ push $P129, $P128
+ push $P129, ""
+ .return ($P129)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block125" :anon :subid("35_1280467470.54449") :method :outer("33_1280467470.54449")
-.annotate 'line', 49
- .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, $I10) = self."!cursor_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:
- eq $I10, 1, rx127_restart
- rx127_cur."!cursor_debug"("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:
+.sub "_block134" :anon :subid("37_1282323996.47527") :method :outer("35_1282323996.47527")
+.annotate 'line', 56
+ .local string rx136_tgt
+ .local int rx136_pos
+ .local int rx136_off
+ .local int rx136_eos
+ .local int rx136_rep
+ .local pmc rx136_cur
+ .local pmc rx136_debug
+ (rx136_cur, rx136_pos, rx136_tgt, $I10) = self."!cursor_start"()
+ getattribute rx136_debug, rx136_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx136_cur
+ .local pmc match
+ .lex "$/", match
+ length rx136_eos, rx136_tgt
+ gt rx136_pos, rx136_eos, rx136_done
+ set rx136_off, 0
+ lt rx136_pos, 2, rx136_start
+ sub rx136_off, rx136_pos, 1
+ substr rx136_tgt, rx136_tgt, rx136_off
+ rx136_start:
+ eq $I10, 1, rx136_restart
+ if_null rx136_debug, debug_215
+ rx136_cur."!cursor_debug"("START", "")
+ debug_215:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan137_done
+ goto rxscan137_scan
+ rxscan137_loop:
+ ($P10) = rx136_cur."from"()
+ inc $P10
+ set rx136_pos, $P10
+ ge rx136_pos, rx136_eos, rxscan137_done
+ rxscan137_scan:
+ set_addr $I10, rxscan137_loop
+ rx136_cur."!mark_push"(0, rx136_pos, $I10)
+ rxscan137_done:
# rx charclass w
- ge rx127_pos, rx127_eos, rx127_fail
- sub $I10, rx127_pos, rx127_off
- is_cclass $I11, 8192, rx127_tgt, $I10
- unless $I11, rx127_fail
- inc rx127_pos
- # rx pass
- rx127_cur."!cursor_pass"(rx127_pos, "")
- rx127_cur."!cursor_debug"("PASS ", "", " at pos=", rx127_pos)
- .return (rx127_cur)
- rx127_restart:
- rx127_cur."!cursor_debug"("NEXT ", "")
- 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
- rx127_done:
- rx127_cur."!cursor_fail"()
- rx127_cur."!cursor_debug"("FAIL ", "")
- .return (rx127_cur)
+ ge rx136_pos, rx136_eos, rx136_fail
+ sub $I10, rx136_pos, rx136_off
+ is_cclass $I11, 8192, rx136_tgt, $I10
+ unless $I11, rx136_fail
+ inc rx136_pos
+ # rx pass
+ rx136_cur."!cursor_pass"(rx136_pos, "")
+ if_null rx136_debug, debug_216
+ rx136_cur."!cursor_debug"("PASS", "", " at pos=", rx136_pos)
+ debug_216:
+ .return (rx136_cur)
+ rx136_restart:
+ if_null rx136_debug, debug_217
+ rx136_cur."!cursor_debug"("NEXT", "")
+ debug_217:
+ rx136_fail:
+ (rx136_rep, rx136_pos, $I10, $P10) = rx136_cur."!mark_fail"(0)
+ lt rx136_pos, -1, rx136_done
+ eq rx136_pos, -1, rx136_fail
+ jump $I10
+ rx136_done:
+ rx136_cur."!cursor_fail"()
+ if_null rx136_debug, debug_218
+ rx136_cur."!cursor_debug"("FAIL", "")
+ debug_218:
+ .return (rx136_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier" :subid("36_1280467470.54449") :method
-.annotate 'line', 54
- $P130 = self."!protoregex"("quantifier")
- .return ($P130)
+.sub "quantifier" :subid("38_1282323996.47527") :method
+.annotate 'line', 61
+ $P139 = self."!protoregex"("quantifier")
+ .return ($P139)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier" :subid("37_1280467470.54449") :method
-.annotate 'line', 54
- $P132 = self."!PREFIX__!protoregex"("quantifier")
- .return ($P132)
+.sub "!PREFIX__quantifier" :subid("39_1282323996.47527") :method
+.annotate 'line', 61
+ $P141 = self."!PREFIX__!protoregex"("quantifier")
+ .return ($P141)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>" :subid("38_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantifier:sym<*>" :subid("40_1282323996.47527") :method :outer("11_1282323996.47527")
.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, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx134_cur
- .local pmc match
- .lex "$/", match
- length rx134_eos, rx134_tgt
- gt rx134_pos, rx134_eos, rx134_done
- 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:
- eq $I10, 1, rx134_restart
- rx134_cur."!cursor_debug"("START ", "quantifier:sym<*>")
- $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:
-.annotate 'line', 55
+ .local string rx143_tgt
+ .local int rx143_pos
+ .local int rx143_off
+ .local int rx143_eos
+ .local int rx143_rep
+ .local pmc rx143_cur
+ .local pmc rx143_debug
+ (rx143_cur, rx143_pos, rx143_tgt, $I10) = self."!cursor_start"()
+ getattribute rx143_debug, rx143_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx143_cur
+ .local pmc match
+ .lex "$/", match
+ length rx143_eos, rx143_tgt
+ gt rx143_pos, rx143_eos, rx143_done
+ set rx143_off, 0
+ lt rx143_pos, 2, rx143_start
+ sub rx143_off, rx143_pos, 1
+ substr rx143_tgt, rx143_tgt, rx143_off
+ rx143_start:
+ eq $I10, 1, rx143_restart
+ if_null rx143_debug, debug_222
+ rx143_cur."!cursor_debug"("START", "quantifier:sym<*>")
+ debug_222:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan147_done
+ goto rxscan147_scan
+ rxscan147_loop:
+ ($P10) = rx143_cur."from"()
+ inc $P10
+ set rx143_pos, $P10
+ ge rx143_pos, rx143_eos, rxscan147_done
+ rxscan147_scan:
+ set_addr $I10, rxscan147_loop
+ rx143_cur."!mark_push"(0, rx143_pos, $I10)
+ rxscan147_done:
+.annotate 'line', 62
# rx subcapture "sym"
- set_addr $I10, rxcap_139_fail
- rx134_cur."!mark_push"(0, rx134_pos, $I10)
+ set_addr $I10, rxcap_148_fail
+ rx143_cur."!mark_push"(0, rx143_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, rx143_pos, 1
+ gt $I11, rx143_eos, rx143_fail
+ sub $I11, rx143_pos, rx143_off
+ ord $I11, rx143_tgt, $I11
+ ne $I11, 42, rx143_fail
+ add rx143_pos, 1
+ set_addr $I10, rxcap_148_fail
+ ($I12, $I11) = rx143_cur."!mark_peek"($I10)
+ rx143_cur."!cursor_pos"($I11)
+ ($P10) = rx143_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx143_pos, "")
+ rx143_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_139_done
- rxcap_139_fail:
- goto rx134_fail
- rxcap_139_done:
+ goto rxcap_148_done
+ rxcap_148_fail:
+ goto rx143_fail
+ rxcap_148_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)
+ rx143_cur."!cursor_pos"(rx143_pos)
+ $P10 = rx143_cur."backmod"()
+ unless $P10, rx143_fail
+ rx143_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx134_pos = $P10."pos"()
+ rx143_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_restart:
-.annotate 'line', 3
- rx134_cur."!cursor_debug"("NEXT ", "quantifier:sym<*>")
- rx134_fail:
- (rx134_rep, rx134_pos, $I10, $P10) = rx134_cur."!mark_fail"(0)
- lt rx134_pos, -1, rx134_done
- eq rx134_pos, -1, rx134_fail
- jump $I10
- rx134_done:
- rx134_cur."!cursor_fail"()
- rx134_cur."!cursor_debug"("FAIL ", "quantifier:sym<*>")
- .return (rx134_cur)
+ rx143_cur."!cursor_pass"(rx143_pos, "quantifier:sym<*>")
+ if_null rx143_debug, debug_223
+ rx143_cur."!cursor_debug"("PASS", "quantifier:sym<*>", " at pos=", rx143_pos)
+ debug_223:
+ .return (rx143_cur)
+ rx143_restart:
+.annotate 'line', 3
+ if_null rx143_debug, debug_224
+ rx143_cur."!cursor_debug"("NEXT", "quantifier:sym<*>")
+ debug_224:
+ rx143_fail:
+ (rx143_rep, rx143_pos, $I10, $P10) = rx143_cur."!mark_fail"(0)
+ lt rx143_pos, -1, rx143_done
+ eq rx143_pos, -1, rx143_fail
+ jump $I10
+ rx143_done:
+ rx143_cur."!cursor_fail"()
+ if_null rx143_debug, debug_225
+ rx143_cur."!cursor_debug"("FAIL", "quantifier:sym<*>")
+ debug_225:
+ .return (rx143_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>" :subid("39_1280467470.54449") :method
-.annotate 'line', 3
- $P136 = self."!PREFIX__!subrule"("backmod", "*")
- new $P137, "ResizablePMCArray"
- push $P137, $P136
- .return ($P137)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>" :subid("40_1280467470.54449") :method :outer("11_1280467470.54449")
-.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, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx141_cur
- .local pmc match
- .lex "$/", match
- length rx141_eos, rx141_tgt
- gt rx141_pos, rx141_eos, rx141_done
- 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:
- eq $I10, 1, rx141_restart
- rx141_cur."!cursor_debug"("START ", "quantifier:sym<+>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan145_done
- goto rxscan145_scan
- rxscan145_loop:
- ($P10) = rx141_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:
-.annotate 'line', 56
+.sub "!PREFIX__quantifier:sym<*>" :subid("41_1282323996.47527") :method
+.annotate 'line', 3
+ $P145 = self."!PREFIX__!subrule"("backmod", "*")
+ new $P146, "ResizablePMCArray"
+ push $P146, $P145
+ .return ($P146)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "quantifier:sym<+>" :subid("42_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx150_tgt
+ .local int rx150_pos
+ .local int rx150_off
+ .local int rx150_eos
+ .local int rx150_rep
+ .local pmc rx150_cur
+ .local pmc rx150_debug
+ (rx150_cur, rx150_pos, rx150_tgt, $I10) = self."!cursor_start"()
+ getattribute rx150_debug, rx150_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx150_cur
+ .local pmc match
+ .lex "$/", match
+ length rx150_eos, rx150_tgt
+ gt rx150_pos, rx150_eos, rx150_done
+ set rx150_off, 0
+ lt rx150_pos, 2, rx150_start
+ sub rx150_off, rx150_pos, 1
+ substr rx150_tgt, rx150_tgt, rx150_off
+ rx150_start:
+ eq $I10, 1, rx150_restart
+ if_null rx150_debug, debug_226
+ rx150_cur."!cursor_debug"("START", "quantifier:sym<+>")
+ debug_226:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan154_done
+ goto rxscan154_scan
+ rxscan154_loop:
+ ($P10) = rx150_cur."from"()
+ inc $P10
+ set rx150_pos, $P10
+ ge rx150_pos, rx150_eos, rxscan154_done
+ rxscan154_scan:
+ set_addr $I10, rxscan154_loop
+ rx150_cur."!mark_push"(0, rx150_pos, $I10)
+ rxscan154_done:
+.annotate 'line', 63
# rx subcapture "sym"
- set_addr $I10, rxcap_146_fail
- rx141_cur."!mark_push"(0, rx141_pos, $I10)
+ set_addr $I10, rxcap_155_fail
+ rx150_cur."!mark_push"(0, rx150_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, rx150_pos, 1
+ gt $I11, rx150_eos, rx150_fail
+ sub $I11, rx150_pos, rx150_off
+ ord $I11, rx150_tgt, $I11
+ ne $I11, 43, rx150_fail
+ add rx150_pos, 1
+ set_addr $I10, rxcap_155_fail
+ ($I12, $I11) = rx150_cur."!mark_peek"($I10)
+ rx150_cur."!cursor_pos"($I11)
+ ($P10) = rx150_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx150_pos, "")
+ rx150_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_146_done
- rxcap_146_fail:
- goto rx141_fail
- rxcap_146_done:
+ goto rxcap_155_done
+ rxcap_155_fail:
+ goto rx150_fail
+ rxcap_155_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)
+ rx150_cur."!cursor_pos"(rx150_pos)
+ $P10 = rx150_cur."backmod"()
+ unless $P10, rx150_fail
+ rx150_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx141_pos = $P10."pos"()
+ rx150_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_restart:
-.annotate 'line', 3
- rx141_cur."!cursor_debug"("NEXT ", "quantifier:sym<+>")
- rx141_fail:
- (rx141_rep, rx141_pos, $I10, $P10) = rx141_cur."!mark_fail"(0)
- lt rx141_pos, -1, rx141_done
- eq rx141_pos, -1, rx141_fail
- jump $I10
- rx141_done:
- rx141_cur."!cursor_fail"()
- rx141_cur."!cursor_debug"("FAIL ", "quantifier:sym<+>")
- .return (rx141_cur)
+ rx150_cur."!cursor_pass"(rx150_pos, "quantifier:sym<+>")
+ if_null rx150_debug, debug_227
+ rx150_cur."!cursor_debug"("PASS", "quantifier:sym<+>", " at pos=", rx150_pos)
+ debug_227:
+ .return (rx150_cur)
+ rx150_restart:
+.annotate 'line', 3
+ if_null rx150_debug, debug_228
+ rx150_cur."!cursor_debug"("NEXT", "quantifier:sym<+>")
+ debug_228:
+ rx150_fail:
+ (rx150_rep, rx150_pos, $I10, $P10) = rx150_cur."!mark_fail"(0)
+ lt rx150_pos, -1, rx150_done
+ eq rx150_pos, -1, rx150_fail
+ jump $I10
+ rx150_done:
+ rx150_cur."!cursor_fail"()
+ if_null rx150_debug, debug_229
+ rx150_cur."!cursor_debug"("FAIL", "quantifier:sym<+>")
+ debug_229:
+ .return (rx150_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>" :subid("41_1280467470.54449") :method
-.annotate 'line', 3
- $P143 = self."!PREFIX__!subrule"("backmod", "+")
- new $P144, "ResizablePMCArray"
- push $P144, $P143
- .return ($P144)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>" :subid("42_1280467470.54449") :method :outer("11_1280467470.54449")
-.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, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx148_cur
- .local pmc match
- .lex "$/", match
- length rx148_eos, rx148_tgt
- gt rx148_pos, rx148_eos, rx148_done
- 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:
- eq $I10, 1, rx148_restart
- rx148_cur."!cursor_debug"("START ", "quantifier:sym<?>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan152_done
- goto rxscan152_scan
- rxscan152_loop:
- ($P10) = rx148_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:
-.annotate 'line', 57
+.sub "!PREFIX__quantifier:sym<+>" :subid("43_1282323996.47527") :method
+.annotate 'line', 3
+ $P152 = self."!PREFIX__!subrule"("backmod", "+")
+ new $P153, "ResizablePMCArray"
+ push $P153, $P152
+ .return ($P153)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "quantifier:sym<?>" :subid("44_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx157_tgt
+ .local int rx157_pos
+ .local int rx157_off
+ .local int rx157_eos
+ .local int rx157_rep
+ .local pmc rx157_cur
+ .local pmc rx157_debug
+ (rx157_cur, rx157_pos, rx157_tgt, $I10) = self."!cursor_start"()
+ getattribute rx157_debug, rx157_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx157_cur
+ .local pmc match
+ .lex "$/", match
+ length rx157_eos, rx157_tgt
+ gt rx157_pos, rx157_eos, rx157_done
+ set rx157_off, 0
+ lt rx157_pos, 2, rx157_start
+ sub rx157_off, rx157_pos, 1
+ substr rx157_tgt, rx157_tgt, rx157_off
+ rx157_start:
+ eq $I10, 1, rx157_restart
+ if_null rx157_debug, debug_230
+ rx157_cur."!cursor_debug"("START", "quantifier:sym<?>")
+ debug_230:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan161_done
+ goto rxscan161_scan
+ rxscan161_loop:
+ ($P10) = rx157_cur."from"()
+ inc $P10
+ set rx157_pos, $P10
+ ge rx157_pos, rx157_eos, rxscan161_done
+ rxscan161_scan:
+ set_addr $I10, rxscan161_loop
+ rx157_cur."!mark_push"(0, rx157_pos, $I10)
+ rxscan161_done:
+.annotate 'line', 64
# rx subcapture "sym"
- set_addr $I10, rxcap_153_fail
- rx148_cur."!mark_push"(0, rx148_pos, $I10)
+ set_addr $I10, rxcap_162_fail
+ rx157_cur."!mark_push"(0, rx157_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, rx157_pos, 1
+ gt $I11, rx157_eos, rx157_fail
+ sub $I11, rx157_pos, rx157_off
+ ord $I11, rx157_tgt, $I11
+ ne $I11, 63, rx157_fail
+ add rx157_pos, 1
+ set_addr $I10, rxcap_162_fail
+ ($I12, $I11) = rx157_cur."!mark_peek"($I10)
+ rx157_cur."!cursor_pos"($I11)
+ ($P10) = rx157_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx157_pos, "")
+ rx157_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_153_done
- rxcap_153_fail:
- goto rx148_fail
- rxcap_153_done:
+ goto rxcap_162_done
+ rxcap_162_fail:
+ goto rx157_fail
+ rxcap_162_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)
+ rx157_cur."!cursor_pos"(rx157_pos)
+ $P10 = rx157_cur."backmod"()
+ unless $P10, rx157_fail
+ rx157_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx148_pos = $P10."pos"()
+ rx157_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_restart:
+ rx157_cur."!cursor_pass"(rx157_pos, "quantifier:sym<?>")
+ if_null rx157_debug, debug_231
+ rx157_cur."!cursor_debug"("PASS", "quantifier:sym<?>", " at pos=", rx157_pos)
+ debug_231:
+ .return (rx157_cur)
+ rx157_restart:
.annotate 'line', 3
- rx148_cur."!cursor_debug"("NEXT ", "quantifier:sym<?>")
- rx148_fail:
- (rx148_rep, rx148_pos, $I10, $P10) = rx148_cur."!mark_fail"(0)
- lt rx148_pos, -1, rx148_done
- eq rx148_pos, -1, rx148_fail
+ if_null rx157_debug, debug_232
+ rx157_cur."!cursor_debug"("NEXT", "quantifier:sym<?>")
+ debug_232:
+ rx157_fail:
+ (rx157_rep, rx157_pos, $I10, $P10) = rx157_cur."!mark_fail"(0)
+ lt rx157_pos, -1, rx157_done
+ eq rx157_pos, -1, rx157_fail
jump $I10
- rx148_done:
- rx148_cur."!cursor_fail"()
- rx148_cur."!cursor_debug"("FAIL ", "quantifier:sym<?>")
- .return (rx148_cur)
+ rx157_done:
+ rx157_cur."!cursor_fail"()
+ if_null rx157_debug, debug_233
+ rx157_cur."!cursor_debug"("FAIL", "quantifier:sym<?>")
+ debug_233:
+ .return (rx157_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>" :subid("43_1280467470.54449") :method
+.sub "!PREFIX__quantifier:sym<?>" :subid("45_1282323996.47527") :method
.annotate 'line', 3
- $P150 = self."!PREFIX__!subrule"("backmod", "?")
- new $P151, "ResizablePMCArray"
- push $P151, $P150
- .return ($P151)
+ $P159 = self."!PREFIX__!subrule"("backmod", "?")
+ new $P160, "ResizablePMCArray"
+ push $P160, $P159
+ .return ($P160)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>" :subid("44_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantifier:sym<**>" :subid("46_1282323996.47527") :method :outer("11_1282323996.47527")
.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, $I10) = self."!cursor_start"()
- rx155_cur."!cursor_caparray"("max", "normspace")
- .lex unicode:"$\x{a2}", rx155_cur
- .local pmc match
- .lex "$/", match
- length rx155_eos, rx155_tgt
- gt rx155_pos, rx155_eos, rx155_done
- set rx155_off, 0
- lt rx155_pos, 2, rx155_start
- sub rx155_off, rx155_pos, 1
- substr rx155_tgt, rx155_tgt, rx155_off
- rx155_start:
- eq $I10, 1, rx155_restart
- rx155_cur."!cursor_debug"("START ", "quantifier:sym<**>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan158_done
- goto rxscan158_scan
- rxscan158_loop:
- ($P10) = rx155_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:
-.annotate 'line', 59
+ .local string rx164_tgt
+ .local int rx164_pos
+ .local int rx164_off
+ .local int rx164_eos
+ .local int rx164_rep
+ .local pmc rx164_cur
+ .local pmc rx164_debug
+ (rx164_cur, rx164_pos, rx164_tgt, $I10) = self."!cursor_start"()
+ rx164_cur."!cursor_caparray"("max", "normspace")
+ getattribute rx164_debug, rx164_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx164_cur
+ .local pmc match
+ .lex "$/", match
+ length rx164_eos, rx164_tgt
+ gt rx164_pos, rx164_eos, rx164_done
+ set rx164_off, 0
+ lt rx164_pos, 2, rx164_start
+ sub rx164_off, rx164_pos, 1
+ substr rx164_tgt, rx164_tgt, rx164_off
+ rx164_start:
+ eq $I10, 1, rx164_restart
+ if_null rx164_debug, debug_234
+ rx164_cur."!cursor_debug"("START", "quantifier:sym<**>")
+ debug_234:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan167_done
+ goto rxscan167_scan
+ rxscan167_loop:
+ ($P10) = rx164_cur."from"()
+ inc $P10
+ set rx164_pos, $P10
+ ge rx164_pos, rx164_eos, rxscan167_done
+ rxscan167_scan:
+ set_addr $I10, rxscan167_loop
+ rx164_cur."!mark_push"(0, rx164_pos, $I10)
+ rxscan167_done:
+.annotate 'line', 66
# rx subcapture "sym"
- set_addr $I10, rxcap_159_fail
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
+ set_addr $I10, rxcap_168_fail
+ rx164_cur."!mark_push"(0, rx164_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, rx164_pos, 2
+ gt $I11, rx164_eos, rx164_fail
+ sub $I11, rx164_pos, rx164_off
+ substr $S10, rx164_tgt, $I11, 2
+ ne $S10, "**", rx164_fail
+ add rx164_pos, 2
+ set_addr $I10, rxcap_168_fail
+ ($I12, $I11) = rx164_cur."!mark_peek"($I10)
+ rx164_cur."!cursor_pos"($I11)
+ ($P10) = rx164_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx164_pos, "")
+ rx164_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_159_done
- rxcap_159_fail:
- goto rx155_fail
- rxcap_159_done:
- # rx rxquantr160 ** 0..1
- set_addr $I10, rxquantr160_done
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
- rxquantr160_loop:
+ goto rxcap_168_done
+ rxcap_168_fail:
+ goto rx164_fail
+ rxcap_168_done:
+ # rx rxquantr169 ** 0..1
+ set_addr $I10, rxquantr169_done
+ rx164_cur."!mark_push"(0, rx164_pos, $I10)
+ rxquantr169_loop:
# rx subrule "normspace" subtype=capture negate=
- rx155_cur."!cursor_pos"(rx155_pos)
- $P10 = rx155_cur."normspace"()
- unless $P10, rx155_fail
- goto rxsubrule161_pass
- rxsubrule161_back:
+ rx164_cur."!cursor_pos"(rx164_pos)
+ $P10 = rx164_cur."normspace"()
+ unless $P10, rx164_fail
+ goto rxsubrule170_pass
+ rxsubrule170_back:
$P10 = $P10."!cursor_next"()
- unless $P10, rx155_fail
- rxsubrule161_pass:
- set_addr $I10, rxsubrule161_back
- rx155_cur."!mark_push"(0, rx155_pos, $I10, $P10)
+ unless $P10, rx164_fail
+ rxsubrule170_pass:
+ set_addr $I10, rxsubrule170_back
+ rx164_cur."!mark_push"(0, rx164_pos, $I10, $P10)
$P10."!cursor_names"("normspace")
- rx155_pos = $P10."pos"()
- set_addr $I10, rxquantr160_done
- (rx155_rep) = rx155_cur."!mark_commit"($I10)
- rxquantr160_done:
+ rx164_pos = $P10."pos"()
+ set_addr $I10, rxquantr169_done
+ (rx164_rep) = rx164_cur."!mark_commit"($I10)
+ rxquantr169_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)
+ rx164_cur."!cursor_pos"(rx164_pos)
+ $P10 = rx164_cur."backmod"()
+ unless $P10, rx164_fail
+ rx164_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx155_pos = $P10."pos"()
- # rx rxquantr162 ** 0..1
- set_addr $I10, rxquantr162_done
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
- rxquantr162_loop:
+ rx164_pos = $P10."pos"()
+ # rx rxquantr171 ** 0..1
+ set_addr $I10, rxquantr171_done
+ rx164_cur."!mark_push"(0, rx164_pos, $I10)
+ rxquantr171_loop:
# rx subrule "normspace" subtype=capture negate=
- rx155_cur."!cursor_pos"(rx155_pos)
- $P10 = rx155_cur."normspace"()
- unless $P10, rx155_fail
- goto rxsubrule163_pass
- rxsubrule163_back:
+ rx164_cur."!cursor_pos"(rx164_pos)
+ $P10 = rx164_cur."normspace"()
+ unless $P10, rx164_fail
+ goto rxsubrule172_pass
+ rxsubrule172_back:
$P10 = $P10."!cursor_next"()
- unless $P10, rx155_fail
- rxsubrule163_pass:
- set_addr $I10, rxsubrule163_back
- rx155_cur."!mark_push"(0, rx155_pos, $I10, $P10)
+ unless $P10, rx164_fail
+ rxsubrule172_pass:
+ set_addr $I10, rxsubrule172_back
+ rx164_cur."!mark_push"(0, rx164_pos, $I10, $P10)
$P10."!cursor_names"("normspace")
- rx155_pos = $P10."pos"()
- set_addr $I10, rxquantr162_done
- (rx155_rep) = rx155_cur."!mark_commit"($I10)
- rxquantr162_done:
- alt164_0:
-.annotate 'line', 60
- set_addr $I10, alt164_1
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
-.annotate 'line', 61
+ rx164_pos = $P10."pos"()
+ set_addr $I10, rxquantr171_done
+ (rx164_rep) = rx164_cur."!mark_commit"($I10)
+ rxquantr171_done:
+ alt173_0:
+.annotate 'line', 67
+ set_addr $I10, alt173_1
+ rx164_cur."!mark_push"(0, rx164_pos, $I10)
+.annotate 'line', 68
# rx subcapture "min"
- set_addr $I10, rxcap_165_fail
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
+ set_addr $I10, rxcap_174_fail
+ rx164_cur."!mark_push"(0, rx164_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx155_pos, rx155_off
- find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_eos
+ sub $I10, rx164_pos, rx164_off
+ find_not_cclass $I11, 8, rx164_tgt, $I10, rx164_eos
add $I12, $I10, 1
- lt $I11, $I12, rx155_fail
- add rx155_pos, rx155_off, $I11
- set_addr $I10, rxcap_165_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, rx164_fail
+ add rx164_pos, rx164_off, $I11
+ set_addr $I10, rxcap_174_fail
+ ($I12, $I11) = rx164_cur."!mark_peek"($I10)
+ rx164_cur."!cursor_pos"($I11)
+ ($P10) = rx164_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx164_pos, "")
+ rx164_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("min")
- goto rxcap_165_done
- rxcap_165_fail:
- goto rx155_fail
- rxcap_165_done:
-.annotate 'line', 68
- # rx rxquantr166 ** 0..1
- set_addr $I10, rxquantr166_done
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
- rxquantr166_loop:
-.annotate 'line', 62
+ goto rxcap_174_done
+ rxcap_174_fail:
+ goto rx164_fail
+ rxcap_174_done:
+.annotate 'line', 75
+ # rx rxquantr175 ** 0..1
+ set_addr $I10, rxquantr175_done
+ rx164_cur."!mark_push"(0, rx164_pos, $I10)
+ rxquantr175_loop:
+.annotate 'line', 69
# 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
-.annotate 'line', 63
+ add $I11, rx164_pos, 2
+ gt $I11, rx164_eos, rx164_fail
+ sub $I11, rx164_pos, rx164_off
+ substr $S10, rx164_tgt, $I11, 2
+ ne $S10, "..", rx164_fail
+ add rx164_pos, 2
+.annotate 'line', 70
# rx subcapture "max"
- set_addr $I10, rxcap_168_fail
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
- alt167_0:
- set_addr $I10, alt167_1
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
-.annotate 'line', 64
+ set_addr $I10, rxcap_177_fail
+ rx164_cur."!mark_push"(0, rx164_pos, $I10)
+ alt176_0:
+ set_addr $I10, alt176_1
+ rx164_cur."!mark_push"(0, rx164_pos, $I10)
+.annotate 'line', 71
# 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, rx164_pos, rx164_off
+ find_not_cclass $I11, 8, rx164_tgt, $I10, rx164_eos
add $I12, $I10, 1
- lt $I11, $I12, rx155_fail
- add rx155_pos, rx155_off, $I11
- goto alt167_end
- alt167_1:
- set_addr $I10, alt167_2
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
-.annotate 'line', 65
+ lt $I11, $I12, rx164_fail
+ add rx164_pos, rx164_off, $I11
+ goto alt176_end
+ alt176_1:
+ set_addr $I10, alt176_2
+ rx164_cur."!mark_push"(0, rx164_pos, $I10)
+.annotate 'line', 72
# 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 alt167_end
- alt167_2:
-.annotate 'line', 66
+ add $I11, rx164_pos, 1
+ gt $I11, rx164_eos, rx164_fail
+ sub $I11, rx164_pos, rx164_off
+ ord $I11, rx164_tgt, $I11
+ ne $I11, 42, rx164_fail
+ add rx164_pos, 1
+ goto alt176_end
+ alt176_2:
+.annotate 'line', 73
# 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"()
- alt167_end:
-.annotate 'line', 63
- set_addr $I10, rxcap_168_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)
+ rx164_cur."!cursor_pos"(rx164_pos)
+ $P10 = rx164_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
+ unless $P10, rx164_fail
+ rx164_pos = $P10."pos"()
+ alt176_end:
+.annotate 'line', 70
+ set_addr $I10, rxcap_177_fail
+ ($I12, $I11) = rx164_cur."!mark_peek"($I10)
+ rx164_cur."!cursor_pos"($I11)
+ ($P10) = rx164_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx164_pos, "")
+ rx164_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("max")
- goto rxcap_168_done
- rxcap_168_fail:
- goto rx155_fail
- rxcap_168_done:
+ goto rxcap_177_done
+ rxcap_177_fail:
+ goto rx164_fail
+ rxcap_177_done:
+.annotate 'line', 75
+ set_addr $I10, rxquantr175_done
+ (rx164_rep) = rx164_cur."!mark_commit"($I10)
+ rxquantr175_done:
.annotate 'line', 68
- set_addr $I10, rxquantr166_done
- (rx155_rep) = rx155_cur."!mark_commit"($I10)
- rxquantr166_done:
-.annotate 'line', 61
- goto alt164_end
- alt164_1:
-.annotate 'line', 69
+ goto alt173_end
+ alt173_1:
+.annotate 'line', 76
# 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)
+ rx164_cur."!cursor_pos"(rx164_pos)
+ $P10 = rx164_cur."quantified_atom"()
+ unless $P10, rx164_fail
+ rx164_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quantified_atom")
- rx155_pos = $P10."pos"()
- alt164_end:
-.annotate 'line', 58
+ rx164_pos = $P10."pos"()
+ alt173_end:
+.annotate 'line', 65
# 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_restart:
-.annotate 'line', 3
- rx155_cur."!cursor_debug"("NEXT ", "quantifier:sym<**>")
- rx155_fail:
- (rx155_rep, rx155_pos, $I10, $P10) = rx155_cur."!mark_fail"(0)
- lt rx155_pos, -1, rx155_done
- eq rx155_pos, -1, rx155_fail
- jump $I10
- rx155_done:
- rx155_cur."!cursor_fail"()
- rx155_cur."!cursor_debug"("FAIL ", "quantifier:sym<**>")
- .return (rx155_cur)
+ rx164_cur."!cursor_pass"(rx164_pos, "quantifier:sym<**>")
+ if_null rx164_debug, debug_235
+ rx164_cur."!cursor_debug"("PASS", "quantifier:sym<**>", " at pos=", rx164_pos)
+ debug_235:
+ .return (rx164_cur)
+ rx164_restart:
+.annotate 'line', 3
+ if_null rx164_debug, debug_236
+ rx164_cur."!cursor_debug"("NEXT", "quantifier:sym<**>")
+ debug_236:
+ rx164_fail:
+ (rx164_rep, rx164_pos, $I10, $P10) = rx164_cur."!mark_fail"(0)
+ lt rx164_pos, -1, rx164_done
+ eq rx164_pos, -1, rx164_fail
+ jump $I10
+ rx164_done:
+ rx164_cur."!cursor_fail"()
+ if_null rx164_debug, debug_237
+ rx164_cur."!cursor_debug"("FAIL", "quantifier:sym<**>")
+ debug_237:
+ .return (rx164_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>" :subid("45_1280467470.54449") :method
-.annotate 'line', 3
- new $P157, "ResizablePMCArray"
- push $P157, "**"
- .return ($P157)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod" :subid("46_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .const 'Sub' $P177 = "48_1280467470.54449"
- capture_lex $P177
- .local string rx170_tgt
- .local int rx170_pos
- .local int rx170_off
- .local int rx170_eos
- .local int rx170_rep
- .local pmc rx170_cur
- (rx170_cur, rx170_pos, rx170_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx170_cur
- .local pmc match
- .lex "$/", match
- length rx170_eos, rx170_tgt
- gt rx170_pos, rx170_eos, rx170_done
- set rx170_off, 0
- lt rx170_pos, 2, rx170_start
- sub rx170_off, rx170_pos, 1
- substr rx170_tgt, rx170_tgt, rx170_off
- rx170_start:
- eq $I10, 1, rx170_restart
- rx170_cur."!cursor_debug"("START ", "backmod")
- $I10 = self.'from'()
- ne $I10, -1, rxscan173_done
- goto rxscan173_scan
- rxscan173_loop:
- ($P10) = rx170_cur."from"()
- inc $P10
- set rx170_pos, $P10
- ge rx170_pos, rx170_eos, rxscan173_done
- rxscan173_scan:
- set_addr $I10, rxscan173_loop
- rx170_cur."!mark_push"(0, rx170_pos, $I10)
- rxscan173_done:
-.annotate 'line', 73
- # rx rxquantr174 ** 0..1
- set_addr $I10, rxquantr174_done
- rx170_cur."!mark_push"(0, rx170_pos, $I10)
- rxquantr174_loop:
+.sub "!PREFIX__quantifier:sym<**>" :subid("47_1282323996.47527") :method
+.annotate 'line', 3
+ new $P166, "ResizablePMCArray"
+ push $P166, "**"
+ .return ($P166)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backmod" :subid("48_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .const 'Sub' $P186 = "50_1282323996.47527"
+ capture_lex $P186
+ .local string rx179_tgt
+ .local int rx179_pos
+ .local int rx179_off
+ .local int rx179_eos
+ .local int rx179_rep
+ .local pmc rx179_cur
+ .local pmc rx179_debug
+ (rx179_cur, rx179_pos, rx179_tgt, $I10) = self."!cursor_start"()
+ getattribute rx179_debug, rx179_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx179_cur
+ .local pmc match
+ .lex "$/", match
+ length rx179_eos, rx179_tgt
+ gt rx179_pos, rx179_eos, rx179_done
+ set rx179_off, 0
+ lt rx179_pos, 2, rx179_start
+ sub rx179_off, rx179_pos, 1
+ substr rx179_tgt, rx179_tgt, rx179_off
+ rx179_start:
+ eq $I10, 1, rx179_restart
+ if_null rx179_debug, debug_238
+ rx179_cur."!cursor_debug"("START", "backmod")
+ debug_238:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan182_done
+ goto rxscan182_scan
+ rxscan182_loop:
+ ($P10) = rx179_cur."from"()
+ inc $P10
+ set rx179_pos, $P10
+ ge rx179_pos, rx179_eos, rxscan182_done
+ rxscan182_scan:
+ set_addr $I10, rxscan182_loop
+ rx179_cur."!mark_push"(0, rx179_pos, $I10)
+ rxscan182_done:
+.annotate 'line', 80
+ # rx rxquantr183 ** 0..1
+ set_addr $I10, rxquantr183_done
+ rx179_cur."!mark_push"(0, rx179_pos, $I10)
+ rxquantr183_loop:
# rx literal ":"
- add $I11, rx170_pos, 1
- gt $I11, rx170_eos, rx170_fail
- sub $I11, rx170_pos, rx170_off
- substr $S10, rx170_tgt, $I11, 1
- ne $S10, ":", rx170_fail
- add rx170_pos, 1
- set_addr $I10, rxquantr174_done
- (rx170_rep) = rx170_cur."!mark_commit"($I10)
- rxquantr174_done:
- alt175_0:
- set_addr $I10, alt175_1
- rx170_cur."!mark_push"(0, rx170_pos, $I10)
+ add $I11, rx179_pos, 1
+ gt $I11, rx179_eos, rx179_fail
+ sub $I11, rx179_pos, rx179_off
+ ord $I11, rx179_tgt, $I11
+ ne $I11, 58, rx179_fail
+ add rx179_pos, 1
+ set_addr $I10, rxquantr183_done
+ (rx179_rep) = rx179_cur."!mark_commit"($I10)
+ rxquantr183_done:
+ alt184_0:
+ set_addr $I10, alt184_1
+ rx179_cur."!mark_push"(0, rx179_pos, $I10)
# rx literal "?"
- add $I11, rx170_pos, 1
- gt $I11, rx170_eos, rx170_fail
- sub $I11, rx170_pos, rx170_off
- substr $S10, rx170_tgt, $I11, 1
- ne $S10, "?", rx170_fail
- add rx170_pos, 1
- goto alt175_end
- alt175_1:
- set_addr $I10, alt175_2
- rx170_cur."!mark_push"(0, rx170_pos, $I10)
+ add $I11, rx179_pos, 1
+ gt $I11, rx179_eos, rx179_fail
+ sub $I11, rx179_pos, rx179_off
+ ord $I11, rx179_tgt, $I11
+ ne $I11, 63, rx179_fail
+ add rx179_pos, 1
+ goto alt184_end
+ alt184_1:
+ set_addr $I10, alt184_2
+ rx179_cur."!mark_push"(0, rx179_pos, $I10)
# rx literal "!"
- add $I11, rx170_pos, 1
- gt $I11, rx170_eos, rx170_fail
- sub $I11, rx170_pos, rx170_off
- substr $S10, rx170_tgt, $I11, 1
- ne $S10, "!", rx170_fail
- add rx170_pos, 1
- goto alt175_end
- alt175_2:
+ add $I11, rx179_pos, 1
+ gt $I11, rx179_eos, rx179_fail
+ sub $I11, rx179_pos, rx179_off
+ ord $I11, rx179_tgt, $I11
+ ne $I11, 33, rx179_fail
+ add rx179_pos, 1
+ goto alt184_end
+ alt184_2:
# rx subrule "before" subtype=zerowidth negate=1
- rx170_cur."!cursor_pos"(rx170_pos)
- .const 'Sub' $P177 = "48_1280467470.54449"
- capture_lex $P177
- $P10 = rx170_cur."before"($P177)
- if $P10, rx170_fail
- alt175_end:
- # rx pass
- rx170_cur."!cursor_pass"(rx170_pos, "backmod")
- rx170_cur."!cursor_debug"("PASS ", "backmod", " at pos=", rx170_pos)
- .return (rx170_cur)
- rx170_restart:
-.annotate 'line', 3
- rx170_cur."!cursor_debug"("NEXT ", "backmod")
- rx170_fail:
- (rx170_rep, rx170_pos, $I10, $P10) = rx170_cur."!mark_fail"(0)
- lt rx170_pos, -1, rx170_done
- eq rx170_pos, -1, rx170_fail
- jump $I10
- rx170_done:
- rx170_cur."!cursor_fail"()
- rx170_cur."!cursor_debug"("FAIL ", "backmod")
- .return (rx170_cur)
+ rx179_cur."!cursor_pos"(rx179_pos)
+ .const 'Sub' $P186 = "50_1282323996.47527"
+ capture_lex $P186
+ $P10 = rx179_cur."before"($P186)
+ if $P10, rx179_fail
+ alt184_end:
+ # rx pass
+ rx179_cur."!cursor_pass"(rx179_pos, "backmod")
+ if_null rx179_debug, debug_243
+ rx179_cur."!cursor_debug"("PASS", "backmod", " at pos=", rx179_pos)
+ debug_243:
+ .return (rx179_cur)
+ rx179_restart:
+.annotate 'line', 3
+ if_null rx179_debug, debug_244
+ rx179_cur."!cursor_debug"("NEXT", "backmod")
+ debug_244:
+ rx179_fail:
+ (rx179_rep, rx179_pos, $I10, $P10) = rx179_cur."!mark_fail"(0)
+ lt rx179_pos, -1, rx179_done
+ eq rx179_pos, -1, rx179_fail
+ jump $I10
+ rx179_done:
+ rx179_cur."!cursor_fail"()
+ if_null rx179_debug, debug_245
+ rx179_cur."!cursor_debug"("FAIL", "backmod")
+ debug_245:
+ .return (rx179_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod" :subid("47_1280467470.54449") :method
+.sub "!PREFIX__backmod" :subid("49_1282323996.47527") :method
.annotate 'line', 3
- new $P172, "ResizablePMCArray"
- push $P172, ""
- .return ($P172)
+ new $P181, "ResizablePMCArray"
+ push $P181, ""
+ .return ($P181)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block176" :anon :subid("48_1280467470.54449") :method :outer("46_1280467470.54449")
-.annotate 'line', 73
- .local string rx178_tgt
- .local int rx178_pos
- .local int rx178_off
- .local int rx178_eos
- .local int rx178_rep
- .local pmc rx178_cur
- (rx178_cur, rx178_pos, rx178_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx178_cur
- .local pmc match
- .lex "$/", match
- length rx178_eos, rx178_tgt
- gt rx178_pos, rx178_eos, rx178_done
- set rx178_off, 0
- lt rx178_pos, 2, rx178_start
- sub rx178_off, rx178_pos, 1
- substr rx178_tgt, rx178_tgt, rx178_off
- rx178_start:
- eq $I10, 1, rx178_restart
- rx178_cur."!cursor_debug"("START ", "")
- $I10 = self.'from'()
- ne $I10, -1, rxscan179_done
- goto rxscan179_scan
- rxscan179_loop:
- ($P10) = rx178_cur."from"()
- inc $P10
- set rx178_pos, $P10
- ge rx178_pos, rx178_eos, rxscan179_done
- rxscan179_scan:
- set_addr $I10, rxscan179_loop
- rx178_cur."!mark_push"(0, rx178_pos, $I10)
- rxscan179_done:
+.sub "_block185" :anon :subid("50_1282323996.47527") :method :outer("48_1282323996.47527")
+.annotate 'line', 80
+ .local string rx187_tgt
+ .local int rx187_pos
+ .local int rx187_off
+ .local int rx187_eos
+ .local int rx187_rep
+ .local pmc rx187_cur
+ .local pmc rx187_debug
+ (rx187_cur, rx187_pos, rx187_tgt, $I10) = self."!cursor_start"()
+ getattribute rx187_debug, rx187_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx187_cur
+ .local pmc match
+ .lex "$/", match
+ length rx187_eos, rx187_tgt
+ gt rx187_pos, rx187_eos, rx187_done
+ 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:
+ eq $I10, 1, rx187_restart
+ if_null rx187_debug, debug_239
+ rx187_cur."!cursor_debug"("START", "")
+ debug_239:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan188_done
+ goto rxscan188_scan
+ rxscan188_loop:
+ ($P10) = rx187_cur."from"()
+ inc $P10
+ set rx187_pos, $P10
+ ge rx187_pos, rx187_eos, rxscan188_done
+ rxscan188_scan:
+ set_addr $I10, rxscan188_loop
+ rx187_cur."!mark_push"(0, rx187_pos, $I10)
+ rxscan188_done:
# rx literal ":"
- add $I11, rx178_pos, 1
- gt $I11, rx178_eos, rx178_fail
- sub $I11, rx178_pos, rx178_off
- substr $S10, rx178_tgt, $I11, 1
- ne $S10, ":", rx178_fail
- add rx178_pos, 1
- # rx pass
- rx178_cur."!cursor_pass"(rx178_pos, "")
- rx178_cur."!cursor_debug"("PASS ", "", " at pos=", rx178_pos)
- .return (rx178_cur)
- rx178_restart:
- rx178_cur."!cursor_debug"("NEXT ", "")
- rx178_fail:
- (rx178_rep, rx178_pos, $I10, $P10) = rx178_cur."!mark_fail"(0)
- lt rx178_pos, -1, rx178_done
- eq rx178_pos, -1, rx178_fail
- jump $I10
- rx178_done:
- rx178_cur."!cursor_fail"()
- rx178_cur."!cursor_debug"("FAIL ", "")
- .return (rx178_cur)
+ add $I11, rx187_pos, 1
+ gt $I11, rx187_eos, rx187_fail
+ sub $I11, rx187_pos, rx187_off
+ ord $I11, rx187_tgt, $I11
+ ne $I11, 58, rx187_fail
+ add rx187_pos, 1
+ # rx pass
+ rx187_cur."!cursor_pass"(rx187_pos, "")
+ if_null rx187_debug, debug_240
+ rx187_cur."!cursor_debug"("PASS", "", " at pos=", rx187_pos)
+ debug_240:
+ .return (rx187_cur)
+ rx187_restart:
+ if_null rx187_debug, debug_241
+ rx187_cur."!cursor_debug"("NEXT", "")
+ debug_241:
+ rx187_fail:
+ (rx187_rep, rx187_pos, $I10, $P10) = rx187_cur."!mark_fail"(0)
+ lt rx187_pos, -1, rx187_done
+ eq rx187_pos, -1, rx187_fail
+ jump $I10
+ rx187_done:
+ rx187_cur."!cursor_fail"()
+ if_null rx187_debug, debug_242
+ rx187_cur."!cursor_debug"("FAIL", "")
+ debug_242:
+ .return (rx187_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar" :subid("49_1280467470.54449") :method
-.annotate 'line', 75
- $P181 = self."!protoregex"("metachar")
- .return ($P181)
+.sub "metachar" :subid("51_1282323996.47527") :method
+.annotate 'line', 82
+ $P190 = self."!protoregex"("metachar")
+ .return ($P190)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar" :subid("50_1280467470.54449") :method
-.annotate 'line', 75
- $P183 = self."!PREFIX__!protoregex"("metachar")
- .return ($P183)
+.sub "!PREFIX__metachar" :subid("52_1282323996.47527") :method
+.annotate 'line', 82
+ $P192 = self."!PREFIX__!protoregex"("metachar")
+ .return ($P192)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>" :subid("51_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<ws>" :subid("53_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
- .local string rx185_tgt
- .local int rx185_pos
- .local int rx185_off
- .local int rx185_eos
- .local int rx185_rep
- .local pmc rx185_cur
- (rx185_cur, rx185_pos, rx185_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx185_cur
- .local pmc match
- .lex "$/", match
- length rx185_eos, rx185_tgt
- gt rx185_pos, rx185_eos, rx185_done
- set rx185_off, 0
- lt rx185_pos, 2, rx185_start
- sub rx185_off, rx185_pos, 1
- substr rx185_tgt, rx185_tgt, rx185_off
- rx185_start:
- eq $I10, 1, rx185_restart
- rx185_cur."!cursor_debug"("START ", "metachar:sym<ws>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan189_done
- goto rxscan189_scan
- rxscan189_loop:
- ($P10) = rx185_cur."from"()
- inc $P10
- set rx185_pos, $P10
- ge rx185_pos, rx185_eos, rxscan189_done
- rxscan189_scan:
- set_addr $I10, rxscan189_loop
- rx185_cur."!mark_push"(0, rx185_pos, $I10)
- rxscan189_done:
-.annotate 'line', 76
+ .local string rx194_tgt
+ .local int rx194_pos
+ .local int rx194_off
+ .local int rx194_eos
+ .local int rx194_rep
+ .local pmc rx194_cur
+ .local pmc rx194_debug
+ (rx194_cur, rx194_pos, rx194_tgt, $I10) = self."!cursor_start"()
+ getattribute rx194_debug, rx194_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx194_cur
+ .local pmc match
+ .lex "$/", match
+ length rx194_eos, rx194_tgt
+ gt rx194_pos, rx194_eos, rx194_done
+ set rx194_off, 0
+ lt rx194_pos, 2, rx194_start
+ sub rx194_off, rx194_pos, 1
+ substr rx194_tgt, rx194_tgt, rx194_off
+ rx194_start:
+ eq $I10, 1, rx194_restart
+ if_null rx194_debug, debug_246
+ rx194_cur."!cursor_debug"("START", "metachar:sym<ws>")
+ debug_246:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan198_done
+ goto rxscan198_scan
+ rxscan198_loop:
+ ($P10) = rx194_cur."from"()
+ inc $P10
+ set rx194_pos, $P10
+ ge rx194_pos, rx194_eos, rxscan198_done
+ rxscan198_scan:
+ set_addr $I10, rxscan198_loop
+ rx194_cur."!mark_push"(0, rx194_pos, $I10)
+ rxscan198_done:
+.annotate 'line', 83
# rx subrule "normspace" subtype=method negate=
- rx185_cur."!cursor_pos"(rx185_pos)
- $P10 = rx185_cur."normspace"()
- unless $P10, rx185_fail
- rx185_pos = $P10."pos"()
- # rx pass
- rx185_cur."!cursor_pass"(rx185_pos, "metachar:sym<ws>")
- rx185_cur."!cursor_debug"("PASS ", "metachar:sym<ws>", " at pos=", rx185_pos)
- .return (rx185_cur)
- rx185_restart:
-.annotate 'line', 3
- rx185_cur."!cursor_debug"("NEXT ", "metachar:sym<ws>")
- rx185_fail:
- (rx185_rep, rx185_pos, $I10, $P10) = rx185_cur."!mark_fail"(0)
- lt rx185_pos, -1, rx185_done
- eq rx185_pos, -1, rx185_fail
- jump $I10
- rx185_done:
- rx185_cur."!cursor_fail"()
- rx185_cur."!cursor_debug"("FAIL ", "metachar:sym<ws>")
- .return (rx185_cur)
+ rx194_cur."!cursor_pos"(rx194_pos)
+ $P10 = rx194_cur."normspace"()
+ unless $P10, rx194_fail
+ rx194_pos = $P10."pos"()
+ # rx pass
+ rx194_cur."!cursor_pass"(rx194_pos, "metachar:sym<ws>")
+ if_null rx194_debug, debug_247
+ rx194_cur."!cursor_debug"("PASS", "metachar:sym<ws>", " at pos=", rx194_pos)
+ debug_247:
+ .return (rx194_cur)
+ rx194_restart:
+.annotate 'line', 3
+ if_null rx194_debug, debug_248
+ rx194_cur."!cursor_debug"("NEXT", "metachar:sym<ws>")
+ debug_248:
+ rx194_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
+ rx194_done:
+ rx194_cur."!cursor_fail"()
+ if_null rx194_debug, debug_249
+ rx194_cur."!cursor_debug"("FAIL", "metachar:sym<ws>")
+ debug_249:
+ .return (rx194_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>" :subid("52_1280467470.54449") :method
-.annotate 'line', 3
- $P187 = self."!PREFIX__!subrule"("normspace", "")
- new $P188, "ResizablePMCArray"
- push $P188, $P187
- .return ($P188)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>" :subid("53_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx191_tgt
- .local int rx191_pos
- .local int rx191_off
- .local int rx191_eos
- .local int rx191_rep
- .local pmc rx191_cur
- (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx191_cur
- .local pmc match
- .lex "$/", match
- length rx191_eos, rx191_tgt
- gt rx191_pos, rx191_eos, rx191_done
- set rx191_off, 0
- lt rx191_pos, 2, rx191_start
- sub rx191_off, rx191_pos, 1
- substr rx191_tgt, rx191_tgt, rx191_off
- rx191_start:
- eq $I10, 1, rx191_restart
- rx191_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan195_done
- goto rxscan195_scan
- rxscan195_loop:
- ($P10) = rx191_cur."from"()
- inc $P10
- set rx191_pos, $P10
- ge rx191_pos, rx191_eos, rxscan195_done
- rxscan195_scan:
- set_addr $I10, rxscan195_loop
- rx191_cur."!mark_push"(0, rx191_pos, $I10)
- rxscan195_done:
-.annotate 'line', 77
+.sub "!PREFIX__metachar:sym<ws>" :subid("54_1282323996.47527") :method
+.annotate 'line', 3
+ $P196 = self."!PREFIX__!subrule"("normspace", "")
+ new $P197, "ResizablePMCArray"
+ push $P197, $P196
+ .return ($P197)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<[ ]>" :subid("55_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx200_tgt
+ .local int rx200_pos
+ .local int rx200_off
+ .local int rx200_eos
+ .local int rx200_rep
+ .local pmc rx200_cur
+ .local pmc rx200_debug
+ (rx200_cur, rx200_pos, rx200_tgt, $I10) = self."!cursor_start"()
+ getattribute rx200_debug, rx200_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx200_cur
+ .local pmc match
+ .lex "$/", match
+ length rx200_eos, rx200_tgt
+ gt rx200_pos, rx200_eos, rx200_done
+ set rx200_off, 0
+ lt rx200_pos, 2, rx200_start
+ sub rx200_off, rx200_pos, 1
+ substr rx200_tgt, rx200_tgt, rx200_off
+ rx200_start:
+ eq $I10, 1, rx200_restart
+ if_null rx200_debug, debug_250
+ rx200_cur."!cursor_debug"("START", "metachar:sym<[ ]>")
+ debug_250:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan204_done
+ goto rxscan204_scan
+ rxscan204_loop:
+ ($P10) = rx200_cur."from"()
+ inc $P10
+ set rx200_pos, $P10
+ ge rx200_pos, rx200_eos, rxscan204_done
+ rxscan204_scan:
+ set_addr $I10, rxscan204_loop
+ rx200_cur."!mark_push"(0, rx200_pos, $I10)
+ rxscan204_done:
+.annotate 'line', 84
# 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
+ add $I11, rx200_pos, 1
+ gt $I11, rx200_eos, rx200_fail
+ sub $I11, rx200_pos, rx200_off
+ ord $I11, rx200_tgt, $I11
+ ne $I11, 91, rx200_fail
+ add rx200_pos, 1
# rx subrule "nibbler" subtype=capture negate=
- rx191_cur."!cursor_pos"(rx191_pos)
- $P10 = rx191_cur."nibbler"()
- unless $P10, rx191_fail
- rx191_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx191_pos = $P10."pos"()
+ rx200_pos = $P10."pos"()
# 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
- # rx pass
- rx191_cur."!cursor_pass"(rx191_pos, "metachar:sym<[ ]>")
- rx191_cur."!cursor_debug"("PASS ", "metachar:sym<[ ]>", " at pos=", rx191_pos)
- .return (rx191_cur)
- rx191_restart:
-.annotate 'line', 3
- rx191_cur."!cursor_debug"("NEXT ", "metachar:sym<[ ]>")
- rx191_fail:
- (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
- lt rx191_pos, -1, rx191_done
- eq rx191_pos, -1, rx191_fail
- jump $I10
- rx191_done:
- rx191_cur."!cursor_fail"()
- rx191_cur."!cursor_debug"("FAIL ", "metachar:sym<[ ]>")
- .return (rx191_cur)
+ add $I11, rx200_pos, 1
+ gt $I11, rx200_eos, rx200_fail
+ sub $I11, rx200_pos, rx200_off
+ ord $I11, rx200_tgt, $I11
+ ne $I11, 93, rx200_fail
+ add rx200_pos, 1
+ # rx pass
+ rx200_cur."!cursor_pass"(rx200_pos, "metachar:sym<[ ]>")
+ if_null rx200_debug, debug_251
+ rx200_cur."!cursor_debug"("PASS", "metachar:sym<[ ]>", " at pos=", rx200_pos)
+ debug_251:
+ .return (rx200_cur)
+ rx200_restart:
+.annotate 'line', 3
+ if_null rx200_debug, debug_252
+ rx200_cur."!cursor_debug"("NEXT", "metachar:sym<[ ]>")
+ debug_252:
+ rx200_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
+ rx200_done:
+ rx200_cur."!cursor_fail"()
+ if_null rx200_debug, debug_253
+ rx200_cur."!cursor_debug"("FAIL", "metachar:sym<[ ]>")
+ debug_253:
+ .return (rx200_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>" :subid("54_1280467470.54449") :method
-.annotate 'line', 3
- $P193 = self."!PREFIX__!subrule"("nibbler", "[")
- new $P194, "ResizablePMCArray"
- push $P194, $P193
- .return ($P194)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>" :subid("55_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx197_tgt
- .local int rx197_pos
- .local int rx197_off
- .local int rx197_eos
- .local int rx197_rep
- .local pmc rx197_cur
- (rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx197_cur
- .local pmc match
- .lex "$/", match
- length rx197_eos, rx197_tgt
- gt rx197_pos, rx197_eos, rx197_done
- set rx197_off, 0
- lt rx197_pos, 2, rx197_start
- sub rx197_off, rx197_pos, 1
- substr rx197_tgt, rx197_tgt, rx197_off
- rx197_start:
- eq $I10, 1, rx197_restart
- rx197_cur."!cursor_debug"("START ", "metachar:sym<( )>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan201_done
- goto rxscan201_scan
- rxscan201_loop:
- ($P10) = rx197_cur."from"()
- inc $P10
- set rx197_pos, $P10
- ge rx197_pos, rx197_eos, rxscan201_done
- rxscan201_scan:
- set_addr $I10, rxscan201_loop
- rx197_cur."!mark_push"(0, rx197_pos, $I10)
- rxscan201_done:
-.annotate 'line', 78
+.sub "!PREFIX__metachar:sym<[ ]>" :subid("56_1282323996.47527") :method
+.annotate 'line', 3
+ $P202 = self."!PREFIX__!subrule"("nibbler", "[")
+ new $P203, "ResizablePMCArray"
+ push $P203, $P202
+ .return ($P203)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<( )>" :subid("57_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx206_tgt
+ .local int rx206_pos
+ .local int rx206_off
+ .local int rx206_eos
+ .local int rx206_rep
+ .local pmc rx206_cur
+ .local pmc rx206_debug
+ (rx206_cur, rx206_pos, rx206_tgt, $I10) = self."!cursor_start"()
+ getattribute rx206_debug, rx206_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx206_cur
+ .local pmc match
+ .lex "$/", match
+ length rx206_eos, rx206_tgt
+ gt rx206_pos, rx206_eos, rx206_done
+ set rx206_off, 0
+ lt rx206_pos, 2, rx206_start
+ sub rx206_off, rx206_pos, 1
+ substr rx206_tgt, rx206_tgt, rx206_off
+ rx206_start:
+ eq $I10, 1, rx206_restart
+ if_null rx206_debug, debug_254
+ rx206_cur."!cursor_debug"("START", "metachar:sym<( )>")
+ debug_254:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan210_done
+ goto rxscan210_scan
+ rxscan210_loop:
+ ($P10) = rx206_cur."from"()
+ inc $P10
+ set rx206_pos, $P10
+ ge rx206_pos, rx206_eos, rxscan210_done
+ rxscan210_scan:
+ set_addr $I10, rxscan210_loop
+ rx206_cur."!mark_push"(0, rx206_pos, $I10)
+ rxscan210_done:
+.annotate 'line', 85
# rx literal "("
- add $I11, rx197_pos, 1
- gt $I11, rx197_eos, rx197_fail
- sub $I11, rx197_pos, rx197_off
- substr $S10, rx197_tgt, $I11, 1
- ne $S10, "(", rx197_fail
- add rx197_pos, 1
+ add $I11, rx206_pos, 1
+ gt $I11, rx206_eos, rx206_fail
+ sub $I11, rx206_pos, rx206_off
+ ord $I11, rx206_tgt, $I11
+ ne $I11, 40, rx206_fail
+ add rx206_pos, 1
# rx subrule "nibbler" subtype=capture negate=
- rx197_cur."!cursor_pos"(rx197_pos)
- $P10 = rx197_cur."nibbler"()
- unless $P10, rx197_fail
- rx197_cur."!mark_push"(0, -1, 0, $P10)
+ rx206_cur."!cursor_pos"(rx206_pos)
+ $P10 = rx206_cur."nibbler"()
+ unless $P10, rx206_fail
+ rx206_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("nibbler")
- rx197_pos = $P10."pos"()
+ rx206_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx197_pos, 1
- gt $I11, rx197_eos, rx197_fail
- sub $I11, rx197_pos, rx197_off
- substr $S10, rx197_tgt, $I11, 1
- ne $S10, ")", rx197_fail
- add rx197_pos, 1
- # rx pass
- rx197_cur."!cursor_pass"(rx197_pos, "metachar:sym<( )>")
- rx197_cur."!cursor_debug"("PASS ", "metachar:sym<( )>", " at pos=", rx197_pos)
- .return (rx197_cur)
- rx197_restart:
-.annotate 'line', 3
- rx197_cur."!cursor_debug"("NEXT ", "metachar:sym<( )>")
- rx197_fail:
- (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
- lt rx197_pos, -1, rx197_done
- eq rx197_pos, -1, rx197_fail
- jump $I10
- rx197_done:
- rx197_cur."!cursor_fail"()
- rx197_cur."!cursor_debug"("FAIL ", "metachar:sym<( )>")
- .return (rx197_cur)
+ add $I11, rx206_pos, 1
+ gt $I11, rx206_eos, rx206_fail
+ sub $I11, rx206_pos, rx206_off
+ ord $I11, rx206_tgt, $I11
+ ne $I11, 41, rx206_fail
+ add rx206_pos, 1
+ # rx pass
+ rx206_cur."!cursor_pass"(rx206_pos, "metachar:sym<( )>")
+ if_null rx206_debug, debug_255
+ rx206_cur."!cursor_debug"("PASS", "metachar:sym<( )>", " at pos=", rx206_pos)
+ debug_255:
+ .return (rx206_cur)
+ rx206_restart:
+.annotate 'line', 3
+ if_null rx206_debug, debug_256
+ rx206_cur."!cursor_debug"("NEXT", "metachar:sym<( )>")
+ debug_256:
+ rx206_fail:
+ (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0)
+ lt rx206_pos, -1, rx206_done
+ eq rx206_pos, -1, rx206_fail
+ jump $I10
+ rx206_done:
+ rx206_cur."!cursor_fail"()
+ if_null rx206_debug, debug_257
+ rx206_cur."!cursor_debug"("FAIL", "metachar:sym<( )>")
+ debug_257:
+ .return (rx206_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>" :subid("56_1280467470.54449") :method
-.annotate 'line', 3
- $P199 = self."!PREFIX__!subrule"("nibbler", "(")
- new $P200, "ResizablePMCArray"
- push $P200, $P199
- .return ($P200)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>" :subid("57_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .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, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx203_cur
- .local pmc match
- .lex "$/", match
- length rx203_eos, rx203_tgt
- gt rx203_pos, rx203_eos, rx203_done
- set rx203_off, 0
- lt rx203_pos, 2, rx203_start
- sub rx203_off, rx203_pos, 1
- substr rx203_tgt, rx203_tgt, rx203_off
- rx203_start:
- eq $I10, 1, rx203_restart
- rx203_cur."!cursor_debug"("START ", "metachar:sym<'>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan206_done
- goto rxscan206_scan
- rxscan206_loop:
- ($P10) = rx203_cur."from"()
- inc $P10
- set rx203_pos, $P10
- ge rx203_pos, rx203_eos, rxscan206_done
- rxscan206_scan:
- set_addr $I10, rxscan206_loop
- rx203_cur."!mark_push"(0, rx203_pos, $I10)
- rxscan206_done:
-.annotate 'line', 79
+.sub "!PREFIX__metachar:sym<( )>" :subid("58_1282323996.47527") :method
+.annotate 'line', 3
+ $P208 = self."!PREFIX__!subrule"("nibbler", "(")
+ new $P209, "ResizablePMCArray"
+ push $P209, $P208
+ .return ($P209)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<'>" :subid("59_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx212_tgt
+ .local int rx212_pos
+ .local int rx212_off
+ .local int rx212_eos
+ .local int rx212_rep
+ .local pmc rx212_cur
+ .local pmc rx212_debug
+ (rx212_cur, rx212_pos, rx212_tgt, $I10) = self."!cursor_start"()
+ getattribute rx212_debug, rx212_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx212_cur
+ .local pmc match
+ .lex "$/", match
+ length rx212_eos, rx212_tgt
+ gt rx212_pos, rx212_eos, rx212_done
+ set rx212_off, 0
+ lt rx212_pos, 2, rx212_start
+ sub rx212_off, rx212_pos, 1
+ substr rx212_tgt, rx212_tgt, rx212_off
+ rx212_start:
+ eq $I10, 1, rx212_restart
+ if_null rx212_debug, debug_258
+ rx212_cur."!cursor_debug"("START", "metachar:sym<'>")
+ debug_258:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan215_done
+ goto rxscan215_scan
+ rxscan215_loop:
+ ($P10) = rx212_cur."from"()
+ inc $P10
+ set rx212_pos, $P10
+ ge rx212_pos, rx212_eos, rxscan215_done
+ rxscan215_scan:
+ set_addr $I10, rxscan215_loop
+ rx212_cur."!mark_push"(0, rx212_pos, $I10)
+ rxscan215_done:
+.annotate 'line', 86
# rx enumcharlist negate=0 zerowidth
- ge rx203_pos, rx203_eos, rx203_fail
- sub $I10, rx203_pos, rx203_off
- substr $S10, rx203_tgt, $I10, 1
+ ge rx212_pos, rx212_eos, rx212_fail
+ sub $I10, rx212_pos, rx212_off
+ substr $S10, rx212_tgt, $I10, 1
index $I11, "'", $S10
- lt $I11, 0, rx203_fail
+ lt $I11, 0, rx212_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx203_cur."!cursor_pos"(rx203_pos)
- $P10 = rx203_cur."quote_EXPR"(":q")
- unless $P10, rx203_fail
- rx203_cur."!mark_push"(0, -1, 0, $P10)
+ rx212_cur."!cursor_pos"(rx212_pos)
+ $P10 = rx212_cur."quote_EXPR"(":q")
+ unless $P10, rx212_fail
+ rx212_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx203_pos = $P10."pos"()
+ rx212_pos = $P10."pos"()
# rx pass
- rx203_cur."!cursor_pass"(rx203_pos, "metachar:sym<'>")
- rx203_cur."!cursor_debug"("PASS ", "metachar:sym<'>", " at pos=", rx203_pos)
- .return (rx203_cur)
- rx203_restart:
-.annotate 'line', 3
- rx203_cur."!cursor_debug"("NEXT ", "metachar:sym<'>")
- rx203_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
- rx203_done:
- rx203_cur."!cursor_fail"()
- rx203_cur."!cursor_debug"("FAIL ", "metachar:sym<'>")
- .return (rx203_cur)
+ rx212_cur."!cursor_pass"(rx212_pos, "metachar:sym<'>")
+ if_null rx212_debug, debug_259
+ rx212_cur."!cursor_debug"("PASS", "metachar:sym<'>", " at pos=", rx212_pos)
+ debug_259:
+ .return (rx212_cur)
+ rx212_restart:
+.annotate 'line', 3
+ if_null rx212_debug, debug_260
+ rx212_cur."!cursor_debug"("NEXT", "metachar:sym<'>")
+ debug_260:
+ rx212_fail:
+ (rx212_rep, rx212_pos, $I10, $P10) = rx212_cur."!mark_fail"(0)
+ lt rx212_pos, -1, rx212_done
+ eq rx212_pos, -1, rx212_fail
+ jump $I10
+ rx212_done:
+ rx212_cur."!cursor_fail"()
+ if_null rx212_debug, debug_261
+ rx212_cur."!cursor_debug"("FAIL", "metachar:sym<'>")
+ debug_261:
+ .return (rx212_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>" :subid("58_1280467470.54449") :method
-.annotate 'line', 3
- new $P205, "ResizablePMCArray"
- push $P205, "'"
- .return ($P205)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">" :subid("59_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx208_tgt
- .local int rx208_pos
- .local int rx208_off
- .local int rx208_eos
- .local int rx208_rep
- .local pmc rx208_cur
- (rx208_cur, rx208_pos, rx208_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx208_cur
- .local pmc match
- .lex "$/", match
- length rx208_eos, rx208_tgt
- gt rx208_pos, rx208_eos, rx208_done
- set rx208_off, 0
- lt rx208_pos, 2, rx208_start
- sub rx208_off, rx208_pos, 1
- substr rx208_tgt, rx208_tgt, rx208_off
- rx208_start:
- eq $I10, 1, rx208_restart
- rx208_cur."!cursor_debug"("START ", "metachar:sym<\">")
- $I10 = self.'from'()
- ne $I10, -1, rxscan211_done
- goto rxscan211_scan
- rxscan211_loop:
- ($P10) = rx208_cur."from"()
- inc $P10
- set rx208_pos, $P10
- ge rx208_pos, rx208_eos, rxscan211_done
- rxscan211_scan:
- set_addr $I10, rxscan211_loop
- rx208_cur."!mark_push"(0, rx208_pos, $I10)
- rxscan211_done:
-.annotate 'line', 80
+.sub "!PREFIX__metachar:sym<'>" :subid("60_1282323996.47527") :method
+.annotate 'line', 3
+ new $P214, "ResizablePMCArray"
+ push $P214, "'"
+ .return ($P214)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<\">" :subid("61_1282323996.47527") :method :outer("11_1282323996.47527")
+.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
+ .local pmc rx217_debug
+ (rx217_cur, rx217_pos, rx217_tgt, $I10) = self."!cursor_start"()
+ getattribute rx217_debug, rx217_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx217_cur
+ .local pmc match
+ .lex "$/", match
+ length rx217_eos, rx217_tgt
+ gt rx217_pos, rx217_eos, rx217_done
+ set rx217_off, 0
+ lt rx217_pos, 2, rx217_start
+ sub rx217_off, rx217_pos, 1
+ substr rx217_tgt, rx217_tgt, rx217_off
+ rx217_start:
+ eq $I10, 1, rx217_restart
+ if_null rx217_debug, debug_262
+ rx217_cur."!cursor_debug"("START", "metachar:sym<\">")
+ debug_262:
+ $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:
+.annotate 'line', 87
# rx enumcharlist negate=0 zerowidth
- ge rx208_pos, rx208_eos, rx208_fail
- sub $I10, rx208_pos, rx208_off
- substr $S10, rx208_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, rx208_fail
+ lt $I11, 0, rx217_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx208_cur."!cursor_pos"(rx208_pos)
- $P10 = rx208_cur."quote_EXPR"(":qq")
- unless $P10, rx208_fail
- rx208_cur."!mark_push"(0, -1, 0, $P10)
+ rx217_cur."!cursor_pos"(rx217_pos)
+ $P10 = rx217_cur."quote_EXPR"(":qq")
+ unless $P10, rx217_fail
+ rx217_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx208_pos = $P10."pos"()
+ rx217_pos = $P10."pos"()
# rx pass
- rx208_cur."!cursor_pass"(rx208_pos, "metachar:sym<\">")
- rx208_cur."!cursor_debug"("PASS ", "metachar:sym<\">", " at pos=", rx208_pos)
- .return (rx208_cur)
- rx208_restart:
-.annotate 'line', 3
- rx208_cur."!cursor_debug"("NEXT ", "metachar:sym<\">")
- rx208_fail:
- (rx208_rep, rx208_pos, $I10, $P10) = rx208_cur."!mark_fail"(0)
- lt rx208_pos, -1, rx208_done
- eq rx208_pos, -1, rx208_fail
- jump $I10
- rx208_done:
- rx208_cur."!cursor_fail"()
- rx208_cur."!cursor_debug"("FAIL ", "metachar:sym<\">")
- .return (rx208_cur)
+ rx217_cur."!cursor_pass"(rx217_pos, "metachar:sym<\">")
+ if_null rx217_debug, debug_263
+ rx217_cur."!cursor_debug"("PASS", "metachar:sym<\">", " at pos=", rx217_pos)
+ debug_263:
+ .return (rx217_cur)
+ rx217_restart:
+.annotate 'line', 3
+ if_null rx217_debug, debug_264
+ rx217_cur."!cursor_debug"("NEXT", "metachar:sym<\">")
+ debug_264:
+ rx217_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
+ rx217_done:
+ rx217_cur."!cursor_fail"()
+ if_null rx217_debug, debug_265
+ rx217_cur."!cursor_debug"("FAIL", "metachar:sym<\">")
+ debug_265:
+ .return (rx217_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">" :subid("60_1280467470.54449") :method
-.annotate 'line', 3
- new $P210, "ResizablePMCArray"
- push $P210, "\""
- .return ($P210)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>" :subid("61_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx213_tgt
- .local int rx213_pos
- .local int rx213_off
- .local int rx213_eos
- .local int rx213_rep
- .local pmc rx213_cur
- (rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx213_cur
- .local pmc match
- .lex "$/", match
- length rx213_eos, rx213_tgt
- gt rx213_pos, rx213_eos, rx213_done
- set rx213_off, 0
- lt rx213_pos, 2, rx213_start
- sub rx213_off, rx213_pos, 1
- substr rx213_tgt, rx213_tgt, rx213_off
- rx213_start:
- eq $I10, 1, rx213_restart
- rx213_cur."!cursor_debug"("START ", "metachar:sym<.>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan216_done
- goto rxscan216_scan
- rxscan216_loop:
- ($P10) = rx213_cur."from"()
- inc $P10
- set rx213_pos, $P10
- ge rx213_pos, rx213_eos, rxscan216_done
- rxscan216_scan:
- set_addr $I10, rxscan216_loop
- rx213_cur."!mark_push"(0, rx213_pos, $I10)
- rxscan216_done:
-.annotate 'line', 81
+.sub "!PREFIX__metachar:sym<\">" :subid("62_1282323996.47527") :method
+.annotate 'line', 3
+ new $P219, "ResizablePMCArray"
+ push $P219, "\""
+ .return ($P219)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<.>" :subid("63_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx222_tgt
+ .local int rx222_pos
+ .local int rx222_off
+ .local int rx222_eos
+ .local int rx222_rep
+ .local pmc rx222_cur
+ .local pmc rx222_debug
+ (rx222_cur, rx222_pos, rx222_tgt, $I10) = self."!cursor_start"()
+ getattribute rx222_debug, rx222_cur, "$!debug"
+ .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:
+ eq $I10, 1, rx222_restart
+ if_null rx222_debug, debug_266
+ rx222_cur."!cursor_debug"("START", "metachar:sym<.>")
+ debug_266:
+ $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', 88
# rx subcapture "sym"
- set_addr $I10, rxcap_217_fail
- rx213_cur."!mark_push"(0, rx213_pos, $I10)
+ set_addr $I10, rxcap_226_fail
+ rx222_cur."!mark_push"(0, rx222_pos, $I10)
# rx literal "."
- add $I11, rx213_pos, 1
- gt $I11, rx213_eos, rx213_fail
- sub $I11, rx213_pos, rx213_off
- substr $S10, rx213_tgt, $I11, 1
- ne $S10, ".", rx213_fail
- add rx213_pos, 1
- set_addr $I10, rxcap_217_fail
- ($I12, $I11) = rx213_cur."!mark_peek"($I10)
- rx213_cur."!cursor_pos"($I11)
- ($P10) = rx213_cur."!cursor_start"()
- $P10."!cursor_pass"(rx213_pos, "")
- rx213_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx222_pos, 1
+ gt $I11, rx222_eos, rx222_fail
+ sub $I11, rx222_pos, rx222_off
+ ord $I11, rx222_tgt, $I11
+ ne $I11, 46, 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_217_done
- rxcap_217_fail:
- goto rx213_fail
- rxcap_217_done:
- # rx pass
- rx213_cur."!cursor_pass"(rx213_pos, "metachar:sym<.>")
- rx213_cur."!cursor_debug"("PASS ", "metachar:sym<.>", " at pos=", rx213_pos)
- .return (rx213_cur)
- rx213_restart:
-.annotate 'line', 3
- rx213_cur."!cursor_debug"("NEXT ", "metachar:sym<.>")
- rx213_fail:
- (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
- lt rx213_pos, -1, rx213_done
- eq rx213_pos, -1, rx213_fail
- jump $I10
- rx213_done:
- rx213_cur."!cursor_fail"()
- rx213_cur."!cursor_debug"("FAIL ", "metachar:sym<.>")
- .return (rx213_cur)
+ goto rxcap_226_done
+ rxcap_226_fail:
+ goto rx222_fail
+ rxcap_226_done:
+ # rx pass
+ rx222_cur."!cursor_pass"(rx222_pos, "metachar:sym<.>")
+ if_null rx222_debug, debug_267
+ rx222_cur."!cursor_debug"("PASS", "metachar:sym<.>", " at pos=", rx222_pos)
+ debug_267:
+ .return (rx222_cur)
+ rx222_restart:
+.annotate 'line', 3
+ if_null rx222_debug, debug_268
+ rx222_cur."!cursor_debug"("NEXT", "metachar:sym<.>")
+ debug_268:
+ rx222_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
+ rx222_done:
+ rx222_cur."!cursor_fail"()
+ if_null rx222_debug, debug_269
+ rx222_cur."!cursor_debug"("FAIL", "metachar:sym<.>")
+ debug_269:
+ .return (rx222_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>" :subid("62_1280467470.54449") :method
-.annotate 'line', 3
- new $P215, "ResizablePMCArray"
- push $P215, "."
- .return ($P215)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>" :subid("63_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx219_tgt
- .local int rx219_pos
- .local int rx219_off
- .local int rx219_eos
- .local int rx219_rep
- .local pmc rx219_cur
- (rx219_cur, rx219_pos, rx219_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx219_cur
- .local pmc match
- .lex "$/", match
- length rx219_eos, rx219_tgt
- gt rx219_pos, rx219_eos, rx219_done
- set rx219_off, 0
- lt rx219_pos, 2, rx219_start
- sub rx219_off, rx219_pos, 1
- substr rx219_tgt, rx219_tgt, rx219_off
- rx219_start:
- eq $I10, 1, rx219_restart
- rx219_cur."!cursor_debug"("START ", "metachar:sym<^>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan222_done
- goto rxscan222_scan
- rxscan222_loop:
- ($P10) = rx219_cur."from"()
- inc $P10
- set rx219_pos, $P10
- ge rx219_pos, rx219_eos, rxscan222_done
- rxscan222_scan:
- set_addr $I10, rxscan222_loop
- rx219_cur."!mark_push"(0, rx219_pos, $I10)
- rxscan222_done:
-.annotate 'line', 82
+.sub "!PREFIX__metachar:sym<.>" :subid("64_1282323996.47527") :method
+.annotate 'line', 3
+ new $P224, "ResizablePMCArray"
+ push $P224, "."
+ .return ($P224)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<^>" :subid("65_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx228_tgt
+ .local int rx228_pos
+ .local int rx228_off
+ .local int rx228_eos
+ .local int rx228_rep
+ .local pmc rx228_cur
+ .local pmc rx228_debug
+ (rx228_cur, rx228_pos, rx228_tgt, $I10) = self."!cursor_start"()
+ getattribute rx228_debug, rx228_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx228_cur
+ .local pmc match
+ .lex "$/", match
+ length rx228_eos, rx228_tgt
+ gt rx228_pos, rx228_eos, rx228_done
+ set rx228_off, 0
+ lt rx228_pos, 2, rx228_start
+ sub rx228_off, rx228_pos, 1
+ substr rx228_tgt, rx228_tgt, rx228_off
+ rx228_start:
+ eq $I10, 1, rx228_restart
+ if_null rx228_debug, debug_270
+ rx228_cur."!cursor_debug"("START", "metachar:sym<^>")
+ debug_270:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan231_done
+ goto rxscan231_scan
+ rxscan231_loop:
+ ($P10) = rx228_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', 89
# rx subcapture "sym"
- set_addr $I10, rxcap_223_fail
- rx219_cur."!mark_push"(0, rx219_pos, $I10)
+ set_addr $I10, rxcap_232_fail
+ rx228_cur."!mark_push"(0, rx228_pos, $I10)
# rx literal "^"
- add $I11, rx219_pos, 1
- gt $I11, rx219_eos, rx219_fail
- sub $I11, rx219_pos, rx219_off
- substr $S10, rx219_tgt, $I11, 1
- ne $S10, "^", rx219_fail
- add rx219_pos, 1
- set_addr $I10, rxcap_223_fail
- ($I12, $I11) = rx219_cur."!mark_peek"($I10)
- rx219_cur."!cursor_pos"($I11)
- ($P10) = rx219_cur."!cursor_start"()
- $P10."!cursor_pass"(rx219_pos, "")
- rx219_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx228_pos, 1
+ gt $I11, rx228_eos, rx228_fail
+ sub $I11, rx228_pos, rx228_off
+ ord $I11, rx228_tgt, $I11
+ ne $I11, 94, rx228_fail
+ add rx228_pos, 1
+ 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_223_done
- rxcap_223_fail:
- goto rx219_fail
- rxcap_223_done:
- # rx pass
- rx219_cur."!cursor_pass"(rx219_pos, "metachar:sym<^>")
- rx219_cur."!cursor_debug"("PASS ", "metachar:sym<^>", " at pos=", rx219_pos)
- .return (rx219_cur)
- rx219_restart:
-.annotate 'line', 3
- rx219_cur."!cursor_debug"("NEXT ", "metachar:sym<^>")
- rx219_fail:
- (rx219_rep, rx219_pos, $I10, $P10) = rx219_cur."!mark_fail"(0)
- lt rx219_pos, -1, rx219_done
- eq rx219_pos, -1, rx219_fail
- jump $I10
- rx219_done:
- rx219_cur."!cursor_fail"()
- rx219_cur."!cursor_debug"("FAIL ", "metachar:sym<^>")
- .return (rx219_cur)
+ goto rxcap_232_done
+ rxcap_232_fail:
+ goto rx228_fail
+ rxcap_232_done:
+ # rx pass
+ rx228_cur."!cursor_pass"(rx228_pos, "metachar:sym<^>")
+ if_null rx228_debug, debug_271
+ rx228_cur."!cursor_debug"("PASS", "metachar:sym<^>", " at pos=", rx228_pos)
+ debug_271:
+ .return (rx228_cur)
+ rx228_restart:
+.annotate 'line', 3
+ if_null rx228_debug, debug_272
+ rx228_cur."!cursor_debug"("NEXT", "metachar:sym<^>")
+ debug_272:
+ rx228_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
+ rx228_done:
+ rx228_cur."!cursor_fail"()
+ if_null rx228_debug, debug_273
+ rx228_cur."!cursor_debug"("FAIL", "metachar:sym<^>")
+ debug_273:
+ .return (rx228_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>" :subid("64_1280467470.54449") :method
-.annotate 'line', 3
- new $P221, "ResizablePMCArray"
- push $P221, "^"
- .return ($P221)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>" :subid("65_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx225_tgt
- .local int rx225_pos
- .local int rx225_off
- .local int rx225_eos
- .local int rx225_rep
- .local pmc rx225_cur
- (rx225_cur, rx225_pos, rx225_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx225_cur
- .local pmc match
- .lex "$/", match
- length rx225_eos, rx225_tgt
- gt rx225_pos, rx225_eos, rx225_done
- set rx225_off, 0
- lt rx225_pos, 2, rx225_start
- sub rx225_off, rx225_pos, 1
- substr rx225_tgt, rx225_tgt, rx225_off
- rx225_start:
- eq $I10, 1, rx225_restart
- rx225_cur."!cursor_debug"("START ", "metachar:sym<^^>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan228_done
- goto rxscan228_scan
- rxscan228_loop:
- ($P10) = rx225_cur."from"()
- inc $P10
- set rx225_pos, $P10
- ge rx225_pos, rx225_eos, rxscan228_done
- rxscan228_scan:
- set_addr $I10, rxscan228_loop
- rx225_cur."!mark_push"(0, rx225_pos, $I10)
- rxscan228_done:
-.annotate 'line', 83
+.sub "!PREFIX__metachar:sym<^>" :subid("66_1282323996.47527") :method
+.annotate 'line', 3
+ new $P230, "ResizablePMCArray"
+ push $P230, "^"
+ .return ($P230)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<^^>" :subid("67_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx234_tgt
+ .local int rx234_pos
+ .local int rx234_off
+ .local int rx234_eos
+ .local int rx234_rep
+ .local pmc rx234_cur
+ .local pmc rx234_debug
+ (rx234_cur, rx234_pos, rx234_tgt, $I10) = self."!cursor_start"()
+ getattribute rx234_debug, rx234_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx234_cur
+ .local pmc match
+ .lex "$/", match
+ length rx234_eos, rx234_tgt
+ gt rx234_pos, rx234_eos, rx234_done
+ set rx234_off, 0
+ lt rx234_pos, 2, rx234_start
+ sub rx234_off, rx234_pos, 1
+ substr rx234_tgt, rx234_tgt, rx234_off
+ rx234_start:
+ eq $I10, 1, rx234_restart
+ if_null rx234_debug, debug_274
+ rx234_cur."!cursor_debug"("START", "metachar:sym<^^>")
+ debug_274:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan237_done
+ goto rxscan237_scan
+ rxscan237_loop:
+ ($P10) = rx234_cur."from"()
+ inc $P10
+ set rx234_pos, $P10
+ ge rx234_pos, rx234_eos, rxscan237_done
+ rxscan237_scan:
+ set_addr $I10, rxscan237_loop
+ rx234_cur."!mark_push"(0, rx234_pos, $I10)
+ rxscan237_done:
+.annotate 'line', 90
# rx subcapture "sym"
- set_addr $I10, rxcap_229_fail
- rx225_cur."!mark_push"(0, rx225_pos, $I10)
+ set_addr $I10, rxcap_238_fail
+ rx234_cur."!mark_push"(0, rx234_pos, $I10)
# rx literal "^^"
- add $I11, rx225_pos, 2
- gt $I11, rx225_eos, rx225_fail
- sub $I11, rx225_pos, rx225_off
- substr $S10, rx225_tgt, $I11, 2
- ne $S10, "^^", rx225_fail
- add rx225_pos, 2
- set_addr $I10, rxcap_229_fail
- ($I12, $I11) = rx225_cur."!mark_peek"($I10)
- rx225_cur."!cursor_pos"($I11)
- ($P10) = rx225_cur."!cursor_start"()
- $P10."!cursor_pass"(rx225_pos, "")
- rx225_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx234_pos, 2
+ gt $I11, rx234_eos, rx234_fail
+ sub $I11, rx234_pos, rx234_off
+ substr $S10, rx234_tgt, $I11, 2
+ ne $S10, "^^", rx234_fail
+ add rx234_pos, 2
+ 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_229_done
- rxcap_229_fail:
- goto rx225_fail
- rxcap_229_done:
- # rx pass
- rx225_cur."!cursor_pass"(rx225_pos, "metachar:sym<^^>")
- rx225_cur."!cursor_debug"("PASS ", "metachar:sym<^^>", " at pos=", rx225_pos)
- .return (rx225_cur)
- rx225_restart:
-.annotate 'line', 3
- rx225_cur."!cursor_debug"("NEXT ", "metachar:sym<^^>")
- rx225_fail:
- (rx225_rep, rx225_pos, $I10, $P10) = rx225_cur."!mark_fail"(0)
- lt rx225_pos, -1, rx225_done
- eq rx225_pos, -1, rx225_fail
- jump $I10
- rx225_done:
- rx225_cur."!cursor_fail"()
- rx225_cur."!cursor_debug"("FAIL ", "metachar:sym<^^>")
- .return (rx225_cur)
+ goto rxcap_238_done
+ rxcap_238_fail:
+ goto rx234_fail
+ rxcap_238_done:
+ # rx pass
+ rx234_cur."!cursor_pass"(rx234_pos, "metachar:sym<^^>")
+ if_null rx234_debug, debug_275
+ rx234_cur."!cursor_debug"("PASS", "metachar:sym<^^>", " at pos=", rx234_pos)
+ debug_275:
+ .return (rx234_cur)
+ rx234_restart:
+.annotate 'line', 3
+ if_null rx234_debug, debug_276
+ rx234_cur."!cursor_debug"("NEXT", "metachar:sym<^^>")
+ debug_276:
+ rx234_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
+ rx234_done:
+ rx234_cur."!cursor_fail"()
+ if_null rx234_debug, debug_277
+ rx234_cur."!cursor_debug"("FAIL", "metachar:sym<^^>")
+ debug_277:
+ .return (rx234_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>" :subid("66_1280467470.54449") :method
-.annotate 'line', 3
- new $P227, "ResizablePMCArray"
- push $P227, "^^"
- .return ($P227)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>" :subid("67_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx231_tgt
- .local int rx231_pos
- .local int rx231_off
- .local int rx231_eos
- .local int rx231_rep
- .local pmc rx231_cur
- (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx231_cur
- .local pmc match
- .lex "$/", match
- length rx231_eos, rx231_tgt
- gt rx231_pos, rx231_eos, rx231_done
- set rx231_off, 0
- lt rx231_pos, 2, rx231_start
- sub rx231_off, rx231_pos, 1
- substr rx231_tgt, rx231_tgt, rx231_off
- rx231_start:
- eq $I10, 1, rx231_restart
- rx231_cur."!cursor_debug"("START ", "metachar:sym<$>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan234_done
- goto rxscan234_scan
- rxscan234_loop:
- ($P10) = rx231_cur."from"()
- inc $P10
- set rx231_pos, $P10
- ge rx231_pos, rx231_eos, rxscan234_done
- rxscan234_scan:
- set_addr $I10, rxscan234_loop
- rx231_cur."!mark_push"(0, rx231_pos, $I10)
- rxscan234_done:
-.annotate 'line', 84
+.sub "!PREFIX__metachar:sym<^^>" :subid("68_1282323996.47527") :method
+.annotate 'line', 3
+ new $P236, "ResizablePMCArray"
+ push $P236, "^^"
+ .return ($P236)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<$>" :subid("69_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx240_tgt
+ .local int rx240_pos
+ .local int rx240_off
+ .local int rx240_eos
+ .local int rx240_rep
+ .local pmc rx240_cur
+ .local pmc rx240_debug
+ (rx240_cur, rx240_pos, rx240_tgt, $I10) = self."!cursor_start"()
+ getattribute rx240_debug, rx240_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx240_cur
+ .local pmc match
+ .lex "$/", match
+ length rx240_eos, rx240_tgt
+ gt rx240_pos, rx240_eos, rx240_done
+ set rx240_off, 0
+ lt rx240_pos, 2, rx240_start
+ sub rx240_off, rx240_pos, 1
+ substr rx240_tgt, rx240_tgt, rx240_off
+ rx240_start:
+ eq $I10, 1, rx240_restart
+ if_null rx240_debug, debug_278
+ rx240_cur."!cursor_debug"("START", "metachar:sym<$>")
+ debug_278:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan243_done
+ goto rxscan243_scan
+ rxscan243_loop:
+ ($P10) = rx240_cur."from"()
+ inc $P10
+ set rx240_pos, $P10
+ ge rx240_pos, rx240_eos, rxscan243_done
+ rxscan243_scan:
+ set_addr $I10, rxscan243_loop
+ rx240_cur."!mark_push"(0, rx240_pos, $I10)
+ rxscan243_done:
+.annotate 'line', 91
# rx subcapture "sym"
- set_addr $I10, rxcap_235_fail
- rx231_cur."!mark_push"(0, rx231_pos, $I10)
+ set_addr $I10, rxcap_244_fail
+ rx240_cur."!mark_push"(0, rx240_pos, $I10)
# rx literal "$"
- add $I11, rx231_pos, 1
- gt $I11, rx231_eos, rx231_fail
- sub $I11, rx231_pos, rx231_off
- substr $S10, rx231_tgt, $I11, 1
- ne $S10, "$", rx231_fail
- add rx231_pos, 1
- set_addr $I10, rxcap_235_fail
- ($I12, $I11) = rx231_cur."!mark_peek"($I10)
- rx231_cur."!cursor_pos"($I11)
- ($P10) = rx231_cur."!cursor_start"()
- $P10."!cursor_pass"(rx231_pos, "")
- rx231_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx240_pos, 1
+ gt $I11, rx240_eos, rx240_fail
+ sub $I11, rx240_pos, rx240_off
+ ord $I11, rx240_tgt, $I11
+ ne $I11, 36, rx240_fail
+ add rx240_pos, 1
+ 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_235_done
- rxcap_235_fail:
- goto rx231_fail
- rxcap_235_done:
- # rx pass
- rx231_cur."!cursor_pass"(rx231_pos, "metachar:sym<$>")
- rx231_cur."!cursor_debug"("PASS ", "metachar:sym<$>", " at pos=", rx231_pos)
- .return (rx231_cur)
- rx231_restart:
-.annotate 'line', 3
- rx231_cur."!cursor_debug"("NEXT ", "metachar:sym<$>")
- rx231_fail:
- (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0)
- lt rx231_pos, -1, rx231_done
- eq rx231_pos, -1, rx231_fail
- jump $I10
- rx231_done:
- rx231_cur."!cursor_fail"()
- rx231_cur."!cursor_debug"("FAIL ", "metachar:sym<$>")
- .return (rx231_cur)
+ goto rxcap_244_done
+ rxcap_244_fail:
+ goto rx240_fail
+ rxcap_244_done:
+ # rx pass
+ rx240_cur."!cursor_pass"(rx240_pos, "metachar:sym<$>")
+ if_null rx240_debug, debug_279
+ rx240_cur."!cursor_debug"("PASS", "metachar:sym<$>", " at pos=", rx240_pos)
+ debug_279:
+ .return (rx240_cur)
+ rx240_restart:
+.annotate 'line', 3
+ if_null rx240_debug, debug_280
+ rx240_cur."!cursor_debug"("NEXT", "metachar:sym<$>")
+ debug_280:
+ rx240_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
+ rx240_done:
+ rx240_cur."!cursor_fail"()
+ if_null rx240_debug, debug_281
+ rx240_cur."!cursor_debug"("FAIL", "metachar:sym<$>")
+ debug_281:
+ .return (rx240_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>" :subid("68_1280467470.54449") :method
-.annotate 'line', 3
- new $P233, "ResizablePMCArray"
- push $P233, "$"
- .return ($P233)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>" :subid("69_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx237_tgt
- .local int rx237_pos
- .local int rx237_off
- .local int rx237_eos
- .local int rx237_rep
- .local pmc rx237_cur
- (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx237_cur
- .local pmc match
- .lex "$/", match
- length rx237_eos, rx237_tgt
- gt rx237_pos, rx237_eos, rx237_done
- set rx237_off, 0
- lt rx237_pos, 2, rx237_start
- sub rx237_off, rx237_pos, 1
- substr rx237_tgt, rx237_tgt, rx237_off
- rx237_start:
- eq $I10, 1, rx237_restart
- rx237_cur."!cursor_debug"("START ", "metachar:sym<$$>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan240_done
- goto rxscan240_scan
- rxscan240_loop:
- ($P10) = rx237_cur."from"()
- inc $P10
- set rx237_pos, $P10
- ge rx237_pos, rx237_eos, rxscan240_done
- rxscan240_scan:
- set_addr $I10, rxscan240_loop
- rx237_cur."!mark_push"(0, rx237_pos, $I10)
- rxscan240_done:
-.annotate 'line', 85
+.sub "!PREFIX__metachar:sym<$>" :subid("70_1282323996.47527") :method
+.annotate 'line', 3
+ new $P242, "ResizablePMCArray"
+ push $P242, "$"
+ .return ($P242)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<$$>" :subid("71_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx246_tgt
+ .local int rx246_pos
+ .local int rx246_off
+ .local int rx246_eos
+ .local int rx246_rep
+ .local pmc rx246_cur
+ .local pmc rx246_debug
+ (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
+ getattribute rx246_debug, rx246_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx246_cur
+ .local pmc match
+ .lex "$/", match
+ length rx246_eos, rx246_tgt
+ gt rx246_pos, rx246_eos, rx246_done
+ set rx246_off, 0
+ lt rx246_pos, 2, rx246_start
+ sub rx246_off, rx246_pos, 1
+ substr rx246_tgt, rx246_tgt, rx246_off
+ rx246_start:
+ eq $I10, 1, rx246_restart
+ if_null rx246_debug, debug_282
+ rx246_cur."!cursor_debug"("START", "metachar:sym<$$>")
+ debug_282:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan249_done
+ goto rxscan249_scan
+ rxscan249_loop:
+ ($P10) = rx246_cur."from"()
+ inc $P10
+ set rx246_pos, $P10
+ ge rx246_pos, rx246_eos, rxscan249_done
+ rxscan249_scan:
+ set_addr $I10, rxscan249_loop
+ rx246_cur."!mark_push"(0, rx246_pos, $I10)
+ rxscan249_done:
+.annotate 'line', 92
# rx subcapture "sym"
- set_addr $I10, rxcap_241_fail
- rx237_cur."!mark_push"(0, rx237_pos, $I10)
+ set_addr $I10, rxcap_250_fail
+ rx246_cur."!mark_push"(0, rx246_pos, $I10)
# rx literal "$$"
- add $I11, rx237_pos, 2
- gt $I11, rx237_eos, rx237_fail
- sub $I11, rx237_pos, rx237_off
- substr $S10, rx237_tgt, $I11, 2
- ne $S10, "$$", rx237_fail
- add rx237_pos, 2
- set_addr $I10, rxcap_241_fail
- ($I12, $I11) = rx237_cur."!mark_peek"($I10)
- rx237_cur."!cursor_pos"($I11)
- ($P10) = rx237_cur."!cursor_start"()
- $P10."!cursor_pass"(rx237_pos, "")
- rx237_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx246_pos, 2
+ gt $I11, rx246_eos, rx246_fail
+ sub $I11, rx246_pos, rx246_off
+ substr $S10, rx246_tgt, $I11, 2
+ ne $S10, "$$", rx246_fail
+ add rx246_pos, 2
+ set_addr $I10, rxcap_250_fail
+ ($I12, $I11) = rx246_cur."!mark_peek"($I10)
+ rx246_cur."!cursor_pos"($I11)
+ ($P10) = rx246_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx246_pos, "")
+ rx246_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_241_done
- rxcap_241_fail:
- goto rx237_fail
- rxcap_241_done:
+ goto rxcap_250_done
+ rxcap_250_fail:
+ goto rx246_fail
+ rxcap_250_done:
# rx pass
- rx237_cur."!cursor_pass"(rx237_pos, "metachar:sym<$$>")
- rx237_cur."!cursor_debug"("PASS ", "metachar:sym<$$>", " at pos=", rx237_pos)
- .return (rx237_cur)
- rx237_restart:
+ rx246_cur."!cursor_pass"(rx246_pos, "metachar:sym<$$>")
+ if_null rx246_debug, debug_283
+ rx246_cur."!cursor_debug"("PASS", "metachar:sym<$$>", " at pos=", rx246_pos)
+ debug_283:
+ .return (rx246_cur)
+ rx246_restart:
.annotate 'line', 3
- rx237_cur."!cursor_debug"("NEXT ", "metachar:sym<$$>")
- rx237_fail:
- (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
- lt rx237_pos, -1, rx237_done
- eq rx237_pos, -1, rx237_fail
+ if_null rx246_debug, debug_284
+ rx246_cur."!cursor_debug"("NEXT", "metachar:sym<$$>")
+ debug_284:
+ rx246_fail:
+ (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
+ lt rx246_pos, -1, rx246_done
+ eq rx246_pos, -1, rx246_fail
jump $I10
- rx237_done:
- rx237_cur."!cursor_fail"()
- rx237_cur."!cursor_debug"("FAIL ", "metachar:sym<$$>")
- .return (rx237_cur)
+ rx246_done:
+ rx246_cur."!cursor_fail"()
+ if_null rx246_debug, debug_285
+ rx246_cur."!cursor_debug"("FAIL", "metachar:sym<$$>")
+ debug_285:
+ .return (rx246_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>" :subid("70_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<$$>" :subid("72_1282323996.47527") :method
.annotate 'line', 3
- new $P239, "ResizablePMCArray"
- push $P239, "$$"
- .return ($P239)
+ new $P248, "ResizablePMCArray"
+ push $P248, "$$"
+ .return ($P248)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>" :subid("71_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<:::>" :subid("73_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
- .local string rx243_tgt
- .local int rx243_pos
- .local int rx243_off
- .local int rx243_eos
- .local int rx243_rep
- .local pmc rx243_cur
- (rx243_cur, rx243_pos, rx243_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx243_cur
- .local pmc match
- .lex "$/", match
- length rx243_eos, rx243_tgt
- gt rx243_pos, rx243_eos, rx243_done
- set rx243_off, 0
- lt rx243_pos, 2, rx243_start
- sub rx243_off, rx243_pos, 1
- substr rx243_tgt, rx243_tgt, rx243_off
- rx243_start:
- eq $I10, 1, rx243_restart
- rx243_cur."!cursor_debug"("START ", "metachar:sym<:::>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan247_done
- goto rxscan247_scan
- rxscan247_loop:
- ($P10) = rx243_cur."from"()
- inc $P10
- set rx243_pos, $P10
- ge rx243_pos, rx243_eos, rxscan247_done
- rxscan247_scan:
- set_addr $I10, rxscan247_loop
- rx243_cur."!mark_push"(0, rx243_pos, $I10)
- rxscan247_done:
-.annotate 'line', 86
+ .local string rx252_tgt
+ .local int rx252_pos
+ .local int rx252_off
+ .local int rx252_eos
+ .local int rx252_rep
+ .local pmc rx252_cur
+ .local pmc rx252_debug
+ (rx252_cur, rx252_pos, rx252_tgt, $I10) = self."!cursor_start"()
+ getattribute rx252_debug, rx252_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx252_cur
+ .local pmc match
+ .lex "$/", match
+ length rx252_eos, rx252_tgt
+ gt rx252_pos, rx252_eos, rx252_done
+ set rx252_off, 0
+ lt rx252_pos, 2, rx252_start
+ sub rx252_off, rx252_pos, 1
+ substr rx252_tgt, rx252_tgt, rx252_off
+ rx252_start:
+ eq $I10, 1, rx252_restart
+ if_null rx252_debug, debug_286
+ rx252_cur."!cursor_debug"("START", "metachar:sym<:::>")
+ debug_286:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan256_done
+ goto rxscan256_scan
+ rxscan256_loop:
+ ($P10) = rx252_cur."from"()
+ inc $P10
+ set rx252_pos, $P10
+ ge rx252_pos, rx252_eos, rxscan256_done
+ rxscan256_scan:
+ set_addr $I10, rxscan256_loop
+ rx252_cur."!mark_push"(0, rx252_pos, $I10)
+ rxscan256_done:
+.annotate 'line', 93
# rx subcapture "sym"
- set_addr $I10, rxcap_248_fail
- rx243_cur."!mark_push"(0, rx243_pos, $I10)
+ set_addr $I10, rxcap_257_fail
+ rx252_cur."!mark_push"(0, rx252_pos, $I10)
# rx literal ":::"
- add $I11, rx243_pos, 3
- gt $I11, rx243_eos, rx243_fail
- sub $I11, rx243_pos, rx243_off
- substr $S10, rx243_tgt, $I11, 3
- ne $S10, ":::", rx243_fail
- add rx243_pos, 3
- set_addr $I10, rxcap_248_fail
- ($I12, $I11) = rx243_cur."!mark_peek"($I10)
- rx243_cur."!cursor_pos"($I11)
- ($P10) = rx243_cur."!cursor_start"()
- $P10."!cursor_pass"(rx243_pos, "")
- rx243_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx252_pos, 3
+ gt $I11, rx252_eos, rx252_fail
+ sub $I11, rx252_pos, rx252_off
+ substr $S10, rx252_tgt, $I11, 3
+ ne $S10, ":::", rx252_fail
+ add rx252_pos, 3
+ set_addr $I10, rxcap_257_fail
+ ($I12, $I11) = rx252_cur."!mark_peek"($I10)
+ rx252_cur."!cursor_pos"($I11)
+ ($P10) = rx252_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx252_pos, "")
+ rx252_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_248_done
- rxcap_248_fail:
- goto rx243_fail
- rxcap_248_done:
+ goto rxcap_257_done
+ rxcap_257_fail:
+ goto rx252_fail
+ rxcap_257_done:
# rx subrule "panic" subtype=method negate=
- rx243_cur."!cursor_pos"(rx243_pos)
- $P10 = rx243_cur."panic"("::: not yet implemented")
- unless $P10, rx243_fail
- rx243_pos = $P10."pos"()
- # rx pass
- rx243_cur."!cursor_pass"(rx243_pos, "metachar:sym<:::>")
- rx243_cur."!cursor_debug"("PASS ", "metachar:sym<:::>", " at pos=", rx243_pos)
- .return (rx243_cur)
- rx243_restart:
-.annotate 'line', 3
- rx243_cur."!cursor_debug"("NEXT ", "metachar:sym<:::>")
- rx243_fail:
- (rx243_rep, rx243_pos, $I10, $P10) = rx243_cur."!mark_fail"(0)
- lt rx243_pos, -1, rx243_done
- eq rx243_pos, -1, rx243_fail
- jump $I10
- rx243_done:
- rx243_cur."!cursor_fail"()
- rx243_cur."!cursor_debug"("FAIL ", "metachar:sym<:::>")
- .return (rx243_cur)
+ rx252_cur."!cursor_pos"(rx252_pos)
+ $P10 = rx252_cur."panic"("::: not yet implemented")
+ unless $P10, rx252_fail
+ rx252_pos = $P10."pos"()
+ # rx pass
+ rx252_cur."!cursor_pass"(rx252_pos, "metachar:sym<:::>")
+ if_null rx252_debug, debug_287
+ rx252_cur."!cursor_debug"("PASS", "metachar:sym<:::>", " at pos=", rx252_pos)
+ debug_287:
+ .return (rx252_cur)
+ rx252_restart:
+.annotate 'line', 3
+ if_null rx252_debug, debug_288
+ rx252_cur."!cursor_debug"("NEXT", "metachar:sym<:::>")
+ debug_288:
+ rx252_fail:
+ (rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0)
+ lt rx252_pos, -1, rx252_done
+ eq rx252_pos, -1, rx252_fail
+ jump $I10
+ rx252_done:
+ rx252_cur."!cursor_fail"()
+ if_null rx252_debug, debug_289
+ rx252_cur."!cursor_debug"("FAIL", "metachar:sym<:::>")
+ debug_289:
+ .return (rx252_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>" :subid("72_1280467470.54449") :method
-.annotate 'line', 3
- $P245 = self."!PREFIX__!subrule"("panic", ":::")
- new $P246, "ResizablePMCArray"
- push $P246, $P245
- .return ($P246)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>" :subid("73_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx250_tgt
- .local int rx250_pos
- .local int rx250_off
- .local int rx250_eos
- .local int rx250_rep
- .local pmc rx250_cur
- (rx250_cur, rx250_pos, rx250_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx250_cur
- .local pmc match
- .lex "$/", match
- length rx250_eos, rx250_tgt
- gt rx250_pos, rx250_eos, rx250_done
- set rx250_off, 0
- lt rx250_pos, 2, rx250_start
- sub rx250_off, rx250_pos, 1
- substr rx250_tgt, rx250_tgt, rx250_off
- rx250_start:
- eq $I10, 1, rx250_restart
- rx250_cur."!cursor_debug"("START ", "metachar:sym<::>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan254_done
- goto rxscan254_scan
- rxscan254_loop:
- ($P10) = rx250_cur."from"()
- inc $P10
- set rx250_pos, $P10
- ge rx250_pos, rx250_eos, rxscan254_done
- rxscan254_scan:
- set_addr $I10, rxscan254_loop
- rx250_cur."!mark_push"(0, rx250_pos, $I10)
- rxscan254_done:
-.annotate 'line', 87
+.sub "!PREFIX__metachar:sym<:::>" :subid("74_1282323996.47527") :method
+.annotate 'line', 3
+ $P254 = self."!PREFIX__!subrule"("panic", ":::")
+ new $P255, "ResizablePMCArray"
+ push $P255, $P254
+ .return ($P255)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<::>" :subid("75_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx259_tgt
+ .local int rx259_pos
+ .local int rx259_off
+ .local int rx259_eos
+ .local int rx259_rep
+ .local pmc rx259_cur
+ .local pmc rx259_debug
+ (rx259_cur, rx259_pos, rx259_tgt, $I10) = self."!cursor_start"()
+ getattribute rx259_debug, rx259_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx259_cur
+ .local pmc match
+ .lex "$/", match
+ length rx259_eos, rx259_tgt
+ gt rx259_pos, rx259_eos, rx259_done
+ set rx259_off, 0
+ lt rx259_pos, 2, rx259_start
+ sub rx259_off, rx259_pos, 1
+ substr rx259_tgt, rx259_tgt, rx259_off
+ rx259_start:
+ eq $I10, 1, rx259_restart
+ if_null rx259_debug, debug_290
+ rx259_cur."!cursor_debug"("START", "metachar:sym<::>")
+ debug_290:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan263_done
+ goto rxscan263_scan
+ rxscan263_loop:
+ ($P10) = rx259_cur."from"()
+ inc $P10
+ set rx259_pos, $P10
+ ge rx259_pos, rx259_eos, rxscan263_done
+ rxscan263_scan:
+ set_addr $I10, rxscan263_loop
+ rx259_cur."!mark_push"(0, rx259_pos, $I10)
+ rxscan263_done:
+.annotate 'line', 94
# rx subcapture "sym"
- set_addr $I10, rxcap_255_fail
- rx250_cur."!mark_push"(0, rx250_pos, $I10)
+ set_addr $I10, rxcap_264_fail
+ rx259_cur."!mark_push"(0, rx259_pos, $I10)
# rx literal "::"
- add $I11, rx250_pos, 2
- gt $I11, rx250_eos, rx250_fail
- sub $I11, rx250_pos, rx250_off
- substr $S10, rx250_tgt, $I11, 2
- ne $S10, "::", rx250_fail
- add rx250_pos, 2
- set_addr $I10, rxcap_255_fail
- ($I12, $I11) = rx250_cur."!mark_peek"($I10)
- rx250_cur."!cursor_pos"($I11)
- ($P10) = rx250_cur."!cursor_start"()
- $P10."!cursor_pass"(rx250_pos, "")
- rx250_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx259_pos, 2
+ gt $I11, rx259_eos, rx259_fail
+ sub $I11, rx259_pos, rx259_off
+ substr $S10, rx259_tgt, $I11, 2
+ ne $S10, "::", rx259_fail
+ add rx259_pos, 2
+ set_addr $I10, rxcap_264_fail
+ ($I12, $I11) = rx259_cur."!mark_peek"($I10)
+ rx259_cur."!cursor_pos"($I11)
+ ($P10) = rx259_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx259_pos, "")
+ rx259_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_255_done
- rxcap_255_fail:
- goto rx250_fail
- rxcap_255_done:
+ goto rxcap_264_done
+ rxcap_264_fail:
+ goto rx259_fail
+ rxcap_264_done:
# rx subrule "panic" subtype=method negate=
- rx250_cur."!cursor_pos"(rx250_pos)
- $P10 = rx250_cur."panic"(":: not yet implemented")
- unless $P10, rx250_fail
- rx250_pos = $P10."pos"()
- # rx pass
- rx250_cur."!cursor_pass"(rx250_pos, "metachar:sym<::>")
- rx250_cur."!cursor_debug"("PASS ", "metachar:sym<::>", " at pos=", rx250_pos)
- .return (rx250_cur)
- rx250_restart:
-.annotate 'line', 3
- rx250_cur."!cursor_debug"("NEXT ", "metachar:sym<::>")
- rx250_fail:
- (rx250_rep, rx250_pos, $I10, $P10) = rx250_cur."!mark_fail"(0)
- lt rx250_pos, -1, rx250_done
- eq rx250_pos, -1, rx250_fail
- jump $I10
- rx250_done:
- rx250_cur."!cursor_fail"()
- rx250_cur."!cursor_debug"("FAIL ", "metachar:sym<::>")
- .return (rx250_cur)
+ rx259_cur."!cursor_pos"(rx259_pos)
+ $P10 = rx259_cur."panic"(":: not yet implemented")
+ unless $P10, rx259_fail
+ rx259_pos = $P10."pos"()
+ # rx pass
+ rx259_cur."!cursor_pass"(rx259_pos, "metachar:sym<::>")
+ if_null rx259_debug, debug_291
+ rx259_cur."!cursor_debug"("PASS", "metachar:sym<::>", " at pos=", rx259_pos)
+ debug_291:
+ .return (rx259_cur)
+ rx259_restart:
+.annotate 'line', 3
+ if_null rx259_debug, debug_292
+ rx259_cur."!cursor_debug"("NEXT", "metachar:sym<::>")
+ debug_292:
+ rx259_fail:
+ (rx259_rep, rx259_pos, $I10, $P10) = rx259_cur."!mark_fail"(0)
+ lt rx259_pos, -1, rx259_done
+ eq rx259_pos, -1, rx259_fail
+ jump $I10
+ rx259_done:
+ rx259_cur."!cursor_fail"()
+ if_null rx259_debug, debug_293
+ rx259_cur."!cursor_debug"("FAIL", "metachar:sym<::>")
+ debug_293:
+ .return (rx259_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>" :subid("74_1280467470.54449") :method
-.annotate 'line', 3
- $P252 = self."!PREFIX__!subrule"("panic", "::")
- new $P253, "ResizablePMCArray"
- push $P253, $P252
- .return ($P253)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>" :subid("75_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx257_tgt
- .local int rx257_pos
- .local int rx257_off
- .local int rx257_eos
- .local int rx257_rep
- .local pmc rx257_cur
- (rx257_cur, rx257_pos, rx257_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx257_cur
- .local pmc match
- .lex "$/", match
- length rx257_eos, rx257_tgt
- gt rx257_pos, rx257_eos, rx257_done
- set rx257_off, 0
- lt rx257_pos, 2, rx257_start
- sub rx257_off, rx257_pos, 1
- substr rx257_tgt, rx257_tgt, rx257_off
- rx257_start:
- eq $I10, 1, rx257_restart
- rx257_cur."!cursor_debug"("START ", "metachar:sym<lwb>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan260_done
- goto rxscan260_scan
- rxscan260_loop:
- ($P10) = rx257_cur."from"()
- inc $P10
- set rx257_pos, $P10
- ge rx257_pos, rx257_eos, rxscan260_done
- rxscan260_scan:
- set_addr $I10, rxscan260_loop
- rx257_cur."!mark_push"(0, rx257_pos, $I10)
- rxscan260_done:
-.annotate 'line', 88
+.sub "!PREFIX__metachar:sym<::>" :subid("76_1282323996.47527") :method
+.annotate 'line', 3
+ $P261 = self."!PREFIX__!subrule"("panic", "::")
+ new $P262, "ResizablePMCArray"
+ push $P262, $P261
+ .return ($P262)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<lwb>" :subid("77_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx266_tgt
+ .local int rx266_pos
+ .local int rx266_off
+ .local int rx266_eos
+ .local int rx266_rep
+ .local pmc rx266_cur
+ .local pmc rx266_debug
+ (rx266_cur, rx266_pos, rx266_tgt, $I10) = self."!cursor_start"()
+ getattribute rx266_debug, rx266_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx266_cur
+ .local pmc match
+ .lex "$/", match
+ length rx266_eos, rx266_tgt
+ gt rx266_pos, rx266_eos, rx266_done
+ set rx266_off, 0
+ lt rx266_pos, 2, rx266_start
+ sub rx266_off, rx266_pos, 1
+ substr rx266_tgt, rx266_tgt, rx266_off
+ rx266_start:
+ eq $I10, 1, rx266_restart
+ if_null rx266_debug, debug_294
+ rx266_cur."!cursor_debug"("START", "metachar:sym<lwb>")
+ debug_294:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan269_done
+ goto rxscan269_scan
+ rxscan269_loop:
+ ($P10) = rx266_cur."from"()
+ inc $P10
+ set rx266_pos, $P10
+ ge rx266_pos, rx266_eos, rxscan269_done
+ rxscan269_scan:
+ set_addr $I10, rxscan269_loop
+ rx266_cur."!mark_push"(0, rx266_pos, $I10)
+ rxscan269_done:
+.annotate 'line', 95
# rx subcapture "sym"
- set_addr $I10, rxcap_262_fail
- rx257_cur."!mark_push"(0, rx257_pos, $I10)
- alt261_0:
- set_addr $I10, alt261_1
- rx257_cur."!mark_push"(0, rx257_pos, $I10)
+ set_addr $I10, rxcap_271_fail
+ rx266_cur."!mark_push"(0, rx266_pos, $I10)
+ alt270_0:
+ set_addr $I10, alt270_1
+ rx266_cur."!mark_push"(0, rx266_pos, $I10)
# rx literal "<<"
- add $I11, rx257_pos, 2
- gt $I11, rx257_eos, rx257_fail
- sub $I11, rx257_pos, rx257_off
- substr $S10, rx257_tgt, $I11, 2
- ne $S10, "<<", rx257_fail
- add rx257_pos, 2
- goto alt261_end
- alt261_1:
+ 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, "<<", rx266_fail
+ add rx266_pos, 2
+ goto alt270_end
+ alt270_1:
# rx literal unicode:"\x{ab}"
- add $I11, rx257_pos, 1
- gt $I11, rx257_eos, rx257_fail
- sub $I11, rx257_pos, rx257_off
- substr $S10, rx257_tgt, $I11, 1
- ne $S10, unicode:"\x{ab}", rx257_fail
- add rx257_pos, 1
- alt261_end:
- set_addr $I10, rxcap_262_fail
- ($I12, $I11) = rx257_cur."!mark_peek"($I10)
- rx257_cur."!cursor_pos"($I11)
- ($P10) = rx257_cur."!cursor_start"()
- $P10."!cursor_pass"(rx257_pos, "")
- rx257_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx266_pos, 1
+ gt $I11, rx266_eos, rx266_fail
+ sub $I11, rx266_pos, rx266_off
+ ord $I11, rx266_tgt, $I11
+ ne $I11, 171, rx266_fail
+ add rx266_pos, 1
+ alt270_end:
+ set_addr $I10, rxcap_271_fail
+ ($I12, $I11) = rx266_cur."!mark_peek"($I10)
+ rx266_cur."!cursor_pos"($I11)
+ ($P10) = rx266_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx266_pos, "")
+ rx266_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_262_done
- rxcap_262_fail:
- goto rx257_fail
- rxcap_262_done:
- # rx pass
- rx257_cur."!cursor_pass"(rx257_pos, "metachar:sym<lwb>")
- rx257_cur."!cursor_debug"("PASS ", "metachar:sym<lwb>", " at pos=", rx257_pos)
- .return (rx257_cur)
- rx257_restart:
-.annotate 'line', 3
- rx257_cur."!cursor_debug"("NEXT ", "metachar:sym<lwb>")
- rx257_fail:
- (rx257_rep, rx257_pos, $I10, $P10) = rx257_cur."!mark_fail"(0)
- lt rx257_pos, -1, rx257_done
- eq rx257_pos, -1, rx257_fail
- jump $I10
- rx257_done:
- rx257_cur."!cursor_fail"()
- rx257_cur."!cursor_debug"("FAIL ", "metachar:sym<lwb>")
- .return (rx257_cur)
+ goto rxcap_271_done
+ rxcap_271_fail:
+ goto rx266_fail
+ rxcap_271_done:
+ # rx pass
+ rx266_cur."!cursor_pass"(rx266_pos, "metachar:sym<lwb>")
+ if_null rx266_debug, debug_295
+ rx266_cur."!cursor_debug"("PASS", "metachar:sym<lwb>", " at pos=", rx266_pos)
+ debug_295:
+ .return (rx266_cur)
+ rx266_restart:
+.annotate 'line', 3
+ if_null rx266_debug, debug_296
+ rx266_cur."!cursor_debug"("NEXT", "metachar:sym<lwb>")
+ debug_296:
+ rx266_fail:
+ (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
+ rx266_done:
+ rx266_cur."!cursor_fail"()
+ if_null rx266_debug, debug_297
+ rx266_cur."!cursor_debug"("FAIL", "metachar:sym<lwb>")
+ debug_297:
+ .return (rx266_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>" :subid("76_1280467470.54449") :method
-.annotate 'line', 3
- new $P259, "ResizablePMCArray"
- push $P259, unicode:"\x{ab}"
- push $P259, "<<"
- .return ($P259)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>" :subid("77_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx264_tgt
- .local int rx264_pos
- .local int rx264_off
- .local int rx264_eos
- .local int rx264_rep
- .local pmc rx264_cur
- (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx264_cur
- .local pmc match
- .lex "$/", match
- length rx264_eos, rx264_tgt
- gt rx264_pos, rx264_eos, rx264_done
- set rx264_off, 0
- lt rx264_pos, 2, rx264_start
- sub rx264_off, rx264_pos, 1
- substr rx264_tgt, rx264_tgt, rx264_off
- rx264_start:
- eq $I10, 1, rx264_restart
- rx264_cur."!cursor_debug"("START ", "metachar:sym<rwb>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan267_done
- goto rxscan267_scan
- rxscan267_loop:
- ($P10) = rx264_cur."from"()
- inc $P10
- set rx264_pos, $P10
- ge rx264_pos, rx264_eos, rxscan267_done
- rxscan267_scan:
- set_addr $I10, rxscan267_loop
- rx264_cur."!mark_push"(0, rx264_pos, $I10)
- rxscan267_done:
-.annotate 'line', 89
+.sub "!PREFIX__metachar:sym<lwb>" :subid("78_1282323996.47527") :method
+.annotate 'line', 3
+ new $P268, "ResizablePMCArray"
+ push $P268, unicode:"\x{ab}"
+ push $P268, "<<"
+ .return ($P268)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<rwb>" :subid("79_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx273_tgt
+ .local int rx273_pos
+ .local int rx273_off
+ .local int rx273_eos
+ .local int rx273_rep
+ .local pmc rx273_cur
+ .local pmc rx273_debug
+ (rx273_cur, rx273_pos, rx273_tgt, $I10) = self."!cursor_start"()
+ getattribute rx273_debug, rx273_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx273_cur
+ .local pmc match
+ .lex "$/", match
+ length rx273_eos, rx273_tgt
+ gt rx273_pos, rx273_eos, rx273_done
+ set rx273_off, 0
+ lt rx273_pos, 2, rx273_start
+ sub rx273_off, rx273_pos, 1
+ substr rx273_tgt, rx273_tgt, rx273_off
+ rx273_start:
+ eq $I10, 1, rx273_restart
+ if_null rx273_debug, debug_298
+ rx273_cur."!cursor_debug"("START", "metachar:sym<rwb>")
+ debug_298:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan276_done
+ goto rxscan276_scan
+ rxscan276_loop:
+ ($P10) = rx273_cur."from"()
+ inc $P10
+ set rx273_pos, $P10
+ ge rx273_pos, rx273_eos, rxscan276_done
+ rxscan276_scan:
+ set_addr $I10, rxscan276_loop
+ rx273_cur."!mark_push"(0, rx273_pos, $I10)
+ rxscan276_done:
+.annotate 'line', 96
# rx subcapture "sym"
- set_addr $I10, rxcap_269_fail
- rx264_cur."!mark_push"(0, rx264_pos, $I10)
- alt268_0:
- set_addr $I10, alt268_1
- rx264_cur."!mark_push"(0, rx264_pos, $I10)
+ set_addr $I10, rxcap_278_fail
+ rx273_cur."!mark_push"(0, rx273_pos, $I10)
+ alt277_0:
+ set_addr $I10, alt277_1
+ rx273_cur."!mark_push"(0, rx273_pos, $I10)
# rx literal ">>"
- add $I11, rx264_pos, 2
- gt $I11, rx264_eos, rx264_fail
- sub $I11, rx264_pos, rx264_off
- substr $S10, rx264_tgt, $I11, 2
- ne $S10, ">>", rx264_fail
- add rx264_pos, 2
- goto alt268_end
- alt268_1:
+ add $I11, rx273_pos, 2
+ gt $I11, rx273_eos, rx273_fail
+ sub $I11, rx273_pos, rx273_off
+ substr $S10, rx273_tgt, $I11, 2
+ ne $S10, ">>", rx273_fail
+ add rx273_pos, 2
+ goto alt277_end
+ alt277_1:
# rx literal unicode:"\x{bb}"
- add $I11, rx264_pos, 1
- gt $I11, rx264_eos, rx264_fail
- sub $I11, rx264_pos, rx264_off
- substr $S10, rx264_tgt, $I11, 1
- ne $S10, unicode:"\x{bb}", rx264_fail
- add rx264_pos, 1
- alt268_end:
- set_addr $I10, rxcap_269_fail
- ($I12, $I11) = rx264_cur."!mark_peek"($I10)
- rx264_cur."!cursor_pos"($I11)
- ($P10) = rx264_cur."!cursor_start"()
- $P10."!cursor_pass"(rx264_pos, "")
- rx264_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx273_pos, 1
+ gt $I11, rx273_eos, rx273_fail
+ sub $I11, rx273_pos, rx273_off
+ ord $I11, rx273_tgt, $I11
+ ne $I11, 187, rx273_fail
+ add rx273_pos, 1
+ alt277_end:
+ set_addr $I10, rxcap_278_fail
+ ($I12, $I11) = rx273_cur."!mark_peek"($I10)
+ rx273_cur."!cursor_pos"($I11)
+ ($P10) = rx273_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx273_pos, "")
+ rx273_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_269_done
- rxcap_269_fail:
- goto rx264_fail
- rxcap_269_done:
- # rx pass
- rx264_cur."!cursor_pass"(rx264_pos, "metachar:sym<rwb>")
- rx264_cur."!cursor_debug"("PASS ", "metachar:sym<rwb>", " at pos=", rx264_pos)
- .return (rx264_cur)
- rx264_restart:
-.annotate 'line', 3
- rx264_cur."!cursor_debug"("NEXT ", "metachar:sym<rwb>")
- rx264_fail:
- (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0)
- lt rx264_pos, -1, rx264_done
- eq rx264_pos, -1, rx264_fail
- jump $I10
- rx264_done:
- rx264_cur."!cursor_fail"()
- rx264_cur."!cursor_debug"("FAIL ", "metachar:sym<rwb>")
- .return (rx264_cur)
+ goto rxcap_278_done
+ rxcap_278_fail:
+ goto rx273_fail
+ rxcap_278_done:
+ # rx pass
+ rx273_cur."!cursor_pass"(rx273_pos, "metachar:sym<rwb>")
+ if_null rx273_debug, debug_299
+ rx273_cur."!cursor_debug"("PASS", "metachar:sym<rwb>", " at pos=", rx273_pos)
+ debug_299:
+ .return (rx273_cur)
+ rx273_restart:
+.annotate 'line', 3
+ if_null rx273_debug, debug_300
+ rx273_cur."!cursor_debug"("NEXT", "metachar:sym<rwb>")
+ debug_300:
+ rx273_fail:
+ (rx273_rep, rx273_pos, $I10, $P10) = rx273_cur."!mark_fail"(0)
+ lt rx273_pos, -1, rx273_done
+ eq rx273_pos, -1, rx273_fail
+ jump $I10
+ rx273_done:
+ rx273_cur."!cursor_fail"()
+ if_null rx273_debug, debug_301
+ rx273_cur."!cursor_debug"("FAIL", "metachar:sym<rwb>")
+ debug_301:
+ .return (rx273_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>" :subid("78_1280467470.54449") :method
-.annotate 'line', 3
- new $P266, "ResizablePMCArray"
- push $P266, unicode:"\x{bb}"
- push $P266, ">>"
- .return ($P266)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>" :subid("79_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx271_tgt
- .local int rx271_pos
- .local int rx271_off
- .local int rx271_eos
- .local int rx271_rep
- .local pmc rx271_cur
- (rx271_cur, rx271_pos, rx271_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx271_cur
- .local pmc match
- .lex "$/", match
- length rx271_eos, rx271_tgt
- gt rx271_pos, rx271_eos, rx271_done
- set rx271_off, 0
- lt rx271_pos, 2, rx271_start
- sub rx271_off, rx271_pos, 1
- substr rx271_tgt, rx271_tgt, rx271_off
- rx271_start:
- eq $I10, 1, rx271_restart
- rx271_cur."!cursor_debug"("START ", "metachar:sym<bs>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan275_done
- goto rxscan275_scan
- rxscan275_loop:
- ($P10) = rx271_cur."from"()
- inc $P10
- set rx271_pos, $P10
- ge rx271_pos, rx271_eos, rxscan275_done
- rxscan275_scan:
- set_addr $I10, rxscan275_loop
- rx271_cur."!mark_push"(0, rx271_pos, $I10)
- rxscan275_done:
-.annotate 'line', 90
+.sub "!PREFIX__metachar:sym<rwb>" :subid("80_1282323996.47527") :method
+.annotate 'line', 3
+ new $P275, "ResizablePMCArray"
+ push $P275, unicode:"\x{bb}"
+ push $P275, ">>"
+ .return ($P275)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<bs>" :subid("81_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx280_tgt
+ .local int rx280_pos
+ .local int rx280_off
+ .local int rx280_eos
+ .local int rx280_rep
+ .local pmc rx280_cur
+ .local pmc rx280_debug
+ (rx280_cur, rx280_pos, rx280_tgt, $I10) = self."!cursor_start"()
+ getattribute rx280_debug, rx280_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx280_cur
+ .local pmc match
+ .lex "$/", match
+ length rx280_eos, rx280_tgt
+ gt rx280_pos, rx280_eos, rx280_done
+ set rx280_off, 0
+ lt rx280_pos, 2, rx280_start
+ sub rx280_off, rx280_pos, 1
+ substr rx280_tgt, rx280_tgt, rx280_off
+ rx280_start:
+ eq $I10, 1, rx280_restart
+ if_null rx280_debug, debug_302
+ rx280_cur."!cursor_debug"("START", "metachar:sym<bs>")
+ debug_302:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan284_done
+ goto rxscan284_scan
+ rxscan284_loop:
+ ($P10) = rx280_cur."from"()
+ inc $P10
+ set rx280_pos, $P10
+ ge rx280_pos, rx280_eos, rxscan284_done
+ rxscan284_scan:
+ set_addr $I10, rxscan284_loop
+ rx280_cur."!mark_push"(0, rx280_pos, $I10)
+ rxscan284_done:
+.annotate 'line', 97
# rx literal "\\"
- add $I11, rx271_pos, 1
- gt $I11, rx271_eos, rx271_fail
- sub $I11, rx271_pos, rx271_off
- substr $S10, rx271_tgt, $I11, 1
- ne $S10, "\\", rx271_fail
- add rx271_pos, 1
+ add $I11, rx280_pos, 1
+ gt $I11, rx280_eos, rx280_fail
+ sub $I11, rx280_pos, rx280_off
+ ord $I11, rx280_tgt, $I11
+ ne $I11, 92, rx280_fail
+ add rx280_pos, 1
# rx subrule "backslash" subtype=capture negate=
- rx271_cur."!cursor_pos"(rx271_pos)
- $P10 = rx271_cur."backslash"()
- unless $P10, rx271_fail
- rx271_cur."!mark_push"(0, -1, 0, $P10)
+ rx280_cur."!cursor_pos"(rx280_pos)
+ $P10 = rx280_cur."backslash"()
+ unless $P10, rx280_fail
+ rx280_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backslash")
- rx271_pos = $P10."pos"()
+ rx280_pos = $P10."pos"()
# rx pass
- rx271_cur."!cursor_pass"(rx271_pos, "metachar:sym<bs>")
- rx271_cur."!cursor_debug"("PASS ", "metachar:sym<bs>", " at pos=", rx271_pos)
- .return (rx271_cur)
- rx271_restart:
-.annotate 'line', 3
- rx271_cur."!cursor_debug"("NEXT ", "metachar:sym<bs>")
- rx271_fail:
- (rx271_rep, rx271_pos, $I10, $P10) = rx271_cur."!mark_fail"(0)
- lt rx271_pos, -1, rx271_done
- eq rx271_pos, -1, rx271_fail
- jump $I10
- rx271_done:
- rx271_cur."!cursor_fail"()
- rx271_cur."!cursor_debug"("FAIL ", "metachar:sym<bs>")
- .return (rx271_cur)
+ rx280_cur."!cursor_pass"(rx280_pos, "metachar:sym<bs>")
+ if_null rx280_debug, debug_303
+ rx280_cur."!cursor_debug"("PASS", "metachar:sym<bs>", " at pos=", rx280_pos)
+ debug_303:
+ .return (rx280_cur)
+ rx280_restart:
+.annotate 'line', 3
+ if_null rx280_debug, debug_304
+ rx280_cur."!cursor_debug"("NEXT", "metachar:sym<bs>")
+ debug_304:
+ rx280_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
+ rx280_done:
+ rx280_cur."!cursor_fail"()
+ if_null rx280_debug, debug_305
+ rx280_cur."!cursor_debug"("FAIL", "metachar:sym<bs>")
+ debug_305:
+ .return (rx280_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>" :subid("80_1280467470.54449") :method
-.annotate 'line', 3
- $P273 = self."!PREFIX__!subrule"("backslash", "\\")
- new $P274, "ResizablePMCArray"
- push $P274, $P273
- .return ($P274)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>" :subid("81_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .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, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx277_cur
- .local pmc match
- .lex "$/", match
- length rx277_eos, rx277_tgt
- gt rx277_pos, rx277_eos, rx277_done
- set rx277_off, 0
- lt rx277_pos, 2, rx277_start
- sub rx277_off, rx277_pos, 1
- substr rx277_tgt, rx277_tgt, rx277_off
- rx277_start:
- eq $I10, 1, rx277_restart
- rx277_cur."!cursor_debug"("START ", "metachar:sym<mod>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan281_done
- goto rxscan281_scan
- rxscan281_loop:
- ($P10) = rx277_cur."from"()
- inc $P10
- set rx277_pos, $P10
- ge rx277_pos, rx277_eos, rxscan281_done
- rxscan281_scan:
- set_addr $I10, rxscan281_loop
- rx277_cur."!mark_push"(0, rx277_pos, $I10)
- rxscan281_done:
-.annotate 'line', 91
+.sub "!PREFIX__metachar:sym<bs>" :subid("82_1282323996.47527") :method
+.annotate 'line', 3
+ $P282 = self."!PREFIX__!subrule"("backslash", "\\")
+ new $P283, "ResizablePMCArray"
+ push $P283, $P282
+ .return ($P283)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<mod>" :subid("83_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx286_tgt
+ .local int rx286_pos
+ .local int rx286_off
+ .local int rx286_eos
+ .local int rx286_rep
+ .local pmc rx286_cur
+ .local pmc rx286_debug
+ (rx286_cur, rx286_pos, rx286_tgt, $I10) = self."!cursor_start"()
+ getattribute rx286_debug, rx286_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx286_cur
+ .local pmc match
+ .lex "$/", match
+ length rx286_eos, rx286_tgt
+ gt rx286_pos, rx286_eos, rx286_done
+ set rx286_off, 0
+ lt rx286_pos, 2, rx286_start
+ sub rx286_off, rx286_pos, 1
+ substr rx286_tgt, rx286_tgt, rx286_off
+ rx286_start:
+ eq $I10, 1, rx286_restart
+ if_null rx286_debug, debug_306
+ rx286_cur."!cursor_debug"("START", "metachar:sym<mod>")
+ debug_306:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan290_done
+ goto rxscan290_scan
+ rxscan290_loop:
+ ($P10) = rx286_cur."from"()
+ inc $P10
+ set rx286_pos, $P10
+ ge rx286_pos, rx286_eos, rxscan290_done
+ rxscan290_scan:
+ set_addr $I10, rxscan290_loop
+ rx286_cur."!mark_push"(0, rx286_pos, $I10)
+ rxscan290_done:
+.annotate 'line', 98
# rx subrule "mod_internal" subtype=capture negate=
- rx277_cur."!cursor_pos"(rx277_pos)
- $P10 = rx277_cur."mod_internal"()
- unless $P10, rx277_fail
- rx277_cur."!mark_push"(0, -1, 0, $P10)
+ rx286_cur."!cursor_pos"(rx286_pos)
+ $P10 = rx286_cur."mod_internal"()
+ unless $P10, rx286_fail
+ rx286_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("mod_internal")
- rx277_pos = $P10."pos"()
+ rx286_pos = $P10."pos"()
# rx pass
- rx277_cur."!cursor_pass"(rx277_pos, "metachar:sym<mod>")
- rx277_cur."!cursor_debug"("PASS ", "metachar:sym<mod>", " at pos=", rx277_pos)
- .return (rx277_cur)
- rx277_restart:
-.annotate 'line', 3
- rx277_cur."!cursor_debug"("NEXT ", "metachar:sym<mod>")
- rx277_fail:
- (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 ", "metachar:sym<mod>")
- .return (rx277_cur)
+ rx286_cur."!cursor_pass"(rx286_pos, "metachar:sym<mod>")
+ if_null rx286_debug, debug_307
+ rx286_cur."!cursor_debug"("PASS", "metachar:sym<mod>", " at pos=", rx286_pos)
+ debug_307:
+ .return (rx286_cur)
+ rx286_restart:
+.annotate 'line', 3
+ if_null rx286_debug, debug_308
+ rx286_cur."!cursor_debug"("NEXT", "metachar:sym<mod>")
+ debug_308:
+ rx286_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
+ rx286_done:
+ rx286_cur."!cursor_fail"()
+ if_null rx286_debug, debug_309
+ rx286_cur."!cursor_debug"("FAIL", "metachar:sym<mod>")
+ debug_309:
+ .return (rx286_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>" :subid("82_1280467470.54449") :method
-.annotate 'line', 3
- $P279 = self."!PREFIX__!subrule"("mod_internal", "")
- new $P280, "ResizablePMCArray"
- push $P280, $P279
- .return ($P280)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>" :subid("83_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .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, $I10) = self."!cursor_start"()
- .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:
- eq $I10, 1, rx283_restart
- rx283_cur."!cursor_debug"("START ", "metachar:sym<~>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan287_done
- goto rxscan287_scan
- rxscan287_loop:
- ($P10) = rx283_cur."from"()
- inc $P10
- set rx283_pos, $P10
- ge rx283_pos, rx283_eos, rxscan287_done
- rxscan287_scan:
- set_addr $I10, rxscan287_loop
- rx283_cur."!mark_push"(0, rx283_pos, $I10)
- rxscan287_done:
-.annotate 'line', 95
+.sub "!PREFIX__metachar:sym<mod>" :subid("84_1282323996.47527") :method
+.annotate 'line', 3
+ $P288 = self."!PREFIX__!subrule"("mod_internal", "")
+ new $P289, "ResizablePMCArray"
+ push $P289, $P288
+ .return ($P289)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<~>" :subid("85_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx292_tgt
+ .local int rx292_pos
+ .local int rx292_off
+ .local int rx292_eos
+ .local int rx292_rep
+ .local pmc rx292_cur
+ .local pmc rx292_debug
+ (rx292_cur, rx292_pos, rx292_tgt, $I10) = self."!cursor_start"()
+ getattribute rx292_debug, rx292_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx292_cur
+ .local pmc match
+ .lex "$/", match
+ length rx292_eos, rx292_tgt
+ gt rx292_pos, rx292_eos, rx292_done
+ 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:
+ eq $I10, 1, rx292_restart
+ if_null rx292_debug, debug_310
+ rx292_cur."!cursor_debug"("START", "metachar:sym<~>")
+ debug_310:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan296_done
+ goto rxscan296_scan
+ rxscan296_loop:
+ ($P10) = rx292_cur."from"()
+ inc $P10
+ set rx292_pos, $P10
+ ge rx292_pos, rx292_eos, rxscan296_done
+ rxscan296_scan:
+ set_addr $I10, rxscan296_loop
+ rx292_cur."!mark_push"(0, rx292_pos, $I10)
+ rxscan296_done:
+.annotate 'line', 102
# rx subcapture "sym"
- set_addr $I10, rxcap_288_fail
- rx283_cur."!mark_push"(0, rx283_pos, $I10)
+ set_addr $I10, rxcap_297_fail
+ rx292_cur."!mark_push"(0, rx292_pos, $I10)
# 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
- set_addr $I10, rxcap_288_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)
+ add $I11, rx292_pos, 1
+ gt $I11, rx292_eos, rx292_fail
+ sub $I11, rx292_pos, rx292_off
+ ord $I11, rx292_tgt, $I11
+ ne $I11, 126, rx292_fail
+ add rx292_pos, 1
+ set_addr $I10, rxcap_297_fail
+ ($I12, $I11) = rx292_cur."!mark_peek"($I10)
+ rx292_cur."!cursor_pos"($I11)
+ ($P10) = rx292_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx292_pos, "")
+ rx292_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_288_done
- rxcap_288_fail:
- goto rx283_fail
- rxcap_288_done:
-.annotate 'line', 96
+ goto rxcap_297_done
+ rxcap_297_fail:
+ goto rx292_fail
+ rxcap_297_done:
+.annotate 'line', 103
# rx subrule "ws" subtype=method negate=
- rx283_cur."!cursor_pos"(rx283_pos)
- $P10 = rx283_cur."ws"()
- unless $P10, rx283_fail
- rx283_pos = $P10."pos"()
+ rx292_cur."!cursor_pos"(rx292_pos)
+ $P10 = rx292_cur."ws"()
+ unless $P10, rx292_fail
+ rx292_pos = $P10."pos"()
# rx subrule "quantified_atom" subtype=capture negate=
- rx283_cur."!cursor_pos"(rx283_pos)
- $P10 = rx283_cur."quantified_atom"()
- unless $P10, rx283_fail
- rx283_cur."!mark_push"(0, -1, 0, $P10)
+ rx292_cur."!cursor_pos"(rx292_pos)
+ $P10 = rx292_cur."quantified_atom"()
+ unless $P10, rx292_fail
+ rx292_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("GOAL")
- rx283_pos = $P10."pos"()
-.annotate 'line', 97
+ rx292_pos = $P10."pos"()
+.annotate 'line', 104
# rx subrule "ws" subtype=method negate=
- rx283_cur."!cursor_pos"(rx283_pos)
- $P10 = rx283_cur."ws"()
- unless $P10, rx283_fail
- rx283_pos = $P10."pos"()
+ rx292_cur."!cursor_pos"(rx292_pos)
+ $P10 = rx292_cur."ws"()
+ unless $P10, rx292_fail
+ rx292_pos = $P10."pos"()
# rx subrule "quantified_atom" subtype=capture negate=
- rx283_cur."!cursor_pos"(rx283_pos)
- $P10 = rx283_cur."quantified_atom"()
- unless $P10, rx283_fail
- rx283_cur."!mark_push"(0, -1, 0, $P10)
+ rx292_cur."!cursor_pos"(rx292_pos)
+ $P10 = rx292_cur."quantified_atom"()
+ unless $P10, rx292_fail
+ rx292_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx283_pos = $P10."pos"()
-.annotate 'line', 94
+ rx292_pos = $P10."pos"()
+.annotate 'line', 101
# rx pass
- rx283_cur."!cursor_pass"(rx283_pos, "metachar:sym<~>")
- rx283_cur."!cursor_debug"("PASS ", "metachar:sym<~>", " at pos=", rx283_pos)
- .return (rx283_cur)
- rx283_restart:
-.annotate 'line', 3
- rx283_cur."!cursor_debug"("NEXT ", "metachar:sym<~>")
- rx283_fail:
- (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
- rx283_done:
- rx283_cur."!cursor_fail"()
- rx283_cur."!cursor_debug"("FAIL ", "metachar:sym<~>")
- .return (rx283_cur)
+ rx292_cur."!cursor_pass"(rx292_pos, "metachar:sym<~>")
+ if_null rx292_debug, debug_311
+ rx292_cur."!cursor_debug"("PASS", "metachar:sym<~>", " at pos=", rx292_pos)
+ debug_311:
+ .return (rx292_cur)
+ rx292_restart:
+.annotate 'line', 3
+ if_null rx292_debug, debug_312
+ rx292_cur."!cursor_debug"("NEXT", "metachar:sym<~>")
+ debug_312:
+ 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"()
+ if_null rx292_debug, debug_313
+ rx292_cur."!cursor_debug"("FAIL", "metachar:sym<~>")
+ debug_313:
+ .return (rx292_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>" :subid("84_1280467470.54449") :method
-.annotate 'line', 3
- $P285 = self."!PREFIX__!subrule"("ws", "~")
- new $P286, "ResizablePMCArray"
- push $P286, $P285
- .return ($P286)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>" :subid("85_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx290_tgt
- .local int rx290_pos
- .local int rx290_off
- .local int rx290_eos
- .local int rx290_rep
- .local pmc rx290_cur
- (rx290_cur, rx290_pos, rx290_tgt, $I10) = self."!cursor_start"()
- rx290_cur."!cursor_caparray"("key")
- .lex unicode:"$\x{a2}", rx290_cur
- .local pmc match
- .lex "$/", match
- length rx290_eos, rx290_tgt
- gt rx290_pos, rx290_eos, rx290_done
- set rx290_off, 0
- lt rx290_pos, 2, rx290_start
- sub rx290_off, rx290_pos, 1
- substr rx290_tgt, rx290_tgt, rx290_off
- rx290_start:
- eq $I10, 1, rx290_restart
- rx290_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan293_done
- goto rxscan293_scan
- rxscan293_loop:
- ($P10) = rx290_cur."from"()
- inc $P10
- set rx290_pos, $P10
- ge rx290_pos, rx290_eos, rxscan293_done
- rxscan293_scan:
- set_addr $I10, rxscan293_loop
- rx290_cur."!mark_push"(0, rx290_pos, $I10)
- rxscan293_done:
-.annotate 'line', 101
+.sub "!PREFIX__metachar:sym<~>" :subid("86_1282323996.47527") :method
+.annotate 'line', 3
+ $P294 = self."!PREFIX__!subrule"("ws", "~")
+ new $P295, "ResizablePMCArray"
+ push $P295, $P294
+ .return ($P295)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<{*}>" :subid("87_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx299_tgt
+ .local int rx299_pos
+ .local int rx299_off
+ .local int rx299_eos
+ .local int rx299_rep
+ .local pmc rx299_cur
+ .local pmc rx299_debug
+ (rx299_cur, rx299_pos, rx299_tgt, $I10) = self."!cursor_start"()
+ rx299_cur."!cursor_caparray"("key")
+ getattribute rx299_debug, rx299_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx299_cur
+ .local pmc match
+ .lex "$/", match
+ length rx299_eos, rx299_tgt
+ gt rx299_pos, rx299_eos, rx299_done
+ 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:
+ eq $I10, 1, rx299_restart
+ if_null rx299_debug, debug_314
+ rx299_cur."!cursor_debug"("START", "metachar:sym<{*}>")
+ debug_314:
+ $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', 108
# rx subcapture "sym"
- set_addr $I10, rxcap_294_fail
- rx290_cur."!mark_push"(0, rx290_pos, $I10)
+ set_addr $I10, rxcap_303_fail
+ rx299_cur."!mark_push"(0, rx299_pos, $I10)
# rx literal "{*}"
- add $I11, rx290_pos, 3
- gt $I11, rx290_eos, rx290_fail
- sub $I11, rx290_pos, rx290_off
- substr $S10, rx290_tgt, $I11, 3
- ne $S10, "{*}", rx290_fail
- add rx290_pos, 3
- set_addr $I10, rxcap_294_fail
- ($I12, $I11) = rx290_cur."!mark_peek"($I10)
- rx290_cur."!cursor_pos"($I11)
- ($P10) = rx290_cur."!cursor_start"()
- $P10."!cursor_pass"(rx290_pos, "")
- rx290_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx299_pos, 3
+ gt $I11, rx299_eos, rx299_fail
+ sub $I11, rx299_pos, rx299_off
+ substr $S10, rx299_tgt, $I11, 3
+ ne $S10, "{*}", rx299_fail
+ add rx299_pos, 3
+ set_addr $I10, rxcap_303_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)
$P10."!cursor_names"("sym")
- goto rxcap_294_done
- rxcap_294_fail:
- goto rx290_fail
- rxcap_294_done:
-.annotate 'line', 102
- # rx rxquantr295 ** 0..1
- set_addr $I10, rxquantr295_done
- rx290_cur."!mark_push"(0, rx290_pos, $I10)
- rxquantr295_loop:
- # rx rxquantr296 ** 0..*
- set_addr $I10, rxquantr296_done
- rx290_cur."!mark_push"(0, rx290_pos, $I10)
- rxquantr296_loop:
- # rx enumcharlist negate=0
- ge rx290_pos, rx290_eos, rx290_fail
- sub $I10, rx290_pos, rx290_off
- substr $S10, rx290_tgt, $I10, 1
+ goto rxcap_303_done
+ rxcap_303_fail:
+ goto rx299_fail
+ rxcap_303_done:
+.annotate 'line', 109
+ # rx rxquantr304 ** 0..1
+ set_addr $I10, rxquantr304_done
+ rx299_cur."!mark_push"(0, rx299_pos, $I10)
+ rxquantr304_loop:
+ # rx enumcharlist_q negate=0 r 0..-1
+ sub $I10, rx299_pos, rx299_off
+ set rx299_rep, 0
+ sub $I12, rx299_eos, rx299_pos
+ rxenumcharlistq305_loop:
+ le $I12, 0, rxenumcharlistq305_done
+ substr $S10, rx299_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, rx290_fail
- inc rx290_pos
- set_addr $I10, rxquantr296_done
- (rx290_rep) = rx290_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr296_done
- rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10)
- goto rxquantr296_loop
- rxquantr296_done:
+ lt $I11, 0, rxenumcharlistq305_done
+ inc rx299_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq305_loop
+ rxenumcharlistq305_done:
+ add rx299_pos, rx299_pos, rx299_rep
# rx literal "#= "
- add $I11, rx290_pos, 3
- gt $I11, rx290_eos, rx290_fail
- sub $I11, rx290_pos, rx290_off
- substr $S10, rx290_tgt, $I11, 3
- ne $S10, "#= ", rx290_fail
- add rx290_pos, 3
- # rx rxquantr297 ** 0..*
- set_addr $I10, rxquantr297_done
- rx290_cur."!mark_push"(0, rx290_pos, $I10)
- rxquantr297_loop:
- # rx enumcharlist negate=0
- ge rx290_pos, rx290_eos, rx290_fail
- sub $I10, rx290_pos, rx290_off
- substr $S10, rx290_tgt, $I10, 1
+ add $I11, rx299_pos, 3
+ gt $I11, rx299_eos, rx299_fail
+ sub $I11, rx299_pos, rx299_off
+ substr $S10, rx299_tgt, $I11, 3
+ ne $S10, "#= ", rx299_fail
+ add rx299_pos, 3
+ # rx enumcharlist_q negate=0 r 0..-1
+ sub $I10, rx299_pos, rx299_off
+ set rx299_rep, 0
+ sub $I12, rx299_eos, rx299_pos
+ rxenumcharlistq306_loop:
+ le $I12, 0, rxenumcharlistq306_done
+ substr $S10, rx299_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, rx290_fail
- inc rx290_pos
- set_addr $I10, rxquantr297_done
- (rx290_rep) = rx290_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr297_done
- rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10)
- goto rxquantr297_loop
- rxquantr297_done:
+ lt $I11, 0, rxenumcharlistq306_done
+ inc rx299_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq306_loop
+ rxenumcharlistq306_done:
+ add rx299_pos, rx299_pos, rx299_rep
# rx subcapture "key"
- set_addr $I10, rxcap_300_fail
- rx290_cur."!mark_push"(0, rx290_pos, $I10)
+ set_addr $I10, rxcap_309_fail
+ rx299_cur."!mark_push"(0, rx299_pos, $I10)
# rx charclass_q S r 1..-1
- sub $I10, rx290_pos, rx290_off
- find_cclass $I11, 32, rx290_tgt, $I10, rx290_eos
+ sub $I10, rx299_pos, rx299_off
+ find_cclass $I11, 32, rx299_tgt, $I10, rx299_eos
add $I12, $I10, 1
- lt $I11, $I12, rx290_fail
- add rx290_pos, rx290_off, $I11
- # rx rxquantr298 ** 0..*
- set_addr $I10, rxquantr298_done
- rx290_cur."!mark_push"(0, rx290_pos, $I10)
- rxquantr298_loop:
- # rx rxquantr299 ** 1..*
- set_addr $I10, rxquantr299_done
- rx290_cur."!mark_push"(0, -1, $I10)
- rxquantr299_loop:
- # rx enumcharlist negate=0
- ge rx290_pos, rx290_eos, rx290_fail
- sub $I10, rx290_pos, rx290_off
- substr $S10, rx290_tgt, $I10, 1
+ lt $I11, $I12, rx299_fail
+ add rx299_pos, rx299_off, $I11
+ # rx rxquantr307 ** 0..*
+ set_addr $I10, rxquantr307_done
+ rx299_cur."!mark_push"(0, rx299_pos, $I10)
+ rxquantr307_loop:
+ # rx enumcharlist_q negate=0 r 1..-1
+ sub $I10, rx299_pos, rx299_off
+ set rx299_rep, 0
+ sub $I12, rx299_eos, rx299_pos
+ rxenumcharlistq308_loop:
+ le $I12, 0, rxenumcharlistq308_done
+ substr $S10, rx299_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, rx290_fail
- inc rx290_pos
- set_addr $I10, rxquantr299_done
- (rx290_rep) = rx290_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr299_done
- rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10)
- goto rxquantr299_loop
- rxquantr299_done:
+ lt $I11, 0, rxenumcharlistq308_done
+ inc rx299_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq308_loop
+ rxenumcharlistq308_done:
+ lt rx299_rep, 1, rx299_fail
+ add rx299_pos, rx299_pos, rx299_rep
# rx charclass_q S r 1..-1
- sub $I10, rx290_pos, rx290_off
- find_cclass $I11, 32, rx290_tgt, $I10, rx290_eos
+ sub $I10, rx299_pos, rx299_off
+ find_cclass $I11, 32, rx299_tgt, $I10, rx299_eos
add $I12, $I10, 1
- lt $I11, $I12, rx290_fail
- add rx290_pos, rx290_off, $I11
- set_addr $I10, rxquantr298_done
- (rx290_rep) = rx290_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr298_done
- rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10)
- goto rxquantr298_loop
- rxquantr298_done:
- set_addr $I10, rxcap_300_fail
- ($I12, $I11) = rx290_cur."!mark_peek"($I10)
- rx290_cur."!cursor_pos"($I11)
- ($P10) = rx290_cur."!cursor_start"()
- $P10."!cursor_pass"(rx290_pos, "")
- rx290_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx299_fail
+ add rx299_pos, rx299_off, $I11
+ set_addr $I10, rxquantr307_done
+ (rx299_rep) = rx299_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr307_done
+ rx299_cur."!mark_push"(rx299_rep, rx299_pos, $I10)
+ goto rxquantr307_loop
+ rxquantr307_done:
+ set_addr $I10, rxcap_309_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)
$P10."!cursor_names"("key")
- goto rxcap_300_done
- rxcap_300_fail:
- goto rx290_fail
- rxcap_300_done:
- set_addr $I10, rxquantr295_done
- (rx290_rep) = rx290_cur."!mark_commit"($I10)
- rxquantr295_done:
-.annotate 'line', 100
- # rx pass
- rx290_cur."!cursor_pass"(rx290_pos, "metachar:sym<{*}>")
- rx290_cur."!cursor_debug"("PASS ", "metachar:sym<{*}>", " at pos=", rx290_pos)
- .return (rx290_cur)
- rx290_restart:
-.annotate 'line', 3
- rx290_cur."!cursor_debug"("NEXT ", "metachar:sym<{*}>")
- rx290_fail:
- (rx290_rep, rx290_pos, $I10, $P10) = rx290_cur."!mark_fail"(0)
- lt rx290_pos, -1, rx290_done
- eq rx290_pos, -1, rx290_fail
- jump $I10
- rx290_done:
- rx290_cur."!cursor_fail"()
- rx290_cur."!cursor_debug"("FAIL ", "metachar:sym<{*}>")
- .return (rx290_cur)
+ goto rxcap_309_done
+ rxcap_309_fail:
+ goto rx299_fail
+ rxcap_309_done:
+ set_addr $I10, rxquantr304_done
+ (rx299_rep) = rx299_cur."!mark_commit"($I10)
+ rxquantr304_done:
+.annotate 'line', 107
+ # rx pass
+ rx299_cur."!cursor_pass"(rx299_pos, "metachar:sym<{*}>")
+ if_null rx299_debug, debug_315
+ rx299_cur."!cursor_debug"("PASS", "metachar:sym<{*}>", " at pos=", rx299_pos)
+ debug_315:
+ .return (rx299_cur)
+ rx299_restart:
+.annotate 'line', 3
+ if_null rx299_debug, debug_316
+ rx299_cur."!cursor_debug"("NEXT", "metachar:sym<{*}>")
+ debug_316:
+ rx299_fail:
+ (rx299_rep, rx299_pos, $I10, $P10) = rx299_cur."!mark_fail"(0)
+ lt rx299_pos, -1, rx299_done
+ eq rx299_pos, -1, rx299_fail
+ jump $I10
+ rx299_done:
+ rx299_cur."!cursor_fail"()
+ if_null rx299_debug, debug_317
+ rx299_cur."!cursor_debug"("FAIL", "metachar:sym<{*}>")
+ debug_317:
+ .return (rx299_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>" :subid("86_1280467470.54449") :method
-.annotate 'line', 3
- new $P292, "ResizablePMCArray"
- push $P292, "{*}"
- .return ($P292)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>" :subid("87_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx302_tgt
- .local int rx302_pos
- .local int rx302_off
- .local int rx302_eos
- .local int rx302_rep
- .local pmc rx302_cur
- (rx302_cur, rx302_pos, rx302_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx302_cur
- .local pmc match
- .lex "$/", match
- length rx302_eos, rx302_tgt
- gt rx302_pos, rx302_eos, rx302_done
- set rx302_off, 0
- lt rx302_pos, 2, rx302_start
- sub rx302_off, rx302_pos, 1
- substr rx302_tgt, rx302_tgt, rx302_off
- rx302_start:
- eq $I10, 1, rx302_restart
- rx302_cur."!cursor_debug"("START ", "metachar:sym<assert>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan306_done
- goto rxscan306_scan
- rxscan306_loop:
- ($P10) = rx302_cur."from"()
- inc $P10
- set rx302_pos, $P10
- ge rx302_pos, rx302_eos, rxscan306_done
- rxscan306_scan:
- set_addr $I10, rxscan306_loop
- rx302_cur."!mark_push"(0, rx302_pos, $I10)
- rxscan306_done:
-.annotate 'line', 105
+.sub "!PREFIX__metachar:sym<{*}>" :subid("88_1282323996.47527") :method
+.annotate 'line', 3
+ new $P301, "ResizablePMCArray"
+ push $P301, "{*}"
+ .return ($P301)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<assert>" :subid("89_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx311_tgt
+ .local int rx311_pos
+ .local int rx311_off
+ .local int rx311_eos
+ .local int rx311_rep
+ .local pmc rx311_cur
+ .local pmc rx311_debug
+ (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+ getattribute rx311_debug, rx311_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx311_cur
+ .local pmc match
+ .lex "$/", match
+ length rx311_eos, rx311_tgt
+ gt rx311_pos, rx311_eos, rx311_done
+ set rx311_off, 0
+ lt rx311_pos, 2, rx311_start
+ sub rx311_off, rx311_pos, 1
+ substr rx311_tgt, rx311_tgt, rx311_off
+ rx311_start:
+ eq $I10, 1, rx311_restart
+ if_null rx311_debug, debug_318
+ rx311_cur."!cursor_debug"("START", "metachar:sym<assert>")
+ debug_318:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan315_done
+ goto rxscan315_scan
+ rxscan315_loop:
+ ($P10) = rx311_cur."from"()
+ inc $P10
+ set rx311_pos, $P10
+ ge rx311_pos, rx311_eos, rxscan315_done
+ rxscan315_scan:
+ set_addr $I10, rxscan315_loop
+ rx311_cur."!mark_push"(0, rx311_pos, $I10)
+ rxscan315_done:
+.annotate 'line', 112
# rx literal "<"
- add $I11, rx302_pos, 1
- gt $I11, rx302_eos, rx302_fail
- sub $I11, rx302_pos, rx302_off
- substr $S10, rx302_tgt, $I11, 1
- ne $S10, "<", rx302_fail
- add rx302_pos, 1
+ add $I11, rx311_pos, 1
+ gt $I11, rx311_eos, rx311_fail
+ sub $I11, rx311_pos, rx311_off
+ ord $I11, rx311_tgt, $I11
+ ne $I11, 60, rx311_fail
+ add rx311_pos, 1
# rx subrule "assertion" subtype=capture negate=
- rx302_cur."!cursor_pos"(rx302_pos)
- $P10 = rx302_cur."assertion"()
- unless $P10, rx302_fail
- rx302_cur."!mark_push"(0, -1, 0, $P10)
+ rx311_cur."!cursor_pos"(rx311_pos)
+ $P10 = rx311_cur."assertion"()
+ unless $P10, rx311_fail
+ rx311_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx302_pos = $P10."pos"()
- alt307_0:
-.annotate 'line', 106
- set_addr $I10, alt307_1
- rx302_cur."!mark_push"(0, rx302_pos, $I10)
+ rx311_pos = $P10."pos"()
+ alt316_0:
+.annotate 'line', 113
+ set_addr $I10, alt316_1
+ rx311_cur."!mark_push"(0, rx311_pos, $I10)
# rx literal ">"
- add $I11, rx302_pos, 1
- gt $I11, rx302_eos, rx302_fail
- sub $I11, rx302_pos, rx302_off
- substr $S10, rx302_tgt, $I11, 1
- ne $S10, ">", rx302_fail
- add rx302_pos, 1
- goto alt307_end
- alt307_1:
+ add $I11, rx311_pos, 1
+ gt $I11, rx311_eos, rx311_fail
+ sub $I11, rx311_pos, rx311_off
+ ord $I11, rx311_tgt, $I11
+ ne $I11, 62, rx311_fail
+ add rx311_pos, 1
+ goto alt316_end
+ alt316_1:
# rx subrule "panic" subtype=method negate=
- rx302_cur."!cursor_pos"(rx302_pos)
- $P10 = rx302_cur."panic"("regex assertion not terminated by angle bracket")
- unless $P10, rx302_fail
- rx302_pos = $P10."pos"()
- alt307_end:
-.annotate 'line', 104
+ rx311_cur."!cursor_pos"(rx311_pos)
+ $P10 = rx311_cur."panic"("regex assertion not terminated by angle bracket")
+ unless $P10, rx311_fail
+ rx311_pos = $P10."pos"()
+ alt316_end:
+.annotate 'line', 111
# rx pass
- rx302_cur."!cursor_pass"(rx302_pos, "metachar:sym<assert>")
- rx302_cur."!cursor_debug"("PASS ", "metachar:sym<assert>", " at pos=", rx302_pos)
- .return (rx302_cur)
- rx302_restart:
-.annotate 'line', 3
- rx302_cur."!cursor_debug"("NEXT ", "metachar:sym<assert>")
- rx302_fail:
- (rx302_rep, rx302_pos, $I10, $P10) = rx302_cur."!mark_fail"(0)
- lt rx302_pos, -1, rx302_done
- eq rx302_pos, -1, rx302_fail
- jump $I10
- rx302_done:
- rx302_cur."!cursor_fail"()
- rx302_cur."!cursor_debug"("FAIL ", "metachar:sym<assert>")
- .return (rx302_cur)
+ rx311_cur."!cursor_pass"(rx311_pos, "metachar:sym<assert>")
+ if_null rx311_debug, debug_319
+ rx311_cur."!cursor_debug"("PASS", "metachar:sym<assert>", " at pos=", rx311_pos)
+ debug_319:
+ .return (rx311_cur)
+ rx311_restart:
+.annotate 'line', 3
+ if_null rx311_debug, debug_320
+ rx311_cur."!cursor_debug"("NEXT", "metachar:sym<assert>")
+ debug_320:
+ rx311_fail:
+ (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
+ lt rx311_pos, -1, rx311_done
+ eq rx311_pos, -1, rx311_fail
+ jump $I10
+ rx311_done:
+ rx311_cur."!cursor_fail"()
+ if_null rx311_debug, debug_321
+ rx311_cur."!cursor_debug"("FAIL", "metachar:sym<assert>")
+ debug_321:
+ .return (rx311_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>" :subid("88_1280467470.54449") :method
-.annotate 'line', 3
- $P304 = self."!PREFIX__!subrule"("assertion", "<")
- new $P305, "ResizablePMCArray"
- push $P305, $P304
- .return ($P305)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>" :subid("89_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx309_tgt
- .local int rx309_pos
- .local int rx309_off
- .local int rx309_eos
- .local int rx309_rep
- .local pmc rx309_cur
- (rx309_cur, rx309_pos, rx309_tgt, $I10) = self."!cursor_start"()
- rx309_cur."!cursor_caparray"("quantified_atom")
- .lex unicode:"$\x{a2}", rx309_cur
- .local pmc match
- .lex "$/", match
- length rx309_eos, rx309_tgt
- gt rx309_pos, rx309_eos, rx309_done
- set rx309_off, 0
- lt rx309_pos, 2, rx309_start
- sub rx309_off, rx309_pos, 1
- substr rx309_tgt, rx309_tgt, rx309_off
- rx309_start:
- eq $I10, 1, rx309_restart
- rx309_cur."!cursor_debug"("START ", "metachar:sym<var>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan312_done
- goto rxscan312_scan
- rxscan312_loop:
- ($P10) = rx309_cur."from"()
- inc $P10
- set rx309_pos, $P10
- ge rx309_pos, rx309_eos, rxscan312_done
- rxscan312_scan:
- set_addr $I10, rxscan312_loop
- rx309_cur."!mark_push"(0, rx309_pos, $I10)
- rxscan312_done:
- alt313_0:
-.annotate 'line', 110
- set_addr $I10, alt313_1
- rx309_cur."!mark_push"(0, rx309_pos, $I10)
-.annotate 'line', 111
+.sub "!PREFIX__metachar:sym<assert>" :subid("90_1282323996.47527") :method
+.annotate 'line', 3
+ $P313 = self."!PREFIX__!subrule"("assertion", "<")
+ new $P314, "ResizablePMCArray"
+ push $P314, $P313
+ .return ($P314)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<var>" :subid("91_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx318_tgt
+ .local int rx318_pos
+ .local int rx318_off
+ .local int rx318_eos
+ .local int rx318_rep
+ .local pmc rx318_cur
+ .local pmc rx318_debug
+ (rx318_cur, rx318_pos, rx318_tgt, $I10) = self."!cursor_start"()
+ rx318_cur."!cursor_caparray"("quantified_atom")
+ getattribute rx318_debug, rx318_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx318_cur
+ .local pmc match
+ .lex "$/", match
+ length rx318_eos, rx318_tgt
+ gt rx318_pos, rx318_eos, rx318_done
+ set rx318_off, 0
+ lt rx318_pos, 2, rx318_start
+ sub rx318_off, rx318_pos, 1
+ substr rx318_tgt, rx318_tgt, rx318_off
+ rx318_start:
+ eq $I10, 1, rx318_restart
+ if_null rx318_debug, debug_322
+ rx318_cur."!cursor_debug"("START", "metachar:sym<var>")
+ debug_322:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan321_done
+ goto rxscan321_scan
+ rxscan321_loop:
+ ($P10) = rx318_cur."from"()
+ inc $P10
+ set rx318_pos, $P10
+ ge rx318_pos, rx318_eos, rxscan321_done
+ rxscan321_scan:
+ set_addr $I10, rxscan321_loop
+ rx318_cur."!mark_push"(0, rx318_pos, $I10)
+ rxscan321_done:
+ alt322_0:
+.annotate 'line', 117
+ set_addr $I10, alt322_1
+ rx318_cur."!mark_push"(0, rx318_pos, $I10)
+.annotate 'line', 118
# rx literal "$<"
- add $I11, rx309_pos, 2
- gt $I11, rx309_eos, rx309_fail
- sub $I11, rx309_pos, rx309_off
- substr $S10, rx309_tgt, $I11, 2
- ne $S10, "$<", rx309_fail
- add rx309_pos, 2
+ add $I11, rx318_pos, 2
+ gt $I11, rx318_eos, rx318_fail
+ sub $I11, rx318_pos, rx318_off
+ substr $S10, rx318_tgt, $I11, 2
+ ne $S10, "$<", rx318_fail
+ add rx318_pos, 2
# rx subcapture "name"
- set_addr $I10, rxcap_315_fail
- rx309_cur."!mark_push"(0, rx309_pos, $I10)
- # rx rxquantr314 ** 1..*
- set_addr $I10, rxquantr314_done
- rx309_cur."!mark_push"(0, -1, $I10)
- rxquantr314_loop:
- # rx enumcharlist negate=1
- ge rx309_pos, rx309_eos, rx309_fail
- sub $I10, rx309_pos, rx309_off
- substr $S10, rx309_tgt, $I10, 1
+ set_addr $I10, rxcap_324_fail
+ rx318_cur."!mark_push"(0, rx318_pos, $I10)
+ # rx enumcharlist_q negate=1 r 1..-1
+ sub $I10, rx318_pos, rx318_off
+ set rx318_rep, 0
+ sub $I12, rx318_eos, rx318_pos
+ rxenumcharlistq323_loop:
+ le $I12, 0, rxenumcharlistq323_done
+ substr $S10, rx318_tgt, $I10, 1
index $I11, ">", $S10
- ge $I11, 0, rx309_fail
- inc rx309_pos
- set_addr $I10, rxquantr314_done
- (rx309_rep) = rx309_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr314_done
- rx309_cur."!mark_push"(rx309_rep, rx309_pos, $I10)
- goto rxquantr314_loop
- rxquantr314_done:
- set_addr $I10, rxcap_315_fail
- ($I12, $I11) = rx309_cur."!mark_peek"($I10)
- rx309_cur."!cursor_pos"($I11)
- ($P10) = rx309_cur."!cursor_start"()
- $P10."!cursor_pass"(rx309_pos, "")
- rx309_cur."!mark_push"(0, -1, 0, $P10)
+ ge $I11, 0, rxenumcharlistq323_done
+ inc rx318_rep
+ inc $I10
+ dec $I12
+ goto rxenumcharlistq323_loop
+ rxenumcharlistq323_done:
+ lt rx318_rep, 1, rx318_fail
+ add rx318_pos, rx318_pos, rx318_rep
+ set_addr $I10, rxcap_324_fail
+ ($I12, $I11) = rx318_cur."!mark_peek"($I10)
+ rx318_cur."!cursor_pos"($I11)
+ ($P10) = rx318_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx318_pos, "")
+ rx318_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- goto rxcap_315_done
- rxcap_315_fail:
- goto rx309_fail
- rxcap_315_done:
+ goto rxcap_324_done
+ rxcap_324_fail:
+ goto rx318_fail
+ rxcap_324_done:
# rx literal ">"
- add $I11, rx309_pos, 1
- gt $I11, rx309_eos, rx309_fail
- sub $I11, rx309_pos, rx309_off
- substr $S10, rx309_tgt, $I11, 1
- ne $S10, ">", rx309_fail
- add rx309_pos, 1
- goto alt313_end
- alt313_1:
-.annotate 'line', 112
+ add $I11, rx318_pos, 1
+ gt $I11, rx318_eos, rx318_fail
+ sub $I11, rx318_pos, rx318_off
+ ord $I11, rx318_tgt, $I11
+ ne $I11, 62, rx318_fail
+ add rx318_pos, 1
+ goto alt322_end
+ alt322_1:
+.annotate 'line', 119
# rx literal "$"
- add $I11, rx309_pos, 1
- gt $I11, rx309_eos, rx309_fail
- sub $I11, rx309_pos, rx309_off
- substr $S10, rx309_tgt, $I11, 1
- ne $S10, "$", rx309_fail
- add rx309_pos, 1
+ add $I11, rx318_pos, 1
+ gt $I11, rx318_eos, rx318_fail
+ sub $I11, rx318_pos, rx318_off
+ ord $I11, rx318_tgt, $I11
+ ne $I11, 36, rx318_fail
+ add rx318_pos, 1
# rx subcapture "pos"
- set_addr $I10, rxcap_316_fail
- rx309_cur."!mark_push"(0, rx309_pos, $I10)
+ set_addr $I10, rxcap_325_fail
+ rx318_cur."!mark_push"(0, rx318_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx309_pos, rx309_off
- find_not_cclass $I11, 8, rx309_tgt, $I10, rx309_eos
+ sub $I10, rx318_pos, rx318_off
+ find_not_cclass $I11, 8, rx318_tgt, $I10, rx318_eos
add $I12, $I10, 1
- lt $I11, $I12, rx309_fail
- add rx309_pos, rx309_off, $I11
- set_addr $I10, rxcap_316_fail
- ($I12, $I11) = rx309_cur."!mark_peek"($I10)
- rx309_cur."!cursor_pos"($I11)
- ($P10) = rx309_cur."!cursor_start"()
- $P10."!cursor_pass"(rx309_pos, "")
- rx309_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx318_fail
+ add rx318_pos, rx318_off, $I11
+ set_addr $I10, rxcap_325_fail
+ ($I12, $I11) = rx318_cur."!mark_peek"($I10)
+ rx318_cur."!cursor_pos"($I11)
+ ($P10) = rx318_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx318_pos, "")
+ rx318_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pos")
- goto rxcap_316_done
- rxcap_316_fail:
- goto rx309_fail
- rxcap_316_done:
- alt313_end:
-.annotate 'line', 115
- # rx rxquantr317 ** 0..1
- set_addr $I10, rxquantr317_done
- rx309_cur."!mark_push"(0, rx309_pos, $I10)
- rxquantr317_loop:
+ goto rxcap_325_done
+ rxcap_325_fail:
+ goto rx318_fail
+ rxcap_325_done:
+ alt322_end:
+.annotate 'line', 122
+ # rx rxquantr326 ** 0..1
+ set_addr $I10, rxquantr326_done
+ rx318_cur."!mark_push"(0, rx318_pos, $I10)
+ rxquantr326_loop:
# rx subrule "ws" subtype=method negate=
- rx309_cur."!cursor_pos"(rx309_pos)
- $P10 = rx309_cur."ws"()
- unless $P10, rx309_fail
- rx309_pos = $P10."pos"()
+ rx318_cur."!cursor_pos"(rx318_pos)
+ $P10 = rx318_cur."ws"()
+ unless $P10, rx318_fail
+ rx318_pos = $P10."pos"()
# rx literal "="
- add $I11, rx309_pos, 1
- gt $I11, rx309_eos, rx309_fail
- sub $I11, rx309_pos, rx309_off
- substr $S10, rx309_tgt, $I11, 1
- ne $S10, "=", rx309_fail
- add rx309_pos, 1
+ add $I11, rx318_pos, 1
+ gt $I11, rx318_eos, rx318_fail
+ sub $I11, rx318_pos, rx318_off
+ ord $I11, rx318_tgt, $I11
+ ne $I11, 61, rx318_fail
+ add rx318_pos, 1
# rx subrule "ws" subtype=method negate=
- rx309_cur."!cursor_pos"(rx309_pos)
- $P10 = rx309_cur."ws"()
- unless $P10, rx309_fail
- rx309_pos = $P10."pos"()
+ rx318_cur."!cursor_pos"(rx318_pos)
+ $P10 = rx318_cur."ws"()
+ unless $P10, rx318_fail
+ rx318_pos = $P10."pos"()
# rx subrule "quantified_atom" subtype=capture negate=
- rx309_cur."!cursor_pos"(rx309_pos)
- $P10 = rx309_cur."quantified_atom"()
- unless $P10, rx309_fail
- rx309_cur."!mark_push"(0, -1, 0, $P10)
+ rx318_cur."!cursor_pos"(rx318_pos)
+ $P10 = rx318_cur."quantified_atom"()
+ unless $P10, rx318_fail
+ rx318_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quantified_atom")
- rx309_pos = $P10."pos"()
- set_addr $I10, rxquantr317_done
- (rx309_rep) = rx309_cur."!mark_commit"($I10)
- rxquantr317_done:
-.annotate 'line', 109
+ rx318_pos = $P10."pos"()
+ set_addr $I10, rxquantr326_done
+ (rx318_rep) = rx318_cur."!mark_commit"($I10)
+ rxquantr326_done:
+.annotate 'line', 116
# rx pass
- rx309_cur."!cursor_pass"(rx309_pos, "metachar:sym<var>")
- rx309_cur."!cursor_debug"("PASS ", "metachar:sym<var>", " at pos=", rx309_pos)
- .return (rx309_cur)
- rx309_restart:
-.annotate 'line', 3
- rx309_cur."!cursor_debug"("NEXT ", "metachar:sym<var>")
- rx309_fail:
- (rx309_rep, rx309_pos, $I10, $P10) = rx309_cur."!mark_fail"(0)
- lt rx309_pos, -1, rx309_done
- eq rx309_pos, -1, rx309_fail
- jump $I10
- rx309_done:
- rx309_cur."!cursor_fail"()
- rx309_cur."!cursor_debug"("FAIL ", "metachar:sym<var>")
- .return (rx309_cur)
+ rx318_cur."!cursor_pass"(rx318_pos, "metachar:sym<var>")
+ if_null rx318_debug, debug_323
+ rx318_cur."!cursor_debug"("PASS", "metachar:sym<var>", " at pos=", rx318_pos)
+ debug_323:
+ .return (rx318_cur)
+ rx318_restart:
+.annotate 'line', 3
+ if_null rx318_debug, debug_324
+ rx318_cur."!cursor_debug"("NEXT", "metachar:sym<var>")
+ debug_324:
+ rx318_fail:
+ (rx318_rep, rx318_pos, $I10, $P10) = rx318_cur."!mark_fail"(0)
+ lt rx318_pos, -1, rx318_done
+ eq rx318_pos, -1, rx318_fail
+ jump $I10
+ rx318_done:
+ rx318_cur."!cursor_fail"()
+ if_null rx318_debug, debug_325
+ rx318_cur."!cursor_debug"("FAIL", "metachar:sym<var>")
+ debug_325:
+ .return (rx318_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>" :subid("90_1280467470.54449") :method
-.annotate 'line', 3
- new $P311, "ResizablePMCArray"
- push $P311, "$"
- push $P311, "$<"
- .return ($P311)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>" :subid("91_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx319_tgt
- .local int rx319_pos
- .local int rx319_off
- .local int rx319_eos
- .local int rx319_rep
- .local pmc rx319_cur
- (rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx319_cur
- .local pmc match
- .lex "$/", match
- length rx319_eos, rx319_tgt
- gt rx319_pos, rx319_eos, rx319_done
- set rx319_off, 0
- lt rx319_pos, 2, rx319_start
- sub rx319_off, rx319_pos, 1
- substr rx319_tgt, rx319_tgt, rx319_off
- rx319_start:
- eq $I10, 1, rx319_restart
- rx319_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan322_done
- goto rxscan322_scan
- rxscan322_loop:
- ($P10) = rx319_cur."from"()
- inc $P10
- set rx319_pos, $P10
- ge rx319_pos, rx319_eos, rxscan322_done
- rxscan322_scan:
- set_addr $I10, rxscan322_loop
- rx319_cur."!mark_push"(0, rx319_pos, $I10)
- rxscan322_done:
-.annotate 'line', 119
+.sub "!PREFIX__metachar:sym<var>" :subid("92_1282323996.47527") :method
+.annotate 'line', 3
+ new $P320, "ResizablePMCArray"
+ push $P320, "$"
+ push $P320, "$<"
+ .return ($P320)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<PIR>" :subid("93_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx328_tgt
+ .local int rx328_pos
+ .local int rx328_off
+ .local int rx328_eos
+ .local int rx328_rep
+ .local pmc rx328_cur
+ .local pmc rx328_debug
+ (rx328_cur, rx328_pos, rx328_tgt, $I10) = self."!cursor_start"()
+ getattribute rx328_debug, rx328_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx328_cur
+ .local pmc match
+ .lex "$/", match
+ length rx328_eos, rx328_tgt
+ gt rx328_pos, rx328_eos, rx328_done
+ set rx328_off, 0
+ lt rx328_pos, 2, rx328_start
+ sub rx328_off, rx328_pos, 1
+ substr rx328_tgt, rx328_tgt, rx328_off
+ rx328_start:
+ eq $I10, 1, rx328_restart
+ if_null rx328_debug, debug_326
+ rx328_cur."!cursor_debug"("START", "metachar:sym<PIR>")
+ debug_326:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan331_done
+ goto rxscan331_scan
+ rxscan331_loop:
+ ($P10) = rx328_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', 126
# rx literal ":PIR{{"
- add $I11, rx319_pos, 6
- gt $I11, rx319_eos, rx319_fail
- sub $I11, rx319_pos, rx319_off
- substr $S10, rx319_tgt, $I11, 6
- ne $S10, ":PIR{{", rx319_fail
- add rx319_pos, 6
+ add $I11, rx328_pos, 6
+ gt $I11, rx328_eos, rx328_fail
+ sub $I11, rx328_pos, rx328_off
+ substr $S10, rx328_tgt, $I11, 6
+ ne $S10, ":PIR{{", rx328_fail
+ add rx328_pos, 6
# rx subcapture "pir"
- set_addr $I10, rxcap_325_fail
- rx319_cur."!mark_push"(0, rx319_pos, $I10)
- # rx rxquantf323 ** 0..*
- set_addr $I10, rxquantf323_loop
- rx319_cur."!mark_push"(0, rx319_pos, $I10)
- goto rxquantf323_done
- rxquantf323_loop:
+ set_addr $I10, rxcap_334_fail
+ rx328_cur."!mark_push"(0, rx328_pos, $I10)
+ # rx rxquantf332 ** 0..*
+ set_addr $I10, rxquantf332_loop
+ rx328_cur."!mark_push"(0, rx328_pos, $I10)
+ goto rxquantf332_done
+ rxquantf332_loop:
# rx charclass .
- ge rx319_pos, rx319_eos, rx319_fail
- inc rx319_pos
- set_addr $I10, rxquantf323_loop
- rx319_cur."!mark_push"(rx319_rep, rx319_pos, $I10)
- rxquantf323_done:
- set_addr $I10, rxcap_325_fail
- ($I12, $I11) = rx319_cur."!mark_peek"($I10)
- rx319_cur."!cursor_pos"($I11)
- ($P10) = rx319_cur."!cursor_start"()
- $P10."!cursor_pass"(rx319_pos, "")
- rx319_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx328_pos, rx328_eos, rx328_fail
+ inc rx328_pos
+ set_addr $I10, rxquantf332_loop
+ rx328_cur."!mark_push"(rx328_rep, rx328_pos, $I10)
+ rxquantf332_done:
+ set_addr $I10, rxcap_334_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)
$P10."!cursor_names"("pir")
- goto rxcap_325_done
- rxcap_325_fail:
- goto rx319_fail
- rxcap_325_done:
+ goto rxcap_334_done
+ rxcap_334_fail:
+ goto rx328_fail
+ rxcap_334_done:
# rx literal "}}"
- add $I11, rx319_pos, 2
- gt $I11, rx319_eos, rx319_fail
- sub $I11, rx319_pos, rx319_off
- substr $S10, rx319_tgt, $I11, 2
- ne $S10, "}}", rx319_fail
- add rx319_pos, 2
-.annotate 'line', 118
+ add $I11, rx328_pos, 2
+ gt $I11, rx328_eos, rx328_fail
+ sub $I11, rx328_pos, rx328_off
+ substr $S10, rx328_tgt, $I11, 2
+ ne $S10, "}}", rx328_fail
+ add rx328_pos, 2
+.annotate 'line', 125
# rx pass
- rx319_cur."!cursor_pass"(rx319_pos, "metachar:sym<PIR>")
- rx319_cur."!cursor_debug"("PASS ", "metachar:sym<PIR>", " at pos=", rx319_pos)
- .return (rx319_cur)
- rx319_restart:
+ rx328_cur."!cursor_pass"(rx328_pos, "metachar:sym<PIR>")
+ if_null rx328_debug, debug_327
+ rx328_cur."!cursor_debug"("PASS", "metachar:sym<PIR>", " at pos=", rx328_pos)
+ debug_327:
+ .return (rx328_cur)
+ rx328_restart:
.annotate 'line', 3
- rx319_cur."!cursor_debug"("NEXT ", "metachar:sym<PIR>")
- rx319_fail:
- (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0)
- lt rx319_pos, -1, rx319_done
- eq rx319_pos, -1, rx319_fail
+ if_null rx328_debug, debug_328
+ rx328_cur."!cursor_debug"("NEXT", "metachar:sym<PIR>")
+ debug_328:
+ rx328_fail:
+ (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
- rx319_done:
- rx319_cur."!cursor_fail"()
- rx319_cur."!cursor_debug"("FAIL ", "metachar:sym<PIR>")
- .return (rx319_cur)
+ rx328_done:
+ rx328_cur."!cursor_fail"()
+ if_null rx328_debug, debug_329
+ rx328_cur."!cursor_debug"("FAIL", "metachar:sym<PIR>")
+ debug_329:
+ .return (rx328_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>" :subid("92_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<PIR>" :subid("94_1282323996.47527") :method
.annotate 'line', 3
- new $P321, "ResizablePMCArray"
- push $P321, ":PIR{{"
- .return ($P321)
+ new $P330, "ResizablePMCArray"
+ push $P330, ":PIR{{"
+ .return ($P330)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash" :subid("93_1280467470.54449") :method
-.annotate 'line', 122
- $P327 = self."!protoregex"("backslash")
- .return ($P327)
+.sub "backslash" :subid("95_1282323996.47527") :method
+.annotate 'line', 129
+ $P336 = self."!protoregex"("backslash")
+ .return ($P336)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash" :subid("94_1280467470.54449") :method
-.annotate 'line', 122
- $P329 = self."!PREFIX__!protoregex"("backslash")
- .return ($P329)
+.sub "!PREFIX__backslash" :subid("96_1282323996.47527") :method
+.annotate 'line', 129
+ $P338 = self."!PREFIX__!protoregex"("backslash")
+ .return ($P338)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>" :subid("95_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<w>" :subid("97_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
- .local string rx331_tgt
- .local int rx331_pos
- .local int rx331_off
- .local int rx331_eos
- .local int rx331_rep
- .local pmc rx331_cur
- (rx331_cur, rx331_pos, rx331_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx331_cur
- .local pmc match
- .lex "$/", match
- length rx331_eos, rx331_tgt
- gt rx331_pos, rx331_eos, rx331_done
- set rx331_off, 0
- lt rx331_pos, 2, rx331_start
- sub rx331_off, rx331_pos, 1
- substr rx331_tgt, rx331_tgt, rx331_off
- rx331_start:
- eq $I10, 1, rx331_restart
- rx331_cur."!cursor_debug"("START ", "backslash:sym<w>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan334_done
- goto rxscan334_scan
- rxscan334_loop:
- ($P10) = rx331_cur."from"()
- inc $P10
- set rx331_pos, $P10
- ge rx331_pos, rx331_eos, rxscan334_done
- rxscan334_scan:
- set_addr $I10, rxscan334_loop
- rx331_cur."!mark_push"(0, rx331_pos, $I10)
- rxscan334_done:
-.annotate 'line', 123
+ .local string rx340_tgt
+ .local int rx340_pos
+ .local int rx340_off
+ .local int rx340_eos
+ .local int rx340_rep
+ .local pmc rx340_cur
+ .local pmc rx340_debug
+ (rx340_cur, rx340_pos, rx340_tgt, $I10) = self."!cursor_start"()
+ getattribute rx340_debug, rx340_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx340_cur
+ .local pmc match
+ .lex "$/", match
+ length rx340_eos, rx340_tgt
+ gt rx340_pos, rx340_eos, rx340_done
+ set rx340_off, 0
+ lt rx340_pos, 2, rx340_start
+ sub rx340_off, rx340_pos, 1
+ substr rx340_tgt, rx340_tgt, rx340_off
+ rx340_start:
+ eq $I10, 1, rx340_restart
+ if_null rx340_debug, debug_330
+ rx340_cur."!cursor_debug"("START", "backslash:sym<w>")
+ debug_330:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan343_done
+ goto rxscan343_scan
+ rxscan343_loop:
+ ($P10) = rx340_cur."from"()
+ inc $P10
+ set rx340_pos, $P10
+ ge rx340_pos, rx340_eos, rxscan343_done
+ rxscan343_scan:
+ set_addr $I10, rxscan343_loop
+ rx340_cur."!mark_push"(0, rx340_pos, $I10)
+ rxscan343_done:
+.annotate 'line', 130
# rx subcapture "sym"
- set_addr $I10, rxcap_335_fail
- rx331_cur."!mark_push"(0, rx331_pos, $I10)
+ set_addr $I10, rxcap_344_fail
+ rx340_cur."!mark_push"(0, rx340_pos, $I10)
# rx enumcharlist negate=0
- ge rx331_pos, rx331_eos, rx331_fail
- sub $I10, rx331_pos, rx331_off
- substr $S10, rx331_tgt, $I10, 1
+ ge rx340_pos, rx340_eos, rx340_fail
+ sub $I10, rx340_pos, rx340_off
+ substr $S10, rx340_tgt, $I10, 1
index $I11, "dswnDSWN", $S10
- lt $I11, 0, rx331_fail
- inc rx331_pos
- set_addr $I10, rxcap_335_fail
- ($I12, $I11) = rx331_cur."!mark_peek"($I10)
- rx331_cur."!cursor_pos"($I11)
- ($P10) = rx331_cur."!cursor_start"()
- $P10."!cursor_pass"(rx331_pos, "")
- rx331_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx340_fail
+ inc rx340_pos
+ 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_335_done
- rxcap_335_fail:
- goto rx331_fail
- rxcap_335_done:
- # rx pass
- rx331_cur."!cursor_pass"(rx331_pos, "backslash:sym<w>")
- rx331_cur."!cursor_debug"("PASS ", "backslash:sym<w>", " at pos=", rx331_pos)
- .return (rx331_cur)
- rx331_restart:
-.annotate 'line', 3
- rx331_cur."!cursor_debug"("NEXT ", "backslash:sym<w>")
- rx331_fail:
- (rx331_rep, rx331_pos, $I10, $P10) = rx331_cur."!mark_fail"(0)
- lt rx331_pos, -1, rx331_done
- eq rx331_pos, -1, rx331_fail
- jump $I10
- rx331_done:
- rx331_cur."!cursor_fail"()
- rx331_cur."!cursor_debug"("FAIL ", "backslash:sym<w>")
- .return (rx331_cur)
+ goto rxcap_344_done
+ rxcap_344_fail:
+ goto rx340_fail
+ rxcap_344_done:
+ # rx pass
+ rx340_cur."!cursor_pass"(rx340_pos, "backslash:sym<w>")
+ if_null rx340_debug, debug_331
+ rx340_cur."!cursor_debug"("PASS", "backslash:sym<w>", " at pos=", rx340_pos)
+ debug_331:
+ .return (rx340_cur)
+ rx340_restart:
+.annotate 'line', 3
+ if_null rx340_debug, debug_332
+ rx340_cur."!cursor_debug"("NEXT", "backslash:sym<w>")
+ debug_332:
+ rx340_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
+ rx340_done:
+ rx340_cur."!cursor_fail"()
+ if_null rx340_debug, debug_333
+ rx340_cur."!cursor_debug"("FAIL", "backslash:sym<w>")
+ debug_333:
+ .return (rx340_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>" :subid("96_1280467470.54449") :method
-.annotate 'line', 3
- new $P333, "ResizablePMCArray"
- push $P333, "N"
- push $P333, "W"
- push $P333, "S"
- push $P333, "D"
- push $P333, "n"
- push $P333, "w"
- push $P333, "s"
- push $P333, "d"
- .return ($P333)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>" :subid("97_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx337_tgt
- .local int rx337_pos
- .local int rx337_off
- .local int rx337_eos
- .local int rx337_rep
- .local pmc rx337_cur
- (rx337_cur, rx337_pos, rx337_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx337_cur
- .local pmc match
- .lex "$/", match
- length rx337_eos, rx337_tgt
- gt rx337_pos, rx337_eos, rx337_done
- set rx337_off, 0
- lt rx337_pos, 2, rx337_start
- sub rx337_off, rx337_pos, 1
- substr rx337_tgt, rx337_tgt, rx337_off
- rx337_start:
- eq $I10, 1, rx337_restart
- rx337_cur."!cursor_debug"("START ", "backslash:sym<b>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan340_done
- goto rxscan340_scan
- rxscan340_loop:
- ($P10) = rx337_cur."from"()
- inc $P10
- set rx337_pos, $P10
- ge rx337_pos, rx337_eos, rxscan340_done
- rxscan340_scan:
- set_addr $I10, rxscan340_loop
- rx337_cur."!mark_push"(0, rx337_pos, $I10)
- rxscan340_done:
-.annotate 'line', 124
+.sub "!PREFIX__backslash:sym<w>" :subid("98_1282323996.47527") :method
+.annotate 'line', 3
+ new $P342, "ResizablePMCArray"
+ push $P342, "N"
+ push $P342, "W"
+ push $P342, "S"
+ push $P342, "D"
+ push $P342, "n"
+ push $P342, "w"
+ push $P342, "s"
+ push $P342, "d"
+ .return ($P342)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<b>" :subid("99_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx346_tgt
+ .local int rx346_pos
+ .local int rx346_off
+ .local int rx346_eos
+ .local int rx346_rep
+ .local pmc rx346_cur
+ .local pmc rx346_debug
+ (rx346_cur, rx346_pos, rx346_tgt, $I10) = self."!cursor_start"()
+ getattribute rx346_debug, rx346_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx346_cur
+ .local pmc match
+ .lex "$/", match
+ length rx346_eos, rx346_tgt
+ gt rx346_pos, rx346_eos, rx346_done
+ set rx346_off, 0
+ lt rx346_pos, 2, rx346_start
+ sub rx346_off, rx346_pos, 1
+ substr rx346_tgt, rx346_tgt, rx346_off
+ rx346_start:
+ eq $I10, 1, rx346_restart
+ if_null rx346_debug, debug_334
+ rx346_cur."!cursor_debug"("START", "backslash:sym<b>")
+ debug_334:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan349_done
+ goto rxscan349_scan
+ rxscan349_loop:
+ ($P10) = rx346_cur."from"()
+ inc $P10
+ set rx346_pos, $P10
+ ge rx346_pos, rx346_eos, rxscan349_done
+ rxscan349_scan:
+ set_addr $I10, rxscan349_loop
+ rx346_cur."!mark_push"(0, rx346_pos, $I10)
+ rxscan349_done:
+.annotate 'line', 131
# rx subcapture "sym"
- set_addr $I10, rxcap_341_fail
- rx337_cur."!mark_push"(0, rx337_pos, $I10)
+ set_addr $I10, rxcap_350_fail
+ rx346_cur."!mark_push"(0, rx346_pos, $I10)
# rx enumcharlist negate=0
- ge rx337_pos, rx337_eos, rx337_fail
- sub $I10, rx337_pos, rx337_off
- substr $S10, rx337_tgt, $I10, 1
+ ge rx346_pos, rx346_eos, rx346_fail
+ sub $I10, rx346_pos, rx346_off
+ substr $S10, rx346_tgt, $I10, 1
index $I11, "bB", $S10
- lt $I11, 0, rx337_fail
- inc rx337_pos
- set_addr $I10, rxcap_341_fail
- ($I12, $I11) = rx337_cur."!mark_peek"($I10)
- rx337_cur."!cursor_pos"($I11)
- ($P10) = rx337_cur."!cursor_start"()
- $P10."!cursor_pass"(rx337_pos, "")
- rx337_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx346_fail
+ inc rx346_pos
+ set_addr $I10, rxcap_350_fail
+ ($I12, $I11) = rx346_cur."!mark_peek"($I10)
+ rx346_cur."!cursor_pos"($I11)
+ ($P10) = rx346_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx346_pos, "")
+ rx346_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_341_done
- rxcap_341_fail:
- goto rx337_fail
- rxcap_341_done:
- # rx pass
- rx337_cur."!cursor_pass"(rx337_pos, "backslash:sym<b>")
- rx337_cur."!cursor_debug"("PASS ", "backslash:sym<b>", " at pos=", rx337_pos)
- .return (rx337_cur)
- rx337_restart:
-.annotate 'line', 3
- rx337_cur."!cursor_debug"("NEXT ", "backslash:sym<b>")
- rx337_fail:
- (rx337_rep, rx337_pos, $I10, $P10) = rx337_cur."!mark_fail"(0)
- lt rx337_pos, -1, rx337_done
- eq rx337_pos, -1, rx337_fail
- jump $I10
- rx337_done:
- rx337_cur."!cursor_fail"()
- rx337_cur."!cursor_debug"("FAIL ", "backslash:sym<b>")
- .return (rx337_cur)
+ goto rxcap_350_done
+ rxcap_350_fail:
+ goto rx346_fail
+ rxcap_350_done:
+ # rx pass
+ rx346_cur."!cursor_pass"(rx346_pos, "backslash:sym<b>")
+ if_null rx346_debug, debug_335
+ rx346_cur."!cursor_debug"("PASS", "backslash:sym<b>", " at pos=", rx346_pos)
+ debug_335:
+ .return (rx346_cur)
+ rx346_restart:
+.annotate 'line', 3
+ if_null rx346_debug, debug_336
+ rx346_cur."!cursor_debug"("NEXT", "backslash:sym<b>")
+ debug_336:
+ rx346_fail:
+ (rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0)
+ lt rx346_pos, -1, rx346_done
+ eq rx346_pos, -1, rx346_fail
+ jump $I10
+ rx346_done:
+ rx346_cur."!cursor_fail"()
+ if_null rx346_debug, debug_337
+ rx346_cur."!cursor_debug"("FAIL", "backslash:sym<b>")
+ debug_337:
+ .return (rx346_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>" :subid("98_1280467470.54449") :method
-.annotate 'line', 3
- new $P339, "ResizablePMCArray"
- push $P339, "B"
- push $P339, "b"
- .return ($P339)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>" :subid("99_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx343_tgt
- .local int rx343_pos
- .local int rx343_off
- .local int rx343_eos
- .local int rx343_rep
- .local pmc rx343_cur
- (rx343_cur, rx343_pos, rx343_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx343_cur
- .local pmc match
- .lex "$/", match
- length rx343_eos, rx343_tgt
- gt rx343_pos, rx343_eos, rx343_done
- set rx343_off, 0
- lt rx343_pos, 2, rx343_start
- sub rx343_off, rx343_pos, 1
- substr rx343_tgt, rx343_tgt, rx343_off
- rx343_start:
- eq $I10, 1, rx343_restart
- rx343_cur."!cursor_debug"("START ", "backslash:sym<e>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan346_done
- goto rxscan346_scan
- rxscan346_loop:
- ($P10) = rx343_cur."from"()
- inc $P10
- set rx343_pos, $P10
- ge rx343_pos, rx343_eos, rxscan346_done
- rxscan346_scan:
- set_addr $I10, rxscan346_loop
- rx343_cur."!mark_push"(0, rx343_pos, $I10)
- rxscan346_done:
-.annotate 'line', 125
+.sub "!PREFIX__backslash:sym<b>" :subid("100_1282323996.47527") :method
+.annotate 'line', 3
+ new $P348, "ResizablePMCArray"
+ push $P348, "B"
+ push $P348, "b"
+ .return ($P348)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<e>" :subid("101_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx352_tgt
+ .local int rx352_pos
+ .local int rx352_off
+ .local int rx352_eos
+ .local int rx352_rep
+ .local pmc rx352_cur
+ .local pmc rx352_debug
+ (rx352_cur, rx352_pos, rx352_tgt, $I10) = self."!cursor_start"()
+ getattribute rx352_debug, rx352_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx352_cur
+ .local pmc match
+ .lex "$/", match
+ length rx352_eos, rx352_tgt
+ gt rx352_pos, rx352_eos, rx352_done
+ set rx352_off, 0
+ lt rx352_pos, 2, rx352_start
+ sub rx352_off, rx352_pos, 1
+ substr rx352_tgt, rx352_tgt, rx352_off
+ rx352_start:
+ eq $I10, 1, rx352_restart
+ if_null rx352_debug, debug_338
+ rx352_cur."!cursor_debug"("START", "backslash:sym<e>")
+ debug_338:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan355_done
+ goto rxscan355_scan
+ rxscan355_loop:
+ ($P10) = rx352_cur."from"()
+ inc $P10
+ set rx352_pos, $P10
+ ge rx352_pos, rx352_eos, rxscan355_done
+ rxscan355_scan:
+ set_addr $I10, rxscan355_loop
+ rx352_cur."!mark_push"(0, rx352_pos, $I10)
+ rxscan355_done:
+.annotate 'line', 132
# rx subcapture "sym"
- set_addr $I10, rxcap_347_fail
- rx343_cur."!mark_push"(0, rx343_pos, $I10)
+ set_addr $I10, rxcap_356_fail
+ rx352_cur."!mark_push"(0, rx352_pos, $I10)
# rx enumcharlist negate=0
- ge rx343_pos, rx343_eos, rx343_fail
- sub $I10, rx343_pos, rx343_off
- substr $S10, rx343_tgt, $I10, 1
+ ge rx352_pos, rx352_eos, rx352_fail
+ sub $I10, rx352_pos, rx352_off
+ substr $S10, rx352_tgt, $I10, 1
index $I11, "eE", $S10
- lt $I11, 0, rx343_fail
- inc rx343_pos
- set_addr $I10, rxcap_347_fail
- ($I12, $I11) = rx343_cur."!mark_peek"($I10)
- rx343_cur."!cursor_pos"($I11)
- ($P10) = rx343_cur."!cursor_start"()
- $P10."!cursor_pass"(rx343_pos, "")
- rx343_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx352_fail
+ inc rx352_pos
+ set_addr $I10, rxcap_356_fail
+ ($I12, $I11) = rx352_cur."!mark_peek"($I10)
+ rx352_cur."!cursor_pos"($I11)
+ ($P10) = rx352_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx352_pos, "")
+ rx352_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_347_done
- rxcap_347_fail:
- goto rx343_fail
- rxcap_347_done:
- # rx pass
- rx343_cur."!cursor_pass"(rx343_pos, "backslash:sym<e>")
- rx343_cur."!cursor_debug"("PASS ", "backslash:sym<e>", " at pos=", rx343_pos)
- .return (rx343_cur)
- rx343_restart:
-.annotate 'line', 3
- rx343_cur."!cursor_debug"("NEXT ", "backslash:sym<e>")
- rx343_fail:
- (rx343_rep, rx343_pos, $I10, $P10) = rx343_cur."!mark_fail"(0)
- lt rx343_pos, -1, rx343_done
- eq rx343_pos, -1, rx343_fail
- jump $I10
- rx343_done:
- rx343_cur."!cursor_fail"()
- rx343_cur."!cursor_debug"("FAIL ", "backslash:sym<e>")
- .return (rx343_cur)
+ goto rxcap_356_done
+ rxcap_356_fail:
+ goto rx352_fail
+ rxcap_356_done:
+ # rx pass
+ rx352_cur."!cursor_pass"(rx352_pos, "backslash:sym<e>")
+ if_null rx352_debug, debug_339
+ rx352_cur."!cursor_debug"("PASS", "backslash:sym<e>", " at pos=", rx352_pos)
+ debug_339:
+ .return (rx352_cur)
+ rx352_restart:
+.annotate 'line', 3
+ if_null rx352_debug, debug_340
+ rx352_cur."!cursor_debug"("NEXT", "backslash:sym<e>")
+ debug_340:
+ rx352_fail:
+ (rx352_rep, rx352_pos, $I10, $P10) = rx352_cur."!mark_fail"(0)
+ lt rx352_pos, -1, rx352_done
+ eq rx352_pos, -1, rx352_fail
+ jump $I10
+ rx352_done:
+ rx352_cur."!cursor_fail"()
+ if_null rx352_debug, debug_341
+ rx352_cur."!cursor_debug"("FAIL", "backslash:sym<e>")
+ debug_341:
+ .return (rx352_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>" :subid("100_1280467470.54449") :method
-.annotate 'line', 3
- new $P345, "ResizablePMCArray"
- push $P345, "E"
- push $P345, "e"
- .return ($P345)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>" :subid("101_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx349_tgt
- .local int rx349_pos
- .local int rx349_off
- .local int rx349_eos
- .local int rx349_rep
- .local pmc rx349_cur
- (rx349_cur, rx349_pos, rx349_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx349_cur
- .local pmc match
- .lex "$/", match
- length rx349_eos, rx349_tgt
- gt rx349_pos, rx349_eos, rx349_done
- set rx349_off, 0
- lt rx349_pos, 2, rx349_start
- sub rx349_off, rx349_pos, 1
- substr rx349_tgt, rx349_tgt, rx349_off
- rx349_start:
- eq $I10, 1, rx349_restart
- rx349_cur."!cursor_debug"("START ", "backslash:sym<f>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan352_done
- goto rxscan352_scan
- rxscan352_loop:
- ($P10) = rx349_cur."from"()
- inc $P10
- set rx349_pos, $P10
- ge rx349_pos, rx349_eos, rxscan352_done
- rxscan352_scan:
- set_addr $I10, rxscan352_loop
- rx349_cur."!mark_push"(0, rx349_pos, $I10)
- rxscan352_done:
-.annotate 'line', 126
+.sub "!PREFIX__backslash:sym<e>" :subid("102_1282323996.47527") :method
+.annotate 'line', 3
+ new $P354, "ResizablePMCArray"
+ push $P354, "E"
+ push $P354, "e"
+ .return ($P354)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<f>" :subid("103_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx358_tgt
+ .local int rx358_pos
+ .local int rx358_off
+ .local int rx358_eos
+ .local int rx358_rep
+ .local pmc rx358_cur
+ .local pmc rx358_debug
+ (rx358_cur, rx358_pos, rx358_tgt, $I10) = self."!cursor_start"()
+ getattribute rx358_debug, rx358_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx358_cur
+ .local pmc match
+ .lex "$/", match
+ length rx358_eos, rx358_tgt
+ gt rx358_pos, rx358_eos, rx358_done
+ set rx358_off, 0
+ lt rx358_pos, 2, rx358_start
+ sub rx358_off, rx358_pos, 1
+ substr rx358_tgt, rx358_tgt, rx358_off
+ rx358_start:
+ eq $I10, 1, rx358_restart
+ if_null rx358_debug, debug_342
+ rx358_cur."!cursor_debug"("START", "backslash:sym<f>")
+ debug_342:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan361_done
+ goto rxscan361_scan
+ rxscan361_loop:
+ ($P10) = rx358_cur."from"()
+ inc $P10
+ set rx358_pos, $P10
+ ge rx358_pos, rx358_eos, rxscan361_done
+ rxscan361_scan:
+ set_addr $I10, rxscan361_loop
+ rx358_cur."!mark_push"(0, rx358_pos, $I10)
+ rxscan361_done:
+.annotate 'line', 133
# rx subcapture "sym"
- set_addr $I10, rxcap_353_fail
- rx349_cur."!mark_push"(0, rx349_pos, $I10)
+ set_addr $I10, rxcap_362_fail
+ rx358_cur."!mark_push"(0, rx358_pos, $I10)
# rx enumcharlist negate=0
- ge rx349_pos, rx349_eos, rx349_fail
- sub $I10, rx349_pos, rx349_off
- substr $S10, rx349_tgt, $I10, 1
+ ge rx358_pos, rx358_eos, rx358_fail
+ sub $I10, rx358_pos, rx358_off
+ substr $S10, rx358_tgt, $I10, 1
index $I11, "fF", $S10
- lt $I11, 0, rx349_fail
- inc rx349_pos
- set_addr $I10, rxcap_353_fail
- ($I12, $I11) = rx349_cur."!mark_peek"($I10)
- rx349_cur."!cursor_pos"($I11)
- ($P10) = rx349_cur."!cursor_start"()
- $P10."!cursor_pass"(rx349_pos, "")
- rx349_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx358_fail
+ inc rx358_pos
+ set_addr $I10, rxcap_362_fail
+ ($I12, $I11) = rx358_cur."!mark_peek"($I10)
+ rx358_cur."!cursor_pos"($I11)
+ ($P10) = rx358_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx358_pos, "")
+ rx358_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_353_done
- rxcap_353_fail:
- goto rx349_fail
- rxcap_353_done:
- # rx pass
- rx349_cur."!cursor_pass"(rx349_pos, "backslash:sym<f>")
- rx349_cur."!cursor_debug"("PASS ", "backslash:sym<f>", " at pos=", rx349_pos)
- .return (rx349_cur)
- rx349_restart:
-.annotate 'line', 3
- rx349_cur."!cursor_debug"("NEXT ", "backslash:sym<f>")
- rx349_fail:
- (rx349_rep, rx349_pos, $I10, $P10) = rx349_cur."!mark_fail"(0)
- lt rx349_pos, -1, rx349_done
- eq rx349_pos, -1, rx349_fail
- jump $I10
- rx349_done:
- rx349_cur."!cursor_fail"()
- rx349_cur."!cursor_debug"("FAIL ", "backslash:sym<f>")
- .return (rx349_cur)
+ goto rxcap_362_done
+ rxcap_362_fail:
+ goto rx358_fail
+ rxcap_362_done:
+ # rx pass
+ rx358_cur."!cursor_pass"(rx358_pos, "backslash:sym<f>")
+ if_null rx358_debug, debug_343
+ rx358_cur."!cursor_debug"("PASS", "backslash:sym<f>", " at pos=", rx358_pos)
+ debug_343:
+ .return (rx358_cur)
+ rx358_restart:
+.annotate 'line', 3
+ if_null rx358_debug, debug_344
+ rx358_cur."!cursor_debug"("NEXT", "backslash:sym<f>")
+ debug_344:
+ rx358_fail:
+ (rx358_rep, rx358_pos, $I10, $P10) = rx358_cur."!mark_fail"(0)
+ lt rx358_pos, -1, rx358_done
+ eq rx358_pos, -1, rx358_fail
+ jump $I10
+ rx358_done:
+ rx358_cur."!cursor_fail"()
+ if_null rx358_debug, debug_345
+ rx358_cur."!cursor_debug"("FAIL", "backslash:sym<f>")
+ debug_345:
+ .return (rx358_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>" :subid("102_1280467470.54449") :method
-.annotate 'line', 3
- new $P351, "ResizablePMCArray"
- push $P351, "F"
- push $P351, "f"
- .return ($P351)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>" :subid("103_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx355_tgt
- .local int rx355_pos
- .local int rx355_off
- .local int rx355_eos
- .local int rx355_rep
- .local pmc rx355_cur
- (rx355_cur, rx355_pos, rx355_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx355_cur
- .local pmc match
- .lex "$/", match
- length rx355_eos, rx355_tgt
- gt rx355_pos, rx355_eos, rx355_done
- set rx355_off, 0
- lt rx355_pos, 2, rx355_start
- sub rx355_off, rx355_pos, 1
- substr rx355_tgt, rx355_tgt, rx355_off
- rx355_start:
- eq $I10, 1, rx355_restart
- rx355_cur."!cursor_debug"("START ", "backslash:sym<h>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan358_done
- goto rxscan358_scan
- rxscan358_loop:
- ($P10) = rx355_cur."from"()
- inc $P10
- set rx355_pos, $P10
- ge rx355_pos, rx355_eos, rxscan358_done
- rxscan358_scan:
- set_addr $I10, rxscan358_loop
- rx355_cur."!mark_push"(0, rx355_pos, $I10)
- rxscan358_done:
-.annotate 'line', 127
+.sub "!PREFIX__backslash:sym<f>" :subid("104_1282323996.47527") :method
+.annotate 'line', 3
+ new $P360, "ResizablePMCArray"
+ push $P360, "F"
+ push $P360, "f"
+ .return ($P360)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<h>" :subid("105_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx364_tgt
+ .local int rx364_pos
+ .local int rx364_off
+ .local int rx364_eos
+ .local int rx364_rep
+ .local pmc rx364_cur
+ .local pmc rx364_debug
+ (rx364_cur, rx364_pos, rx364_tgt, $I10) = self."!cursor_start"()
+ getattribute rx364_debug, rx364_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx364_cur
+ .local pmc match
+ .lex "$/", match
+ length rx364_eos, rx364_tgt
+ gt rx364_pos, rx364_eos, rx364_done
+ set rx364_off, 0
+ lt rx364_pos, 2, rx364_start
+ sub rx364_off, rx364_pos, 1
+ substr rx364_tgt, rx364_tgt, rx364_off
+ rx364_start:
+ eq $I10, 1, rx364_restart
+ if_null rx364_debug, debug_346
+ rx364_cur."!cursor_debug"("START", "backslash:sym<h>")
+ debug_346:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan367_done
+ goto rxscan367_scan
+ rxscan367_loop:
+ ($P10) = rx364_cur."from"()
+ inc $P10
+ set rx364_pos, $P10
+ ge rx364_pos, rx364_eos, rxscan367_done
+ rxscan367_scan:
+ set_addr $I10, rxscan367_loop
+ rx364_cur."!mark_push"(0, rx364_pos, $I10)
+ rxscan367_done:
+.annotate 'line', 134
# rx subcapture "sym"
- set_addr $I10, rxcap_359_fail
- rx355_cur."!mark_push"(0, rx355_pos, $I10)
+ set_addr $I10, rxcap_368_fail
+ rx364_cur."!mark_push"(0, rx364_pos, $I10)
# rx enumcharlist negate=0
- ge rx355_pos, rx355_eos, rx355_fail
- sub $I10, rx355_pos, rx355_off
- substr $S10, rx355_tgt, $I10, 1
+ ge rx364_pos, rx364_eos, rx364_fail
+ sub $I10, rx364_pos, rx364_off
+ substr $S10, rx364_tgt, $I10, 1
index $I11, "hH", $S10
- lt $I11, 0, rx355_fail
- inc rx355_pos
- set_addr $I10, rxcap_359_fail
- ($I12, $I11) = rx355_cur."!mark_peek"($I10)
- rx355_cur."!cursor_pos"($I11)
- ($P10) = rx355_cur."!cursor_start"()
- $P10."!cursor_pass"(rx355_pos, "")
- rx355_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx364_fail
+ inc rx364_pos
+ set_addr $I10, rxcap_368_fail
+ ($I12, $I11) = rx364_cur."!mark_peek"($I10)
+ rx364_cur."!cursor_pos"($I11)
+ ($P10) = rx364_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx364_pos, "")
+ rx364_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_359_done
- rxcap_359_fail:
- goto rx355_fail
- rxcap_359_done:
- # rx pass
- rx355_cur."!cursor_pass"(rx355_pos, "backslash:sym<h>")
- rx355_cur."!cursor_debug"("PASS ", "backslash:sym<h>", " at pos=", rx355_pos)
- .return (rx355_cur)
- rx355_restart:
-.annotate 'line', 3
- rx355_cur."!cursor_debug"("NEXT ", "backslash:sym<h>")
- rx355_fail:
- (rx355_rep, rx355_pos, $I10, $P10) = rx355_cur."!mark_fail"(0)
- lt rx355_pos, -1, rx355_done
- eq rx355_pos, -1, rx355_fail
- jump $I10
- rx355_done:
- rx355_cur."!cursor_fail"()
- rx355_cur."!cursor_debug"("FAIL ", "backslash:sym<h>")
- .return (rx355_cur)
+ goto rxcap_368_done
+ rxcap_368_fail:
+ goto rx364_fail
+ rxcap_368_done:
+ # rx pass
+ rx364_cur."!cursor_pass"(rx364_pos, "backslash:sym<h>")
+ if_null rx364_debug, debug_347
+ rx364_cur."!cursor_debug"("PASS", "backslash:sym<h>", " at pos=", rx364_pos)
+ debug_347:
+ .return (rx364_cur)
+ rx364_restart:
+.annotate 'line', 3
+ if_null rx364_debug, debug_348
+ rx364_cur."!cursor_debug"("NEXT", "backslash:sym<h>")
+ debug_348:
+ rx364_fail:
+ (rx364_rep, rx364_pos, $I10, $P10) = rx364_cur."!mark_fail"(0)
+ lt rx364_pos, -1, rx364_done
+ eq rx364_pos, -1, rx364_fail
+ jump $I10
+ rx364_done:
+ rx364_cur."!cursor_fail"()
+ if_null rx364_debug, debug_349
+ rx364_cur."!cursor_debug"("FAIL", "backslash:sym<h>")
+ debug_349:
+ .return (rx364_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>" :subid("104_1280467470.54449") :method
-.annotate 'line', 3
- new $P357, "ResizablePMCArray"
- push $P357, "H"
- push $P357, "h"
- .return ($P357)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>" :subid("105_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx361_tgt
- .local int rx361_pos
- .local int rx361_off
- .local int rx361_eos
- .local int rx361_rep
- .local pmc rx361_cur
- (rx361_cur, rx361_pos, rx361_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx361_cur
- .local pmc match
- .lex "$/", match
- length rx361_eos, rx361_tgt
- gt rx361_pos, rx361_eos, rx361_done
- set rx361_off, 0
- lt rx361_pos, 2, rx361_start
- sub rx361_off, rx361_pos, 1
- substr rx361_tgt, rx361_tgt, rx361_off
- rx361_start:
- eq $I10, 1, rx361_restart
- rx361_cur."!cursor_debug"("START ", "backslash:sym<r>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan364_done
- goto rxscan364_scan
- rxscan364_loop:
- ($P10) = rx361_cur."from"()
- inc $P10
- set rx361_pos, $P10
- ge rx361_pos, rx361_eos, rxscan364_done
- rxscan364_scan:
- set_addr $I10, rxscan364_loop
- rx361_cur."!mark_push"(0, rx361_pos, $I10)
- rxscan364_done:
-.annotate 'line', 128
+.sub "!PREFIX__backslash:sym<h>" :subid("106_1282323996.47527") :method
+.annotate 'line', 3
+ new $P366, "ResizablePMCArray"
+ push $P366, "H"
+ push $P366, "h"
+ .return ($P366)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<r>" :subid("107_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx370_tgt
+ .local int rx370_pos
+ .local int rx370_off
+ .local int rx370_eos
+ .local int rx370_rep
+ .local pmc rx370_cur
+ .local pmc rx370_debug
+ (rx370_cur, rx370_pos, rx370_tgt, $I10) = self."!cursor_start"()
+ getattribute rx370_debug, rx370_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx370_cur
+ .local pmc match
+ .lex "$/", match
+ length rx370_eos, rx370_tgt
+ gt rx370_pos, rx370_eos, rx370_done
+ 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:
+ eq $I10, 1, rx370_restart
+ if_null rx370_debug, debug_350
+ rx370_cur."!cursor_debug"("START", "backslash:sym<r>")
+ debug_350:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan373_done
+ goto rxscan373_scan
+ rxscan373_loop:
+ ($P10) = rx370_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', 135
# rx subcapture "sym"
- set_addr $I10, rxcap_365_fail
- rx361_cur."!mark_push"(0, rx361_pos, $I10)
+ set_addr $I10, rxcap_374_fail
+ rx370_cur."!mark_push"(0, rx370_pos, $I10)
# rx enumcharlist negate=0
- ge rx361_pos, rx361_eos, rx361_fail
- sub $I10, rx361_pos, rx361_off
- substr $S10, rx361_tgt, $I10, 1
+ ge rx370_pos, rx370_eos, rx370_fail
+ sub $I10, rx370_pos, rx370_off
+ substr $S10, rx370_tgt, $I10, 1
index $I11, "rR", $S10
- lt $I11, 0, rx361_fail
- inc rx361_pos
- set_addr $I10, rxcap_365_fail
- ($I12, $I11) = rx361_cur."!mark_peek"($I10)
- rx361_cur."!cursor_pos"($I11)
- ($P10) = rx361_cur."!cursor_start"()
- $P10."!cursor_pass"(rx361_pos, "")
- rx361_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx370_fail
+ inc rx370_pos
+ set_addr $I10, rxcap_374_fail
+ ($I12, $I11) = rx370_cur."!mark_peek"($I10)
+ rx370_cur."!cursor_pos"($I11)
+ ($P10) = rx370_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx370_pos, "")
+ rx370_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_365_done
- rxcap_365_fail:
- goto rx361_fail
- rxcap_365_done:
- # rx pass
- rx361_cur."!cursor_pass"(rx361_pos, "backslash:sym<r>")
- rx361_cur."!cursor_debug"("PASS ", "backslash:sym<r>", " at pos=", rx361_pos)
- .return (rx361_cur)
- rx361_restart:
-.annotate 'line', 3
- rx361_cur."!cursor_debug"("NEXT ", "backslash:sym<r>")
- rx361_fail:
- (rx361_rep, rx361_pos, $I10, $P10) = rx361_cur."!mark_fail"(0)
- lt rx361_pos, -1, rx361_done
- eq rx361_pos, -1, rx361_fail
- jump $I10
- rx361_done:
- rx361_cur."!cursor_fail"()
- rx361_cur."!cursor_debug"("FAIL ", "backslash:sym<r>")
- .return (rx361_cur)
+ goto rxcap_374_done
+ rxcap_374_fail:
+ goto rx370_fail
+ rxcap_374_done:
+ # rx pass
+ rx370_cur."!cursor_pass"(rx370_pos, "backslash:sym<r>")
+ if_null rx370_debug, debug_351
+ rx370_cur."!cursor_debug"("PASS", "backslash:sym<r>", " at pos=", rx370_pos)
+ debug_351:
+ .return (rx370_cur)
+ rx370_restart:
+.annotate 'line', 3
+ if_null rx370_debug, debug_352
+ rx370_cur."!cursor_debug"("NEXT", "backslash:sym<r>")
+ debug_352:
+ rx370_fail:
+ (rx370_rep, rx370_pos, $I10, $P10) = rx370_cur."!mark_fail"(0)
+ lt rx370_pos, -1, rx370_done
+ eq rx370_pos, -1, rx370_fail
+ jump $I10
+ rx370_done:
+ rx370_cur."!cursor_fail"()
+ if_null rx370_debug, debug_353
+ rx370_cur."!cursor_debug"("FAIL", "backslash:sym<r>")
+ debug_353:
+ .return (rx370_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>" :subid("106_1280467470.54449") :method
-.annotate 'line', 3
- new $P363, "ResizablePMCArray"
- push $P363, "R"
- push $P363, "r"
- .return ($P363)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>" :subid("107_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .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, $I10) = self."!cursor_start"()
- .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:
- eq $I10, 1, rx367_restart
- rx367_cur."!cursor_debug"("START ", "backslash:sym<t>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan370_done
- goto rxscan370_scan
- rxscan370_loop:
- ($P10) = rx367_cur."from"()
- inc $P10
- set rx367_pos, $P10
- ge rx367_pos, rx367_eos, rxscan370_done
- rxscan370_scan:
- set_addr $I10, rxscan370_loop
- rx367_cur."!mark_push"(0, rx367_pos, $I10)
- rxscan370_done:
-.annotate 'line', 129
+.sub "!PREFIX__backslash:sym<r>" :subid("108_1282323996.47527") :method
+.annotate 'line', 3
+ new $P372, "ResizablePMCArray"
+ push $P372, "R"
+ push $P372, "r"
+ .return ($P372)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<t>" :subid("109_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx376_tgt
+ .local int rx376_pos
+ .local int rx376_off
+ .local int rx376_eos
+ .local int rx376_rep
+ .local pmc rx376_cur
+ .local pmc rx376_debug
+ (rx376_cur, rx376_pos, rx376_tgt, $I10) = self."!cursor_start"()
+ getattribute rx376_debug, rx376_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx376_cur
+ .local pmc match
+ .lex "$/", match
+ length rx376_eos, rx376_tgt
+ gt rx376_pos, rx376_eos, rx376_done
+ set rx376_off, 0
+ lt rx376_pos, 2, rx376_start
+ sub rx376_off, rx376_pos, 1
+ substr rx376_tgt, rx376_tgt, rx376_off
+ rx376_start:
+ eq $I10, 1, rx376_restart
+ if_null rx376_debug, debug_354
+ rx376_cur."!cursor_debug"("START", "backslash:sym<t>")
+ debug_354:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan379_done
+ goto rxscan379_scan
+ rxscan379_loop:
+ ($P10) = rx376_cur."from"()
+ inc $P10
+ set rx376_pos, $P10
+ ge rx376_pos, rx376_eos, rxscan379_done
+ rxscan379_scan:
+ set_addr $I10, rxscan379_loop
+ rx376_cur."!mark_push"(0, rx376_pos, $I10)
+ rxscan379_done:
+.annotate 'line', 136
# rx subcapture "sym"
- set_addr $I10, rxcap_371_fail
- rx367_cur."!mark_push"(0, rx367_pos, $I10)
+ set_addr $I10, rxcap_380_fail
+ rx376_cur."!mark_push"(0, rx376_pos, $I10)
# rx enumcharlist negate=0
- ge rx367_pos, rx367_eos, rx367_fail
- sub $I10, rx367_pos, rx367_off
- substr $S10, rx367_tgt, $I10, 1
+ ge rx376_pos, rx376_eos, rx376_fail
+ sub $I10, rx376_pos, rx376_off
+ substr $S10, rx376_tgt, $I10, 1
index $I11, "tT", $S10
- lt $I11, 0, rx367_fail
- inc rx367_pos
- set_addr $I10, rxcap_371_fail
- ($I12, $I11) = rx367_cur."!mark_peek"($I10)
- rx367_cur."!cursor_pos"($I11)
- ($P10) = rx367_cur."!cursor_start"()
- $P10."!cursor_pass"(rx367_pos, "")
- rx367_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx376_fail
+ inc rx376_pos
+ set_addr $I10, rxcap_380_fail
+ ($I12, $I11) = rx376_cur."!mark_peek"($I10)
+ rx376_cur."!cursor_pos"($I11)
+ ($P10) = rx376_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx376_pos, "")
+ rx376_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_371_done
- rxcap_371_fail:
- goto rx367_fail
- rxcap_371_done:
- # rx pass
- rx367_cur."!cursor_pass"(rx367_pos, "backslash:sym<t>")
- rx367_cur."!cursor_debug"("PASS ", "backslash:sym<t>", " at pos=", rx367_pos)
- .return (rx367_cur)
- rx367_restart:
-.annotate 'line', 3
- rx367_cur."!cursor_debug"("NEXT ", "backslash:sym<t>")
- rx367_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
- rx367_done:
- rx367_cur."!cursor_fail"()
- rx367_cur."!cursor_debug"("FAIL ", "backslash:sym<t>")
- .return (rx367_cur)
+ goto rxcap_380_done
+ rxcap_380_fail:
+ goto rx376_fail
+ rxcap_380_done:
+ # rx pass
+ rx376_cur."!cursor_pass"(rx376_pos, "backslash:sym<t>")
+ if_null rx376_debug, debug_355
+ rx376_cur."!cursor_debug"("PASS", "backslash:sym<t>", " at pos=", rx376_pos)
+ debug_355:
+ .return (rx376_cur)
+ rx376_restart:
+.annotate 'line', 3
+ if_null rx376_debug, debug_356
+ rx376_cur."!cursor_debug"("NEXT", "backslash:sym<t>")
+ debug_356:
+ rx376_fail:
+ (rx376_rep, rx376_pos, $I10, $P10) = rx376_cur."!mark_fail"(0)
+ lt rx376_pos, -1, rx376_done
+ eq rx376_pos, -1, rx376_fail
+ jump $I10
+ rx376_done:
+ rx376_cur."!cursor_fail"()
+ if_null rx376_debug, debug_357
+ rx376_cur."!cursor_debug"("FAIL", "backslash:sym<t>")
+ debug_357:
+ .return (rx376_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>" :subid("108_1280467470.54449") :method
-.annotate 'line', 3
- new $P369, "ResizablePMCArray"
- push $P369, "T"
- push $P369, "t"
- .return ($P369)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>" :subid("109_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx373_tgt
- .local int rx373_pos
- .local int rx373_off
- .local int rx373_eos
- .local int rx373_rep
- .local pmc rx373_cur
- (rx373_cur, rx373_pos, rx373_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx373_cur
- .local pmc match
- .lex "$/", match
- length rx373_eos, rx373_tgt
- gt rx373_pos, rx373_eos, rx373_done
- set rx373_off, 0
- lt rx373_pos, 2, rx373_start
- sub rx373_off, rx373_pos, 1
- substr rx373_tgt, rx373_tgt, rx373_off
- rx373_start:
- eq $I10, 1, rx373_restart
- rx373_cur."!cursor_debug"("START ", "backslash:sym<v>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan376_done
- goto rxscan376_scan
- rxscan376_loop:
- ($P10) = rx373_cur."from"()
- inc $P10
- set rx373_pos, $P10
- ge rx373_pos, rx373_eos, rxscan376_done
- rxscan376_scan:
- set_addr $I10, rxscan376_loop
- rx373_cur."!mark_push"(0, rx373_pos, $I10)
- rxscan376_done:
-.annotate 'line', 130
+.sub "!PREFIX__backslash:sym<t>" :subid("110_1282323996.47527") :method
+.annotate 'line', 3
+ new $P378, "ResizablePMCArray"
+ push $P378, "T"
+ push $P378, "t"
+ .return ($P378)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<v>" :subid("111_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx382_tgt
+ .local int rx382_pos
+ .local int rx382_off
+ .local int rx382_eos
+ .local int rx382_rep
+ .local pmc rx382_cur
+ .local pmc rx382_debug
+ (rx382_cur, rx382_pos, rx382_tgt, $I10) = self."!cursor_start"()
+ getattribute rx382_debug, rx382_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx382_cur
+ .local pmc match
+ .lex "$/", match
+ length rx382_eos, rx382_tgt
+ gt rx382_pos, rx382_eos, rx382_done
+ set rx382_off, 0
+ lt rx382_pos, 2, rx382_start
+ sub rx382_off, rx382_pos, 1
+ substr rx382_tgt, rx382_tgt, rx382_off
+ rx382_start:
+ eq $I10, 1, rx382_restart
+ if_null rx382_debug, debug_358
+ rx382_cur."!cursor_debug"("START", "backslash:sym<v>")
+ debug_358:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan385_done
+ goto rxscan385_scan
+ rxscan385_loop:
+ ($P10) = rx382_cur."from"()
+ inc $P10
+ set rx382_pos, $P10
+ ge rx382_pos, rx382_eos, rxscan385_done
+ rxscan385_scan:
+ set_addr $I10, rxscan385_loop
+ rx382_cur."!mark_push"(0, rx382_pos, $I10)
+ rxscan385_done:
+.annotate 'line', 137
# rx subcapture "sym"
- set_addr $I10, rxcap_377_fail
- rx373_cur."!mark_push"(0, rx373_pos, $I10)
+ set_addr $I10, rxcap_386_fail
+ rx382_cur."!mark_push"(0, rx382_pos, $I10)
# rx enumcharlist negate=0
- ge rx373_pos, rx373_eos, rx373_fail
- sub $I10, rx373_pos, rx373_off
- substr $S10, rx373_tgt, $I10, 1
+ ge rx382_pos, rx382_eos, rx382_fail
+ sub $I10, rx382_pos, rx382_off
+ substr $S10, rx382_tgt, $I10, 1
index $I11, "vV", $S10
- lt $I11, 0, rx373_fail
- inc rx373_pos
- set_addr $I10, rxcap_377_fail
- ($I12, $I11) = rx373_cur."!mark_peek"($I10)
- rx373_cur."!cursor_pos"($I11)
- ($P10) = rx373_cur."!cursor_start"()
- $P10."!cursor_pass"(rx373_pos, "")
- rx373_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx382_fail
+ inc rx382_pos
+ set_addr $I10, rxcap_386_fail
+ ($I12, $I11) = rx382_cur."!mark_peek"($I10)
+ rx382_cur."!cursor_pos"($I11)
+ ($P10) = rx382_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx382_pos, "")
+ rx382_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_377_done
- rxcap_377_fail:
- goto rx373_fail
- rxcap_377_done:
- # rx pass
- rx373_cur."!cursor_pass"(rx373_pos, "backslash:sym<v>")
- rx373_cur."!cursor_debug"("PASS ", "backslash:sym<v>", " at pos=", rx373_pos)
- .return (rx373_cur)
- rx373_restart:
-.annotate 'line', 3
- rx373_cur."!cursor_debug"("NEXT ", "backslash:sym<v>")
- rx373_fail:
- (rx373_rep, rx373_pos, $I10, $P10) = rx373_cur."!mark_fail"(0)
- lt rx373_pos, -1, rx373_done
- eq rx373_pos, -1, rx373_fail
- jump $I10
- rx373_done:
- rx373_cur."!cursor_fail"()
- rx373_cur."!cursor_debug"("FAIL ", "backslash:sym<v>")
- .return (rx373_cur)
+ goto rxcap_386_done
+ rxcap_386_fail:
+ goto rx382_fail
+ rxcap_386_done:
+ # rx pass
+ rx382_cur."!cursor_pass"(rx382_pos, "backslash:sym<v>")
+ if_null rx382_debug, debug_359
+ rx382_cur."!cursor_debug"("PASS", "backslash:sym<v>", " at pos=", rx382_pos)
+ debug_359:
+ .return (rx382_cur)
+ rx382_restart:
+.annotate 'line', 3
+ if_null rx382_debug, debug_360
+ rx382_cur."!cursor_debug"("NEXT", "backslash:sym<v>")
+ debug_360:
+ rx382_fail:
+ (rx382_rep, rx382_pos, $I10, $P10) = rx382_cur."!mark_fail"(0)
+ lt rx382_pos, -1, rx382_done
+ eq rx382_pos, -1, rx382_fail
+ jump $I10
+ rx382_done:
+ rx382_cur."!cursor_fail"()
+ if_null rx382_debug, debug_361
+ rx382_cur."!cursor_debug"("FAIL", "backslash:sym<v>")
+ debug_361:
+ .return (rx382_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>" :subid("110_1280467470.54449") :method
-.annotate 'line', 3
- new $P375, "ResizablePMCArray"
- push $P375, "V"
- push $P375, "v"
- .return ($P375)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>" :subid("111_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx379_tgt
- .local int rx379_pos
- .local int rx379_off
- .local int rx379_eos
- .local int rx379_rep
- .local pmc rx379_cur
- (rx379_cur, rx379_pos, rx379_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx379_cur
- .local pmc match
- .lex "$/", match
- length rx379_eos, rx379_tgt
- gt rx379_pos, rx379_eos, rx379_done
- set rx379_off, 0
- lt rx379_pos, 2, rx379_start
- sub rx379_off, rx379_pos, 1
- substr rx379_tgt, rx379_tgt, rx379_off
- rx379_start:
- eq $I10, 1, rx379_restart
- rx379_cur."!cursor_debug"("START ", "backslash:sym<o>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan386_done
- goto rxscan386_scan
- rxscan386_loop:
- ($P10) = rx379_cur."from"()
- inc $P10
- set rx379_pos, $P10
- ge rx379_pos, rx379_eos, rxscan386_done
- rxscan386_scan:
- set_addr $I10, rxscan386_loop
- rx379_cur."!mark_push"(0, rx379_pos, $I10)
- rxscan386_done:
-.annotate 'line', 131
+.sub "!PREFIX__backslash:sym<v>" :subid("112_1282323996.47527") :method
+.annotate 'line', 3
+ new $P384, "ResizablePMCArray"
+ push $P384, "V"
+ push $P384, "v"
+ .return ($P384)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<o>" :subid("113_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx388_tgt
+ .local int rx388_pos
+ .local int rx388_off
+ .local int rx388_eos
+ .local int rx388_rep
+ .local pmc rx388_cur
+ .local pmc rx388_debug
+ (rx388_cur, rx388_pos, rx388_tgt, $I10) = self."!cursor_start"()
+ getattribute rx388_debug, rx388_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx388_cur
+ .local pmc match
+ .lex "$/", match
+ length rx388_eos, rx388_tgt
+ gt rx388_pos, rx388_eos, rx388_done
+ 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:
+ eq $I10, 1, rx388_restart
+ if_null rx388_debug, debug_362
+ rx388_cur."!cursor_debug"("START", "backslash:sym<o>")
+ debug_362:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan395_done
+ goto rxscan395_scan
+ rxscan395_loop:
+ ($P10) = rx388_cur."from"()
+ inc $P10
+ set rx388_pos, $P10
+ ge rx388_pos, rx388_eos, rxscan395_done
+ rxscan395_scan:
+ set_addr $I10, rxscan395_loop
+ rx388_cur."!mark_push"(0, rx388_pos, $I10)
+ rxscan395_done:
+.annotate 'line', 138
# rx subcapture "sym"
- set_addr $I10, rxcap_387_fail
- rx379_cur."!mark_push"(0, rx379_pos, $I10)
+ set_addr $I10, rxcap_396_fail
+ rx388_cur."!mark_push"(0, rx388_pos, $I10)
# rx enumcharlist negate=0
- ge rx379_pos, rx379_eos, rx379_fail
- sub $I10, rx379_pos, rx379_off
- substr $S10, rx379_tgt, $I10, 1
+ ge rx388_pos, rx388_eos, rx388_fail
+ sub $I10, rx388_pos, rx388_off
+ substr $S10, rx388_tgt, $I10, 1
index $I11, "oO", $S10
- lt $I11, 0, rx379_fail
- inc rx379_pos
- set_addr $I10, rxcap_387_fail
- ($I12, $I11) = rx379_cur."!mark_peek"($I10)
- rx379_cur."!cursor_pos"($I11)
- ($P10) = rx379_cur."!cursor_start"()
- $P10."!cursor_pass"(rx379_pos, "")
- rx379_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx388_fail
+ inc rx388_pos
+ set_addr $I10, rxcap_396_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)
$P10."!cursor_names"("sym")
- goto rxcap_387_done
- rxcap_387_fail:
- goto rx379_fail
- rxcap_387_done:
- alt388_0:
- set_addr $I10, alt388_1
- rx379_cur."!mark_push"(0, rx379_pos, $I10)
+ goto rxcap_396_done
+ rxcap_396_fail:
+ goto rx388_fail
+ rxcap_396_done:
+ alt397_0:
+ set_addr $I10, alt397_1
+ rx388_cur."!mark_push"(0, rx388_pos, $I10)
# rx subrule "octint" subtype=capture negate=
- rx379_cur."!cursor_pos"(rx379_pos)
- $P10 = rx379_cur."octint"()
- unless $P10, rx379_fail
- rx379_cur."!mark_push"(0, -1, 0, $P10)
+ rx388_cur."!cursor_pos"(rx388_pos)
+ $P10 = rx388_cur."octint"()
+ unless $P10, rx388_fail
+ rx388_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("octint")
- rx379_pos = $P10."pos"()
- goto alt388_end
- alt388_1:
+ rx388_pos = $P10."pos"()
+ goto alt397_end
+ alt397_1:
# rx literal "["
- add $I11, rx379_pos, 1
- gt $I11, rx379_eos, rx379_fail
- sub $I11, rx379_pos, rx379_off
- substr $S10, rx379_tgt, $I11, 1
- ne $S10, "[", rx379_fail
- add rx379_pos, 1
+ add $I11, rx388_pos, 1
+ gt $I11, rx388_eos, rx388_fail
+ sub $I11, rx388_pos, rx388_off
+ ord $I11, rx388_tgt, $I11
+ ne $I11, 91, rx388_fail
+ add rx388_pos, 1
# rx subrule "octints" subtype=capture negate=
- rx379_cur."!cursor_pos"(rx379_pos)
- $P10 = rx379_cur."octints"()
- unless $P10, rx379_fail
- rx379_cur."!mark_push"(0, -1, 0, $P10)
+ rx388_cur."!cursor_pos"(rx388_pos)
+ $P10 = rx388_cur."octints"()
+ unless $P10, rx388_fail
+ rx388_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("octints")
- rx379_pos = $P10."pos"()
- # rx literal "]"
- add $I11, rx379_pos, 1
- gt $I11, rx379_eos, rx379_fail
- sub $I11, rx379_pos, rx379_off
- substr $S10, rx379_tgt, $I11, 1
- ne $S10, "]", rx379_fail
- add rx379_pos, 1
- alt388_end:
- # rx pass
- rx379_cur."!cursor_pass"(rx379_pos, "backslash:sym<o>")
- rx379_cur."!cursor_debug"("PASS ", "backslash:sym<o>", " at pos=", rx379_pos)
- .return (rx379_cur)
- rx379_restart:
-.annotate 'line', 3
- rx379_cur."!cursor_debug"("NEXT ", "backslash:sym<o>")
- rx379_fail:
- (rx379_rep, rx379_pos, $I10, $P10) = rx379_cur."!mark_fail"(0)
- lt rx379_pos, -1, rx379_done
- eq rx379_pos, -1, rx379_fail
- jump $I10
- rx379_done:
- rx379_cur."!cursor_fail"()
- rx379_cur."!cursor_debug"("FAIL ", "backslash:sym<o>")
- .return (rx379_cur)
- .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>" :subid("112_1280467470.54449") :method
-.annotate 'line', 3
- $P381 = self."!PREFIX__!subrule"("octints", "O[")
- $P382 = self."!PREFIX__!subrule"("octint", "O")
- $P383 = self."!PREFIX__!subrule"("octints", "o[")
- $P384 = self."!PREFIX__!subrule"("octint", "o")
- new $P385, "ResizablePMCArray"
- push $P385, $P381
- push $P385, $P382
- push $P385, $P383
- push $P385, $P384
- .return ($P385)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>" :subid("113_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx390_tgt
- .local int rx390_pos
- .local int rx390_off
- .local int rx390_eos
- .local int rx390_rep
- .local pmc rx390_cur
- (rx390_cur, rx390_pos, rx390_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx390_cur
- .local pmc match
- .lex "$/", match
- length rx390_eos, rx390_tgt
- gt rx390_pos, rx390_eos, rx390_done
- set rx390_off, 0
- lt rx390_pos, 2, rx390_start
- sub rx390_off, rx390_pos, 1
- substr rx390_tgt, rx390_tgt, rx390_off
- rx390_start:
- eq $I10, 1, rx390_restart
- rx390_cur."!cursor_debug"("START ", "backslash:sym<x>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan397_done
- goto rxscan397_scan
- rxscan397_loop:
- ($P10) = rx390_cur."from"()
- inc $P10
- set rx390_pos, $P10
- ge rx390_pos, rx390_eos, rxscan397_done
- rxscan397_scan:
- set_addr $I10, rxscan397_loop
- rx390_cur."!mark_push"(0, rx390_pos, $I10)
- rxscan397_done:
-.annotate 'line', 132
- # rx subcapture "sym"
- set_addr $I10, rxcap_398_fail
- rx390_cur."!mark_push"(0, rx390_pos, $I10)
- # rx enumcharlist negate=0
- ge rx390_pos, rx390_eos, rx390_fail
- sub $I10, rx390_pos, rx390_off
- substr $S10, rx390_tgt, $I10, 1
- index $I11, "xX", $S10
- lt $I11, 0, rx390_fail
- inc rx390_pos
- set_addr $I10, rxcap_398_fail
- ($I12, $I11) = rx390_cur."!mark_peek"($I10)
- rx390_cur."!cursor_pos"($I11)
- ($P10) = rx390_cur."!cursor_start"()
- $P10."!cursor_pass"(rx390_pos, "")
- rx390_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_398_done
- rxcap_398_fail:
- goto rx390_fail
- rxcap_398_done:
- alt399_0:
- set_addr $I10, alt399_1
- rx390_cur."!mark_push"(0, rx390_pos, $I10)
- # rx subrule "hexint" subtype=capture negate=
- rx390_cur."!cursor_pos"(rx390_pos)
- $P10 = rx390_cur."hexint"()
- unless $P10, rx390_fail
- rx390_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexint")
- rx390_pos = $P10."pos"()
- goto alt399_end
- alt399_1:
- # rx literal "["
- add $I11, rx390_pos, 1
- gt $I11, rx390_eos, rx390_fail
- sub $I11, rx390_pos, rx390_off
- substr $S10, rx390_tgt, $I11, 1
- ne $S10, "[", rx390_fail
- add rx390_pos, 1
- # rx subrule "hexints" subtype=capture negate=
- rx390_cur."!cursor_pos"(rx390_pos)
- $P10 = rx390_cur."hexints"()
- unless $P10, rx390_fail
- rx390_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexints")
- rx390_pos = $P10."pos"()
+ rx388_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx390_pos, 1
- gt $I11, rx390_eos, rx390_fail
- sub $I11, rx390_pos, rx390_off
- substr $S10, rx390_tgt, $I11, 1
- ne $S10, "]", rx390_fail
- add rx390_pos, 1
- alt399_end:
- # rx pass
- rx390_cur."!cursor_pass"(rx390_pos, "backslash:sym<x>")
- rx390_cur."!cursor_debug"("PASS ", "backslash:sym<x>", " at pos=", rx390_pos)
- .return (rx390_cur)
- rx390_restart:
-.annotate 'line', 3
- rx390_cur."!cursor_debug"("NEXT ", "backslash:sym<x>")
- rx390_fail:
- (rx390_rep, rx390_pos, $I10, $P10) = rx390_cur."!mark_fail"(0)
- lt rx390_pos, -1, rx390_done
- eq rx390_pos, -1, rx390_fail
- jump $I10
- rx390_done:
- rx390_cur."!cursor_fail"()
- rx390_cur."!cursor_debug"("FAIL ", "backslash:sym<x>")
- .return (rx390_cur)
+ add $I11, rx388_pos, 1
+ gt $I11, rx388_eos, rx388_fail
+ sub $I11, rx388_pos, rx388_off
+ ord $I11, rx388_tgt, $I11
+ ne $I11, 93, rx388_fail
+ add rx388_pos, 1
+ alt397_end:
+ # rx pass
+ rx388_cur."!cursor_pass"(rx388_pos, "backslash:sym<o>")
+ if_null rx388_debug, debug_363
+ rx388_cur."!cursor_debug"("PASS", "backslash:sym<o>", " at pos=", rx388_pos)
+ debug_363:
+ .return (rx388_cur)
+ rx388_restart:
+.annotate 'line', 3
+ if_null rx388_debug, debug_364
+ rx388_cur."!cursor_debug"("NEXT", "backslash:sym<o>")
+ debug_364:
+ rx388_fail:
+ (rx388_rep, rx388_pos, $I10, $P10) = rx388_cur."!mark_fail"(0)
+ lt rx388_pos, -1, rx388_done
+ eq rx388_pos, -1, rx388_fail
+ jump $I10
+ rx388_done:
+ rx388_cur."!cursor_fail"()
+ if_null rx388_debug, debug_365
+ rx388_cur."!cursor_debug"("FAIL", "backslash:sym<o>")
+ debug_365:
+ .return (rx388_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>" :subid("114_1280467470.54449") :method
-.annotate 'line', 3
- $P392 = self."!PREFIX__!subrule"("hexints", "X[")
- $P393 = self."!PREFIX__!subrule"("hexint", "X")
- $P394 = self."!PREFIX__!subrule"("hexints", "x[")
- $P395 = self."!PREFIX__!subrule"("hexint", "x")
- new $P396, "ResizablePMCArray"
- push $P396, $P392
- push $P396, $P393
- push $P396, $P394
- push $P396, $P395
- .return ($P396)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>" :subid("115_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx401_tgt
- .local int rx401_pos
- .local int rx401_off
- .local int rx401_eos
- .local int rx401_rep
- .local pmc rx401_cur
- (rx401_cur, rx401_pos, rx401_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx401_cur
- .local pmc match
- .lex "$/", match
- length rx401_eos, rx401_tgt
- gt rx401_pos, rx401_eos, rx401_done
- set rx401_off, 0
- lt rx401_pos, 2, rx401_start
- sub rx401_off, rx401_pos, 1
- substr rx401_tgt, rx401_tgt, rx401_off
- rx401_start:
- eq $I10, 1, rx401_restart
- rx401_cur."!cursor_debug"("START ", "backslash:sym<c>")
+.sub "!PREFIX__backslash:sym<o>" :subid("114_1282323996.47527") :method
+.annotate 'line', 3
+ $P390 = self."!PREFIX__!subrule"("octints", "O[")
+ $P391 = self."!PREFIX__!subrule"("octint", "O")
+ $P392 = self."!PREFIX__!subrule"("octints", "o[")
+ $P393 = self."!PREFIX__!subrule"("octint", "o")
+ new $P394, "ResizablePMCArray"
+ push $P394, $P390
+ push $P394, $P391
+ push $P394, $P392
+ push $P394, $P393
+ .return ($P394)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<x>" :subid("115_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx399_tgt
+ .local int rx399_pos
+ .local int rx399_off
+ .local int rx399_eos
+ .local int rx399_rep
+ .local pmc rx399_cur
+ .local pmc rx399_debug
+ (rx399_cur, rx399_pos, rx399_tgt, $I10) = self."!cursor_start"()
+ getattribute rx399_debug, rx399_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx399_cur
+ .local pmc match
+ .lex "$/", match
+ length rx399_eos, rx399_tgt
+ gt rx399_pos, rx399_eos, rx399_done
+ set rx399_off, 0
+ lt rx399_pos, 2, rx399_start
+ sub rx399_off, rx399_pos, 1
+ substr rx399_tgt, rx399_tgt, rx399_off
+ rx399_start:
+ eq $I10, 1, rx399_restart
+ if_null rx399_debug, debug_366
+ rx399_cur."!cursor_debug"("START", "backslash:sym<x>")
+ debug_366:
$I10 = self.'from'()
ne $I10, -1, rxscan406_done
goto rxscan406_scan
rxscan406_loop:
- ($P10) = rx401_cur."from"()
+ ($P10) = rx399_cur."from"()
inc $P10
- set rx401_pos, $P10
- ge rx401_pos, rx401_eos, rxscan406_done
+ set rx399_pos, $P10
+ ge rx399_pos, rx399_eos, rxscan406_done
rxscan406_scan:
set_addr $I10, rxscan406_loop
- rx401_cur."!mark_push"(0, rx401_pos, $I10)
+ rx399_cur."!mark_push"(0, rx399_pos, $I10)
rxscan406_done:
-.annotate 'line', 133
+.annotate 'line', 139
# rx subcapture "sym"
set_addr $I10, rxcap_407_fail
- rx401_cur."!mark_push"(0, rx401_pos, $I10)
+ rx399_cur."!mark_push"(0, rx399_pos, $I10)
# rx enumcharlist negate=0
- ge rx401_pos, rx401_eos, rx401_fail
- sub $I10, rx401_pos, rx401_off
- substr $S10, rx401_tgt, $I10, 1
- index $I11, "cC", $S10
- lt $I11, 0, rx401_fail
- inc rx401_pos
+ ge rx399_pos, rx399_eos, rx399_fail
+ sub $I10, rx399_pos, rx399_off
+ substr $S10, rx399_tgt, $I10, 1
+ index $I11, "xX", $S10
+ lt $I11, 0, rx399_fail
+ inc rx399_pos
set_addr $I10, rxcap_407_fail
- ($I12, $I11) = rx401_cur."!mark_peek"($I10)
- rx401_cur."!cursor_pos"($I11)
- ($P10) = rx401_cur."!cursor_start"()
- $P10."!cursor_pass"(rx401_pos, "")
- rx401_cur."!mark_push"(0, -1, 0, $P10)
+ ($I12, $I11) = rx399_cur."!mark_peek"($I10)
+ rx399_cur."!cursor_pos"($I11)
+ ($P10) = rx399_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx399_pos, "")
+ rx399_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
goto rxcap_407_done
rxcap_407_fail:
- goto rx401_fail
+ goto rx399_fail
rxcap_407_done:
- # rx subrule "charspec" subtype=capture negate=
- rx401_cur."!cursor_pos"(rx401_pos)
- $P10 = rx401_cur."charspec"()
- unless $P10, rx401_fail
- rx401_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("charspec")
- rx401_pos = $P10."pos"()
- # rx pass
- rx401_cur."!cursor_pass"(rx401_pos, "backslash:sym<c>")
- rx401_cur."!cursor_debug"("PASS ", "backslash:sym<c>", " at pos=", rx401_pos)
- .return (rx401_cur)
- rx401_restart:
-.annotate 'line', 3
- rx401_cur."!cursor_debug"("NEXT ", "backslash:sym<c>")
- rx401_fail:
- (rx401_rep, rx401_pos, $I10, $P10) = rx401_cur."!mark_fail"(0)
- lt rx401_pos, -1, rx401_done
- eq rx401_pos, -1, rx401_fail
- jump $I10
- rx401_done:
- rx401_cur."!cursor_fail"()
- rx401_cur."!cursor_debug"("FAIL ", "backslash:sym<c>")
- .return (rx401_cur)
+ alt408_0:
+ set_addr $I10, alt408_1
+ rx399_cur."!mark_push"(0, rx399_pos, $I10)
+ # rx subrule "hexint" subtype=capture negate=
+ rx399_cur."!cursor_pos"(rx399_pos)
+ $P10 = rx399_cur."hexint"()
+ unless $P10, rx399_fail
+ rx399_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexint")
+ rx399_pos = $P10."pos"()
+ goto alt408_end
+ alt408_1:
+ # rx literal "["
+ add $I11, rx399_pos, 1
+ gt $I11, rx399_eos, rx399_fail
+ sub $I11, rx399_pos, rx399_off
+ ord $I11, rx399_tgt, $I11
+ ne $I11, 91, rx399_fail
+ add rx399_pos, 1
+ # rx subrule "hexints" subtype=capture negate=
+ rx399_cur."!cursor_pos"(rx399_pos)
+ $P10 = rx399_cur."hexints"()
+ unless $P10, rx399_fail
+ rx399_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexints")
+ rx399_pos = $P10."pos"()
+ # rx literal "]"
+ add $I11, rx399_pos, 1
+ gt $I11, rx399_eos, rx399_fail
+ sub $I11, rx399_pos, rx399_off
+ ord $I11, rx399_tgt, $I11
+ ne $I11, 93, rx399_fail
+ add rx399_pos, 1
+ alt408_end:
+ # rx pass
+ rx399_cur."!cursor_pass"(rx399_pos, "backslash:sym<x>")
+ if_null rx399_debug, debug_367
+ rx399_cur."!cursor_debug"("PASS", "backslash:sym<x>", " at pos=", rx399_pos)
+ debug_367:
+ .return (rx399_cur)
+ rx399_restart:
+.annotate 'line', 3
+ if_null rx399_debug, debug_368
+ rx399_cur."!cursor_debug"("NEXT", "backslash:sym<x>")
+ debug_368:
+ rx399_fail:
+ (rx399_rep, rx399_pos, $I10, $P10) = rx399_cur."!mark_fail"(0)
+ lt rx399_pos, -1, rx399_done
+ eq rx399_pos, -1, rx399_fail
+ jump $I10
+ rx399_done:
+ rx399_cur."!cursor_fail"()
+ if_null rx399_debug, debug_369
+ rx399_cur."!cursor_debug"("FAIL", "backslash:sym<x>")
+ debug_369:
+ .return (rx399_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>" :subid("116_1280467470.54449") :method
-.annotate 'line', 3
- $P403 = self."!PREFIX__!subrule"("charspec", "C")
- $P404 = self."!PREFIX__!subrule"("charspec", "c")
+.sub "!PREFIX__backslash:sym<x>" :subid("116_1282323996.47527") :method
+.annotate 'line', 3
+ $P401 = self."!PREFIX__!subrule"("hexints", "X[")
+ $P402 = self."!PREFIX__!subrule"("hexint", "X")
+ $P403 = self."!PREFIX__!subrule"("hexints", "x[")
+ $P404 = self."!PREFIX__!subrule"("hexint", "x")
new $P405, "ResizablePMCArray"
+ push $P405, $P401
+ push $P405, $P402
push $P405, $P403
push $P405, $P404
.return ($P405)
@@ -5348,411 +5885,470 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>" :subid("117_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<c>" :subid("117_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
- .local string rx409_tgt
- .local int rx409_pos
- .local int rx409_off
- .local int rx409_eos
- .local int rx409_rep
- .local pmc rx409_cur
- (rx409_cur, rx409_pos, rx409_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx409_cur
- .local pmc match
- .lex "$/", match
- length rx409_eos, rx409_tgt
- gt rx409_pos, rx409_eos, rx409_done
- set rx409_off, 0
- lt rx409_pos, 2, rx409_start
- sub rx409_off, rx409_pos, 1
- substr rx409_tgt, rx409_tgt, rx409_off
- rx409_start:
- eq $I10, 1, rx409_restart
- rx409_cur."!cursor_debug"("START ", "backslash:sym<A>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan413_done
- goto rxscan413_scan
- rxscan413_loop:
- ($P10) = rx409_cur."from"()
- inc $P10
- set rx409_pos, $P10
- ge rx409_pos, rx409_eos, rxscan413_done
- rxscan413_scan:
- set_addr $I10, rxscan413_loop
- rx409_cur."!mark_push"(0, rx409_pos, $I10)
- rxscan413_done:
-.annotate 'line', 134
- # rx literal "A"
- add $I11, rx409_pos, 1
- gt $I11, rx409_eos, rx409_fail
- sub $I11, rx409_pos, rx409_off
- substr $S10, rx409_tgt, $I11, 1
- ne $S10, "A", rx409_fail
- add rx409_pos, 1
- # rx subrule "obs" subtype=method negate=
- rx409_cur."!cursor_pos"(rx409_pos)
- $P10 = rx409_cur."obs"("\\A as beginning-of-string matcher", "^")
- unless $P10, rx409_fail
- rx409_pos = $P10."pos"()
+ .local string rx410_tgt
+ .local int rx410_pos
+ .local int rx410_off
+ .local int rx410_eos
+ .local int rx410_rep
+ .local pmc rx410_cur
+ .local pmc rx410_debug
+ (rx410_cur, rx410_pos, rx410_tgt, $I10) = self."!cursor_start"()
+ getattribute rx410_debug, rx410_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx410_cur
+ .local pmc match
+ .lex "$/", match
+ length rx410_eos, rx410_tgt
+ gt rx410_pos, rx410_eos, rx410_done
+ set rx410_off, 0
+ lt rx410_pos, 2, rx410_start
+ sub rx410_off, rx410_pos, 1
+ substr rx410_tgt, rx410_tgt, rx410_off
+ rx410_start:
+ eq $I10, 1, rx410_restart
+ if_null rx410_debug, debug_370
+ rx410_cur."!cursor_debug"("START", "backslash:sym<c>")
+ debug_370:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan415_done
+ goto rxscan415_scan
+ rxscan415_loop:
+ ($P10) = rx410_cur."from"()
+ inc $P10
+ set rx410_pos, $P10
+ ge rx410_pos, rx410_eos, rxscan415_done
+ rxscan415_scan:
+ set_addr $I10, rxscan415_loop
+ rx410_cur."!mark_push"(0, rx410_pos, $I10)
+ rxscan415_done:
+.annotate 'line', 140
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_416_fail
+ rx410_cur."!mark_push"(0, rx410_pos, $I10)
+ # rx enumcharlist negate=0
+ ge rx410_pos, rx410_eos, rx410_fail
+ sub $I10, rx410_pos, rx410_off
+ substr $S10, rx410_tgt, $I10, 1
+ index $I11, "cC", $S10
+ lt $I11, 0, rx410_fail
+ inc rx410_pos
+ set_addr $I10, rxcap_416_fail
+ ($I12, $I11) = rx410_cur."!mark_peek"($I10)
+ rx410_cur."!cursor_pos"($I11)
+ ($P10) = rx410_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx410_pos, "")
+ rx410_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_416_done
+ rxcap_416_fail:
+ goto rx410_fail
+ rxcap_416_done:
+ # rx subrule "charspec" subtype=capture negate=
+ rx410_cur."!cursor_pos"(rx410_pos)
+ $P10 = rx410_cur."charspec"()
+ unless $P10, rx410_fail
+ rx410_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("charspec")
+ rx410_pos = $P10."pos"()
# rx pass
- rx409_cur."!cursor_pass"(rx409_pos, "backslash:sym<A>")
- rx409_cur."!cursor_debug"("PASS ", "backslash:sym<A>", " at pos=", rx409_pos)
- .return (rx409_cur)
- rx409_restart:
-.annotate 'line', 3
- rx409_cur."!cursor_debug"("NEXT ", "backslash:sym<A>")
- rx409_fail:
- (rx409_rep, rx409_pos, $I10, $P10) = rx409_cur."!mark_fail"(0)
- lt rx409_pos, -1, rx409_done
- eq rx409_pos, -1, rx409_fail
- jump $I10
- rx409_done:
- rx409_cur."!cursor_fail"()
- rx409_cur."!cursor_debug"("FAIL ", "backslash:sym<A>")
- .return (rx409_cur)
+ rx410_cur."!cursor_pass"(rx410_pos, "backslash:sym<c>")
+ if_null rx410_debug, debug_371
+ rx410_cur."!cursor_debug"("PASS", "backslash:sym<c>", " at pos=", rx410_pos)
+ debug_371:
+ .return (rx410_cur)
+ rx410_restart:
+.annotate 'line', 3
+ if_null rx410_debug, debug_372
+ rx410_cur."!cursor_debug"("NEXT", "backslash:sym<c>")
+ debug_372:
+ rx410_fail:
+ (rx410_rep, rx410_pos, $I10, $P10) = rx410_cur."!mark_fail"(0)
+ lt rx410_pos, -1, rx410_done
+ eq rx410_pos, -1, rx410_fail
+ jump $I10
+ rx410_done:
+ rx410_cur."!cursor_fail"()
+ if_null rx410_debug, debug_373
+ rx410_cur."!cursor_debug"("FAIL", "backslash:sym<c>")
+ debug_373:
+ .return (rx410_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>" :subid("118_1280467470.54449") :method
-.annotate 'line', 3
- $P411 = self."!PREFIX__!subrule"("obs", "A")
- new $P412, "ResizablePMCArray"
- push $P412, $P411
- .return ($P412)
+.sub "!PREFIX__backslash:sym<c>" :subid("118_1282323996.47527") :method
+.annotate 'line', 3
+ $P412 = self."!PREFIX__!subrule"("charspec", "C")
+ $P413 = self."!PREFIX__!subrule"("charspec", "c")
+ new $P414, "ResizablePMCArray"
+ push $P414, $P412
+ push $P414, $P413
+ .return ($P414)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<A>" :subid("119_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx418_tgt
+ .local int rx418_pos
+ .local int rx418_off
+ .local int rx418_eos
+ .local int rx418_rep
+ .local pmc rx418_cur
+ .local pmc rx418_debug
+ (rx418_cur, rx418_pos, rx418_tgt, $I10) = self."!cursor_start"()
+ getattribute rx418_debug, rx418_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx418_cur
+ .local pmc match
+ .lex "$/", match
+ length rx418_eos, rx418_tgt
+ gt rx418_pos, rx418_eos, rx418_done
+ set rx418_off, 0
+ lt rx418_pos, 2, rx418_start
+ sub rx418_off, rx418_pos, 1
+ substr rx418_tgt, rx418_tgt, rx418_off
+ rx418_start:
+ eq $I10, 1, rx418_restart
+ if_null rx418_debug, debug_374
+ rx418_cur."!cursor_debug"("START", "backslash:sym<A>")
+ debug_374:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan422_done
+ goto rxscan422_scan
+ rxscan422_loop:
+ ($P10) = rx418_cur."from"()
+ inc $P10
+ set rx418_pos, $P10
+ ge rx418_pos, rx418_eos, rxscan422_done
+ rxscan422_scan:
+ set_addr $I10, rxscan422_loop
+ rx418_cur."!mark_push"(0, rx418_pos, $I10)
+ rxscan422_done:
+.annotate 'line', 141
+ # rx literal "A"
+ add $I11, rx418_pos, 1
+ gt $I11, rx418_eos, rx418_fail
+ sub $I11, rx418_pos, rx418_off
+ ord $I11, rx418_tgt, $I11
+ ne $I11, 65, rx418_fail
+ add rx418_pos, 1
+ # rx subrule "obs" subtype=method negate=
+ rx418_cur."!cursor_pos"(rx418_pos)
+ $P10 = rx418_cur."obs"("\\A as beginning-of-string matcher", "^")
+ unless $P10, rx418_fail
+ rx418_pos = $P10."pos"()
+ # rx pass
+ rx418_cur."!cursor_pass"(rx418_pos, "backslash:sym<A>")
+ if_null rx418_debug, debug_375
+ rx418_cur."!cursor_debug"("PASS", "backslash:sym<A>", " at pos=", rx418_pos)
+ debug_375:
+ .return (rx418_cur)
+ rx418_restart:
+.annotate 'line', 3
+ if_null rx418_debug, debug_376
+ rx418_cur."!cursor_debug"("NEXT", "backslash:sym<A>")
+ debug_376:
+ rx418_fail:
+ (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0)
+ lt rx418_pos, -1, rx418_done
+ eq rx418_pos, -1, rx418_fail
+ jump $I10
+ rx418_done:
+ rx418_cur."!cursor_fail"()
+ if_null rx418_debug, debug_377
+ rx418_cur."!cursor_debug"("FAIL", "backslash:sym<A>")
+ debug_377:
+ .return (rx418_cur)
+ .return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>" :subid("119_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .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, $I10) = self."!cursor_start"()
- .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:
- eq $I10, 1, rx415_restart
- rx415_cur."!cursor_debug"("START ", "backslash:sym<z>")
- $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', 135
+.sub "!PREFIX__backslash:sym<A>" :subid("120_1282323996.47527") :method
+.annotate 'line', 3
+ $P420 = self."!PREFIX__!subrule"("obs", "A")
+ new $P421, "ResizablePMCArray"
+ push $P421, $P420
+ .return ($P421)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<z>" :subid("121_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx424_tgt
+ .local int rx424_pos
+ .local int rx424_off
+ .local int rx424_eos
+ .local int rx424_rep
+ .local pmc rx424_cur
+ .local pmc rx424_debug
+ (rx424_cur, rx424_pos, rx424_tgt, $I10) = self."!cursor_start"()
+ getattribute rx424_debug, rx424_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx424_cur
+ .local pmc match
+ .lex "$/", match
+ length rx424_eos, rx424_tgt
+ gt rx424_pos, rx424_eos, rx424_done
+ set rx424_off, 0
+ lt rx424_pos, 2, rx424_start
+ sub rx424_off, rx424_pos, 1
+ substr rx424_tgt, rx424_tgt, rx424_off
+ rx424_start:
+ eq $I10, 1, rx424_restart
+ if_null rx424_debug, debug_378
+ rx424_cur."!cursor_debug"("START", "backslash:sym<z>")
+ debug_378:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan428_done
+ goto rxscan428_scan
+ rxscan428_loop:
+ ($P10) = rx424_cur."from"()
+ inc $P10
+ set rx424_pos, $P10
+ ge rx424_pos, rx424_eos, rxscan428_done
+ rxscan428_scan:
+ set_addr $I10, rxscan428_loop
+ rx424_cur."!mark_push"(0, rx424_pos, $I10)
+ rxscan428_done:
+.annotate 'line', 142
# rx literal "z"
- add $I11, rx415_pos, 1
- gt $I11, rx415_eos, rx415_fail
- sub $I11, rx415_pos, rx415_off
- substr $S10, rx415_tgt, $I11, 1
- ne $S10, "z", rx415_fail
- add rx415_pos, 1
+ add $I11, rx424_pos, 1
+ gt $I11, rx424_eos, rx424_fail
+ sub $I11, rx424_pos, rx424_off
+ ord $I11, rx424_tgt, $I11
+ ne $I11, 122, rx424_fail
+ add rx424_pos, 1
# rx subrule "obs" subtype=method negate=
- rx415_cur."!cursor_pos"(rx415_pos)
- $P10 = rx415_cur."obs"("\\z as end-of-string matcher", "$")
- unless $P10, rx415_fail
- rx415_pos = $P10."pos"()
- # rx pass
- rx415_cur."!cursor_pass"(rx415_pos, "backslash:sym<z>")
- rx415_cur."!cursor_debug"("PASS ", "backslash:sym<z>", " at pos=", rx415_pos)
- .return (rx415_cur)
- rx415_restart:
-.annotate 'line', 3
- rx415_cur."!cursor_debug"("NEXT ", "backslash:sym<z>")
- rx415_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
- rx415_done:
- rx415_cur."!cursor_fail"()
- rx415_cur."!cursor_debug"("FAIL ", "backslash:sym<z>")
- .return (rx415_cur)
+ rx424_cur."!cursor_pos"(rx424_pos)
+ $P10 = rx424_cur."obs"("\\z as end-of-string matcher", "$")
+ unless $P10, rx424_fail
+ rx424_pos = $P10."pos"()
+ # rx pass
+ rx424_cur."!cursor_pass"(rx424_pos, "backslash:sym<z>")
+ if_null rx424_debug, debug_379
+ rx424_cur."!cursor_debug"("PASS", "backslash:sym<z>", " at pos=", rx424_pos)
+ debug_379:
+ .return (rx424_cur)
+ rx424_restart:
+.annotate 'line', 3
+ if_null rx424_debug, debug_380
+ rx424_cur."!cursor_debug"("NEXT", "backslash:sym<z>")
+ debug_380:
+ rx424_fail:
+ (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
+ lt rx424_pos, -1, rx424_done
+ eq rx424_pos, -1, rx424_fail
+ jump $I10
+ rx424_done:
+ rx424_cur."!cursor_fail"()
+ if_null rx424_debug, debug_381
+ rx424_cur."!cursor_debug"("FAIL", "backslash:sym<z>")
+ debug_381:
+ .return (rx424_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>" :subid("120_1280467470.54449") :method
-.annotate 'line', 3
- $P417 = self."!PREFIX__!subrule"("obs", "z")
- new $P418, "ResizablePMCArray"
- push $P418, $P417
- .return ($P418)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>" :subid("121_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx421_tgt
- .local int rx421_pos
- .local int rx421_off
- .local int rx421_eos
- .local int rx421_rep
- .local pmc rx421_cur
- (rx421_cur, rx421_pos, rx421_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx421_cur
- .local pmc match
- .lex "$/", match
- length rx421_eos, rx421_tgt
- gt rx421_pos, rx421_eos, rx421_done
- set rx421_off, 0
- lt rx421_pos, 2, rx421_start
- sub rx421_off, rx421_pos, 1
- substr rx421_tgt, rx421_tgt, rx421_off
- rx421_start:
- eq $I10, 1, rx421_restart
- rx421_cur."!cursor_debug"("START ", "backslash:sym<Z>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan425_done
- goto rxscan425_scan
- rxscan425_loop:
- ($P10) = rx421_cur."from"()
- inc $P10
- set rx421_pos, $P10
- ge rx421_pos, rx421_eos, rxscan425_done
- rxscan425_scan:
- set_addr $I10, rxscan425_loop
- rx421_cur."!mark_push"(0, rx421_pos, $I10)
- rxscan425_done:
-.annotate 'line', 136
+.sub "!PREFIX__backslash:sym<z>" :subid("122_1282323996.47527") :method
+.annotate 'line', 3
+ $P426 = self."!PREFIX__!subrule"("obs", "z")
+ new $P427, "ResizablePMCArray"
+ push $P427, $P426
+ .return ($P427)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<Z>" :subid("123_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx430_tgt
+ .local int rx430_pos
+ .local int rx430_off
+ .local int rx430_eos
+ .local int rx430_rep
+ .local pmc rx430_cur
+ .local pmc rx430_debug
+ (rx430_cur, rx430_pos, rx430_tgt, $I10) = self."!cursor_start"()
+ getattribute rx430_debug, rx430_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx430_cur
+ .local pmc match
+ .lex "$/", match
+ length rx430_eos, rx430_tgt
+ gt rx430_pos, rx430_eos, rx430_done
+ set rx430_off, 0
+ lt rx430_pos, 2, rx430_start
+ sub rx430_off, rx430_pos, 1
+ substr rx430_tgt, rx430_tgt, rx430_off
+ rx430_start:
+ eq $I10, 1, rx430_restart
+ if_null rx430_debug, debug_382
+ rx430_cur."!cursor_debug"("START", "backslash:sym<Z>")
+ debug_382:
+ $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', 143
# rx literal "Z"
- add $I11, rx421_pos, 1
- gt $I11, rx421_eos, rx421_fail
- sub $I11, rx421_pos, rx421_off
- substr $S10, rx421_tgt, $I11, 1
- ne $S10, "Z", rx421_fail
- add rx421_pos, 1
+ add $I11, rx430_pos, 1
+ gt $I11, rx430_eos, rx430_fail
+ sub $I11, rx430_pos, rx430_off
+ ord $I11, rx430_tgt, $I11
+ ne $I11, 90, rx430_fail
+ add rx430_pos, 1
# rx subrule "obs" subtype=method negate=
- rx421_cur."!cursor_pos"(rx421_pos)
- $P10 = rx421_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
- unless $P10, rx421_fail
- rx421_pos = $P10."pos"()
- # rx pass
- rx421_cur."!cursor_pass"(rx421_pos, "backslash:sym<Z>")
- rx421_cur."!cursor_debug"("PASS ", "backslash:sym<Z>", " at pos=", rx421_pos)
- .return (rx421_cur)
- rx421_restart:
-.annotate 'line', 3
- rx421_cur."!cursor_debug"("NEXT ", "backslash:sym<Z>")
- rx421_fail:
- (rx421_rep, rx421_pos, $I10, $P10) = rx421_cur."!mark_fail"(0)
- lt rx421_pos, -1, rx421_done
- eq rx421_pos, -1, rx421_fail
- jump $I10
- rx421_done:
- rx421_cur."!cursor_fail"()
- rx421_cur."!cursor_debug"("FAIL ", "backslash:sym<Z>")
- .return (rx421_cur)
+ rx430_cur."!cursor_pos"(rx430_pos)
+ $P10 = rx430_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
+ unless $P10, rx430_fail
+ rx430_pos = $P10."pos"()
+ # rx pass
+ rx430_cur."!cursor_pass"(rx430_pos, "backslash:sym<Z>")
+ if_null rx430_debug, debug_383
+ rx430_cur."!cursor_debug"("PASS", "backslash:sym<Z>", " at pos=", rx430_pos)
+ debug_383:
+ .return (rx430_cur)
+ rx430_restart:
+.annotate 'line', 3
+ if_null rx430_debug, debug_384
+ rx430_cur."!cursor_debug"("NEXT", "backslash:sym<Z>")
+ debug_384:
+ rx430_fail:
+ (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
+ lt rx430_pos, -1, rx430_done
+ eq rx430_pos, -1, rx430_fail
+ jump $I10
+ rx430_done:
+ rx430_cur."!cursor_fail"()
+ if_null rx430_debug, debug_385
+ rx430_cur."!cursor_debug"("FAIL", "backslash:sym<Z>")
+ debug_385:
+ .return (rx430_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>" :subid("122_1280467470.54449") :method
-.annotate 'line', 3
- $P423 = self."!PREFIX__!subrule"("obs", "Z")
- new $P424, "ResizablePMCArray"
- push $P424, $P423
- .return ($P424)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>" :subid("123_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx427_tgt
- .local int rx427_pos
- .local int rx427_off
- .local int rx427_eos
- .local int rx427_rep
- .local pmc rx427_cur
- (rx427_cur, rx427_pos, rx427_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx427_cur
- .local pmc match
- .lex "$/", match
- length rx427_eos, rx427_tgt
- gt rx427_pos, rx427_eos, rx427_done
- set rx427_off, 0
- lt rx427_pos, 2, rx427_start
- sub rx427_off, rx427_pos, 1
- substr rx427_tgt, rx427_tgt, rx427_off
- rx427_start:
- eq $I10, 1, rx427_restart
- rx427_cur."!cursor_debug"("START ", "backslash:sym<Q>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan431_done
- goto rxscan431_scan
- rxscan431_loop:
- ($P10) = rx427_cur."from"()
- inc $P10
- set rx427_pos, $P10
- ge rx427_pos, rx427_eos, rxscan431_done
- rxscan431_scan:
- set_addr $I10, rxscan431_loop
- rx427_cur."!mark_push"(0, rx427_pos, $I10)
- rxscan431_done:
-.annotate 'line', 137
+.sub "!PREFIX__backslash:sym<Z>" :subid("124_1282323996.47527") :method
+.annotate 'line', 3
+ $P432 = self."!PREFIX__!subrule"("obs", "Z")
+ new $P433, "ResizablePMCArray"
+ push $P433, $P432
+ .return ($P433)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<Q>" :subid("125_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx436_tgt
+ .local int rx436_pos
+ .local int rx436_off
+ .local int rx436_eos
+ .local int rx436_rep
+ .local pmc rx436_cur
+ .local pmc rx436_debug
+ (rx436_cur, rx436_pos, rx436_tgt, $I10) = self."!cursor_start"()
+ getattribute rx436_debug, rx436_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx436_cur
+ .local pmc match
+ .lex "$/", match
+ length rx436_eos, rx436_tgt
+ gt rx436_pos, rx436_eos, rx436_done
+ set rx436_off, 0
+ lt rx436_pos, 2, rx436_start
+ sub rx436_off, rx436_pos, 1
+ substr rx436_tgt, rx436_tgt, rx436_off
+ rx436_start:
+ eq $I10, 1, rx436_restart
+ if_null rx436_debug, debug_386
+ rx436_cur."!cursor_debug"("START", "backslash:sym<Q>")
+ debug_386:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan440_done
+ goto rxscan440_scan
+ rxscan440_loop:
+ ($P10) = rx436_cur."from"()
+ inc $P10
+ set rx436_pos, $P10
+ ge rx436_pos, rx436_eos, rxscan440_done
+ rxscan440_scan:
+ set_addr $I10, rxscan440_loop
+ rx436_cur."!mark_push"(0, rx436_pos, $I10)
+ rxscan440_done:
+.annotate 'line', 144
# rx literal "Q"
- add $I11, rx427_pos, 1
- gt $I11, rx427_eos, rx427_fail
- sub $I11, rx427_pos, rx427_off
- substr $S10, rx427_tgt, $I11, 1
- ne $S10, "Q", rx427_fail
- add rx427_pos, 1
+ add $I11, rx436_pos, 1
+ gt $I11, rx436_eos, rx436_fail
+ sub $I11, rx436_pos, rx436_off
+ ord $I11, rx436_tgt, $I11
+ ne $I11, 81, rx436_fail
+ add rx436_pos, 1
# rx subrule "obs" subtype=method negate=
- rx427_cur."!cursor_pos"(rx427_pos)
- $P10 = rx427_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
- unless $P10, rx427_fail
- rx427_pos = $P10."pos"()
- # rx pass
- rx427_cur."!cursor_pass"(rx427_pos, "backslash:sym<Q>")
- rx427_cur."!cursor_debug"("PASS ", "backslash:sym<Q>", " at pos=", rx427_pos)
- .return (rx427_cur)
- rx427_restart:
-.annotate 'line', 3
- rx427_cur."!cursor_debug"("NEXT ", "backslash:sym<Q>")
- rx427_fail:
- (rx427_rep, rx427_pos, $I10, $P10) = rx427_cur."!mark_fail"(0)
- lt rx427_pos, -1, rx427_done
- eq rx427_pos, -1, rx427_fail
- jump $I10
- rx427_done:
- rx427_cur."!cursor_fail"()
- rx427_cur."!cursor_debug"("FAIL ", "backslash:sym<Q>")
- .return (rx427_cur)
- .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>" :subid("124_1280467470.54449") :method
-.annotate 'line', 3
- $P429 = self."!PREFIX__!subrule"("obs", "Q")
- new $P430, "ResizablePMCArray"
- push $P430, $P429
- .return ($P430)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>" :subid("125_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx433_tgt
- .local int rx433_pos
- .local int rx433_off
- .local int rx433_eos
- .local int rx433_rep
- .local pmc rx433_cur
- (rx433_cur, rx433_pos, rx433_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx433_cur
- .local pmc match
- .lex "$/", match
- length rx433_eos, rx433_tgt
- gt rx433_pos, rx433_eos, rx433_done
- set rx433_off, 0
- lt rx433_pos, 2, rx433_start
- sub rx433_off, rx433_pos, 1
- substr rx433_tgt, rx433_tgt, rx433_off
- rx433_start:
- eq $I10, 1, rx433_restart
- rx433_cur."!cursor_debug"("START ", "backslash:sym<misc>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan436_done
- goto rxscan436_scan
- rxscan436_loop:
- ($P10) = rx433_cur."from"()
- inc $P10
- set rx433_pos, $P10
- ge rx433_pos, rx433_eos, rxscan436_done
- rxscan436_scan:
- set_addr $I10, rxscan436_loop
- rx433_cur."!mark_push"(0, rx433_pos, $I10)
- rxscan436_done:
-.annotate 'line', 138
- # rx charclass W
- ge rx433_pos, rx433_eos, rx433_fail
- sub $I10, rx433_pos, rx433_off
- is_cclass $I11, 8192, rx433_tgt, $I10
- if $I11, rx433_fail
- inc rx433_pos
+ rx436_cur."!cursor_pos"(rx436_pos)
+ $P10 = rx436_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
+ unless $P10, rx436_fail
+ rx436_pos = $P10."pos"()
# rx pass
- rx433_cur."!cursor_pass"(rx433_pos, "backslash:sym<misc>")
- rx433_cur."!cursor_debug"("PASS ", "backslash:sym<misc>", " at pos=", rx433_pos)
- .return (rx433_cur)
- rx433_restart:
+ rx436_cur."!cursor_pass"(rx436_pos, "backslash:sym<Q>")
+ if_null rx436_debug, debug_387
+ rx436_cur."!cursor_debug"("PASS", "backslash:sym<Q>", " at pos=", rx436_pos)
+ debug_387:
+ .return (rx436_cur)
+ rx436_restart:
.annotate 'line', 3
- rx433_cur."!cursor_debug"("NEXT ", "backslash:sym<misc>")
- rx433_fail:
- (rx433_rep, rx433_pos, $I10, $P10) = rx433_cur."!mark_fail"(0)
- lt rx433_pos, -1, rx433_done
- eq rx433_pos, -1, rx433_fail
+ if_null rx436_debug, debug_388
+ rx436_cur."!cursor_debug"("NEXT", "backslash:sym<Q>")
+ debug_388:
+ rx436_fail:
+ (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
+ lt rx436_pos, -1, rx436_done
+ eq rx436_pos, -1, rx436_fail
jump $I10
- rx433_done:
- rx433_cur."!cursor_fail"()
- rx433_cur."!cursor_debug"("FAIL ", "backslash:sym<misc>")
- .return (rx433_cur)
+ rx436_done:
+ rx436_cur."!cursor_fail"()
+ if_null rx436_debug, debug_389
+ rx436_cur."!cursor_debug"("FAIL", "backslash:sym<Q>")
+ debug_389:
+ .return (rx436_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>" :subid("126_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<Q>" :subid("126_1282323996.47527") :method
.annotate 'line', 3
- new $P435, "ResizablePMCArray"
- push $P435, ""
- .return ($P435)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion" :subid("127_1280467470.54449") :method
-.annotate 'line', 140
- $P438 = self."!protoregex"("assertion")
- .return ($P438)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion" :subid("128_1280467470.54449") :method
-.annotate 'line', 140
- $P440 = self."!PREFIX__!protoregex"("assertion")
- .return ($P440)
+ $P438 = self."!PREFIX__!subrule"("obs", "Q")
+ new $P439, "ResizablePMCArray"
+ push $P439, $P438
+ .return ($P439)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>" :subid("129_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<misc>" :subid("127_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
- .const 'Sub' $P449 = "131_1280467470.54449"
- capture_lex $P449
.local string rx442_tgt
.local int rx442_pos
.local int rx442_off
.local int rx442_eos
.local int rx442_rep
.local pmc rx442_cur
+ .local pmc rx442_debug
(rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
+ getattribute rx442_debug, rx442_cur, "$!debug"
.lex unicode:"$\x{a2}", rx442_cur
.local pmc match
.lex "$/", match
@@ -5764,53 +6360,39 @@
substr rx442_tgt, rx442_tgt, rx442_off
rx442_start:
eq $I10, 1, rx442_restart
- rx442_cur."!cursor_debug"("START ", "assertion:sym<?>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan446_done
- goto rxscan446_scan
- rxscan446_loop:
+ if_null rx442_debug, debug_390
+ rx442_cur."!cursor_debug"("START", "backslash:sym<misc>")
+ debug_390:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan445_done
+ goto rxscan445_scan
+ rxscan445_loop:
($P10) = rx442_cur."from"()
inc $P10
set rx442_pos, $P10
- ge rx442_pos, rx442_eos, rxscan446_done
- rxscan446_scan:
- set_addr $I10, rxscan446_loop
- rx442_cur."!mark_push"(0, rx442_pos, $I10)
- rxscan446_done:
-.annotate 'line', 142
- # rx literal "?"
- add $I11, rx442_pos, 1
- gt $I11, rx442_eos, rx442_fail
- sub $I11, rx442_pos, rx442_off
- substr $S10, rx442_tgt, $I11, 1
- ne $S10, "?", rx442_fail
- add rx442_pos, 1
- alt447_0:
- set_addr $I10, alt447_1
+ ge rx442_pos, rx442_eos, rxscan445_done
+ rxscan445_scan:
+ set_addr $I10, rxscan445_loop
rx442_cur."!mark_push"(0, rx442_pos, $I10)
- # rx subrule "before" subtype=zerowidth negate=
- rx442_cur."!cursor_pos"(rx442_pos)
- .const 'Sub' $P449 = "131_1280467470.54449"
- capture_lex $P449
- $P10 = rx442_cur."before"($P449)
- unless $P10, rx442_fail
- goto alt447_end
- alt447_1:
- # rx subrule "assertion" subtype=capture negate=
- rx442_cur."!cursor_pos"(rx442_pos)
- $P10 = rx442_cur."assertion"()
- unless $P10, rx442_fail
- rx442_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("assertion")
- rx442_pos = $P10."pos"()
- alt447_end:
- # rx pass
- rx442_cur."!cursor_pass"(rx442_pos, "assertion:sym<?>")
- rx442_cur."!cursor_debug"("PASS ", "assertion:sym<?>", " at pos=", rx442_pos)
+ rxscan445_done:
+.annotate 'line', 145
+ # rx charclass W
+ ge rx442_pos, rx442_eos, rx442_fail
+ sub $I10, rx442_pos, rx442_off
+ is_cclass $I11, 8192, rx442_tgt, $I10
+ if $I11, rx442_fail
+ inc rx442_pos
+ # rx pass
+ rx442_cur."!cursor_pass"(rx442_pos, "backslash:sym<misc>")
+ if_null rx442_debug, debug_391
+ rx442_cur."!cursor_debug"("PASS", "backslash:sym<misc>", " at pos=", rx442_pos)
+ debug_391:
.return (rx442_cur)
rx442_restart:
.annotate 'line', 3
- rx442_cur."!cursor_debug"("NEXT ", "assertion:sym<?>")
+ if_null rx442_debug, debug_392
+ rx442_cur."!cursor_debug"("NEXT", "backslash:sym<misc>")
+ debug_392:
rx442_fail:
(rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
lt rx442_pos, -1, rx442_done
@@ -5818,330 +6400,329 @@
jump $I10
rx442_done:
rx442_cur."!cursor_fail"()
- rx442_cur."!cursor_debug"("FAIL ", "assertion:sym<?>")
+ if_null rx442_debug, debug_393
+ rx442_cur."!cursor_debug"("FAIL", "backslash:sym<misc>")
+ debug_393:
.return (rx442_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>" :subid("130_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<misc>" :subid("128_1282323996.47527") :method
.annotate 'line', 3
- $P444 = self."!PREFIX__!subrule"("assertion", "?")
- new $P445, "ResizablePMCArray"
- push $P445, $P444
- push $P445, "?"
- .return ($P445)
+ new $P444, "ResizablePMCArray"
+ push $P444, ""
+ .return ($P444)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block448" :anon :subid("131_1280467470.54449") :method :outer("129_1280467470.54449")
-.annotate 'line', 142
- .local string rx450_tgt
- .local int rx450_pos
- .local int rx450_off
- .local int rx450_eos
- .local int rx450_rep
- .local pmc rx450_cur
- (rx450_cur, rx450_pos, rx450_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx450_cur
- .local pmc match
- .lex "$/", match
- length rx450_eos, rx450_tgt
- gt rx450_pos, rx450_eos, rx450_done
- set rx450_off, 0
- lt rx450_pos, 2, rx450_start
- sub rx450_off, rx450_pos, 1
- substr rx450_tgt, rx450_tgt, rx450_off
- rx450_start:
- eq $I10, 1, rx450_restart
- rx450_cur."!cursor_debug"("START ", "")
- $I10 = self.'from'()
- ne $I10, -1, rxscan451_done
- goto rxscan451_scan
- rxscan451_loop:
- ($P10) = rx450_cur."from"()
- inc $P10
- set rx450_pos, $P10
- ge rx450_pos, rx450_eos, rxscan451_done
- rxscan451_scan:
- set_addr $I10, rxscan451_loop
- rx450_cur."!mark_push"(0, rx450_pos, $I10)
- rxscan451_done:
- # rx literal ">"
- add $I11, rx450_pos, 1
- gt $I11, rx450_eos, rx450_fail
- sub $I11, rx450_pos, rx450_off
- substr $S10, rx450_tgt, $I11, 1
- ne $S10, ">", rx450_fail
- add rx450_pos, 1
- # rx pass
- rx450_cur."!cursor_pass"(rx450_pos, "")
- rx450_cur."!cursor_debug"("PASS ", "", " at pos=", rx450_pos)
- .return (rx450_cur)
- rx450_restart:
- rx450_cur."!cursor_debug"("NEXT ", "")
- rx450_fail:
- (rx450_rep, rx450_pos, $I10, $P10) = rx450_cur."!mark_fail"(0)
- lt rx450_pos, -1, rx450_done
- eq rx450_pos, -1, rx450_fail
- jump $I10
- rx450_done:
- rx450_cur."!cursor_fail"()
- rx450_cur."!cursor_debug"("FAIL ", "")
- .return (rx450_cur)
- .return ()
+.sub "assertion" :subid("129_1282323996.47527") :method
+.annotate 'line', 147
+ $P447 = self."!protoregex"("assertion")
+ .return ($P447)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__assertion" :subid("130_1282323996.47527") :method
+.annotate 'line', 147
+ $P449 = self."!PREFIX__!protoregex"("assertion")
+ .return ($P449)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>" :subid("132_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<?>" :subid("131_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
- .const 'Sub' $P460 = "134_1280467470.54449"
- capture_lex $P460
- .local string rx453_tgt
- .local int rx453_pos
- .local int rx453_off
- .local int rx453_eos
- .local int rx453_rep
- .local pmc rx453_cur
- (rx453_cur, rx453_pos, rx453_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx453_cur
- .local pmc match
- .lex "$/", match
- length rx453_eos, rx453_tgt
- gt rx453_pos, rx453_eos, rx453_done
- set rx453_off, 0
- lt rx453_pos, 2, rx453_start
- sub rx453_off, rx453_pos, 1
- substr rx453_tgt, rx453_tgt, rx453_off
- rx453_start:
- eq $I10, 1, rx453_restart
- rx453_cur."!cursor_debug"("START ", "assertion:sym<!>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan457_done
- goto rxscan457_scan
- rxscan457_loop:
- ($P10) = rx453_cur."from"()
- inc $P10
- set rx453_pos, $P10
- ge rx453_pos, rx453_eos, rxscan457_done
- rxscan457_scan:
- set_addr $I10, rxscan457_loop
- rx453_cur."!mark_push"(0, rx453_pos, $I10)
- rxscan457_done:
-.annotate 'line', 143
- # rx literal "!"
- add $I11, rx453_pos, 1
- gt $I11, rx453_eos, rx453_fail
- sub $I11, rx453_pos, rx453_off
- substr $S10, rx453_tgt, $I11, 1
- ne $S10, "!", rx453_fail
- add rx453_pos, 1
- alt458_0:
- set_addr $I10, alt458_1
- rx453_cur."!mark_push"(0, rx453_pos, $I10)
+ .const 'Sub' $P458 = "133_1282323996.47527"
+ capture_lex $P458
+ .local string rx451_tgt
+ .local int rx451_pos
+ .local int rx451_off
+ .local int rx451_eos
+ .local int rx451_rep
+ .local pmc rx451_cur
+ .local pmc rx451_debug
+ (rx451_cur, rx451_pos, rx451_tgt, $I10) = self."!cursor_start"()
+ getattribute rx451_debug, rx451_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx451_cur
+ .local pmc match
+ .lex "$/", match
+ length rx451_eos, rx451_tgt
+ gt rx451_pos, rx451_eos, rx451_done
+ set rx451_off, 0
+ lt rx451_pos, 2, rx451_start
+ sub rx451_off, rx451_pos, 1
+ substr rx451_tgt, rx451_tgt, rx451_off
+ rx451_start:
+ eq $I10, 1, rx451_restart
+ if_null rx451_debug, debug_394
+ rx451_cur."!cursor_debug"("START", "assertion:sym<?>")
+ debug_394:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan455_done
+ goto rxscan455_scan
+ rxscan455_loop:
+ ($P10) = rx451_cur."from"()
+ inc $P10
+ set rx451_pos, $P10
+ ge rx451_pos, rx451_eos, rxscan455_done
+ rxscan455_scan:
+ set_addr $I10, rxscan455_loop
+ rx451_cur."!mark_push"(0, rx451_pos, $I10)
+ rxscan455_done:
+.annotate 'line', 149
+ # rx literal "?"
+ add $I11, rx451_pos, 1
+ gt $I11, rx451_eos, rx451_fail
+ sub $I11, rx451_pos, rx451_off
+ ord $I11, rx451_tgt, $I11
+ ne $I11, 63, rx451_fail
+ add rx451_pos, 1
+ alt456_0:
+ set_addr $I10, alt456_1
+ rx451_cur."!mark_push"(0, rx451_pos, $I10)
# rx subrule "before" subtype=zerowidth negate=
- rx453_cur."!cursor_pos"(rx453_pos)
- .const 'Sub' $P460 = "134_1280467470.54449"
- capture_lex $P460
- $P10 = rx453_cur."before"($P460)
- unless $P10, rx453_fail
- goto alt458_end
- alt458_1:
+ rx451_cur."!cursor_pos"(rx451_pos)
+ .const 'Sub' $P458 = "133_1282323996.47527"
+ capture_lex $P458
+ $P10 = rx451_cur."before"($P458)
+ unless $P10, rx451_fail
+ goto alt456_end
+ alt456_1:
# rx subrule "assertion" subtype=capture negate=
- rx453_cur."!cursor_pos"(rx453_pos)
- $P10 = rx453_cur."assertion"()
- unless $P10, rx453_fail
- rx453_cur."!mark_push"(0, -1, 0, $P10)
+ rx451_cur."!cursor_pos"(rx451_pos)
+ $P10 = rx451_cur."assertion"()
+ unless $P10, rx451_fail
+ rx451_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx453_pos = $P10."pos"()
- alt458_end:
+ rx451_pos = $P10."pos"()
+ alt456_end:
# rx pass
- rx453_cur."!cursor_pass"(rx453_pos, "assertion:sym<!>")
- rx453_cur."!cursor_debug"("PASS ", "assertion:sym<!>", " at pos=", rx453_pos)
- .return (rx453_cur)
- rx453_restart:
+ rx451_cur."!cursor_pass"(rx451_pos, "assertion:sym<?>")
+ if_null rx451_debug, debug_399
+ rx451_cur."!cursor_debug"("PASS", "assertion:sym<?>", " at pos=", rx451_pos)
+ debug_399:
+ .return (rx451_cur)
+ rx451_restart:
.annotate 'line', 3
- rx453_cur."!cursor_debug"("NEXT ", "assertion:sym<!>")
- rx453_fail:
- (rx453_rep, rx453_pos, $I10, $P10) = rx453_cur."!mark_fail"(0)
- lt rx453_pos, -1, rx453_done
- eq rx453_pos, -1, rx453_fail
+ if_null rx451_debug, debug_400
+ rx451_cur."!cursor_debug"("NEXT", "assertion:sym<?>")
+ debug_400:
+ rx451_fail:
+ (rx451_rep, rx451_pos, $I10, $P10) = rx451_cur."!mark_fail"(0)
+ lt rx451_pos, -1, rx451_done
+ eq rx451_pos, -1, rx451_fail
jump $I10
- rx453_done:
- rx453_cur."!cursor_fail"()
- rx453_cur."!cursor_debug"("FAIL ", "assertion:sym<!>")
- .return (rx453_cur)
+ rx451_done:
+ rx451_cur."!cursor_fail"()
+ if_null rx451_debug, debug_401
+ rx451_cur."!cursor_debug"("FAIL", "assertion:sym<?>")
+ debug_401:
+ .return (rx451_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>" :subid("133_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<?>" :subid("132_1282323996.47527") :method
.annotate 'line', 3
- $P455 = self."!PREFIX__!subrule"("assertion", "!")
- new $P456, "ResizablePMCArray"
- push $P456, $P455
- push $P456, "!"
- .return ($P456)
+ $P453 = self."!PREFIX__!subrule"("assertion", "?")
+ new $P454, "ResizablePMCArray"
+ push $P454, $P453
+ push $P454, "?"
+ .return ($P454)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block459" :anon :subid("134_1280467470.54449") :method :outer("132_1280467470.54449")
-.annotate 'line', 143
- .local string rx461_tgt
- .local int rx461_pos
- .local int rx461_off
- .local int rx461_eos
- .local int rx461_rep
- .local pmc rx461_cur
- (rx461_cur, rx461_pos, rx461_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx461_cur
- .local pmc match
- .lex "$/", match
- length rx461_eos, rx461_tgt
- gt rx461_pos, rx461_eos, rx461_done
- set rx461_off, 0
- lt rx461_pos, 2, rx461_start
- sub rx461_off, rx461_pos, 1
- substr rx461_tgt, rx461_tgt, rx461_off
- rx461_start:
- eq $I10, 1, rx461_restart
- rx461_cur."!cursor_debug"("START ", "")
- $I10 = self.'from'()
- ne $I10, -1, rxscan462_done
- goto rxscan462_scan
- rxscan462_loop:
- ($P10) = rx461_cur."from"()
- inc $P10
- set rx461_pos, $P10
- ge rx461_pos, rx461_eos, rxscan462_done
- rxscan462_scan:
- set_addr $I10, rxscan462_loop
- rx461_cur."!mark_push"(0, rx461_pos, $I10)
- rxscan462_done:
+.sub "_block457" :anon :subid("133_1282323996.47527") :method :outer("131_1282323996.47527")
+.annotate 'line', 149
+ .local string rx459_tgt
+ .local int rx459_pos
+ .local int rx459_off
+ .local int rx459_eos
+ .local int rx459_rep
+ .local pmc rx459_cur
+ .local pmc rx459_debug
+ (rx459_cur, rx459_pos, rx459_tgt, $I10) = self."!cursor_start"()
+ getattribute rx459_debug, rx459_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx459_cur
+ .local pmc match
+ .lex "$/", match
+ length rx459_eos, rx459_tgt
+ gt rx459_pos, rx459_eos, rx459_done
+ set rx459_off, 0
+ lt rx459_pos, 2, rx459_start
+ sub rx459_off, rx459_pos, 1
+ substr rx459_tgt, rx459_tgt, rx459_off
+ rx459_start:
+ eq $I10, 1, rx459_restart
+ if_null rx459_debug, debug_395
+ rx459_cur."!cursor_debug"("START", "")
+ debug_395:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan460_done
+ goto rxscan460_scan
+ rxscan460_loop:
+ ($P10) = rx459_cur."from"()
+ inc $P10
+ set rx459_pos, $P10
+ ge rx459_pos, rx459_eos, rxscan460_done
+ rxscan460_scan:
+ set_addr $I10, rxscan460_loop
+ rx459_cur."!mark_push"(0, rx459_pos, $I10)
+ rxscan460_done:
# rx literal ">"
- add $I11, rx461_pos, 1
- gt $I11, rx461_eos, rx461_fail
- sub $I11, rx461_pos, rx461_off
- substr $S10, rx461_tgt, $I11, 1
- ne $S10, ">", rx461_fail
- add rx461_pos, 1
- # rx pass
- rx461_cur."!cursor_pass"(rx461_pos, "")
- rx461_cur."!cursor_debug"("PASS ", "", " at pos=", rx461_pos)
- .return (rx461_cur)
- rx461_restart:
- rx461_cur."!cursor_debug"("NEXT ", "")
- rx461_fail:
- (rx461_rep, rx461_pos, $I10, $P10) = rx461_cur."!mark_fail"(0)
- lt rx461_pos, -1, rx461_done
- eq rx461_pos, -1, rx461_fail
- jump $I10
- rx461_done:
- rx461_cur."!cursor_fail"()
- rx461_cur."!cursor_debug"("FAIL ", "")
- .return (rx461_cur)
+ add $I11, rx459_pos, 1
+ gt $I11, rx459_eos, rx459_fail
+ sub $I11, rx459_pos, rx459_off
+ ord $I11, rx459_tgt, $I11
+ ne $I11, 62, rx459_fail
+ add rx459_pos, 1
+ # rx pass
+ rx459_cur."!cursor_pass"(rx459_pos, "")
+ if_null rx459_debug, debug_396
+ rx459_cur."!cursor_debug"("PASS", "", " at pos=", rx459_pos)
+ debug_396:
+ .return (rx459_cur)
+ rx459_restart:
+ if_null rx459_debug, debug_397
+ rx459_cur."!cursor_debug"("NEXT", "")
+ debug_397:
+ rx459_fail:
+ (rx459_rep, rx459_pos, $I10, $P10) = rx459_cur."!mark_fail"(0)
+ lt rx459_pos, -1, rx459_done
+ eq rx459_pos, -1, rx459_fail
+ jump $I10
+ rx459_done:
+ rx459_cur."!cursor_fail"()
+ if_null rx459_debug, debug_398
+ rx459_cur."!cursor_debug"("FAIL", "")
+ debug_398:
+ .return (rx459_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>" :subid("135_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx464_tgt
- .local int rx464_pos
- .local int rx464_off
- .local int rx464_eos
- .local int rx464_rep
- .local pmc rx464_cur
- (rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx464_cur
- .local pmc match
- .lex "$/", match
- length rx464_eos, rx464_tgt
- gt rx464_pos, rx464_eos, rx464_done
- set rx464_off, 0
- lt rx464_pos, 2, rx464_start
- sub rx464_off, rx464_pos, 1
- substr rx464_tgt, rx464_tgt, rx464_off
- rx464_start:
- eq $I10, 1, rx464_restart
- rx464_cur."!cursor_debug"("START ", "assertion:sym<method>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan468_done
- goto rxscan468_scan
- rxscan468_loop:
- ($P10) = rx464_cur."from"()
- inc $P10
- set rx464_pos, $P10
- ge rx464_pos, rx464_eos, rxscan468_done
- rxscan468_scan:
- set_addr $I10, rxscan468_loop
- rx464_cur."!mark_push"(0, rx464_pos, $I10)
- rxscan468_done:
-.annotate 'line', 146
- # rx literal "."
- add $I11, rx464_pos, 1
- gt $I11, rx464_eos, rx464_fail
- sub $I11, rx464_pos, rx464_off
- substr $S10, rx464_tgt, $I11, 1
- ne $S10, ".", rx464_fail
- add rx464_pos, 1
+.sub "assertion:sym<!>" :subid("134_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .const 'Sub' $P469 = "136_1282323996.47527"
+ capture_lex $P469
+ .local string rx462_tgt
+ .local int rx462_pos
+ .local int rx462_off
+ .local int rx462_eos
+ .local int rx462_rep
+ .local pmc rx462_cur
+ .local pmc rx462_debug
+ (rx462_cur, rx462_pos, rx462_tgt, $I10) = self."!cursor_start"()
+ getattribute rx462_debug, rx462_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx462_cur
+ .local pmc match
+ .lex "$/", match
+ length rx462_eos, rx462_tgt
+ gt rx462_pos, rx462_eos, rx462_done
+ set rx462_off, 0
+ lt rx462_pos, 2, rx462_start
+ sub rx462_off, rx462_pos, 1
+ substr rx462_tgt, rx462_tgt, rx462_off
+ rx462_start:
+ eq $I10, 1, rx462_restart
+ if_null rx462_debug, debug_402
+ rx462_cur."!cursor_debug"("START", "assertion:sym<!>")
+ debug_402:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan466_done
+ goto rxscan466_scan
+ rxscan466_loop:
+ ($P10) = rx462_cur."from"()
+ inc $P10
+ set rx462_pos, $P10
+ ge rx462_pos, rx462_eos, rxscan466_done
+ rxscan466_scan:
+ set_addr $I10, rxscan466_loop
+ rx462_cur."!mark_push"(0, rx462_pos, $I10)
+ rxscan466_done:
+.annotate 'line', 150
+ # rx literal "!"
+ add $I11, rx462_pos, 1
+ gt $I11, rx462_eos, rx462_fail
+ sub $I11, rx462_pos, rx462_off
+ ord $I11, rx462_tgt, $I11
+ ne $I11, 33, rx462_fail
+ add rx462_pos, 1
+ alt467_0:
+ set_addr $I10, alt467_1
+ rx462_cur."!mark_push"(0, rx462_pos, $I10)
+ # rx subrule "before" subtype=zerowidth negate=
+ rx462_cur."!cursor_pos"(rx462_pos)
+ .const 'Sub' $P469 = "136_1282323996.47527"
+ capture_lex $P469
+ $P10 = rx462_cur."before"($P469)
+ unless $P10, rx462_fail
+ goto alt467_end
+ alt467_1:
# rx subrule "assertion" subtype=capture negate=
- rx464_cur."!cursor_pos"(rx464_pos)
- $P10 = rx464_cur."assertion"()
- unless $P10, rx464_fail
- rx464_cur."!mark_push"(0, -1, 0, $P10)
+ rx462_cur."!cursor_pos"(rx462_pos)
+ $P10 = rx462_cur."assertion"()
+ unless $P10, rx462_fail
+ rx462_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx464_pos = $P10."pos"()
-.annotate 'line', 145
+ rx462_pos = $P10."pos"()
+ alt467_end:
# rx pass
- rx464_cur."!cursor_pass"(rx464_pos, "assertion:sym<method>")
- rx464_cur."!cursor_debug"("PASS ", "assertion:sym<method>", " at pos=", rx464_pos)
- .return (rx464_cur)
- rx464_restart:
+ rx462_cur."!cursor_pass"(rx462_pos, "assertion:sym<!>")
+ if_null rx462_debug, debug_407
+ rx462_cur."!cursor_debug"("PASS", "assertion:sym<!>", " at pos=", rx462_pos)
+ debug_407:
+ .return (rx462_cur)
+ rx462_restart:
.annotate 'line', 3
- rx464_cur."!cursor_debug"("NEXT ", "assertion:sym<method>")
- rx464_fail:
- (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
- lt rx464_pos, -1, rx464_done
- eq rx464_pos, -1, rx464_fail
+ if_null rx462_debug, debug_408
+ rx462_cur."!cursor_debug"("NEXT", "assertion:sym<!>")
+ debug_408:
+ rx462_fail:
+ (rx462_rep, rx462_pos, $I10, $P10) = rx462_cur."!mark_fail"(0)
+ lt rx462_pos, -1, rx462_done
+ eq rx462_pos, -1, rx462_fail
jump $I10
- rx464_done:
- rx464_cur."!cursor_fail"()
- rx464_cur."!cursor_debug"("FAIL ", "assertion:sym<method>")
- .return (rx464_cur)
+ rx462_done:
+ rx462_cur."!cursor_fail"()
+ if_null rx462_debug, debug_409
+ rx462_cur."!cursor_debug"("FAIL", "assertion:sym<!>")
+ debug_409:
+ .return (rx462_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>" :subid("136_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<!>" :subid("135_1282323996.47527") :method
.annotate 'line', 3
- $P466 = self."!PREFIX__!subrule"("assertion", ".")
- new $P467, "ResizablePMCArray"
- push $P467, $P466
- .return ($P467)
+ $P464 = self."!PREFIX__!subrule"("assertion", "!")
+ new $P465, "ResizablePMCArray"
+ push $P465, $P464
+ push $P465, "!"
+ .return ($P465)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>" :subid("137_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .const 'Sub' $P478 = "139_1280467470.54449"
- capture_lex $P478
+.sub "_block468" :anon :subid("136_1282323996.47527") :method :outer("134_1282323996.47527")
+.annotate 'line', 150
.local string rx470_tgt
.local int rx470_pos
.local int rx470_off
.local int rx470_eos
.local int rx470_rep
.local pmc rx470_cur
+ .local pmc rx470_debug
(rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"()
- rx470_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+ getattribute rx470_debug, rx470_cur, "$!debug"
.lex unicode:"$\x{a2}", rx470_cur
.local pmc match
.lex "$/", match
@@ -6153,135 +6734,38 @@
substr rx470_tgt, rx470_tgt, rx470_off
rx470_start:
eq $I10, 1, rx470_restart
- rx470_cur."!cursor_debug"("START ", "assertion:sym<name>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan474_done
- goto rxscan474_scan
- rxscan474_loop:
+ if_null rx470_debug, debug_403
+ rx470_cur."!cursor_debug"("START", "")
+ debug_403:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan471_done
+ goto rxscan471_scan
+ rxscan471_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
+ ge rx470_pos, rx470_eos, rxscan471_done
+ rxscan471_scan:
+ set_addr $I10, rxscan471_loop
rx470_cur."!mark_push"(0, rx470_pos, $I10)
- rxscan474_done:
-.annotate 'line', 150
- # rx subrule "identifier" subtype=capture negate=
- rx470_cur."!cursor_pos"(rx470_pos)
- $P10 = rx470_cur."identifier"()
- unless $P10, rx470_fail
- rx470_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("longname")
- rx470_pos = $P10."pos"()
-.annotate 'line', 157
- # rx rxquantr475 ** 0..1
- set_addr $I10, rxquantr475_done
- rx470_cur."!mark_push"(0, rx470_pos, $I10)
- rxquantr475_loop:
- alt476_0:
-.annotate 'line', 151
- set_addr $I10, alt476_1
- rx470_cur."!mark_push"(0, rx470_pos, $I10)
-.annotate 'line', 152
- # rx subrule "before" subtype=zerowidth negate=
- rx470_cur."!cursor_pos"(rx470_pos)
- .const 'Sub' $P478 = "139_1280467470.54449"
- capture_lex $P478
- $P10 = rx470_cur."before"($P478)
- unless $P10, rx470_fail
- goto alt476_end
- alt476_1:
- set_addr $I10, alt476_2
- rx470_cur."!mark_push"(0, rx470_pos, $I10)
-.annotate 'line', 153
- # rx literal "="
- add $I11, rx470_pos, 1
- gt $I11, rx470_eos, rx470_fail
- sub $I11, rx470_pos, rx470_off
- substr $S10, rx470_tgt, $I11, 1
- ne $S10, "=", rx470_fail
- add rx470_pos, 1
- # rx subrule "assertion" subtype=capture negate=
- rx470_cur."!cursor_pos"(rx470_pos)
- $P10 = rx470_cur."assertion"()
- unless $P10, rx470_fail
- rx470_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("assertion")
- rx470_pos = $P10."pos"()
- goto alt476_end
- alt476_2:
- set_addr $I10, alt476_3
- rx470_cur."!mark_push"(0, rx470_pos, $I10)
-.annotate 'line', 154
- # rx literal ":"
- add $I11, rx470_pos, 1
- gt $I11, rx470_eos, rx470_fail
- sub $I11, rx470_pos, rx470_off
- substr $S10, rx470_tgt, $I11, 1
- ne $S10, ":", rx470_fail
- add rx470_pos, 1
- # rx subrule "arglist" subtype=capture negate=
- rx470_cur."!cursor_pos"(rx470_pos)
- $P10 = rx470_cur."arglist"()
- unless $P10, rx470_fail
- rx470_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("arglist")
- rx470_pos = $P10."pos"()
- goto alt476_end
- alt476_3:
- set_addr $I10, alt476_4
- rx470_cur."!mark_push"(0, rx470_pos, $I10)
-.annotate 'line', 155
- # rx literal "("
- add $I11, rx470_pos, 1
- gt $I11, rx470_eos, rx470_fail
- sub $I11, rx470_pos, rx470_off
- substr $S10, rx470_tgt, $I11, 1
- ne $S10, "(", rx470_fail
- add rx470_pos, 1
- # rx subrule "arglist" subtype=capture negate=
- rx470_cur."!cursor_pos"(rx470_pos)
- $P10 = rx470_cur."arglist"()
- unless $P10, rx470_fail
- rx470_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("arglist")
- rx470_pos = $P10."pos"()
- # rx literal ")"
+ rxscan471_done:
+ # rx literal ">"
add $I11, rx470_pos, 1
gt $I11, rx470_eos, rx470_fail
sub $I11, rx470_pos, rx470_off
- substr $S10, rx470_tgt, $I11, 1
- ne $S10, ")", rx470_fail
+ ord $I11, rx470_tgt, $I11
+ ne $I11, 62, rx470_fail
add rx470_pos, 1
- goto alt476_end
- alt476_4:
-.annotate 'line', 156
- # rx subrule "normspace" subtype=method negate=
- rx470_cur."!cursor_pos"(rx470_pos)
- $P10 = rx470_cur."normspace"()
- unless $P10, rx470_fail
- rx470_pos = $P10."pos"()
- # rx subrule "nibbler" subtype=capture negate=
- rx470_cur."!cursor_pos"(rx470_pos)
- $P10 = rx470_cur."nibbler"()
- unless $P10, rx470_fail
- rx470_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("nibbler")
- rx470_pos = $P10."pos"()
- alt476_end:
-.annotate 'line', 157
- set_addr $I10, rxquantr475_done
- (rx470_rep) = rx470_cur."!mark_commit"($I10)
- rxquantr475_done:
-.annotate 'line', 149
# rx pass
- rx470_cur."!cursor_pass"(rx470_pos, "assertion:sym<name>")
- rx470_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx470_pos)
+ rx470_cur."!cursor_pass"(rx470_pos, "")
+ if_null rx470_debug, debug_404
+ rx470_cur."!cursor_debug"("PASS", "", " at pos=", rx470_pos)
+ debug_404:
.return (rx470_cur)
rx470_restart:
-.annotate 'line', 3
- rx470_cur."!cursor_debug"("NEXT ", "assertion:sym<name>")
+ if_null rx470_debug, debug_405
+ rx470_cur."!cursor_debug"("NEXT", "")
+ debug_405:
rx470_fail:
(rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
lt rx470_pos, -1, rx470_done
@@ -6289,32 +6773,119 @@
jump $I10
rx470_done:
rx470_cur."!cursor_fail"()
- rx470_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
+ if_null rx470_debug, debug_406
+ rx470_cur."!cursor_debug"("FAIL", "")
+ debug_406:
.return (rx470_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>" :subid("138_1280467470.54449") :method
+.sub "assertion:sym<method>" :subid("137_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx473_tgt
+ .local int rx473_pos
+ .local int rx473_off
+ .local int rx473_eos
+ .local int rx473_rep
+ .local pmc rx473_cur
+ .local pmc rx473_debug
+ (rx473_cur, rx473_pos, rx473_tgt, $I10) = self."!cursor_start"()
+ getattribute rx473_debug, rx473_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx473_cur
+ .local pmc match
+ .lex "$/", match
+ length rx473_eos, rx473_tgt
+ gt rx473_pos, rx473_eos, rx473_done
+ set rx473_off, 0
+ lt rx473_pos, 2, rx473_start
+ sub rx473_off, rx473_pos, 1
+ substr rx473_tgt, rx473_tgt, rx473_off
+ rx473_start:
+ eq $I10, 1, rx473_restart
+ if_null rx473_debug, debug_410
+ rx473_cur."!cursor_debug"("START", "assertion:sym<method>")
+ debug_410:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan477_done
+ goto rxscan477_scan
+ rxscan477_loop:
+ ($P10) = rx473_cur."from"()
+ inc $P10
+ set rx473_pos, $P10
+ ge rx473_pos, rx473_eos, rxscan477_done
+ rxscan477_scan:
+ set_addr $I10, rxscan477_loop
+ rx473_cur."!mark_push"(0, rx473_pos, $I10)
+ rxscan477_done:
+.annotate 'line', 153
+ # rx literal "."
+ add $I11, rx473_pos, 1
+ gt $I11, rx473_eos, rx473_fail
+ sub $I11, rx473_pos, rx473_off
+ ord $I11, rx473_tgt, $I11
+ ne $I11, 46, rx473_fail
+ add rx473_pos, 1
+ # rx subrule "assertion" subtype=capture negate=
+ rx473_cur."!cursor_pos"(rx473_pos)
+ $P10 = rx473_cur."assertion"()
+ unless $P10, rx473_fail
+ rx473_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("assertion")
+ rx473_pos = $P10."pos"()
+.annotate 'line', 152
+ # rx pass
+ rx473_cur."!cursor_pass"(rx473_pos, "assertion:sym<method>")
+ if_null rx473_debug, debug_411
+ rx473_cur."!cursor_debug"("PASS", "assertion:sym<method>", " at pos=", rx473_pos)
+ debug_411:
+ .return (rx473_cur)
+ rx473_restart:
+.annotate 'line', 3
+ if_null rx473_debug, debug_412
+ rx473_cur."!cursor_debug"("NEXT", "assertion:sym<method>")
+ debug_412:
+ rx473_fail:
+ (rx473_rep, rx473_pos, $I10, $P10) = rx473_cur."!mark_fail"(0)
+ lt rx473_pos, -1, rx473_done
+ eq rx473_pos, -1, rx473_fail
+ jump $I10
+ rx473_done:
+ rx473_cur."!cursor_fail"()
+ if_null rx473_debug, debug_413
+ rx473_cur."!cursor_debug"("FAIL", "assertion:sym<method>")
+ debug_413:
+ .return (rx473_cur)
+ .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__assertion:sym<method>" :subid("138_1282323996.47527") :method
.annotate 'line', 3
- $P472 = self."!PREFIX__!subrule"("identifier", "")
- new $P473, "ResizablePMCArray"
- push $P473, $P472
- .return ($P473)
+ $P475 = self."!PREFIX__!subrule"("assertion", ".")
+ new $P476, "ResizablePMCArray"
+ push $P476, $P475
+ .return ($P476)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block477" :anon :subid("139_1280467470.54449") :method :outer("137_1280467470.54449")
-.annotate 'line', 152
+.sub "assertion:sym<name>" :subid("139_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .const 'Sub' $P487 = "141_1282323996.47527"
+ capture_lex $P487
.local string rx479_tgt
.local int rx479_pos
.local int rx479_off
.local int rx479_eos
.local int rx479_rep
.local pmc rx479_cur
+ .local pmc rx479_debug
(rx479_cur, rx479_pos, rx479_tgt, $I10) = self."!cursor_start"()
+ rx479_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+ getattribute rx479_debug, rx479_cur, "$!debug"
.lex unicode:"$\x{a2}", rx479_cur
.local pmc match
.lex "$/", match
@@ -6326,32 +6897,141 @@
substr rx479_tgt, rx479_tgt, rx479_off
rx479_start:
eq $I10, 1, rx479_restart
- rx479_cur."!cursor_debug"("START ", "")
- $I10 = self.'from'()
- ne $I10, -1, rxscan480_done
- goto rxscan480_scan
- rxscan480_loop:
+ if_null rx479_debug, debug_414
+ rx479_cur."!cursor_debug"("START", "assertion:sym<name>")
+ debug_414:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan483_done
+ goto rxscan483_scan
+ rxscan483_loop:
($P10) = rx479_cur."from"()
inc $P10
set rx479_pos, $P10
- ge rx479_pos, rx479_eos, rxscan480_done
- rxscan480_scan:
- set_addr $I10, rxscan480_loop
+ ge rx479_pos, rx479_eos, rxscan483_done
+ rxscan483_scan:
+ set_addr $I10, rxscan483_loop
rx479_cur."!mark_push"(0, rx479_pos, $I10)
- rxscan480_done:
- # rx literal ">"
+ rxscan483_done:
+.annotate 'line', 157
+ # rx subrule "identifier" subtype=capture negate=
+ rx479_cur."!cursor_pos"(rx479_pos)
+ $P10 = rx479_cur."identifier"()
+ unless $P10, rx479_fail
+ rx479_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("longname")
+ rx479_pos = $P10."pos"()
+.annotate 'line', 164
+ # rx rxquantr484 ** 0..1
+ set_addr $I10, rxquantr484_done
+ rx479_cur."!mark_push"(0, rx479_pos, $I10)
+ rxquantr484_loop:
+ alt485_0:
+.annotate 'line', 158
+ set_addr $I10, alt485_1
+ rx479_cur."!mark_push"(0, rx479_pos, $I10)
+.annotate 'line', 159
+ # rx subrule "before" subtype=zerowidth negate=
+ rx479_cur."!cursor_pos"(rx479_pos)
+ .const 'Sub' $P487 = "141_1282323996.47527"
+ capture_lex $P487
+ $P10 = rx479_cur."before"($P487)
+ unless $P10, rx479_fail
+ goto alt485_end
+ alt485_1:
+ set_addr $I10, alt485_2
+ rx479_cur."!mark_push"(0, rx479_pos, $I10)
+.annotate 'line', 160
+ # rx literal "="
+ add $I11, rx479_pos, 1
+ gt $I11, rx479_eos, rx479_fail
+ sub $I11, rx479_pos, rx479_off
+ ord $I11, rx479_tgt, $I11
+ ne $I11, 61, rx479_fail
+ add rx479_pos, 1
+ # rx subrule "assertion" subtype=capture negate=
+ rx479_cur."!cursor_pos"(rx479_pos)
+ $P10 = rx479_cur."assertion"()
+ unless $P10, rx479_fail
+ rx479_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("assertion")
+ rx479_pos = $P10."pos"()
+ goto alt485_end
+ alt485_2:
+ set_addr $I10, alt485_3
+ rx479_cur."!mark_push"(0, rx479_pos, $I10)
+.annotate 'line', 161
+ # rx literal ":"
+ add $I11, rx479_pos, 1
+ gt $I11, rx479_eos, rx479_fail
+ sub $I11, rx479_pos, rx479_off
+ ord $I11, rx479_tgt, $I11
+ ne $I11, 58, rx479_fail
+ add rx479_pos, 1
+ # rx subrule "arglist" subtype=capture negate=
+ rx479_cur."!cursor_pos"(rx479_pos)
+ $P10 = rx479_cur."arglist"()
+ unless $P10, rx479_fail
+ rx479_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("arglist")
+ rx479_pos = $P10."pos"()
+ goto alt485_end
+ alt485_3:
+ set_addr $I10, alt485_4
+ rx479_cur."!mark_push"(0, rx479_pos, $I10)
+.annotate 'line', 162
+ # rx literal "("
+ add $I11, rx479_pos, 1
+ gt $I11, rx479_eos, rx479_fail
+ sub $I11, rx479_pos, rx479_off
+ ord $I11, rx479_tgt, $I11
+ ne $I11, 40, rx479_fail
+ add rx479_pos, 1
+ # rx subrule "arglist" subtype=capture negate=
+ rx479_cur."!cursor_pos"(rx479_pos)
+ $P10 = rx479_cur."arglist"()
+ unless $P10, rx479_fail
+ rx479_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("arglist")
+ rx479_pos = $P10."pos"()
+ # rx literal ")"
add $I11, rx479_pos, 1
gt $I11, rx479_eos, rx479_fail
sub $I11, rx479_pos, rx479_off
- substr $S10, rx479_tgt, $I11, 1
- ne $S10, ">", rx479_fail
+ ord $I11, rx479_tgt, $I11
+ ne $I11, 41, rx479_fail
add rx479_pos, 1
+ goto alt485_end
+ alt485_4:
+.annotate 'line', 163
+ # rx subrule "normspace" subtype=method negate=
+ rx479_cur."!cursor_pos"(rx479_pos)
+ $P10 = rx479_cur."normspace"()
+ unless $P10, rx479_fail
+ rx479_pos = $P10."pos"()
+ # rx subrule "nibbler" subtype=capture negate=
+ rx479_cur."!cursor_pos"(rx479_pos)
+ $P10 = rx479_cur."nibbler"()
+ unless $P10, rx479_fail
+ rx479_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("nibbler")
+ rx479_pos = $P10."pos"()
+ alt485_end:
+.annotate 'line', 164
+ set_addr $I10, rxquantr484_done
+ (rx479_rep) = rx479_cur."!mark_commit"($I10)
+ rxquantr484_done:
+.annotate 'line', 156
# rx pass
- rx479_cur."!cursor_pass"(rx479_pos, "")
- rx479_cur."!cursor_debug"("PASS ", "", " at pos=", rx479_pos)
+ rx479_cur."!cursor_pass"(rx479_pos, "assertion:sym<name>")
+ if_null rx479_debug, debug_419
+ rx479_cur."!cursor_debug"("PASS", "assertion:sym<name>", " at pos=", rx479_pos)
+ debug_419:
.return (rx479_cur)
rx479_restart:
- rx479_cur."!cursor_debug"("NEXT ", "")
+.annotate 'line', 3
+ if_null rx479_debug, debug_420
+ rx479_cur."!cursor_debug"("NEXT", "assertion:sym<name>")
+ debug_420:
rx479_fail:
(rx479_rep, rx479_pos, $I10, $P10) = rx479_cur."!mark_fail"(0)
lt rx479_pos, -1, rx479_done
@@ -6359,118 +7039,36 @@
jump $I10
rx479_done:
rx479_cur."!cursor_fail"()
- rx479_cur."!cursor_debug"("FAIL ", "")
+ if_null rx479_debug, debug_421
+ rx479_cur."!cursor_debug"("FAIL", "assertion:sym<name>")
+ debug_421:
.return (rx479_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>" :subid("140_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .const 'Sub' $P487 = "142_1280467470.54449"
- capture_lex $P487
- .local string rx482_tgt
- .local int rx482_pos
- .local int rx482_off
- .local int rx482_eos
- .local int rx482_rep
- .local pmc rx482_cur
- (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"()
- rx482_cur."!cursor_caparray"("cclass_elem")
- .lex unicode:"$\x{a2}", rx482_cur
- .local pmc match
- .lex "$/", match
- length rx482_eos, rx482_tgt
- gt rx482_pos, rx482_eos, rx482_done
- set rx482_off, 0
- lt rx482_pos, 2, rx482_start
- sub rx482_off, rx482_pos, 1
- substr rx482_tgt, rx482_tgt, rx482_off
- rx482_start:
- eq $I10, 1, rx482_restart
- rx482_cur."!cursor_debug"("START ", "assertion:sym<[>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan485_done
- goto rxscan485_scan
- rxscan485_loop:
- ($P10) = rx482_cur."from"()
- inc $P10
- set rx482_pos, $P10
- ge rx482_pos, rx482_eos, rxscan485_done
- rxscan485_scan:
- set_addr $I10, rxscan485_loop
- rx482_cur."!mark_push"(0, rx482_pos, $I10)
- rxscan485_done:
-.annotate 'line', 160
- # rx subrule "before" subtype=zerowidth negate=
- rx482_cur."!cursor_pos"(rx482_pos)
- .const 'Sub' $P487 = "142_1280467470.54449"
- capture_lex $P487
- $P10 = rx482_cur."before"($P487)
- unless $P10, rx482_fail
- # rx rxquantr491 ** 1..*
- set_addr $I10, rxquantr491_done
- rx482_cur."!mark_push"(0, -1, $I10)
- rxquantr491_loop:
- # rx subrule "cclass_elem" subtype=capture negate=
- rx482_cur."!cursor_pos"(rx482_pos)
- $P10 = rx482_cur."cclass_elem"()
- unless $P10, rx482_fail
- goto rxsubrule492_pass
- rxsubrule492_back:
- $P10 = $P10."!cursor_next"()
- unless $P10, rx482_fail
- rxsubrule492_pass:
- set_addr $I10, rxsubrule492_back
- rx482_cur."!mark_push"(0, rx482_pos, $I10, $P10)
- $P10."!cursor_names"("cclass_elem")
- rx482_pos = $P10."pos"()
- set_addr $I10, rxquantr491_done
- (rx482_rep) = rx482_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr491_done
- rx482_cur."!mark_push"(rx482_rep, rx482_pos, $I10)
- goto rxquantr491_loop
- rxquantr491_done:
- # rx pass
- rx482_cur."!cursor_pass"(rx482_pos, "assertion:sym<[>")
- rx482_cur."!cursor_debug"("PASS ", "assertion:sym<[>", " at pos=", rx482_pos)
- .return (rx482_cur)
- rx482_restart:
-.annotate 'line', 3
- rx482_cur."!cursor_debug"("NEXT ", "assertion:sym<[>")
- rx482_fail:
- (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
- lt rx482_pos, -1, rx482_done
- eq rx482_pos, -1, rx482_fail
- jump $I10
- rx482_done:
- rx482_cur."!cursor_fail"()
- rx482_cur."!cursor_debug"("FAIL ", "assertion:sym<[>")
- .return (rx482_cur)
- .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>" :subid("141_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<name>" :subid("140_1282323996.47527") :method
.annotate 'line', 3
- new $P484, "ResizablePMCArray"
- push $P484, ""
- .return ($P484)
+ $P481 = self."!PREFIX__!subrule"("identifier", "")
+ new $P482, "ResizablePMCArray"
+ push $P482, $P481
+ .return ($P482)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block486" :anon :subid("142_1280467470.54449") :method :outer("140_1280467470.54449")
-.annotate 'line', 160
+.sub "_block486" :anon :subid("141_1282323996.47527") :method :outer("139_1282323996.47527")
+.annotate 'line', 159
.local string rx488_tgt
.local int rx488_pos
.local int rx488_off
.local int rx488_eos
.local int rx488_rep
.local pmc rx488_cur
+ .local pmc rx488_debug
(rx488_cur, rx488_pos, rx488_tgt, $I10) = self."!cursor_start"()
+ getattribute rx488_debug, rx488_cur, "$!debug"
.lex unicode:"$\x{a2}", rx488_cur
.local pmc match
.lex "$/", match
@@ -6482,7 +7080,9 @@
substr rx488_tgt, rx488_tgt, rx488_off
rx488_start:
eq $I10, 1, rx488_restart
- rx488_cur."!cursor_debug"("START ", "")
+ if_null rx488_debug, debug_415
+ rx488_cur."!cursor_debug"("START", "")
+ debug_415:
$I10 = self.'from'()
ne $I10, -1, rxscan489_done
goto rxscan489_scan
@@ -6495,43 +7095,23 @@
set_addr $I10, rxscan489_loop
rx488_cur."!mark_push"(0, rx488_pos, $I10)
rxscan489_done:
- alt490_0:
- set_addr $I10, alt490_1
- rx488_cur."!mark_push"(0, rx488_pos, $I10)
- # rx literal "["
- add $I11, rx488_pos, 1
- gt $I11, rx488_eos, rx488_fail
- sub $I11, rx488_pos, rx488_off
- substr $S10, rx488_tgt, $I11, 1
- ne $S10, "[", rx488_fail
- add rx488_pos, 1
- goto alt490_end
- alt490_1:
- set_addr $I10, alt490_2
- rx488_cur."!mark_push"(0, rx488_pos, $I10)
- # rx literal "+"
- add $I11, rx488_pos, 1
- gt $I11, rx488_eos, rx488_fail
- sub $I11, rx488_pos, rx488_off
- substr $S10, rx488_tgt, $I11, 1
- ne $S10, "+", rx488_fail
- add rx488_pos, 1
- goto alt490_end
- alt490_2:
- # rx literal "-"
+ # rx literal ">"
add $I11, rx488_pos, 1
gt $I11, rx488_eos, rx488_fail
sub $I11, rx488_pos, rx488_off
- substr $S10, rx488_tgt, $I11, 1
- ne $S10, "-", rx488_fail
+ ord $I11, rx488_tgt, $I11
+ ne $I11, 62, rx488_fail
add rx488_pos, 1
- alt490_end:
# rx pass
rx488_cur."!cursor_pass"(rx488_pos, "")
- rx488_cur."!cursor_debug"("PASS ", "", " at pos=", rx488_pos)
+ if_null rx488_debug, debug_416
+ rx488_cur."!cursor_debug"("PASS", "", " at pos=", rx488_pos)
+ debug_416:
.return (rx488_cur)
rx488_restart:
- rx488_cur."!cursor_debug"("NEXT ", "")
+ if_null rx488_debug, debug_417
+ rx488_cur."!cursor_debug"("NEXT", "")
+ debug_417:
rx488_fail:
(rx488_rep, rx488_pos, $I10, $P10) = rx488_cur."!mark_fail"(0)
lt rx488_pos, -1, rx488_done
@@ -6539,514 +7119,622 @@
jump $I10
rx488_done:
rx488_cur."!cursor_fail"()
- rx488_cur."!cursor_debug"("FAIL ", "")
+ if_null rx488_debug, debug_418
+ rx488_cur."!cursor_debug"("FAIL", "")
+ debug_418:
.return (rx488_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem" :subid("143_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<[>" :subid("142_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
- .const 'Sub' $P505 = "145_1280467470.54449"
- capture_lex $P505
- .local string rx494_tgt
- .local int rx494_pos
- .local int rx494_off
- .local int rx494_eos
- .local int rx494_rep
- .local pmc rx494_cur
- (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"()
- rx494_cur."!cursor_caparray"("charspec")
- .lex unicode:"$\x{a2}", rx494_cur
- .local pmc match
- .lex "$/", match
- length rx494_eos, rx494_tgt
- gt rx494_pos, rx494_eos, rx494_done
- set rx494_off, 0
- lt rx494_pos, 2, rx494_start
- sub rx494_off, rx494_pos, 1
- substr rx494_tgt, rx494_tgt, rx494_off
- rx494_start:
- eq $I10, 1, rx494_restart
- rx494_cur."!cursor_debug"("START ", "cclass_elem")
- $I10 = self.'from'()
- ne $I10, -1, rxscan497_done
- goto rxscan497_scan
- rxscan497_loop:
- ($P10) = rx494_cur."from"()
- inc $P10
- set rx494_pos, $P10
- ge rx494_pos, rx494_eos, rxscan497_done
- rxscan497_scan:
- set_addr $I10, rxscan497_loop
- rx494_cur."!mark_push"(0, rx494_pos, $I10)
- rxscan497_done:
-.annotate 'line', 163
- # rx subcapture "sign"
- set_addr $I10, rxcap_499_fail
- rx494_cur."!mark_push"(0, rx494_pos, $I10)
- alt498_0:
- set_addr $I10, alt498_1
- rx494_cur."!mark_push"(0, rx494_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 alt498_end
- alt498_1:
- set_addr $I10, alt498_2
- rx494_cur."!mark_push"(0, rx494_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 alt498_end
- alt498_2:
- alt498_end:
- set_addr $I10, rxcap_499_fail
- ($I12, $I11) = rx494_cur."!mark_peek"($I10)
- rx494_cur."!cursor_pos"($I11)
- ($P10) = rx494_cur."!cursor_start"()
- $P10."!cursor_pass"(rx494_pos, "")
- rx494_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sign")
- goto rxcap_499_done
- rxcap_499_fail:
- goto rx494_fail
- rxcap_499_done:
-.annotate 'line', 164
- # rx rxquantr500 ** 0..1
+ .const 'Sub' $P496 = "144_1282323996.47527"
+ capture_lex $P496
+ .local string rx491_tgt
+ .local int rx491_pos
+ .local int rx491_off
+ .local int rx491_eos
+ .local int rx491_rep
+ .local pmc rx491_cur
+ .local pmc rx491_debug
+ (rx491_cur, rx491_pos, rx491_tgt, $I10) = self."!cursor_start"()
+ rx491_cur."!cursor_caparray"("cclass_elem")
+ getattribute rx491_debug, rx491_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx491_cur
+ .local pmc match
+ .lex "$/", match
+ length rx491_eos, rx491_tgt
+ gt rx491_pos, rx491_eos, rx491_done
+ set rx491_off, 0
+ lt rx491_pos, 2, rx491_start
+ sub rx491_off, rx491_pos, 1
+ substr rx491_tgt, rx491_tgt, rx491_off
+ rx491_start:
+ eq $I10, 1, rx491_restart
+ if_null rx491_debug, debug_422
+ rx491_cur."!cursor_debug"("START", "assertion:sym<[>")
+ debug_422:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan494_done
+ goto rxscan494_scan
+ rxscan494_loop:
+ ($P10) = rx491_cur."from"()
+ inc $P10
+ set rx491_pos, $P10
+ ge rx491_pos, rx491_eos, rxscan494_done
+ rxscan494_scan:
+ set_addr $I10, rxscan494_loop
+ rx491_cur."!mark_push"(0, rx491_pos, $I10)
+ rxscan494_done:
+.annotate 'line', 167
+ # rx subrule "before" subtype=zerowidth negate=
+ rx491_cur."!cursor_pos"(rx491_pos)
+ .const 'Sub' $P496 = "144_1282323996.47527"
+ capture_lex $P496
+ $P10 = rx491_cur."before"($P496)
+ unless $P10, rx491_fail
+ # rx rxquantr500 ** 1..*
set_addr $I10, rxquantr500_done
- rx494_cur."!mark_push"(0, rx494_pos, $I10)
+ rx491_cur."!mark_push"(0, -1, $I10)
rxquantr500_loop:
- # rx subrule "normspace" subtype=method negate=
- rx494_cur."!cursor_pos"(rx494_pos)
- $P10 = rx494_cur."normspace"()
- unless $P10, rx494_fail
+ # rx subrule "cclass_elem" subtype=capture negate=
+ rx491_cur."!cursor_pos"(rx491_pos)
+ $P10 = rx491_cur."cclass_elem"()
+ unless $P10, rx491_fail
goto rxsubrule501_pass
rxsubrule501_back:
$P10 = $P10."!cursor_next"()
- unless $P10, rx494_fail
+ unless $P10, rx491_fail
rxsubrule501_pass:
set_addr $I10, rxsubrule501_back
- rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
- rx494_pos = $P10."pos"()
+ rx491_cur."!mark_push"(0, rx491_pos, $I10, $P10)
+ $P10."!cursor_names"("cclass_elem")
+ rx491_pos = $P10."pos"()
set_addr $I10, rxquantr500_done
- (rx494_rep) = rx494_cur."!mark_commit"($I10)
+ (rx491_rep) = rx491_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr500_done
+ rx491_cur."!mark_push"(rx491_rep, rx491_pos, $I10)
+ goto rxquantr500_loop
rxquantr500_done:
- alt502_0:
-.annotate 'line', 165
- set_addr $I10, alt502_1
- rx494_cur."!mark_push"(0, rx494_pos, $I10)
-.annotate 'line', 166
+ # rx pass
+ rx491_cur."!cursor_pass"(rx491_pos, "assertion:sym<[>")
+ if_null rx491_debug, debug_427
+ rx491_cur."!cursor_debug"("PASS", "assertion:sym<[>", " at pos=", rx491_pos)
+ debug_427:
+ .return (rx491_cur)
+ rx491_restart:
+.annotate 'line', 3
+ if_null rx491_debug, debug_428
+ rx491_cur."!cursor_debug"("NEXT", "assertion:sym<[>")
+ debug_428:
+ rx491_fail:
+ (rx491_rep, rx491_pos, $I10, $P10) = rx491_cur."!mark_fail"(0)
+ lt rx491_pos, -1, rx491_done
+ eq rx491_pos, -1, rx491_fail
+ jump $I10
+ rx491_done:
+ rx491_cur."!cursor_fail"()
+ if_null rx491_debug, debug_429
+ rx491_cur."!cursor_debug"("FAIL", "assertion:sym<[>")
+ debug_429:
+ .return (rx491_cur)
+ .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__assertion:sym<[>" :subid("143_1282323996.47527") :method
+.annotate 'line', 3
+ new $P493, "ResizablePMCArray"
+ push $P493, ""
+ .return ($P493)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "_block495" :anon :subid("144_1282323996.47527") :method :outer("142_1282323996.47527")
+.annotate 'line', 167
+ .local string rx497_tgt
+ .local int rx497_pos
+ .local int rx497_off
+ .local int rx497_eos
+ .local int rx497_rep
+ .local pmc rx497_cur
+ .local pmc rx497_debug
+ (rx497_cur, rx497_pos, rx497_tgt, $I10) = self."!cursor_start"()
+ getattribute rx497_debug, rx497_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx497_cur
+ .local pmc match
+ .lex "$/", match
+ length rx497_eos, rx497_tgt
+ gt rx497_pos, rx497_eos, rx497_done
+ set rx497_off, 0
+ lt rx497_pos, 2, rx497_start
+ sub rx497_off, rx497_pos, 1
+ substr rx497_tgt, rx497_tgt, rx497_off
+ rx497_start:
+ eq $I10, 1, rx497_restart
+ if_null rx497_debug, debug_423
+ rx497_cur."!cursor_debug"("START", "")
+ debug_423:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan498_done
+ goto rxscan498_scan
+ rxscan498_loop:
+ ($P10) = rx497_cur."from"()
+ inc $P10
+ set rx497_pos, $P10
+ ge rx497_pos, rx497_eos, rxscan498_done
+ rxscan498_scan:
+ set_addr $I10, rxscan498_loop
+ rx497_cur."!mark_push"(0, rx497_pos, $I10)
+ rxscan498_done:
+ alt499_0:
+ set_addr $I10, alt499_1
+ rx497_cur."!mark_push"(0, rx497_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
-.annotate 'line', 169
- # rx rxquantr503 ** 0..*
- set_addr $I10, rxquantr503_done
- rx494_cur."!mark_push"(0, rx494_pos, $I10)
- rxquantr503_loop:
-.annotate 'line', 166
- # rx subrule $P505 subtype=capture negate=
- rx494_cur."!cursor_pos"(rx494_pos)
- .const 'Sub' $P505 = "145_1280467470.54449"
- capture_lex $P505
- $P10 = rx494_cur.$P505()
- unless $P10, rx494_fail
- goto rxsubrule523_pass
- rxsubrule523_back:
+ add $I11, rx497_pos, 1
+ gt $I11, rx497_eos, rx497_fail
+ sub $I11, rx497_pos, rx497_off
+ ord $I11, rx497_tgt, $I11
+ ne $I11, 91, rx497_fail
+ add rx497_pos, 1
+ goto alt499_end
+ alt499_1:
+ set_addr $I10, alt499_2
+ rx497_cur."!mark_push"(0, rx497_pos, $I10)
+ # rx literal "+"
+ add $I11, rx497_pos, 1
+ gt $I11, rx497_eos, rx497_fail
+ sub $I11, rx497_pos, rx497_off
+ ord $I11, rx497_tgt, $I11
+ ne $I11, 43, rx497_fail
+ add rx497_pos, 1
+ goto alt499_end
+ alt499_2:
+ # rx literal "-"
+ add $I11, rx497_pos, 1
+ gt $I11, rx497_eos, rx497_fail
+ sub $I11, rx497_pos, rx497_off
+ ord $I11, rx497_tgt, $I11
+ ne $I11, 45, rx497_fail
+ add rx497_pos, 1
+ alt499_end:
+ # rx pass
+ rx497_cur."!cursor_pass"(rx497_pos, "")
+ if_null rx497_debug, debug_424
+ rx497_cur."!cursor_debug"("PASS", "", " at pos=", rx497_pos)
+ debug_424:
+ .return (rx497_cur)
+ rx497_restart:
+ if_null rx497_debug, debug_425
+ rx497_cur."!cursor_debug"("NEXT", "")
+ debug_425:
+ rx497_fail:
+ (rx497_rep, rx497_pos, $I10, $P10) = rx497_cur."!mark_fail"(0)
+ lt rx497_pos, -1, rx497_done
+ eq rx497_pos, -1, rx497_fail
+ jump $I10
+ rx497_done:
+ rx497_cur."!cursor_fail"()
+ if_null rx497_debug, debug_426
+ rx497_cur."!cursor_debug"("FAIL", "")
+ debug_426:
+ .return (rx497_cur)
+ .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "cclass_elem" :subid("145_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .const 'Sub' $P514 = "147_1282323996.47527"
+ capture_lex $P514
+ .local string rx503_tgt
+ .local int rx503_pos
+ .local int rx503_off
+ .local int rx503_eos
+ .local int rx503_rep
+ .local pmc rx503_cur
+ .local pmc rx503_debug
+ (rx503_cur, rx503_pos, rx503_tgt, $I10) = self."!cursor_start"()
+ rx503_cur."!cursor_caparray"("charspec")
+ getattribute rx503_debug, rx503_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx503_cur
+ .local pmc match
+ .lex "$/", match
+ length rx503_eos, rx503_tgt
+ gt rx503_pos, rx503_eos, rx503_done
+ set rx503_off, 0
+ lt rx503_pos, 2, rx503_start
+ sub rx503_off, rx503_pos, 1
+ substr rx503_tgt, rx503_tgt, rx503_off
+ rx503_start:
+ eq $I10, 1, rx503_restart
+ if_null rx503_debug, debug_430
+ rx503_cur."!cursor_debug"("START", "cclass_elem")
+ debug_430:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan506_done
+ goto rxscan506_scan
+ rxscan506_loop:
+ ($P10) = rx503_cur."from"()
+ inc $P10
+ set rx503_pos, $P10
+ ge rx503_pos, rx503_eos, rxscan506_done
+ rxscan506_scan:
+ set_addr $I10, rxscan506_loop
+ rx503_cur."!mark_push"(0, rx503_pos, $I10)
+ rxscan506_done:
+.annotate 'line', 170
+ # rx subcapture "sign"
+ set_addr $I10, rxcap_508_fail
+ rx503_cur."!mark_push"(0, rx503_pos, $I10)
+ alt507_0:
+ set_addr $I10, alt507_1
+ rx503_cur."!mark_push"(0, rx503_pos, $I10)
+ # rx literal "+"
+ add $I11, rx503_pos, 1
+ gt $I11, rx503_eos, rx503_fail
+ sub $I11, rx503_pos, rx503_off
+ ord $I11, rx503_tgt, $I11
+ ne $I11, 43, rx503_fail
+ add rx503_pos, 1
+ goto alt507_end
+ alt507_1:
+ set_addr $I10, alt507_2
+ rx503_cur."!mark_push"(0, rx503_pos, $I10)
+ # rx literal "-"
+ add $I11, rx503_pos, 1
+ gt $I11, rx503_eos, rx503_fail
+ sub $I11, rx503_pos, rx503_off
+ ord $I11, rx503_tgt, $I11
+ ne $I11, 45, rx503_fail
+ add rx503_pos, 1
+ goto alt507_end
+ alt507_2:
+ alt507_end:
+ set_addr $I10, rxcap_508_fail
+ ($I12, $I11) = rx503_cur."!mark_peek"($I10)
+ rx503_cur."!cursor_pos"($I11)
+ ($P10) = rx503_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx503_pos, "")
+ rx503_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sign")
+ goto rxcap_508_done
+ rxcap_508_fail:
+ goto rx503_fail
+ rxcap_508_done:
+.annotate 'line', 171
+ # rx rxquantr509 ** 0..1
+ set_addr $I10, rxquantr509_done
+ rx503_cur."!mark_push"(0, rx503_pos, $I10)
+ rxquantr509_loop:
+ # rx subrule "normspace" subtype=method negate=
+ rx503_cur."!cursor_pos"(rx503_pos)
+ $P10 = rx503_cur."normspace"()
+ unless $P10, rx503_fail
+ goto rxsubrule510_pass
+ rxsubrule510_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx503_fail
+ rxsubrule510_pass:
+ set_addr $I10, rxsubrule510_back
+ rx503_cur."!mark_push"(0, rx503_pos, $I10, $P10)
+ rx503_pos = $P10."pos"()
+ set_addr $I10, rxquantr509_done
+ (rx503_rep) = rx503_cur."!mark_commit"($I10)
+ rxquantr509_done:
+ alt511_0:
+.annotate 'line', 172
+ set_addr $I10, alt511_1
+ rx503_cur."!mark_push"(0, rx503_pos, $I10)
+.annotate 'line', 173
+ # rx literal "["
+ add $I11, rx503_pos, 1
+ gt $I11, rx503_eos, rx503_fail
+ sub $I11, rx503_pos, rx503_off
+ ord $I11, rx503_tgt, $I11
+ ne $I11, 91, rx503_fail
+ add rx503_pos, 1
+.annotate 'line', 176
+ # rx rxquantr512 ** 0..*
+ set_addr $I10, rxquantr512_done
+ rx503_cur."!mark_push"(0, rx503_pos, $I10)
+ rxquantr512_loop:
+.annotate 'line', 173
+ # rx subrule $P514 subtype=capture negate=
+ rx503_cur."!cursor_pos"(rx503_pos)
+ .const 'Sub' $P514 = "147_1282323996.47527"
+ capture_lex $P514
+ $P10 = rx503_cur.$P514()
+ unless $P10, rx503_fail
+ goto rxsubrule532_pass
+ rxsubrule532_back:
$P10 = $P10."!cursor_next"()
- unless $P10, rx494_fail
- rxsubrule523_pass:
- set_addr $I10, rxsubrule523_back
- rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
+ unless $P10, rx503_fail
+ rxsubrule532_pass:
+ set_addr $I10, rxsubrule532_back
+ rx503_cur."!mark_push"(0, rx503_pos, $I10, $P10)
$P10."!cursor_names"("charspec")
- rx494_pos = $P10."pos"()
-.annotate 'line', 169
- set_addr $I10, rxquantr503_done
- (rx494_rep) = rx494_cur."!mark_commit"($I10)
- set_addr $I10, rxquantr503_done
- rx494_cur."!mark_push"(rx494_rep, rx494_pos, $I10)
- goto rxquantr503_loop
- rxquantr503_done:
-.annotate 'line', 170
+ rx503_pos = $P10."pos"()
+.annotate 'line', 176
+ set_addr $I10, rxquantr512_done
+ (rx503_rep) = rx503_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr512_done
+ rx503_cur."!mark_push"(rx503_rep, rx503_pos, $I10)
+ goto rxquantr512_loop
+ rxquantr512_done:
+.annotate 'line', 177
# rx charclass_q s r 0..-1
- sub $I10, rx494_pos, rx494_off
- find_not_cclass $I11, 32, rx494_tgt, $I10, rx494_eos
- add rx494_pos, rx494_off, $I11
+ sub $I10, rx503_pos, rx503_off
+ find_not_cclass $I11, 32, rx503_tgt, $I10, rx503_eos
+ add rx503_pos, rx503_off, $I11
# 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
-.annotate 'line', 166
- goto alt502_end
- alt502_1:
-.annotate 'line', 171
+ add $I11, rx503_pos, 1
+ gt $I11, rx503_eos, rx503_fail
+ sub $I11, rx503_pos, rx503_off
+ ord $I11, rx503_tgt, $I11
+ ne $I11, 93, rx503_fail
+ add rx503_pos, 1
+.annotate 'line', 173
+ goto alt511_end
+ alt511_1:
+.annotate 'line', 178
# rx subcapture "name"
- set_addr $I10, rxcap_524_fail
- rx494_cur."!mark_push"(0, rx494_pos, $I10)
+ set_addr $I10, rxcap_533_fail
+ rx503_cur."!mark_push"(0, rx503_pos, $I10)
# rx charclass_q w r 1..-1
- sub $I10, rx494_pos, rx494_off
- find_not_cclass $I11, 8192, rx494_tgt, $I10, rx494_eos
+ sub $I10, rx503_pos, rx503_off
+ find_not_cclass $I11, 8192, rx503_tgt, $I10, rx503_eos
add $I12, $I10, 1
- lt $I11, $I12, rx494_fail
- add rx494_pos, rx494_off, $I11
- set_addr $I10, rxcap_524_fail
- ($I12, $I11) = rx494_cur."!mark_peek"($I10)
- rx494_cur."!cursor_pos"($I11)
- ($P10) = rx494_cur."!cursor_start"()
- $P10."!cursor_pass"(rx494_pos, "")
- rx494_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx503_fail
+ add rx503_pos, rx503_off, $I11
+ set_addr $I10, rxcap_533_fail
+ ($I12, $I11) = rx503_cur."!mark_peek"($I10)
+ rx503_cur."!cursor_pos"($I11)
+ ($P10) = rx503_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx503_pos, "")
+ rx503_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- goto rxcap_524_done
- rxcap_524_fail:
- goto rx494_fail
- rxcap_524_done:
- alt502_end:
-.annotate 'line', 173
- # rx rxquantr525 ** 0..1
- set_addr $I10, rxquantr525_done
- rx494_cur."!mark_push"(0, rx494_pos, $I10)
- rxquantr525_loop:
+ goto rxcap_533_done
+ rxcap_533_fail:
+ goto rx503_fail
+ rxcap_533_done:
+ alt511_end:
+.annotate 'line', 180
+ # rx rxquantr534 ** 0..1
+ set_addr $I10, rxquantr534_done
+ rx503_cur."!mark_push"(0, rx503_pos, $I10)
+ rxquantr534_loop:
# rx subrule "normspace" subtype=method negate=
- rx494_cur."!cursor_pos"(rx494_pos)
- $P10 = rx494_cur."normspace"()
- unless $P10, rx494_fail
- goto rxsubrule526_pass
- rxsubrule526_back:
+ rx503_cur."!cursor_pos"(rx503_pos)
+ $P10 = rx503_cur."normspace"()
+ unless $P10, rx503_fail
+ goto rxsubrule535_pass
+ rxsubrule535_back:
$P10 = $P10."!cursor_next"()
- unless $P10, rx494_fail
- rxsubrule526_pass:
- set_addr $I10, rxsubrule526_back
- rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
- rx494_pos = $P10."pos"()
- set_addr $I10, rxquantr525_done
- (rx494_rep) = rx494_cur."!mark_commit"($I10)
- rxquantr525_done:
-.annotate 'line', 162
+ unless $P10, rx503_fail
+ rxsubrule535_pass:
+ set_addr $I10, rxsubrule535_back
+ rx503_cur."!mark_push"(0, rx503_pos, $I10, $P10)
+ rx503_pos = $P10."pos"()
+ set_addr $I10, rxquantr534_done
+ (rx503_rep) = rx503_cur."!mark_commit"($I10)
+ rxquantr534_done:
+.annotate 'line', 169
# rx pass
- rx494_cur."!cursor_pass"(rx494_pos, "cclass_elem")
- rx494_cur."!cursor_debug"("PASS ", "cclass_elem", " at pos=", rx494_pos)
- .return (rx494_cur)
- rx494_restart:
+ rx503_cur."!cursor_pass"(rx503_pos, "cclass_elem")
+ if_null rx503_debug, debug_447
+ rx503_cur."!cursor_debug"("PASS", "cclass_elem", " at pos=", rx503_pos)
+ debug_447:
+ .return (rx503_cur)
+ rx503_restart:
.annotate 'line', 3
- rx494_cur."!cursor_debug"("NEXT ", "cclass_elem")
- 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
+ if_null rx503_debug, debug_448
+ rx503_cur."!cursor_debug"("NEXT", "cclass_elem")
+ debug_448:
+ rx503_fail:
+ (rx503_rep, rx503_pos, $I10, $P10) = rx503_cur."!mark_fail"(0)
+ lt rx503_pos, -1, rx503_done
+ eq rx503_pos, -1, rx503_fail
jump $I10
- rx494_done:
- rx494_cur."!cursor_fail"()
- rx494_cur."!cursor_debug"("FAIL ", "cclass_elem")
- .return (rx494_cur)
+ rx503_done:
+ rx503_cur."!cursor_fail"()
+ if_null rx503_debug, debug_449
+ rx503_cur."!cursor_debug"("FAIL", "cclass_elem")
+ debug_449:
+ .return (rx503_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem" :subid("144_1280467470.54449") :method
+.sub "!PREFIX__cclass_elem" :subid("146_1282323996.47527") :method
.annotate 'line', 3
- new $P496, "ResizablePMCArray"
- push $P496, ""
- push $P496, "-"
- push $P496, "+"
- .return ($P496)
+ new $P505, "ResizablePMCArray"
+ push $P505, ""
+ push $P505, "-"
+ push $P505, "+"
+ .return ($P505)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block504" :anon :subid("145_1280467470.54449") :method :outer("143_1280467470.54449")
-.annotate 'line', 166
- .const 'Sub' $P520 = "148_1280467470.54449"
+.sub "_block513" :anon :subid("147_1282323996.47527") :method :outer("145_1282323996.47527")
+.annotate 'line', 173
+ .const 'Sub' $P529 = "150_1282323996.47527"
+ capture_lex $P529
+ .const 'Sub' $P524 = "149_1282323996.47527"
+ capture_lex $P524
+ .const 'Sub' $P520 = "148_1282323996.47527"
capture_lex $P520
- .const 'Sub' $P515 = "147_1280467470.54449"
- capture_lex $P515
- .const 'Sub' $P511 = "146_1280467470.54449"
- capture_lex $P511
- .local string rx506_tgt
- .local int rx506_pos
- .local int rx506_off
- .local int rx506_eos
- .local int rx506_rep
- .local pmc rx506_cur
- (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"()
- rx506_cur."!cursor_caparray"("1")
- .lex unicode:"$\x{a2}", rx506_cur
- .local pmc match
- .lex "$/", match
- length rx506_eos, rx506_tgt
- gt rx506_pos, rx506_eos, rx506_done
- set rx506_off, 0
- lt rx506_pos, 2, rx506_start
- sub rx506_off, rx506_pos, 1
- substr rx506_tgt, rx506_tgt, rx506_off
- rx506_start:
- eq $I10, 1, rx506_restart
- rx506_cur."!cursor_debug"("START ", "")
- $I10 = self.'from'()
- ne $I10, -1, rxscan507_done
- goto rxscan507_scan
- rxscan507_loop:
- ($P10) = rx506_cur."from"()
- inc $P10
- set rx506_pos, $P10
- ge rx506_pos, rx506_eos, rxscan507_done
- rxscan507_scan:
- set_addr $I10, rxscan507_loop
- rx506_cur."!mark_push"(0, rx506_pos, $I10)
- rxscan507_done:
- alt508_0:
- set_addr $I10, alt508_1
- rx506_cur."!mark_push"(0, rx506_pos, $I10)
-.annotate 'line', 167
+ .local string rx515_tgt
+ .local int rx515_pos
+ .local int rx515_off
+ .local int rx515_eos
+ .local int rx515_rep
+ .local pmc rx515_cur
+ .local pmc rx515_debug
+ (rx515_cur, rx515_pos, rx515_tgt, $I10) = self."!cursor_start"()
+ rx515_cur."!cursor_caparray"("1")
+ getattribute rx515_debug, rx515_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx515_cur
+ .local pmc match
+ .lex "$/", match
+ length rx515_eos, rx515_tgt
+ gt rx515_pos, rx515_eos, rx515_done
+ 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:
+ eq $I10, 1, rx515_restart
+ if_null rx515_debug, debug_431
+ rx515_cur."!cursor_debug"("START", "")
+ debug_431:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan516_done
+ goto rxscan516_scan
+ rxscan516_loop:
+ ($P10) = rx515_cur."from"()
+ inc $P10
+ set rx515_pos, $P10
+ ge rx515_pos, rx515_eos, rxscan516_done
+ rxscan516_scan:
+ set_addr $I10, rxscan516_loop
+ rx515_cur."!mark_push"(0, rx515_pos, $I10)
+ rxscan516_done:
+ alt517_0:
+ set_addr $I10, alt517_1
+ rx515_cur."!mark_push"(0, rx515_pos, $I10)
+.annotate 'line', 174
# rx charclass_q s r 0..-1
- sub $I10, rx506_pos, rx506_off
- find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos
- add rx506_pos, rx506_off, $I11
+ sub $I10, rx515_pos, rx515_off
+ find_not_cclass $I11, 32, rx515_tgt, $I10, rx515_eos
+ add rx515_pos, rx515_off, $I11
# rx literal "-"
- add $I11, rx506_pos, 1
- gt $I11, rx506_eos, rx506_fail
- sub $I11, rx506_pos, rx506_off
- substr $S10, rx506_tgt, $I11, 1
- ne $S10, "-", rx506_fail
- add rx506_pos, 1
+ add $I11, rx515_pos, 1
+ gt $I11, rx515_eos, rx515_fail
+ sub $I11, rx515_pos, rx515_off
+ ord $I11, rx515_tgt, $I11
+ ne $I11, 45, rx515_fail
+ add rx515_pos, 1
# rx subrule "obs" subtype=method negate=
- rx506_cur."!cursor_pos"(rx506_pos)
- $P10 = rx506_cur."obs"("- as character range", "..")
- unless $P10, rx506_fail
- rx506_pos = $P10."pos"()
- goto alt508_end
- alt508_1:
-.annotate 'line', 168
+ rx515_cur."!cursor_pos"(rx515_pos)
+ $P10 = rx515_cur."obs"("- as character range", "..")
+ unless $P10, rx515_fail
+ rx515_pos = $P10."pos"()
+ goto alt517_end
+ alt517_1:
+.annotate 'line', 175
# rx charclass_q s r 0..-1
- sub $I10, rx506_pos, rx506_off
- find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos
- add rx506_pos, rx506_off, $I11
- alt509_0:
- set_addr $I10, alt509_1
- rx506_cur."!mark_push"(0, rx506_pos, $I10)
+ sub $I10, rx515_pos, rx515_off
+ find_not_cclass $I11, 32, rx515_tgt, $I10, rx515_eos
+ add rx515_pos, rx515_off, $I11
+ alt518_0:
+ set_addr $I10, alt518_1
+ rx515_cur."!mark_push"(0, rx515_pos, $I10)
# rx literal "\\"
- add $I11, rx506_pos, 1
- gt $I11, rx506_eos, rx506_fail
- sub $I11, rx506_pos, rx506_off
- substr $S10, rx506_tgt, $I11, 1
- ne $S10, "\\", rx506_fail
- add rx506_pos, 1
- # rx subrule $P511 subtype=capture negate=
- rx506_cur."!cursor_pos"(rx506_pos)
- .const 'Sub' $P511 = "146_1280467470.54449"
- capture_lex $P511
- $P10 = rx506_cur.$P511()
- unless $P10, rx506_fail
- rx506_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx515_pos, 1
+ gt $I11, rx515_eos, rx515_fail
+ sub $I11, rx515_pos, rx515_off
+ ord $I11, rx515_tgt, $I11
+ ne $I11, 92, rx515_fail
+ add rx515_pos, 1
+ # rx subrule $P520 subtype=capture negate=
+ rx515_cur."!cursor_pos"(rx515_pos)
+ .const 'Sub' $P520 = "148_1282323996.47527"
+ capture_lex $P520
+ $P10 = rx515_cur.$P520()
+ unless $P10, rx515_fail
+ rx515_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"(0)
- rx506_pos = $P10."pos"()
- goto alt509_end
- alt509_1:
- # rx subrule $P515 subtype=capture negate=
- rx506_cur."!cursor_pos"(rx506_pos)
- .const 'Sub' $P515 = "147_1280467470.54449"
- capture_lex $P515
- $P10 = rx506_cur.$P515()
- unless $P10, rx506_fail
- rx506_cur."!mark_push"(0, -1, 0, $P10)
+ rx515_pos = $P10."pos"()
+ goto alt518_end
+ alt518_1:
+ # rx subrule $P524 subtype=capture negate=
+ rx515_cur."!cursor_pos"(rx515_pos)
+ .const 'Sub' $P524 = "149_1282323996.47527"
+ capture_lex $P524
+ $P10 = rx515_cur.$P524()
+ unless $P10, rx515_fail
+ rx515_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"(0)
- rx506_pos = $P10."pos"()
- alt509_end:
- # rx rxquantr518 ** 0..1
- set_addr $I10, rxquantr518_done
- rx506_cur."!mark_push"(0, rx506_pos, $I10)
- rxquantr518_loop:
+ rx515_pos = $P10."pos"()
+ alt518_end:
+ # rx rxquantr527 ** 0..1
+ set_addr $I10, rxquantr527_done
+ rx515_cur."!mark_push"(0, rx515_pos, $I10)
+ rxquantr527_loop:
# rx charclass_q s r 0..-1
- sub $I10, rx506_pos, rx506_off
- find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos
- add rx506_pos, rx506_off, $I11
+ sub $I10, rx515_pos, rx515_off
+ find_not_cclass $I11, 32, rx515_tgt, $I10, rx515_eos
+ add rx515_pos, rx515_off, $I11
# rx literal ".."
- add $I11, rx506_pos, 2
- gt $I11, rx506_eos, rx506_fail
- sub $I11, rx506_pos, rx506_off
- substr $S10, rx506_tgt, $I11, 2
- ne $S10, "..", rx506_fail
- add rx506_pos, 2
+ add $I11, rx515_pos, 2
+ gt $I11, rx515_eos, rx515_fail
+ sub $I11, rx515_pos, rx515_off
+ substr $S10, rx515_tgt, $I11, 2
+ ne $S10, "..", rx515_fail
+ add rx515_pos, 2
# rx charclass_q s r 0..-1
- sub $I10, rx506_pos, rx506_off
- find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos
- add rx506_pos, rx506_off, $I11
- # rx subrule $P520 subtype=capture negate=
- rx506_cur."!cursor_pos"(rx506_pos)
- .const 'Sub' $P520 = "148_1280467470.54449"
- capture_lex $P520
- $P10 = rx506_cur.$P520()
- unless $P10, rx506_fail
- rx506_cur."!mark_push"(0, -1, 0, $P10)
+ sub $I10, rx515_pos, rx515_off
+ find_not_cclass $I11, 32, rx515_tgt, $I10, rx515_eos
+ add rx515_pos, rx515_off, $I11
+ # rx subrule $P529 subtype=capture negate=
+ rx515_cur."!cursor_pos"(rx515_pos)
+ .const 'Sub' $P529 = "150_1282323996.47527"
+ capture_lex $P529
+ $P10 = rx515_cur.$P529()
+ unless $P10, rx515_fail
+ rx515_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("1")
- rx506_pos = $P10."pos"()
- set_addr $I10, rxquantr518_done
- (rx506_rep) = rx506_cur."!mark_commit"($I10)
- rxquantr518_done:
- alt508_end:
-.annotate 'line', 166
- # rx pass
- rx506_cur."!cursor_pass"(rx506_pos, "")
- rx506_cur."!cursor_debug"("PASS ", "", " at pos=", rx506_pos)
- .return (rx506_cur)
- rx506_restart:
- rx506_cur."!cursor_debug"("NEXT ", "")
- rx506_fail:
- (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
- lt rx506_pos, -1, rx506_done
- eq rx506_pos, -1, rx506_fail
- jump $I10
- rx506_done:
- rx506_cur."!cursor_fail"()
- rx506_cur."!cursor_debug"("FAIL ", "")
- .return (rx506_cur)
- .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510" :anon :subid("146_1280467470.54449") :method :outer("145_1280467470.54449")
-.annotate 'line', 168
- .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, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx512_cur
- .local pmc match
- .lex "$/", match
- length rx512_eos, rx512_tgt
- gt rx512_pos, rx512_eos, rx512_done
- 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:
- eq $I10, 1, rx512_restart
- rx512_cur."!cursor_debug"("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:
- # rx charclass .
- ge rx512_pos, rx512_eos, rx512_fail
- inc rx512_pos
- # rx pass
- rx512_cur."!cursor_pass"(rx512_pos, "")
- rx512_cur."!cursor_debug"("PASS ", "", " at pos=", rx512_pos)
- .return (rx512_cur)
- rx512_restart:
- rx512_cur."!cursor_debug"("NEXT ", "")
- 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
- jump $I10
- rx512_done:
- rx512_cur."!cursor_fail"()
- rx512_cur."!cursor_debug"("FAIL ", "")
- .return (rx512_cur)
- .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block514" :anon :subid("147_1280467470.54449") :method :outer("145_1280467470.54449")
-.annotate 'line', 168
- .local string rx516_tgt
- .local int rx516_pos
- .local int rx516_off
- .local int rx516_eos
- .local int rx516_rep
- .local pmc rx516_cur
- (rx516_cur, rx516_pos, rx516_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx516_cur
- .local pmc match
- .lex "$/", match
- length rx516_eos, rx516_tgt
- gt rx516_pos, rx516_eos, rx516_done
- set rx516_off, 0
- lt rx516_pos, 2, rx516_start
- sub rx516_off, rx516_pos, 1
- substr rx516_tgt, rx516_tgt, rx516_off
- rx516_start:
- eq $I10, 1, rx516_restart
- rx516_cur."!cursor_debug"("START ", "")
- $I10 = self.'from'()
- ne $I10, -1, rxscan517_done
- goto rxscan517_scan
- rxscan517_loop:
- ($P10) = rx516_cur."from"()
- inc $P10
- set rx516_pos, $P10
- ge rx516_pos, rx516_eos, rxscan517_done
- rxscan517_scan:
- set_addr $I10, rxscan517_loop
- rx516_cur."!mark_push"(0, rx516_pos, $I10)
- rxscan517_done:
- # rx enumcharlist negate=1
- ge rx516_pos, rx516_eos, rx516_fail
- sub $I10, rx516_pos, rx516_off
- substr $S10, rx516_tgt, $I10, 1
- index $I11, "]\\", $S10
- ge $I11, 0, rx516_fail
- inc rx516_pos
+ rx515_pos = $P10."pos"()
+ set_addr $I10, rxquantr527_done
+ (rx515_rep) = rx515_cur."!mark_commit"($I10)
+ rxquantr527_done:
+ alt517_end:
+.annotate 'line', 173
# rx pass
- rx516_cur."!cursor_pass"(rx516_pos, "")
- rx516_cur."!cursor_debug"("PASS ", "", " at pos=", rx516_pos)
- .return (rx516_cur)
- rx516_restart:
- rx516_cur."!cursor_debug"("NEXT ", "")
- rx516_fail:
- (rx516_rep, rx516_pos, $I10, $P10) = rx516_cur."!mark_fail"(0)
- lt rx516_pos, -1, rx516_done
- eq rx516_pos, -1, rx516_fail
- jump $I10
- rx516_done:
- rx516_cur."!cursor_fail"()
- rx516_cur."!cursor_debug"("FAIL ", "")
- .return (rx516_cur)
+ rx515_cur."!cursor_pass"(rx515_pos, "")
+ if_null rx515_debug, debug_444
+ rx515_cur."!cursor_debug"("PASS", "", " at pos=", rx515_pos)
+ debug_444:
+ .return (rx515_cur)
+ rx515_restart:
+ if_null rx515_debug, debug_445
+ rx515_cur."!cursor_debug"("NEXT", "")
+ debug_445:
+ rx515_fail:
+ (rx515_rep, rx515_pos, $I10, $P10) = rx515_cur."!mark_fail"(0)
+ lt rx515_pos, -1, rx515_done
+ eq rx515_pos, -1, rx515_fail
+ jump $I10
+ rx515_done:
+ rx515_cur."!cursor_fail"()
+ if_null rx515_debug, debug_446
+ rx515_cur."!cursor_debug"("FAIL", "")
+ debug_446:
+ .return (rx515_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block519" :anon :subid("148_1280467470.54449") :method :outer("145_1280467470.54449")
-.annotate 'line', 168
+.sub "_block519" :anon :subid("148_1282323996.47527") :method :outer("147_1282323996.47527")
+.annotate 'line', 175
.local string rx521_tgt
.local int rx521_pos
.local int rx521_off
.local int rx521_eos
.local int rx521_rep
.local pmc rx521_cur
+ .local pmc rx521_debug
(rx521_cur, rx521_pos, rx521_tgt, $I10) = self."!cursor_start"()
+ getattribute rx521_debug, rx521_cur, "$!debug"
.lex unicode:"$\x{a2}", rx521_cur
.local pmc match
.lex "$/", match
@@ -7058,7 +7746,9 @@
substr rx521_tgt, rx521_tgt, rx521_off
rx521_start:
eq $I10, 1, rx521_restart
- rx521_cur."!cursor_debug"("START ", "")
+ if_null rx521_debug, debug_432
+ rx521_cur."!cursor_debug"("START", "")
+ debug_432:
$I10 = self.'from'()
ne $I10, -1, rxscan522_done
goto rxscan522_scan
@@ -7076,10 +7766,14 @@
inc rx521_pos
# rx pass
rx521_cur."!cursor_pass"(rx521_pos, "")
- rx521_cur."!cursor_debug"("PASS ", "", " at pos=", rx521_pos)
+ if_null rx521_debug, debug_433
+ rx521_cur."!cursor_debug"("PASS", "", " at pos=", rx521_pos)
+ debug_433:
.return (rx521_cur)
rx521_restart:
- rx521_cur."!cursor_debug"("NEXT ", "")
+ if_null rx521_debug, debug_434
+ rx521_cur."!cursor_debug"("NEXT", "")
+ debug_434:
rx521_fail:
(rx521_rep, rx521_pos, $I10, $P10) = rx521_cur."!mark_fail"(0)
lt rx521_pos, -1, rx521_done
@@ -7087,199 +7781,165 @@
jump $I10
rx521_done:
rx521_cur."!cursor_fail"()
- rx521_cur."!cursor_debug"("FAIL ", "")
+ if_null rx521_debug, debug_435
+ rx521_cur."!cursor_debug"("FAIL", "")
+ debug_435:
.return (rx521_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal" :subid("149_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "_block523" :anon :subid("149_1282323996.47527") :method :outer("147_1282323996.47527")
+.annotate 'line', 175
+ .local string rx525_tgt
+ .local int rx525_pos
+ .local int rx525_off
+ .local int rx525_eos
+ .local int rx525_rep
+ .local pmc rx525_cur
+ .local pmc rx525_debug
+ (rx525_cur, rx525_pos, rx525_tgt, $I10) = self."!cursor_start"()
+ getattribute rx525_debug, rx525_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx525_cur
+ .local pmc match
+ .lex "$/", match
+ length rx525_eos, rx525_tgt
+ gt rx525_pos, rx525_eos, rx525_done
+ set rx525_off, 0
+ lt rx525_pos, 2, rx525_start
+ sub rx525_off, rx525_pos, 1
+ substr rx525_tgt, rx525_tgt, rx525_off
+ rx525_start:
+ eq $I10, 1, rx525_restart
+ if_null rx525_debug, debug_436
+ rx525_cur."!cursor_debug"("START", "")
+ debug_436:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan526_done
+ goto rxscan526_scan
+ rxscan526_loop:
+ ($P10) = rx525_cur."from"()
+ inc $P10
+ set rx525_pos, $P10
+ ge rx525_pos, rx525_eos, rxscan526_done
+ rxscan526_scan:
+ set_addr $I10, rxscan526_loop
+ rx525_cur."!mark_push"(0, rx525_pos, $I10)
+ rxscan526_done:
+ # rx enumcharlist negate=1
+ ge rx525_pos, rx525_eos, rx525_fail
+ sub $I10, rx525_pos, rx525_off
+ substr $S10, rx525_tgt, $I10, 1
+ index $I11, "]\\", $S10
+ ge $I11, 0, rx525_fail
+ inc rx525_pos
+ # rx pass
+ rx525_cur."!cursor_pass"(rx525_pos, "")
+ if_null rx525_debug, debug_437
+ rx525_cur."!cursor_debug"("PASS", "", " at pos=", rx525_pos)
+ debug_437:
+ .return (rx525_cur)
+ rx525_restart:
+ if_null rx525_debug, debug_438
+ rx525_cur."!cursor_debug"("NEXT", "")
+ debug_438:
+ rx525_fail:
+ (rx525_rep, rx525_pos, $I10, $P10) = rx525_cur."!mark_fail"(0)
+ lt rx525_pos, -1, rx525_done
+ eq rx525_pos, -1, rx525_fail
+ jump $I10
+ rx525_done:
+ rx525_cur."!cursor_fail"()
+ if_null rx525_debug, debug_439
+ rx525_cur."!cursor_debug"("FAIL", "")
+ debug_439:
+ .return (rx525_cur)
+ .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "_block528" :anon :subid("150_1282323996.47527") :method :outer("147_1282323996.47527")
+.annotate 'line', 175
+ .local string rx530_tgt
+ .local int rx530_pos
+ .local int rx530_off
+ .local int rx530_eos
+ .local int rx530_rep
+ .local pmc rx530_cur
+ .local pmc rx530_debug
+ (rx530_cur, rx530_pos, rx530_tgt, $I10) = self."!cursor_start"()
+ getattribute rx530_debug, rx530_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx530_cur
+ .local pmc match
+ .lex "$/", match
+ length rx530_eos, rx530_tgt
+ gt rx530_pos, rx530_eos, rx530_done
+ set rx530_off, 0
+ lt rx530_pos, 2, rx530_start
+ sub rx530_off, rx530_pos, 1
+ substr rx530_tgt, rx530_tgt, rx530_off
+ rx530_start:
+ eq $I10, 1, rx530_restart
+ if_null rx530_debug, debug_440
+ rx530_cur."!cursor_debug"("START", "")
+ debug_440:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan531_done
+ goto rxscan531_scan
+ rxscan531_loop:
+ ($P10) = rx530_cur."from"()
+ inc $P10
+ set rx530_pos, $P10
+ ge rx530_pos, rx530_eos, rxscan531_done
+ rxscan531_scan:
+ set_addr $I10, rxscan531_loop
+ rx530_cur."!mark_push"(0, rx530_pos, $I10)
+ rxscan531_done:
+ # rx charclass .
+ ge rx530_pos, rx530_eos, rx530_fail
+ inc rx530_pos
+ # rx pass
+ rx530_cur."!cursor_pass"(rx530_pos, "")
+ if_null rx530_debug, debug_441
+ rx530_cur."!cursor_debug"("PASS", "", " at pos=", rx530_pos)
+ debug_441:
+ .return (rx530_cur)
+ rx530_restart:
+ if_null rx530_debug, debug_442
+ rx530_cur."!cursor_debug"("NEXT", "")
+ debug_442:
+ rx530_fail:
+ (rx530_rep, rx530_pos, $I10, $P10) = rx530_cur."!mark_fail"(0)
+ lt rx530_pos, -1, rx530_done
+ eq rx530_pos, -1, rx530_fail
+ jump $I10
+ rx530_done:
+ rx530_cur."!cursor_fail"()
+ if_null rx530_debug, debug_443
+ rx530_cur."!cursor_debug"("FAIL", "")
+ debug_443:
+ .return (rx530_cur)
+ .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "mod_internal" :subid("151_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
- .const 'Sub' $P536 = "151_1280467470.54449"
- capture_lex $P536
- .local string rx528_tgt
- .local int rx528_pos
- .local int rx528_off
- .local int rx528_eos
- .local int rx528_rep
- .local pmc rx528_cur
- (rx528_cur, rx528_pos, rx528_tgt, $I10) = self."!cursor_start"()
- rx528_cur."!cursor_caparray"("n")
- .lex unicode:"$\x{a2}", rx528_cur
- .local pmc match
- .lex "$/", match
- length rx528_eos, rx528_tgt
- gt rx528_pos, rx528_eos, rx528_done
- set rx528_off, 0
- lt rx528_pos, 2, rx528_start
- sub rx528_off, rx528_pos, 1
- substr rx528_tgt, rx528_tgt, rx528_off
- rx528_start:
- eq $I10, 1, rx528_restart
- rx528_cur."!cursor_debug"("START ", "mod_internal")
- $I10 = self.'from'()
- ne $I10, -1, rxscan532_done
- goto rxscan532_scan
- rxscan532_loop:
- ($P10) = rx528_cur."from"()
- inc $P10
- set rx528_pos, $P10
- ge rx528_pos, rx528_eos, rxscan532_done
- rxscan532_scan:
- set_addr $I10, rxscan532_loop
- rx528_cur."!mark_push"(0, rx528_pos, $I10)
- rxscan532_done:
- alt533_0:
-.annotate 'line', 177
- set_addr $I10, alt533_1
- rx528_cur."!mark_push"(0, rx528_pos, $I10)
-.annotate 'line', 178
- # rx literal ":"
- add $I11, rx528_pos, 1
- gt $I11, rx528_eos, rx528_fail
- sub $I11, rx528_pos, rx528_off
- substr $S10, rx528_tgt, $I11, 1
- ne $S10, ":", rx528_fail
- add rx528_pos, 1
- # rx rxquantr534 ** 1..1
- set_addr $I10, rxquantr534_done
- rx528_cur."!mark_push"(0, -1, $I10)
- rxquantr534_loop:
- # rx subrule $P536 subtype=capture negate=
- rx528_cur."!cursor_pos"(rx528_pos)
- .const 'Sub' $P536 = "151_1280467470.54449"
- capture_lex $P536
- $P10 = rx528_cur.$P536()
- unless $P10, rx528_fail
- goto rxsubrule540_pass
- rxsubrule540_back:
- $P10 = $P10."!cursor_next"()
- unless $P10, rx528_fail
- rxsubrule540_pass:
- set_addr $I10, rxsubrule540_back
- rx528_cur."!mark_push"(0, rx528_pos, $I10, $P10)
- $P10."!cursor_names"("n")
- rx528_pos = $P10."pos"()
- set_addr $I10, rxquantr534_done
- (rx528_rep) = rx528_cur."!mark_commit"($I10)
- rxquantr534_done:
- # rx subrule "mod_ident" subtype=capture negate=
- rx528_cur."!cursor_pos"(rx528_pos)
- $P10 = rx528_cur."mod_ident"()
- unless $P10, rx528_fail
- rx528_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("mod_ident")
- rx528_pos = $P10."pos"()
- # rxanchor rwb
- le rx528_pos, 0, rx528_fail
- sub $I10, rx528_pos, rx528_off
- is_cclass $I11, 8192, rx528_tgt, $I10
- if $I11, rx528_fail
- dec $I10
- is_cclass $I11, 8192, rx528_tgt, $I10
- unless $I11, rx528_fail
- goto alt533_end
- alt533_1:
-.annotate 'line', 179
- # rx literal ":"
- add $I11, rx528_pos, 1
- gt $I11, rx528_eos, rx528_fail
- sub $I11, rx528_pos, rx528_off
- substr $S10, rx528_tgt, $I11, 1
- ne $S10, ":", rx528_fail
- add rx528_pos, 1
- # rx subrule "mod_ident" subtype=capture negate=
- rx528_cur."!cursor_pos"(rx528_pos)
- $P10 = rx528_cur."mod_ident"()
- unless $P10, rx528_fail
- rx528_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("mod_ident")
- rx528_pos = $P10."pos"()
- # rx rxquantr541 ** 0..1
- set_addr $I10, rxquantr541_done
- rx528_cur."!mark_push"(0, rx528_pos, $I10)
- rxquantr541_loop:
- # rx literal "("
- add $I11, rx528_pos, 1
- gt $I11, rx528_eos, rx528_fail
- sub $I11, rx528_pos, rx528_off
- substr $S10, rx528_tgt, $I11, 1
- ne $S10, "(", rx528_fail
- add rx528_pos, 1
- # rx subcapture "n"
- set_addr $I10, rxcap_542_fail
- rx528_cur."!mark_push"(0, rx528_pos, $I10)
- # rx charclass_q d r 1..-1
- sub $I10, rx528_pos, rx528_off
- find_not_cclass $I11, 8, rx528_tgt, $I10, rx528_eos
- add $I12, $I10, 1
- lt $I11, $I12, rx528_fail
- add rx528_pos, rx528_off, $I11
- set_addr $I10, rxcap_542_fail
- ($I12, $I11) = rx528_cur."!mark_peek"($I10)
- rx528_cur."!cursor_pos"($I11)
- ($P10) = rx528_cur."!cursor_start"()
- $P10."!cursor_pass"(rx528_pos, "")
- rx528_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("n")
- goto rxcap_542_done
- rxcap_542_fail:
- goto rx528_fail
- rxcap_542_done:
- # rx literal ")"
- add $I11, rx528_pos, 1
- gt $I11, rx528_eos, rx528_fail
- sub $I11, rx528_pos, rx528_off
- substr $S10, rx528_tgt, $I11, 1
- ne $S10, ")", rx528_fail
- add rx528_pos, 1
- set_addr $I10, rxquantr541_done
- (rx528_rep) = rx528_cur."!mark_commit"($I10)
- rxquantr541_done:
- alt533_end:
-.annotate 'line', 176
- # rx pass
- rx528_cur."!cursor_pass"(rx528_pos, "mod_internal")
- rx528_cur."!cursor_debug"("PASS ", "mod_internal", " at pos=", rx528_pos)
- .return (rx528_cur)
- rx528_restart:
-.annotate 'line', 3
- rx528_cur."!cursor_debug"("NEXT ", "mod_internal")
- rx528_fail:
- (rx528_rep, rx528_pos, $I10, $P10) = rx528_cur."!mark_fail"(0)
- lt rx528_pos, -1, rx528_done
- eq rx528_pos, -1, rx528_fail
- jump $I10
- rx528_done:
- rx528_cur."!cursor_fail"()
- rx528_cur."!cursor_debug"("FAIL ", "mod_internal")
- .return (rx528_cur)
- .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal" :subid("150_1280467470.54449") :method
-.annotate 'line', 3
- $P530 = self."!PREFIX__!subrule"("mod_ident", ":")
- new $P531, "ResizablePMCArray"
- push $P531, $P530
- push $P531, ":"
- .return ($P531)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block535" :anon :subid("151_1280467470.54449") :method :outer("149_1280467470.54449")
-.annotate 'line', 178
+ .const 'Sub' $P545 = "153_1282323996.47527"
+ capture_lex $P545
.local string rx537_tgt
.local int rx537_pos
.local int rx537_off
.local int rx537_eos
.local int rx537_rep
.local pmc rx537_cur
+ .local pmc rx537_debug
(rx537_cur, rx537_pos, rx537_tgt, $I10) = self."!cursor_start"()
+ rx537_cur."!cursor_caparray"("n")
+ getattribute rx537_debug, rx537_cur, "$!debug"
.lex unicode:"$\x{a2}", rx537_cur
.local pmc match
.lex "$/", match
@@ -7291,44 +7951,141 @@
substr rx537_tgt, rx537_tgt, rx537_off
rx537_start:
eq $I10, 1, rx537_restart
- rx537_cur."!cursor_debug"("START ", "")
- $I10 = self.'from'()
- ne $I10, -1, rxscan538_done
- goto rxscan538_scan
- rxscan538_loop:
+ if_null rx537_debug, debug_450
+ rx537_cur."!cursor_debug"("START", "mod_internal")
+ debug_450:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan541_done
+ goto rxscan541_scan
+ rxscan541_loop:
($P10) = rx537_cur."from"()
inc $P10
set rx537_pos, $P10
- ge rx537_pos, rx537_eos, rxscan538_done
- rxscan538_scan:
- set_addr $I10, rxscan538_loop
+ ge rx537_pos, rx537_eos, rxscan541_done
+ rxscan541_scan:
+ set_addr $I10, rxscan541_loop
rx537_cur."!mark_push"(0, rx537_pos, $I10)
- rxscan538_done:
- alt539_0:
- set_addr $I10, alt539_1
+ rxscan541_done:
+ alt542_0:
+.annotate 'line', 184
+ set_addr $I10, alt542_1
rx537_cur."!mark_push"(0, rx537_pos, $I10)
- # rx literal "!"
+.annotate 'line', 185
+ # rx literal ":"
+ add $I11, rx537_pos, 1
+ gt $I11, rx537_eos, rx537_fail
+ sub $I11, rx537_pos, rx537_off
+ ord $I11, rx537_tgt, $I11
+ ne $I11, 58, rx537_fail
+ add rx537_pos, 1
+ # rx rxquantr543 ** 1..1
+ set_addr $I10, rxquantr543_done
+ rx537_cur."!mark_push"(0, -1, $I10)
+ rxquantr543_loop:
+ # rx subrule $P545 subtype=capture negate=
+ rx537_cur."!cursor_pos"(rx537_pos)
+ .const 'Sub' $P545 = "153_1282323996.47527"
+ capture_lex $P545
+ $P10 = rx537_cur.$P545()
+ unless $P10, rx537_fail
+ goto rxsubrule549_pass
+ rxsubrule549_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx537_fail
+ rxsubrule549_pass:
+ set_addr $I10, rxsubrule549_back
+ rx537_cur."!mark_push"(0, rx537_pos, $I10, $P10)
+ $P10."!cursor_names"("n")
+ rx537_pos = $P10."pos"()
+ set_addr $I10, rxquantr543_done
+ (rx537_rep) = rx537_cur."!mark_commit"($I10)
+ rxquantr543_done:
+ # rx subrule "mod_ident" subtype=capture negate=
+ rx537_cur."!cursor_pos"(rx537_pos)
+ $P10 = rx537_cur."mod_ident"()
+ unless $P10, rx537_fail
+ rx537_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("mod_ident")
+ rx537_pos = $P10."pos"()
+ # rxanchor rwb
+ le rx537_pos, 0, rx537_fail
+ sub $I10, rx537_pos, rx537_off
+ is_cclass $I11, 8192, rx537_tgt, $I10
+ if $I11, rx537_fail
+ dec $I10
+ is_cclass $I11, 8192, rx537_tgt, $I10
+ unless $I11, rx537_fail
+ goto alt542_end
+ alt542_1:
+.annotate 'line', 186
+ # rx literal ":"
+ add $I11, rx537_pos, 1
+ gt $I11, rx537_eos, rx537_fail
+ sub $I11, rx537_pos, rx537_off
+ ord $I11, rx537_tgt, $I11
+ ne $I11, 58, rx537_fail
+ add rx537_pos, 1
+ # rx subrule "mod_ident" subtype=capture negate=
+ rx537_cur."!cursor_pos"(rx537_pos)
+ $P10 = rx537_cur."mod_ident"()
+ unless $P10, rx537_fail
+ rx537_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("mod_ident")
+ rx537_pos = $P10."pos"()
+ # rx rxquantr550 ** 0..1
+ set_addr $I10, rxquantr550_done
+ rx537_cur."!mark_push"(0, rx537_pos, $I10)
+ rxquantr550_loop:
+ # rx literal "("
add $I11, rx537_pos, 1
gt $I11, rx537_eos, rx537_fail
sub $I11, rx537_pos, rx537_off
- substr $S10, rx537_tgt, $I11, 1
- ne $S10, "!", rx537_fail
+ ord $I11, rx537_tgt, $I11
+ ne $I11, 40, rx537_fail
add rx537_pos, 1
- goto alt539_end
- alt539_1:
+ # rx subcapture "n"
+ set_addr $I10, rxcap_551_fail
+ rx537_cur."!mark_push"(0, rx537_pos, $I10)
# rx charclass_q d r 1..-1
sub $I10, rx537_pos, rx537_off
find_not_cclass $I11, 8, rx537_tgt, $I10, rx537_eos
add $I12, $I10, 1
lt $I11, $I12, rx537_fail
add rx537_pos, rx537_off, $I11
- alt539_end:
+ set_addr $I10, rxcap_551_fail
+ ($I12, $I11) = rx537_cur."!mark_peek"($I10)
+ rx537_cur."!cursor_pos"($I11)
+ ($P10) = rx537_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx537_pos, "")
+ rx537_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("n")
+ goto rxcap_551_done
+ rxcap_551_fail:
+ goto rx537_fail
+ rxcap_551_done:
+ # rx literal ")"
+ add $I11, rx537_pos, 1
+ gt $I11, rx537_eos, rx537_fail
+ sub $I11, rx537_pos, rx537_off
+ ord $I11, rx537_tgt, $I11
+ ne $I11, 41, rx537_fail
+ add rx537_pos, 1
+ set_addr $I10, rxquantr550_done
+ (rx537_rep) = rx537_cur."!mark_commit"($I10)
+ rxquantr550_done:
+ alt542_end:
+.annotate 'line', 183
# rx pass
- rx537_cur."!cursor_pass"(rx537_pos, "")
- rx537_cur."!cursor_debug"("PASS ", "", " at pos=", rx537_pos)
+ rx537_cur."!cursor_pass"(rx537_pos, "mod_internal")
+ if_null rx537_debug, debug_455
+ rx537_cur."!cursor_debug"("PASS", "mod_internal", " at pos=", rx537_pos)
+ debug_455:
.return (rx537_cur)
rx537_restart:
- rx537_cur."!cursor_debug"("NEXT ", "")
+.annotate 'line', 3
+ if_null rx537_debug, debug_456
+ rx537_cur."!cursor_debug"("NEXT", "mod_internal")
+ debug_456:
rx537_fail:
(rx537_rep, rx537_pos, $I10, $P10) = rx537_cur."!mark_fail"(0)
lt rx537_pos, -1, rx537_done
@@ -7336,346 +8093,471 @@
jump $I10
rx537_done:
rx537_cur."!cursor_fail"()
- rx537_cur."!cursor_debug"("FAIL ", "")
+ if_null rx537_debug, debug_457
+ rx537_cur."!cursor_debug"("FAIL", "mod_internal")
+ debug_457:
.return (rx537_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident" :subid("152_1280467470.54449") :method
-.annotate 'line', 183
- $P544 = self."!protoregex"("mod_ident")
- .return ($P544)
+.sub "!PREFIX__mod_internal" :subid("152_1282323996.47527") :method
+.annotate 'line', 3
+ $P539 = self."!PREFIX__!subrule"("mod_ident", ":")
+ new $P540, "ResizablePMCArray"
+ push $P540, $P539
+ push $P540, ":"
+ .return ($P540)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident" :subid("153_1280467470.54449") :method
-.annotate 'line', 183
- $P546 = self."!PREFIX__!protoregex"("mod_ident")
- .return ($P546)
+.sub "_block544" :anon :subid("153_1282323996.47527") :method :outer("151_1282323996.47527")
+.annotate 'line', 185
+ .local string rx546_tgt
+ .local int rx546_pos
+ .local int rx546_off
+ .local int rx546_eos
+ .local int rx546_rep
+ .local pmc rx546_cur
+ .local pmc rx546_debug
+ (rx546_cur, rx546_pos, rx546_tgt, $I10) = self."!cursor_start"()
+ getattribute rx546_debug, rx546_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx546_cur
+ .local pmc match
+ .lex "$/", match
+ length rx546_eos, rx546_tgt
+ gt rx546_pos, rx546_eos, rx546_done
+ set rx546_off, 0
+ lt rx546_pos, 2, rx546_start
+ sub rx546_off, rx546_pos, 1
+ substr rx546_tgt, rx546_tgt, rx546_off
+ rx546_start:
+ eq $I10, 1, rx546_restart
+ if_null rx546_debug, debug_451
+ rx546_cur."!cursor_debug"("START", "")
+ debug_451:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan547_done
+ goto rxscan547_scan
+ rxscan547_loop:
+ ($P10) = rx546_cur."from"()
+ inc $P10
+ set rx546_pos, $P10
+ ge rx546_pos, rx546_eos, rxscan547_done
+ rxscan547_scan:
+ set_addr $I10, rxscan547_loop
+ rx546_cur."!mark_push"(0, rx546_pos, $I10)
+ rxscan547_done:
+ alt548_0:
+ set_addr $I10, alt548_1
+ rx546_cur."!mark_push"(0, rx546_pos, $I10)
+ # rx literal "!"
+ add $I11, rx546_pos, 1
+ gt $I11, rx546_eos, rx546_fail
+ sub $I11, rx546_pos, rx546_off
+ ord $I11, rx546_tgt, $I11
+ ne $I11, 33, rx546_fail
+ add rx546_pos, 1
+ goto alt548_end
+ alt548_1:
+ # rx charclass_q d r 1..-1
+ sub $I10, rx546_pos, rx546_off
+ find_not_cclass $I11, 8, rx546_tgt, $I10, rx546_eos
+ add $I12, $I10, 1
+ lt $I11, $I12, rx546_fail
+ add rx546_pos, rx546_off, $I11
+ alt548_end:
+ # rx pass
+ rx546_cur."!cursor_pass"(rx546_pos, "")
+ if_null rx546_debug, debug_452
+ rx546_cur."!cursor_debug"("PASS", "", " at pos=", rx546_pos)
+ debug_452:
+ .return (rx546_cur)
+ rx546_restart:
+ if_null rx546_debug, debug_453
+ rx546_cur."!cursor_debug"("NEXT", "")
+ debug_453:
+ rx546_fail:
+ (rx546_rep, rx546_pos, $I10, $P10) = rx546_cur."!mark_fail"(0)
+ lt rx546_pos, -1, rx546_done
+ eq rx546_pos, -1, rx546_fail
+ jump $I10
+ rx546_done:
+ rx546_cur."!cursor_fail"()
+ if_null rx546_debug, debug_454
+ rx546_cur."!cursor_debug"("FAIL", "")
+ debug_454:
+ .return (rx546_cur)
+ .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "mod_ident" :subid("154_1282323996.47527") :method
+.annotate 'line', 190
+ $P553 = self."!protoregex"("mod_ident")
+ .return ($P553)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__mod_ident" :subid("155_1282323996.47527") :method
+.annotate 'line', 190
+ $P555 = self."!PREFIX__!protoregex"("mod_ident")
+ .return ($P555)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>" :subid("154_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "mod_ident:sym<ignorecase>" :subid("156_1282323996.47527") :method :outer("11_1282323996.47527")
.annotate 'line', 3
- .local string rx548_tgt
- .local int rx548_pos
- .local int rx548_off
- .local int rx548_eos
- .local int rx548_rep
- .local pmc rx548_cur
- (rx548_cur, rx548_pos, rx548_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx548_cur
- .local pmc match
- .lex "$/", match
- length rx548_eos, rx548_tgt
- gt rx548_pos, rx548_eos, rx548_done
- set rx548_off, 0
- lt rx548_pos, 2, rx548_start
- sub rx548_off, rx548_pos, 1
- substr rx548_tgt, rx548_tgt, rx548_off
- rx548_start:
- eq $I10, 1, rx548_restart
- rx548_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan551_done
- goto rxscan551_scan
- rxscan551_loop:
- ($P10) = rx548_cur."from"()
- inc $P10
- set rx548_pos, $P10
- ge rx548_pos, rx548_eos, rxscan551_done
- rxscan551_scan:
- set_addr $I10, rxscan551_loop
- rx548_cur."!mark_push"(0, rx548_pos, $I10)
- rxscan551_done:
-.annotate 'line', 184
+ .local string rx557_tgt
+ .local int rx557_pos
+ .local int rx557_off
+ .local int rx557_eos
+ .local int rx557_rep
+ .local pmc rx557_cur
+ .local pmc rx557_debug
+ (rx557_cur, rx557_pos, rx557_tgt, $I10) = self."!cursor_start"()
+ getattribute rx557_debug, rx557_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx557_cur
+ .local pmc match
+ .lex "$/", match
+ length rx557_eos, rx557_tgt
+ gt rx557_pos, rx557_eos, rx557_done
+ set rx557_off, 0
+ lt rx557_pos, 2, rx557_start
+ sub rx557_off, rx557_pos, 1
+ substr rx557_tgt, rx557_tgt, rx557_off
+ rx557_start:
+ eq $I10, 1, rx557_restart
+ if_null rx557_debug, debug_458
+ rx557_cur."!cursor_debug"("START", "mod_ident:sym<ignorecase>")
+ debug_458:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan560_done
+ goto rxscan560_scan
+ rxscan560_loop:
+ ($P10) = rx557_cur."from"()
+ inc $P10
+ set rx557_pos, $P10
+ ge rx557_pos, rx557_eos, rxscan560_done
+ rxscan560_scan:
+ set_addr $I10, rxscan560_loop
+ rx557_cur."!mark_push"(0, rx557_pos, $I10)
+ rxscan560_done:
+.annotate 'line', 191
# rx subcapture "sym"
- set_addr $I10, rxcap_552_fail
- rx548_cur."!mark_push"(0, rx548_pos, $I10)
+ set_addr $I10, rxcap_561_fail
+ rx557_cur."!mark_push"(0, rx557_pos, $I10)
# rx literal "i"
- add $I11, rx548_pos, 1
- gt $I11, rx548_eos, rx548_fail
- sub $I11, rx548_pos, rx548_off
- substr $S10, rx548_tgt, $I11, 1
- ne $S10, "i", rx548_fail
- add rx548_pos, 1
- set_addr $I10, rxcap_552_fail
- ($I12, $I11) = rx548_cur."!mark_peek"($I10)
- rx548_cur."!cursor_pos"($I11)
- ($P10) = rx548_cur."!cursor_start"()
- $P10."!cursor_pass"(rx548_pos, "")
- rx548_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx557_pos, 1
+ gt $I11, rx557_eos, rx557_fail
+ sub $I11, rx557_pos, rx557_off
+ ord $I11, rx557_tgt, $I11
+ ne $I11, 105, rx557_fail
+ add rx557_pos, 1
+ set_addr $I10, rxcap_561_fail
+ ($I12, $I11) = rx557_cur."!mark_peek"($I10)
+ rx557_cur."!cursor_pos"($I11)
+ ($P10) = rx557_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx557_pos, "")
+ rx557_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_552_done
- rxcap_552_fail:
- goto rx548_fail
- rxcap_552_done:
- # rx rxquantr553 ** 0..1
- set_addr $I10, rxquantr553_done
- rx548_cur."!mark_push"(0, rx548_pos, $I10)
- rxquantr553_loop:
+ goto rxcap_561_done
+ rxcap_561_fail:
+ goto rx557_fail
+ rxcap_561_done:
+ # rx rxquantr562 ** 0..1
+ set_addr $I10, rxquantr562_done
+ rx557_cur."!mark_push"(0, rx557_pos, $I10)
+ rxquantr562_loop:
# rx literal "gnorecase"
- add $I11, rx548_pos, 9
- gt $I11, rx548_eos, rx548_fail
- sub $I11, rx548_pos, rx548_off
- substr $S10, rx548_tgt, $I11, 9
- ne $S10, "gnorecase", rx548_fail
- add rx548_pos, 9
- set_addr $I10, rxquantr553_done
- (rx548_rep) = rx548_cur."!mark_commit"($I10)
- rxquantr553_done:
- # rx pass
- rx548_cur."!cursor_pass"(rx548_pos, "mod_ident:sym<ignorecase>")
- rx548_cur."!cursor_debug"("PASS ", "mod_ident:sym<ignorecase>", " at pos=", rx548_pos)
- .return (rx548_cur)
- rx548_restart:
-.annotate 'line', 3
- rx548_cur."!cursor_debug"("NEXT ", "mod_ident:sym<ignorecase>")
- rx548_fail:
- (rx548_rep, rx548_pos, $I10, $P10) = rx548_cur."!mark_fail"(0)
- lt rx548_pos, -1, rx548_done
- eq rx548_pos, -1, rx548_fail
- jump $I10
- rx548_done:
- rx548_cur."!cursor_fail"()
- rx548_cur."!cursor_debug"("FAIL ", "mod_ident:sym<ignorecase>")
- .return (rx548_cur)
+ add $I11, rx557_pos, 9
+ gt $I11, rx557_eos, rx557_fail
+ sub $I11, rx557_pos, rx557_off
+ substr $S10, rx557_tgt, $I11, 9
+ ne $S10, "gnorecase", rx557_fail
+ add rx557_pos, 9
+ set_addr $I10, rxquantr562_done
+ (rx557_rep) = rx557_cur."!mark_commit"($I10)
+ rxquantr562_done:
+ # rx pass
+ rx557_cur."!cursor_pass"(rx557_pos, "mod_ident:sym<ignorecase>")
+ if_null rx557_debug, debug_459
+ rx557_cur."!cursor_debug"("PASS", "mod_ident:sym<ignorecase>", " at pos=", rx557_pos)
+ debug_459:
+ .return (rx557_cur)
+ rx557_restart:
+.annotate 'line', 3
+ if_null rx557_debug, debug_460
+ rx557_cur."!cursor_debug"("NEXT", "mod_ident:sym<ignorecase>")
+ debug_460:
+ rx557_fail:
+ (rx557_rep, rx557_pos, $I10, $P10) = rx557_cur."!mark_fail"(0)
+ lt rx557_pos, -1, rx557_done
+ eq rx557_pos, -1, rx557_fail
+ jump $I10
+ rx557_done:
+ rx557_cur."!cursor_fail"()
+ if_null rx557_debug, debug_461
+ rx557_cur."!cursor_debug"("FAIL", "mod_ident:sym<ignorecase>")
+ debug_461:
+ .return (rx557_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>" :subid("155_1280467470.54449") :method
-.annotate 'line', 3
- new $P550, "ResizablePMCArray"
- push $P550, "i"
- .return ($P550)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>" :subid("156_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx555_tgt
- .local int rx555_pos
- .local int rx555_off
- .local int rx555_eos
- .local int rx555_rep
- .local pmc rx555_cur
- (rx555_cur, rx555_pos, rx555_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx555_cur
- .local pmc match
- .lex "$/", match
- length rx555_eos, rx555_tgt
- gt rx555_pos, rx555_eos, rx555_done
- set rx555_off, 0
- lt rx555_pos, 2, rx555_start
- sub rx555_off, rx555_pos, 1
- substr rx555_tgt, rx555_tgt, rx555_off
- rx555_start:
- eq $I10, 1, rx555_restart
- rx555_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan558_done
- goto rxscan558_scan
- rxscan558_loop:
- ($P10) = rx555_cur."from"()
- inc $P10
- set rx555_pos, $P10
- ge rx555_pos, rx555_eos, rxscan558_done
- rxscan558_scan:
- set_addr $I10, rxscan558_loop
- rx555_cur."!mark_push"(0, rx555_pos, $I10)
- rxscan558_done:
-.annotate 'line', 185
+.sub "!PREFIX__mod_ident:sym<ignorecase>" :subid("157_1282323996.47527") :method
+.annotate 'line', 3
+ new $P559, "ResizablePMCArray"
+ push $P559, "i"
+ .return ($P559)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "mod_ident:sym<ratchet>" :subid("158_1282323996.47527") :method :outer("11_1282323996.47527")
+.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
+ .local pmc rx564_debug
+ (rx564_cur, rx564_pos, rx564_tgt, $I10) = self."!cursor_start"()
+ getattribute rx564_debug, rx564_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx564_cur
+ .local pmc match
+ .lex "$/", match
+ length rx564_eos, rx564_tgt
+ gt rx564_pos, rx564_eos, rx564_done
+ 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:
+ eq $I10, 1, rx564_restart
+ if_null rx564_debug, debug_462
+ rx564_cur."!cursor_debug"("START", "mod_ident:sym<ratchet>")
+ debug_462:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan567_done
+ goto rxscan567_scan
+ rxscan567_loop:
+ ($P10) = rx564_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:
+.annotate 'line', 192
# rx subcapture "sym"
- set_addr $I10, rxcap_559_fail
- rx555_cur."!mark_push"(0, rx555_pos, $I10)
+ set_addr $I10, rxcap_568_fail
+ rx564_cur."!mark_push"(0, rx564_pos, $I10)
# rx literal "r"
- add $I11, rx555_pos, 1
- gt $I11, rx555_eos, rx555_fail
- sub $I11, rx555_pos, rx555_off
- substr $S10, rx555_tgt, $I11, 1
- ne $S10, "r", rx555_fail
- add rx555_pos, 1
- set_addr $I10, rxcap_559_fail
- ($I12, $I11) = rx555_cur."!mark_peek"($I10)
- rx555_cur."!cursor_pos"($I11)
- ($P10) = rx555_cur."!cursor_start"()
- $P10."!cursor_pass"(rx555_pos, "")
- rx555_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx564_pos, 1
+ gt $I11, rx564_eos, rx564_fail
+ sub $I11, rx564_pos, rx564_off
+ ord $I11, rx564_tgt, $I11
+ ne $I11, 114, 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)
$P10."!cursor_names"("sym")
- goto rxcap_559_done
- rxcap_559_fail:
- goto rx555_fail
- rxcap_559_done:
- # rx rxquantr560 ** 0..1
- set_addr $I10, rxquantr560_done
- rx555_cur."!mark_push"(0, rx555_pos, $I10)
- rxquantr560_loop:
+ goto rxcap_568_done
+ rxcap_568_fail:
+ goto rx564_fail
+ rxcap_568_done:
+ # rx rxquantr569 ** 0..1
+ set_addr $I10, rxquantr569_done
+ rx564_cur."!mark_push"(0, rx564_pos, $I10)
+ rxquantr569_loop:
# rx literal "atchet"
- add $I11, rx555_pos, 6
- gt $I11, rx555_eos, rx555_fail
- sub $I11, rx555_pos, rx555_off
- substr $S10, rx555_tgt, $I11, 6
- ne $S10, "atchet", rx555_fail
- add rx555_pos, 6
- set_addr $I10, rxquantr560_done
- (rx555_rep) = rx555_cur."!mark_commit"($I10)
- rxquantr560_done:
- # rx pass
- rx555_cur."!cursor_pass"(rx555_pos, "mod_ident:sym<ratchet>")
- rx555_cur."!cursor_debug"("PASS ", "mod_ident:sym<ratchet>", " at pos=", rx555_pos)
- .return (rx555_cur)
- rx555_restart:
-.annotate 'line', 3
- rx555_cur."!cursor_debug"("NEXT ", "mod_ident:sym<ratchet>")
- rx555_fail:
- (rx555_rep, rx555_pos, $I10, $P10) = rx555_cur."!mark_fail"(0)
- lt rx555_pos, -1, rx555_done
- eq rx555_pos, -1, rx555_fail
- jump $I10
- rx555_done:
- rx555_cur."!cursor_fail"()
- rx555_cur."!cursor_debug"("FAIL ", "mod_ident:sym<ratchet>")
- .return (rx555_cur)
+ 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
+ set_addr $I10, rxquantr569_done
+ (rx564_rep) = rx564_cur."!mark_commit"($I10)
+ rxquantr569_done:
+ # rx pass
+ rx564_cur."!cursor_pass"(rx564_pos, "mod_ident:sym<ratchet>")
+ if_null rx564_debug, debug_463
+ rx564_cur."!cursor_debug"("PASS", "mod_ident:sym<ratchet>", " at pos=", rx564_pos)
+ debug_463:
+ .return (rx564_cur)
+ rx564_restart:
+.annotate 'line', 3
+ if_null rx564_debug, debug_464
+ rx564_cur."!cursor_debug"("NEXT", "mod_ident:sym<ratchet>")
+ debug_464:
+ rx564_fail:
+ (rx564_rep, rx564_pos, $I10, $P10) = rx564_cur."!mark_fail"(0)
+ lt rx564_pos, -1, rx564_done
+ eq rx564_pos, -1, rx564_fail
+ jump $I10
+ rx564_done:
+ rx564_cur."!cursor_fail"()
+ if_null rx564_debug, debug_465
+ rx564_cur."!cursor_debug"("FAIL", "mod_ident:sym<ratchet>")
+ debug_465:
+ .return (rx564_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>" :subid("157_1280467470.54449") :method
-.annotate 'line', 3
- new $P557, "ResizablePMCArray"
- push $P557, "r"
- .return ($P557)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>" :subid("158_1280467470.54449") :method :outer("11_1280467470.54449")
-.annotate 'line', 3
- .local string rx562_tgt
- .local int rx562_pos
- .local int rx562_off
- .local int rx562_eos
- .local int rx562_rep
- .local pmc rx562_cur
- (rx562_cur, rx562_pos, rx562_tgt, $I10) = self."!cursor_start"()
- .lex unicode:"$\x{a2}", rx562_cur
- .local pmc match
- .lex "$/", match
- length rx562_eos, rx562_tgt
- gt rx562_pos, rx562_eos, rx562_done
- set rx562_off, 0
- lt rx562_pos, 2, rx562_start
- sub rx562_off, rx562_pos, 1
- substr rx562_tgt, rx562_tgt, rx562_off
- rx562_start:
- eq $I10, 1, rx562_restart
- rx562_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
- $I10 = self.'from'()
- ne $I10, -1, rxscan565_done
- goto rxscan565_scan
- rxscan565_loop:
- ($P10) = rx562_cur."from"()
- inc $P10
- set rx562_pos, $P10
- ge rx562_pos, rx562_eos, rxscan565_done
- rxscan565_scan:
- set_addr $I10, rxscan565_loop
- rx562_cur."!mark_push"(0, rx562_pos, $I10)
- rxscan565_done:
-.annotate 'line', 186
+.sub "!PREFIX__mod_ident:sym<ratchet>" :subid("159_1282323996.47527") :method
+.annotate 'line', 3
+ new $P566, "ResizablePMCArray"
+ push $P566, "r"
+ .return ($P566)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "mod_ident:sym<sigspace>" :subid("160_1282323996.47527") :method :outer("11_1282323996.47527")
+.annotate 'line', 3
+ .local string rx571_tgt
+ .local int rx571_pos
+ .local int rx571_off
+ .local int rx571_eos
+ .local int rx571_rep
+ .local pmc rx571_cur
+ .local pmc rx571_debug
+ (rx571_cur, rx571_pos, rx571_tgt, $I10) = self."!cursor_start"()
+ getattribute rx571_debug, rx571_cur, "$!debug"
+ .lex unicode:"$\x{a2}", rx571_cur
+ .local pmc match
+ .lex "$/", match
+ length rx571_eos, rx571_tgt
+ gt rx571_pos, rx571_eos, rx571_done
+ set rx571_off, 0
+ lt rx571_pos, 2, rx571_start
+ sub rx571_off, rx571_pos, 1
+ substr rx571_tgt, rx571_tgt, rx571_off
+ rx571_start:
+ eq $I10, 1, rx571_restart
+ if_null rx571_debug, debug_466
+ rx571_cur."!cursor_debug"("START", "mod_ident:sym<sigspace>")
+ debug_466:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan574_done
+ goto rxscan574_scan
+ rxscan574_loop:
+ ($P10) = rx571_cur."from"()
+ inc $P10
+ set rx571_pos, $P10
+ ge rx571_pos, rx571_eos, rxscan574_done
+ rxscan574_scan:
+ set_addr $I10, rxscan574_loop
+ rx571_cur."!mark_push"(0, rx571_pos, $I10)
+ rxscan574_done:
+.annotate 'line', 193
# rx subcapture "sym"
- set_addr $I10, rxcap_566_fail
- rx562_cur."!mark_push"(0, rx562_pos, $I10)
+ set_addr $I10, rxcap_575_fail
+ rx571_cur."!mark_push"(0, rx571_pos, $I10)
# rx literal "s"
- add $I11, rx562_pos, 1
- gt $I11, rx562_eos, rx562_fail
- sub $I11, rx562_pos, rx562_off
- substr $S10, rx562_tgt, $I11, 1
- ne $S10, "s", rx562_fail
- add rx562_pos, 1
- set_addr $I10, rxcap_566_fail
- ($I12, $I11) = rx562_cur."!mark_peek"($I10)
- rx562_cur."!cursor_pos"($I11)
- ($P10) = rx562_cur."!cursor_start"()
- $P10."!cursor_pass"(rx562_pos, "")
- rx562_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx571_pos, 1
+ gt $I11, rx571_eos, rx571_fail
+ sub $I11, rx571_pos, rx571_off
+ ord $I11, rx571_tgt, $I11
+ ne $I11, 115, rx571_fail
+ add rx571_pos, 1
+ set_addr $I10, rxcap_575_fail
+ ($I12, $I11) = rx571_cur."!mark_peek"($I10)
+ rx571_cur."!cursor_pos"($I11)
+ ($P10) = rx571_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx571_pos, "")
+ rx571_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_566_done
- rxcap_566_fail:
- goto rx562_fail
- rxcap_566_done:
- # rx rxquantr567 ** 0..1
- set_addr $I10, rxquantr567_done
- rx562_cur."!mark_push"(0, rx562_pos, $I10)
- rxquantr567_loop:
+ goto rxcap_575_done
+ rxcap_575_fail:
+ goto rx571_fail
+ rxcap_575_done:
+ # rx rxquantr576 ** 0..1
+ set_addr $I10, rxquantr576_done
+ rx571_cur."!mark_push"(0, rx571_pos, $I10)
+ rxquantr576_loop:
# rx literal "igspace"
- add $I11, rx562_pos, 7
- gt $I11, rx562_eos, rx562_fail
- sub $I11, rx562_pos, rx562_off
- substr $S10, rx562_tgt, $I11, 7
- ne $S10, "igspace", rx562_fail
- add rx562_pos, 7
- set_addr $I10, rxquantr567_done
- (rx562_rep) = rx562_cur."!mark_commit"($I10)
- rxquantr567_done:
+ add $I11, rx571_pos, 7
+ gt $I11, rx571_eos, rx571_fail
+ sub $I11, rx571_pos, rx571_off
+ substr $S10, rx571_tgt, $I11, 7
+ ne $S10, "igspace", rx571_fail
+ add rx571_pos, 7
+ set_addr $I10, rxquantr576_done
+ (rx571_rep) = rx571_cur."!mark_commit"($I10)
+ rxquantr576_done:
# rx pass
- rx562_cur."!cursor_pass"(rx562_pos, "mod_ident:sym<sigspace>")
- rx562_cur."!cursor_debug"("PASS ", "mod_ident:sym<sigspace>", " at pos=", rx562_pos)
- .return (rx562_cur)
- rx562_restart:
+ rx571_cur."!cursor_pass"(rx571_pos, "mod_ident:sym<sigspace>")
+ if_null rx571_debug, debug_467
+ rx571_cur."!cursor_debug"("PASS", "mod_ident:sym<sigspace>", " at pos=", rx571_pos)
+ debug_467:
+ .return (rx571_cur)
+ rx571_restart:
.annotate 'line', 3
- rx562_cur."!cursor_debug"("NEXT ", "mod_ident:sym<sigspace>")
- rx562_fail:
- (rx562_rep, rx562_pos, $I10, $P10) = rx562_cur."!mark_fail"(0)
- lt rx562_pos, -1, rx562_done
- eq rx562_pos, -1, rx562_fail
+ if_null rx571_debug, debug_468
+ rx571_cur."!cursor_debug"("NEXT", "mod_ident:sym<sigspace>")
+ debug_468:
+ rx571_fail:
+ (rx571_rep, rx571_pos, $I10, $P10) = rx571_cur."!mark_fail"(0)
+ lt rx571_pos, -1, rx571_done
+ eq rx571_pos, -1, rx571_fail
jump $I10
- rx562_done:
- rx562_cur."!cursor_fail"()
- rx562_cur."!cursor_debug"("FAIL ", "mod_ident:sym<sigspace>")
- .return (rx562_cur)
+ rx571_done:
+ rx571_cur."!cursor_fail"()
+ if_null rx571_debug, debug_469
+ rx571_cur."!cursor_debug"("FAIL", "mod_ident:sym<sigspace>")
+ debug_469:
+ .return (rx571_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>" :subid("159_1280467470.54449") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>" :subid("161_1282323996.47527") :method
.annotate 'line', 3
- new $P564, "ResizablePMCArray"
- push $P564, "s"
- .return ($P564)
+ new $P573, "ResizablePMCArray"
+ push $P573, "s"
+ .return ($P573)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block568" :load :anon :subid("160_1280467470.54449")
+.sub "_block577" :load :anon :subid("162_1282323996.47527")
.annotate 'line', 3
- .const 'Sub' $P570 = "11_1280467470.54449"
- $P571 = $P570()
- .return ($P571)
+ .const 'Sub' $P579 = "11_1282323996.47527"
+ $P580 = $P579()
+ .return ($P580)
.end
.namespace []
-.sub "_block573" :load :anon :subid("161_1280467470.54449")
+.sub "_block582" :load :anon :subid("163_1282323996.47527")
.annotate 'line', 1
- .const 'Sub' $P575 = "10_1280467470.54449"
- $P576 = $P575()
- .return ($P576)
+ .const 'Sub' $P584 = "10_1282323996.47527"
+ $P585 = $P584()
+ .return ($P585)
.end
### .include 'gen/p6regex-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1280467473.99327")
+.sub "_block11" :anon :subid("10_1282323999.42098")
.annotate 'line', 0
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
@@ -7689,153 +8571,155 @@
.annotate 'line', 4
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
- $P1634 = $P14()
+ $P1671 = $P14()
.annotate 'line', 1
- .return ($P1634)
- .const 'Sub' $P1636 = "92_1280467473.99327"
- .return ($P1636)
+ .return ($P1671)
+ .const 'Sub' $P1673 = "94_1282323999.42098"
+ .return ($P1673)
.end
.namespace []
-.sub "" :load :init :subid("post93") :outer("10_1280467473.99327")
+.sub "" :load :init :subid("post95") :outer("10_1282323999.42098")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1280467473.99327"
+ .const 'Sub' $P12 = "10_1282323999.42098"
.local pmc block
set block, $P12
- $P1639 = get_root_global ["parrot"], "P6metaclass"
- $P1639."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
+ $P1676 = get_root_global ["parrot"], "P6metaclass"
+ $P1676."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13" :subid("11_1280467473.99327") :outer("10_1280467473.99327")
+.sub "_block13" :subid("11_1282323999.42098") :outer("10_1282323999.42098")
.annotate 'line', 4
- .const 'Sub' $P1611 = "90_1280467473.99327"
- capture_lex $P1611
- .const 'Sub' $P1591 = "89_1280467473.99327"
- capture_lex $P1591
- .const 'Sub' $P1559 = "88_1280467473.99327"
- capture_lex $P1559
- .const 'Sub' $P1490 = "84_1280467473.99327"
- capture_lex $P1490
- .const 'Sub' $P1422 = "82_1280467473.99327"
- capture_lex $P1422
- .const 'Sub' $P1350 = "79_1280467473.99327"
- capture_lex $P1350
- .const 'Sub' $P1336 = "78_1280467473.99327"
- capture_lex $P1336
- .const 'Sub' $P1312 = "77_1280467473.99327"
- capture_lex $P1312
- .const 'Sub' $P1294 = "76_1280467473.99327"
- capture_lex $P1294
- .const 'Sub' $P1280 = "75_1280467473.99327"
- capture_lex $P1280
- .const 'Sub' $P1267 = "74_1280467473.99327"
- capture_lex $P1267
- .const 'Sub' $P1236 = "73_1280467473.99327"
- capture_lex $P1236
- .const 'Sub' $P1205 = "72_1280467473.99327"
- capture_lex $P1205
- .const 'Sub' $P1189 = "71_1280467473.99327"
- capture_lex $P1189
- .const 'Sub' $P1173 = "70_1280467473.99327"
- capture_lex $P1173
- .const 'Sub' $P1157 = "69_1280467473.99327"
- capture_lex $P1157
- .const 'Sub' $P1141 = "68_1280467473.99327"
- capture_lex $P1141
- .const 'Sub' $P1125 = "67_1280467473.99327"
- capture_lex $P1125
- .const 'Sub' $P1109 = "66_1280467473.99327"
- capture_lex $P1109
- .const 'Sub' $P1093 = "65_1280467473.99327"
- capture_lex $P1093
- .const 'Sub' $P1069 = "64_1280467473.99327"
- capture_lex $P1069
- .const 'Sub' $P1054 = "63_1280467473.99327"
- capture_lex $P1054
- .const 'Sub' $P996 = "62_1280467473.99327"
- capture_lex $P996
- .const 'Sub' $P975 = "61_1280467473.99327"
- capture_lex $P975
- .const 'Sub' $P953 = "60_1280467473.99327"
- capture_lex $P953
- .const 'Sub' $P943 = "59_1280467473.99327"
- capture_lex $P943
- .const 'Sub' $P933 = "58_1280467473.99327"
- capture_lex $P933
- .const 'Sub' $P923 = "57_1280467473.99327"
- capture_lex $P923
- .const 'Sub' $P911 = "56_1280467473.99327"
- capture_lex $P911
- .const 'Sub' $P899 = "55_1280467473.99327"
- capture_lex $P899
- .const 'Sub' $P887 = "54_1280467473.99327"
- capture_lex $P887
- .const 'Sub' $P875 = "53_1280467473.99327"
- capture_lex $P875
- .const 'Sub' $P863 = "52_1280467473.99327"
- capture_lex $P863
- .const 'Sub' $P851 = "51_1280467473.99327"
- capture_lex $P851
- .const 'Sub' $P839 = "50_1280467473.99327"
- capture_lex $P839
- .const 'Sub' $P827 = "49_1280467473.99327"
- capture_lex $P827
- .const 'Sub' $P799 = "48_1280467473.99327"
- capture_lex $P799
- .const 'Sub' $P771 = "47_1280467473.99327"
- capture_lex $P771
- .const 'Sub' $P753 = "46_1280467473.99327"
- capture_lex $P753
- .const 'Sub' $P743 = "45_1280467473.99327"
- capture_lex $P743
- .const 'Sub' $P725 = "44_1280467473.99327"
- capture_lex $P725
- .const 'Sub' $P652 = "42_1280467473.99327"
- capture_lex $P652
- .const 'Sub' $P635 = "41_1280467473.99327"
- capture_lex $P635
- .const 'Sub' $P620 = "40_1280467473.99327"
- capture_lex $P620
- .const 'Sub' $P605 = "39_1280467473.99327"
- capture_lex $P605
- .const 'Sub' $P579 = "38_1280467473.99327"
- capture_lex $P579
- .const 'Sub' $P528 = "36_1280467473.99327"
- capture_lex $P528
- .const 'Sub' $P460 = "34_1280467473.99327"
+ .const 'Sub' $P1648 = "92_1282323999.42098"
+ capture_lex $P1648
+ .const 'Sub' $P1628 = "91_1282323999.42098"
+ capture_lex $P1628
+ .const 'Sub' $P1596 = "90_1282323999.42098"
+ capture_lex $P1596
+ .const 'Sub' $P1527 = "86_1282323999.42098"
+ capture_lex $P1527
+ .const 'Sub' $P1459 = "84_1282323999.42098"
+ capture_lex $P1459
+ .const 'Sub' $P1387 = "81_1282323999.42098"
+ capture_lex $P1387
+ .const 'Sub' $P1373 = "80_1282323999.42098"
+ capture_lex $P1373
+ .const 'Sub' $P1349 = "79_1282323999.42098"
+ capture_lex $P1349
+ .const 'Sub' $P1331 = "78_1282323999.42098"
+ capture_lex $P1331
+ .const 'Sub' $P1317 = "77_1282323999.42098"
+ capture_lex $P1317
+ .const 'Sub' $P1304 = "76_1282323999.42098"
+ capture_lex $P1304
+ .const 'Sub' $P1273 = "75_1282323999.42098"
+ capture_lex $P1273
+ .const 'Sub' $P1242 = "74_1282323999.42098"
+ capture_lex $P1242
+ .const 'Sub' $P1226 = "73_1282323999.42098"
+ capture_lex $P1226
+ .const 'Sub' $P1210 = "72_1282323999.42098"
+ capture_lex $P1210
+ .const 'Sub' $P1194 = "71_1282323999.42098"
+ capture_lex $P1194
+ .const 'Sub' $P1178 = "70_1282323999.42098"
+ capture_lex $P1178
+ .const 'Sub' $P1162 = "69_1282323999.42098"
+ capture_lex $P1162
+ .const 'Sub' $P1146 = "68_1282323999.42098"
+ capture_lex $P1146
+ .const 'Sub' $P1130 = "67_1282323999.42098"
+ capture_lex $P1130
+ .const 'Sub' $P1106 = "66_1282323999.42098"
+ capture_lex $P1106
+ .const 'Sub' $P1091 = "65_1282323999.42098"
+ capture_lex $P1091
+ .const 'Sub' $P1033 = "64_1282323999.42098"
+ capture_lex $P1033
+ .const 'Sub' $P1012 = "63_1282323999.42098"
+ capture_lex $P1012
+ .const 'Sub' $P990 = "62_1282323999.42098"
+ capture_lex $P990
+ .const 'Sub' $P980 = "61_1282323999.42098"
+ capture_lex $P980
+ .const 'Sub' $P970 = "60_1282323999.42098"
+ capture_lex $P970
+ .const 'Sub' $P960 = "59_1282323999.42098"
+ capture_lex $P960
+ .const 'Sub' $P948 = "58_1282323999.42098"
+ capture_lex $P948
+ .const 'Sub' $P936 = "57_1282323999.42098"
+ capture_lex $P936
+ .const 'Sub' $P924 = "56_1282323999.42098"
+ capture_lex $P924
+ .const 'Sub' $P912 = "55_1282323999.42098"
+ capture_lex $P912
+ .const 'Sub' $P900 = "54_1282323999.42098"
+ capture_lex $P900
+ .const 'Sub' $P888 = "53_1282323999.42098"
+ capture_lex $P888
+ .const 'Sub' $P876 = "52_1282323999.42098"
+ capture_lex $P876
+ .const 'Sub' $P864 = "51_1282323999.42098"
+ capture_lex $P864
+ .const 'Sub' $P836 = "50_1282323999.42098"
+ capture_lex $P836
+ .const 'Sub' $P808 = "49_1282323999.42098"
+ capture_lex $P808
+ .const 'Sub' $P790 = "48_1282323999.42098"
+ capture_lex $P790
+ .const 'Sub' $P780 = "47_1282323999.42098"
+ capture_lex $P780
+ .const 'Sub' $P762 = "46_1282323999.42098"
+ capture_lex $P762
+ .const 'Sub' $P689 = "44_1282323999.42098"
+ capture_lex $P689
+ .const 'Sub' $P672 = "43_1282323999.42098"
+ capture_lex $P672
+ .const 'Sub' $P657 = "42_1282323999.42098"
+ capture_lex $P657
+ .const 'Sub' $P642 = "41_1282323999.42098"
+ capture_lex $P642
+ .const 'Sub' $P616 = "40_1282323999.42098"
+ capture_lex $P616
+ .const 'Sub' $P565 = "38_1282323999.42098"
+ capture_lex $P565
+ .const 'Sub' $P497 = "36_1282323999.42098"
+ capture_lex $P497
+ .const 'Sub' $P460 = "34_1282323999.42098"
capture_lex $P460
- .const 'Sub' $P404 = "31_1280467473.99327"
+ .const 'Sub' $P404 = "31_1282323999.42098"
capture_lex $P404
- .const 'Sub' $P389 = "30_1280467473.99327"
+ .const 'Sub' $P389 = "30_1282323999.42098"
capture_lex $P389
- .const 'Sub' $P363 = "28_1280467473.99327"
+ .const 'Sub' $P363 = "28_1282323999.42098"
capture_lex $P363
- .const 'Sub' $P346 = "27_1280467473.99327"
+ .const 'Sub' $P346 = "27_1282323999.42098"
capture_lex $P346
- .const 'Sub' $P312 = "26_1280467473.99327"
+ .const 'Sub' $P312 = "26_1282323999.42098"
capture_lex $P312
- .const 'Sub' $P57 = "13_1280467473.99327"
+ .const 'Sub' $P57 = "13_1282323999.42098"
capture_lex $P57
- .const 'Sub' $P16 = "12_1280467473.99327"
+ .const 'Sub' $P16 = "12_1282323999.42098"
capture_lex $P16
get_global $P15, "@MODIFIERS"
- unless_null $P15, vivify_95
+ unless_null $P15, vivify_97
$P15 = root_new ['parrot';'ResizablePMCArray']
set_global "@MODIFIERS", $P15
- vivify_95:
-.annotate 'line', 492
- .const 'Sub' $P16 = "12_1280467473.99327"
+ vivify_97:
+.annotate 'line', 506
+ .const 'Sub' $P16 = "12_1282323999.42098"
newclosure $P56, $P16
.lex "buildsub", $P56
-.annotate 'line', 510
- .const 'Sub' $P57 = "13_1280467473.99327"
+.annotate 'line', 524
+ .const 'Sub' $P57 = "13_1282323999.42098"
newclosure $P311, $P57
.lex "capnames", $P311
-.annotate 'line', 576
- .const 'Sub' $P312 = "26_1280467473.99327"
+.annotate 'line', 590
+ .const 'Sub' $P312 = "26_1282323999.42098"
newclosure $P344, $P312
.lex "backmod", $P344
.annotate 'line', 4
@@ -7846,90 +8730,90 @@
$P0."ctxsave"()
ctxsave_done:
get_global $P345, "@MODIFIERS"
-.annotate 'line', 485
- find_lex $P1588, "buildsub"
- find_lex $P1589, "capnames"
- find_lex $P1590, "backmod"
-.annotate 'line', 589
- .const 'Sub' $P1611 = "90_1280467473.99327"
- newclosure $P1628, $P1611
+.annotate 'line', 499
+ find_lex $P1625, "buildsub"
+ find_lex $P1626, "capnames"
+ find_lex $P1627, "backmod"
+.annotate 'line', 603
+ .const 'Sub' $P1648 = "92_1282323999.42098"
+ newclosure $P1665, $P1648
.annotate 'line', 4
- .return ($P1628)
- .const 'Sub' $P1630 = "91_1280467473.99327"
- .return ($P1630)
+ .return ($P1665)
+ .const 'Sub' $P1667 = "93_1282323999.42098"
+ .return ($P1667)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "" :load :init :subid("post94") :outer("11_1280467473.99327")
+.sub "" :load :init :subid("post96") :outer("11_1282323999.42098")
.annotate 'line', 4
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
.local pmc block
set block, $P14
.annotate 'line', 7
- $P1633 = new ['ResizablePMCArray']
+ $P1670 = new ['ResizablePMCArray']
$P0 = new ['Hash']
- push $P1633, $P0
+ push $P1670, $P0
- set_global "@MODIFIERS", $P1633
+ set_global "@MODIFIERS", $P1670
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "buildsub" :subid("12_1280467473.99327") :outer("11_1280467473.99327")
+.sub "buildsub" :subid("12_1282323999.42098") :outer("11_1282323999.42098")
.param pmc param_19
.param pmc param_20 :optional
.param int has_param_20 :opt_flag
-.annotate 'line', 492
+.annotate 'line', 506
new $P18, 'ExceptionHandler'
set_addr $P18, control_17
$P18."handle_types"(.CONTROL_RETURN)
push_eh $P18
.lex "$rpast", param_19
- if has_param_20, optparam_96
+ if has_param_20, optparam_98
get_hll_global $P21, ["PAST"], "Block"
$P22 = $P21."new"()
set param_20, $P22
- optparam_96:
+ optparam_98:
.lex "$block", param_20
-.annotate 'line', 493
+.annotate 'line', 507
$P23 = root_new ['parrot';'Hash']
.lex "%capnames", $P23
find_lex $P24, "$rpast"
$P25 = "capnames"($P24, 0)
store_lex "%capnames", $P25
-.annotate 'line', 494
+.annotate 'line', 508
new $P26, "Integer"
assign $P26, 0
find_lex $P27, "%capnames"
- unless_null $P27, vivify_97
+ unless_null $P27, vivify_99
$P27 = root_new ['parrot';'Hash']
store_lex "%capnames", $P27
- vivify_97:
+ vivify_99:
set $P27[""], $P26
-.annotate 'line', 495
+.annotate 'line', 509
get_hll_global $P28, ["PAST"], "Regex"
-.annotate 'line', 496
+.annotate 'line', 510
get_hll_global $P29, ["PAST"], "Regex"
$P30 = $P29."new"("scan" :named("pasttype"))
find_lex $P31, "$rpast"
-.annotate 'line', 498
+.annotate 'line', 512
get_hll_global $P32, ["PAST"], "Regex"
-.annotate 'line', 499
+.annotate 'line', 513
get_global $P35, "@MODIFIERS"
- unless_null $P35, vivify_98
+ unless_null $P35, vivify_100
$P35 = root_new ['parrot';'ResizablePMCArray']
- vivify_98:
+ vivify_100:
set $P36, $P35[0]
- unless_null $P36, vivify_99
+ unless_null $P36, vivify_101
$P36 = root_new ['parrot';'Hash']
- vivify_99:
+ vivify_101:
set $P37, $P36["r"]
- unless_null $P37, vivify_100
+ unless_null $P37, vivify_102
new $P37, "Undef"
- vivify_100:
+ vivify_102:
if $P37, if_34
new $P39, "String"
assign $P39, "g"
@@ -7941,34 +8825,34 @@
set $P33, $P38
if_34_end:
$P40 = $P32."new"("pass" :named("pasttype"), $P33 :named("backtrack"))
-.annotate 'line', 498
+.annotate 'line', 512
find_lex $P41, "%capnames"
$P42 = $P28."new"($P30, $P31, $P40, "concat" :named("pasttype"), $P41 :named("capnames"))
-.annotate 'line', 495
+.annotate 'line', 509
store_lex "$rpast", $P42
-.annotate 'line', 503
+.annotate 'line', 517
find_lex $P44, "$block"
$P45 = $P44."symbol"(unicode:"$\x{a2}")
if $P45, unless_43_end
find_lex $P46, "$block"
$P46."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
unless_43_end:
-.annotate 'line', 504
+.annotate 'line', 518
find_lex $P48, "$block"
$P49 = $P48."symbol"("$/")
if $P49, unless_47_end
find_lex $P50, "$block"
$P50."symbol"("$/", "lexical" :named("scope"))
unless_47_end:
-.annotate 'line', 505
+.annotate 'line', 519
find_lex $P51, "$block"
find_lex $P52, "$rpast"
$P51."push"($P52)
-.annotate 'line', 506
+.annotate 'line', 520
find_lex $P53, "$block"
$P53."blocktype"("method")
find_lex $P54, "$block"
-.annotate 'line', 492
+.annotate 'line', 506
.return ($P54)
control_17:
.local pmc exception
@@ -7980,19 +8864,19 @@
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "capnames" :subid("13_1280467473.99327") :outer("11_1280467473.99327")
+.sub "capnames" :subid("13_1282323999.42098") :outer("11_1282323999.42098")
.param pmc param_60
.param pmc param_61
-.annotate 'line', 510
- .const 'Sub' $P286 = "24_1280467473.99327"
+.annotate 'line', 524
+ .const 'Sub' $P286 = "24_1282323999.42098"
capture_lex $P286
- .const 'Sub' $P223 = "21_1280467473.99327"
+ .const 'Sub' $P223 = "21_1282323999.42098"
capture_lex $P223
- .const 'Sub' $P181 = "19_1280467473.99327"
+ .const 'Sub' $P181 = "19_1282323999.42098"
capture_lex $P181
- .const 'Sub' $P139 = "17_1280467473.99327"
+ .const 'Sub' $P139 = "17_1282323999.42098"
capture_lex $P139
- .const 'Sub' $P72 = "14_1280467473.99327"
+ .const 'Sub' $P72 = "14_1282323999.42098"
capture_lex $P72
new $P59, 'ExceptionHandler'
set_addr $P59, control_58
@@ -8000,29 +8884,29 @@
push_eh $P59
.lex "$ast", param_60
.lex "$count", param_61
-.annotate 'line', 511
+.annotate 'line', 525
$P62 = root_new ['parrot';'Hash']
.lex "%capnames", $P62
-.annotate 'line', 512
+.annotate 'line', 526
new $P63, "Undef"
.lex "$pasttype", $P63
-.annotate 'line', 510
+.annotate 'line', 524
find_lex $P64, "%capnames"
-.annotate 'line', 512
+.annotate 'line', 526
find_lex $P65, "$ast"
$P66 = $P65."pasttype"()
store_lex "$pasttype", $P66
-.annotate 'line', 513
+.annotate 'line', 527
find_lex $P68, "$pasttype"
set $S69, $P68
iseq $I70, $S69, "alt"
if $I70, if_67
-.annotate 'line', 526
+.annotate 'line', 540
find_lex $P130, "$pasttype"
set $S131, $P130
iseq $I132, $S131, "concat"
if $I132, if_129
-.annotate 'line', 535
+.annotate 'line', 549
find_lex $P174, "$pasttype"
set $S175, $P174
iseq $I176, $S175, "subrule"
@@ -8038,41 +8922,41 @@
set $P172, $I179
if_173_end:
if $P172, if_171
-.annotate 'line', 548
+.annotate 'line', 562
find_lex $P219, "$pasttype"
set $S220, $P219
iseq $I221, $S220, "subcapture"
if $I221, if_218
-.annotate 'line', 565
+.annotate 'line', 579
find_lex $P282, "$pasttype"
set $S283, $P282
iseq $I284, $S283, "quant"
unless $I284, if_281_end
- .const 'Sub' $P286 = "24_1280467473.99327"
+ .const 'Sub' $P286 = "24_1282323999.42098"
capture_lex $P286
$P286()
if_281_end:
goto if_218_end
if_218:
-.annotate 'line', 548
- .const 'Sub' $P223 = "21_1280467473.99327"
+.annotate 'line', 562
+ .const 'Sub' $P223 = "21_1282323999.42098"
capture_lex $P223
$P223()
if_218_end:
goto if_171_end
if_171:
-.annotate 'line', 535
- .const 'Sub' $P181 = "19_1280467473.99327"
+.annotate 'line', 549
+ .const 'Sub' $P181 = "19_1282323999.42098"
capture_lex $P181
$P181()
if_171_end:
goto if_129_end
if_129:
-.annotate 'line', 527
+.annotate 'line', 541
find_lex $P134, "$ast"
$P135 = $P134."list"()
defined $I136, $P135
- unless $I136, for_undef_121
+ unless $I136, for_undef_123
iter $P133, $P135
new $P169, 'ExceptionHandler'
set_addr $P169, loop168_handler
@@ -8082,7 +8966,7 @@
unless $P133, loop168_done
shift $P137, $P133
loop168_redo:
- .const 'Sub' $P139 = "17_1280467473.99327"
+ .const 'Sub' $P139 = "17_1282323999.42098"
capture_lex $P139
$P139($P137)
loop168_next:
@@ -8095,26 +8979,26 @@
eq $P170, .CONTROL_LOOP_REDO, loop168_redo
loop168_done:
pop_eh
- for_undef_121:
+ for_undef_123:
if_129_end:
-.annotate 'line', 526
+.annotate 'line', 540
goto if_67_end
if_67:
-.annotate 'line', 513
- .const 'Sub' $P72 = "14_1280467473.99327"
+.annotate 'line', 527
+ .const 'Sub' $P72 = "14_1282323999.42098"
capture_lex $P72
$P72()
if_67_end:
-.annotate 'line', 572
+.annotate 'line', 586
find_lex $P307, "$count"
find_lex $P308, "%capnames"
- unless_null $P308, vivify_141
+ unless_null $P308, vivify_143
$P308 = root_new ['parrot';'Hash']
store_lex "%capnames", $P308
- vivify_141:
+ vivify_143:
set $P308[""], $P307
find_lex $P309, "%capnames"
-.annotate 'line', 510
+.annotate 'line', 524
.return ($P309)
control_58:
.local pmc exception
@@ -8126,28 +9010,28 @@
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block285" :anon :subid("24_1280467473.99327") :outer("13_1280467473.99327")
-.annotate 'line', 565
- .const 'Sub' $P297 = "25_1280467473.99327"
+.sub "_block285" :anon :subid("24_1282323999.42098") :outer("13_1282323999.42098")
+.annotate 'line', 579
+ .const 'Sub' $P297 = "25_1282323999.42098"
capture_lex $P297
-.annotate 'line', 566
+.annotate 'line', 580
$P287 = root_new ['parrot';'Hash']
.lex "%astcap", $P287
find_lex $P288, "$ast"
- unless_null $P288, vivify_101
+ unless_null $P288, vivify_103
$P288 = root_new ['parrot';'ResizablePMCArray']
- vivify_101:
+ vivify_103:
set $P289, $P288[0]
- unless_null $P289, vivify_102
+ unless_null $P289, vivify_104
new $P289, "Undef"
- vivify_102:
+ vivify_104:
find_lex $P290, "$count"
$P291 = "capnames"($P289, $P290)
store_lex "%astcap", $P291
-.annotate 'line', 567
+.annotate 'line', 581
find_lex $P293, "%astcap"
defined $I294, $P293
- unless $I294, for_undef_103
+ unless $I294, for_undef_105
iter $P292, $P293
new $P303, 'ExceptionHandler'
set_addr $P303, loop302_handler
@@ -8157,7 +9041,7 @@
unless $P292, loop302_done
shift $P295, $P292
loop302_redo:
- .const 'Sub' $P297 = "25_1280467473.99327"
+ .const 'Sub' $P297 = "25_1282323999.42098"
capture_lex $P297
$P297($P295)
loop302_next:
@@ -8170,74 +9054,74 @@
eq $P304, .CONTROL_LOOP_REDO, loop302_redo
loop302_done:
pop_eh
- for_undef_103:
-.annotate 'line', 570
+ for_undef_105:
+.annotate 'line', 584
find_lex $P305, "%astcap"
- unless_null $P305, vivify_105
+ unless_null $P305, vivify_107
$P305 = root_new ['parrot';'Hash']
- vivify_105:
+ vivify_107:
set $P306, $P305[""]
- unless_null $P306, vivify_106
+ unless_null $P306, vivify_108
new $P306, "Undef"
- vivify_106:
+ vivify_108:
store_lex "$count", $P306
-.annotate 'line', 565
+.annotate 'line', 579
.return ($P306)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block296" :anon :subid("25_1280467473.99327") :outer("24_1280467473.99327")
+.sub "_block296" :anon :subid("25_1282323999.42098") :outer("24_1282323999.42098")
.param pmc param_298
-.annotate 'line', 567
+.annotate 'line', 581
.lex "$_", param_298
-.annotate 'line', 568
+.annotate 'line', 582
new $P299, "Integer"
assign $P299, 2
find_lex $P300, "$_"
find_lex $P301, "%capnames"
- unless_null $P301, vivify_104
+ unless_null $P301, vivify_106
$P301 = root_new ['parrot';'Hash']
store_lex "%capnames", $P301
- vivify_104:
+ vivify_106:
set $P301[$P300], $P299
-.annotate 'line', 567
+.annotate 'line', 581
.return ($P299)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block222" :anon :subid("21_1280467473.99327") :outer("13_1280467473.99327")
-.annotate 'line', 548
- .const 'Sub' $P263 = "23_1280467473.99327"
+.sub "_block222" :anon :subid("21_1282323999.42098") :outer("13_1282323999.42098")
+.annotate 'line', 562
+ .const 'Sub' $P263 = "23_1282323999.42098"
capture_lex $P263
- .const 'Sub' $P235 = "22_1280467473.99327"
+ .const 'Sub' $P235 = "22_1282323999.42098"
capture_lex $P235
-.annotate 'line', 549
+.annotate 'line', 563
new $P224, "Undef"
.lex "$name", $P224
-.annotate 'line', 550
+.annotate 'line', 564
$P225 = root_new ['parrot';'ResizablePMCArray']
.lex "@names", $P225
-.annotate 'line', 559
+.annotate 'line', 573
$P226 = root_new ['parrot';'Hash']
.lex "%x", $P226
-.annotate 'line', 549
+.annotate 'line', 563
find_lex $P227, "$ast"
$P228 = $P227."name"()
store_lex "$name", $P228
-.annotate 'line', 550
+.annotate 'line', 564
$P0 = find_lex '$name'
$S0 = $P0
$P229 = split '=', $S0
store_lex "@names", $P229
-.annotate 'line', 555
+.annotate 'line', 569
find_lex $P231, "@names"
defined $I232, $P231
- unless $I232, for_undef_107
+ unless $I232, for_undef_109
iter $P230, $P231
new $P252, 'ExceptionHandler'
set_addr $P252, loop251_handler
@@ -8247,7 +9131,7 @@
unless $P230, loop251_done
shift $P233, $P230
loop251_redo:
- .const 'Sub' $P235 = "22_1280467473.99327"
+ .const 'Sub' $P235 = "22_1282323999.42098"
capture_lex $P235
$P235($P233)
loop251_next:
@@ -8260,23 +9144,23 @@
eq $P253, .CONTROL_LOOP_REDO, loop251_redo
loop251_done:
pop_eh
- for_undef_107:
-.annotate 'line', 559
+ for_undef_109:
+.annotate 'line', 573
find_lex $P254, "$ast"
- unless_null $P254, vivify_109
+ unless_null $P254, vivify_111
$P254 = root_new ['parrot';'ResizablePMCArray']
- vivify_109:
+ vivify_111:
set $P255, $P254[0]
- unless_null $P255, vivify_110
+ unless_null $P255, vivify_112
new $P255, "Undef"
- vivify_110:
+ vivify_112:
find_lex $P256, "$count"
$P257 = "capnames"($P255, $P256)
store_lex "%x", $P257
-.annotate 'line', 560
+.annotate 'line', 574
find_lex $P259, "%x"
defined $I260, $P259
- unless $I260, for_undef_111
+ unless $I260, for_undef_113
iter $P258, $P259
new $P277, 'ExceptionHandler'
set_addr $P277, loop276_handler
@@ -8286,7 +9170,7 @@
unless $P258, loop276_done
shift $P261, $P258
loop276_redo:
- .const 'Sub' $P263 = "23_1280467473.99327"
+ .const 'Sub' $P263 = "23_1282323999.42098"
capture_lex $P263
$P263($P261)
loop276_next:
@@ -8299,28 +9183,28 @@
eq $P278, .CONTROL_LOOP_REDO, loop276_redo
loop276_done:
pop_eh
- for_undef_111:
-.annotate 'line', 563
+ for_undef_113:
+.annotate 'line', 577
find_lex $P279, "%x"
- unless_null $P279, vivify_117
+ unless_null $P279, vivify_119
$P279 = root_new ['parrot';'Hash']
- vivify_117:
+ vivify_119:
set $P280, $P279[""]
- unless_null $P280, vivify_118
+ unless_null $P280, vivify_120
new $P280, "Undef"
- vivify_118:
+ vivify_120:
store_lex "$count", $P280
-.annotate 'line', 548
+.annotate 'line', 562
.return ($P280)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block234" :anon :subid("22_1280467473.99327") :outer("21_1280467473.99327")
+.sub "_block234" :anon :subid("22_1282323999.42098") :outer("21_1282323999.42098")
.param pmc param_236
-.annotate 'line', 555
+.annotate 'line', 569
.lex "$_", param_236
-.annotate 'line', 556
+.annotate 'line', 570
find_lex $P240, "$_"
set $S241, $P240
iseq $I242, $S241, "0"
@@ -8340,78 +9224,78 @@
add $P247, $P246, 1
store_lex "$count", $P247
if_237_end:
-.annotate 'line', 557
+.annotate 'line', 571
new $P248, "Integer"
assign $P248, 1
find_lex $P249, "$_"
find_lex $P250, "%capnames"
- unless_null $P250, vivify_108
+ unless_null $P250, vivify_110
$P250 = root_new ['parrot';'Hash']
store_lex "%capnames", $P250
- vivify_108:
+ vivify_110:
set $P250[$P249], $P248
-.annotate 'line', 555
+.annotate 'line', 569
.return ($P248)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block262" :anon :subid("23_1280467473.99327") :outer("21_1280467473.99327")
+.sub "_block262" :anon :subid("23_1282323999.42098") :outer("21_1282323999.42098")
.param pmc param_264
-.annotate 'line', 560
+.annotate 'line', 574
.lex "$_", param_264
-.annotate 'line', 561
+.annotate 'line', 575
find_lex $P265, "$_"
find_lex $P266, "%capnames"
- unless_null $P266, vivify_112
+ unless_null $P266, vivify_114
$P266 = root_new ['parrot';'Hash']
- vivify_112:
+ vivify_114:
set $P267, $P266[$P265]
- unless_null $P267, vivify_113
+ unless_null $P267, vivify_115
new $P267, "Undef"
- vivify_113:
+ vivify_115:
set $N268, $P267
new $P269, 'Float'
set $P269, $N268
find_lex $P270, "$_"
find_lex $P271, "%x"
- unless_null $P271, vivify_114
+ unless_null $P271, vivify_116
$P271 = root_new ['parrot';'Hash']
- vivify_114:
+ vivify_116:
set $P272, $P271[$P270]
- unless_null $P272, vivify_115
+ unless_null $P272, vivify_117
new $P272, "Undef"
- vivify_115:
+ vivify_117:
add $P273, $P269, $P272
find_lex $P274, "$_"
find_lex $P275, "%capnames"
- unless_null $P275, vivify_116
+ unless_null $P275, vivify_118
$P275 = root_new ['parrot';'Hash']
store_lex "%capnames", $P275
- vivify_116:
+ vivify_118:
set $P275[$P274], $P273
-.annotate 'line', 560
+.annotate 'line', 574
.return ($P273)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block180" :anon :subid("19_1280467473.99327") :outer("13_1280467473.99327")
-.annotate 'line', 535
- .const 'Sub' $P199 = "20_1280467473.99327"
+.sub "_block180" :anon :subid("19_1282323999.42098") :outer("13_1282323999.42098")
+.annotate 'line', 549
+ .const 'Sub' $P199 = "20_1282323999.42098"
capture_lex $P199
-.annotate 'line', 536
+.annotate 'line', 550
new $P182, "Undef"
.lex "$name", $P182
-.annotate 'line', 538
+.annotate 'line', 552
$P183 = root_new ['parrot';'ResizablePMCArray']
.lex "@names", $P183
-.annotate 'line', 536
+.annotate 'line', 550
find_lex $P184, "$ast"
$P185 = $P184."name"()
store_lex "$name", $P185
-.annotate 'line', 537
+.annotate 'line', 551
find_lex $P187, "$name"
set $S188, $P187
iseq $I189, $S188, ""
@@ -8422,17 +9306,17 @@
find_lex $P192, "$name"
$P191."name"($P192)
if_186_end:
-.annotate 'line', 538
+.annotate 'line', 552
$P0 = find_lex '$name'
$S0 = $P0
$P193 = split '=', $S0
store_lex "@names", $P193
-.annotate 'line', 543
+.annotate 'line', 557
find_lex $P195, "@names"
defined $I196, $P195
- unless $I196, for_undef_119
+ unless $I196, for_undef_121
iter $P194, $P195
new $P216, 'ExceptionHandler'
set_addr $P216, loop215_handler
@@ -8442,7 +9326,7 @@
unless $P194, loop215_done
shift $P197, $P194
loop215_redo:
- .const 'Sub' $P199 = "20_1280467473.99327"
+ .const 'Sub' $P199 = "20_1282323999.42098"
capture_lex $P199
$P199($P197)
loop215_next:
@@ -8455,18 +9339,18 @@
eq $P217, .CONTROL_LOOP_REDO, loop215_redo
loop215_done:
pop_eh
- for_undef_119:
-.annotate 'line', 535
+ for_undef_121:
+.annotate 'line', 549
.return ($P194)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block198" :anon :subid("20_1280467473.99327") :outer("19_1280467473.99327")
+.sub "_block198" :anon :subid("20_1282323999.42098") :outer("19_1282323999.42098")
.param pmc param_200
-.annotate 'line', 543
+.annotate 'line', 557
.lex "$_", param_200
-.annotate 'line', 544
+.annotate 'line', 558
find_lex $P204, "$_"
set $S205, $P204
iseq $I206, $S205, "0"
@@ -8486,29 +9370,29 @@
add $P211, $P210, 1
store_lex "$count", $P211
if_201_end:
-.annotate 'line', 545
+.annotate 'line', 559
new $P212, "Integer"
assign $P212, 1
find_lex $P213, "$_"
find_lex $P214, "%capnames"
- unless_null $P214, vivify_120
+ unless_null $P214, vivify_122
$P214 = root_new ['parrot';'Hash']
store_lex "%capnames", $P214
- vivify_120:
+ vivify_122:
set $P214[$P213], $P212
-.annotate 'line', 543
+.annotate 'line', 557
.return ($P212)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block138" :anon :subid("17_1280467473.99327") :outer("13_1280467473.99327")
+.sub "_block138" :anon :subid("17_1282323999.42098") :outer("13_1282323999.42098")
.param pmc param_141
-.annotate 'line', 527
- .const 'Sub' $P150 = "18_1280467473.99327"
+.annotate 'line', 541
+ .const 'Sub' $P150 = "18_1282323999.42098"
capture_lex $P150
-.annotate 'line', 528
+.annotate 'line', 542
$P140 = root_new ['parrot';'Hash']
.lex "%x", $P140
.lex "$_", param_141
@@ -8516,10 +9400,10 @@
find_lex $P143, "$count"
$P144 = "capnames"($P142, $P143)
store_lex "%x", $P144
-.annotate 'line', 529
+.annotate 'line', 543
find_lex $P146, "%x"
defined $I147, $P146
- unless $I147, for_undef_122
+ unless $I147, for_undef_124
iter $P145, $P146
new $P164, 'ExceptionHandler'
set_addr $P164, loop163_handler
@@ -8529,7 +9413,7 @@
unless $P145, loop163_done
shift $P148, $P145
loop163_redo:
- .const 'Sub' $P150 = "18_1280467473.99327"
+ .const 'Sub' $P150 = "18_1282323999.42098"
capture_lex $P150
$P150($P148)
loop163_next:
@@ -8542,78 +9426,78 @@
eq $P165, .CONTROL_LOOP_REDO, loop163_redo
loop163_done:
pop_eh
- for_undef_122:
-.annotate 'line', 532
+ for_undef_124:
+.annotate 'line', 546
find_lex $P166, "%x"
- unless_null $P166, vivify_128
+ unless_null $P166, vivify_130
$P166 = root_new ['parrot';'Hash']
- vivify_128:
+ vivify_130:
set $P167, $P166[""]
- unless_null $P167, vivify_129
+ unless_null $P167, vivify_131
new $P167, "Undef"
- vivify_129:
+ vivify_131:
store_lex "$count", $P167
-.annotate 'line', 527
+.annotate 'line', 541
.return ($P167)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block149" :anon :subid("18_1280467473.99327") :outer("17_1280467473.99327")
+.sub "_block149" :anon :subid("18_1282323999.42098") :outer("17_1282323999.42098")
.param pmc param_151
-.annotate 'line', 529
+.annotate 'line', 543
.lex "$_", param_151
-.annotate 'line', 530
+.annotate 'line', 544
find_lex $P152, "$_"
find_lex $P153, "%capnames"
- unless_null $P153, vivify_123
+ unless_null $P153, vivify_125
$P153 = root_new ['parrot';'Hash']
- vivify_123:
+ vivify_125:
set $P154, $P153[$P152]
- unless_null $P154, vivify_124
+ unless_null $P154, vivify_126
new $P154, "Undef"
- vivify_124:
+ vivify_126:
set $N155, $P154
new $P156, 'Float'
set $P156, $N155
find_lex $P157, "$_"
find_lex $P158, "%x"
- unless_null $P158, vivify_125
+ unless_null $P158, vivify_127
$P158 = root_new ['parrot';'Hash']
- vivify_125:
+ vivify_127:
set $P159, $P158[$P157]
- unless_null $P159, vivify_126
+ unless_null $P159, vivify_128
new $P159, "Undef"
- vivify_126:
+ vivify_128:
add $P160, $P156, $P159
find_lex $P161, "$_"
find_lex $P162, "%capnames"
- unless_null $P162, vivify_127
+ unless_null $P162, vivify_129
$P162 = root_new ['parrot';'Hash']
store_lex "%capnames", $P162
- vivify_127:
+ vivify_129:
set $P162[$P161], $P160
-.annotate 'line', 529
+.annotate 'line', 543
.return ($P160)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block71" :anon :subid("14_1280467473.99327") :outer("13_1280467473.99327")
-.annotate 'line', 513
- .const 'Sub' $P81 = "15_1280467473.99327"
+.sub "_block71" :anon :subid("14_1282323999.42098") :outer("13_1282323999.42098")
+.annotate 'line', 527
+ .const 'Sub' $P81 = "15_1282323999.42098"
capture_lex $P81
-.annotate 'line', 514
+.annotate 'line', 528
new $P73, "Undef"
.lex "$max", $P73
find_lex $P74, "$count"
store_lex "$max", $P74
-.annotate 'line', 515
+.annotate 'line', 529
find_lex $P76, "$ast"
$P77 = $P76."list"()
defined $I78, $P77
- unless $I78, for_undef_130
+ unless $I78, for_undef_132
iter $P75, $P77
new $P126, 'ExceptionHandler'
set_addr $P126, loop125_handler
@@ -8623,7 +9507,7 @@
unless $P75, loop125_done
shift $P79, $P75
loop125_redo:
- .const 'Sub' $P81 = "15_1280467473.99327"
+ .const 'Sub' $P81 = "15_1282323999.42098"
capture_lex $P81
$P81($P79)
loop125_next:
@@ -8636,23 +9520,23 @@
eq $P127, .CONTROL_LOOP_REDO, loop125_redo
loop125_done:
pop_eh
- for_undef_130:
-.annotate 'line', 524
+ for_undef_132:
+.annotate 'line', 538
find_lex $P128, "$max"
store_lex "$count", $P128
-.annotate 'line', 513
+.annotate 'line', 527
.return ($P128)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block80" :anon :subid("15_1280467473.99327") :outer("14_1280467473.99327")
+.sub "_block80" :anon :subid("15_1282323999.42098") :outer("14_1282323999.42098")
.param pmc param_83
-.annotate 'line', 515
- .const 'Sub' $P92 = "16_1280467473.99327"
+.annotate 'line', 529
+ .const 'Sub' $P92 = "16_1282323999.42098"
capture_lex $P92
-.annotate 'line', 516
+.annotate 'line', 530
$P82 = root_new ['parrot';'Hash']
.lex "%x", $P82
.lex "$_", param_83
@@ -8660,10 +9544,10 @@
find_lex $P85, "$count"
$P86 = "capnames"($P84, $P85)
store_lex "%x", $P86
-.annotate 'line', 517
+.annotate 'line', 531
find_lex $P88, "%x"
defined $I89, $P88
- unless $I89, for_undef_131
+ unless $I89, for_undef_133
iter $P87, $P88
new $P113, 'ExceptionHandler'
set_addr $P113, loop112_handler
@@ -8673,7 +9557,7 @@
unless $P87, loop112_done
shift $P90, $P87
loop112_redo:
- .const 'Sub' $P92 = "16_1280467473.99327"
+ .const 'Sub' $P92 = "16_1282323999.42098"
capture_lex $P92
$P92($P90)
loop112_next:
@@ -8686,16 +9570,16 @@
eq $P114, .CONTROL_LOOP_REDO, loop112_redo
loop112_done:
pop_eh
- for_undef_131:
-.annotate 'line', 522
+ for_undef_133:
+.annotate 'line', 536
find_lex $P117, "%x"
- unless_null $P117, vivify_137
+ unless_null $P117, vivify_139
$P117 = root_new ['parrot';'Hash']
- vivify_137:
+ vivify_139:
set $P118, $P117[""]
- unless_null $P118, vivify_138
+ unless_null $P118, vivify_140
new $P118, "Undef"
- vivify_138:
+ vivify_140:
set $N119, $P118
find_lex $P120, "$max"
set $N121, $P120
@@ -8706,36 +9590,36 @@
goto if_116_end
if_116:
find_lex $P123, "%x"
- unless_null $P123, vivify_139
+ unless_null $P123, vivify_141
$P123 = root_new ['parrot';'Hash']
- vivify_139:
+ vivify_141:
set $P124, $P123[""]
- unless_null $P124, vivify_140
+ unless_null $P124, vivify_142
new $P124, "Undef"
- vivify_140:
+ vivify_142:
store_lex "$max", $P124
set $P115, $P124
if_116_end:
-.annotate 'line', 515
+.annotate 'line', 529
.return ($P115)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block91" :anon :subid("16_1280467473.99327") :outer("15_1280467473.99327")
+.sub "_block91" :anon :subid("16_1282323999.42098") :outer("15_1282323999.42098")
.param pmc param_93
-.annotate 'line', 517
+.annotate 'line', 531
.lex "$_", param_93
-.annotate 'line', 518
+.annotate 'line', 532
find_lex $P98, "$_"
find_lex $P99, "%capnames"
- unless_null $P99, vivify_132
+ unless_null $P99, vivify_134
$P99 = root_new ['parrot';'Hash']
- vivify_132:
+ vivify_134:
set $P100, $P99[$P98]
- unless_null $P100, vivify_133
+ unless_null $P100, vivify_135
new $P100, "Undef"
- vivify_133:
+ vivify_135:
set $N101, $P100
islt $I102, $N101, 2.0
if $I102, if_97
@@ -8745,13 +9629,13 @@
if_97:
find_lex $P103, "$_"
find_lex $P104, "%x"
- unless_null $P104, vivify_134
+ unless_null $P104, vivify_136
$P104 = root_new ['parrot';'Hash']
- vivify_134:
+ vivify_136:
set $P105, $P104[$P103]
- unless_null $P105, vivify_135
+ unless_null $P105, vivify_137
new $P105, "Undef"
- vivify_135:
+ vivify_137:
set $N106, $P105
iseq $I107, $N106, 1.0
new $P96, 'Integer'
@@ -8767,37 +9651,37 @@
assign $P108, 1
set $P94, $P108
if_95_end:
-.annotate 'line', 519
+.annotate 'line', 533
find_lex $P110, "$_"
find_lex $P111, "%capnames"
- unless_null $P111, vivify_136
+ unless_null $P111, vivify_138
$P111 = root_new ['parrot';'Hash']
store_lex "%capnames", $P111
- vivify_136:
+ vivify_138:
set $P111[$P110], $P94
-.annotate 'line', 517
+.annotate 'line', 531
.return ($P94)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backmod" :subid("26_1280467473.99327") :outer("11_1280467473.99327")
+.sub "backmod" :subid("26_1282323999.42098") :outer("11_1282323999.42098")
.param pmc param_315
.param pmc param_316
-.annotate 'line', 576
+.annotate 'line', 590
new $P314, 'ExceptionHandler'
set_addr $P314, control_313
$P314."handle_types"(.CONTROL_RETURN)
push_eh $P314
.lex "$ast", param_315
.lex "$backmod", param_316
-.annotate 'line', 577
+.annotate 'line', 591
find_lex $P318, "$backmod"
set $S319, $P318
iseq $I320, $S319, ":"
if $I320, if_317
-.annotate 'line', 578
+.annotate 'line', 592
find_lex $P325, "$backmod"
set $S326, $P325
iseq $I327, $S326, ":?"
@@ -8813,7 +9697,7 @@
set $P323, $I330
unless_324_end:
if $P323, if_322
-.annotate 'line', 579
+.annotate 'line', 593
find_lex $P335, "$backmod"
set $S336, $P335
iseq $I337, $S336, ":!"
@@ -8834,18 +9718,18 @@
if_332_end:
goto if_322_end
if_322:
-.annotate 'line', 578
+.annotate 'line', 592
find_lex $P331, "$ast"
$P331."backtrack"("f")
if_322_end:
goto if_317_end
if_317:
-.annotate 'line', 577
+.annotate 'line', 591
find_lex $P321, "$ast"
$P321."backtrack"("r")
if_317_end:
find_lex $P342, "$ast"
-.annotate 'line', 576
+.annotate 'line', 590
.return ($P342)
control_313:
.local pmc exception
@@ -8857,7 +9741,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "arg" :subid("27_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "arg" :subid("27_1282323999.42098") :method :outer("11_1282323999.42098")
.param pmc param_349
.annotate 'line', 14
new $P348, 'ExceptionHandler'
@@ -8869,35 +9753,35 @@
.annotate 'line', 15
find_lex $P350, "$/"
find_lex $P353, "$/"
- unless_null $P353, vivify_142
+ unless_null $P353, vivify_144
$P353 = root_new ['parrot';'Hash']
- vivify_142:
+ vivify_144:
set $P354, $P353["quote_EXPR"]
- unless_null $P354, vivify_143
+ unless_null $P354, vivify_145
new $P354, "Undef"
- vivify_143:
+ vivify_145:
if $P354, if_352
find_lex $P358, "$/"
- unless_null $P358, vivify_144
+ unless_null $P358, vivify_146
$P358 = root_new ['parrot';'Hash']
- vivify_144:
+ vivify_146:
set $P359, $P358["val"]
- unless_null $P359, vivify_145
+ unless_null $P359, vivify_147
new $P359, "Undef"
- vivify_145:
+ vivify_147:
set $N360, $P359
new $P351, 'Float'
set $P351, $N360
goto if_352_end
if_352:
find_lex $P355, "$/"
- unless_null $P355, vivify_146
+ unless_null $P355, vivify_148
$P355 = root_new ['parrot';'Hash']
- vivify_146:
+ vivify_148:
set $P356, $P355["quote_EXPR"]
- unless_null $P356, vivify_147
+ unless_null $P356, vivify_149
new $P356, "Undef"
- vivify_147:
+ vivify_149:
$P357 = $P356."ast"()
set $P351, $P357
if_352_end:
@@ -8914,10 +9798,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "arglist" :subid("28_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "arglist" :subid("28_1282323999.42098") :method :outer("11_1282323999.42098")
.param pmc param_366
.annotate 'line', 18
- .const 'Sub' $P376 = "29_1280467473.99327"
+ .const 'Sub' $P376 = "29_1282323999.42098"
capture_lex $P376
new $P365, 'ExceptionHandler'
set_addr $P365, control_364
@@ -8933,15 +9817,15 @@
store_lex "$past", $P369
.annotate 'line', 20
find_lex $P371, "$/"
- unless_null $P371, vivify_148
+ unless_null $P371, vivify_150
$P371 = root_new ['parrot';'Hash']
- vivify_148:
+ vivify_150:
set $P372, $P371["arg"]
- unless_null $P372, vivify_149
+ unless_null $P372, vivify_151
new $P372, "Undef"
- vivify_149:
+ vivify_151:
defined $I373, $P372
- unless $I373, for_undef_150
+ unless $I373, for_undef_152
iter $P370, $P372
new $P383, 'ExceptionHandler'
set_addr $P383, loop382_handler
@@ -8951,7 +9835,7 @@
unless $P370, loop382_done
shift $P374, $P370
loop382_redo:
- .const 'Sub' $P376 = "29_1280467473.99327"
+ .const 'Sub' $P376 = "29_1282323999.42098"
capture_lex $P376
$P376($P374)
loop382_next:
@@ -8964,7 +9848,7 @@
eq $P384, .CONTROL_LOOP_REDO, loop382_redo
loop382_done:
pop_eh
- for_undef_150:
+ for_undef_152:
.annotate 'line', 21
find_lex $P385, "$/"
find_lex $P386, "$past"
@@ -8980,7 +9864,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block375" :anon :subid("29_1280467473.99327") :outer("28_1280467473.99327")
+.sub "_block375" :anon :subid("29_1282323999.42098") :outer("28_1282323999.42098")
.param pmc param_377
.annotate 'line', 20
.lex "$_", param_377
@@ -8994,7 +9878,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "TOP" :subid("30_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "TOP" :subid("30_1282323999.42098") :method :outer("11_1282323999.42098")
.param pmc param_392
.annotate 'line', 24
new $P391, 'ExceptionHandler'
@@ -9007,13 +9891,13 @@
new $P393, "Undef"
.lex "$past", $P393
find_lex $P394, "$/"
- unless_null $P394, vivify_151
+ unless_null $P394, vivify_153
$P394 = root_new ['parrot';'Hash']
- vivify_151:
+ vivify_153:
set $P395, $P394["nibbler"]
- unless_null $P395, vivify_152
+ unless_null $P395, vivify_154
new $P395, "Undef"
- vivify_152:
+ vivify_154:
$P396 = $P395."ast"()
$P397 = "buildsub"($P396)
store_lex "$past", $P397
@@ -9037,14 +9921,14 @@
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "nibbler" :subid("31_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "nibbler" :subid("31_1282323999.42098") :method :outer("11_1282323999.42098")
.param pmc param_407
.param pmc param_408 :optional
.param int has_param_408 :opt_flag
.annotate 'line', 30
- .const 'Sub' $P443 = "33_1280467473.99327"
+ .const 'Sub' $P443 = "33_1282323999.42098"
capture_lex $P443
- .const 'Sub' $P416 = "32_1280467473.99327"
+ .const 'Sub' $P416 = "32_1282323999.42098"
capture_lex $P416
new $P406, 'ExceptionHandler'
set_addr $P406, control_405
@@ -9052,10 +9936,10 @@
push_eh $P406
.lex "self", self
.lex "$/", param_407
- if has_param_408, optparam_153
+ if has_param_408, optparam_155
new $P409, "Undef"
set param_408, $P409
- optparam_153:
+ optparam_155:
.lex "$key", param_408
.annotate 'line', 39
new $P410, "Undef"
@@ -9065,7 +9949,7 @@
set $S413, $P412
iseq $I414, $S413, "open"
unless $I414, if_411_end
- .const 'Sub' $P416 = "32_1280467473.99327"
+ .const 'Sub' $P416 = "32_1282323999.42098"
capture_lex $P416
$P416()
if_411_end:
@@ -9075,29 +9959,29 @@
find_lex $P428, "$past"
.annotate 'line', 40
find_lex $P430, "$/"
- unless_null $P430, vivify_156
+ unless_null $P430, vivify_158
$P430 = root_new ['parrot';'Hash']
- vivify_156:
- set $P431, $P430["termish"]
- unless_null $P431, vivify_157
+ vivify_158:
+ set $P431, $P430["termconj"]
+ unless_null $P431, vivify_159
new $P431, "Undef"
- vivify_157:
+ vivify_159:
set $N432, $P431
isgt $I433, $N432, 1.0
if $I433, if_429
.annotate 'line', 47
find_lex $P452, "$/"
- unless_null $P452, vivify_158
+ unless_null $P452, vivify_160
$P452 = root_new ['parrot';'Hash']
- vivify_158:
- set $P453, $P452["termish"]
- unless_null $P453, vivify_159
+ vivify_160:
+ set $P453, $P452["termconj"]
+ unless_null $P453, vivify_161
$P453 = root_new ['parrot';'ResizablePMCArray']
- vivify_159:
+ vivify_161:
set $P454, $P453[0]
- unless_null $P454, vivify_160
+ unless_null $P454, vivify_162
new $P454, "Undef"
- vivify_160:
+ vivify_162:
$P455 = $P454."ast"()
store_lex "$past", $P455
.annotate 'line', 46
@@ -9110,15 +9994,15 @@
store_lex "$past", $P436
.annotate 'line', 42
find_lex $P438, "$/"
- unless_null $P438, vivify_161
+ unless_null $P438, vivify_163
$P438 = root_new ['parrot';'Hash']
- vivify_161:
- set $P439, $P438["termish"]
- unless_null $P439, vivify_162
+ vivify_163:
+ set $P439, $P438["termconj"]
+ unless_null $P439, vivify_164
new $P439, "Undef"
- vivify_162:
+ vivify_164:
defined $I440, $P439
- unless $I440, for_undef_163
+ unless $I440, for_undef_165
iter $P437, $P439
new $P450, 'ExceptionHandler'
set_addr $P450, loop449_handler
@@ -9128,7 +10012,7 @@
unless $P437, loop449_done
shift $P441, $P437
loop449_redo:
- .const 'Sub' $P443 = "33_1280467473.99327"
+ .const 'Sub' $P443 = "33_1282323999.42098"
capture_lex $P443
$P443($P441)
loop449_next:
@@ -9141,7 +10025,7 @@
eq $P451, .CONTROL_LOOP_REDO, loop449_redo
loop449_done:
pop_eh
- for_undef_163:
+ for_undef_165:
if_429_end:
.annotate 'line', 49
find_lex $P456, "$/"
@@ -9159,7 +10043,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block415" :anon :subid("32_1280467473.99327") :outer("31_1280467473.99327")
+.sub "_block415" :anon :subid("32_1282323999.42098") :outer("31_1282323999.42098")
.annotate 'line', 32
$P417 = root_new ['parrot';'Hash']
.lex "%old", $P417
@@ -9168,13 +10052,13 @@
.lex "%new", $P418
.annotate 'line', 32
get_global $P419, "@MODIFIERS"
- unless_null $P419, vivify_154
+ unless_null $P419, vivify_156
$P419 = root_new ['parrot';'ResizablePMCArray']
- vivify_154:
+ vivify_156:
set $P420, $P419[0]
- unless_null $P420, vivify_155
+ unless_null $P420, vivify_157
new $P420, "Undef"
- vivify_155:
+ vivify_157:
store_lex "%old", $P420
.annotate 'line', 33
find_lex $P421, "%old"
@@ -9197,7 +10081,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block442" :anon :subid("33_1280467473.99327") :outer("31_1280467473.99327")
+.sub "_block442" :anon :subid("33_1282323999.42098") :outer("31_1282323999.42098")
.param pmc param_444
.annotate 'line', 42
.lex "$_", param_444
@@ -9213,11 +10097,11 @@
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "termish" :subid("34_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "termconj" :subid("34_1282323999.42098") :method :outer("11_1282323999.42098")
.param pmc param_463
.annotate 'line', 52
- .const 'Sub' $P476 = "35_1280467473.99327"
- capture_lex $P476
+ .const 'Sub' $P480 = "35_1282323999.42098"
+ capture_lex $P480
new $P462, 'ExceptionHandler'
set_addr $P462, control_461
$P462."handle_types"(.CONTROL_RETURN)
@@ -9227,2724 +10111,2841 @@
.annotate 'line', 53
new $P464, "Undef"
.lex "$past", $P464
+.annotate 'line', 52
+ find_lex $P465, "$past"
.annotate 'line', 54
- new $P465, "Undef"
- .lex "$lastlit", $P465
-.annotate 'line', 53
- get_hll_global $P466, ["PAST"], "Regex"
find_lex $P467, "$/"
- $P468 = $P466."new"("concat" :named("pasttype"), $P467 :named("node"))
- store_lex "$past", $P468
-.annotate 'line', 54
- new $P469, "Integer"
- assign $P469, 0
- store_lex "$lastlit", $P469
+ unless_null $P467, vivify_166
+ $P467 = root_new ['parrot';'Hash']
+ vivify_166:
+ set $P468, $P467["termish"]
+ unless_null $P468, vivify_167
+ new $P468, "Undef"
+ vivify_167:
+ set $N469, $P468
+ isgt $I470, $N469, 1.0
+ if $I470, if_466
+.annotate 'line', 61
+ find_lex $P489, "$/"
+ unless_null $P489, vivify_168
+ $P489 = root_new ['parrot';'Hash']
+ vivify_168:
+ set $P490, $P489["termish"]
+ unless_null $P490, vivify_169
+ $P490 = root_new ['parrot';'ResizablePMCArray']
+ vivify_169:
+ set $P491, $P490[0]
+ unless_null $P491, vivify_170
+ new $P491, "Undef"
+ vivify_170:
+ $P492 = $P491."ast"()
+ store_lex "$past", $P492
+.annotate 'line', 60
+ goto if_466_end
+ if_466:
.annotate 'line', 55
- find_lex $P471, "$/"
- unless_null $P471, vivify_164
- $P471 = root_new ['parrot';'Hash']
- vivify_164:
- set $P472, $P471["noun"]
- unless_null $P472, vivify_165
- new $P472, "Undef"
- vivify_165:
- defined $I473, $P472
- unless $I473, for_undef_166
- iter $P470, $P472
- new $P522, 'ExceptionHandler'
- set_addr $P522, loop521_handler
- $P522."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P522
- loop521_test:
- unless $P470, loop521_done
- shift $P474, $P470
- loop521_redo:
- .const 'Sub' $P476 = "35_1280467473.99327"
- capture_lex $P476
- $P476($P474)
- loop521_next:
- goto loop521_test
- loop521_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P523, exception, 'type'
- eq $P523, .CONTROL_LOOP_NEXT, loop521_next
- eq $P523, .CONTROL_LOOP_REDO, loop521_redo
- loop521_done:
+ get_hll_global $P471, ["PAST"], "Regex"
+ find_lex $P472, "$/"
+ $P473 = $P471."new"("conj" :named("pasttype"), $P472 :named("node"))
+ store_lex "$past", $P473
+.annotate 'line', 56
+ find_lex $P475, "$/"
+ unless_null $P475, vivify_171
+ $P475 = root_new ['parrot';'Hash']
+ vivify_171:
+ set $P476, $P475["termish"]
+ unless_null $P476, vivify_172
+ new $P476, "Undef"
+ vivify_172:
+ defined $I477, $P476
+ unless $I477, for_undef_173
+ iter $P474, $P476
+ new $P487, 'ExceptionHandler'
+ set_addr $P487, loop486_handler
+ $P487."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P487
+ loop486_test:
+ unless $P474, loop486_done
+ shift $P478, $P474
+ loop486_redo:
+ .const 'Sub' $P480 = "35_1282323999.42098"
+ capture_lex $P480
+ $P480($P478)
+ loop486_next:
+ goto loop486_test
+ loop486_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P488, exception, 'type'
+ eq $P488, .CONTROL_LOOP_NEXT, loop486_next
+ eq $P488, .CONTROL_LOOP_REDO, loop486_redo
+ loop486_done:
pop_eh
- for_undef_166:
-.annotate 'line', 70
- find_lex $P524, "$/"
- find_lex $P525, "$past"
- $P526 = $P524."!make"($P525)
+ for_undef_173:
+ if_466_end:
+.annotate 'line', 63
+ find_lex $P493, "$/"
+ find_lex $P494, "$past"
+ $P495 = $P493."!make"($P494)
.annotate 'line', 52
- .return ($P526)
+ .return ($P495)
control_461:
.local pmc exception
.get_results (exception)
- getattribute $P527, exception, "payload"
- .return ($P527)
+ getattribute $P496, exception, "payload"
+ .return ($P496)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block475" :anon :subid("35_1280467473.99327") :outer("34_1280467473.99327")
- .param pmc param_478
+.sub "_block479" :anon :subid("35_1282323999.42098") :outer("34_1282323999.42098")
+ .param pmc param_481
.annotate 'line', 56
- new $P477, "Undef"
- .lex "$ast", $P477
- .lex "$_", param_478
- find_lex $P479, "$_"
- $P480 = $P479."ast"()
- store_lex "$ast", $P480
+ .lex "$_", param_481
.annotate 'line', 57
- find_lex $P483, "$ast"
- if $P483, if_482
- set $P481, $P483
- goto if_482_end
- if_482:
-.annotate 'line', 58
- find_lex $P490, "$lastlit"
- if $P490, if_489
- set $P488, $P490
- goto if_489_end
- if_489:
- find_lex $P491, "$ast"
- $S492 = $P491."pasttype"()
- iseq $I493, $S492, "literal"
- new $P488, 'Integer'
- set $P488, $I493
- if_489_end:
- if $P488, if_487
- set $P486, $P488
- goto if_487_end
- if_487:
-.annotate 'line', 59
- get_hll_global $P494, ["PAST"], "Node"
- find_lex $P495, "$ast"
- unless_null $P495, vivify_167
- $P495 = root_new ['parrot';'ResizablePMCArray']
- vivify_167:
- set $P496, $P495[0]
- unless_null $P496, vivify_168
- new $P496, "Undef"
- vivify_168:
- $P497 = $P494."ACCEPTS"($P496)
- isfalse $I498, $P497
- new $P486, 'Integer'
- set $P486, $I498
- if_487_end:
- if $P486, if_485
-.annotate 'line', 63
- find_lex $P505, "$past"
- find_lex $P506, "$ast"
- $P505."push"($P506)
-.annotate 'line', 64
- find_lex $P511, "$ast"
- $S512 = $P511."pasttype"()
- iseq $I513, $S512, "literal"
- if $I513, if_510
- new $P509, 'Integer'
- set $P509, $I513
- goto if_510_end
- if_510:
-.annotate 'line', 65
- get_hll_global $P514, ["PAST"], "Node"
- find_lex $P515, "$ast"
- unless_null $P515, vivify_169
- $P515 = root_new ['parrot';'ResizablePMCArray']
- vivify_169:
- set $P516, $P515[0]
- unless_null $P516, vivify_170
- new $P516, "Undef"
- vivify_170:
- $P517 = $P514."ACCEPTS"($P516)
- isfalse $I518, $P517
- new $P509, 'Integer'
- set $P509, $I518
- if_510_end:
- if $P509, if_508
- new $P520, "Integer"
- assign $P520, 0
- set $P507, $P520
- goto if_508_end
- if_508:
- find_lex $P519, "$ast"
- set $P507, $P519
- if_508_end:
+ find_lex $P482, "$past"
+ find_lex $P483, "$_"
+ $P484 = $P483."ast"()
+ $P485 = $P482."push"($P484)
+.annotate 'line', 56
+ .return ($P485)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "termish" :subid("36_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_500
.annotate 'line', 66
- store_lex "$lastlit", $P507
-.annotate 'line', 62
- set $P484, $P507
-.annotate 'line', 59
- goto if_485_end
- if_485:
-.annotate 'line', 60
- find_lex $P499, "$lastlit"
- unless_null $P499, vivify_171
- $P499 = root_new ['parrot';'ResizablePMCArray']
- vivify_171:
- set $P500, $P499[0]
- unless_null $P500, vivify_172
- new $P500, "Undef"
- vivify_172:
- find_lex $P501, "$ast"
- unless_null $P501, vivify_173
- $P501 = root_new ['parrot';'ResizablePMCArray']
- vivify_173:
- set $P502, $P501[0]
- unless_null $P502, vivify_174
+ .const 'Sub' $P513 = "37_1282323999.42098"
+ capture_lex $P513
+ new $P499, 'ExceptionHandler'
+ set_addr $P499, control_498
+ $P499."handle_types"(.CONTROL_RETURN)
+ push_eh $P499
+ .lex "self", self
+ .lex "$/", param_500
+.annotate 'line', 67
+ new $P501, "Undef"
+ .lex "$past", $P501
+.annotate 'line', 68
new $P502, "Undef"
+ .lex "$lastlit", $P502
+.annotate 'line', 67
+ get_hll_global $P503, ["PAST"], "Regex"
+ find_lex $P504, "$/"
+ $P505 = $P503."new"("concat" :named("pasttype"), $P504 :named("node"))
+ store_lex "$past", $P505
+.annotate 'line', 68
+ new $P506, "Integer"
+ assign $P506, 0
+ store_lex "$lastlit", $P506
+.annotate 'line', 69
+ find_lex $P508, "$/"
+ unless_null $P508, vivify_174
+ $P508 = root_new ['parrot';'Hash']
vivify_174:
- concat $P503, $P500, $P502
- find_lex $P504, "$lastlit"
- unless_null $P504, vivify_175
- $P504 = root_new ['parrot';'ResizablePMCArray']
- store_lex "$lastlit", $P504
+ set $P509, $P508["noun"]
+ unless_null $P509, vivify_175
+ new $P509, "Undef"
vivify_175:
- set $P504[0], $P503
-.annotate 'line', 59
- set $P484, $P503
- if_485_end:
-.annotate 'line', 57
- set $P481, $P484
- if_482_end:
-.annotate 'line', 55
- .return ($P481)
+ defined $I510, $P509
+ unless $I510, for_undef_176
+ iter $P507, $P509
+ new $P559, 'ExceptionHandler'
+ set_addr $P559, loop558_handler
+ $P559."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P559
+ loop558_test:
+ unless $P507, loop558_done
+ shift $P511, $P507
+ loop558_redo:
+ .const 'Sub' $P513 = "37_1282323999.42098"
+ capture_lex $P513
+ $P513($P511)
+ loop558_next:
+ goto loop558_test
+ loop558_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P560, exception, 'type'
+ eq $P560, .CONTROL_LOOP_NEXT, loop558_next
+ eq $P560, .CONTROL_LOOP_REDO, loop558_redo
+ loop558_done:
+ pop_eh
+ for_undef_176:
+.annotate 'line', 84
+ find_lex $P561, "$/"
+ find_lex $P562, "$past"
+ $P563 = $P561."!make"($P562)
+.annotate 'line', 66
+ .return ($P563)
+ control_498:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P564, exception, "payload"
+ .return ($P564)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.include "except_types.pasm"
-.sub "quantified_atom" :subid("36_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_531
+.sub "_block512" :anon :subid("37_1282323999.42098") :outer("36_1282323999.42098")
+ .param pmc param_515
+.annotate 'line', 70
+ new $P514, "Undef"
+ .lex "$ast", $P514
+ .lex "$_", param_515
+ find_lex $P516, "$_"
+ $P517 = $P516."ast"()
+ store_lex "$ast", $P517
+.annotate 'line', 71
+ find_lex $P520, "$ast"
+ if $P520, if_519
+ set $P518, $P520
+ goto if_519_end
+ if_519:
+.annotate 'line', 72
+ find_lex $P527, "$lastlit"
+ if $P527, if_526
+ set $P525, $P527
+ goto if_526_end
+ if_526:
+ find_lex $P528, "$ast"
+ $S529 = $P528."pasttype"()
+ iseq $I530, $S529, "literal"
+ new $P525, 'Integer'
+ set $P525, $I530
+ if_526_end:
+ if $P525, if_524
+ set $P523, $P525
+ goto if_524_end
+ if_524:
.annotate 'line', 73
- .const 'Sub' $P540 = "37_1280467473.99327"
- capture_lex $P540
- new $P530, 'ExceptionHandler'
- set_addr $P530, control_529
- $P530."handle_types"(.CONTROL_RETURN)
- push_eh $P530
- .lex "self", self
- .lex "$/", param_531
-.annotate 'line', 74
- new $P532, "Undef"
- .lex "$past", $P532
- find_lex $P533, "$/"
- unless_null $P533, vivify_176
- $P533 = root_new ['parrot';'Hash']
- vivify_176:
- set $P534, $P533["atom"]
- unless_null $P534, vivify_177
- new $P534, "Undef"
+ get_hll_global $P531, ["PAST"], "Node"
+ find_lex $P532, "$ast"
+ unless_null $P532, vivify_177
+ $P532 = root_new ['parrot';'ResizablePMCArray']
vivify_177:
- $P535 = $P534."ast"()
- store_lex "$past", $P535
-.annotate 'line', 75
- find_lex $P537, "$/"
- unless_null $P537, vivify_178
- $P537 = root_new ['parrot';'Hash']
+ set $P533, $P532[0]
+ unless_null $P533, vivify_178
+ new $P533, "Undef"
vivify_178:
- set $P538, $P537["quantifier"]
- unless_null $P538, vivify_179
- new $P538, "Undef"
+ $P534 = $P531."ACCEPTS"($P533)
+ isfalse $I535, $P534
+ new $P523, 'Integer'
+ set $P523, $I535
+ if_524_end:
+ if $P523, if_522
+.annotate 'line', 77
+ find_lex $P542, "$past"
+ find_lex $P543, "$ast"
+ $P542."push"($P543)
+.annotate 'line', 78
+ find_lex $P548, "$ast"
+ $S549 = $P548."pasttype"()
+ iseq $I550, $S549, "literal"
+ if $I550, if_547
+ new $P546, 'Integer'
+ set $P546, $I550
+ goto if_547_end
+ if_547:
+.annotate 'line', 79
+ get_hll_global $P551, ["PAST"], "Node"
+ find_lex $P552, "$ast"
+ unless_null $P552, vivify_179
+ $P552 = root_new ['parrot';'ResizablePMCArray']
vivify_179:
- if $P538, if_536
-.annotate 'line', 81
- find_lex $P555, "$/"
- unless_null $P555, vivify_180
- $P555 = root_new ['parrot';'Hash']
+ set $P553, $P552[0]
+ unless_null $P553, vivify_180
+ new $P553, "Undef"
vivify_180:
- set $P556, $P555["backmod"]
- unless_null $P556, vivify_181
- $P556 = root_new ['parrot';'ResizablePMCArray']
+ $P554 = $P551."ACCEPTS"($P553)
+ isfalse $I555, $P554
+ new $P546, 'Integer'
+ set $P546, $I555
+ if_547_end:
+ if $P546, if_545
+ new $P557, "Integer"
+ assign $P557, 0
+ set $P544, $P557
+ goto if_545_end
+ if_545:
+ find_lex $P556, "$ast"
+ set $P544, $P556
+ if_545_end:
+.annotate 'line', 80
+ store_lex "$lastlit", $P544
+.annotate 'line', 76
+ set $P521, $P544
+.annotate 'line', 73
+ goto if_522_end
+ if_522:
+.annotate 'line', 74
+ find_lex $P536, "$lastlit"
+ unless_null $P536, vivify_181
+ $P536 = root_new ['parrot';'ResizablePMCArray']
vivify_181:
- set $P557, $P556[0]
- unless_null $P557, vivify_182
- new $P557, "Undef"
+ set $P537, $P536[0]
+ unless_null $P537, vivify_182
+ new $P537, "Undef"
vivify_182:
- unless $P557, if_554_end
- find_lex $P558, "$past"
- find_lex $P559, "$/"
- unless_null $P559, vivify_183
- $P559 = root_new ['parrot';'Hash']
+ find_lex $P538, "$ast"
+ unless_null $P538, vivify_183
+ $P538 = root_new ['parrot';'ResizablePMCArray']
vivify_183:
- set $P560, $P559["backmod"]
- unless_null $P560, vivify_184
- $P560 = root_new ['parrot';'ResizablePMCArray']
+ set $P539, $P538[0]
+ unless_null $P539, vivify_184
+ new $P539, "Undef"
vivify_184:
- set $P561, $P560[0]
- unless_null $P561, vivify_185
- new $P561, "Undef"
+ concat $P540, $P537, $P539
+ find_lex $P541, "$lastlit"
+ unless_null $P541, vivify_185
+ $P541 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$lastlit", $P541
vivify_185:
- "backmod"($P558, $P561)
- if_554_end:
- goto if_536_end
- if_536:
-.annotate 'line', 75
- .const 'Sub' $P540 = "37_1280467473.99327"
- capture_lex $P540
- $P540()
- if_536_end:
-.annotate 'line', 82
- find_lex $P567, "$past"
- if $P567, if_566
- set $P565, $P567
- goto if_566_end
- if_566:
- find_lex $P568, "$past"
- $P569 = $P568."backtrack"()
- isfalse $I570, $P569
- new $P565, 'Integer'
- set $P565, $I570
- if_566_end:
- if $P565, if_564
- set $P563, $P565
- goto if_564_end
- if_564:
- get_global $P571, "@MODIFIERS"
- unless_null $P571, vivify_189
- $P571 = root_new ['parrot';'ResizablePMCArray']
- vivify_189:
- set $P572, $P571[0]
- unless_null $P572, vivify_190
- $P572 = root_new ['parrot';'Hash']
- vivify_190:
- set $P573, $P572["r"]
- unless_null $P573, vivify_191
- new $P573, "Undef"
- vivify_191:
- set $P563, $P573
- if_564_end:
- unless $P563, if_562_end
-.annotate 'line', 83
- find_lex $P574, "$past"
- $P574."backtrack"("r")
- if_562_end:
-.annotate 'line', 85
- find_lex $P575, "$/"
- find_lex $P576, "$past"
- $P577 = $P575."!make"($P576)
+ set $P541[0], $P540
.annotate 'line', 73
- .return ($P577)
- control_529:
- .local pmc exception
- .get_results (exception)
- getattribute $P578, exception, "payload"
- .return ($P578)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block539" :anon :subid("37_1280467473.99327") :outer("36_1280467473.99327")
-.annotate 'line', 77
- new $P541, "Undef"
- .lex "$qast", $P541
-.annotate 'line', 76
- find_lex $P543, "$past"
- isfalse $I544, $P543
- unless $I544, if_542_end
- find_lex $P545, "$/"
- $P546 = $P545."CURSOR"()
- $P546."panic"("Quantifier follows nothing")
- if_542_end:
-.annotate 'line', 77
- find_lex $P547, "$/"
- unless_null $P547, vivify_186
- $P547 = root_new ['parrot';'Hash']
- vivify_186:
- set $P548, $P547["quantifier"]
- unless_null $P548, vivify_187
- $P548 = root_new ['parrot';'ResizablePMCArray']
- vivify_187:
- set $P549, $P548[0]
- unless_null $P549, vivify_188
- new $P549, "Undef"
- vivify_188:
- $P550 = $P549."ast"()
- store_lex "$qast", $P550
-.annotate 'line', 78
- find_lex $P551, "$qast"
- find_lex $P552, "$past"
- $P551."unshift"($P552)
-.annotate 'line', 79
- find_lex $P553, "$qast"
- store_lex "$past", $P553
-.annotate 'line', 75
- .return ($P553)
+ set $P521, $P540
+ if_522_end:
+.annotate 'line', 71
+ set $P518, $P521
+ if_519_end:
+.annotate 'line', 69
+ .return ($P518)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "atom" :subid("38_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_582
-.annotate 'line', 88
- new $P581, 'ExceptionHandler'
- set_addr $P581, control_580
- $P581."handle_types"(.CONTROL_RETURN)
- push_eh $P581
+.sub "quantified_atom" :subid("38_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_568
+.annotate 'line', 87
+ .const 'Sub' $P577 = "39_1282323999.42098"
+ capture_lex $P577
+ new $P567, 'ExceptionHandler'
+ set_addr $P567, control_566
+ $P567."handle_types"(.CONTROL_RETURN)
+ push_eh $P567
.lex "self", self
- .lex "$/", param_582
-.annotate 'line', 89
- new $P583, "Undef"
- .lex "$past", $P583
+ .lex "$/", param_568
.annotate 'line', 88
- find_lex $P584, "$past"
-.annotate 'line', 90
- find_lex $P586, "$/"
- unless_null $P586, vivify_192
- $P586 = root_new ['parrot';'Hash']
+ new $P569, "Undef"
+ .lex "$past", $P569
+ find_lex $P570, "$/"
+ unless_null $P570, vivify_186
+ $P570 = root_new ['parrot';'Hash']
+ vivify_186:
+ set $P571, $P570["atom"]
+ unless_null $P571, vivify_187
+ new $P571, "Undef"
+ vivify_187:
+ $P572 = $P571."ast"()
+ store_lex "$past", $P572
+.annotate 'line', 89
+ find_lex $P574, "$/"
+ unless_null $P574, vivify_188
+ $P574 = root_new ['parrot';'Hash']
+ vivify_188:
+ set $P575, $P574["quantifier"]
+ unless_null $P575, vivify_189
+ new $P575, "Undef"
+ vivify_189:
+ if $P575, if_573
+.annotate 'line', 95
+ find_lex $P592, "$/"
+ unless_null $P592, vivify_190
+ $P592 = root_new ['parrot';'Hash']
+ vivify_190:
+ set $P593, $P592["backmod"]
+ unless_null $P593, vivify_191
+ $P593 = root_new ['parrot';'ResizablePMCArray']
+ vivify_191:
+ set $P594, $P593[0]
+ unless_null $P594, vivify_192
+ new $P594, "Undef"
vivify_192:
- set $P587, $P586["metachar"]
- unless_null $P587, vivify_193
- new $P587, "Undef"
+ unless $P594, if_591_end
+ find_lex $P595, "$past"
+ find_lex $P596, "$/"
+ unless_null $P596, vivify_193
+ $P596 = root_new ['parrot';'Hash']
vivify_193:
- if $P587, if_585
-.annotate 'line', 92
- get_hll_global $P591, ["PAST"], "Regex"
- find_lex $P592, "$/"
- set $S593, $P592
- find_lex $P594, "$/"
- $P595 = $P591."new"($S593, "literal" :named("pasttype"), $P594 :named("node"))
- store_lex "$past", $P595
-.annotate 'line', 93
- get_global $P597, "@MODIFIERS"
+ set $P597, $P596["backmod"]
unless_null $P597, vivify_194
$P597 = root_new ['parrot';'ResizablePMCArray']
vivify_194:
set $P598, $P597[0]
unless_null $P598, vivify_195
- $P598 = root_new ['parrot';'Hash']
+ new $P598, "Undef"
vivify_195:
- set $P599, $P598["i"]
- unless_null $P599, vivify_196
- new $P599, "Undef"
- vivify_196:
- unless $P599, if_596_end
- find_lex $P600, "$past"
- $P600."subtype"("ignorecase")
- if_596_end:
-.annotate 'line', 91
- goto if_585_end
- if_585:
-.annotate 'line', 90
- find_lex $P588, "$/"
- unless_null $P588, vivify_197
- $P588 = root_new ['parrot';'Hash']
- vivify_197:
- set $P589, $P588["metachar"]
- unless_null $P589, vivify_198
- new $P589, "Undef"
- vivify_198:
- $P590 = $P589."ast"()
- store_lex "$past", $P590
- if_585_end:
-.annotate 'line', 95
- find_lex $P601, "$/"
- find_lex $P602, "$past"
- $P603 = $P601."!make"($P602)
-.annotate 'line', 88
- .return ($P603)
- control_580:
+ "backmod"($P595, $P598)
+ if_591_end:
+ goto if_573_end
+ if_573:
+.annotate 'line', 89
+ .const 'Sub' $P577 = "39_1282323999.42098"
+ capture_lex $P577
+ $P577()
+ if_573_end:
+.annotate 'line', 96
+ find_lex $P604, "$past"
+ if $P604, if_603
+ set $P602, $P604
+ goto if_603_end
+ if_603:
+ find_lex $P605, "$past"
+ $P606 = $P605."backtrack"()
+ isfalse $I607, $P606
+ new $P602, 'Integer'
+ set $P602, $I607
+ if_603_end:
+ if $P602, if_601
+ set $P600, $P602
+ goto if_601_end
+ if_601:
+ get_global $P608, "@MODIFIERS"
+ unless_null $P608, vivify_199
+ $P608 = root_new ['parrot';'ResizablePMCArray']
+ vivify_199:
+ set $P609, $P608[0]
+ unless_null $P609, vivify_200
+ $P609 = root_new ['parrot';'Hash']
+ vivify_200:
+ set $P610, $P609["r"]
+ unless_null $P610, vivify_201
+ new $P610, "Undef"
+ vivify_201:
+ set $P600, $P610
+ if_601_end:
+ unless $P600, if_599_end
+.annotate 'line', 97
+ find_lex $P611, "$past"
+ $P611."backtrack"("r")
+ if_599_end:
+.annotate 'line', 99
+ find_lex $P612, "$/"
+ find_lex $P613, "$past"
+ $P614 = $P612."!make"($P613)
+.annotate 'line', 87
+ .return ($P614)
+ control_566:
.local pmc exception
.get_results (exception)
- getattribute $P604, exception, "payload"
- .return ($P604)
+ getattribute $P615, exception, "payload"
+ .return ($P615)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.include "except_types.pasm"
-.sub "quantifier:sym<*>" :subid("39_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_608
-.annotate 'line', 98
- new $P607, 'ExceptionHandler'
- set_addr $P607, control_606
- $P607."handle_types"(.CONTROL_RETURN)
- push_eh $P607
- .lex "self", self
- .lex "$/", param_608
-.annotate 'line', 99
- new $P609, "Undef"
- .lex "$past", $P609
- get_hll_global $P610, ["PAST"], "Regex"
- find_lex $P611, "$/"
- $P612 = $P610."new"("quant" :named("pasttype"), $P611 :named("node"))
- store_lex "$past", $P612
-.annotate 'line', 100
- find_lex $P613, "$/"
- find_lex $P614, "$past"
- find_lex $P615, "$/"
- unless_null $P615, vivify_199
- $P615 = root_new ['parrot';'Hash']
- vivify_199:
- set $P616, $P615["backmod"]
- unless_null $P616, vivify_200
- new $P616, "Undef"
- vivify_200:
- $P617 = "backmod"($P614, $P616)
- $P618 = $P613."!make"($P617)
-.annotate 'line', 98
- .return ($P618)
- control_606:
- .local pmc exception
- .get_results (exception)
- getattribute $P619, exception, "payload"
- .return ($P619)
+.sub "_block576" :anon :subid("39_1282323999.42098") :outer("38_1282323999.42098")
+.annotate 'line', 91
+ new $P578, "Undef"
+ .lex "$qast", $P578
+.annotate 'line', 90
+ find_lex $P580, "$past"
+ isfalse $I581, $P580
+ unless $I581, if_579_end
+ find_lex $P582, "$/"
+ $P583 = $P582."CURSOR"()
+ $P583."panic"("Quantifier follows nothing")
+ if_579_end:
+.annotate 'line', 91
+ find_lex $P584, "$/"
+ unless_null $P584, vivify_196
+ $P584 = root_new ['parrot';'Hash']
+ vivify_196:
+ set $P585, $P584["quantifier"]
+ unless_null $P585, vivify_197
+ $P585 = root_new ['parrot';'ResizablePMCArray']
+ vivify_197:
+ set $P586, $P585[0]
+ unless_null $P586, vivify_198
+ new $P586, "Undef"
+ vivify_198:
+ $P587 = $P586."ast"()
+ store_lex "$qast", $P587
+.annotate 'line', 92
+ find_lex $P588, "$qast"
+ find_lex $P589, "$past"
+ $P588."unshift"($P589)
+.annotate 'line', 93
+ find_lex $P590, "$qast"
+ store_lex "$past", $P590
+.annotate 'line', 89
+ .return ($P590)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "quantifier:sym<+>" :subid("40_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_623
-.annotate 'line', 103
- new $P622, 'ExceptionHandler'
- set_addr $P622, control_621
- $P622."handle_types"(.CONTROL_RETURN)
- push_eh $P622
+.sub "atom" :subid("40_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_619
+.annotate 'line', 102
+ new $P618, 'ExceptionHandler'
+ set_addr $P618, control_617
+ $P618."handle_types"(.CONTROL_RETURN)
+ push_eh $P618
.lex "self", self
- .lex "$/", param_623
+ .lex "$/", param_619
+.annotate 'line', 103
+ new $P620, "Undef"
+ .lex "$past", $P620
+.annotate 'line', 102
+ find_lex $P621, "$past"
.annotate 'line', 104
+ find_lex $P623, "$/"
+ unless_null $P623, vivify_202
+ $P623 = root_new ['parrot';'Hash']
+ vivify_202:
+ set $P624, $P623["metachar"]
+ unless_null $P624, vivify_203
new $P624, "Undef"
- .lex "$past", $P624
- get_hll_global $P625, ["PAST"], "Regex"
- find_lex $P626, "$/"
- $P627 = $P625."new"("quant" :named("pasttype"), 1 :named("min"), $P626 :named("node"))
- store_lex "$past", $P627
+ vivify_203:
+ if $P624, if_622
+.annotate 'line', 106
+ get_hll_global $P628, ["PAST"], "Regex"
+ find_lex $P629, "$/"
+ set $S630, $P629
+ find_lex $P631, "$/"
+ $P632 = $P628."new"($S630, "literal" :named("pasttype"), $P631 :named("node"))
+ store_lex "$past", $P632
+.annotate 'line', 107
+ get_global $P634, "@MODIFIERS"
+ unless_null $P634, vivify_204
+ $P634 = root_new ['parrot';'ResizablePMCArray']
+ vivify_204:
+ set $P635, $P634[0]
+ unless_null $P635, vivify_205
+ $P635 = root_new ['parrot';'Hash']
+ vivify_205:
+ set $P636, $P635["i"]
+ unless_null $P636, vivify_206
+ new $P636, "Undef"
+ vivify_206:
+ unless $P636, if_633_end
+ find_lex $P637, "$past"
+ $P637."subtype"("ignorecase")
+ if_633_end:
.annotate 'line', 105
- find_lex $P628, "$/"
- find_lex $P629, "$past"
- find_lex $P630, "$/"
- unless_null $P630, vivify_201
- $P630 = root_new ['parrot';'Hash']
- vivify_201:
- set $P631, $P630["backmod"]
- unless_null $P631, vivify_202
- new $P631, "Undef"
- vivify_202:
- $P632 = "backmod"($P629, $P631)
- $P633 = $P628."!make"($P632)
-.annotate 'line', 103
- .return ($P633)
- control_621:
+ goto if_622_end
+ if_622:
+.annotate 'line', 104
+ find_lex $P625, "$/"
+ unless_null $P625, vivify_207
+ $P625 = root_new ['parrot';'Hash']
+ vivify_207:
+ set $P626, $P625["metachar"]
+ unless_null $P626, vivify_208
+ new $P626, "Undef"
+ vivify_208:
+ $P627 = $P626."ast"()
+ store_lex "$past", $P627
+ if_622_end:
+.annotate 'line', 109
+ find_lex $P638, "$/"
+ find_lex $P639, "$past"
+ $P640 = $P638."!make"($P639)
+.annotate 'line', 102
+ .return ($P640)
+ control_617:
.local pmc exception
.get_results (exception)
- getattribute $P634, exception, "payload"
- .return ($P634)
+ getattribute $P641, exception, "payload"
+ .return ($P641)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "quantifier:sym<?>" :subid("41_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_638
-.annotate 'line', 108
- new $P637, 'ExceptionHandler'
- set_addr $P637, control_636
- $P637."handle_types"(.CONTROL_RETURN)
- push_eh $P637
+.sub "quantifier:sym<*>" :subid("41_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_645
+.annotate 'line', 112
+ new $P644, 'ExceptionHandler'
+ set_addr $P644, control_643
+ $P644."handle_types"(.CONTROL_RETURN)
+ push_eh $P644
.lex "self", self
- .lex "$/", param_638
-.annotate 'line', 109
- new $P639, "Undef"
- .lex "$past", $P639
- get_hll_global $P640, ["PAST"], "Regex"
- find_lex $P641, "$/"
- $P642 = $P640."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P641 :named("node"))
- store_lex "$past", $P642
-.annotate 'line', 110
- find_lex $P643, "$/"
- find_lex $P644, "$past"
- find_lex $P645, "$/"
- unless_null $P645, vivify_203
- $P645 = root_new ['parrot';'Hash']
- vivify_203:
- set $P646, $P645["backmod"]
- unless_null $P646, vivify_204
+ .lex "$/", param_645
+.annotate 'line', 113
new $P646, "Undef"
- vivify_204:
- $P647 = "backmod"($P644, $P646)
- $P643."!make"($P647)
-.annotate 'line', 111
+ .lex "$past", $P646
+ get_hll_global $P647, ["PAST"], "Regex"
find_lex $P648, "$/"
- find_lex $P649, "$past"
- $P650 = $P648."!make"($P649)
-.annotate 'line', 108
- .return ($P650)
- control_636:
+ $P649 = $P647."new"("quant" :named("pasttype"), $P648 :named("node"))
+ store_lex "$past", $P649
+.annotate 'line', 114
+ find_lex $P650, "$/"
+ find_lex $P651, "$past"
+ find_lex $P652, "$/"
+ unless_null $P652, vivify_209
+ $P652 = root_new ['parrot';'Hash']
+ vivify_209:
+ set $P653, $P652["backmod"]
+ unless_null $P653, vivify_210
+ new $P653, "Undef"
+ vivify_210:
+ $P654 = "backmod"($P651, $P653)
+ $P655 = $P650."!make"($P654)
+.annotate 'line', 112
+ .return ($P655)
+ control_643:
.local pmc exception
.get_results (exception)
- getattribute $P651, exception, "payload"
- .return ($P651)
+ getattribute $P656, exception, "payload"
+ .return ($P656)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "quantifier:sym<**>" :subid("42_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_655
-.annotate 'line', 114
- .const 'Sub' $P670 = "43_1280467473.99327"
- capture_lex $P670
- new $P654, 'ExceptionHandler'
- set_addr $P654, control_653
- $P654."handle_types"(.CONTROL_RETURN)
- push_eh $P654
- .lex "self", self
- .lex "$/", param_655
-.annotate 'line', 115
- new $P656, "Undef"
- .lex "$past", $P656
-.annotate 'line', 116
- new $P657, "Undef"
- .lex "$ws", $P657
-.annotate 'line', 114
- find_lex $P658, "$past"
-.annotate 'line', 116
- find_lex $P661, "$/"
- unless_null $P661, vivify_205
- $P661 = root_new ['parrot';'Hash']
- vivify_205:
- set $P662, $P661["normspace"]
- unless_null $P662, vivify_206
- new $P662, "Undef"
- vivify_206:
- if $P662, if_660
- set $P659, $P662
- goto if_660_end
- if_660:
- get_global $P663, "@MODIFIERS"
- unless_null $P663, vivify_207
- $P663 = root_new ['parrot';'ResizablePMCArray']
- vivify_207:
- set $P664, $P663[0]
- unless_null $P664, vivify_208
- $P664 = root_new ['parrot';'Hash']
- vivify_208:
- set $P665, $P664["s"]
- unless_null $P665, vivify_209
- new $P665, "Undef"
- vivify_209:
- set $P659, $P665
- if_660_end:
- store_lex "$ws", $P659
+.sub "quantifier:sym<+>" :subid("42_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_660
.annotate 'line', 117
+ new $P659, 'ExceptionHandler'
+ set_addr $P659, control_658
+ $P659."handle_types"(.CONTROL_RETURN)
+ push_eh $P659
+ .lex "self", self
+ .lex "$/", param_660
+.annotate 'line', 118
+ new $P661, "Undef"
+ .lex "$past", $P661
+ get_hll_global $P662, ["PAST"], "Regex"
+ find_lex $P663, "$/"
+ $P664 = $P662."new"("quant" :named("pasttype"), 1 :named("min"), $P663 :named("node"))
+ store_lex "$past", $P664
+.annotate 'line', 119
+ find_lex $P665, "$/"
+ find_lex $P666, "$past"
find_lex $P667, "$/"
- unless_null $P667, vivify_210
+ unless_null $P667, vivify_211
$P667 = root_new ['parrot';'Hash']
- vivify_210:
- set $P668, $P667["quantified_atom"]
- unless_null $P668, vivify_211
- new $P668, "Undef"
vivify_211:
- if $P668, if_666
-.annotate 'line', 133
- get_hll_global $P688, ["PAST"], "Regex"
- find_lex $P689, "$/"
- unless_null $P689, vivify_212
- $P689 = root_new ['parrot';'Hash']
+ set $P668, $P667["backmod"]
+ unless_null $P668, vivify_212
+ new $P668, "Undef"
vivify_212:
- set $P690, $P689["min"]
- unless_null $P690, vivify_213
- new $P690, "Undef"
- vivify_213:
- set $N691, $P690
- find_lex $P692, "$/"
- $P693 = $P688."new"("quant" :named("pasttype"), $N691 :named("min"), $P692 :named("node"))
- store_lex "$past", $P693
-.annotate 'line', 134
- find_lex $P695, "$/"
- unless_null $P695, vivify_214
- $P695 = root_new ['parrot';'Hash']
- vivify_214:
- set $P696, $P695["max"]
- unless_null $P696, vivify_215
- new $P696, "Undef"
- vivify_215:
- isfalse $I697, $P696
- if $I697, if_694
-.annotate 'line', 135
- find_lex $P703, "$/"
- unless_null $P703, vivify_216
- $P703 = root_new ['parrot';'Hash']
- vivify_216:
- set $P704, $P703["max"]
- unless_null $P704, vivify_217
- $P704 = root_new ['parrot';'ResizablePMCArray']
- vivify_217:
- set $P705, $P704[0]
- unless_null $P705, vivify_218
- new $P705, "Undef"
- vivify_218:
- set $S706, $P705
- isne $I707, $S706, "*"
- unless $I707, if_702_end
- find_lex $P708, "$past"
- find_lex $P709, "$/"
- unless_null $P709, vivify_219
- $P709 = root_new ['parrot';'Hash']
- vivify_219:
- set $P710, $P709["max"]
- unless_null $P710, vivify_220
- $P710 = root_new ['parrot';'ResizablePMCArray']
- vivify_220:
- set $P711, $P710[0]
- unless_null $P711, vivify_221
- new $P711, "Undef"
- vivify_221:
- set $N712, $P711
- $P708."max"($N712)
- if_702_end:
- goto if_694_end
- if_694:
-.annotate 'line', 134
- find_lex $P698, "$past"
- find_lex $P699, "$/"
- unless_null $P699, vivify_222
- $P699 = root_new ['parrot';'Hash']
- vivify_222:
- set $P700, $P699["min"]
- unless_null $P700, vivify_223
- new $P700, "Undef"
- vivify_223:
- set $N701, $P700
- $P698."max"($N701)
- if_694_end:
-.annotate 'line', 136
- find_lex $P714, "$ws"
- unless $P714, if_713_end
- find_lex $P715, "$past"
- get_hll_global $P716, ["PAST"], "Regex"
- $P717 = $P716."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
- $P715."sep"($P717)
- if_713_end:
-.annotate 'line', 132
- goto if_666_end
- if_666:
+ $P669 = "backmod"($P666, $P668)
+ $P670 = $P665."!make"($P669)
.annotate 'line', 117
- .const 'Sub' $P670 = "43_1280467473.99327"
- capture_lex $P670
- $P670()
- if_666_end:
-.annotate 'line', 140
- find_lex $P718, "$/"
- find_lex $P719, "$past"
- find_lex $P720, "$/"
- unless_null $P720, vivify_226
- $P720 = root_new ['parrot';'Hash']
- vivify_226:
- set $P721, $P720["backmod"]
- unless_null $P721, vivify_227
- new $P721, "Undef"
- vivify_227:
- $P722 = "backmod"($P719, $P721)
- $P723 = $P718."!make"($P722)
-.annotate 'line', 114
- .return ($P723)
- control_653:
+ .return ($P670)
+ control_658:
.local pmc exception
.get_results (exception)
- getattribute $P724, exception, "payload"
- .return ($P724)
+ getattribute $P671, exception, "payload"
+ .return ($P671)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block669" :anon :subid("43_1280467473.99327") :outer("42_1280467473.99327")
-.annotate 'line', 118
- new $P671, "Undef"
- .lex "$ast", $P671
- find_lex $P672, "$/"
- unless_null $P672, vivify_224
- $P672 = root_new ['parrot';'Hash']
- vivify_224:
- set $P673, $P672["quantified_atom"]
- unless_null $P673, vivify_225
- new $P673, "Undef"
- vivify_225:
- $P674 = $P673."ast"()
- store_lex "$ast", $P674
-.annotate 'line', 119
- find_lex $P676, "$ws"
- unless $P676, if_675_end
-.annotate 'line', 120
- get_hll_global $P677, ["PAST"], "Regex"
+.include "except_types.pasm"
+.sub "quantifier:sym<?>" :subid("43_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_675
.annotate 'line', 122
- get_hll_global $P678, ["PAST"], "Regex"
- $P679 = $P678."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
- find_lex $P680, "$ast"
-.annotate 'line', 125
- get_hll_global $P681, ["PAST"], "Regex"
- $P682 = $P681."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
- $P683 = $P677."new"($P679, $P680, $P682, "concat" :named("pasttype"))
-.annotate 'line', 120
- store_lex "$ast", $P683
- if_675_end:
-.annotate 'line', 129
- get_hll_global $P684, ["PAST"], "Regex"
- find_lex $P685, "$ast"
- find_lex $P686, "$/"
- $P687 = $P684."new"("quant" :named("pasttype"), 1 :named("min"), $P685 :named("sep"), $P686 :named("node"))
- store_lex "$past", $P687
-.annotate 'line', 117
- .return ($P687)
-.end
+ new $P674, 'ExceptionHandler'
+ set_addr $P674, control_673
+ $P674."handle_types"(.CONTROL_RETURN)
+ push_eh $P674
+ .lex "self", self
+ .lex "$/", param_675
+.annotate 'line', 123
+ new $P676, "Undef"
+ .lex "$past", $P676
+ get_hll_global $P677, ["PAST"], "Regex"
+ find_lex $P678, "$/"
+ $P679 = $P677."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P678 :named("node"))
+ store_lex "$past", $P679
+.annotate 'line', 124
+ find_lex $P680, "$/"
+ find_lex $P681, "$past"
+ find_lex $P682, "$/"
+ unless_null $P682, vivify_213
+ $P682 = root_new ['parrot';'Hash']
+ vivify_213:
+ set $P683, $P682["backmod"]
+ unless_null $P683, vivify_214
+ new $P683, "Undef"
+ vivify_214:
+ $P684 = "backmod"($P681, $P683)
+ $P680."!make"($P684)
+.annotate 'line', 125
+ find_lex $P685, "$/"
+ find_lex $P686, "$past"
+ $P687 = $P685."!make"($P686)
+.annotate 'line', 122
+ .return ($P687)
+ control_673:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P688, exception, "payload"
+ .return ($P688)
+.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<ws>" :subid("44_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_728
-.annotate 'line', 143
- new $P727, 'ExceptionHandler'
- set_addr $P727, control_726
- $P727."handle_types"(.CONTROL_RETURN)
- push_eh $P727
+.sub "quantifier:sym<**>" :subid("44_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_692
+.annotate 'line', 128
+ .const 'Sub' $P707 = "45_1282323999.42098"
+ capture_lex $P707
+ new $P691, 'ExceptionHandler'
+ set_addr $P691, control_690
+ $P691."handle_types"(.CONTROL_RETURN)
+ push_eh $P691
.lex "self", self
- .lex "$/", param_728
-.annotate 'line', 144
- new $P729, "Undef"
- .lex "$past", $P729
-.annotate 'line', 145
- get_global $P732, "@MODIFIERS"
- unless_null $P732, vivify_228
- $P732 = root_new ['parrot';'ResizablePMCArray']
+ .lex "$/", param_692
+.annotate 'line', 129
+ new $P693, "Undef"
+ .lex "$past", $P693
+.annotate 'line', 130
+ new $P694, "Undef"
+ .lex "$ws", $P694
+.annotate 'line', 128
+ find_lex $P695, "$past"
+.annotate 'line', 130
+ find_lex $P698, "$/"
+ unless_null $P698, vivify_215
+ $P698 = root_new ['parrot';'Hash']
+ vivify_215:
+ set $P699, $P698["normspace"]
+ unless_null $P699, vivify_216
+ new $P699, "Undef"
+ vivify_216:
+ if $P699, if_697
+ set $P696, $P699
+ goto if_697_end
+ if_697:
+ get_global $P700, "@MODIFIERS"
+ unless_null $P700, vivify_217
+ $P700 = root_new ['parrot';'ResizablePMCArray']
+ vivify_217:
+ set $P701, $P700[0]
+ unless_null $P701, vivify_218
+ $P701 = root_new ['parrot';'Hash']
+ vivify_218:
+ set $P702, $P701["s"]
+ unless_null $P702, vivify_219
+ new $P702, "Undef"
+ vivify_219:
+ set $P696, $P702
+ if_697_end:
+ store_lex "$ws", $P696
+.annotate 'line', 131
+ find_lex $P704, "$/"
+ unless_null $P704, vivify_220
+ $P704 = root_new ['parrot';'Hash']
+ vivify_220:
+ set $P705, $P704["quantified_atom"]
+ unless_null $P705, vivify_221
+ new $P705, "Undef"
+ vivify_221:
+ if $P705, if_703
+.annotate 'line', 147
+ get_hll_global $P725, ["PAST"], "Regex"
+ find_lex $P726, "$/"
+ unless_null $P726, vivify_222
+ $P726 = root_new ['parrot';'Hash']
+ vivify_222:
+ set $P727, $P726["min"]
+ unless_null $P727, vivify_223
+ new $P727, "Undef"
+ vivify_223:
+ set $N728, $P727
+ find_lex $P729, "$/"
+ $P730 = $P725."new"("quant" :named("pasttype"), $N728 :named("min"), $P729 :named("node"))
+ store_lex "$past", $P730
+.annotate 'line', 148
+ find_lex $P732, "$/"
+ unless_null $P732, vivify_224
+ $P732 = root_new ['parrot';'Hash']
+ vivify_224:
+ set $P733, $P732["max"]
+ unless_null $P733, vivify_225
+ new $P733, "Undef"
+ vivify_225:
+ isfalse $I734, $P733
+ if $I734, if_731
+.annotate 'line', 149
+ find_lex $P740, "$/"
+ unless_null $P740, vivify_226
+ $P740 = root_new ['parrot';'Hash']
+ vivify_226:
+ set $P741, $P740["max"]
+ unless_null $P741, vivify_227
+ $P741 = root_new ['parrot';'ResizablePMCArray']
+ vivify_227:
+ set $P742, $P741[0]
+ unless_null $P742, vivify_228
+ new $P742, "Undef"
vivify_228:
- set $P733, $P732[0]
- unless_null $P733, vivify_229
- $P733 = root_new ['parrot';'Hash']
+ set $S743, $P742
+ isne $I744, $S743, "*"
+ unless $I744, if_739_end
+ find_lex $P745, "$past"
+ find_lex $P746, "$/"
+ unless_null $P746, vivify_229
+ $P746 = root_new ['parrot';'Hash']
vivify_229:
- set $P734, $P733["s"]
- unless_null $P734, vivify_230
- new $P734, "Undef"
+ set $P747, $P746["max"]
+ unless_null $P747, vivify_230
+ $P747 = root_new ['parrot';'ResizablePMCArray']
vivify_230:
- if $P734, if_731
- new $P738, "Integer"
- assign $P738, 0
- set $P730, $P738
+ set $P748, $P747[0]
+ unless_null $P748, vivify_231
+ new $P748, "Undef"
+ vivify_231:
+ set $N749, $P748
+ $P745."max"($N749)
+ if_739_end:
goto if_731_end
if_731:
- get_hll_global $P735, ["PAST"], "Regex"
+.annotate 'line', 148
+ find_lex $P735, "$past"
find_lex $P736, "$/"
- $P737 = $P735."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P736 :named("node"))
- set $P730, $P737
+ unless_null $P736, vivify_232
+ $P736 = root_new ['parrot';'Hash']
+ vivify_232:
+ set $P737, $P736["min"]
+ unless_null $P737, vivify_233
+ new $P737, "Undef"
+ vivify_233:
+ set $N738, $P737
+ $P735."max"($N738)
if_731_end:
- store_lex "$past", $P730
-.annotate 'line', 148
- find_lex $P739, "$/"
- find_lex $P740, "$past"
- $P741 = $P739."!make"($P740)
-.annotate 'line', 143
- .return ($P741)
- control_726:
+.annotate 'line', 150
+ find_lex $P751, "$ws"
+ unless $P751, if_750_end
+ find_lex $P752, "$past"
+ get_hll_global $P753, ["PAST"], "Regex"
+ $P754 = $P753."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+ $P752."sep"($P754)
+ if_750_end:
+.annotate 'line', 146
+ goto if_703_end
+ if_703:
+.annotate 'line', 131
+ .const 'Sub' $P707 = "45_1282323999.42098"
+ capture_lex $P707
+ $P707()
+ if_703_end:
+.annotate 'line', 154
+ find_lex $P755, "$/"
+ find_lex $P756, "$past"
+ find_lex $P757, "$/"
+ unless_null $P757, vivify_236
+ $P757 = root_new ['parrot';'Hash']
+ vivify_236:
+ set $P758, $P757["backmod"]
+ unless_null $P758, vivify_237
+ new $P758, "Undef"
+ vivify_237:
+ $P759 = "backmod"($P756, $P758)
+ $P760 = $P755."!make"($P759)
+.annotate 'line', 128
+ .return ($P760)
+ control_690:
.local pmc exception
.get_results (exception)
- getattribute $P742, exception, "payload"
- .return ($P742)
+ getattribute $P761, exception, "payload"
+ .return ($P761)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.include "except_types.pasm"
-.sub "metachar:sym<[ ]>" :subid("45_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_746
-.annotate 'line', 152
- new $P745, 'ExceptionHandler'
- set_addr $P745, control_744
- $P745."handle_types"(.CONTROL_RETURN)
- push_eh $P745
- .lex "self", self
- .lex "$/", param_746
-.annotate 'line', 153
- find_lex $P747, "$/"
- find_lex $P748, "$/"
- unless_null $P748, vivify_231
- $P748 = root_new ['parrot';'Hash']
- vivify_231:
- set $P749, $P748["nibbler"]
- unless_null $P749, vivify_232
- new $P749, "Undef"
- vivify_232:
- $P750 = $P749."ast"()
- $P751 = $P747."!make"($P750)
-.annotate 'line', 152
- .return ($P751)
- control_744:
- .local pmc exception
- .get_results (exception)
- getattribute $P752, exception, "payload"
- .return ($P752)
+.sub "_block706" :anon :subid("45_1282323999.42098") :outer("44_1282323999.42098")
+.annotate 'line', 132
+ new $P708, "Undef"
+ .lex "$ast", $P708
+ find_lex $P709, "$/"
+ unless_null $P709, vivify_234
+ $P709 = root_new ['parrot';'Hash']
+ vivify_234:
+ set $P710, $P709["quantified_atom"]
+ unless_null $P710, vivify_235
+ new $P710, "Undef"
+ vivify_235:
+ $P711 = $P710."ast"()
+ store_lex "$ast", $P711
+.annotate 'line', 133
+ find_lex $P713, "$ws"
+ unless $P713, if_712_end
+.annotate 'line', 134
+ get_hll_global $P714, ["PAST"], "Regex"
+.annotate 'line', 136
+ get_hll_global $P715, ["PAST"], "Regex"
+ $P716 = $P715."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+ find_lex $P717, "$ast"
+.annotate 'line', 139
+ get_hll_global $P718, ["PAST"], "Regex"
+ $P719 = $P718."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+ $P720 = $P714."new"($P716, $P717, $P719, "concat" :named("pasttype"))
+.annotate 'line', 134
+ store_lex "$ast", $P720
+ if_712_end:
+.annotate 'line', 143
+ get_hll_global $P721, ["PAST"], "Regex"
+ find_lex $P722, "$ast"
+ find_lex $P723, "$/"
+ $P724 = $P721."new"("quant" :named("pasttype"), 1 :named("min"), $P722 :named("sep"), $P723 :named("node"))
+ store_lex "$past", $P724
+.annotate 'line', 131
+ .return ($P724)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<( )>" :subid("46_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_756
-.annotate 'line', 156
- new $P755, 'ExceptionHandler'
- set_addr $P755, control_754
- $P755."handle_types"(.CONTROL_RETURN)
- push_eh $P755
- .lex "self", self
- .lex "$/", param_756
+.sub "metachar:sym<ws>" :subid("46_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_765
.annotate 'line', 157
- new $P757, "Undef"
- .lex "$subpast", $P757
+ new $P764, 'ExceptionHandler'
+ set_addr $P764, control_763
+ $P764."handle_types"(.CONTROL_RETURN)
+ push_eh $P764
+ .lex "self", self
+ .lex "$/", param_765
.annotate 'line', 158
- new $P758, "Undef"
- .lex "$past", $P758
+ new $P766, "Undef"
+ .lex "$past", $P766
+.annotate 'line', 159
+ get_global $P769, "@MODIFIERS"
+ unless_null $P769, vivify_238
+ $P769 = root_new ['parrot';'ResizablePMCArray']
+ vivify_238:
+ set $P770, $P769[0]
+ unless_null $P770, vivify_239
+ $P770 = root_new ['parrot';'Hash']
+ vivify_239:
+ set $P771, $P770["s"]
+ unless_null $P771, vivify_240
+ new $P771, "Undef"
+ vivify_240:
+ if $P771, if_768
+ new $P775, "Integer"
+ assign $P775, 0
+ set $P767, $P775
+ goto if_768_end
+ if_768:
+ get_hll_global $P772, ["PAST"], "Regex"
+ find_lex $P773, "$/"
+ $P774 = $P772."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P773 :named("node"))
+ set $P767, $P774
+ if_768_end:
+ store_lex "$past", $P767
+.annotate 'line', 162
+ find_lex $P776, "$/"
+ find_lex $P777, "$past"
+ $P778 = $P776."!make"($P777)
.annotate 'line', 157
- find_lex $P759, "$/"
- unless_null $P759, vivify_233
- $P759 = root_new ['parrot';'Hash']
- vivify_233:
- set $P760, $P759["nibbler"]
- unless_null $P760, vivify_234
- new $P760, "Undef"
- vivify_234:
- $P761 = $P760."ast"()
- $P762 = "buildsub"($P761)
- store_lex "$subpast", $P762
-.annotate 'line', 158
- get_hll_global $P763, ["PAST"], "Regex"
- find_lex $P764, "$subpast"
- find_lex $P765, "$/"
- $P766 = $P763."new"($P764, "subrule" :named("pasttype"), "capture" :named("subtype"), $P765 :named("node"))
- store_lex "$past", $P766
-.annotate 'line', 160
- find_lex $P767, "$/"
- find_lex $P768, "$past"
- $P769 = $P767."!make"($P768)
-.annotate 'line', 156
- .return ($P769)
- control_754:
+ .return ($P778)
+ control_763:
.local pmc exception
.get_results (exception)
- getattribute $P770, exception, "payload"
- .return ($P770)
+ getattribute $P779, exception, "payload"
+ .return ($P779)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<'>" :subid("47_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_774
-.annotate 'line', 163
- new $P773, 'ExceptionHandler'
- set_addr $P773, control_772
- $P773."handle_types"(.CONTROL_RETURN)
- push_eh $P773
- .lex "self", self
- .lex "$/", param_774
-.annotate 'line', 164
- new $P775, "Undef"
- .lex "$quote", $P775
-.annotate 'line', 166
- new $P776, "Undef"
- .lex "$past", $P776
-.annotate 'line', 164
- find_lex $P777, "$/"
- unless_null $P777, vivify_235
- $P777 = root_new ['parrot';'Hash']
- vivify_235:
- set $P778, $P777["quote_EXPR"]
- unless_null $P778, vivify_236
- new $P778, "Undef"
- vivify_236:
- $P779 = $P778."ast"()
- store_lex "$quote", $P779
-.annotate 'line', 165
- get_hll_global $P781, ["PAST"], "Val"
- find_lex $P782, "$quote"
- $P783 = $P781."ACCEPTS"($P782)
- unless $P783, if_780_end
- find_lex $P784, "$quote"
- $P785 = $P784."value"()
- store_lex "$quote", $P785
- if_780_end:
+.sub "metachar:sym<[ ]>" :subid("47_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_783
.annotate 'line', 166
- get_hll_global $P786, ["PAST"], "Regex"
- find_lex $P787, "$quote"
- find_lex $P788, "$/"
- $P789 = $P786."new"($P787, "literal" :named("pasttype"), $P788 :named("node"))
- store_lex "$past", $P789
+ new $P782, 'ExceptionHandler'
+ set_addr $P782, control_781
+ $P782."handle_types"(.CONTROL_RETURN)
+ push_eh $P782
+ .lex "self", self
+ .lex "$/", param_783
.annotate 'line', 167
- get_global $P791, "@MODIFIERS"
- unless_null $P791, vivify_237
- $P791 = root_new ['parrot';'ResizablePMCArray']
- vivify_237:
- set $P792, $P791[0]
- unless_null $P792, vivify_238
- $P792 = root_new ['parrot';'Hash']
- vivify_238:
- set $P793, $P792["i"]
- unless_null $P793, vivify_239
- new $P793, "Undef"
- vivify_239:
- unless $P793, if_790_end
- find_lex $P794, "$past"
- $P794."subtype"("ignorecase")
- if_790_end:
-.annotate 'line', 168
- find_lex $P795, "$/"
- find_lex $P796, "$past"
- $P797 = $P795."!make"($P796)
-.annotate 'line', 163
- .return ($P797)
- control_772:
+ find_lex $P784, "$/"
+ find_lex $P785, "$/"
+ unless_null $P785, vivify_241
+ $P785 = root_new ['parrot';'Hash']
+ vivify_241:
+ set $P786, $P785["nibbler"]
+ unless_null $P786, vivify_242
+ new $P786, "Undef"
+ vivify_242:
+ $P787 = $P786."ast"()
+ $P788 = $P784."!make"($P787)
+.annotate 'line', 166
+ .return ($P788)
+ control_781:
.local pmc exception
.get_results (exception)
- getattribute $P798, exception, "payload"
- .return ($P798)
+ getattribute $P789, exception, "payload"
+ .return ($P789)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<\">" :subid("48_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_802
-.annotate 'line', 171
- new $P801, 'ExceptionHandler'
- set_addr $P801, control_800
- $P801."handle_types"(.CONTROL_RETURN)
- push_eh $P801
+.sub "metachar:sym<( )>" :subid("48_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_793
+.annotate 'line', 170
+ new $P792, 'ExceptionHandler'
+ set_addr $P792, control_791
+ $P792."handle_types"(.CONTROL_RETURN)
+ push_eh $P792
.lex "self", self
- .lex "$/", param_802
-.annotate 'line', 172
- new $P803, "Undef"
- .lex "$quote", $P803
-.annotate 'line', 174
- new $P804, "Undef"
- .lex "$past", $P804
+ .lex "$/", param_793
+.annotate 'line', 171
+ new $P794, "Undef"
+ .lex "$subpast", $P794
.annotate 'line', 172
- find_lex $P805, "$/"
- unless_null $P805, vivify_240
- $P805 = root_new ['parrot';'Hash']
- vivify_240:
- set $P806, $P805["quote_EXPR"]
- unless_null $P806, vivify_241
- new $P806, "Undef"
- vivify_241:
- $P807 = $P806."ast"()
- store_lex "$quote", $P807
-.annotate 'line', 173
- get_hll_global $P809, ["PAST"], "Val"
- find_lex $P810, "$quote"
- $P811 = $P809."ACCEPTS"($P810)
- unless $P811, if_808_end
- find_lex $P812, "$quote"
- $P813 = $P812."value"()
- store_lex "$quote", $P813
- if_808_end:
-.annotate 'line', 174
- get_hll_global $P814, ["PAST"], "Regex"
- find_lex $P815, "$quote"
- find_lex $P816, "$/"
- $P817 = $P814."new"($P815, "literal" :named("pasttype"), $P816 :named("node"))
- store_lex "$past", $P817
-.annotate 'line', 175
- get_global $P819, "@MODIFIERS"
- unless_null $P819, vivify_242
- $P819 = root_new ['parrot';'ResizablePMCArray']
- vivify_242:
- set $P820, $P819[0]
- unless_null $P820, vivify_243
- $P820 = root_new ['parrot';'Hash']
+ new $P795, "Undef"
+ .lex "$past", $P795
+.annotate 'line', 171
+ find_lex $P796, "$/"
+ unless_null $P796, vivify_243
+ $P796 = root_new ['parrot';'Hash']
vivify_243:
- set $P821, $P820["i"]
- unless_null $P821, vivify_244
- new $P821, "Undef"
+ set $P797, $P796["nibbler"]
+ unless_null $P797, vivify_244
+ new $P797, "Undef"
vivify_244:
- unless $P821, if_818_end
- find_lex $P822, "$past"
- $P822."subtype"("ignorecase")
- if_818_end:
-.annotate 'line', 176
- find_lex $P823, "$/"
- find_lex $P824, "$past"
- $P825 = $P823."!make"($P824)
-.annotate 'line', 171
- .return ($P825)
- control_800:
+ $P798 = $P797."ast"()
+ $P799 = "buildsub"($P798)
+ store_lex "$subpast", $P799
+.annotate 'line', 172
+ get_hll_global $P800, ["PAST"], "Regex"
+ find_lex $P801, "$subpast"
+ find_lex $P802, "$/"
+ $P803 = $P800."new"($P801, "subrule" :named("pasttype"), "capture" :named("subtype"), $P802 :named("node"))
+ store_lex "$past", $P803
+.annotate 'line', 174
+ find_lex $P804, "$/"
+ find_lex $P805, "$past"
+ $P806 = $P804."!make"($P805)
+.annotate 'line', 170
+ .return ($P806)
+ control_791:
.local pmc exception
.get_results (exception)
- getattribute $P826, exception, "payload"
- .return ($P826)
+ getattribute $P807, exception, "payload"
+ .return ($P807)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<.>" :subid("49_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_830
-.annotate 'line', 179
- new $P829, 'ExceptionHandler'
- set_addr $P829, control_828
- $P829."handle_types"(.CONTROL_RETURN)
- push_eh $P829
+.sub "metachar:sym<'>" :subid("49_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_811
+.annotate 'line', 177
+ new $P810, 'ExceptionHandler'
+ set_addr $P810, control_809
+ $P810."handle_types"(.CONTROL_RETURN)
+ push_eh $P810
.lex "self", self
- .lex "$/", param_830
+ .lex "$/", param_811
+.annotate 'line', 178
+ new $P812, "Undef"
+ .lex "$quote", $P812
.annotate 'line', 180
- new $P831, "Undef"
- .lex "$past", $P831
- get_hll_global $P832, ["PAST"], "Regex"
- find_lex $P833, "$/"
- $P834 = $P832."new"("charclass" :named("pasttype"), "." :named("subtype"), $P833 :named("node"))
- store_lex "$past", $P834
-.annotate 'line', 181
- find_lex $P835, "$/"
- find_lex $P836, "$past"
- $P837 = $P835."!make"($P836)
+ new $P813, "Undef"
+ .lex "$past", $P813
+.annotate 'line', 178
+ find_lex $P814, "$/"
+ unless_null $P814, vivify_245
+ $P814 = root_new ['parrot';'Hash']
+ vivify_245:
+ set $P815, $P814["quote_EXPR"]
+ unless_null $P815, vivify_246
+ new $P815, "Undef"
+ vivify_246:
+ $P816 = $P815."ast"()
+ store_lex "$quote", $P816
.annotate 'line', 179
- .return ($P837)
- control_828:
+ get_hll_global $P818, ["PAST"], "Val"
+ find_lex $P819, "$quote"
+ $P820 = $P818."ACCEPTS"($P819)
+ unless $P820, if_817_end
+ find_lex $P821, "$quote"
+ $P822 = $P821."value"()
+ store_lex "$quote", $P822
+ if_817_end:
+.annotate 'line', 180
+ get_hll_global $P823, ["PAST"], "Regex"
+ find_lex $P824, "$quote"
+ find_lex $P825, "$/"
+ $P826 = $P823."new"($P824, "literal" :named("pasttype"), $P825 :named("node"))
+ store_lex "$past", $P826
+.annotate 'line', 181
+ get_global $P828, "@MODIFIERS"
+ unless_null $P828, vivify_247
+ $P828 = root_new ['parrot';'ResizablePMCArray']
+ vivify_247:
+ set $P829, $P828[0]
+ unless_null $P829, vivify_248
+ $P829 = root_new ['parrot';'Hash']
+ vivify_248:
+ set $P830, $P829["i"]
+ unless_null $P830, vivify_249
+ new $P830, "Undef"
+ vivify_249:
+ unless $P830, if_827_end
+ find_lex $P831, "$past"
+ $P831."subtype"("ignorecase")
+ if_827_end:
+.annotate 'line', 182
+ find_lex $P832, "$/"
+ find_lex $P833, "$past"
+ $P834 = $P832."!make"($P833)
+.annotate 'line', 177
+ .return ($P834)
+ control_809:
.local pmc exception
.get_results (exception)
- getattribute $P838, exception, "payload"
- .return ($P838)
+ getattribute $P835, exception, "payload"
+ .return ($P835)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<^>" :subid("50_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_842
-.annotate 'line', 184
- new $P841, 'ExceptionHandler'
- set_addr $P841, control_840
- $P841."handle_types"(.CONTROL_RETURN)
- push_eh $P841
- .lex "self", self
- .lex "$/", param_842
+.sub "metachar:sym<\">" :subid("50_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_839
.annotate 'line', 185
- new $P843, "Undef"
- .lex "$past", $P843
- get_hll_global $P844, ["PAST"], "Regex"
- find_lex $P845, "$/"
- $P846 = $P844."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P845 :named("node"))
- store_lex "$past", $P846
+ new $P838, 'ExceptionHandler'
+ set_addr $P838, control_837
+ $P838."handle_types"(.CONTROL_RETURN)
+ push_eh $P838
+ .lex "self", self
+ .lex "$/", param_839
.annotate 'line', 186
- find_lex $P847, "$/"
- find_lex $P848, "$past"
- $P849 = $P847."!make"($P848)
-.annotate 'line', 184
- .return ($P849)
- control_840:
- .local pmc exception
- .get_results (exception)
- getattribute $P850, exception, "payload"
- .return ($P850)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.include "except_types.pasm"
-.sub "metachar:sym<^^>" :subid("51_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_854
+ new $P840, "Undef"
+ .lex "$quote", $P840
+.annotate 'line', 188
+ new $P841, "Undef"
+ .lex "$past", $P841
+.annotate 'line', 186
+ find_lex $P842, "$/"
+ unless_null $P842, vivify_250
+ $P842 = root_new ['parrot';'Hash']
+ vivify_250:
+ set $P843, $P842["quote_EXPR"]
+ unless_null $P843, vivify_251
+ new $P843, "Undef"
+ vivify_251:
+ $P844 = $P843."ast"()
+ store_lex "$quote", $P844
+.annotate 'line', 187
+ get_hll_global $P846, ["PAST"], "Val"
+ find_lex $P847, "$quote"
+ $P848 = $P846."ACCEPTS"($P847)
+ unless $P848, if_845_end
+ find_lex $P849, "$quote"
+ $P850 = $P849."value"()
+ store_lex "$quote", $P850
+ if_845_end:
+.annotate 'line', 188
+ get_hll_global $P851, ["PAST"], "Regex"
+ find_lex $P852, "$quote"
+ find_lex $P853, "$/"
+ $P854 = $P851."new"($P852, "literal" :named("pasttype"), $P853 :named("node"))
+ store_lex "$past", $P854
.annotate 'line', 189
- new $P853, 'ExceptionHandler'
- set_addr $P853, control_852
- $P853."handle_types"(.CONTROL_RETURN)
- push_eh $P853
- .lex "self", self
- .lex "$/", param_854
+ get_global $P856, "@MODIFIERS"
+ unless_null $P856, vivify_252
+ $P856 = root_new ['parrot';'ResizablePMCArray']
+ vivify_252:
+ set $P857, $P856[0]
+ unless_null $P857, vivify_253
+ $P857 = root_new ['parrot';'Hash']
+ vivify_253:
+ set $P858, $P857["i"]
+ unless_null $P858, vivify_254
+ new $P858, "Undef"
+ vivify_254:
+ unless $P858, if_855_end
+ find_lex $P859, "$past"
+ $P859."subtype"("ignorecase")
+ if_855_end:
.annotate 'line', 190
- new $P855, "Undef"
- .lex "$past", $P855
- get_hll_global $P856, ["PAST"], "Regex"
- find_lex $P857, "$/"
- $P858 = $P856."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P857 :named("node"))
- store_lex "$past", $P858
-.annotate 'line', 191
- find_lex $P859, "$/"
- find_lex $P860, "$past"
- $P861 = $P859."!make"($P860)
-.annotate 'line', 189
- .return ($P861)
- control_852:
+ find_lex $P860, "$/"
+ find_lex $P861, "$past"
+ $P862 = $P860."!make"($P861)
+.annotate 'line', 185
+ .return ($P862)
+ control_837:
.local pmc exception
.get_results (exception)
- getattribute $P862, exception, "payload"
- .return ($P862)
+ getattribute $P863, exception, "payload"
+ .return ($P863)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<$>" :subid("52_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_866
-.annotate 'line', 194
- new $P865, 'ExceptionHandler'
- set_addr $P865, control_864
- $P865."handle_types"(.CONTROL_RETURN)
- push_eh $P865
+.sub "metachar:sym<.>" :subid("51_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_867
+.annotate 'line', 193
+ new $P866, 'ExceptionHandler'
+ set_addr $P866, control_865
+ $P866."handle_types"(.CONTROL_RETURN)
+ push_eh $P866
.lex "self", self
- .lex "$/", param_866
-.annotate 'line', 195
- new $P867, "Undef"
- .lex "$past", $P867
- get_hll_global $P868, ["PAST"], "Regex"
- find_lex $P869, "$/"
- $P870 = $P868."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P869 :named("node"))
- store_lex "$past", $P870
-.annotate 'line', 196
- find_lex $P871, "$/"
- find_lex $P872, "$past"
- $P873 = $P871."!make"($P872)
+ .lex "$/", param_867
.annotate 'line', 194
- .return ($P873)
- control_864:
+ new $P868, "Undef"
+ .lex "$past", $P868
+ get_hll_global $P869, ["PAST"], "Regex"
+ find_lex $P870, "$/"
+ $P871 = $P869."new"("charclass" :named("pasttype"), "." :named("subtype"), $P870 :named("node"))
+ store_lex "$past", $P871
+.annotate 'line', 195
+ find_lex $P872, "$/"
+ find_lex $P873, "$past"
+ $P874 = $P872."!make"($P873)
+.annotate 'line', 193
+ .return ($P874)
+ control_865:
.local pmc exception
.get_results (exception)
- getattribute $P874, exception, "payload"
- .return ($P874)
+ getattribute $P875, exception, "payload"
+ .return ($P875)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<$$>" :subid("53_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_878
-.annotate 'line', 199
- new $P877, 'ExceptionHandler'
- set_addr $P877, control_876
- $P877."handle_types"(.CONTROL_RETURN)
- push_eh $P877
+.sub "metachar:sym<^>" :subid("52_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_879
+.annotate 'line', 198
+ new $P878, 'ExceptionHandler'
+ set_addr $P878, control_877
+ $P878."handle_types"(.CONTROL_RETURN)
+ push_eh $P878
.lex "self", self
- .lex "$/", param_878
-.annotate 'line', 200
- new $P879, "Undef"
- .lex "$past", $P879
- get_hll_global $P880, ["PAST"], "Regex"
- find_lex $P881, "$/"
- $P882 = $P880."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P881 :named("node"))
- store_lex "$past", $P882
-.annotate 'line', 201
- find_lex $P883, "$/"
- find_lex $P884, "$past"
- $P885 = $P883."!make"($P884)
+ .lex "$/", param_879
.annotate 'line', 199
- .return ($P885)
- control_876:
+ new $P880, "Undef"
+ .lex "$past", $P880
+ get_hll_global $P881, ["PAST"], "Regex"
+ find_lex $P882, "$/"
+ $P883 = $P881."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P882 :named("node"))
+ store_lex "$past", $P883
+.annotate 'line', 200
+ find_lex $P884, "$/"
+ find_lex $P885, "$past"
+ $P886 = $P884."!make"($P885)
+.annotate 'line', 198
+ .return ($P886)
+ control_877:
.local pmc exception
.get_results (exception)
- getattribute $P886, exception, "payload"
- .return ($P886)
+ getattribute $P887, exception, "payload"
+ .return ($P887)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<:::>" :subid("54_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_890
-.annotate 'line', 204
- new $P889, 'ExceptionHandler'
- set_addr $P889, control_888
- $P889."handle_types"(.CONTROL_RETURN)
- push_eh $P889
+.sub "metachar:sym<^^>" :subid("53_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_891
+.annotate 'line', 203
+ new $P890, 'ExceptionHandler'
+ set_addr $P890, control_889
+ $P890."handle_types"(.CONTROL_RETURN)
+ push_eh $P890
.lex "self", self
- .lex "$/", param_890
-.annotate 'line', 205
- new $P891, "Undef"
- .lex "$past", $P891
- get_hll_global $P892, ["PAST"], "Regex"
- find_lex $P893, "$/"
- $P894 = $P892."new"("cut" :named("pasttype"), $P893 :named("node"))
- store_lex "$past", $P894
-.annotate 'line', 206
- find_lex $P895, "$/"
- find_lex $P896, "$past"
- $P897 = $P895."!make"($P896)
+ .lex "$/", param_891
.annotate 'line', 204
- .return ($P897)
- control_888:
+ new $P892, "Undef"
+ .lex "$past", $P892
+ get_hll_global $P893, ["PAST"], "Regex"
+ find_lex $P894, "$/"
+ $P895 = $P893."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P894 :named("node"))
+ store_lex "$past", $P895
+.annotate 'line', 205
+ find_lex $P896, "$/"
+ find_lex $P897, "$past"
+ $P898 = $P896."!make"($P897)
+.annotate 'line', 203
+ .return ($P898)
+ control_889:
.local pmc exception
.get_results (exception)
- getattribute $P898, exception, "payload"
- .return ($P898)
+ getattribute $P899, exception, "payload"
+ .return ($P899)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<lwb>" :subid("55_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_902
-.annotate 'line', 209
- new $P901, 'ExceptionHandler'
- set_addr $P901, control_900
- $P901."handle_types"(.CONTROL_RETURN)
- push_eh $P901
+.sub "metachar:sym<$>" :subid("54_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_903
+.annotate 'line', 208
+ new $P902, 'ExceptionHandler'
+ set_addr $P902, control_901
+ $P902."handle_types"(.CONTROL_RETURN)
+ push_eh $P902
.lex "self", self
- .lex "$/", param_902
-.annotate 'line', 210
- new $P903, "Undef"
- .lex "$past", $P903
- get_hll_global $P904, ["PAST"], "Regex"
- find_lex $P905, "$/"
- $P906 = $P904."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P905 :named("node"))
- store_lex "$past", $P906
-.annotate 'line', 211
- find_lex $P907, "$/"
- find_lex $P908, "$past"
- $P909 = $P907."!make"($P908)
+ .lex "$/", param_903
.annotate 'line', 209
- .return ($P909)
- control_900:
+ new $P904, "Undef"
+ .lex "$past", $P904
+ get_hll_global $P905, ["PAST"], "Regex"
+ find_lex $P906, "$/"
+ $P907 = $P905."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P906 :named("node"))
+ store_lex "$past", $P907
+.annotate 'line', 210
+ find_lex $P908, "$/"
+ find_lex $P909, "$past"
+ $P910 = $P908."!make"($P909)
+.annotate 'line', 208
+ .return ($P910)
+ control_901:
.local pmc exception
.get_results (exception)
- getattribute $P910, exception, "payload"
- .return ($P910)
+ getattribute $P911, exception, "payload"
+ .return ($P911)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<rwb>" :subid("56_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_914
-.annotate 'line', 214
- new $P913, 'ExceptionHandler'
- set_addr $P913, control_912
- $P913."handle_types"(.CONTROL_RETURN)
- push_eh $P913
+.sub "metachar:sym<$$>" :subid("55_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_915
+.annotate 'line', 213
+ new $P914, 'ExceptionHandler'
+ set_addr $P914, control_913
+ $P914."handle_types"(.CONTROL_RETURN)
+ push_eh $P914
.lex "self", self
- .lex "$/", param_914
-.annotate 'line', 215
- new $P915, "Undef"
- .lex "$past", $P915
- get_hll_global $P916, ["PAST"], "Regex"
- find_lex $P917, "$/"
- $P918 = $P916."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P917 :named("node"))
- store_lex "$past", $P918
-.annotate 'line', 216
- find_lex $P919, "$/"
- find_lex $P920, "$past"
- $P921 = $P919."!make"($P920)
+ .lex "$/", param_915
.annotate 'line', 214
- .return ($P921)
- control_912:
+ new $P916, "Undef"
+ .lex "$past", $P916
+ get_hll_global $P917, ["PAST"], "Regex"
+ find_lex $P918, "$/"
+ $P919 = $P917."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P918 :named("node"))
+ store_lex "$past", $P919
+.annotate 'line', 215
+ find_lex $P920, "$/"
+ find_lex $P921, "$past"
+ $P922 = $P920."!make"($P921)
+.annotate 'line', 213
+ .return ($P922)
+ control_913:
.local pmc exception
.get_results (exception)
- getattribute $P922, exception, "payload"
- .return ($P922)
+ getattribute $P923, exception, "payload"
+ .return ($P923)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<bs>" :subid("57_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_926
-.annotate 'line', 219
- new $P925, 'ExceptionHandler'
- set_addr $P925, control_924
- $P925."handle_types"(.CONTROL_RETURN)
- push_eh $P925
+.sub "metachar:sym<:::>" :subid("56_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_927
+.annotate 'line', 218
+ new $P926, 'ExceptionHandler'
+ set_addr $P926, control_925
+ $P926."handle_types"(.CONTROL_RETURN)
+ push_eh $P926
.lex "self", self
- .lex "$/", param_926
-.annotate 'line', 220
- find_lex $P927, "$/"
- find_lex $P928, "$/"
- unless_null $P928, vivify_245
- $P928 = root_new ['parrot';'Hash']
- vivify_245:
- set $P929, $P928["backslash"]
- unless_null $P929, vivify_246
- new $P929, "Undef"
- vivify_246:
- $P930 = $P929."ast"()
- $P931 = $P927."!make"($P930)
+ .lex "$/", param_927
.annotate 'line', 219
- .return ($P931)
- control_924:
+ new $P928, "Undef"
+ .lex "$past", $P928
+ get_hll_global $P929, ["PAST"], "Regex"
+ find_lex $P930, "$/"
+ $P931 = $P929."new"("cut" :named("pasttype"), $P930 :named("node"))
+ store_lex "$past", $P931
+.annotate 'line', 220
+ find_lex $P932, "$/"
+ find_lex $P933, "$past"
+ $P934 = $P932."!make"($P933)
+.annotate 'line', 218
+ .return ($P934)
+ control_925:
.local pmc exception
.get_results (exception)
- getattribute $P932, exception, "payload"
- .return ($P932)
+ getattribute $P935, exception, "payload"
+ .return ($P935)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<mod>" :subid("58_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_936
+.sub "metachar:sym<lwb>" :subid("57_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_939
.annotate 'line', 223
- new $P935, 'ExceptionHandler'
- set_addr $P935, control_934
- $P935."handle_types"(.CONTROL_RETURN)
- push_eh $P935
+ new $P938, 'ExceptionHandler'
+ set_addr $P938, control_937
+ $P938."handle_types"(.CONTROL_RETURN)
+ push_eh $P938
.lex "self", self
- .lex "$/", param_936
+ .lex "$/", param_939
.annotate 'line', 224
- find_lex $P937, "$/"
- find_lex $P938, "$/"
- unless_null $P938, vivify_247
- $P938 = root_new ['parrot';'Hash']
- vivify_247:
- set $P939, $P938["mod_internal"]
- unless_null $P939, vivify_248
- new $P939, "Undef"
- vivify_248:
- $P940 = $P939."ast"()
- $P941 = $P937."!make"($P940)
+ new $P940, "Undef"
+ .lex "$past", $P940
+ get_hll_global $P941, ["PAST"], "Regex"
+ find_lex $P942, "$/"
+ $P943 = $P941."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P942 :named("node"))
+ store_lex "$past", $P943
+.annotate 'line', 225
+ find_lex $P944, "$/"
+ find_lex $P945, "$past"
+ $P946 = $P944."!make"($P945)
.annotate 'line', 223
- .return ($P941)
- control_934:
+ .return ($P946)
+ control_937:
.local pmc exception
.get_results (exception)
- getattribute $P942, exception, "payload"
- .return ($P942)
+ getattribute $P947, exception, "payload"
+ .return ($P947)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<assert>" :subid("59_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_946
-.annotate 'line', 227
- new $P945, 'ExceptionHandler'
- set_addr $P945, control_944
- $P945."handle_types"(.CONTROL_RETURN)
- push_eh $P945
- .lex "self", self
- .lex "$/", param_946
+.sub "metachar:sym<rwb>" :subid("58_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_951
.annotate 'line', 228
- find_lex $P947, "$/"
- find_lex $P948, "$/"
- unless_null $P948, vivify_249
- $P948 = root_new ['parrot';'Hash']
- vivify_249:
- set $P949, $P948["assertion"]
- unless_null $P949, vivify_250
- new $P949, "Undef"
- vivify_250:
- $P950 = $P949."ast"()
- $P951 = $P947."!make"($P950)
-.annotate 'line', 227
- .return ($P951)
- control_944:
+ new $P950, 'ExceptionHandler'
+ set_addr $P950, control_949
+ $P950."handle_types"(.CONTROL_RETURN)
+ push_eh $P950
+ .lex "self", self
+ .lex "$/", param_951
+.annotate 'line', 229
+ new $P952, "Undef"
+ .lex "$past", $P952
+ get_hll_global $P953, ["PAST"], "Regex"
+ find_lex $P954, "$/"
+ $P955 = $P953."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P954 :named("node"))
+ store_lex "$past", $P955
+.annotate 'line', 230
+ find_lex $P956, "$/"
+ find_lex $P957, "$past"
+ $P958 = $P956."!make"($P957)
+.annotate 'line', 228
+ .return ($P958)
+ control_949:
.local pmc exception
.get_results (exception)
- getattribute $P952, exception, "payload"
- .return ($P952)
+ getattribute $P959, exception, "payload"
+ .return ($P959)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<~>" :subid("60_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_956
-.annotate 'line', 231
- new $P955, 'ExceptionHandler'
- set_addr $P955, control_954
- $P955."handle_types"(.CONTROL_RETURN)
- push_eh $P955
- .lex "self", self
- .lex "$/", param_956
-.annotate 'line', 232
- find_lex $P957, "$/"
- get_hll_global $P958, ["PAST"], "Regex"
+.sub "metachar:sym<bs>" :subid("59_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_963
.annotate 'line', 233
- find_lex $P959, "$/"
- unless_null $P959, vivify_251
- $P959 = root_new ['parrot';'Hash']
- vivify_251:
- set $P960, $P959["EXPR"]
- unless_null $P960, vivify_252
- new $P960, "Undef"
- vivify_252:
- $P961 = $P960."ast"()
+ new $P962, 'ExceptionHandler'
+ set_addr $P962, control_961
+ $P962."handle_types"(.CONTROL_RETURN)
+ push_eh $P962
+ .lex "self", self
+ .lex "$/", param_963
.annotate 'line', 234
- get_hll_global $P962, ["PAST"], "Regex"
-.annotate 'line', 235
- find_lex $P963, "$/"
- unless_null $P963, vivify_253
- $P963 = root_new ['parrot';'Hash']
- vivify_253:
- set $P964, $P963["GOAL"]
- unless_null $P964, vivify_254
- new $P964, "Undef"
- vivify_254:
- $P965 = $P964."ast"()
-.annotate 'line', 236
- get_hll_global $P966, ["PAST"], "Regex"
- find_lex $P967, "$/"
- unless_null $P967, vivify_255
- $P967 = root_new ['parrot';'Hash']
+ find_lex $P964, "$/"
+ find_lex $P965, "$/"
+ unless_null $P965, vivify_255
+ $P965 = root_new ['parrot';'Hash']
vivify_255:
- set $P968, $P967["GOAL"]
- unless_null $P968, vivify_256
- new $P968, "Undef"
+ set $P966, $P965["backslash"]
+ unless_null $P966, vivify_256
+ new $P966, "Undef"
vivify_256:
- set $S969, $P968
- $P970 = $P966."new"("FAILGOAL", $S969, "subrule" :named("pasttype"), "method" :named("subtype"))
- $P971 = $P962."new"($P965, $P970, "alt" :named("pasttype"))
-.annotate 'line', 234
- $P972 = $P958."new"($P961, $P971, "concat" :named("pasttype"))
-.annotate 'line', 232
- $P973 = $P957."!make"($P972)
-.annotate 'line', 231
- .return ($P973)
- control_954:
+ $P967 = $P966."ast"()
+ $P968 = $P964."!make"($P967)
+.annotate 'line', 233
+ .return ($P968)
+ control_961:
.local pmc exception
.get_results (exception)
- getattribute $P974, exception, "payload"
- .return ($P974)
+ getattribute $P969, exception, "payload"
+ .return ($P969)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<{*}>" :subid("61_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_978
-.annotate 'line', 244
- new $P977, 'ExceptionHandler'
- set_addr $P977, control_976
- $P977."handle_types"(.CONTROL_RETURN)
- push_eh $P977
+.sub "metachar:sym<mod>" :subid("60_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_973
+.annotate 'line', 237
+ new $P972, 'ExceptionHandler'
+ set_addr $P972, control_971
+ $P972."handle_types"(.CONTROL_RETURN)
+ push_eh $P972
.lex "self", self
- .lex "$/", param_978
-.annotate 'line', 245
- new $P979, "Undef"
- .lex "$past", $P979
-.annotate 'line', 246
- find_lex $P982, "$/"
- unless_null $P982, vivify_257
- $P982 = root_new ['parrot';'Hash']
+ .lex "$/", param_973
+.annotate 'line', 238
+ find_lex $P974, "$/"
+ find_lex $P975, "$/"
+ unless_null $P975, vivify_257
+ $P975 = root_new ['parrot';'Hash']
vivify_257:
- set $P983, $P982["key"]
- unless_null $P983, vivify_258
- new $P983, "Undef"
+ set $P976, $P975["mod_internal"]
+ unless_null $P976, vivify_258
+ new $P976, "Undef"
vivify_258:
- if $P983, if_981
- new $P991, "Integer"
- assign $P991, 0
- set $P980, $P991
- goto if_981_end
- if_981:
- get_hll_global $P984, ["PAST"], "Regex"
+ $P977 = $P976."ast"()
+ $P978 = $P974."!make"($P977)
+.annotate 'line', 237
+ .return ($P978)
+ control_971:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P979, exception, "payload"
+ .return ($P979)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "metachar:sym<assert>" :subid("61_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_983
+.annotate 'line', 241
+ new $P982, 'ExceptionHandler'
+ set_addr $P982, control_981
+ $P982."handle_types"(.CONTROL_RETURN)
+ push_eh $P982
+ .lex "self", self
+ .lex "$/", param_983
+.annotate 'line', 242
+ find_lex $P984, "$/"
find_lex $P985, "$/"
unless_null $P985, vivify_259
$P985 = root_new ['parrot';'Hash']
vivify_259:
- set $P986, $P985["key"]
+ set $P986, $P985["assertion"]
unless_null $P986, vivify_260
- $P986 = root_new ['parrot';'ResizablePMCArray']
+ new $P986, "Undef"
vivify_260:
- set $P987, $P986[0]
- unless_null $P987, vivify_261
- new $P987, "Undef"
- vivify_261:
- set $S988, $P987
- find_lex $P989, "$/"
- $P990 = $P984."new"($S988, "reduce" :named("pasttype"), $P989 :named("node"))
- set $P980, $P990
- if_981_end:
- store_lex "$past", $P980
-.annotate 'line', 248
- find_lex $P992, "$/"
- find_lex $P993, "$past"
- $P994 = $P992."!make"($P993)
-.annotate 'line', 244
- .return ($P994)
- control_976:
+ $P987 = $P986."ast"()
+ $P988 = $P984."!make"($P987)
+.annotate 'line', 241
+ .return ($P988)
+ control_981:
.local pmc exception
.get_results (exception)
- getattribute $P995, exception, "payload"
- .return ($P995)
+ getattribute $P989, exception, "payload"
+ .return ($P989)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<var>" :subid("62_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_999
-.annotate 'line', 251
- new $P998, 'ExceptionHandler'
- set_addr $P998, control_997
- $P998."handle_types"(.CONTROL_RETURN)
- push_eh $P998
+.sub "metachar:sym<~>" :subid("62_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_993
+.annotate 'line', 245
+ new $P992, 'ExceptionHandler'
+ set_addr $P992, control_991
+ $P992."handle_types"(.CONTROL_RETURN)
+ push_eh $P992
.lex "self", self
- .lex "$/", param_999
-.annotate 'line', 252
- new $P1000, "Undef"
- .lex "$past", $P1000
-.annotate 'line', 253
- new $P1001, "Undef"
- .lex "$name", $P1001
-.annotate 'line', 251
- find_lex $P1002, "$past"
-.annotate 'line', 253
- find_lex $P1005, "$/"
- unless_null $P1005, vivify_262
- $P1005 = root_new ['parrot';'Hash']
+ .lex "$/", param_993
+.annotate 'line', 246
+ find_lex $P994, "$/"
+ get_hll_global $P995, ["PAST"], "Regex"
+.annotate 'line', 247
+ find_lex $P996, "$/"
+ unless_null $P996, vivify_261
+ $P996 = root_new ['parrot';'Hash']
+ vivify_261:
+ set $P997, $P996["EXPR"]
+ unless_null $P997, vivify_262
+ new $P997, "Undef"
vivify_262:
- set $P1006, $P1005["pos"]
- unless_null $P1006, vivify_263
- new $P1006, "Undef"
+ $P998 = $P997."ast"()
+.annotate 'line', 248
+ get_hll_global $P999, ["PAST"], "Regex"
+.annotate 'line', 249
+ find_lex $P1000, "$/"
+ unless_null $P1000, vivify_263
+ $P1000 = root_new ['parrot';'Hash']
vivify_263:
- if $P1006, if_1004
- find_lex $P1010, "$/"
- unless_null $P1010, vivify_264
- $P1010 = root_new ['parrot';'Hash']
+ set $P1001, $P1000["GOAL"]
+ unless_null $P1001, vivify_264
+ new $P1001, "Undef"
vivify_264:
- set $P1011, $P1010["name"]
- unless_null $P1011, vivify_265
- new $P1011, "Undef"
+ $P1002 = $P1001."ast"()
+.annotate 'line', 250
+ get_hll_global $P1003, ["PAST"], "Regex"
+ find_lex $P1004, "$/"
+ unless_null $P1004, vivify_265
+ $P1004 = root_new ['parrot';'Hash']
vivify_265:
- set $S1012, $P1011
- new $P1003, 'String'
- set $P1003, $S1012
- goto if_1004_end
- if_1004:
- find_lex $P1007, "$/"
- unless_null $P1007, vivify_266
- $P1007 = root_new ['parrot';'Hash']
+ set $P1005, $P1004["GOAL"]
+ unless_null $P1005, vivify_266
+ new $P1005, "Undef"
vivify_266:
- set $P1008, $P1007["pos"]
- unless_null $P1008, vivify_267
- new $P1008, "Undef"
- vivify_267:
- set $N1009, $P1008
- new $P1003, 'Float'
- set $P1003, $N1009
- if_1004_end:
- store_lex "$name", $P1003
-.annotate 'line', 254
- find_lex $P1014, "$/"
- unless_null $P1014, vivify_268
- $P1014 = root_new ['parrot';'Hash']
- vivify_268:
- set $P1015, $P1014["quantified_atom"]
- unless_null $P1015, vivify_269
- new $P1015, "Undef"
- vivify_269:
- if $P1015, if_1013
-.annotate 'line', 265
- get_hll_global $P1046, ["PAST"], "Regex"
- find_lex $P1047, "$name"
- find_lex $P1048, "$/"
- $P1049 = $P1046."new"("!BACKREF", $P1047, "subrule" :named("pasttype"), "method" :named("subtype"), $P1048 :named("node"))
- store_lex "$past", $P1049
-.annotate 'line', 264
- goto if_1013_end
- if_1013:
-.annotate 'line', 255
- find_lex $P1016, "$/"
- unless_null $P1016, vivify_270
- $P1016 = root_new ['parrot';'Hash']
- vivify_270:
- set $P1017, $P1016["quantified_atom"]
- unless_null $P1017, vivify_271
- $P1017 = root_new ['parrot';'ResizablePMCArray']
- vivify_271:
- set $P1018, $P1017[0]
- unless_null $P1018, vivify_272
- new $P1018, "Undef"
- vivify_272:
- $P1019 = $P1018."ast"()
- store_lex "$past", $P1019
-.annotate 'line', 256
- find_lex $P1023, "$past"
- $S1024 = $P1023."pasttype"()
- iseq $I1025, $S1024, "quant"
- if $I1025, if_1022
- new $P1021, 'Integer'
- set $P1021, $I1025
- goto if_1022_end
- if_1022:
- find_lex $P1026, "$past"
- unless_null $P1026, vivify_273
- $P1026 = root_new ['parrot';'ResizablePMCArray']
- vivify_273:
- set $P1027, $P1026[0]
- unless_null $P1027, vivify_274
- new $P1027, "Undef"
- vivify_274:
- $S1028 = $P1027."pasttype"()
- iseq $I1029, $S1028, "subrule"
- new $P1021, 'Integer'
- set $P1021, $I1029
- if_1022_end:
- if $P1021, if_1020
-.annotate 'line', 259
- find_lex $P1035, "$past"
- $S1036 = $P1035."pasttype"()
- iseq $I1037, $S1036, "subrule"
- if $I1037, if_1034
-.annotate 'line', 261
- get_hll_global $P1041, ["PAST"], "Regex"
- find_lex $P1042, "$past"
- find_lex $P1043, "$name"
- find_lex $P1044, "$/"
- $P1045 = $P1041."new"($P1042, $P1043 :named("name"), "subcapture" :named("pasttype"), $P1044 :named("node"))
- store_lex "$past", $P1045
-.annotate 'line', 260
- goto if_1034_end
- if_1034:
-.annotate 'line', 259
- find_lex $P1038, "self"
- find_lex $P1039, "$past"
- find_lex $P1040, "$name"
- $P1038."subrule_alias"($P1039, $P1040)
- if_1034_end:
- goto if_1020_end
- if_1020:
-.annotate 'line', 257
- find_lex $P1030, "self"
- find_lex $P1031, "$past"
- unless_null $P1031, vivify_275
- $P1031 = root_new ['parrot';'ResizablePMCArray']
- vivify_275:
- set $P1032, $P1031[0]
- unless_null $P1032, vivify_276
- new $P1032, "Undef"
- vivify_276:
- find_lex $P1033, "$name"
- $P1030."subrule_alias"($P1032, $P1033)
- if_1020_end:
- if_1013_end:
-.annotate 'line', 268
- find_lex $P1050, "$/"
- find_lex $P1051, "$past"
- $P1052 = $P1050."!make"($P1051)
-.annotate 'line', 251
- .return ($P1052)
- control_997:
+ set $S1006, $P1005
+ $P1007 = $P1003."new"("FAILGOAL", $S1006, "subrule" :named("pasttype"), "method" :named("subtype"))
+ $P1008 = $P999."new"($P1002, $P1007, "alt" :named("pasttype"))
+.annotate 'line', 248
+ $P1009 = $P995."new"($P998, $P1008, "concat" :named("pasttype"))
+.annotate 'line', 246
+ $P1010 = $P994."!make"($P1009)
+.annotate 'line', 245
+ .return ($P1010)
+ control_991:
.local pmc exception
.get_results (exception)
- getattribute $P1053, exception, "payload"
- .return ($P1053)
+ getattribute $P1011, exception, "payload"
+ .return ($P1011)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<PIR>" :subid("63_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1057
-.annotate 'line', 271
- new $P1056, 'ExceptionHandler'
- set_addr $P1056, control_1055
- $P1056."handle_types"(.CONTROL_RETURN)
- push_eh $P1056
- .lex "self", self
- .lex "$/", param_1057
-.annotate 'line', 272
- find_lex $P1058, "$/"
- get_hll_global $P1059, ["PAST"], "Regex"
-.annotate 'line', 273
- get_hll_global $P1060, ["PAST"], "Op"
- find_lex $P1061, "$/"
- unless_null $P1061, vivify_277
- $P1061 = root_new ['parrot';'Hash']
- vivify_277:
- set $P1062, $P1061["pir"]
- unless_null $P1062, vivify_278
- new $P1062, "Undef"
- vivify_278:
- set $S1063, $P1062
- $P1064 = $P1060."new"($S1063 :named("inline"), "inline" :named("pasttype"))
- find_lex $P1065, "$/"
- $P1066 = $P1059."new"($P1064, "pastnode" :named("pasttype"), $P1065 :named("node"))
-.annotate 'line', 272
- $P1067 = $P1058."!make"($P1066)
-.annotate 'line', 271
- .return ($P1067)
- control_1055:
+.sub "metachar:sym<{*}>" :subid("63_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1015
+.annotate 'line', 258
+ new $P1014, 'ExceptionHandler'
+ set_addr $P1014, control_1013
+ $P1014."handle_types"(.CONTROL_RETURN)
+ push_eh $P1014
+ .lex "self", self
+ .lex "$/", param_1015
+.annotate 'line', 259
+ new $P1016, "Undef"
+ .lex "$past", $P1016
+.annotate 'line', 260
+ find_lex $P1019, "$/"
+ unless_null $P1019, vivify_267
+ $P1019 = root_new ['parrot';'Hash']
+ vivify_267:
+ set $P1020, $P1019["key"]
+ unless_null $P1020, vivify_268
+ new $P1020, "Undef"
+ vivify_268:
+ if $P1020, if_1018
+ new $P1028, "Integer"
+ assign $P1028, 0
+ set $P1017, $P1028
+ goto if_1018_end
+ if_1018:
+ get_hll_global $P1021, ["PAST"], "Regex"
+ find_lex $P1022, "$/"
+ unless_null $P1022, vivify_269
+ $P1022 = root_new ['parrot';'Hash']
+ vivify_269:
+ set $P1023, $P1022["key"]
+ unless_null $P1023, vivify_270
+ $P1023 = root_new ['parrot';'ResizablePMCArray']
+ vivify_270:
+ set $P1024, $P1023[0]
+ unless_null $P1024, vivify_271
+ new $P1024, "Undef"
+ vivify_271:
+ set $S1025, $P1024
+ find_lex $P1026, "$/"
+ $P1027 = $P1021."new"($S1025, "reduce" :named("pasttype"), $P1026 :named("node"))
+ set $P1017, $P1027
+ if_1018_end:
+ store_lex "$past", $P1017
+.annotate 'line', 262
+ find_lex $P1029, "$/"
+ find_lex $P1030, "$past"
+ $P1031 = $P1029."!make"($P1030)
+.annotate 'line', 258
+ .return ($P1031)
+ control_1013:
.local pmc exception
.get_results (exception)
- getattribute $P1068, exception, "payload"
- .return ($P1068)
+ getattribute $P1032, exception, "payload"
+ .return ($P1032)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<w>" :subid("64_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1072
-.annotate 'line', 279
- new $P1071, 'ExceptionHandler'
- set_addr $P1071, control_1070
- $P1071."handle_types"(.CONTROL_RETURN)
- push_eh $P1071
- .lex "self", self
- .lex "$/", param_1072
-.annotate 'line', 280
- new $P1073, "Undef"
- .lex "$subtype", $P1073
-.annotate 'line', 281
- new $P1074, "Undef"
- .lex "$past", $P1074
-.annotate 'line', 280
- find_lex $P1077, "$/"
- unless_null $P1077, vivify_279
- $P1077 = root_new ['parrot';'Hash']
- vivify_279:
- set $P1078, $P1077["sym"]
- unless_null $P1078, vivify_280
- new $P1078, "Undef"
+.sub "metachar:sym<var>" :subid("64_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1036
+.annotate 'line', 265
+ new $P1035, 'ExceptionHandler'
+ set_addr $P1035, control_1034
+ $P1035."handle_types"(.CONTROL_RETURN)
+ push_eh $P1035
+ .lex "self", self
+ .lex "$/", param_1036
+.annotate 'line', 266
+ new $P1037, "Undef"
+ .lex "$past", $P1037
+.annotate 'line', 267
+ new $P1038, "Undef"
+ .lex "$name", $P1038
+.annotate 'line', 265
+ find_lex $P1039, "$past"
+.annotate 'line', 267
+ find_lex $P1042, "$/"
+ unless_null $P1042, vivify_272
+ $P1042 = root_new ['parrot';'Hash']
+ vivify_272:
+ set $P1043, $P1042["pos"]
+ unless_null $P1043, vivify_273
+ new $P1043, "Undef"
+ vivify_273:
+ if $P1043, if_1041
+ find_lex $P1047, "$/"
+ unless_null $P1047, vivify_274
+ $P1047 = root_new ['parrot';'Hash']
+ vivify_274:
+ set $P1048, $P1047["name"]
+ unless_null $P1048, vivify_275
+ new $P1048, "Undef"
+ vivify_275:
+ set $S1049, $P1048
+ new $P1040, 'String'
+ set $P1040, $S1049
+ goto if_1041_end
+ if_1041:
+ find_lex $P1044, "$/"
+ unless_null $P1044, vivify_276
+ $P1044 = root_new ['parrot';'Hash']
+ vivify_276:
+ set $P1045, $P1044["pos"]
+ unless_null $P1045, vivify_277
+ new $P1045, "Undef"
+ vivify_277:
+ set $N1046, $P1045
+ new $P1040, 'Float'
+ set $P1040, $N1046
+ if_1041_end:
+ store_lex "$name", $P1040
+.annotate 'line', 268
+ find_lex $P1051, "$/"
+ unless_null $P1051, vivify_278
+ $P1051 = root_new ['parrot';'Hash']
+ vivify_278:
+ set $P1052, $P1051["quantified_atom"]
+ unless_null $P1052, vivify_279
+ new $P1052, "Undef"
+ vivify_279:
+ if $P1052, if_1050
+.annotate 'line', 279
+ get_hll_global $P1083, ["PAST"], "Regex"
+ find_lex $P1084, "$name"
+ find_lex $P1085, "$/"
+ $P1086 = $P1083."new"("!BACKREF", $P1084, "subrule" :named("pasttype"), "method" :named("subtype"), $P1085 :named("node"))
+ store_lex "$past", $P1086
+.annotate 'line', 278
+ goto if_1050_end
+ if_1050:
+.annotate 'line', 269
+ find_lex $P1053, "$/"
+ unless_null $P1053, vivify_280
+ $P1053 = root_new ['parrot';'Hash']
vivify_280:
- set $S1079, $P1078
- iseq $I1080, $S1079, "n"
- if $I1080, if_1076
- find_lex $P1082, "$/"
- unless_null $P1082, vivify_281
- $P1082 = root_new ['parrot';'Hash']
+ set $P1054, $P1053["quantified_atom"]
+ unless_null $P1054, vivify_281
+ $P1054 = root_new ['parrot';'ResizablePMCArray']
vivify_281:
- set $P1083, $P1082["sym"]
- unless_null $P1083, vivify_282
- new $P1083, "Undef"
+ set $P1055, $P1054[0]
+ unless_null $P1055, vivify_282
+ new $P1055, "Undef"
vivify_282:
- set $S1084, $P1083
- new $P1075, 'String'
- set $P1075, $S1084
- goto if_1076_end
- if_1076:
- new $P1081, "String"
- assign $P1081, "nl"
- set $P1075, $P1081
- if_1076_end:
- store_lex "$subtype", $P1075
-.annotate 'line', 281
- get_hll_global $P1085, ["PAST"], "Regex"
- find_lex $P1086, "$subtype"
- find_lex $P1087, "$/"
- $P1088 = $P1085."new"("charclass" :named("pasttype"), $P1086 :named("subtype"), $P1087 :named("node"))
- store_lex "$past", $P1088
+ $P1056 = $P1055."ast"()
+ store_lex "$past", $P1056
+.annotate 'line', 270
+ find_lex $P1060, "$past"
+ $S1061 = $P1060."pasttype"()
+ iseq $I1062, $S1061, "quant"
+ if $I1062, if_1059
+ new $P1058, 'Integer'
+ set $P1058, $I1062
+ goto if_1059_end
+ if_1059:
+ find_lex $P1063, "$past"
+ unless_null $P1063, vivify_283
+ $P1063 = root_new ['parrot';'ResizablePMCArray']
+ vivify_283:
+ set $P1064, $P1063[0]
+ unless_null $P1064, vivify_284
+ new $P1064, "Undef"
+ vivify_284:
+ $S1065 = $P1064."pasttype"()
+ iseq $I1066, $S1065, "subrule"
+ new $P1058, 'Integer'
+ set $P1058, $I1066
+ if_1059_end:
+ if $P1058, if_1057
+.annotate 'line', 273
+ find_lex $P1072, "$past"
+ $S1073 = $P1072."pasttype"()
+ iseq $I1074, $S1073, "subrule"
+ if $I1074, if_1071
+.annotate 'line', 275
+ get_hll_global $P1078, ["PAST"], "Regex"
+ find_lex $P1079, "$past"
+ find_lex $P1080, "$name"
+ find_lex $P1081, "$/"
+ $P1082 = $P1078."new"($P1079, $P1080 :named("name"), "subcapture" :named("pasttype"), $P1081 :named("node"))
+ store_lex "$past", $P1082
+.annotate 'line', 274
+ goto if_1071_end
+ if_1071:
+.annotate 'line', 273
+ find_lex $P1075, "self"
+ find_lex $P1076, "$past"
+ find_lex $P1077, "$name"
+ $P1075."subrule_alias"($P1076, $P1077)
+ if_1071_end:
+ goto if_1057_end
+ if_1057:
+.annotate 'line', 271
+ find_lex $P1067, "self"
+ find_lex $P1068, "$past"
+ unless_null $P1068, vivify_285
+ $P1068 = root_new ['parrot';'ResizablePMCArray']
+ vivify_285:
+ set $P1069, $P1068[0]
+ unless_null $P1069, vivify_286
+ new $P1069, "Undef"
+ vivify_286:
+ find_lex $P1070, "$name"
+ $P1067."subrule_alias"($P1069, $P1070)
+ if_1057_end:
+ if_1050_end:
.annotate 'line', 282
- find_lex $P1089, "$/"
- find_lex $P1090, "$past"
- $P1091 = $P1089."!make"($P1090)
-.annotate 'line', 279
- .return ($P1091)
- control_1070:
+ find_lex $P1087, "$/"
+ find_lex $P1088, "$past"
+ $P1089 = $P1087."!make"($P1088)
+.annotate 'line', 265
+ .return ($P1089)
+ control_1034:
.local pmc exception
.get_results (exception)
- getattribute $P1092, exception, "payload"
- .return ($P1092)
+ getattribute $P1090, exception, "payload"
+ .return ($P1090)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<b>" :subid("65_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1096
+.sub "metachar:sym<PIR>" :subid("65_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1094
.annotate 'line', 285
- new $P1095, 'ExceptionHandler'
- set_addr $P1095, control_1094
- $P1095."handle_types"(.CONTROL_RETURN)
- push_eh $P1095
+ new $P1093, 'ExceptionHandler'
+ set_addr $P1093, control_1092
+ $P1093."handle_types"(.CONTROL_RETURN)
+ push_eh $P1093
.lex "self", self
- .lex "$/", param_1096
+ .lex "$/", param_1094
.annotate 'line', 286
- new $P1097, "Undef"
- .lex "$past", $P1097
- get_hll_global $P1098, ["PAST"], "Regex"
+ find_lex $P1095, "$/"
+ get_hll_global $P1096, ["PAST"], "Regex"
.annotate 'line', 287
- find_lex $P1099, "$/"
- unless_null $P1099, vivify_283
- $P1099 = root_new ['parrot';'Hash']
- vivify_283:
- set $P1100, $P1099["sym"]
- unless_null $P1100, vivify_284
- new $P1100, "Undef"
- vivify_284:
- set $S1101, $P1100
- iseq $I1102, $S1101, "B"
- find_lex $P1103, "$/"
- $P1104 = $P1098."new"("\b", "enumcharlist" :named("pasttype"), $I1102 :named("negate"), $P1103 :named("node"))
+ get_hll_global $P1097, ["PAST"], "Op"
+ find_lex $P1098, "$/"
+ unless_null $P1098, vivify_287
+ $P1098 = root_new ['parrot';'Hash']
+ vivify_287:
+ set $P1099, $P1098["pir"]
+ unless_null $P1099, vivify_288
+ new $P1099, "Undef"
+ vivify_288:
+ set $S1100, $P1099
+ $P1101 = $P1097."new"($S1100 :named("inline"), "inline" :named("pasttype"))
+ find_lex $P1102, "$/"
+ $P1103 = $P1096."new"($P1101, "pastnode" :named("pasttype"), $P1102 :named("node"))
.annotate 'line', 286
- store_lex "$past", $P1104
-.annotate 'line', 288
- find_lex $P1105, "$/"
- find_lex $P1106, "$past"
- $P1107 = $P1105."!make"($P1106)
+ $P1104 = $P1095."!make"($P1103)
.annotate 'line', 285
- .return ($P1107)
- control_1094:
+ .return ($P1104)
+ control_1092:
.local pmc exception
.get_results (exception)
- getattribute $P1108, exception, "payload"
- .return ($P1108)
+ getattribute $P1105, exception, "payload"
+ .return ($P1105)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<e>" :subid("66_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1112
-.annotate 'line', 291
- new $P1111, 'ExceptionHandler'
- set_addr $P1111, control_1110
- $P1111."handle_types"(.CONTROL_RETURN)
- push_eh $P1111
- .lex "self", self
- .lex "$/", param_1112
-.annotate 'line', 292
- new $P1113, "Undef"
- .lex "$past", $P1113
- get_hll_global $P1114, ["PAST"], "Regex"
+.sub "backslash:sym<w>" :subid("66_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1109
.annotate 'line', 293
- find_lex $P1115, "$/"
- unless_null $P1115, vivify_285
- $P1115 = root_new ['parrot';'Hash']
- vivify_285:
- set $P1116, $P1115["sym"]
- unless_null $P1116, vivify_286
- new $P1116, "Undef"
- vivify_286:
- set $S1117, $P1116
- iseq $I1118, $S1117, "E"
- find_lex $P1119, "$/"
- $P1120 = $P1114."new"("\e", "enumcharlist" :named("pasttype"), $I1118 :named("negate"), $P1119 :named("node"))
-.annotate 'line', 292
- store_lex "$past", $P1120
+ new $P1108, 'ExceptionHandler'
+ set_addr $P1108, control_1107
+ $P1108."handle_types"(.CONTROL_RETURN)
+ push_eh $P1108
+ .lex "self", self
+ .lex "$/", param_1109
+.annotate 'line', 294
+ new $P1110, "Undef"
+ .lex "$subtype", $P1110
+.annotate 'line', 295
+ new $P1111, "Undef"
+ .lex "$past", $P1111
.annotate 'line', 294
- find_lex $P1121, "$/"
- find_lex $P1122, "$past"
- $P1123 = $P1121."!make"($P1122)
-.annotate 'line', 291
- .return ($P1123)
- control_1110:
+ find_lex $P1114, "$/"
+ unless_null $P1114, vivify_289
+ $P1114 = root_new ['parrot';'Hash']
+ vivify_289:
+ set $P1115, $P1114["sym"]
+ unless_null $P1115, vivify_290
+ new $P1115, "Undef"
+ vivify_290:
+ set $S1116, $P1115
+ iseq $I1117, $S1116, "n"
+ if $I1117, if_1113
+ find_lex $P1119, "$/"
+ unless_null $P1119, vivify_291
+ $P1119 = root_new ['parrot';'Hash']
+ vivify_291:
+ set $P1120, $P1119["sym"]
+ unless_null $P1120, vivify_292
+ new $P1120, "Undef"
+ vivify_292:
+ set $S1121, $P1120
+ new $P1112, 'String'
+ set $P1112, $S1121
+ goto if_1113_end
+ if_1113:
+ new $P1118, "String"
+ assign $P1118, "nl"
+ set $P1112, $P1118
+ if_1113_end:
+ store_lex "$subtype", $P1112
+.annotate 'line', 295
+ get_hll_global $P1122, ["PAST"], "Regex"
+ find_lex $P1123, "$subtype"
+ find_lex $P1124, "$/"
+ $P1125 = $P1122."new"("charclass" :named("pasttype"), $P1123 :named("subtype"), $P1124 :named("node"))
+ store_lex "$past", $P1125
+.annotate 'line', 296
+ find_lex $P1126, "$/"
+ find_lex $P1127, "$past"
+ $P1128 = $P1126."!make"($P1127)
+.annotate 'line', 293
+ .return ($P1128)
+ control_1107:
.local pmc exception
.get_results (exception)
- getattribute $P1124, exception, "payload"
- .return ($P1124)
+ getattribute $P1129, exception, "payload"
+ .return ($P1129)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<f>" :subid("67_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1128
-.annotate 'line', 297
- new $P1127, 'ExceptionHandler'
- set_addr $P1127, control_1126
- $P1127."handle_types"(.CONTROL_RETURN)
- push_eh $P1127
- .lex "self", self
- .lex "$/", param_1128
-.annotate 'line', 298
- new $P1129, "Undef"
- .lex "$past", $P1129
- get_hll_global $P1130, ["PAST"], "Regex"
+.sub "backslash:sym<b>" :subid("67_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1133
.annotate 'line', 299
- find_lex $P1131, "$/"
- unless_null $P1131, vivify_287
- $P1131 = root_new ['parrot';'Hash']
- vivify_287:
- set $P1132, $P1131["sym"]
- unless_null $P1132, vivify_288
- new $P1132, "Undef"
- vivify_288:
- set $S1133, $P1132
- iseq $I1134, $S1133, "F"
- find_lex $P1135, "$/"
- $P1136 = $P1130."new"("\f", "enumcharlist" :named("pasttype"), $I1134 :named("negate"), $P1135 :named("node"))
-.annotate 'line', 298
- store_lex "$past", $P1136
+ new $P1132, 'ExceptionHandler'
+ set_addr $P1132, control_1131
+ $P1132."handle_types"(.CONTROL_RETURN)
+ push_eh $P1132
+ .lex "self", self
+ .lex "$/", param_1133
.annotate 'line', 300
- find_lex $P1137, "$/"
- find_lex $P1138, "$past"
- $P1139 = $P1137."!make"($P1138)
-.annotate 'line', 297
- .return ($P1139)
- control_1126:
+ new $P1134, "Undef"
+ .lex "$past", $P1134
+ get_hll_global $P1135, ["PAST"], "Regex"
+.annotate 'line', 301
+ find_lex $P1136, "$/"
+ unless_null $P1136, vivify_293
+ $P1136 = root_new ['parrot';'Hash']
+ vivify_293:
+ set $P1137, $P1136["sym"]
+ unless_null $P1137, vivify_294
+ new $P1137, "Undef"
+ vivify_294:
+ set $S1138, $P1137
+ iseq $I1139, $S1138, "B"
+ find_lex $P1140, "$/"
+ $P1141 = $P1135."new"("\b", "enumcharlist" :named("pasttype"), $I1139 :named("negate"), $P1140 :named("node"))
+.annotate 'line', 300
+ store_lex "$past", $P1141
+.annotate 'line', 302
+ find_lex $P1142, "$/"
+ find_lex $P1143, "$past"
+ $P1144 = $P1142."!make"($P1143)
+.annotate 'line', 299
+ .return ($P1144)
+ control_1131:
.local pmc exception
.get_results (exception)
- getattribute $P1140, exception, "payload"
- .return ($P1140)
+ getattribute $P1145, exception, "payload"
+ .return ($P1145)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<h>" :subid("68_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1144
-.annotate 'line', 303
- new $P1143, 'ExceptionHandler'
- set_addr $P1143, control_1142
- $P1143."handle_types"(.CONTROL_RETURN)
- push_eh $P1143
- .lex "self", self
- .lex "$/", param_1144
-.annotate 'line', 304
- new $P1145, "Undef"
- .lex "$past", $P1145
- get_hll_global $P1146, ["PAST"], "Regex"
+.sub "backslash:sym<e>" :subid("68_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1149
.annotate 'line', 305
- find_lex $P1147, "$/"
- unless_null $P1147, vivify_289
- $P1147 = root_new ['parrot';'Hash']
- vivify_289:
- set $P1148, $P1147["sym"]
- unless_null $P1148, vivify_290
- new $P1148, "Undef"
- vivify_290:
- set $S1149, $P1148
- iseq $I1150, $S1149, "H"
- find_lex $P1151, "$/"
- $P1152 = $P1146."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1150 :named("negate"), $P1151 :named("node"))
-.annotate 'line', 304
- store_lex "$past", $P1152
+ new $P1148, 'ExceptionHandler'
+ set_addr $P1148, control_1147
+ $P1148."handle_types"(.CONTROL_RETURN)
+ push_eh $P1148
+ .lex "self", self
+ .lex "$/", param_1149
+.annotate 'line', 306
+ new $P1150, "Undef"
+ .lex "$past", $P1150
+ get_hll_global $P1151, ["PAST"], "Regex"
+.annotate 'line', 307
+ find_lex $P1152, "$/"
+ unless_null $P1152, vivify_295
+ $P1152 = root_new ['parrot';'Hash']
+ vivify_295:
+ set $P1153, $P1152["sym"]
+ unless_null $P1153, vivify_296
+ new $P1153, "Undef"
+ vivify_296:
+ set $S1154, $P1153
+ iseq $I1155, $S1154, "E"
+ find_lex $P1156, "$/"
+ $P1157 = $P1151."new"("\e", "enumcharlist" :named("pasttype"), $I1155 :named("negate"), $P1156 :named("node"))
.annotate 'line', 306
- find_lex $P1153, "$/"
- find_lex $P1154, "$past"
- $P1155 = $P1153."!make"($P1154)
-.annotate 'line', 303
- .return ($P1155)
- control_1142:
+ store_lex "$past", $P1157
+.annotate 'line', 308
+ find_lex $P1158, "$/"
+ find_lex $P1159, "$past"
+ $P1160 = $P1158."!make"($P1159)
+.annotate 'line', 305
+ .return ($P1160)
+ control_1147:
.local pmc exception
.get_results (exception)
- getattribute $P1156, exception, "payload"
- .return ($P1156)
+ getattribute $P1161, exception, "payload"
+ .return ($P1161)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<r>" :subid("69_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1160
-.annotate 'line', 309
- new $P1159, 'ExceptionHandler'
- set_addr $P1159, control_1158
- $P1159."handle_types"(.CONTROL_RETURN)
- push_eh $P1159
- .lex "self", self
- .lex "$/", param_1160
-.annotate 'line', 310
- new $P1161, "Undef"
- .lex "$past", $P1161
- get_hll_global $P1162, ["PAST"], "Regex"
+.sub "backslash:sym<f>" :subid("69_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1165
.annotate 'line', 311
- find_lex $P1163, "$/"
- unless_null $P1163, vivify_291
- $P1163 = root_new ['parrot';'Hash']
- vivify_291:
- set $P1164, $P1163["sym"]
- unless_null $P1164, vivify_292
- new $P1164, "Undef"
- vivify_292:
- set $S1165, $P1164
- iseq $I1166, $S1165, "R"
- find_lex $P1167, "$/"
- $P1168 = $P1162."new"("\r", "enumcharlist" :named("pasttype"), $I1166 :named("negate"), $P1167 :named("node"))
-.annotate 'line', 310
- store_lex "$past", $P1168
+ new $P1164, 'ExceptionHandler'
+ set_addr $P1164, control_1163
+ $P1164."handle_types"(.CONTROL_RETURN)
+ push_eh $P1164
+ .lex "self", self
+ .lex "$/", param_1165
+.annotate 'line', 312
+ new $P1166, "Undef"
+ .lex "$past", $P1166
+ get_hll_global $P1167, ["PAST"], "Regex"
+.annotate 'line', 313
+ find_lex $P1168, "$/"
+ unless_null $P1168, vivify_297
+ $P1168 = root_new ['parrot';'Hash']
+ vivify_297:
+ set $P1169, $P1168["sym"]
+ unless_null $P1169, vivify_298
+ new $P1169, "Undef"
+ vivify_298:
+ set $S1170, $P1169
+ iseq $I1171, $S1170, "F"
+ find_lex $P1172, "$/"
+ $P1173 = $P1167."new"("\f", "enumcharlist" :named("pasttype"), $I1171 :named("negate"), $P1172 :named("node"))
.annotate 'line', 312
- find_lex $P1169, "$/"
- find_lex $P1170, "$past"
- $P1171 = $P1169."!make"($P1170)
-.annotate 'line', 309
- .return ($P1171)
- control_1158:
+ store_lex "$past", $P1173
+.annotate 'line', 314
+ find_lex $P1174, "$/"
+ find_lex $P1175, "$past"
+ $P1176 = $P1174."!make"($P1175)
+.annotate 'line', 311
+ .return ($P1176)
+ control_1163:
.local pmc exception
.get_results (exception)
- getattribute $P1172, exception, "payload"
- .return ($P1172)
+ getattribute $P1177, exception, "payload"
+ .return ($P1177)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<t>" :subid("70_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1176
-.annotate 'line', 315
- new $P1175, 'ExceptionHandler'
- set_addr $P1175, control_1174
- $P1175."handle_types"(.CONTROL_RETURN)
- push_eh $P1175
- .lex "self", self
- .lex "$/", param_1176
-.annotate 'line', 316
- new $P1177, "Undef"
- .lex "$past", $P1177
- get_hll_global $P1178, ["PAST"], "Regex"
+.sub "backslash:sym<h>" :subid("70_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1181
.annotate 'line', 317
- find_lex $P1179, "$/"
- unless_null $P1179, vivify_293
- $P1179 = root_new ['parrot';'Hash']
- vivify_293:
- set $P1180, $P1179["sym"]
- unless_null $P1180, vivify_294
- new $P1180, "Undef"
- vivify_294:
- set $S1181, $P1180
- iseq $I1182, $S1181, "T"
- find_lex $P1183, "$/"
- $P1184 = $P1178."new"("\t", "enumcharlist" :named("pasttype"), $I1182 :named("negate"), $P1183 :named("node"))
-.annotate 'line', 316
- store_lex "$past", $P1184
+ new $P1180, 'ExceptionHandler'
+ set_addr $P1180, control_1179
+ $P1180."handle_types"(.CONTROL_RETURN)
+ push_eh $P1180
+ .lex "self", self
+ .lex "$/", param_1181
+.annotate 'line', 318
+ new $P1182, "Undef"
+ .lex "$past", $P1182
+ get_hll_global $P1183, ["PAST"], "Regex"
+.annotate 'line', 319
+ find_lex $P1184, "$/"
+ unless_null $P1184, vivify_299
+ $P1184 = root_new ['parrot';'Hash']
+ vivify_299:
+ set $P1185, $P1184["sym"]
+ unless_null $P1185, vivify_300
+ new $P1185, "Undef"
+ vivify_300:
+ set $S1186, $P1185
+ iseq $I1187, $S1186, "H"
+ find_lex $P1188, "$/"
+ $P1189 = $P1183."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1187 :named("negate"), $P1188 :named("node"))
.annotate 'line', 318
- find_lex $P1185, "$/"
- find_lex $P1186, "$past"
- $P1187 = $P1185."!make"($P1186)
-.annotate 'line', 315
- .return ($P1187)
- control_1174:
+ store_lex "$past", $P1189
+.annotate 'line', 320
+ find_lex $P1190, "$/"
+ find_lex $P1191, "$past"
+ $P1192 = $P1190."!make"($P1191)
+.annotate 'line', 317
+ .return ($P1192)
+ control_1179:
.local pmc exception
.get_results (exception)
- getattribute $P1188, exception, "payload"
- .return ($P1188)
+ getattribute $P1193, exception, "payload"
+ .return ($P1193)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<v>" :subid("71_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1192
-.annotate 'line', 321
- new $P1191, 'ExceptionHandler'
- set_addr $P1191, control_1190
- $P1191."handle_types"(.CONTROL_RETURN)
- push_eh $P1191
+.sub "backslash:sym<r>" :subid("71_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1197
+.annotate 'line', 323
+ new $P1196, 'ExceptionHandler'
+ set_addr $P1196, control_1195
+ $P1196."handle_types"(.CONTROL_RETURN)
+ push_eh $P1196
.lex "self", self
- .lex "$/", param_1192
-.annotate 'line', 322
- new $P1193, "Undef"
- .lex "$past", $P1193
- get_hll_global $P1194, ["PAST"], "Regex"
+ .lex "$/", param_1197
.annotate 'line', 324
- find_lex $P1195, "$/"
- unless_null $P1195, vivify_295
- $P1195 = root_new ['parrot';'Hash']
- vivify_295:
- set $P1196, $P1195["sym"]
- unless_null $P1196, vivify_296
- new $P1196, "Undef"
- vivify_296:
- set $S1197, $P1196
- iseq $I1198, $S1197, "V"
- find_lex $P1199, "$/"
- $P1200 = $P1194."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1198 :named("negate"), $P1199 :named("node"))
-.annotate 'line', 322
- store_lex "$past", $P1200
+ new $P1198, "Undef"
+ .lex "$past", $P1198
+ get_hll_global $P1199, ["PAST"], "Regex"
.annotate 'line', 325
- find_lex $P1201, "$/"
- find_lex $P1202, "$past"
- $P1203 = $P1201."!make"($P1202)
-.annotate 'line', 321
- .return ($P1203)
- control_1190:
+ find_lex $P1200, "$/"
+ unless_null $P1200, vivify_301
+ $P1200 = root_new ['parrot';'Hash']
+ vivify_301:
+ set $P1201, $P1200["sym"]
+ unless_null $P1201, vivify_302
+ new $P1201, "Undef"
+ vivify_302:
+ set $S1202, $P1201
+ iseq $I1203, $S1202, "R"
+ find_lex $P1204, "$/"
+ $P1205 = $P1199."new"("\r", "enumcharlist" :named("pasttype"), $I1203 :named("negate"), $P1204 :named("node"))
+.annotate 'line', 324
+ store_lex "$past", $P1205
+.annotate 'line', 326
+ find_lex $P1206, "$/"
+ find_lex $P1207, "$past"
+ $P1208 = $P1206."!make"($P1207)
+.annotate 'line', 323
+ .return ($P1208)
+ control_1195:
.local pmc exception
.get_results (exception)
- getattribute $P1204, exception, "payload"
- .return ($P1204)
+ getattribute $P1209, exception, "payload"
+ .return ($P1209)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<o>" :subid("72_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1208
-.annotate 'line', 328
- new $P1207, 'ExceptionHandler'
- set_addr $P1207, control_1206
- $P1207."handle_types"(.CONTROL_RETURN)
- push_eh $P1207
- .lex "self", self
- .lex "$/", param_1208
+.sub "backslash:sym<t>" :subid("72_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1213
.annotate 'line', 329
- new $P1209, "Undef"
- .lex "$octlit", $P1209
+ new $P1212, 'ExceptionHandler'
+ set_addr $P1212, control_1211
+ $P1212."handle_types"(.CONTROL_RETURN)
+ push_eh $P1212
+ .lex "self", self
+ .lex "$/", param_1213
.annotate 'line', 330
- get_hll_global $P1210, ["HLL";"Actions"], "ints_to_string"
- find_lex $P1213, "$/"
- unless_null $P1213, vivify_297
- $P1213 = root_new ['parrot';'Hash']
- vivify_297:
- set $P1214, $P1213["octint"]
- unless_null $P1214, vivify_298
new $P1214, "Undef"
- vivify_298:
- unless $P1214, unless_1212
- set $P1211, $P1214
- goto unless_1212_end
- unless_1212:
- find_lex $P1215, "$/"
- unless_null $P1215, vivify_299
- $P1215 = root_new ['parrot';'Hash']
- vivify_299:
- set $P1216, $P1215["octints"]
- unless_null $P1216, vivify_300
- $P1216 = root_new ['parrot';'Hash']
- vivify_300:
- set $P1217, $P1216["octint"]
- unless_null $P1217, vivify_301
- new $P1217, "Undef"
- vivify_301:
- set $P1211, $P1217
- unless_1212_end:
- $P1218 = $P1210($P1211)
- store_lex "$octlit", $P1218
+ .lex "$past", $P1214
+ get_hll_global $P1215, ["PAST"], "Regex"
.annotate 'line', 331
- find_lex $P1219, "$/"
- find_lex $P1222, "$/"
- unless_null $P1222, vivify_302
- $P1222 = root_new ['parrot';'Hash']
- vivify_302:
- set $P1223, $P1222["sym"]
- unless_null $P1223, vivify_303
- new $P1223, "Undef"
+ find_lex $P1216, "$/"
+ unless_null $P1216, vivify_303
+ $P1216 = root_new ['parrot';'Hash']
vivify_303:
- set $S1224, $P1223
- iseq $I1225, $S1224, "O"
- if $I1225, if_1221
-.annotate 'line', 334
- get_hll_global $P1230, ["PAST"], "Regex"
- find_lex $P1231, "$octlit"
- find_lex $P1232, "$/"
- $P1233 = $P1230."new"($P1231, "literal" :named("pasttype"), $P1232 :named("node"))
- set $P1220, $P1233
-.annotate 'line', 331
- goto if_1221_end
- if_1221:
+ set $P1217, $P1216["sym"]
+ unless_null $P1217, vivify_304
+ new $P1217, "Undef"
+ vivify_304:
+ set $S1218, $P1217
+ iseq $I1219, $S1218, "T"
+ find_lex $P1220, "$/"
+ $P1221 = $P1215."new"("\t", "enumcharlist" :named("pasttype"), $I1219 :named("negate"), $P1220 :named("node"))
+.annotate 'line', 330
+ store_lex "$past", $P1221
.annotate 'line', 332
- get_hll_global $P1226, ["PAST"], "Regex"
- find_lex $P1227, "$octlit"
- find_lex $P1228, "$/"
- $P1229 = $P1226."new"($P1227, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1228 :named("node"))
- set $P1220, $P1229
- if_1221_end:
- $P1234 = $P1219."!make"($P1220)
-.annotate 'line', 328
- .return ($P1234)
- control_1206:
+ find_lex $P1222, "$/"
+ find_lex $P1223, "$past"
+ $P1224 = $P1222."!make"($P1223)
+.annotate 'line', 329
+ .return ($P1224)
+ control_1211:
.local pmc exception
.get_results (exception)
- getattribute $P1235, exception, "payload"
- .return ($P1235)
+ getattribute $P1225, exception, "payload"
+ .return ($P1225)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<x>" :subid("73_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1239
-.annotate 'line', 337
- new $P1238, 'ExceptionHandler'
- set_addr $P1238, control_1237
- $P1238."handle_types"(.CONTROL_RETURN)
- push_eh $P1238
+.sub "backslash:sym<v>" :subid("73_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1229
+.annotate 'line', 335
+ new $P1228, 'ExceptionHandler'
+ set_addr $P1228, control_1227
+ $P1228."handle_types"(.CONTROL_RETURN)
+ push_eh $P1228
.lex "self", self
- .lex "$/", param_1239
+ .lex "$/", param_1229
+.annotate 'line', 336
+ new $P1230, "Undef"
+ .lex "$past", $P1230
+ get_hll_global $P1231, ["PAST"], "Regex"
.annotate 'line', 338
- new $P1240, "Undef"
- .lex "$hexlit", $P1240
-.annotate 'line', 339
- get_hll_global $P1241, ["HLL";"Actions"], "ints_to_string"
- find_lex $P1244, "$/"
- unless_null $P1244, vivify_304
- $P1244 = root_new ['parrot';'Hash']
- vivify_304:
- set $P1245, $P1244["hexint"]
- unless_null $P1245, vivify_305
- new $P1245, "Undef"
+ find_lex $P1232, "$/"
+ unless_null $P1232, vivify_305
+ $P1232 = root_new ['parrot';'Hash']
vivify_305:
- unless $P1245, unless_1243
- set $P1242, $P1245
- goto unless_1243_end
- unless_1243:
- find_lex $P1246, "$/"
- unless_null $P1246, vivify_306
- $P1246 = root_new ['parrot';'Hash']
+ set $P1233, $P1232["sym"]
+ unless_null $P1233, vivify_306
+ new $P1233, "Undef"
vivify_306:
- set $P1247, $P1246["hexints"]
- unless_null $P1247, vivify_307
- $P1247 = root_new ['parrot';'Hash']
- vivify_307:
- set $P1248, $P1247["hexint"]
- unless_null $P1248, vivify_308
- new $P1248, "Undef"
- vivify_308:
- set $P1242, $P1248
- unless_1243_end:
- $P1249 = $P1241($P1242)
- store_lex "$hexlit", $P1249
-.annotate 'line', 340
- find_lex $P1250, "$/"
- find_lex $P1253, "$/"
- unless_null $P1253, vivify_309
- $P1253 = root_new ['parrot';'Hash']
- vivify_309:
- set $P1254, $P1253["sym"]
- unless_null $P1254, vivify_310
- new $P1254, "Undef"
- vivify_310:
- set $S1255, $P1254
- iseq $I1256, $S1255, "X"
- if $I1256, if_1252
-.annotate 'line', 343
- get_hll_global $P1261, ["PAST"], "Regex"
- find_lex $P1262, "$hexlit"
- find_lex $P1263, "$/"
- $P1264 = $P1261."new"($P1262, "literal" :named("pasttype"), $P1263 :named("node"))
- set $P1251, $P1264
-.annotate 'line', 340
- goto if_1252_end
- if_1252:
-.annotate 'line', 341
- get_hll_global $P1257, ["PAST"], "Regex"
- find_lex $P1258, "$hexlit"
- find_lex $P1259, "$/"
- $P1260 = $P1257."new"($P1258, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1259 :named("node"))
- set $P1251, $P1260
- if_1252_end:
- $P1265 = $P1250."!make"($P1251)
-.annotate 'line', 337
- .return ($P1265)
- control_1237:
+ set $S1234, $P1233
+ iseq $I1235, $S1234, "V"
+ find_lex $P1236, "$/"
+ $P1237 = $P1231."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1235 :named("negate"), $P1236 :named("node"))
+.annotate 'line', 336
+ store_lex "$past", $P1237
+.annotate 'line', 339
+ find_lex $P1238, "$/"
+ find_lex $P1239, "$past"
+ $P1240 = $P1238."!make"($P1239)
+.annotate 'line', 335
+ .return ($P1240)
+ control_1227:
.local pmc exception
.get_results (exception)
- getattribute $P1266, exception, "payload"
- .return ($P1266)
+ getattribute $P1241, exception, "payload"
+ .return ($P1241)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<c>" :subid("74_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1270
-.annotate 'line', 346
- new $P1269, 'ExceptionHandler'
- set_addr $P1269, control_1268
- $P1269."handle_types"(.CONTROL_RETURN)
- push_eh $P1269
- .lex "self", self
- .lex "$/", param_1270
-.annotate 'line', 347
- find_lex $P1271, "$/"
- get_hll_global $P1272, ["PAST"], "Regex"
- find_lex $P1273, "$/"
- unless_null $P1273, vivify_311
- $P1273 = root_new ['parrot';'Hash']
+.sub "backslash:sym<o>" :subid("74_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1245
+.annotate 'line', 342
+ new $P1244, 'ExceptionHandler'
+ set_addr $P1244, control_1243
+ $P1244."handle_types"(.CONTROL_RETURN)
+ push_eh $P1244
+ .lex "self", self
+ .lex "$/", param_1245
+.annotate 'line', 343
+ new $P1246, "Undef"
+ .lex "$octlit", $P1246
+.annotate 'line', 344
+ get_hll_global $P1247, ["HLL";"Actions"], "ints_to_string"
+ find_lex $P1250, "$/"
+ unless_null $P1250, vivify_307
+ $P1250 = root_new ['parrot';'Hash']
+ vivify_307:
+ set $P1251, $P1250["octint"]
+ unless_null $P1251, vivify_308
+ new $P1251, "Undef"
+ vivify_308:
+ unless $P1251, unless_1249
+ set $P1248, $P1251
+ goto unless_1249_end
+ unless_1249:
+ find_lex $P1252, "$/"
+ unless_null $P1252, vivify_309
+ $P1252 = root_new ['parrot';'Hash']
+ vivify_309:
+ set $P1253, $P1252["octints"]
+ unless_null $P1253, vivify_310
+ $P1253 = root_new ['parrot';'Hash']
+ vivify_310:
+ set $P1254, $P1253["octint"]
+ unless_null $P1254, vivify_311
+ new $P1254, "Undef"
vivify_311:
- set $P1274, $P1273["charspec"]
- unless_null $P1274, vivify_312
- new $P1274, "Undef"
+ set $P1248, $P1254
+ unless_1249_end:
+ $P1255 = $P1247($P1248)
+ store_lex "$octlit", $P1255
+.annotate 'line', 345
+ find_lex $P1256, "$/"
+ find_lex $P1259, "$/"
+ unless_null $P1259, vivify_312
+ $P1259 = root_new ['parrot';'Hash']
vivify_312:
- $P1275 = $P1274."ast"()
- find_lex $P1276, "$/"
- $P1277 = $P1272."new"($P1275, "literal" :named("pasttype"), $P1276 :named("node"))
- $P1278 = $P1271."!make"($P1277)
+ set $P1260, $P1259["sym"]
+ unless_null $P1260, vivify_313
+ new $P1260, "Undef"
+ vivify_313:
+ set $S1261, $P1260
+ iseq $I1262, $S1261, "O"
+ if $I1262, if_1258
+.annotate 'line', 348
+ get_hll_global $P1267, ["PAST"], "Regex"
+ find_lex $P1268, "$octlit"
+ find_lex $P1269, "$/"
+ $P1270 = $P1267."new"($P1268, "literal" :named("pasttype"), $P1269 :named("node"))
+ set $P1257, $P1270
+.annotate 'line', 345
+ goto if_1258_end
+ if_1258:
.annotate 'line', 346
- .return ($P1278)
- control_1268:
+ get_hll_global $P1263, ["PAST"], "Regex"
+ find_lex $P1264, "$octlit"
+ find_lex $P1265, "$/"
+ $P1266 = $P1263."new"($P1264, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1265 :named("node"))
+ set $P1257, $P1266
+ if_1258_end:
+ $P1271 = $P1256."!make"($P1257)
+.annotate 'line', 342
+ .return ($P1271)
+ control_1243:
.local pmc exception
.get_results (exception)
- getattribute $P1279, exception, "payload"
- .return ($P1279)
+ getattribute $P1272, exception, "payload"
+ .return ($P1272)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<misc>" :subid("75_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1283
-.annotate 'line', 350
- new $P1282, 'ExceptionHandler'
- set_addr $P1282, control_1281
- $P1282."handle_types"(.CONTROL_RETURN)
- push_eh $P1282
- .lex "self", self
- .lex "$/", param_1283
+.sub "backslash:sym<x>" :subid("75_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1276
.annotate 'line', 351
- new $P1284, "Undef"
- .lex "$past", $P1284
- get_hll_global $P1285, ["PAST"], "Regex"
- find_lex $P1286, "$/"
- set $S1287, $P1286
- find_lex $P1288, "$/"
- $P1289 = $P1285."new"($S1287, "literal" :named("pasttype"), $P1288 :named("node"))
- store_lex "$past", $P1289
+ new $P1275, 'ExceptionHandler'
+ set_addr $P1275, control_1274
+ $P1275."handle_types"(.CONTROL_RETURN)
+ push_eh $P1275
+ .lex "self", self
+ .lex "$/", param_1276
.annotate 'line', 352
+ new $P1277, "Undef"
+ .lex "$hexlit", $P1277
+.annotate 'line', 353
+ get_hll_global $P1278, ["HLL";"Actions"], "ints_to_string"
+ find_lex $P1281, "$/"
+ unless_null $P1281, vivify_314
+ $P1281 = root_new ['parrot';'Hash']
+ vivify_314:
+ set $P1282, $P1281["hexint"]
+ unless_null $P1282, vivify_315
+ new $P1282, "Undef"
+ vivify_315:
+ unless $P1282, unless_1280
+ set $P1279, $P1282
+ goto unless_1280_end
+ unless_1280:
+ find_lex $P1283, "$/"
+ unless_null $P1283, vivify_316
+ $P1283 = root_new ['parrot';'Hash']
+ vivify_316:
+ set $P1284, $P1283["hexints"]
+ unless_null $P1284, vivify_317
+ $P1284 = root_new ['parrot';'Hash']
+ vivify_317:
+ set $P1285, $P1284["hexint"]
+ unless_null $P1285, vivify_318
+ new $P1285, "Undef"
+ vivify_318:
+ set $P1279, $P1285
+ unless_1280_end:
+ $P1286 = $P1278($P1279)
+ store_lex "$hexlit", $P1286
+.annotate 'line', 354
+ find_lex $P1287, "$/"
find_lex $P1290, "$/"
- find_lex $P1291, "$past"
- $P1292 = $P1290."!make"($P1291)
-.annotate 'line', 350
- .return ($P1292)
- control_1281:
+ unless_null $P1290, vivify_319
+ $P1290 = root_new ['parrot';'Hash']
+ vivify_319:
+ set $P1291, $P1290["sym"]
+ unless_null $P1291, vivify_320
+ new $P1291, "Undef"
+ vivify_320:
+ set $S1292, $P1291
+ iseq $I1293, $S1292, "X"
+ if $I1293, if_1289
+.annotate 'line', 357
+ get_hll_global $P1298, ["PAST"], "Regex"
+ find_lex $P1299, "$hexlit"
+ find_lex $P1300, "$/"
+ $P1301 = $P1298."new"($P1299, "literal" :named("pasttype"), $P1300 :named("node"))
+ set $P1288, $P1301
+.annotate 'line', 354
+ goto if_1289_end
+ if_1289:
+.annotate 'line', 355
+ get_hll_global $P1294, ["PAST"], "Regex"
+ find_lex $P1295, "$hexlit"
+ find_lex $P1296, "$/"
+ $P1297 = $P1294."new"($P1295, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1296 :named("node"))
+ set $P1288, $P1297
+ if_1289_end:
+ $P1302 = $P1287."!make"($P1288)
+.annotate 'line', 351
+ .return ($P1302)
+ control_1274:
.local pmc exception
.get_results (exception)
- getattribute $P1293, exception, "payload"
- .return ($P1293)
+ getattribute $P1303, exception, "payload"
+ .return ($P1303)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "assertion:sym<?>" :subid("76_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1297
-.annotate 'line', 356
- new $P1296, 'ExceptionHandler'
- set_addr $P1296, control_1295
- $P1296."handle_types"(.CONTROL_RETURN)
- push_eh $P1296
- .lex "self", self
- .lex "$/", param_1297
-.annotate 'line', 357
- new $P1298, "Undef"
- .lex "$past", $P1298
-.annotate 'line', 356
- find_lex $P1299, "$past"
-.annotate 'line', 358
- find_lex $P1301, "$/"
- unless_null $P1301, vivify_313
- $P1301 = root_new ['parrot';'Hash']
- vivify_313:
- set $P1302, $P1301["assertion"]
- unless_null $P1302, vivify_314
- new $P1302, "Undef"
- vivify_314:
- if $P1302, if_1300
-.annotate 'line', 362
- new $P1307, "Integer"
- assign $P1307, 0
- store_lex "$past", $P1307
- goto if_1300_end
- if_1300:
-.annotate 'line', 359
- find_lex $P1303, "$/"
- unless_null $P1303, vivify_315
- $P1303 = root_new ['parrot';'Hash']
- vivify_315:
- set $P1304, $P1303["assertion"]
- unless_null $P1304, vivify_316
- new $P1304, "Undef"
- vivify_316:
- $P1305 = $P1304."ast"()
- store_lex "$past", $P1305
+.sub "backslash:sym<c>" :subid("76_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1307
.annotate 'line', 360
- find_lex $P1306, "$past"
- $P1306."subtype"("zerowidth")
- if_1300_end:
-.annotate 'line', 363
+ new $P1306, 'ExceptionHandler'
+ set_addr $P1306, control_1305
+ $P1306."handle_types"(.CONTROL_RETURN)
+ push_eh $P1306
+ .lex "self", self
+ .lex "$/", param_1307
+.annotate 'line', 361
find_lex $P1308, "$/"
- find_lex $P1309, "$past"
- $P1310 = $P1308."!make"($P1309)
-.annotate 'line', 356
- .return ($P1310)
- control_1295:
+ get_hll_global $P1309, ["PAST"], "Regex"
+ find_lex $P1310, "$/"
+ unless_null $P1310, vivify_321
+ $P1310 = root_new ['parrot';'Hash']
+ vivify_321:
+ set $P1311, $P1310["charspec"]
+ unless_null $P1311, vivify_322
+ new $P1311, "Undef"
+ vivify_322:
+ $P1312 = $P1311."ast"()
+ find_lex $P1313, "$/"
+ $P1314 = $P1309."new"($P1312, "literal" :named("pasttype"), $P1313 :named("node"))
+ $P1315 = $P1308."!make"($P1314)
+.annotate 'line', 360
+ .return ($P1315)
+ control_1305:
.local pmc exception
.get_results (exception)
- getattribute $P1311, exception, "payload"
- .return ($P1311)
+ getattribute $P1316, exception, "payload"
+ .return ($P1316)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "assertion:sym<!>" :subid("77_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1315
-.annotate 'line', 366
- new $P1314, 'ExceptionHandler'
- set_addr $P1314, control_1313
- $P1314."handle_types"(.CONTROL_RETURN)
- push_eh $P1314
- .lex "self", self
- .lex "$/", param_1315
-.annotate 'line', 367
- new $P1316, "Undef"
- .lex "$past", $P1316
+.sub "backslash:sym<misc>" :subid("77_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1320
+.annotate 'line', 364
+ new $P1319, 'ExceptionHandler'
+ set_addr $P1319, control_1318
+ $P1319."handle_types"(.CONTROL_RETURN)
+ push_eh $P1319
+ .lex "self", self
+ .lex "$/", param_1320
+.annotate 'line', 365
+ new $P1321, "Undef"
+ .lex "$past", $P1321
+ get_hll_global $P1322, ["PAST"], "Regex"
+ find_lex $P1323, "$/"
+ set $S1324, $P1323
+ find_lex $P1325, "$/"
+ $P1326 = $P1322."new"($S1324, "literal" :named("pasttype"), $P1325 :named("node"))
+ store_lex "$past", $P1326
.annotate 'line', 366
- find_lex $P1317, "$past"
-.annotate 'line', 368
- find_lex $P1319, "$/"
- unless_null $P1319, vivify_317
- $P1319 = root_new ['parrot';'Hash']
- vivify_317:
- set $P1320, $P1319["assertion"]
- unless_null $P1320, vivify_318
- new $P1320, "Undef"
- vivify_318:
- if $P1320, if_1318
-.annotate 'line', 374
- get_hll_global $P1329, ["PAST"], "Regex"
- find_lex $P1330, "$/"
- $P1331 = $P1329."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1330 :named("node"))
- store_lex "$past", $P1331
-.annotate 'line', 373
- goto if_1318_end
- if_1318:
-.annotate 'line', 369
- find_lex $P1321, "$/"
- unless_null $P1321, vivify_319
- $P1321 = root_new ['parrot';'Hash']
- vivify_319:
- set $P1322, $P1321["assertion"]
- unless_null $P1322, vivify_320
- new $P1322, "Undef"
- vivify_320:
- $P1323 = $P1322."ast"()
- store_lex "$past", $P1323
-.annotate 'line', 370
- find_lex $P1324, "$past"
- find_lex $P1325, "$past"
- $P1326 = $P1325."negate"()
- isfalse $I1327, $P1326
- $P1324."negate"($I1327)
-.annotate 'line', 371
+ find_lex $P1327, "$/"
find_lex $P1328, "$past"
- $P1328."subtype"("zerowidth")
- if_1318_end:
-.annotate 'line', 376
- find_lex $P1332, "$/"
- find_lex $P1333, "$past"
- $P1334 = $P1332."!make"($P1333)
-.annotate 'line', 366
- .return ($P1334)
- control_1313:
+ $P1329 = $P1327."!make"($P1328)
+.annotate 'line', 364
+ .return ($P1329)
+ control_1318:
.local pmc exception
.get_results (exception)
- getattribute $P1335, exception, "payload"
- .return ($P1335)
+ getattribute $P1330, exception, "payload"
+ .return ($P1330)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "assertion:sym<method>" :subid("78_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1339
-.annotate 'line', 379
- new $P1338, 'ExceptionHandler'
- set_addr $P1338, control_1337
- $P1338."handle_types"(.CONTROL_RETURN)
- push_eh $P1338
+.sub "assertion:sym<?>" :subid("78_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1334
+.annotate 'line', 370
+ new $P1333, 'ExceptionHandler'
+ set_addr $P1333, control_1332
+ $P1333."handle_types"(.CONTROL_RETURN)
+ push_eh $P1333
.lex "self", self
- .lex "$/", param_1339
-.annotate 'line', 380
- new $P1340, "Undef"
- .lex "$past", $P1340
- find_lex $P1341, "$/"
- unless_null $P1341, vivify_321
- $P1341 = root_new ['parrot';'Hash']
- vivify_321:
- set $P1342, $P1341["assertion"]
- unless_null $P1342, vivify_322
- new $P1342, "Undef"
- vivify_322:
- $P1343 = $P1342."ast"()
- store_lex "$past", $P1343
-.annotate 'line', 381
- find_lex $P1344, "$past"
- $P1344."subtype"("method")
-.annotate 'line', 382
- find_lex $P1345, "$past"
- $P1345."name"("")
-.annotate 'line', 383
- find_lex $P1346, "$/"
- find_lex $P1347, "$past"
- $P1348 = $P1346."!make"($P1347)
-.annotate 'line', 379
- .return ($P1348)
- control_1337:
+ .lex "$/", param_1334
+.annotate 'line', 371
+ new $P1335, "Undef"
+ .lex "$past", $P1335
+.annotate 'line', 370
+ find_lex $P1336, "$past"
+.annotate 'line', 372
+ find_lex $P1338, "$/"
+ unless_null $P1338, vivify_323
+ $P1338 = root_new ['parrot';'Hash']
+ vivify_323:
+ set $P1339, $P1338["assertion"]
+ unless_null $P1339, vivify_324
+ new $P1339, "Undef"
+ vivify_324:
+ if $P1339, if_1337
+.annotate 'line', 376
+ new $P1344, "Integer"
+ assign $P1344, 0
+ store_lex "$past", $P1344
+ goto if_1337_end
+ if_1337:
+.annotate 'line', 373
+ find_lex $P1340, "$/"
+ unless_null $P1340, vivify_325
+ $P1340 = root_new ['parrot';'Hash']
+ vivify_325:
+ set $P1341, $P1340["assertion"]
+ unless_null $P1341, vivify_326
+ new $P1341, "Undef"
+ vivify_326:
+ $P1342 = $P1341."ast"()
+ store_lex "$past", $P1342
+.annotate 'line', 374
+ find_lex $P1343, "$past"
+ $P1343."subtype"("zerowidth")
+ if_1337_end:
+.annotate 'line', 377
+ find_lex $P1345, "$/"
+ find_lex $P1346, "$past"
+ $P1347 = $P1345."!make"($P1346)
+.annotate 'line', 370
+ .return ($P1347)
+ control_1332:
.local pmc exception
.get_results (exception)
- getattribute $P1349, exception, "payload"
- .return ($P1349)
+ getattribute $P1348, exception, "payload"
+ .return ($P1348)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "assertion:sym<name>" :subid("79_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1353
-.annotate 'line', 386
- .const 'Sub' $P1410 = "81_1280467473.99327"
- capture_lex $P1410
- .const 'Sub' $P1376 = "80_1280467473.99327"
- capture_lex $P1376
- new $P1352, 'ExceptionHandler'
- set_addr $P1352, control_1351
- $P1352."handle_types"(.CONTROL_RETURN)
- push_eh $P1352
+.sub "assertion:sym<!>" :subid("79_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1352
+.annotate 'line', 380
+ new $P1351, 'ExceptionHandler'
+ set_addr $P1351, control_1350
+ $P1351."handle_types"(.CONTROL_RETURN)
+ push_eh $P1351
.lex "self", self
- .lex "$/", param_1353
-.annotate 'line', 387
- new $P1354, "Undef"
- .lex "$name", $P1354
-.annotate 'line', 388
- new $P1355, "Undef"
- .lex "$past", $P1355
-.annotate 'line', 387
+ .lex "$/", param_1352
+.annotate 'line', 381
+ new $P1353, "Undef"
+ .lex "$past", $P1353
+.annotate 'line', 380
+ find_lex $P1354, "$past"
+.annotate 'line', 382
find_lex $P1356, "$/"
- unless_null $P1356, vivify_323
+ unless_null $P1356, vivify_327
$P1356 = root_new ['parrot';'Hash']
- vivify_323:
- set $P1357, $P1356["longname"]
- unless_null $P1357, vivify_324
- new $P1357, "Undef"
- vivify_324:
- set $S1358, $P1357
- new $P1359, 'String'
- set $P1359, $S1358
- store_lex "$name", $P1359
- find_lex $P1360, "$past"
-.annotate 'line', 389
- find_lex $P1362, "$/"
- unless_null $P1362, vivify_325
- $P1362 = root_new ['parrot';'Hash']
- vivify_325:
- set $P1363, $P1362["assertion"]
- unless_null $P1363, vivify_326
- new $P1363, "Undef"
- vivify_326:
- if $P1363, if_1361
-.annotate 'line', 393
- find_lex $P1372, "$name"
- set $S1373, $P1372
- iseq $I1374, $S1373, "sym"
- if $I1374, if_1371
-.annotate 'line', 409
- find_lex $P1386, "self"
- find_lex $P1387, "$/"
- $P1388 = $P1386."named_assertion"($P1387)
- store_lex "$past", $P1388
-.annotate 'line', 410
- find_lex $P1390, "$/"
- unless_null $P1390, vivify_327
- $P1390 = root_new ['parrot';'Hash']
vivify_327:
- set $P1391, $P1390["nibbler"]
- unless_null $P1391, vivify_328
- new $P1391, "Undef"
+ set $P1357, $P1356["assertion"]
+ unless_null $P1357, vivify_328
+ new $P1357, "Undef"
vivify_328:
- if $P1391, if_1389
-.annotate 'line', 413
- find_lex $P1399, "$/"
- unless_null $P1399, vivify_329
- $P1399 = root_new ['parrot';'Hash']
+ if $P1357, if_1355
+.annotate 'line', 388
+ get_hll_global $P1366, ["PAST"], "Regex"
+ find_lex $P1367, "$/"
+ $P1368 = $P1366."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1367 :named("node"))
+ store_lex "$past", $P1368
+.annotate 'line', 387
+ goto if_1355_end
+ if_1355:
+.annotate 'line', 383
+ find_lex $P1358, "$/"
+ unless_null $P1358, vivify_329
+ $P1358 = root_new ['parrot';'Hash']
vivify_329:
- set $P1400, $P1399["arglist"]
- unless_null $P1400, vivify_330
- new $P1400, "Undef"
+ set $P1359, $P1358["assertion"]
+ unless_null $P1359, vivify_330
+ new $P1359, "Undef"
vivify_330:
- unless $P1400, if_1398_end
-.annotate 'line', 414
- find_lex $P1402, "$/"
- unless_null $P1402, vivify_331
- $P1402 = root_new ['parrot';'Hash']
+ $P1360 = $P1359."ast"()
+ store_lex "$past", $P1360
+.annotate 'line', 384
+ find_lex $P1361, "$past"
+ find_lex $P1362, "$past"
+ $P1363 = $P1362."negate"()
+ isfalse $I1364, $P1363
+ $P1361."negate"($I1364)
+.annotate 'line', 385
+ find_lex $P1365, "$past"
+ $P1365."subtype"("zerowidth")
+ if_1355_end:
+.annotate 'line', 390
+ find_lex $P1369, "$/"
+ find_lex $P1370, "$past"
+ $P1371 = $P1369."!make"($P1370)
+.annotate 'line', 380
+ .return ($P1371)
+ control_1350:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1372, exception, "payload"
+ .return ($P1372)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "assertion:sym<method>" :subid("80_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1376
+.annotate 'line', 393
+ new $P1375, 'ExceptionHandler'
+ set_addr $P1375, control_1374
+ $P1375."handle_types"(.CONTROL_RETURN)
+ push_eh $P1375
+ .lex "self", self
+ .lex "$/", param_1376
+.annotate 'line', 394
+ new $P1377, "Undef"
+ .lex "$past", $P1377
+ find_lex $P1378, "$/"
+ unless_null $P1378, vivify_331
+ $P1378 = root_new ['parrot';'Hash']
vivify_331:
- set $P1403, $P1402["arglist"]
- unless_null $P1403, vivify_332
- $P1403 = root_new ['parrot';'ResizablePMCArray']
+ set $P1379, $P1378["assertion"]
+ unless_null $P1379, vivify_332
+ new $P1379, "Undef"
vivify_332:
- set $P1404, $P1403[0]
- unless_null $P1404, vivify_333
- new $P1404, "Undef"
- vivify_333:
- $P1405 = $P1404."ast"()
- $P1406 = $P1405."list"()
- defined $I1407, $P1406
- unless $I1407, for_undef_334
- iter $P1401, $P1406
- new $P1416, 'ExceptionHandler'
- set_addr $P1416, loop1415_handler
- $P1416."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P1416
- loop1415_test:
- unless $P1401, loop1415_done
- shift $P1408, $P1401
- loop1415_redo:
- .const 'Sub' $P1410 = "81_1280467473.99327"
- capture_lex $P1410
- $P1410($P1408)
- loop1415_next:
- goto loop1415_test
- loop1415_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1417, exception, 'type'
- eq $P1417, .CONTROL_LOOP_NEXT, loop1415_next
- eq $P1417, .CONTROL_LOOP_REDO, loop1415_redo
- loop1415_done:
- pop_eh
- for_undef_334:
- if_1398_end:
-.annotate 'line', 413
- goto if_1389_end
- if_1389:
-.annotate 'line', 411
- find_lex $P1392, "$past"
+ $P1380 = $P1379."ast"()
+ store_lex "$past", $P1380
+.annotate 'line', 395
+ find_lex $P1381, "$past"
+ $P1381."subtype"("method")
+.annotate 'line', 396
+ find_lex $P1382, "$past"
+ $P1382."name"("")
+.annotate 'line', 397
+ find_lex $P1383, "$/"
+ find_lex $P1384, "$past"
+ $P1385 = $P1383."!make"($P1384)
+.annotate 'line', 393
+ .return ($P1385)
+ control_1374:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1386, exception, "payload"
+ .return ($P1386)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "assertion:sym<name>" :subid("81_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1390
+.annotate 'line', 400
+ .const 'Sub' $P1447 = "83_1282323999.42098"
+ capture_lex $P1447
+ .const 'Sub' $P1413 = "82_1282323999.42098"
+ capture_lex $P1413
+ new $P1389, 'ExceptionHandler'
+ set_addr $P1389, control_1388
+ $P1389."handle_types"(.CONTROL_RETURN)
+ push_eh $P1389
+ .lex "self", self
+ .lex "$/", param_1390
+.annotate 'line', 401
+ new $P1391, "Undef"
+ .lex "$name", $P1391
+.annotate 'line', 402
+ new $P1392, "Undef"
+ .lex "$past", $P1392
+.annotate 'line', 401
find_lex $P1393, "$/"
- unless_null $P1393, vivify_335
+ unless_null $P1393, vivify_333
$P1393 = root_new ['parrot';'Hash']
+ vivify_333:
+ set $P1394, $P1393["longname"]
+ unless_null $P1394, vivify_334
+ new $P1394, "Undef"
+ vivify_334:
+ set $S1395, $P1394
+ new $P1396, 'String'
+ set $P1396, $S1395
+ store_lex "$name", $P1396
+ find_lex $P1397, "$past"
+.annotate 'line', 403
+ find_lex $P1399, "$/"
+ unless_null $P1399, vivify_335
+ $P1399 = root_new ['parrot';'Hash']
vivify_335:
- set $P1394, $P1393["nibbler"]
- unless_null $P1394, vivify_336
- $P1394 = root_new ['parrot';'ResizablePMCArray']
+ set $P1400, $P1399["assertion"]
+ unless_null $P1400, vivify_336
+ new $P1400, "Undef"
vivify_336:
- set $P1395, $P1394[0]
- unless_null $P1395, vivify_337
- new $P1395, "Undef"
+ if $P1400, if_1398
+.annotate 'line', 407
+ find_lex $P1409, "$name"
+ set $S1410, $P1409
+ iseq $I1411, $S1410, "sym"
+ if $I1411, if_1408
+.annotate 'line', 423
+ find_lex $P1423, "self"
+ find_lex $P1424, "$/"
+ $P1425 = $P1423."named_assertion"($P1424)
+ store_lex "$past", $P1425
+.annotate 'line', 424
+ find_lex $P1427, "$/"
+ unless_null $P1427, vivify_337
+ $P1427 = root_new ['parrot';'Hash']
vivify_337:
- $P1396 = $P1395."ast"()
- $P1397 = "buildsub"($P1396)
- $P1392."push"($P1397)
- if_1389_end:
-.annotate 'line', 408
- goto if_1371_end
- if_1371:
-.annotate 'line', 393
- .const 'Sub' $P1376 = "80_1280467473.99327"
- capture_lex $P1376
- $P1376()
- if_1371_end:
- goto if_1361_end
- if_1361:
-.annotate 'line', 390
- find_lex $P1364, "$/"
- unless_null $P1364, vivify_338
- $P1364 = root_new ['parrot';'Hash']
+ set $P1428, $P1427["nibbler"]
+ unless_null $P1428, vivify_338
+ new $P1428, "Undef"
vivify_338:
- set $P1365, $P1364["assertion"]
- unless_null $P1365, vivify_339
- $P1365 = root_new ['parrot';'ResizablePMCArray']
+ if $P1428, if_1426
+.annotate 'line', 427
+ find_lex $P1436, "$/"
+ unless_null $P1436, vivify_339
+ $P1436 = root_new ['parrot';'Hash']
vivify_339:
- set $P1366, $P1365[0]
- unless_null $P1366, vivify_340
- new $P1366, "Undef"
+ set $P1437, $P1436["arglist"]
+ unless_null $P1437, vivify_340
+ new $P1437, "Undef"
vivify_340:
- $P1367 = $P1366."ast"()
- store_lex "$past", $P1367
-.annotate 'line', 391
- find_lex $P1368, "self"
- find_lex $P1369, "$past"
- find_lex $P1370, "$name"
- $P1368."subrule_alias"($P1369, $P1370)
- if_1361_end:
-.annotate 'line', 417
- find_lex $P1418, "$/"
- find_lex $P1419, "$past"
- $P1420 = $P1418."!make"($P1419)
-.annotate 'line', 386
- .return ($P1420)
- control_1351:
+ unless $P1437, if_1435_end
+.annotate 'line', 428
+ find_lex $P1439, "$/"
+ unless_null $P1439, vivify_341
+ $P1439 = root_new ['parrot';'Hash']
+ vivify_341:
+ set $P1440, $P1439["arglist"]
+ unless_null $P1440, vivify_342
+ $P1440 = root_new ['parrot';'ResizablePMCArray']
+ vivify_342:
+ set $P1441, $P1440[0]
+ unless_null $P1441, vivify_343
+ new $P1441, "Undef"
+ vivify_343:
+ $P1442 = $P1441."ast"()
+ $P1443 = $P1442."list"()
+ defined $I1444, $P1443
+ unless $I1444, for_undef_344
+ iter $P1438, $P1443
+ new $P1453, 'ExceptionHandler'
+ set_addr $P1453, loop1452_handler
+ $P1453."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1453
+ loop1452_test:
+ unless $P1438, loop1452_done
+ shift $P1445, $P1438
+ loop1452_redo:
+ .const 'Sub' $P1447 = "83_1282323999.42098"
+ capture_lex $P1447
+ $P1447($P1445)
+ loop1452_next:
+ goto loop1452_test
+ loop1452_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1454, exception, 'type'
+ eq $P1454, .CONTROL_LOOP_NEXT, loop1452_next
+ eq $P1454, .CONTROL_LOOP_REDO, loop1452_redo
+ loop1452_done:
+ pop_eh
+ for_undef_344:
+ if_1435_end:
+.annotate 'line', 427
+ goto if_1426_end
+ if_1426:
+.annotate 'line', 425
+ find_lex $P1429, "$past"
+ find_lex $P1430, "$/"
+ unless_null $P1430, vivify_345
+ $P1430 = root_new ['parrot';'Hash']
+ vivify_345:
+ set $P1431, $P1430["nibbler"]
+ unless_null $P1431, vivify_346
+ $P1431 = root_new ['parrot';'ResizablePMCArray']
+ vivify_346:
+ set $P1432, $P1431[0]
+ unless_null $P1432, vivify_347
+ new $P1432, "Undef"
+ vivify_347:
+ $P1433 = $P1432."ast"()
+ $P1434 = "buildsub"($P1433)
+ $P1429."push"($P1434)
+ if_1426_end:
+.annotate 'line', 422
+ goto if_1408_end
+ if_1408:
+.annotate 'line', 407
+ .const 'Sub' $P1413 = "82_1282323999.42098"
+ capture_lex $P1413
+ $P1413()
+ if_1408_end:
+ goto if_1398_end
+ if_1398:
+.annotate 'line', 404
+ find_lex $P1401, "$/"
+ unless_null $P1401, vivify_348
+ $P1401 = root_new ['parrot';'Hash']
+ vivify_348:
+ set $P1402, $P1401["assertion"]
+ unless_null $P1402, vivify_349
+ $P1402 = root_new ['parrot';'ResizablePMCArray']
+ vivify_349:
+ set $P1403, $P1402[0]
+ unless_null $P1403, vivify_350
+ new $P1403, "Undef"
+ vivify_350:
+ $P1404 = $P1403."ast"()
+ store_lex "$past", $P1404
+.annotate 'line', 405
+ find_lex $P1405, "self"
+ find_lex $P1406, "$past"
+ find_lex $P1407, "$name"
+ $P1405."subrule_alias"($P1406, $P1407)
+ if_1398_end:
+.annotate 'line', 431
+ find_lex $P1455, "$/"
+ find_lex $P1456, "$past"
+ $P1457 = $P1455."!make"($P1456)
+.annotate 'line', 400
+ .return ($P1457)
+ control_1388:
.local pmc exception
.get_results (exception)
- getattribute $P1421, exception, "payload"
- .return ($P1421)
+ getattribute $P1458, exception, "payload"
+ .return ($P1458)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1409" :anon :subid("81_1280467473.99327") :outer("79_1280467473.99327")
- .param pmc param_1411
-.annotate 'line', 414
- .lex "$_", param_1411
- find_lex $P1412, "$past"
- find_lex $P1413, "$_"
- $P1414 = $P1412."push"($P1413)
- .return ($P1414)
+.sub "_block1446" :anon :subid("83_1282323999.42098") :outer("81_1282323999.42098")
+ .param pmc param_1448
+.annotate 'line', 428
+ .lex "$_", param_1448
+ find_lex $P1449, "$past"
+ find_lex $P1450, "$_"
+ $P1451 = $P1449."push"($P1450)
+ .return ($P1451)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1375" :anon :subid("80_1280467473.99327") :outer("79_1280467473.99327")
-.annotate 'line', 394
- new $P1377, "Undef"
- .lex "$regexsym", $P1377
+.sub "_block1412" :anon :subid("82_1282323999.42098") :outer("81_1282323999.42098")
+.annotate 'line', 408
+ new $P1414, "Undef"
+ .lex "$regexsym", $P1414
$P0 = get_global '$REGEXNAME'
$S0 = $P0
@@ -11952,390 +12953,390 @@
add $I0, 5
$S0 = substr $S0, $I0
$S0 = chopn $S0, 1
- $P1378 = box $S0
+ $P1415 = box $S0
- store_lex "$regexsym", $P1378
-.annotate 'line', 403
- get_hll_global $P1379, ["PAST"], "Regex"
-.annotate 'line', 404
- 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', 403
- store_lex "$past", $P1385
-.annotate 'line', 393
- .return ($P1385)
+ store_lex "$regexsym", $P1415
+.annotate 'line', 417
+ get_hll_global $P1416, ["PAST"], "Regex"
+.annotate 'line', 418
+ get_hll_global $P1417, ["PAST"], "Regex"
+ find_lex $P1418, "$regexsym"
+ $P1419 = $P1417."new"($P1418, "literal" :named("pasttype"))
+ find_lex $P1420, "$name"
+ find_lex $P1421, "$/"
+ $P1422 = $P1416."new"($P1419, $P1420 :named("name"), "subcapture" :named("pasttype"), $P1421 :named("node"))
+.annotate 'line', 417
+ store_lex "$past", $P1422
+.annotate 'line', 407
+ .return ($P1422)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "assertion:sym<[>" :subid("82_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1425
-.annotate 'line', 420
- .const 'Sub' $P1460 = "83_1280467473.99327"
- capture_lex $P1460
- new $P1424, 'ExceptionHandler'
- set_addr $P1424, control_1423
- $P1424."handle_types"(.CONTROL_RETURN)
- push_eh $P1424
- .lex "self", self
- .lex "$/", param_1425
-.annotate 'line', 421
- new $P1426, "Undef"
- .lex "$clist", $P1426
-.annotate 'line', 422
- new $P1427, "Undef"
- .lex "$past", $P1427
-.annotate 'line', 431
- new $P1428, "Undef"
- .lex "$i", $P1428
-.annotate 'line', 432
- new $P1429, "Undef"
- .lex "$n", $P1429
-.annotate 'line', 421
- find_lex $P1430, "$/"
- unless_null $P1430, vivify_341
- $P1430 = root_new ['parrot';'Hash']
- vivify_341:
- set $P1431, $P1430["cclass_elem"]
- unless_null $P1431, vivify_342
- new $P1431, "Undef"
- vivify_342:
- store_lex "$clist", $P1431
-.annotate 'line', 422
- find_lex $P1432, "$clist"
- unless_null $P1432, vivify_343
- $P1432 = root_new ['parrot';'ResizablePMCArray']
- vivify_343:
- set $P1433, $P1432[0]
- unless_null $P1433, vivify_344
- new $P1433, "Undef"
- vivify_344:
- $P1434 = $P1433."ast"()
- store_lex "$past", $P1434
-.annotate 'line', 423
- find_lex $P1438, "$past"
- $P1439 = $P1438."negate"()
- if $P1439, if_1437
- set $P1436, $P1439
- goto if_1437_end
- if_1437:
- find_lex $P1440, "$past"
- $S1441 = $P1440."pasttype"()
- iseq $I1442, $S1441, "subrule"
- new $P1436, 'Integer'
- set $P1436, $I1442
- if_1437_end:
- unless $P1436, if_1435_end
-.annotate 'line', 424
- find_lex $P1443, "$past"
- $P1443."subtype"("zerowidth")
-.annotate 'line', 425
- get_hll_global $P1444, ["PAST"], "Regex"
- find_lex $P1445, "$past"
-.annotate 'line', 427
- get_hll_global $P1446, ["PAST"], "Regex"
- $P1447 = $P1446."new"("charclass" :named("pasttype"), "." :named("subtype"))
- find_lex $P1448, "$/"
- $P1449 = $P1444."new"($P1445, $P1447, $P1448 :named("node"))
-.annotate 'line', 425
- store_lex "$past", $P1449
- if_1435_end:
-.annotate 'line', 431
- new $P1450, "Integer"
- assign $P1450, 1
- store_lex "$i", $P1450
-.annotate 'line', 432
- find_lex $P1451, "$clist"
- set $N1452, $P1451
- new $P1453, 'Float'
- set $P1453, $N1452
- store_lex "$n", $P1453
-.annotate 'line', 433
- new $P1484, 'ExceptionHandler'
- set_addr $P1484, loop1483_handler
- $P1484."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P1484
- loop1483_test:
- find_lex $P1454, "$i"
- set $N1455, $P1454
- find_lex $P1456, "$n"
- set $N1457, $P1456
- islt $I1458, $N1455, $N1457
- unless $I1458, loop1483_done
- loop1483_redo:
- .const 'Sub' $P1460 = "83_1280467473.99327"
- capture_lex $P1460
- $P1460()
- loop1483_next:
- goto loop1483_test
- loop1483_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1485, exception, 'type'
- eq $P1485, .CONTROL_LOOP_NEXT, loop1483_next
- eq $P1485, .CONTROL_LOOP_REDO, loop1483_redo
- loop1483_done:
- pop_eh
-.annotate 'line', 444
- find_lex $P1486, "$/"
- find_lex $P1487, "$past"
- $P1488 = $P1486."!make"($P1487)
-.annotate 'line', 420
- .return ($P1488)
- control_1423:
- .local pmc exception
- .get_results (exception)
- getattribute $P1489, exception, "payload"
- .return ($P1489)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1459" :anon :subid("83_1280467473.99327") :outer("82_1280467473.99327")
+.sub "assertion:sym<[>" :subid("84_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1462
.annotate 'line', 434
- new $P1461, "Undef"
- .lex "$ast", $P1461
- find_lex $P1462, "$i"
- set $I1463, $P1462
- find_lex $P1464, "$clist"
- unless_null $P1464, vivify_345
- $P1464 = root_new ['parrot';'ResizablePMCArray']
- vivify_345:
- set $P1465, $P1464[$I1463]
- unless_null $P1465, vivify_346
+ .const 'Sub' $P1497 = "85_1282323999.42098"
+ capture_lex $P1497
+ new $P1461, 'ExceptionHandler'
+ set_addr $P1461, control_1460
+ $P1461."handle_types"(.CONTROL_RETURN)
+ push_eh $P1461
+ .lex "self", self
+ .lex "$/", param_1462
+.annotate 'line', 435
+ new $P1463, "Undef"
+ .lex "$clist", $P1463
+.annotate 'line', 436
+ new $P1464, "Undef"
+ .lex "$past", $P1464
+.annotate 'line', 445
new $P1465, "Undef"
- vivify_346:
- $P1466 = $P1465."ast"()
- store_lex "$ast", $P1466
+ .lex "$i", $P1465
+.annotate 'line', 446
+ new $P1466, "Undef"
+ .lex "$n", $P1466
.annotate 'line', 435
- find_lex $P1468, "$ast"
- $P1469 = $P1468."negate"()
- if $P1469, if_1467
-.annotate 'line', 440
- get_hll_global $P1476, ["PAST"], "Regex"
- find_lex $P1477, "$past"
- find_lex $P1478, "$ast"
- find_lex $P1479, "$/"
- $P1480 = $P1476."new"($P1477, $P1478, "alt" :named("pasttype"), $P1479 :named("node"))
- store_lex "$past", $P1480
-.annotate 'line', 439
- goto if_1467_end
- if_1467:
+ find_lex $P1467, "$/"
+ unless_null $P1467, vivify_351
+ $P1467 = root_new ['parrot';'Hash']
+ vivify_351:
+ set $P1468, $P1467["cclass_elem"]
+ unless_null $P1468, vivify_352
+ new $P1468, "Undef"
+ vivify_352:
+ store_lex "$clist", $P1468
.annotate 'line', 436
- find_lex $P1470, "$ast"
- $P1470."subtype"("zerowidth")
+ find_lex $P1469, "$clist"
+ unless_null $P1469, vivify_353
+ $P1469 = root_new ['parrot';'ResizablePMCArray']
+ vivify_353:
+ set $P1470, $P1469[0]
+ unless_null $P1470, vivify_354
+ new $P1470, "Undef"
+ vivify_354:
+ $P1471 = $P1470."ast"()
+ store_lex "$past", $P1471
.annotate 'line', 437
- get_hll_global $P1471, ["PAST"], "Regex"
- find_lex $P1472, "$ast"
- find_lex $P1473, "$past"
- find_lex $P1474, "$/"
- $P1475 = $P1471."new"($P1472, $P1473, "concat" :named("pasttype"), $P1474 :named("node"))
- store_lex "$past", $P1475
- if_1467_end:
-.annotate 'line', 442
- find_lex $P1481, "$i"
- add $P1482, $P1481, 1
- store_lex "$i", $P1482
-.annotate 'line', 433
- .return ($P1482)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.include "except_types.pasm"
-.sub "cclass_elem" :subid("84_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1493
+ find_lex $P1475, "$past"
+ $P1476 = $P1475."negate"()
+ if $P1476, if_1474
+ set $P1473, $P1476
+ goto if_1474_end
+ if_1474:
+ find_lex $P1477, "$past"
+ $S1478 = $P1477."pasttype"()
+ iseq $I1479, $S1478, "subrule"
+ new $P1473, 'Integer'
+ set $P1473, $I1479
+ if_1474_end:
+ unless $P1473, if_1472_end
+.annotate 'line', 438
+ find_lex $P1480, "$past"
+ $P1480."subtype"("zerowidth")
+.annotate 'line', 439
+ get_hll_global $P1481, ["PAST"], "Regex"
+ find_lex $P1482, "$past"
+.annotate 'line', 441
+ get_hll_global $P1483, ["PAST"], "Regex"
+ $P1484 = $P1483."new"("charclass" :named("pasttype"), "." :named("subtype"))
+ find_lex $P1485, "$/"
+ $P1486 = $P1481."new"($P1482, $P1484, $P1485 :named("node"))
+.annotate 'line', 439
+ store_lex "$past", $P1486
+ if_1472_end:
+.annotate 'line', 445
+ new $P1487, "Integer"
+ assign $P1487, 1
+ store_lex "$i", $P1487
+.annotate 'line', 446
+ find_lex $P1488, "$clist"
+ set $N1489, $P1488
+ new $P1490, 'Float'
+ set $P1490, $N1489
+ store_lex "$n", $P1490
.annotate 'line', 447
- .const 'Sub' $P1518 = "86_1280467473.99327"
- capture_lex $P1518
- .const 'Sub' $P1502 = "85_1280467473.99327"
- capture_lex $P1502
- new $P1492, 'ExceptionHandler'
- set_addr $P1492, control_1491
- $P1492."handle_types"(.CONTROL_RETURN)
- push_eh $P1492
- .lex "self", self
- .lex "$/", param_1493
-.annotate 'line', 448
- new $P1494, "Undef"
- .lex "$str", $P1494
-.annotate 'line', 449
- new $P1495, "Undef"
- .lex "$past", $P1495
-.annotate 'line', 448
- new $P1496, "String"
- assign $P1496, ""
- store_lex "$str", $P1496
- find_lex $P1497, "$past"
-.annotate 'line', 450
- find_lex $P1499, "$/"
- unless_null $P1499, vivify_347
- $P1499 = root_new ['parrot';'Hash']
- vivify_347:
- set $P1500, $P1499["name"]
- unless_null $P1500, vivify_348
- new $P1500, "Undef"
- vivify_348:
- if $P1500, if_1498
-.annotate 'line', 454
- find_lex $P1513, "$/"
- unless_null $P1513, vivify_349
- $P1513 = root_new ['parrot';'Hash']
- vivify_349:
- set $P1514, $P1513["charspec"]
- unless_null $P1514, vivify_350
- new $P1514, "Undef"
- vivify_350:
- defined $I1515, $P1514
- unless $I1515, for_undef_351
- iter $P1512, $P1514
- new $P1544, 'ExceptionHandler'
- set_addr $P1544, loop1543_handler
- $P1544."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P1544
- loop1543_test:
- unless $P1512, loop1543_done
- shift $P1516, $P1512
- loop1543_redo:
- .const 'Sub' $P1518 = "86_1280467473.99327"
- capture_lex $P1518
- $P1518($P1516)
- loop1543_next:
- goto loop1543_test
- loop1543_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1545, exception, 'type'
- eq $P1545, .CONTROL_LOOP_NEXT, loop1543_next
- eq $P1545, .CONTROL_LOOP_REDO, loop1543_redo
- loop1543_done:
+ new $P1521, 'ExceptionHandler'
+ set_addr $P1521, loop1520_handler
+ $P1521."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1521
+ loop1520_test:
+ find_lex $P1491, "$i"
+ set $N1492, $P1491
+ find_lex $P1493, "$n"
+ set $N1494, $P1493
+ islt $I1495, $N1492, $N1494
+ unless $I1495, loop1520_done
+ loop1520_redo:
+ .const 'Sub' $P1497 = "85_1282323999.42098"
+ capture_lex $P1497
+ $P1497()
+ loop1520_next:
+ goto loop1520_test
+ loop1520_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1522, exception, 'type'
+ eq $P1522, .CONTROL_LOOP_NEXT, loop1520_next
+ eq $P1522, .CONTROL_LOOP_REDO, loop1520_redo
+ loop1520_done:
pop_eh
- for_undef_351:
-.annotate 'line', 479
- get_hll_global $P1546, ["PAST"], "Regex"
- find_lex $P1547, "$str"
- find_lex $P1548, "$/"
- $P1549 = $P1546."new"($P1547, "enumcharlist" :named("pasttype"), $P1548 :named("node"))
- store_lex "$past", $P1549
-.annotate 'line', 453
- goto if_1498_end
- if_1498:
-.annotate 'line', 450
- .const 'Sub' $P1502 = "85_1280467473.99327"
- capture_lex $P1502
- $P1502()
- if_1498_end:
-.annotate 'line', 481
- find_lex $P1550, "$past"
- find_lex $P1551, "$/"
- unless_null $P1551, vivify_363
- $P1551 = root_new ['parrot';'Hash']
- vivify_363:
- set $P1552, $P1551["sign"]
- unless_null $P1552, vivify_364
- new $P1552, "Undef"
- vivify_364:
- set $S1553, $P1552
- iseq $I1554, $S1553, "-"
- $P1550."negate"($I1554)
-.annotate 'line', 482
- find_lex $P1555, "$/"
- find_lex $P1556, "$past"
- $P1557 = $P1555."!make"($P1556)
-.annotate 'line', 447
- .return ($P1557)
- control_1491:
+.annotate 'line', 458
+ find_lex $P1523, "$/"
+ find_lex $P1524, "$past"
+ $P1525 = $P1523."!make"($P1524)
+.annotate 'line', 434
+ .return ($P1525)
+ control_1460:
.local pmc exception
.get_results (exception)
- getattribute $P1558, exception, "payload"
- .return ($P1558)
+ getattribute $P1526, exception, "payload"
+ .return ($P1526)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1517" :anon :subid("86_1280467473.99327") :outer("84_1280467473.99327")
- .param pmc param_1519
-.annotate 'line', 454
- .const 'Sub' $P1525 = "87_1280467473.99327"
- capture_lex $P1525
- .lex "$_", param_1519
-.annotate 'line', 455
- find_lex $P1522, "$_"
- unless_null $P1522, vivify_352
- $P1522 = root_new ['parrot';'ResizablePMCArray']
- vivify_352:
- set $P1523, $P1522[1]
- unless_null $P1523, vivify_353
- new $P1523, "Undef"
- vivify_353:
- if $P1523, if_1521
-.annotate 'line', 477
- find_lex $P1539, "$str"
- find_lex $P1540, "$_"
- unless_null $P1540, vivify_354
- $P1540 = root_new ['parrot';'ResizablePMCArray']
- vivify_354:
- set $P1541, $P1540[0]
- unless_null $P1541, vivify_355
- new $P1541, "Undef"
+.sub "_block1496" :anon :subid("85_1282323999.42098") :outer("84_1282323999.42098")
+.annotate 'line', 448
+ new $P1498, "Undef"
+ .lex "$ast", $P1498
+ find_lex $P1499, "$i"
+ set $I1500, $P1499
+ find_lex $P1501, "$clist"
+ unless_null $P1501, vivify_355
+ $P1501 = root_new ['parrot';'ResizablePMCArray']
vivify_355:
- concat $P1542, $P1539, $P1541
- store_lex "$str", $P1542
- set $P1520, $P1542
-.annotate 'line', 455
- goto if_1521_end
- if_1521:
- .const 'Sub' $P1525 = "87_1280467473.99327"
- capture_lex $P1525
- $P1538 = $P1525()
- set $P1520, $P1538
- if_1521_end:
+ set $P1502, $P1501[$I1500]
+ unless_null $P1502, vivify_356
+ new $P1502, "Undef"
+ vivify_356:
+ $P1503 = $P1502."ast"()
+ store_lex "$ast", $P1503
+.annotate 'line', 449
+ find_lex $P1505, "$ast"
+ $P1506 = $P1505."negate"()
+ if $P1506, if_1504
.annotate 'line', 454
- .return ($P1520)
+ get_hll_global $P1513, ["PAST"], "Regex"
+ find_lex $P1514, "$past"
+ find_lex $P1515, "$ast"
+ find_lex $P1516, "$/"
+ $P1517 = $P1513."new"($P1514, $P1515, "alt" :named("pasttype"), $P1516 :named("node"))
+ store_lex "$past", $P1517
+.annotate 'line', 453
+ goto if_1504_end
+ if_1504:
+.annotate 'line', 450
+ find_lex $P1507, "$ast"
+ $P1507."subtype"("zerowidth")
+.annotate 'line', 451
+ get_hll_global $P1508, ["PAST"], "Regex"
+ find_lex $P1509, "$ast"
+ find_lex $P1510, "$past"
+ find_lex $P1511, "$/"
+ $P1512 = $P1508."new"($P1509, $P1510, "concat" :named("pasttype"), $P1511 :named("node"))
+ store_lex "$past", $P1512
+ if_1504_end:
+.annotate 'line', 456
+ find_lex $P1518, "$i"
+ add $P1519, $P1518, 1
+ store_lex "$i", $P1519
+.annotate 'line', 447
+ .return ($P1519)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1524" :anon :subid("87_1280467473.99327") :outer("86_1280467473.99327")
-.annotate 'line', 456
- new $P1526, "Undef"
- .lex "$a", $P1526
-.annotate 'line', 457
- new $P1527, "Undef"
- .lex "$b", $P1527
-.annotate 'line', 458
- new $P1528, "Undef"
- .lex "$c", $P1528
-.annotate 'line', 456
- find_lex $P1529, "$_"
- unless_null $P1529, vivify_356
- $P1529 = root_new ['parrot';'ResizablePMCArray']
- vivify_356:
- set $P1530, $P1529[0]
- unless_null $P1530, vivify_357
- new $P1530, "Undef"
+.include "except_types.pasm"
+.sub "cclass_elem" :subid("86_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1530
+.annotate 'line', 461
+ .const 'Sub' $P1555 = "88_1282323999.42098"
+ capture_lex $P1555
+ .const 'Sub' $P1539 = "87_1282323999.42098"
+ capture_lex $P1539
+ new $P1529, 'ExceptionHandler'
+ set_addr $P1529, control_1528
+ $P1529."handle_types"(.CONTROL_RETURN)
+ push_eh $P1529
+ .lex "self", self
+ .lex "$/", param_1530
+.annotate 'line', 462
+ new $P1531, "Undef"
+ .lex "$str", $P1531
+.annotate 'line', 463
+ new $P1532, "Undef"
+ .lex "$past", $P1532
+.annotate 'line', 462
+ new $P1533, "String"
+ assign $P1533, ""
+ store_lex "$str", $P1533
+ find_lex $P1534, "$past"
+.annotate 'line', 464
+ find_lex $P1536, "$/"
+ unless_null $P1536, vivify_357
+ $P1536 = root_new ['parrot';'Hash']
vivify_357:
- store_lex "$a", $P1530
-.annotate 'line', 457
- find_lex $P1531, "$_"
- unless_null $P1531, vivify_358
- $P1531 = root_new ['parrot';'ResizablePMCArray']
+ set $P1537, $P1536["name"]
+ unless_null $P1537, vivify_358
+ new $P1537, "Undef"
vivify_358:
- set $P1532, $P1531[1]
- unless_null $P1532, vivify_359
- $P1532 = root_new ['parrot';'ResizablePMCArray']
+ if $P1537, if_1535
+.annotate 'line', 468
+ find_lex $P1550, "$/"
+ unless_null $P1550, vivify_359
+ $P1550 = root_new ['parrot';'Hash']
vivify_359:
- set $P1533, $P1532[0]
- unless_null $P1533, vivify_360
- new $P1533, "Undef"
+ set $P1551, $P1550["charspec"]
+ unless_null $P1551, vivify_360
+ new $P1551, "Undef"
vivify_360:
- store_lex "$b", $P1533
-.annotate 'line', 458
+ defined $I1552, $P1551
+ unless $I1552, for_undef_361
+ iter $P1549, $P1551
+ new $P1581, 'ExceptionHandler'
+ set_addr $P1581, loop1580_handler
+ $P1581."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1581
+ loop1580_test:
+ unless $P1549, loop1580_done
+ shift $P1553, $P1549
+ loop1580_redo:
+ .const 'Sub' $P1555 = "88_1282323999.42098"
+ capture_lex $P1555
+ $P1555($P1553)
+ loop1580_next:
+ goto loop1580_test
+ loop1580_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1582, exception, 'type'
+ eq $P1582, .CONTROL_LOOP_NEXT, loop1580_next
+ eq $P1582, .CONTROL_LOOP_REDO, loop1580_redo
+ loop1580_done:
+ pop_eh
+ for_undef_361:
+.annotate 'line', 493
+ get_hll_global $P1583, ["PAST"], "Regex"
+ find_lex $P1584, "$str"
+ find_lex $P1585, "$/"
+ $P1586 = $P1583."new"($P1584, "enumcharlist" :named("pasttype"), $P1585 :named("node"))
+ store_lex "$past", $P1586
+.annotate 'line', 467
+ goto if_1535_end
+ if_1535:
+.annotate 'line', 464
+ .const 'Sub' $P1539 = "87_1282323999.42098"
+ capture_lex $P1539
+ $P1539()
+ if_1535_end:
+.annotate 'line', 495
+ find_lex $P1587, "$past"
+ find_lex $P1588, "$/"
+ unless_null $P1588, vivify_373
+ $P1588 = root_new ['parrot';'Hash']
+ vivify_373:
+ set $P1589, $P1588["sign"]
+ unless_null $P1589, vivify_374
+ new $P1589, "Undef"
+ vivify_374:
+ set $S1590, $P1589
+ iseq $I1591, $S1590, "-"
+ $P1587."negate"($I1591)
+.annotate 'line', 496
+ find_lex $P1592, "$/"
+ find_lex $P1593, "$past"
+ $P1594 = $P1592."!make"($P1593)
+.annotate 'line', 461
+ .return ($P1594)
+ control_1528:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1595, exception, "payload"
+ .return ($P1595)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.sub "_block1554" :anon :subid("88_1282323999.42098") :outer("86_1282323999.42098")
+ .param pmc param_1556
+.annotate 'line', 468
+ .const 'Sub' $P1562 = "89_1282323999.42098"
+ capture_lex $P1562
+ .lex "$_", param_1556
+.annotate 'line', 469
+ find_lex $P1559, "$_"
+ unless_null $P1559, vivify_362
+ $P1559 = root_new ['parrot';'ResizablePMCArray']
+ vivify_362:
+ set $P1560, $P1559[1]
+ unless_null $P1560, vivify_363
+ new $P1560, "Undef"
+ vivify_363:
+ if $P1560, if_1558
+.annotate 'line', 491
+ find_lex $P1576, "$str"
+ find_lex $P1577, "$_"
+ unless_null $P1577, vivify_364
+ $P1577 = root_new ['parrot';'ResizablePMCArray']
+ vivify_364:
+ set $P1578, $P1577[0]
+ unless_null $P1578, vivify_365
+ new $P1578, "Undef"
+ vivify_365:
+ concat $P1579, $P1576, $P1578
+ store_lex "$str", $P1579
+ set $P1557, $P1579
+.annotate 'line', 469
+ goto if_1558_end
+ if_1558:
+ .const 'Sub' $P1562 = "89_1282323999.42098"
+ capture_lex $P1562
+ $P1575 = $P1562()
+ set $P1557, $P1575
+ if_1558_end:
+.annotate 'line', 468
+ .return ($P1557)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.sub "_block1561" :anon :subid("89_1282323999.42098") :outer("88_1282323999.42098")
+.annotate 'line', 470
+ new $P1563, "Undef"
+ .lex "$a", $P1563
+.annotate 'line', 471
+ new $P1564, "Undef"
+ .lex "$b", $P1564
+.annotate 'line', 472
+ new $P1565, "Undef"
+ .lex "$c", $P1565
+.annotate 'line', 470
+ find_lex $P1566, "$_"
+ unless_null $P1566, vivify_366
+ $P1566 = root_new ['parrot';'ResizablePMCArray']
+ vivify_366:
+ set $P1567, $P1566[0]
+ unless_null $P1567, vivify_367
+ new $P1567, "Undef"
+ vivify_367:
+ store_lex "$a", $P1567
+.annotate 'line', 471
+ find_lex $P1568, "$_"
+ unless_null $P1568, vivify_368
+ $P1568 = root_new ['parrot';'ResizablePMCArray']
+ vivify_368:
+ set $P1569, $P1568[1]
+ unless_null $P1569, vivify_369
+ $P1569 = root_new ['parrot';'ResizablePMCArray']
+ vivify_369:
+ set $P1570, $P1569[0]
+ unless_null $P1570, vivify_370
+ new $P1570, "Undef"
+ vivify_370:
+ store_lex "$b", $P1570
+.annotate 'line', 472
$P0 = find_lex '$a'
$S0 = $P0
@@ -12351,255 +13352,255 @@
inc $I0
goto cclass_loop
cclass_done:
- $P1534 = box $S2
+ $P1571 = box $S2
- store_lex "$c", $P1534
-.annotate 'line', 475
- find_lex $P1535, "$str"
- find_lex $P1536, "$c"
- concat $P1537, $P1535, $P1536
- store_lex "$str", $P1537
-.annotate 'line', 455
- .return ($P1537)
+ store_lex "$c", $P1571
+.annotate 'line', 489
+ find_lex $P1572, "$str"
+ find_lex $P1573, "$c"
+ concat $P1574, $P1572, $P1573
+ store_lex "$str", $P1574
+.annotate 'line', 469
+ .return ($P1574)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1501" :anon :subid("85_1280467473.99327") :outer("84_1280467473.99327")
-.annotate 'line', 451
- new $P1503, "Undef"
- .lex "$name", $P1503
- find_lex $P1504, "$/"
- unless_null $P1504, vivify_361
- $P1504 = root_new ['parrot';'Hash']
- vivify_361:
- set $P1505, $P1504["name"]
- unless_null $P1505, vivify_362
- new $P1505, "Undef"
- vivify_362:
- set $S1506, $P1505
- new $P1507, 'String'
- set $P1507, $S1506
- store_lex "$name", $P1507
-.annotate 'line', 452
- get_hll_global $P1508, ["PAST"], "Regex"
- find_lex $P1509, "$name"
- find_lex $P1510, "$/"
- $P1511 = $P1508."new"($P1509, "subrule" :named("pasttype"), "method" :named("subtype"), $P1510 :named("node"))
- store_lex "$past", $P1511
-.annotate 'line', 450
- .return ($P1511)
+.sub "_block1538" :anon :subid("87_1282323999.42098") :outer("86_1282323999.42098")
+.annotate 'line', 465
+ new $P1540, "Undef"
+ .lex "$name", $P1540
+ find_lex $P1541, "$/"
+ unless_null $P1541, vivify_371
+ $P1541 = root_new ['parrot';'Hash']
+ vivify_371:
+ set $P1542, $P1541["name"]
+ unless_null $P1542, vivify_372
+ new $P1542, "Undef"
+ vivify_372:
+ set $S1543, $P1542
+ new $P1544, 'String'
+ set $P1544, $S1543
+ store_lex "$name", $P1544
+.annotate 'line', 466
+ get_hll_global $P1545, ["PAST"], "Regex"
+ find_lex $P1546, "$name"
+ find_lex $P1547, "$/"
+ $P1548 = $P1545."new"($P1546, "subrule" :named("pasttype"), "method" :named("subtype"), $P1547 :named("node"))
+ store_lex "$past", $P1548
+.annotate 'line', 464
+ .return ($P1548)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "mod_internal" :subid("88_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1562
-.annotate 'line', 485
- new $P1561, 'ExceptionHandler'
- set_addr $P1561, control_1560
- $P1561."handle_types"(.CONTROL_RETURN)
- push_eh $P1561
- .lex "self", self
- .lex "$/", param_1562
-.annotate 'line', 486
- $P1563 = root_new ['parrot';'Hash']
- .lex "%mods", $P1563
-.annotate 'line', 487
- new $P1564, "Undef"
- .lex "$n", $P1564
-.annotate 'line', 486
- get_global $P1565, "@MODIFIERS"
- unless_null $P1565, vivify_365
- $P1565 = root_new ['parrot';'ResizablePMCArray']
- vivify_365:
- set $P1566, $P1565[0]
- unless_null $P1566, vivify_366
- new $P1566, "Undef"
- vivify_366:
- store_lex "%mods", $P1566
-.annotate 'line', 487
- find_lex $P1569, "$/"
- unless_null $P1569, vivify_367
- $P1569 = root_new ['parrot';'Hash']
- vivify_367:
- set $P1570, $P1569["n"]
- unless_null $P1570, vivify_368
- $P1570 = root_new ['parrot';'ResizablePMCArray']
- vivify_368:
- set $P1571, $P1570[0]
- unless_null $P1571, vivify_369
- new $P1571, "Undef"
- vivify_369:
- set $S1572, $P1571
- isgt $I1573, $S1572, ""
- if $I1573, if_1568
- new $P1578, "Integer"
- assign $P1578, 1
- set $P1567, $P1578
- goto if_1568_end
- if_1568:
- find_lex $P1574, "$/"
- unless_null $P1574, vivify_370
- $P1574 = root_new ['parrot';'Hash']
- vivify_370:
- set $P1575, $P1574["n"]
- unless_null $P1575, vivify_371
- $P1575 = root_new ['parrot';'ResizablePMCArray']
- vivify_371:
- set $P1576, $P1575[0]
- unless_null $P1576, vivify_372
- new $P1576, "Undef"
- vivify_372:
- set $N1577, $P1576
- new $P1567, 'Float'
- set $P1567, $N1577
- if_1568_end:
- store_lex "$n", $P1567
-.annotate 'line', 488
- find_lex $P1579, "$n"
- find_lex $P1580, "$/"
- unless_null $P1580, vivify_373
- $P1580 = root_new ['parrot';'Hash']
- vivify_373:
- set $P1581, $P1580["mod_ident"]
- unless_null $P1581, vivify_374
- $P1581 = root_new ['parrot';'Hash']
- vivify_374:
- set $P1582, $P1581["sym"]
- unless_null $P1582, vivify_375
- new $P1582, "Undef"
+.sub "mod_internal" :subid("90_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1599
+.annotate 'line', 499
+ new $P1598, 'ExceptionHandler'
+ set_addr $P1598, control_1597
+ $P1598."handle_types"(.CONTROL_RETURN)
+ push_eh $P1598
+ .lex "self", self
+ .lex "$/", param_1599
+.annotate 'line', 500
+ $P1600 = root_new ['parrot';'Hash']
+ .lex "%mods", $P1600
+.annotate 'line', 501
+ new $P1601, "Undef"
+ .lex "$n", $P1601
+.annotate 'line', 500
+ get_global $P1602, "@MODIFIERS"
+ unless_null $P1602, vivify_375
+ $P1602 = root_new ['parrot';'ResizablePMCArray']
vivify_375:
- set $S1583, $P1582
- find_lex $P1584, "%mods"
- unless_null $P1584, vivify_376
- $P1584 = root_new ['parrot';'Hash']
- store_lex "%mods", $P1584
+ set $P1603, $P1602[0]
+ unless_null $P1603, vivify_376
+ new $P1603, "Undef"
vivify_376:
- set $P1584[$S1583], $P1579
-.annotate 'line', 489
- find_lex $P1585, "$/"
- $P1586 = $P1585."!make"(0)
-.annotate 'line', 485
- .return ($P1586)
- control_1560:
+ store_lex "%mods", $P1603
+.annotate 'line', 501
+ find_lex $P1606, "$/"
+ unless_null $P1606, vivify_377
+ $P1606 = root_new ['parrot';'Hash']
+ vivify_377:
+ set $P1607, $P1606["n"]
+ unless_null $P1607, vivify_378
+ $P1607 = root_new ['parrot';'ResizablePMCArray']
+ vivify_378:
+ set $P1608, $P1607[0]
+ unless_null $P1608, vivify_379
+ new $P1608, "Undef"
+ vivify_379:
+ set $S1609, $P1608
+ isgt $I1610, $S1609, ""
+ if $I1610, if_1605
+ new $P1615, "Integer"
+ assign $P1615, 1
+ set $P1604, $P1615
+ goto if_1605_end
+ if_1605:
+ find_lex $P1611, "$/"
+ unless_null $P1611, vivify_380
+ $P1611 = root_new ['parrot';'Hash']
+ vivify_380:
+ set $P1612, $P1611["n"]
+ unless_null $P1612, vivify_381
+ $P1612 = root_new ['parrot';'ResizablePMCArray']
+ vivify_381:
+ set $P1613, $P1612[0]
+ unless_null $P1613, vivify_382
+ new $P1613, "Undef"
+ vivify_382:
+ set $N1614, $P1613
+ new $P1604, 'Float'
+ set $P1604, $N1614
+ if_1605_end:
+ store_lex "$n", $P1604
+.annotate 'line', 502
+ find_lex $P1616, "$n"
+ find_lex $P1617, "$/"
+ unless_null $P1617, vivify_383
+ $P1617 = root_new ['parrot';'Hash']
+ vivify_383:
+ set $P1618, $P1617["mod_ident"]
+ unless_null $P1618, vivify_384
+ $P1618 = root_new ['parrot';'Hash']
+ vivify_384:
+ set $P1619, $P1618["sym"]
+ unless_null $P1619, vivify_385
+ new $P1619, "Undef"
+ vivify_385:
+ set $S1620, $P1619
+ find_lex $P1621, "%mods"
+ unless_null $P1621, vivify_386
+ $P1621 = root_new ['parrot';'Hash']
+ store_lex "%mods", $P1621
+ vivify_386:
+ set $P1621[$S1620], $P1616
+.annotate 'line', 503
+ find_lex $P1622, "$/"
+ $P1623 = $P1622."!make"(0)
+.annotate 'line', 499
+ .return ($P1623)
+ control_1597:
.local pmc exception
.get_results (exception)
- getattribute $P1587, exception, "payload"
- .return ($P1587)
+ getattribute $P1624, exception, "payload"
+ .return ($P1624)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "subrule_alias" :subid("89_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1594
- .param pmc param_1595
-.annotate 'line', 583
- new $P1593, 'ExceptionHandler'
- set_addr $P1593, control_1592
- $P1593."handle_types"(.CONTROL_RETURN)
- push_eh $P1593
- .lex "self", self
- .lex "$past", param_1594
- .lex "$name", param_1595
-.annotate 'line', 584
- find_lex $P1597, "$past"
- $S1598 = $P1597."name"()
- isgt $I1599, $S1598, ""
- if $I1599, if_1596
-.annotate 'line', 585
- find_lex $P1606, "$past"
- find_lex $P1607, "$name"
- $P1606."name"($P1607)
- goto if_1596_end
- if_1596:
-.annotate 'line', 584
- find_lex $P1600, "$past"
- find_lex $P1601, "$name"
- concat $P1602, $P1601, "="
- find_lex $P1603, "$past"
- $S1604 = $P1603."name"()
- concat $P1605, $P1602, $S1604
- $P1600."name"($P1605)
- if_1596_end:
-.annotate 'line', 586
- find_lex $P1608, "$past"
- $P1609 = $P1608."subtype"("capture")
-.annotate 'line', 583
- .return ($P1609)
- control_1592:
- .local pmc exception
- .get_results (exception)
- getattribute $P1610, exception, "payload"
- .return ($P1610)
+.sub "subrule_alias" :subid("91_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1631
+ .param pmc param_1632
+.annotate 'line', 597
+ new $P1630, 'ExceptionHandler'
+ set_addr $P1630, control_1629
+ $P1630."handle_types"(.CONTROL_RETURN)
+ push_eh $P1630
+ .lex "self", self
+ .lex "$past", param_1631
+ .lex "$name", param_1632
+.annotate 'line', 598
+ find_lex $P1634, "$past"
+ $S1635 = $P1634."name"()
+ isgt $I1636, $S1635, ""
+ if $I1636, if_1633
+.annotate 'line', 599
+ find_lex $P1643, "$past"
+ find_lex $P1644, "$name"
+ $P1643."name"($P1644)
+ goto if_1633_end
+ if_1633:
+.annotate 'line', 598
+ find_lex $P1637, "$past"
+ find_lex $P1638, "$name"
+ concat $P1639, $P1638, "="
+ find_lex $P1640, "$past"
+ $S1641 = $P1640."name"()
+ concat $P1642, $P1639, $S1641
+ $P1637."name"($P1642)
+ if_1633_end:
+.annotate 'line', 600
+ find_lex $P1645, "$past"
+ $P1646 = $P1645."subtype"("capture")
+.annotate 'line', 597
+ .return ($P1646)
+ control_1629:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1647, exception, "payload"
+ .return ($P1647)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "named_assertion" :subid("90_1280467473.99327") :method :outer("11_1280467473.99327")
- .param pmc param_1614
-.annotate 'line', 589
- new $P1613, 'ExceptionHandler'
- set_addr $P1613, control_1612
- $P1613."handle_types"(.CONTROL_RETURN)
- push_eh $P1613
- .lex "self", self
- .lex "$/", param_1614
-.annotate 'line', 590
- new $P1615, "Undef"
- .lex "$name", $P1615
-.annotate 'line', 591
- new $P1616, "Undef"
- .lex "$past", $P1616
-.annotate 'line', 590
- find_lex $P1617, "$/"
- unless_null $P1617, vivify_377
- $P1617 = root_new ['parrot';'Hash']
- vivify_377:
- set $P1618, $P1617["longname"]
- unless_null $P1618, vivify_378
- new $P1618, "Undef"
- vivify_378:
- set $S1619, $P1618
- new $P1620, 'String'
- set $P1620, $S1619
- store_lex "$name", $P1620
-.annotate 'line', 591
- get_hll_global $P1621, ["PAST"], "Regex"
- find_lex $P1622, "$name"
- find_lex $P1623, "$name"
- find_lex $P1624, "$/"
- $P1625 = $P1621."new"($P1622, $P1623 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1624 :named("node"))
- store_lex "$past", $P1625
- find_lex $P1626, "$past"
-.annotate 'line', 589
- .return ($P1626)
- control_1612:
+.sub "named_assertion" :subid("92_1282323999.42098") :method :outer("11_1282323999.42098")
+ .param pmc param_1651
+.annotate 'line', 603
+ new $P1650, 'ExceptionHandler'
+ set_addr $P1650, control_1649
+ $P1650."handle_types"(.CONTROL_RETURN)
+ push_eh $P1650
+ .lex "self", self
+ .lex "$/", param_1651
+.annotate 'line', 604
+ new $P1652, "Undef"
+ .lex "$name", $P1652
+.annotate 'line', 605
+ new $P1653, "Undef"
+ .lex "$past", $P1653
+.annotate 'line', 604
+ find_lex $P1654, "$/"
+ unless_null $P1654, vivify_387
+ $P1654 = root_new ['parrot';'Hash']
+ vivify_387:
+ set $P1655, $P1654["longname"]
+ unless_null $P1655, vivify_388
+ new $P1655, "Undef"
+ vivify_388:
+ set $S1656, $P1655
+ new $P1657, 'String'
+ set $P1657, $S1656
+ store_lex "$name", $P1657
+.annotate 'line', 605
+ get_hll_global $P1658, ["PAST"], "Regex"
+ find_lex $P1659, "$name"
+ find_lex $P1660, "$name"
+ find_lex $P1661, "$/"
+ $P1662 = $P1658."new"($P1659, $P1660 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1661 :named("node"))
+ store_lex "$past", $P1662
+ find_lex $P1663, "$past"
+.annotate 'line', 603
+ .return ($P1663)
+ control_1649:
.local pmc exception
.get_results (exception)
- getattribute $P1627, exception, "payload"
- .return ($P1627)
+ getattribute $P1664, exception, "payload"
+ .return ($P1664)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1629" :load :anon :subid("91_1280467473.99327")
+.sub "_block1666" :load :anon :subid("93_1282323999.42098")
.annotate 'line', 4
- .const 'Sub' $P1631 = "11_1280467473.99327"
- $P1632 = $P1631()
- .return ($P1632)
+ .const 'Sub' $P1668 = "11_1282323999.42098"
+ $P1669 = $P1668()
+ .return ($P1669)
.end
.namespace []
-.sub "_block1635" :load :anon :subid("92_1280467473.99327")
+.sub "_block1672" :load :anon :subid("94_1282323999.42098")
.annotate 'line', 1
- .const 'Sub' $P1637 = "10_1280467473.99327"
- $P1638 = $P1637()
- .return ($P1638)
+ .const 'Sub' $P1674 = "10_1282323999.42098"
+ $P1675 = $P1674()
+ .return ($P1675)
.end
# .include 'src/cheats/p6regex-grammar.pir'
Modified: branches/unshared_buffers/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- branches/unshared_buffers/ext/nqp-rx/src/stage0/Regex-s0.pir Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/ext/nqp-rx/src/stage0/Regex-s0.pir Sun Aug 29 17:09:11 2010 (r48719)
@@ -493,22 +493,27 @@
=cut
.sub '!cursor_debug' :method
+ .param string tag
.param pmc args :slurpy
$P0 = getattribute self, '$!debug'
if null $P0 goto done
unless $P0 goto done
- .local pmc from, pos, orig
- .local int line
+ .local pmc fmt, from, pos, orig, line
+ fmt = new ['ResizablePMCArray']
from = getattribute self, '$!from'
orig = getattribute self, '$!target'
line = orig.'lineof'(from)
- inc line
+
$P0 = getinterp
$P1 = $P0.'stdhandle'(2)
- print $P1, from
- print $P1, '/'
- print $P1, line
- print $P1, ': '
+
+ $N0 = time
+ push fmt, $N0
+ push fmt, from
+ push fmt, line
+ push fmt, tag
+ $S0 = sprintf "%.6f %d/%d %-8s ", fmt
+ print $P1, $S0
$S0 = join '', args
print $P1, $S0
print $P1, "\n"
@@ -1015,6 +1020,11 @@
.local int pos, eos
.local string tgt
(cur, pos, tgt) = self.'!cursor_start'()
+ .local pmc debug
+ debug = getattribute cur, '$!debug'
+ if null debug goto debug_1
+ cur.'!cursor_debug'('START', 'ww')
+ debug_1:
if pos == 0 goto fail
eos = length tgt
if pos == eos goto fail
@@ -1025,7 +1035,13 @@
unless $I0 goto fail
pass:
cur.'!cursor_pass'(pos, 'ww')
+ if null debug goto done
+ cur.'!cursor_debug'('PASS', 'ww')
+ goto done
fail:
+ if null debug goto done
+ cur.'!cursor_debug'('FAIL', 'ww')
+ done:
.return (cur)
.end
@@ -1197,11 +1213,20 @@
.sub '!protoregex' :method
.param string name
+ .local pmc debug
+ debug = getattribute self, '$!debug'
+ if null debug goto have_debug
+ if debug goto have_debug
+ null debug
+ have_debug:
+
.local pmc tokrx, toklen
(tokrx, toklen) = self.'!protoregex_tokrx'(name)
have_tokrx:
- self.'!cursor_debug'('PROTO ', name)
+ if null debug goto debug_skip_1
+ self.'!cursor_debug'('PROTO', name)
+ debug_skip_1:
# If there are no entries at all for this protoregex, we fail outright.
unless tokrx goto fail
@@ -1219,9 +1244,12 @@
token1 = substr target, pos, 1
$I0 = toklen[token1]
token = substr target, pos, $I0
+
+ if null debug goto debug_skip_2
$S0 = escape token
$S1 = escape token1
- self.'!cursor_debug'(' token1="', $S1, '", token="', $S0, '"')
+ self.'!cursor_debug'('NOTE', 'token1="', $S1, '", token="', $S0, '"')
+ debug_skip_2:
# Create a hash to keep track of the methods we've already called,
# so that we don't end up calling it twice.
@@ -1267,11 +1295,17 @@
done:
pos = result.'pos'()
- self.'!cursor_debug'('PASS ', name, ' at pos=', pos)
+
+ if null debug goto debug_skip_3
+ self.'!cursor_debug'('PASS', name, ' at pos=', pos)
+ debug_skip_3:
+
.return (result)
fail:
- self.'!cursor_debug'('FAIL ', name)
+ if null debug goto debug_skip_4
+ self.'!cursor_debug'('FAIL', name)
+ debug_skip_4:
unless null result goto fail_1
result = self.'!cursor_start'()
result.'!cursor_fail'()
@@ -1335,7 +1369,7 @@
toklen = prototable[$S0]
unless null tokrx goto tokrx_done
- self.'!cursor_debug'('Generating protoregex table for ', name)
+ self.'!cursor_debug'('NOTE','Generating protoregex table for ', name)
.local pmc toklen, tokrx
toklen = new ['Hash']
@@ -2495,7 +2529,7 @@
.local string prefix, rname, rtype
prefix = self.'unique'('rx')
concat prefix, '_'
- $P0 = split ' ', 'tgt string pos int off int eos int rep int cur pmc'
+ $P0 = split ' ', 'tgt string pos int off int eos int rep int cur pmc debug pmc'
$P1 = iter $P0
iter_loop:
unless $P1 goto iter_done
@@ -2539,8 +2573,8 @@
goto capnames_loop
capnames_done:
- .local string cur, rep, pos, tgt, off, eos
- (cur, rep, pos, tgt, off, eos) = self.'!rxregs'('cur rep pos tgt off eos')
+ .local string cur, rep, pos, tgt, off, eos, debug
+ (cur, rep, pos, tgt, off, eos, debug) = self.'!rxregs'('cur rep pos tgt off eos debug')
unless regexname goto peek_done
.local pmc tpast, token, tpost
@@ -2572,6 +2606,7 @@
self.'!cursorop'(ops, '!cursor_caparray', 0, caparray :flat)
caparray_skip:
+ ops.'push_pirop'('getattribute', debug, cur, '"$!debug"')
ops.'push_pirop'('.lex', 'unicode:"$\x{a2}"', cur)
ops.'push_pirop'('.local pmc', 'match')
ops.'push_pirop'('.lex', '"$/"', 'match')
@@ -2594,12 +2629,12 @@
ops.'push_pirop'('substr', tgt, tgt, off, 'result'=>tgt)
ops.'push'(startlabel)
ops.'push_pirop'('eq', '$I10', 1, restartlabel)
- self.'!cursorop'(ops, '!cursor_debug', 0, '"START "', regexname_esc)
+ self.'!cursorop'(ops, '!cursor_debug', 0, '"START"', regexname_esc)
$P0 = self.'post_regex'(node)
ops.'push'($P0)
ops.'push'(restartlabel)
- self.'!cursorop'(ops, '!cursor_debug', 0, '"NEXT "', regexname_esc)
+ self.'!cursorop'(ops, '!cursor_debug', 0, '"NEXT"', regexname_esc)
ops.'push'(faillabel)
self.'!cursorop'(ops, '!mark_fail', 4, rep, pos, '$I10', '$P10', 0)
ops.'push_pirop'('lt', pos, CURSOR_FAIL, donelabel)
@@ -2607,7 +2642,7 @@
ops.'push_pirop'('jump', '$I10')
ops.'push'(donelabel)
self.'!cursorop'(ops, '!cursor_fail', 0)
- self.'!cursorop'(ops, '!cursor_debug', 0, '"FAIL "', regexname_esc)
+ self.'!cursorop'(ops, '!cursor_debug', 0, '"FAIL"', regexname_esc)
ops.'push_pirop'('return', cur)
.return (ops)
.end
@@ -2631,6 +2666,13 @@
.param int retelems
.param pmc args :slurpy
+ $S0 = concat '!cursorop_', func
+ $I0 = can self, $S0
+ unless $I0 goto cursorop_default
+ $P0 = self.$S0(ops, func, retelems, args :flat)
+ unless null $P0 goto done
+
+ cursorop_default:
if retelems < 1 goto result_done
.local pmc retargs
retargs = new ['ResizableStringArray']
@@ -2658,6 +2700,23 @@
.return (ops)
.end
+.sub '!cursorop_!cursor_debug' :method
+ .param pmc ops
+ .param string func
+ .param int retelems
+ .param pmc args :slurpy
+
+ .local pmc cur, debug, debuglabel
+ $P99 = get_hll_global ['POST'], 'Label'
+ debuglabel = $P99.'new'('name'=>'debug_')
+ (cur, debug) = self.'!rxregs'('cur debug')
+ ops.'push_pirop'('if_null', debug, debuglabel)
+ $S0 = self.'escape'(func)
+ ops.'push_pirop'('callmethod', $S0, cur, args :flat)
+ ops.'push'(debuglabel)
+ .return (ops)
+.end
+
=item !rxregs(keystr)
@@ -3058,6 +3117,70 @@
.end
+=item conj(PAST::Regex node)
+
+=cut
+
+.sub 'conj' :method :multi(_, ['PAST';'Regex'])
+ .param pmc node
+
+ .local pmc cur, pos, fail
+ (cur, pos, fail) = self.'!rxregs'('cur pos fail')
+
+ .local string name
+ name = self.'unique'('conj')
+ concat name, '_'
+
+ .local pmc ops, iter
+ ops = self.'post_new'('Ops', 'node'=>node, 'result'=>cur)
+ iter = node.'iterator'()
+ unless iter goto done
+
+ .local pmc clabel
+ $S0 = concat name, 'mark'
+ clabel = self.'post_new'('Label', 'result'=>$S0)
+
+ .local int acount
+ .local pmc alabel, apast, apost
+ acount = 0
+ $S0 = acount
+ $S0 = concat name, $S0
+ alabel = self.'post_new'('Label', 'result'=>$S0)
+
+ ops.'push_pirop'('inline', name, 'inline'=>' # rx %0')
+ ops.'push_pirop'('set_addr', '$I10', clabel)
+ self.'!cursorop'(ops, '!mark_push', 0, pos, CURSOR_FAIL, '$I10')
+ ops.'push_pirop'('goto', alabel)
+ ops.'push'(clabel)
+ ops.'push_pirop'('goto', fail)
+ ops.'push'(alabel)
+ apast = shift iter
+ apost = self.'post_regex'(apast, cur)
+ ops.'push'(apost)
+ ops.'push_pirop'('set_addr', '$I10', clabel)
+ self.'!cursorop'(ops, '!mark_peek', 1, '$I11', '$I10')
+ self.'!cursorop'(ops, '!mark_push', 0, '$I11', pos, '$I10')
+
+ iter_loop:
+ inc acount
+ $S0 = acount
+ $S0 = concat name, $S0
+ alabel = self.'post_new'('Label', 'result'=>$S0)
+ ops.'push'(alabel)
+ ops.'push_pirop'('set', pos, '$I11')
+ apast = shift iter
+ apost = self.'post_regex'(apast, cur)
+ ops.'push'(apost)
+ ops.'push_pirop'('set_addr', '$I10', clabel)
+ self.'!cursorop'(ops, '!mark_peek', 2, '$I11', '$I12', '$I10')
+ ops.'push_pirop'('ne', pos, '$I12', fail)
+ if iter goto iter_loop
+ iter_done:
+ done:
+ .return (ops)
+.end
+
+
=item cut(PAST::Regex node)
Generate POST for the cut-group and cut-rule operators.
@@ -3114,6 +3237,69 @@
.return (ops)
.end
+.sub 'enumcharlist_q' :method :multi(_, ['PAST';'Regex'])
+ .param pmc node
+ .param string backtrack
+ .param int min
+ .param int max
+ .param pmc sep
+
+ if backtrack != 'r' goto pessimistic
+ if sep goto pessimistic
+
+ .local pmc cur, tgt, pos, off, eos, fail, rep, ops
+ (cur, tgt, pos, off, eos, fail, rep) = self.'!rxregs'('cur tgt pos off eos fail rep')
+ ops = self.'post_new'('Ops', 'node'=>node, 'result'=>cur)
+
+ .local string charlist
+ charlist = node[0]
+ charlist = self.'escape'(charlist)
+ .local pmc negate, testop
+ negate = node.'negate'()
+ testop = self.'??!!'(negate, 'ge', 'lt')
+ .local string subtype
+ subtype = node.'subtype'()
+ if subtype == 'zerowidth' goto pessimistic
+
+ .local pmc looplabel, donelabel
+ .local string name
+ name = self.'unique'('rxenumcharlistq')
+ $S1 = concat name, '_loop'
+ looplabel = self.'post_new'('Label', 'result'=>$S1)
+ $S1 = concat name, '_done'
+ donelabel = self.'post_new'('Label', 'result'=>$S1)
+
+ ops.'push_pirop'('inline', negate, subtype, backtrack, min, max, 'inline'=>' # rx enumcharlist_q negate=%0 %1 %2 %3..%4')
+ ops.'push_pirop'('sub', '$I10', pos, off)
+ ops.'push_pirop'('set', rep, 0)
+ ops.'push_pirop'('sub', '$I12', eos, pos)
+ unless max > 0 goto max1_done
+ ops.'push_pirop'('le', '$I12', max, looplabel)
+ ops.'push_pirop'('set', '$I12', max)
+ max1_done:
+ ops.'push'(looplabel)
+ ops.'push_pirop'('le', '$I12', 0, donelabel)
+ ops.'push_pirop'('substr', '$S10', tgt, '$I10', 1)
+ ops.'push_pirop'('index', '$I11', charlist, '$S10')
+ ops.'push_pirop'(testop, '$I11', 0, donelabel)
+ ops.'push_pirop'('inc', rep)
+ if max == 1 goto max2_done
+ ops.'push_pirop'('inc', '$I10')
+ ops.'push_pirop'('dec', '$I12')
+ ops.'push_pirop'('goto', looplabel)
+ max2_done:
+ ops.'push'(donelabel)
+ unless min > 0 goto min2_done
+ ops.'push_pirop'('lt', rep, min, fail)
+ min2_done:
+ ops.'push_pirop'('add', pos, pos, rep)
+ .return (ops)
+
+ pessimistic:
+ null ops
+ .return (ops)
+.end
+
=item literal(PAST::Regex node)
@@ -3165,7 +3351,7 @@
ops.'push_pirop'('inline', subtype, $S0, 'inline'=>' # rx literal %0 %1')
ops.'push'(lpost)
- .local int litlen
+ .local string litlen
if litconst goto litlen_const
litlen = '$I10'
ops.'push_pirop'('length', '$I10', lpost)
@@ -3182,12 +3368,23 @@
# compute string to be matched and fail if mismatch
ops.'push_pirop'('sub', '$I11', pos, off)
+ if ignorecase goto literal_ignorecase
+ if litlen == "1" goto literal_1
+ ops.'push_pirop'('substr', '$S10', tgt, '$I11', litlen)
+ ops.'push_pirop'('ne', '$S10', lpost, fail)
+ goto literal_pass
+ literal_1:
+ $S0 = lpast
+ $I0 = ord $S0
+ ops.'push_pirop'('ord', '$I11', tgt, '$I11')
+ ops.'push_pirop'('ne', '$I11', $I0, fail)
+ goto literal_pass
+ literal_ignorecase:
ops.'push_pirop'('substr', '$S10', tgt, '$I11', litlen)
- unless ignorecase goto literal_test
ops.'push_pirop'('downcase', '$S10', '$S10')
- literal_test:
ops.'push_pirop'('ne', '$S10', lpost, fail)
+ literal_pass:
# increase position by literal length and move on
ops.'push_pirop'('add', pos, litlen)
done:
@@ -3240,7 +3437,7 @@
ops.'push_pirop'('inline', 'inline'=>' # rx pass')
self.'!cursorop'(ops, '!cursor_pass', 0, pos, regexname)
- self.'!cursorop'(ops, '!cursor_debug', 0, '"PASS "', regexname, '" at pos="', pos)
+ self.'!cursorop'(ops, '!cursor_debug', 0, '"PASS"', regexname, '" at pos="', pos)
.local string backtrack
backtrack = node.'backtrack'()
Modified: branches/unshared_buffers/include/parrot/call.h
==============================================================================
--- branches/unshared_buffers/include/parrot/call.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/call.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -334,45 +334,54 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
FLOATVAL * Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP,
- ARGIN(PMC *ctx),
+ ARGIN(const PMC *ctx),
UINTVAL idx)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
INTVAL * Parrot_pcc_get_INTVAL_reg(PARROT_INTERP,
- ARGIN(PMC *ctx),
+ ARGIN(const PMC *ctx),
UINTVAL idx)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
PMC ** Parrot_pcc_get_PMC_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
-Regs_ni* Parrot_pcc_get_regs_ni(PARROT_INTERP, ARGIN(PMC *ctx))
+Regs_ni* Parrot_pcc_get_regs_ni(PARROT_INTERP, ARGIN(const PMC *ctx))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
Regs_ps* Parrot_pcc_get_regs_ps(PARROT_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-UINTVAL Parrot_pcc_get_regs_used(PARROT_INTERP, ARGIN(PMC *ctx), int type)
+PARROT_PURE_FUNCTION
+UINTVAL Parrot_pcc_get_regs_used(PARROT_INTERP,
+ ARGIN(const PMC *ctx),
+ int type)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
STRING ** Parrot_pcc_get_STRING_reg(PARROT_INTERP,
ARGIN(PMC *ctx),
@@ -381,8 +390,9 @@
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_sub(PARROT_INTERP, ARGIN(PMC *ctx))
+PMC* Parrot_pcc_get_sub(PARROT_INTERP, ARGIN(const PMC *ctx))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
Modified: branches/unshared_buffers/include/parrot/encoding.h
==============================================================================
--- branches/unshared_buffers/include/parrot/encoding.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/encoding.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -30,8 +30,16 @@
struct string_iterator_t; /* s. parrot/string.h */
-typedef void (*encoding_iter_init_t)(PARROT_INTERP, const STRING *src,
- struct string_iterator_t *);
+typedef UINTVAL (*encoding_iter_get_t)(
+ PARROT_INTERP, const STRING *str, const String_iter *i, INTVAL offset);
+typedef void (*encoding_iter_skip_t)(
+ PARROT_INTERP, const STRING *str, String_iter *i, INTVAL skip);
+typedef UINTVAL (*encoding_iter_get_and_advance_t)(
+ PARROT_INTERP, const STRING *str, String_iter *i);
+typedef void (*encoding_iter_set_and_advance_t)(
+ PARROT_INTERP, STRING *str, String_iter *i, UINTVAL c);
+typedef void (*encoding_iter_set_position_t)(
+ PARROT_INTERP, const STRING *str, String_iter *i, UINTVAL pos);
struct _encoding {
ARGIN(const char *name);
@@ -44,9 +52,13 @@
encoding_get_bytes_t get_bytes;
encoding_codepoints_t codepoints;
encoding_bytes_t bytes;
- encoding_iter_init_t iter_init;
encoding_find_cclass_t find_cclass;
encoding_hash_t hash;
+ encoding_iter_get_t iter_get;
+ encoding_iter_skip_t iter_skip;
+ encoding_iter_get_and_advance_t iter_get_and_advance;
+ encoding_iter_set_and_advance_t iter_set_and_advance;
+ encoding_iter_set_position_t iter_set_position;
};
typedef struct _encoding ENCODING;
@@ -209,8 +221,6 @@
((src)->encoding)->codepoints((i), (src))
#define ENCODING_BYTES(i, src) \
((src)->encoding)->bytes((i), (src))
-#define ENCODING_ITER_INIT(i, src, iter) \
- ((src)->encoding)->iter_init((i), (src), (iter))
#define ENCODING_FIND_CCLASS(i, src, typetable, flags, pos, end) \
((src)->encoding)->find_cclass((i), (src), (typetable), (flags), (pos), (end))
#define ENCODING_HASH(i, src, seed) \
Modified: branches/unshared_buffers/include/parrot/hash.h
==============================================================================
--- branches/unshared_buffers/include/parrot/hash.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/hash.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -21,7 +21,6 @@
/* A BucketIndex is an index into the pool of available buckets. */
typedef UINTVAL BucketIndex;
-#define INITBucketIndex ((BucketIndex)-2)
#define N_BUCKETS(n) ((n))
#define HASH_ALLOC_SIZE(n) (N_BUCKETS(n) * sizeof (HashBucket) + \
@@ -51,7 +50,7 @@
HashBucket *buckets;
/* List of Bucket pointers */
- HashBucket **bucket_indices;
+ HashBucket **index;
/* Store for empty buckets */
HashBucket *free_list;
@@ -78,6 +77,51 @@
hash_hash_key_fn hash_val;
};
+/* Utility macros - use them, do not reinvent the wheel */
+#define parrot_hash_iterate parrot_hash_iterate_linear
+
+#define parrot_hash_iterate_linear(_hash, _code) \
+{ \
+ HashBucket *_bucket = (_hash)->buckets; \
+ UINTVAL _found = 0; \
+ while (_found < (_hash)->entries){ \
+ if (_bucket->key){ \
+ _found++; \
+ { \
+ _code \
+ } \
+ } \
+ _bucket++; \
+ } \
+}
+
+#define parrot_hash_iterate_indexed(_hash, _code) \
+{ \
+ INTVAL _loc; \
+ for (_loc = (_hash)->mask; _loc >= 0; --_loc) { \
+ HashBucket *_bucket = (_hash)->index[_loc]; \
+ while (_bucket) { \
+ _code \
+ _bucket = _bucket->next; \
+ } \
+ } \
+}
+
+
+#define parrot_hash_iterator_advance(_hash, _bucket, _loc) \
+{ \
+ /* Try to advance current bucket */ \
+ if ((_bucket)) \
+ (_bucket) = (_bucket)->next; \
+ while (!(_bucket)) { \
+ /* If there is no more buckets */ \
+ if ((_loc) == (INTVAL)(_hash)->mask+1) \
+ break; \
+ (_bucket) = (_hash)->index[(_loc)++]; \
+ } \
+}
+
+
typedef void (*value_free)(ARGFREE(void *));
/* To avoid creating OrderedHashItem PMC we reuse FixedPMCArray PMC */
@@ -146,17 +190,6 @@
__attribute__nonnull__(2);
PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-void * parrot_hash_get_idx(PARROT_INTERP,
- ARGIN(const Hash *hash),
- ARGMOD(PMC *key))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*key);
-
-PARROT_EXPORT
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
HashBucket* parrot_hash_put(PARROT_INTERP,
@@ -174,16 +207,6 @@
__attribute__nonnull__(2);
PARROT_EXPORT
-void parrot_hash_visit(PARROT_INTERP,
- ARGMOD(Hash *hash),
- ARGMOD(void *pinfo))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*hash)
- FUNC_MODIFIES(*pinfo);
-
-PARROT_EXPORT
void parrot_mark_hash(PARROT_INTERP, ARGMOD(Hash *hash))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -210,19 +233,40 @@
Hash * parrot_new_pointer_hash(PARROT_INTERP)
__attribute__nonnull__(1);
-PARROT_CANNOT_RETURN_NULL
-PMC* get_integer_pmc(PARROT_INTERP, INTVAL value)
- __attribute__nonnull__(1);
+PARROT_WARN_UNUSED_RESULT
+PARROT_CONST_FUNCTION
+int hash_compare_int(SHIM_INTERP,
+ ARGIN_NULLOK(const void *a),
+ ARGIN_NULLOK(const void *b));
-PARROT_CANNOT_RETURN_NULL
-PMC* get_number_pmc(PARROT_INTERP, FLOATVAL value)
- __attribute__nonnull__(1);
+PARROT_WARN_UNUSED_RESULT
+PARROT_PURE_FUNCTION
+int hash_compare_pmc(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
-PARROT_CANNOT_RETURN_NULL
-PMC * get_string_pmc(PARROT_INTERP, ARGIN(STRING *value))
+PARROT_WARN_UNUSED_RESULT
+PARROT_CONST_FUNCTION
+int hash_compare_pointer(SHIM_INTERP,
+ ARGIN_NULLOK(const void *a),
+ ARGIN_NULLOK(const void *b));
+
+PARROT_WARN_UNUSED_RESULT
+int hash_compare_string(PARROT_INTERP,
+ ARGIN(const void *search_key),
+ ARGIN_NULLOK(const void *bucket_key))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
+int hash_compare_string_distinct_enc(PARROT_INTERP,
+ ARGIN(const void *search_key),
+ ARGIN(const void *bucket_key))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
PARROT_CAN_RETURN_NULL
void* hash_key_from_int(PARROT_INTERP, ARGIN(const Hash *hash), INTVAL key)
__attribute__nonnull__(1)
@@ -321,12 +365,6 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CONST_FUNCTION
-int int_compare(SHIM_INTERP,
- ARGIN_NULLOK(const void *a),
- ARGIN_NULLOK(const void *b));
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
size_t key_hash_int(SHIM_INTERP,
ARGIN_NULLOK(const void *value),
size_t seed);
@@ -370,6 +408,19 @@
__attribute__nonnull__(4)
__attribute__nonnull__(5);
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_MALLOC
+Hash * parrot_create_hash_sized(PARROT_INTERP,
+ PARROT_DATA_TYPE val_type,
+ Hash_key_type hkey_type,
+ NOTNULL(hash_comp_fn compare),
+ NOTNULL(hash_hash_key_fn keyhash),
+ UINTVAL size)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5);
+
void parrot_hash_clone_prunable(PARROT_INTERP,
ARGIN(const Hash *hash),
ARGOUT(Hash *dest),
@@ -379,27 +430,21 @@
__attribute__nonnull__(3)
FUNC_MODIFIES(*dest);
-PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
-int PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b))
+void Parrot_hash_freeze(PARROT_INTERP,
+ ARGIN(const Hash *hash),
+ ARGMOD(PMC *info))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_WARN_UNUSED_RESULT
-int STRING_compare(PARROT_INTERP,
- ARGIN(const void *search_key),
- ARGIN_NULLOK(const void *bucket_key))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*info);
+PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-int STRING_compare_distinct_cs_enc(PARROT_INTERP,
- ARGIN(const void *search_key),
- ARGIN(const void *bucket_key))
+PARROT_MALLOC
+Hash * Parrot_hash_thaw(PARROT_INTERP, ARGMOD(PMC *info))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- __attribute__nonnull__(3);
+ FUNC_MODIFIES(*info);
#define ASSERT_ARGS_parrot_dump_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_parrot_hash_clone __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -424,19 +469,11 @@
#define ASSERT_ARGS_parrot_hash_get_bucket __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash))
-#define ASSERT_ARGS_parrot_hash_get_idx __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(hash) \
- , PARROT_ASSERT_ARG(key))
#define ASSERT_ARGS_parrot_hash_put __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash))
#define ASSERT_ARGS_parrot_hash_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(hash))
-#define ASSERT_ARGS_parrot_hash_visit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(hash) \
- , PARROT_ASSERT_ARG(pinfo))
#define ASSERT_ARGS_parrot_mark_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash))
@@ -448,13 +485,20 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_parrot_new_pointer_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_get_integer_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_get_number_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_get_string_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_hash_compare_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_hash_compare_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(value))
+ , PARROT_ASSERT_ARG(a) \
+ , PARROT_ASSERT_ARG(b))
+#define ASSERT_ARGS_hash_compare_pointer __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_hash_compare_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(search_key))
+#define ASSERT_ARGS_hash_compare_string_distinct_enc \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(search_key) \
+ , PARROT_ASSERT_ARG(bucket_key))
#define ASSERT_ARGS_hash_key_from_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash))
@@ -500,7 +544,6 @@
#define ASSERT_ARGS_hash_value_to_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash))
-#define ASSERT_ARGS_int_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_key_hash_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_key_hash_PMC __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -519,22 +562,21 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(compare) \
, PARROT_ASSERT_ARG(keyhash))
+#define ASSERT_ARGS_parrot_create_hash_sized __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(compare) \
+ , PARROT_ASSERT_ARG(keyhash))
#define ASSERT_ARGS_parrot_hash_clone_prunable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash) \
, PARROT_ASSERT_ARG(dest))
-#define ASSERT_ARGS_PMC_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_hash_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(a) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_STRING_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(search_key))
-#define ASSERT_ARGS_STRING_compare_distinct_cs_enc \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ , PARROT_ASSERT_ARG(hash) \
+ , PARROT_ASSERT_ARG(info))
+#define ASSERT_ARGS_Parrot_hash_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(search_key) \
- , PARROT_ASSERT_ARG(bucket_key))
+ , PARROT_ASSERT_ARG(info))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/hash.c */
Modified: branches/unshared_buffers/include/parrot/io.h
==============================================================================
--- branches/unshared_buffers/include/parrot/io.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/io.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -875,6 +875,7 @@
FUNC_MODIFIES(*socket);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
INTVAL Parrot_io_socket_is_closed(ARGMOD(PMC *socket))
Modified: branches/unshared_buffers/include/parrot/oplib/core_ops.h
==============================================================================
--- branches/unshared_buffers/include/parrot/oplib/core_ops.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/oplib/core_ops.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -20,7 +20,7 @@
#include "parrot/oplib.h"
#include "parrot/runcore_api.h"
- op_lib_t *Parrot_DynOp_core_2_6_0(PARROT_INTERP, long init);
+ op_lib_t *Parrot_DynOp_core_2_7_0(PARROT_INTERP, long init);
opcode_t * Parrot_end(opcode_t *, PARROT_INTERP);
opcode_t * Parrot_noop(opcode_t *, PARROT_INTERP);
Modified: branches/unshared_buffers/include/parrot/packfile.h
==============================================================================
--- branches/unshared_buffers/include/parrot/packfile.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/packfile.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -1213,138 +1213,6 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/packfile/pf_items.c */
-
-
-/*
-** Byte Ordering Functions (byteorder.c)
-*/
-
-/* HEADERIZER BEGIN: src/byteorder.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-void fetch_buf_be_12(
- ARGOUT(unsigned char *rb),
- ARGIN(const unsigned char *b))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*rb);
-
-void fetch_buf_be_16(
- ARGOUT(unsigned char *rb),
- ARGIN(const unsigned char *b))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*rb);
-
-void fetch_buf_be_32(
- ARGOUT(unsigned char *rb),
- ARGIN(const unsigned char *b))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*rb);
-
-void fetch_buf_be_4(
- ARGOUT(unsigned char *rb),
- ARGIN(const unsigned char *b))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*rb);
-
-void fetch_buf_be_8(
- ARGOUT(unsigned char *rb),
- ARGIN(const unsigned char *b))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*rb);
-
-void fetch_buf_le_12(
- ARGOUT(unsigned char *rb),
- ARGIN(const unsigned char *b))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*rb);
-
-void fetch_buf_le_16(
- ARGOUT(unsigned char *rb),
- ARGIN(const unsigned char *b))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*rb);
-
-void fetch_buf_le_32(
- ARGOUT(unsigned char *rb),
- ARGIN(const unsigned char *b))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*rb);
-
-void fetch_buf_le_4(
- ARGOUT(unsigned char *rb),
- ARGIN(const unsigned char *b))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*rb);
-
-void fetch_buf_le_8(
- ARGOUT(unsigned char *rb),
- ARGIN(const unsigned char *b))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*rb);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-INTVAL fetch_iv_be(INTVAL w);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-INTVAL fetch_iv_le(INTVAL w);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-opcode_t fetch_op_be(opcode_t w);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-opcode_t fetch_op_le(opcode_t w);
-
-#define ASSERT_ARGS_fetch_buf_be_12 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(rb) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_fetch_buf_be_16 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(rb) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_fetch_buf_be_32 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(rb) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_fetch_buf_be_4 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(rb) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_fetch_buf_be_8 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(rb) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_fetch_buf_le_12 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(rb) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_fetch_buf_le_16 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(rb) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_fetch_buf_le_32 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(rb) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_fetch_buf_le_4 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(rb) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_fetch_buf_le_8 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(rb) \
- , PARROT_ASSERT_ARG(b))
-#define ASSERT_ARGS_fetch_iv_be __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_fetch_iv_le __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_fetch_op_be __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_fetch_op_le __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/byteorder.c */
-
#endif /* PARROT_PACKFILE_H_GUARD */
/*
Modified: branches/unshared_buffers/include/parrot/platform_interface.h
==============================================================================
--- branches/unshared_buffers/include/parrot/platform_interface.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/platform_interface.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -49,6 +49,13 @@
# define mem_realloc_executable(a, b, c) mem_internal_realloc((a), (c))
#endif
+
+/*
+** Process ID
+*/
+
+UINTVAL Parrot_getpid(void);
+
/*
** Time
*/
Modified: branches/unshared_buffers/include/parrot/pobj.h
==============================================================================
--- branches/unshared_buffers/include/parrot/pobj.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/pobj.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -320,8 +320,8 @@
#define PObj_gc_CLEAR(o) (PObj_get_FLAGS(o) \
&= ~PObj_custom_destroy_FLAG \
- | ~PObj_custom_mark_FLAG \
- | ~PObj_live_FLAG)
+ & ~PObj_custom_mark_FLAG \
+ & ~PObj_live_FLAG)
#endif /* PARROT_POBJ_H_GUARD */
Modified: branches/unshared_buffers/include/parrot/scheduler_private.h
==============================================================================
--- branches/unshared_buffers/include/parrot/scheduler_private.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/scheduler_private.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -19,7 +19,8 @@
typedef enum {
SCHEDULER_cache_valid_FLAG = PObj_private0_FLAG,
SCHEDULER_wake_requested_FLAG = PObj_private1_FLAG,
- SCHEDULER_terminate_requested_FLAG = PObj_private2_FLAG
+ SCHEDULER_terminate_requested_FLAG = PObj_private2_FLAG,
+ SCHEDULER_in_handler_FLAG = PObj_private3_FLAG
} scheduler_flags_enum;
#define SCHEDULER_get_FLAGS(o) (PObj_get_FLAGS(o))
@@ -42,6 +43,11 @@
#define SCHEDULER_terminate_requested_SET(o) SCHEDULER_flag_SET(terminate_requested, o)
#define SCHEDULER_terminate_requested_CLEAR(o) SCHEDULER_flag_CLEAR(terminate_requested, o)
+/* Mark if the scheduler is inside a handler */
+#define SCHEDULER_in_handler_TEST(o) SCHEDULER_flag_TEST(in_handler, o)
+#define SCHEDULER_in_handler_SET(o) SCHEDULER_flag_SET(in_handler, o)
+#define SCHEDULER_in_handler_CLEAR(o) SCHEDULER_flag_CLEAR(in_handler, o)
+
/*
* Task private flags
*/
Modified: branches/unshared_buffers/include/parrot/string.h
==============================================================================
--- branches/unshared_buffers/include/parrot/string.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/string.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -25,14 +25,23 @@
/* String iterator */
typedef struct string_iterator_t {
- const STRING *str;
UINTVAL bytepos;
UINTVAL charpos;
- UINTVAL (*get_and_advance)(PARROT_INTERP, struct string_iterator_t *i);
- void (*set_and_advance)(PARROT_INTERP, struct string_iterator_t *i, UINTVAL c);
- void (*set_position)(PARROT_INTERP, struct string_iterator_t *i, UINTVAL pos);
} String_iter;
+#define STRING_ITER_INIT(i, iter) \
+ (iter)->charpos = (iter)->bytepos = 0
+#define STRING_ITER_GET(i, str, iter, offset) \
+ ((str)->encoding)->iter_get((i), (str), (iter), (offset))
+#define STRING_ITER_SKIP(i, str, iter, skip) \
+ ((str)->encoding)->iter_skip((i), (str), (iter), (skip))
+#define STRING_ITER_GET_AND_ADVANCE(i, str, iter) \
+ ((str)->encoding)->iter_get_and_advance((i), (str), (iter))
+#define STRING_ITER_SET_AND_ADVANCE(i, str, iter, c) \
+ ((str)->encoding)->iter_set_and_advance((i), (str), (iter), (c))
+#define STRING_ITER_SET_POSITION(i, str, iter, pos) \
+ ((str)->encoding)->iter_set_position((i), (str), (iter), (pos))
+
#define STREQ(x, y) (strcmp((x), (y))==0)
#define STRNEQ(x, y) (strcmp((x), (y))!=0)
Modified: branches/unshared_buffers/include/parrot/string_funcs.h
==============================================================================
--- branches/unshared_buffers/include/parrot/string_funcs.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/include/parrot/string_funcs.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -226,6 +226,31 @@
INTVAL Parrot_str_is_null(SHIM_INTERP, ARGIN_NULLOK(const STRING *s));
PARROT_EXPORT
+INTVAL Parrot_str_iter_index(PARROT_INTERP,
+ ARGIN(const STRING *src),
+ ARGMOD(String_iter *start),
+ ARGOUT(String_iter *end),
+ ARGIN(const STRING *search))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5)
+ FUNC_MODIFIES(*start)
+ FUNC_MODIFIES(*end);
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+STRING * Parrot_str_iter_substr(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGIN(const String_iter *l),
+ ARGIN_NULLOK(const String_iter *r))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
STRING* Parrot_str_join(PARROT_INTERP,
@@ -559,6 +584,16 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_Parrot_str_is_null __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_str_iter_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(src) \
+ , PARROT_ASSERT_ARG(start) \
+ , PARROT_ASSERT_ARG(end) \
+ , PARROT_ASSERT_ARG(search))
+#define ASSERT_ARGS_Parrot_str_iter_substr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(l))
#define ASSERT_ARGS_Parrot_str_join __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(ar))
Modified: branches/unshared_buffers/lib/Parrot/Configure/Compiler.pm
==============================================================================
--- branches/unshared_buffers/lib/Parrot/Configure/Compiler.pm Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/lib/Parrot/Configure/Compiler.pm Sun Aug 29 17:09:11 2010 (r48719)
@@ -1,15 +1,17 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
-Parrot::Configure::Compiler - C-Related methods for configuration
+Parrot::Configure::Compiler - C-Related methods for configuration and more
=head1 DESCRIPTION
The Parrot::Configure::Compiler module provides methods inherited by
Parrot::Configure which prepare and/or run C programs during
-compilation.
+compilation. Also other files like makefiles will be generated with methods
+from this module by replacing entries like C<@key@> with C<key>'s value from
+the configuration system's data.
=head2 Methods
@@ -193,6 +195,49 @@
qw( .exe.manifest .ilk .pdb );
}
+=item C<shebang_mod()>
+
+ $conf->shebang_mod($source, $target);
+
+Takes the specified source file, replacing entries like C<@key@> with
+C<key>'s value from the configuration system's data, and writes the results
+to specified target file. The replacement is only done in the first line of
+the file normally to set the shebang value accordingly.
+
+=cut
+
+sub shebang_mod {
+ my $conf = shift;
+ my ( $source, $target ) = @_;
+
+ open my $in, '<', $source or die "Can't open $source: $!";
+ open my $out, '>', "$target.tmp" or die "Can't open $target.tmp: $!";
+
+ my $line = <$in>;
+
+ # interpolate @foo@ values
+ $line =~ s{ \@ (\w+) \@ }{
+ if(defined(my $val=$conf->data->get($1))) {
+ $val;
+ }
+ else {
+ warn "value for '\@$1\@' in $source is undef";
+ '';
+ }
+ }egx;
+
+ print $out $line;
+
+ while ( my $line = <$in> ) {
+ print $out $line;
+ }
+
+ close($in) or die "Can't close $source: $!";
+ close($out) or die "Can't close $target: $!";
+
+ move_if_diff( "$target.tmp", $target );
+}
+
=item C<genfile()>
$conf->genfile($source, $target, %options);
Modified: branches/unshared_buffers/lib/Parrot/Docs/Section/Tools.pm
==============================================================================
--- branches/unshared_buffers/lib/Parrot/Docs/Section/Tools.pm Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/lib/Parrot/Docs/Section/Tools.pm Sun Aug 29 17:09:11 2010 (r48719)
@@ -85,7 +85,7 @@
$self->new_item( '', 'tools/dev/list_unjitted.pl' ),
$self->new_item( '', 'tools/dev/gen_class.pl' ),
$self->new_item( '', 'tools/dev/nm.pl' ),
- $self->new_item( '', 'tools/util/ncidef2pasm.pl' ),
+ $self->new_item( '', 'tools/dev/ncidef2pasm.pl' ),
$self->new_item( '', 'tools/dev/pbc_header.pl' ),
),
$self->new_group(
Modified: branches/unshared_buffers/ports/debian/rules
==============================================================================
--- branches/unshared_buffers/ports/debian/rules Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/ports/debian/rules Sun Aug 29 17:09:11 2010 (r48719)
@@ -42,7 +42,7 @@
dh_testdir
$(MAKE) installable LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}`pwd`/blib/lib
pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" docs/running.pod debian/parrot.1
- pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" tools/util/parrot-config.pir debian/parrot_config.1
+ pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" tools/dev/parrot-config.pir debian/parrot_config.1
pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" src/pbc_dump.c debian/pbc_dump.1
pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" src/pbc_disassemble.c debian/pbc_disassemble.1
pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" src/parrot_debugger.c debian/parrot_debugger.1
Modified: branches/unshared_buffers/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/unshared_buffers/runtime/parrot/library/distutils.pir Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/runtime/parrot/library/distutils.pir Sun Aug 29 17:09:11 2010 (r48719)
@@ -2333,11 +2333,11 @@
if $I0 goto L1
$S0 = array
$S3 = $S0
- $S2 = $S1 . $S3
$I0 = index $S0, "build/"
unless $I0 == 0 goto L0
$S3 = substr $S0, 6
L0:
+ $S2 = $S1 . $S3
files[$S2] = $S0
goto L2
L1:
Deleted: branches/unshared_buffers/src/byteorder.c
==============================================================================
--- branches/unshared_buffers/src/byteorder.c Sun Aug 29 17:09:11 2010 (r48718)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,567 +0,0 @@
-/*
-Copyright (C) 2001-2009, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/byteorder.c - Byteordering functions
-
-=head1 DESCRIPTION
-
-These are assigned to a vtable when the PBC file is loaded.
-
-If the vtable function for conversion from the native byteorder is called,
-it is a I<no op> and will work, but the caller should know if the
-byteorder in the PBC file is native and skip the conversion and just map
-it in.
-
-=head2 Byte order handlers
-
-Configure will have checked for supported word sizes.
-
-=over 4
-
-=cut
-
-*/
-
-#include "parrot/parrot.h"
-
-/* HEADERIZER HFILE: include/parrot/packfile.h */
-
-/*
-
-=item C<INTVAL fetch_iv_le(INTVAL w)>
-
-This function converts a 4 or 8 byte C<INTVAL> into little endian
-format. If the native format is already little endian, then no
-conversion is done.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-INTVAL
-fetch_iv_le(INTVAL w)
-{
- ASSERT_ARGS(fetch_iv_le)
-#if !PARROT_BIGENDIAN
- return w;
-#else
-# if INTVAL_SIZE == 4
- return (w << 24) | ((w & 0xff00) << 8) | ((w & 0xff0000) >> 8) | (w >> 24);
-# else
-# if INTVAL_SIZE == 8
- INTVAL r;
-
- r = w << 56;
- r |= (w & 0xff00) << 40;
- r |= (w & 0xff0000) << 24;
- r |= (w & 0xff000000) << 8;
- r |= (w & 0xff00000000) >> 8;
- r |= (w & 0xff0000000000) >> 24;
- r |= (w & 0xff000000000000) >> 40;
- r |= (w & 0xff00000000000000) >> 56;
- return r;
-# else
- exit_fatal(1, "Unsupported INTVAL_SIZE=%d\n",
- INTVAL_SIZE);
-# endif
-# endif
-#endif
-}
-
-/*
-
-=item C<INTVAL fetch_iv_be(INTVAL w)>
-
-This function converts a 4 or 8 byte C<INTVAL> into big endian format.
-If the native format is already big endian, then no conversion is done.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-INTVAL
-fetch_iv_be(INTVAL w)
-{
- ASSERT_ARGS(fetch_iv_be)
-#if PARROT_BIGENDIAN
- return w;
-#else
-# if INTVAL_SIZE == 4
- return (w << 24) | ((w & 0xff00) << 8) | ((w & 0xff0000) >> 8) | (w >> 24);
-# else
-# if INTVAL_SIZE == 8
- INTVAL r;
- r = w << 56;
- r |= (w & 0xff00) << 40;
- r |= (w & 0xff0000) << 24;
- r |= (w & 0xff000000) << 8;
- r |= (w & 0xff00000000) >> 8;
- r |= (w & 0xff0000000000) >> 24;
- r |= (w & 0xff000000000000) >> 40;
- r |= (w & 0xff00000000000000) >> 56;
- return r;
-# else
- exit_fatal(1, "Unsupported INTVAL_SIZE=%d\n",
- INTVAL_SIZE);
-# endif
-# endif
-#endif
-}
-
-/*
-
-=item C<opcode_t fetch_op_be(opcode_t w)>
-
-Same as C<fetch_iv_be> for opcode_t
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-opcode_t
-fetch_op_be(opcode_t w)
-{
- ASSERT_ARGS(fetch_op_be)
-#if PARROT_BIGENDIAN
- return w;
-#else
-# if OPCODE_T_SIZE == 4
- return (w << 24) | ((w & 0x0000ff00) << 8) | ((w & 0x00ff0000) >> 8) |
- ((w & 0xff000000) >> 24);
-# else
- opcode_t r;
-
- r = w << 56;
- r |= (w & 0xff00) << 40;
- r |= (w & 0xff0000) << 24;
- r |= (w & 0xff000000) << 8;
- r |= (w & 0xff00000000) >> 8;
- r |= (w & 0xff0000000000) >> 24;
- r |= (w & 0xff000000000000) >> 40;
- r |= (w & 0xff00000000000000) >> 56;
- return r;
-# endif
-#endif
-}
-
-/*
-
-=item C<opcode_t fetch_op_le(opcode_t w)>
-
-Same as C<fetch_iv_le> for opcode_t
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-opcode_t
-fetch_op_le(opcode_t w)
-{
- ASSERT_ARGS(fetch_op_le)
-#if !PARROT_BIGENDIAN
- return w;
-#else
-# if OPCODE_T_SIZE == 4
- return (w << 24) | ((w & 0x0000ff00) << 8) | ((w & 0x00ff0000) >> 8) |
- ((w & 0xff000000) >> 24);
-# else
- opcode_t r;
-
- r = w << 56;
- r |= (w & 0xff00) << 40;
- r |= (w & 0xff0000) << 24;
- r |= (w & 0xff000000) << 8;
- r |= (w & 0xff00000000) >> 8;
- r |= (w & 0xff0000000000) >> 24;
- r |= (w & 0xff000000000000) >> 40;
- r |= (w & 0xff00000000000000) >> 56;
- return r;
-# endif
-#endif
-}
-
-/*
-
-=pod
-
-Unrolled routines for swapping various sizes from 32-128 bits. These
-should only be used if alignment is unknown or we are pulling something
-out of a padded buffer.
-
-=cut
-
-*/
-
-/*
-
-=item C<void fetch_buf_be_4(unsigned char *rb, const unsigned char *b)>
-
-Converts a 4-byte big-endian buffer C<b> into a little-endian C<rb>.
-
-=cut
-
-*/
-
-void
-fetch_buf_be_4(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
-{
- ASSERT_ARGS(fetch_buf_be_4)
-#if PARROT_BIGENDIAN
- memcpy(rb, b, 4);
-#else
- rb[0] = b[3];
- rb[1] = b[2];
- rb[2] = b[1];
- rb[3] = b[0];
-#endif
-}
-
-/*
-
-=item C<void fetch_buf_le_4(unsigned char *rb, const unsigned char *b)>
-
-Converts a 4-byte little-endian buffer C<b> into a big-endian buffer C<rb>.
-
-=cut
-
-*/
-
-void
-fetch_buf_le_4(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
-{
- ASSERT_ARGS(fetch_buf_le_4)
-#if !PARROT_BIGENDIAN
- memcpy(rb, b, 4);
-#else
- rb[0] = b[3];
- rb[1] = b[2];
- rb[2] = b[1];
- rb[3] = b[0];
-#endif
-}
-
-/*
-
-=item C<void fetch_buf_be_8(unsigned char *rb, const unsigned char *b)>
-
-Converts an 8-byte big-endian buffer C<b> into a little-endian buffer C<rb>
-
-=cut
-
-*/
-
-void
-fetch_buf_be_8(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
-{
- ASSERT_ARGS(fetch_buf_be_8)
-#if PARROT_BIGENDIAN
- memcpy(rb, b, 8);
-#else
- rb[0] = b[7];
- rb[1] = b[6];
- rb[2] = b[5];
- rb[3] = b[4];
- rb[4] = b[3];
- rb[5] = b[2];
- rb[6] = b[1];
- rb[7] = b[0];
-#endif
-}
-
-/*
-
-=item C<void fetch_buf_le_8(unsigned char *rb, const unsigned char *b)>
-
-Converts an 8-byte little-endian buffer C<b> into a big-endian buffer C<rb>.
-
-=cut
-
-*/
-
-void
-fetch_buf_le_8(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
-{
- ASSERT_ARGS(fetch_buf_le_8)
-#if !PARROT_BIGENDIAN
- memcpy(rb, b, 8);
-#else
- rb[0] = b[7];
- rb[1] = b[6];
- rb[2] = b[5];
- rb[3] = b[4];
- rb[4] = b[3];
- rb[5] = b[2];
- rb[6] = b[1];
- rb[7] = b[0];
-#endif
-}
-
-/*
-
-=item C<void fetch_buf_le_12(unsigned char *rb, const unsigned char *b)>
-
-Converts a 12-byte little-endian buffer C<b> into a big-endian buffer C<b>.
-
-=cut
-
-*/
-
-void
-fetch_buf_le_12(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
-{
- ASSERT_ARGS(fetch_buf_le_12)
-#if !PARROT_BIGENDIAN
- memcpy(rb, b, 12);
-#else
- rb[0] = b[11];
- rb[1] = b[10];
- rb[2] = b[9];
- rb[3] = b[8];
- rb[4] = b[7];
- rb[5] = b[6];
- rb[6] = b[5];
- rb[7] = b[4];
- rb[8] = b[3];
- rb[9] = b[2];
- rb[10] = b[1];
- rb[11] = b[0];
-#endif
-}
-
-/*
-
-=item C<void fetch_buf_be_12(unsigned char *rb, const unsigned char *b)>
-
-Converts a 12-byte big-endian buffer C<b> into a little-endian buffer C<b>.
-
-=cut
-
-*/
-
-void
-fetch_buf_be_12(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
-{
- ASSERT_ARGS(fetch_buf_be_12)
-#if PARROT_BIGENDIAN
- memcpy(rb, b, 12);
-#else
- rb[0] = b[11];
- rb[1] = b[10];
- rb[2] = b[9];
- rb[3] = b[8];
- rb[4] = b[7];
- rb[5] = b[6];
- rb[6] = b[5];
- rb[7] = b[4];
- rb[8] = b[3];
- rb[9] = b[2];
- rb[10] = b[1];
- rb[11] = b[0];
-#endif
-}
-
-/*
-
-=item C<void fetch_buf_le_16(unsigned char *rb, const unsigned char *b)>
-
-Converts a 16-byte little-endian buffer C<b> into a big-endian buffer C<b>.
-
-=cut
-
-*/
-
-void
-fetch_buf_le_16(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
-{
- ASSERT_ARGS(fetch_buf_le_16)
-#if !PARROT_BIGENDIAN
- memcpy(rb, b, 16);
-#else
- rb[0] = b[15];
- rb[1] = b[14];
- rb[2] = b[13];
- rb[3] = b[12];
- rb[4] = b[11];
- rb[5] = b[10];
- rb[6] = b[9];
- rb[7] = b[8];
- rb[8] = b[7];
- rb[9] = b[6];
- rb[10] = b[5];
- rb[11] = b[4];
- rb[12] = b[3];
- rb[13] = b[2];
- rb[14] = b[1];
- rb[15] = b[0];
-#endif
-}
-
-/*
-
-=item C<void fetch_buf_be_16(unsigned char *rb, const unsigned char *b)>
-
-Converts a 16-byte big-endian buffer C<b> into a little-endian buffer C<b>.
-
-=cut
-
-*/
-
-void
-fetch_buf_be_16(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
-{
- ASSERT_ARGS(fetch_buf_be_16)
-#if PARROT_BIGENDIAN
- memcpy(rb, b, 16);
-#else
- rb[0] = b[15];
- rb[1] = b[14];
- rb[2] = b[13];
- rb[3] = b[12];
- rb[4] = b[11];
- rb[5] = b[10];
- rb[6] = b[9];
- rb[7] = b[8];
- rb[8] = b[7];
- rb[9] = b[6];
- rb[10] = b[5];
- rb[11] = b[4];
- rb[12] = b[3];
- rb[13] = b[2];
- rb[14] = b[1];
- rb[15] = b[0];
-#endif
-}
-
-/*
-
-=item C<void fetch_buf_le_32(unsigned char *rb, const unsigned char *b)>
-
-Converts a 32-byte little-endian buffer C<b> into a big-endian buffer C<b>.
-
-=cut
-
-*/
-
-void
-fetch_buf_le_32(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
-{
- ASSERT_ARGS(fetch_buf_le_32)
-#if !PARROT_BIGENDIAN
- memcpy(rb, b, 32);
-#else
- rb[0] = b[31];
- rb[1] = b[30];
- rb[2] = b[29];
- rb[3] = b[28];
- rb[4] = b[27];
- rb[5] = b[26];
- rb[6] = b[25];
- rb[7] = b[24];
- rb[8] = b[23];
- rb[9] = b[22];
- rb[10] = b[21];
- rb[11] = b[20];
- rb[12] = b[19];
- rb[13] = b[18];
- rb[14] = b[17];
- rb[15] = b[16];
- rb[16] = b[15];
- rb[17] = b[14];
- rb[18] = b[13];
- rb[19] = b[12];
- rb[20] = b[11];
- rb[21] = b[10];
- rb[22] = b[9];
- rb[23] = b[8];
- rb[24] = b[7];
- rb[25] = b[6];
- rb[26] = b[5];
- rb[27] = b[4];
- rb[28] = b[3];
- rb[29] = b[2];
- rb[30] = b[1];
- rb[31] = b[0];
-#endif
-}
-
-/*
-
-=item C<void fetch_buf_be_32(unsigned char *rb, const unsigned char *b)>
-
-Converts a 32-byte big-endian buffer C<b> into a little-endian buffer C<b>.
-
-=cut
-
-*/
-
-void
-fetch_buf_be_32(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
-{
- ASSERT_ARGS(fetch_buf_be_32)
-#if PARROT_BIGENDIAN
- memcpy(rb, b, 32);
-#else
- rb[0] = b[31];
- rb[1] = b[30];
- rb[2] = b[29];
- rb[3] = b[28];
- rb[4] = b[27];
- rb[5] = b[26];
- rb[6] = b[25];
- rb[7] = b[24];
- rb[8] = b[23];
- rb[9] = b[22];
- rb[10] = b[21];
- rb[11] = b[20];
- rb[12] = b[19];
- rb[13] = b[18];
- rb[14] = b[17];
- rb[15] = b[16];
- rb[16] = b[15];
- rb[17] = b[14];
- rb[18] = b[13];
- rb[19] = b[12];
- rb[20] = b[11];
- rb[21] = b[10];
- rb[22] = b[9];
- rb[23] = b[8];
- rb[24] = b[7];
- rb[25] = b[6];
- rb[26] = b[5];
- rb[27] = b[4];
- rb[28] = b[3];
- rb[29] = b[2];
- rb[30] = b[1];
- rb[31] = b[0];
-#endif
-}
-
-/*
-
-=back
-
-=head1 HISTORY
-
-Initial version by Melvin on 2002/05/01
-
-=cut
-
-*/
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/unshared_buffers/src/call/args.c
==============================================================================
--- branches/unshared_buffers/src/call/args.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/call/args.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -488,22 +488,12 @@
}
}
else if (VTABLE_does(interp, aggregate, CONST_STRING(interp, "hash"))) {
- const INTVAL elements = VTABLE_elements(interp, aggregate);
- INTVAL index;
- PMC * const key = Parrot_pmc_new(interp, enum_class_Key);
- VTABLE_set_integer_native(interp, key, 0);
- SETATTR_Key_next_key(interp, key, (PMC *)INITBucketIndex);
-
- /* Low-level hash iteration. */
- for (index = 0; index < elements; ++index) {
- if (!PMC_IS_NULL(key)) {
- STRING * const name = (STRING *)parrot_hash_get_idx(interp,
- (Hash *)VTABLE_get_pointer(interp, aggregate), key);
- PARROT_ASSERT(name);
- VTABLE_set_pmc_keyed_str(interp, call_object, name,
- VTABLE_get_pmc_keyed_str(interp, aggregate, name));
- }
- }
+ Hash *hash = (Hash *)VTABLE_get_pointer(interp, aggregate);
+
+ parrot_hash_iterate(hash,
+ VTABLE_set_pmc_keyed_str(interp, call_object,
+ (STRING *)_bucket->key,
+ hash_value_to_pmc(interp, hash, _bucket->value));)
}
else {
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
Modified: branches/unshared_buffers/src/call/context.c
==============================================================================
--- branches/unshared_buffers/src/call/context.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/call/context.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -122,7 +122,7 @@
=over 4
-=item C<PMC* Parrot_pcc_get_sub(PARROT_INTERP, PMC *ctx)>
+=item C<PMC* Parrot_pcc_get_sub(PARROT_INTERP, const PMC *ctx)>
Get Sub executed inside Context.
@@ -131,12 +131,13 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PMC*
-Parrot_pcc_get_sub(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_sub(PARROT_INTERP, ARGIN(const PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_sub)
- const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
return c->current_sub;
}
@@ -687,8 +688,8 @@
/*
-=item C<INTVAL * Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, PMC *ctx, UINTVAL
-idx)>
+=item C<INTVAL * Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, const PMC *ctx,
+UINTVAL idx)>
Get pointer to INTVAL register.
@@ -697,9 +698,10 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
INTVAL *
-Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx)
+Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, ARGIN(const PMC *ctx), UINTVAL idx)
{
ASSERT_ARGS(Parrot_pcc_get_INTVAL_reg)
PARROT_ASSERT(Parrot_pcc_get_regs_used(interp, ctx, REGNO_INT) > idx);
@@ -708,8 +710,8 @@
/*
-=item C<FLOATVAL * Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, PMC *ctx, UINTVAL
-idx)>
+=item C<FLOATVAL * Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, const PMC *ctx,
+UINTVAL idx)>
Get pointer to FLOATVAL register.
@@ -718,9 +720,10 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
FLOATVAL *
-Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx)
+Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, ARGIN(const PMC *ctx), UINTVAL idx)
{
ASSERT_ARGS(Parrot_pcc_get_FLOATVAL_reg)
PARROT_ASSERT(Parrot_pcc_get_regs_used(interp, ctx, REGNO_NUM) > idx);
@@ -739,6 +742,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
STRING **
Parrot_pcc_get_STRING_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx)
@@ -759,6 +763,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
PMC **
Parrot_pcc_get_PMC_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx)
@@ -770,7 +775,8 @@
/*
-=item C<UINTVAL Parrot_pcc_get_regs_used(PARROT_INTERP, PMC *ctx, int type)>
+=item C<UINTVAL Parrot_pcc_get_regs_used(PARROT_INTERP, const PMC *ctx, int
+type)>
Return number of used registers of particular type.
@@ -778,8 +784,9 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
UINTVAL
-Parrot_pcc_get_regs_used(PARROT_INTERP, ARGIN(PMC *ctx), int type)
+Parrot_pcc_get_regs_used(PARROT_INTERP, ARGIN(const PMC *ctx), int type)
{
ASSERT_ARGS(Parrot_pcc_get_regs_used)
return CONTEXT_STRUCT(ctx)->n_regs_used[type];
@@ -805,7 +812,7 @@
/*
-=item C<Regs_ni* Parrot_pcc_get_regs_ni(PARROT_INTERP, PMC *ctx)>
+=item C<Regs_ni* Parrot_pcc_get_regs_ni(PARROT_INTERP, const PMC *ctx)>
Get pointer to FLOANFAL and INTVAL registers.
@@ -813,9 +820,10 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
Regs_ni*
-Parrot_pcc_get_regs_ni(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_regs_ni(PARROT_INTERP, ARGIN(const PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_regs_ni)
return &(CONTEXT_STRUCT(ctx)->bp);
@@ -849,6 +857,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
Regs_ps*
Parrot_pcc_get_regs_ps(PARROT_INTERP, ARGIN(PMC *ctx))
Modified: branches/unshared_buffers/src/dynext.c
==============================================================================
--- branches/unshared_buffers/src/dynext.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/dynext.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2008, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -145,8 +145,7 @@
=item C<static void set_cstring_prop(PARROT_INTERP, PMC *lib_pmc, const char
*what, STRING *name)>
-Set a property C<name> with value C<what> on the C<ParrotLibrary>
-C<lib_pmc>.
+Sets a property C<name> with value C<what> on the C<ParrotLibrary> C<lib_pmc>.
=cut
@@ -164,12 +163,13 @@
VTABLE_setprop(interp, lib_pmc, key, prop);
}
+
/*
=item C<static void store_lib_pmc(PARROT_INTERP, PMC *lib_pmc, STRING *path,
STRING *type, STRING *lib_name)>
-Store a C<ParrotLibrary> PMC in the interpreter's C<iglobals>.
+Stores a C<ParrotLibrary> PMC in the interpreter's C<iglobals>.
=cut
@@ -194,12 +194,13 @@
VTABLE_set_pmc_keyed_str(interp, dyn_libs, path, lib_pmc);
}
+
/*
=item C<static PMC* is_loaded(PARROT_INTERP, STRING *path)>
-Check if a C<ParrotLibrary> PMC with the filename path exists.
-If it does, return it. Otherwise, return NULL.
+Returns a C<ParrotLibrary> PMC with the given filename path, if it exists.
+Otherwise returns PMCNULL.
=cut
@@ -214,17 +215,16 @@
PMC * const iglobals = interp->iglobals;
PMC * const dyn_libs = VTABLE_get_pmc_keyed_int(interp, iglobals,
IGLOBALS_DYN_LIBS);
- if (!VTABLE_exists_keyed_str(interp, dyn_libs, path))
- return PMCNULL;
return VTABLE_get_pmc_keyed_str(interp, dyn_libs, path);
}
+
/*
=item C<static void * dlopen_string(PARROT_INTERP, Parrot_dlopen_flags flags,
STRING *path)>
-Call Parrot_dlopen with the Parrot String argument converted to C string. The
+Calls C<Parrot_dlopen> with the path argument converted to a C string. The
flags argument will be converted into native form and used if applicable.
=cut
@@ -244,12 +244,13 @@
return handle;
}
+
/*
=item C<static STRING * get_path(PARROT_INTERP, STRING *lib, Parrot_dlopen_flags
flags, void **handle, STRING *wo_ext, STRING *ext)>
-Return path and handle of a dynamic lib, setting lib_name to just the filestem
+Returns path and handle of a dynamic lib, setting lib_name to just the filestem
(i.e. without path or extension) as a freshly-allocated C string.
=cut
@@ -264,75 +265,76 @@
ARGIN_NULLOK(STRING *ext))
{
ASSERT_ARGS(get_path)
- STRING *path, *full_name;
- const char *err = NULL; /* buffer returned from Parrot_dlerror */
-
- PMC * const iglobals = interp->iglobals;
+ PMC * const iglobals = interp->iglobals;
PMC * const lib_paths = VTABLE_get_pmc_keyed_int(interp, iglobals,
IGLOBALS_LIB_PATHS);
PMC * const share_ext = VTABLE_get_pmc_keyed_int(interp, lib_paths,
PARROT_LIB_DYN_EXTS);
- if (lib == NULL) {
+ STRING *path, *full_name;
+
+ if (! lib) {
*handle = Parrot_dlopen((char *)NULL, flags);
- if (*handle) {
+ if (*handle)
return CONST_STRING(interp, "");
+ else {
+ const char *err = Parrot_dlerror();
+ Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG,
+ "Couldn't dlopen(NULL): %s\n",
+ err ? err : "unknown reason");
+ return NULL;
}
- err = Parrot_dlerror();
- Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG,
- "Couldn't dlopen(NULL): %s\n",
- err ? err : "unknown reason");
- return NULL;
}
- /*
- * first, try to add an extension to the file if it has none.
- */
+ /* first, try to add an extension to the file if it has none */
if (! ext) {
const INTVAL n = VTABLE_elements(interp, share_ext);
- INTVAL i;
+ INTVAL i;
for (i = 0; i < n; ++i) {
- ext = VTABLE_get_string_keyed_int(interp, share_ext, i);
+ ext = VTABLE_get_string_keyed_int(interp, share_ext, i);
full_name = Parrot_str_concat(interp, wo_ext, ext);
- path = Parrot_locate_runtime_file_str(interp, full_name,
- PARROT_RUNTIME_FT_DYNEXT);
+ path = Parrot_locate_runtime_file_str(interp, full_name,
+ PARROT_RUNTIME_FT_DYNEXT);
+
if (path) {
*handle = dlopen_string(interp, flags, path);
- if (*handle) {
+
+ if (*handle)
return path;
+ else {
+ const char *err = Parrot_dlerror();
+ Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG,
+ "Couldn't load '%Ss': %s\n",
+ full_name, err ? err : "unknown reason");
+ return NULL;
}
- err = Parrot_dlerror();
- Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG,
- "Couldn't load '%Ss': %s\n",
- full_name, err ? err : "unknown reason");
- return NULL;
}
- /*
- * File with extension and prefix was not found,
- * so try file.extension w/o prefix
- */
+ /* File not found with extension and prefix; try file.extension */
*handle = dlopen_string(interp, flags, full_name);
- if (*handle) {
+ if (*handle)
return full_name;
- }
}
}
+
/*
* finally, try the given file name as is. We still use
* Parrot_locate_runtime_file so that (a) relative pathnames are searched in
* the standard locations, and (b) the angle of the slashes are adjusted as
* required for non-Unix systems.
*/
+
full_name = Parrot_locate_runtime_file_str(interp, lib,
- PARROT_RUNTIME_FT_DYNEXT);
+ PARROT_RUNTIME_FT_DYNEXT);
+
if (full_name) {
*handle = dlopen_string(interp, flags, full_name);
- if (*handle) {
+
+ if (*handle)
return full_name;
- }
}
+
/*
* and on windows strip a leading "lib"
* [shouldn't this happen in Parrot_locate_runtime_file instead?]
@@ -340,10 +342,9 @@
#ifdef WIN32
if (!STRING_IS_EMPTY(lib) && memcmp(Buffer_bufstart(lib), "lib", 3) == 0) {
*handle = Parrot_dlopen((char *)Buffer_bufstart(lib) + 3, 0);
- if (*handle) {
- path = Parrot_str_substr(interp, lib, 3, lib->strlen - 3);
- return path;
- }
+
+ if (*handle)
+ return Parrot_str_substr(interp, lib, 3, lib->strlen - 3);
}
#endif
@@ -360,20 +361,22 @@
}
#endif
- /* And after-finally, let the OS use his own search */
- if (!STRING_IS_EMPTY(lib)) {
+ if (STRING_IS_EMPTY(lib)) {
*handle = dlopen_string(interp, flags, lib);
if (*handle)
return lib;
}
-
- err = Parrot_dlerror();
- Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG,
- "Couldn't load '%Ss': %s\n",
- lib, err ? err : "unknown reason");
- return NULL;
+ /* And after-finally, let the OS use his own search */
+ {
+ const char *err = Parrot_dlerror();
+ Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG,
+ "Couldn't load '%Ss': %s\n",
+ lib, err ? err : "unknown reason");
+ return NULL;
+ }
}
+
/*
=item C<PMC * Parrot_init_lib(PARROT_INTERP, dynext_load_func load_func,
@@ -411,12 +414,13 @@
return lib_pmc;
}
+
/*
=item C<void * Parrot_dlsym_str(PARROT_INTERP, void *handle, STRING *symbol)>
-Same as Parrot_dlsym but takes the symbol name from a Parrot String instead
-of a C string.
+Loads a symbol named C<symbol> from the shared library represented by
+C<handle>.
=cut
@@ -430,25 +434,26 @@
{
ASSERT_ARGS(Parrot_dlsym_str)
- void *ptr;
if (STRING_IS_NULL(symbol))
- ptr = NULL;
+ return NULL;
+
else {
char *const symbol_cs = Parrot_str_to_cstring(interp, symbol);
- ptr = Parrot_dlsym(handle, symbol_cs);
+ void *ptr = Parrot_dlsym(handle, symbol_cs);
Parrot_str_free_cstring(symbol_cs);
+ return ptr;
}
- return ptr;
}
+
/*
=item C<static PMC * run_init_lib(PARROT_INTERP, void *handle, STRING *lib_name,
STRING *wo_ext)>
-Loads and Initializes a new library and returns a ParrotLibrary PMC.
-Takes the name of a library C<libname>, that is loaded with handle C<handle>.
-Calls the necessary initialization routines, if any.
+Loads and initializes a new library and returns a ParrotLibrary PMC. Takes the
+name of a library C<lib_name>, that is loaded with handle C<handle>. Calls the
+necessary initialization routines, if any.
=cut
@@ -520,6 +525,7 @@
return lib_pmc;
}
+
/*
=item C<static STRING * clone_string_into(Interp *d, Interp *s, PMC *value)>
@@ -538,9 +544,9 @@
clone_string_into(ARGMOD(Interp *d), ARGIN(Interp *s), ARGIN(PMC *value))
{
ASSERT_ARGS(clone_string_into)
- STRING * const orig = VTABLE_get_string(s, value);
- char * const raw_str = Parrot_str_to_cstring(s, orig);
- STRING * const ret =
+ STRING * const orig = VTABLE_get_string(s, value);
+ char * const raw_str = Parrot_str_to_cstring(s, orig);
+ STRING * const ret =
Parrot_str_new_init(d, raw_str, strlen(raw_str),
PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET,
PObj_constant_FLAG);
@@ -548,6 +554,7 @@
return ret;
}
+
/*
=item C<static PMC * make_string_pmc(PARROT_INTERP, STRING *string)>
@@ -570,6 +577,7 @@
return ret;
}
+
/*
=item C<PMC * Parrot_clone_lib_into(Interp *d, Interp *s, PMC *lib_pmc)>
@@ -608,7 +616,8 @@
* Anyways, if we hope to share bytecode at runtime, we need to have
* them have identical opcodes anyways.
*/
- PMC * const new_lib_pmc = Parrot_pmc_new_constant(d, enum_class_ParrotLibrary);
+ PMC * const new_lib_pmc = Parrot_pmc_new_constant(d,
+ enum_class_ParrotLibrary);
PMC_data(new_lib_pmc) = handle;
VTABLE_setprop(d, new_lib_pmc, CONST_STRING(s, "_filename"), make_string_pmc(d, wo_ext));
@@ -619,11 +628,13 @@
if (d->n_libs != s->n_libs) {
INTVAL i;
if (d->all_op_libs)
- d->all_op_libs = (op_lib_t **)mem_internal_realloc(d->all_op_libs,
- sizeof (op_lib_t *) * s->n_libs);
+ d->all_op_libs
+ = (op_lib_t **)mem_internal_realloc(d->all_op_libs,
+ sizeof (op_lib_t *) * s->n_libs);
else
- d->all_op_libs = (op_lib_t **)mem_internal_allocate(sizeof (op_lib_t *) *
- s->n_libs);
+ d->all_op_libs
+ = (op_lib_t **)mem_internal_allocate(sizeof (op_lib_t *) *
+ s->n_libs);
for (i = d->n_libs; i < s->n_libs; ++i)
d->all_op_libs[i] = s->all_op_libs[i];
d->n_libs = s->n_libs;
@@ -631,11 +642,11 @@
return new_lib_pmc;
}
- else {
- return run_init_lib(d, handle, lib_name, wo_ext);
- }
+
+ return run_init_lib(d, handle, lib_name, wo_ext);
}
+
/*
=item C<PMC * Parrot_load_lib(PARROT_INTERP, STRING *lib, PMC *parameters)>
@@ -682,9 +693,8 @@
*
* LOCK()
*/
- if (lib) {
+ if (lib)
lib_name = parrot_split_path_ext(interp, lib, &wo_ext, &ext);
- }
else {
wo_ext = CONST_STRING(interp, "");
lib_name = NULL;
@@ -692,27 +702,27 @@
}
lib_pmc = is_loaded(interp, wo_ext);
- if (!PMC_IS_NULL(lib_pmc)) {
- /* UNLOCK() */
+
+ /* UNLOCK() */
+ if (!PMC_IS_NULL(lib_pmc))
return lib_pmc;
- }
- if (!PMC_IS_NULL(parameters)) {
+ if (!PMC_IS_NULL(parameters))
flags = VTABLE_get_integer(interp, parameters);
- }
path = get_path(interp, lib, (Parrot_dlopen_flags)flags, &handle, wo_ext, ext);
- if (!path || !handle) {
- /*
- * XXX Parrot_ex_throw_from_c_args? return PMCNULL?
- * PMC Undef seems convenient, because it can be queried with get_bool()
- */
+
+ /*
+ * XXX Parrot_ex_throw_from_c_args? return PMCNULL?
+ * PMC Undef seems convenient, because it can be queried with get_bool()
+ */
+ if (!path || !handle)
return Parrot_pmc_new(interp, enum_class_Undef);
- }
return run_init_lib(interp, handle, lib_name, wo_ext);
}
+
/*
=back
Modified: branches/unshared_buffers/src/dynoplibs/math.ops
==============================================================================
--- branches/unshared_buffers/src/dynoplibs/math.ops Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/dynoplibs/math.ops Sun Aug 29 17:09:11 2010 (r48719)
@@ -95,8 +95,7 @@
result = VTABLE_get_integer(interp, $2) % $3;
- $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
- VTABLE_set_integer_native(interp, $1, result);
+ $1 = Parrot_pmc_new_init_int(interp, VTABLE_type(interp, $2), result);
}
inline op cmod(invar PMC, invar PMC, invar PMC) :base_core {
@@ -112,8 +111,7 @@
result = VTABLE_get_integer(interp, $2) % value;
- $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
- VTABLE_set_integer_native(interp, $1, result);
+ $1 = Parrot_pmc_new_init_int(interp, VTABLE_type(interp, $2), result);
}
########################################
@@ -173,8 +171,8 @@
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);
+ $1 = Parrot_pmc_new_init_int(interp,
+ VTABLE_type(interp, $2), (INTVAL)result);
}
=back
Modified: branches/unshared_buffers/src/dynoplibs/trans.ops
==============================================================================
--- branches/unshared_buffers/src/dynoplibs/trans.ops Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/dynoplibs/trans.ops Sun Aug 29 17:09:11 2010 (r48719)
@@ -105,6 +105,30 @@
########################################
+=item B<cot>(out NUM, in NUM)
+
+Set $1 to the cotangent of $2 (given in radians).
+
+=cut
+
+inline op cot(out NUM, in NUM) :base_math {
+ $1 = ((FLOATVAL)1) / tan((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<csc>(out NUM, in NUM)
+
+Set $1 to the cosecant of $2 (given in radians).
+
+=cut
+
+inline op csc(out NUM, in NUM) :base_math {
+ $1 = ((FLOATVAL)1) / sin((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
Deleted: branches/unshared_buffers/src/frame_builder.c
==============================================================================
--- branches/unshared_buffers/src/frame_builder.c Sun Aug 29 17:09:11 2010 (r48718)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,633 +0,0 @@
-/*
-Copyright (C) 2008-2009, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/frame_builder.c
-
-=head1 DESCRIPTION
-
-Functions for the ManagedStruct PMC and others.
-
-=head1 FUNCTIONS
-
-=cut
-
-*/
-
-/* HEADERIZER HFILE: none */
-/* HEADERIZER STOP */
-
-#include "parrot/parrot.h"
-#include "pmc/pmc_fixedintegerarray.h"
-#include "pmc/pmc_unmanagedstruct.h"
-#include "pmc/pmc_managedstruct.h"
-#include "frame_builder.h"
-
-/*
-
-=over 4
-
-=item C<void Parrot_jit_free_buffer(PARROT_INTERP, void *ptr, void *priv)>
-
-This is a callback to implement the proper freeing semantics. It is called by
-the ManagedStruct PMC as it is garbage collected.
-
-=cut
-
-*/
-
-void
-Parrot_jit_free_buffer(SHIM_INTERP, void *ptr, void *priv)
-{
- const struct jit_buffer_private_data * const jit = (struct jit_buffer_private_data*)priv;
- mem_free_executable(ptr, jit->size);
- free(priv);
-}
-
-/*
-
-=item C<PMC *Parrot_jit_clone_buffer(PARROT_INTERP, PMC *pmc, void *priv)>
-
-This is a callback to implement the proper cloning semantics for jit buffers.
-It is called by the ManagedStruct PMC's clone() function.
-
-=back
-
-=cut
-
-*/
-
-PMC *
-Parrot_jit_clone_buffer(PARROT_INTERP, PMC *pmc, void *priv)
-{
- PMC * const rv = Parrot_pmc_new(interp, pmc->vtable->base_type);
-
- VTABLE_init(interp, rv);
- /* copy the attributes */
- {
- void (*tmpfreefunc)(PARROT_INTERP, void*, void*);
- GETATTR_ManagedStruct_custom_free_func(interp, pmc, tmpfreefunc);
- SETATTR_ManagedStruct_custom_free_func(interp, rv , tmpfreefunc);
- }
- {
- PMC* (*tmpclonefunc)(PARROT_INTERP, PMC*, void*);
- GETATTR_ManagedStruct_custom_clone_func(interp, pmc, tmpclonefunc);
- SETATTR_ManagedStruct_custom_clone_func(interp, rv , tmpclonefunc);
- }
-
- {
- void *freepriv, *clonepriv;
- GETATTR_ManagedStruct_custom_free_priv(interp , pmc, freepriv);
- GETATTR_ManagedStruct_custom_clone_priv(interp, pmc, clonepriv);
- if (freepriv) {
- void *tmp = mem_gc_allocate_zeroed_typed(interp, struct jit_buffer_private_data);
- memcpy(tmp, freepriv, sizeof (struct jit_buffer_private_data));
- SETATTR_ManagedStruct_custom_free_priv(interp, rv , tmp);
- if (clonepriv == freepriv) {
- /* clonepriv is a copy of freepriv, make it a copy in the clone too. */
- SETATTR_ManagedStruct_custom_clone_priv(interp, rv , tmp);
- clonepriv = NULL; /* disable the clonepriv copying below */
- }
- }
- if (clonepriv) {
- void *tmp = mem_gc_allocate_zeroed_typed(interp, struct jit_buffer_private_data);
- memcpy(tmp, clonepriv, sizeof (struct jit_buffer_private_data));
- SETATTR_ManagedStruct_custom_clone_priv(interp, rv , tmp);
- }
- }
-
- /* copy the execmem buffer */
- if (PARROT_MANAGEDSTRUCT(pmc)->ptr) {
- struct jit_buffer_private_data *jit = (struct jit_buffer_private_data*)priv;
- void *ptr = PARROT_MANAGEDSTRUCT(pmc)->ptr;
- void *newptr = mem_alloc_executable(jit->size);
- if (!newptr)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
- "Cannot allocate executable memory");
- memcpy(newptr, ptr, jit->size);
- PARROT_MANAGEDSTRUCT(rv)->ptr = newptr;
- }
-
- return rv;
-}
-
-
-int
-emit_is8bit(long disp)
-{
- return disp >= -128 && disp <= 127;
-}
-
-char *
-emit_disp8_32(char *pc, int disp)
-{
- if (emit_is8bit(disp)) {
- *(pc++) = (char)disp;
- return pc;
- }
- else {
- *(long *)pc = disp;
- return pc + 4;
- }
-}
-
-void
-emit_sib(PARROT_INTERP, char *pc, int scale, int i, int base)
-{
- int scale_byte;
-
- switch (scale) {
- case 1:
- scale_byte = emit_Scale_1;
- break;
- case 2:
- scale_byte = emit_Scale_2;
- break;
- case 4:
- scale_byte = emit_Scale_4;
- break;
- case 8:
- scale_byte = emit_Scale_8;
- break;
- default:
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
- "Invalid scale factor %d\n", scale);
- return;
- }
-
- *pc = (char)(scale_byte | (i == emit_None ? emit_Index_None : emit_reg_Index(i)) |
- emit_reg_Base(base));
-}
-
-char *
-emit_r_X(PARROT_INTERP, char *pc, int reg_opcode, int base, int i, int scale, long disp)
-{
- if (i && !scale)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
- "emit_r_X passed invalid scale+index combo\n");
-
- if (base == emit_EBP) {
- /* modrm disp */
- if (i == emit_None) {
- *(pc++) = (char)((emit_is8bit(disp) ? emit_Mod_b01 : emit_Mod_b10)
- | reg_opcode | emit_reg_rm(emit_EBP));
- return emit_disp8_32(pc, disp);
- }
- /* modrm sib disp */
- else {
- *(pc++) = (char)((emit_is8bit(disp) ? emit_Mod_b01 : emit_Mod_b10)
- | reg_opcode | emit_b100);
- emit_sib(interp, pc++, scale, i, base);
- return emit_disp8_32(pc, disp);
- }
- }
-
- /* modrm sib disp */
- if (base == emit_ESP) {
- *(pc++) = (char)((emit_is8bit(disp) ? emit_Mod_b01 : emit_Mod_b10)
- | reg_opcode | emit_rm_b100);
- emit_sib(interp, pc++, scale, i, emit_ESP);
- return emit_disp8_32(pc, disp);
- }
-
- /* modrm disp32 */
- if (!base && !(i && scale)) {
- *(pc++) = (char)(emit_Mod_b00 | reg_opcode | emit_rm_b101);
- *(long *)pc = disp;
- return pc + 4;
- }
-
- /* Ok, everything should be more regular here */
- *(pc++) = (char)((disp == 0 ? emit_Mod_b00 :
- (emit_is8bit(disp) ?
- emit_Mod_b01 : emit_Mod_b10)) |
- reg_opcode |
- (!base || (scale && i) ? emit_rm_b100 : emit_reg_rm(base)));
-
- if (!base || (scale && i)) {
- emit_sib(interp, pc++, scale, i, base);
- }
- if (disp)
- pc = emit_disp8_32(pc, disp);
-
- return pc;
-}
-
-char *
-emit_shift_i_r(PARROT_INTERP, char *pc, int opcode, int imm, int reg)
-{
- if (opcode == emit_b000 && imm < 0) {
- opcode = emit_b001; /* -rol => 32 + ror */
- imm = -imm;
- }
-
- if (imm == 0) {
- /* noop */
- }
- else if (imm == 1) {
- *(pc++) = (char) 0xd1;
- *(pc++) = (char) emit_alu_X_r(opcode, reg);
- }
- else if (imm > 1 && imm < 33) {
- *(pc++) = (char) 0xc1;
- *(pc++) = (char) emit_alu_X_r(opcode, reg);
- *(pc++) = (char)imm;
- }
- else {
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
- "emit_shift_i_r passed invalid shift\n");
- }
-
- return pc;
-}
-
-char *
-emit_popl_r(char *pc, int reg)
-{
- *(pc++) = (char)(0x58 | (reg - 1));
- return pc;
-}
-
-unsigned char *lastpc;
-
-size_t
-calc_signature_needs(const char *sig, int *strings)
-{
- size_t stack_size = 0;
- while (*sig) {
- switch (*sig) {
- case 't':
- ++(*strings);
- stack_size +=4;
- break;
- case 'd':
- stack_size +=8;
- break;
- default:
- stack_size +=4;
- break;
- }
- ++sig;
- }
- return stack_size;
-
-}
-
-/*
- * The function generated here is called as func(interp, nci_info)
- * interp ... 8(%ebp)
- * nci_info ... 12(%ebp)
- *
- * The generate function for a specific signature looks quite similar to
- * an optimized compile of src/nci.c:pcf_x_yy(). In case of any troubles
- * just compare the disassembly.
- *
- * If a non-NULL sizeptr is passed, the integer it points to will be written
- * with the size of the allocated execmem buffer.
- */
-
-void *
-Parrot_jit_build_call_func(PARROT_INTERP, PMC *pmc_nci, STRING *signature, int *sizeptr)
-{
- char *pc;
- char *execmem;
- int i = 0;
- int arg_count = 0;
- int string_buffer_count = 0;
- const int ST_SIZE_OF = 124;
- const int JIT_ALLOC_SIZE = 1024;
-
- char * const signature_str = Parrot_str_to_cstring(interp, signature);
- /* skip over the result */
- char *sig = signature_str + 1;
- size_t stack_space_needed = calc_signature_needs(sig,
- &string_buffer_count);
-
- int base_offset = 0;
- int strings_offset = base_offset - (sizeof (char *) * string_buffer_count);
- int st_offset = strings_offset - ST_SIZE_OF;
- int args_offset = st_offset - stack_space_needed;
- int temp_calls_offset = args_offset - 16;
- int total_stack_needed = -temp_calls_offset;
-
- UNUSED(pmc_nci);
-
- /*
- * ESP
- * 0-15, 16 bytes for utility calls
- * stack_space_needed for actual NCI call
- * st
- * STRINGS -> char * holding space
- * EBP
- */
-
- /* this ought to be enough - the caller of this function
- * should free the function pointer returned here
- */
- pc = execmem = (char *)mem_alloc_executable(JIT_ALLOC_SIZE);
- if (! pc)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
- "Cannot allocate executable memory");
-
-
- /* this generated jit function will be called as (INTERP (EBP 8), func_ptr
- * (ESP 12), args signature (ESP 16)) */
-
- /* make stack frame, preserve %ebx */
- jit_emit_stack_frame_enter(pc);
-
- emitm_subl_i_r(pc, total_stack_needed, emit_ESP);
-
- /* Parrot_init_arg_nci(interp, &st, "S"); */
- /* args signature "S" */
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 16);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8);
-
- /*&st*/
- emitm_lea_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, st_offset);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4);
-
- /*interpreter*/
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 8);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 0);
-
- /* XXX FIXME (TT #1325) This whole function require major rework */
- /* if (sig && *sig) */
- /* emitm_call_cfunc(pc, Parrot_init_arg_nci); */
-
- while (*sig) {
- emitm_movl_i_m(pc, arg_count, emit_EBP, 0, 1, temp_calls_offset + 8);
-
- switch (*sig) {
- case '0': /* null ptr or such - doesn't consume a reg */
- jit_emit_bxor_rr_i(interp, pc, emit_EAX, emit_EAX);
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- break;
- case 'f':
- /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_N); */
- emitm_fstps(interp, pc, emit_EBP, 0, 1, args_offset);
- break;
- case 'N':
- case 'd':
- /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_N); */
- emitm_fstpl(interp, pc, emit_EBP, 0, 1, args_offset);
- args_offset += 4;
- break;
- case 'I': /* INTVAL */
- case 'l': /* long */
- case 'i': /* int */
- /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_I); */
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- break;
- case 't': /* string, pass a cstring */
- /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_S); */
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4);
- emitm_call_cfunc(pc, string_to_cstring_nullable);
-
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- /* save off temporary allocation address */
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, strings_offset);
- strings_offset += 4;
-
- /* reset ESP(4) */
- emitm_lea_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, st_offset);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4);
- break;
- case 's': /* short: movswl intreg_o(base), %eax */
- /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_I); */
- emitm_movswl_r_r(pc, emit_EAX, emit_EAX);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- break;
- case 'c': /* char: movsbl intreg_o(base), %eax */
- /* emitm_call_cfunc(pc, get_nci_I); */
- emitm_movsbl_r_r(pc, emit_EAX, emit_EAX);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- break;
- case 'J': /* interpreter */
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 8);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- --arg_count;
- break;
- case 'p': /* push pmc->data */
- /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_p); */
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- break;
- case 'O': /* push PMC * object in P2 */
- case 'P': /* push PMC * */
- case '@':
- /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_P); */
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- break;
- case 'v':
- break;
- case 'b': /* buffer (void*) pass Buffer_bufstart(SReg) */
- /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_S); */
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1,
- (size_t) &Buffer_bufstart((STRING *) NULL));
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- break;
- case 'B': /* buffer (void**) pass &Buffer_bufstart(SReg) */
- /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_S); */
- emitm_lea_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1,
- (size_t) &Buffer_bufstart((STRING *) NULL));
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- break;
- case 'S':
- /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_S); */
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset);
- break;
-
-
- /* I have no idea how to handle these */
- case '2':
- case '3':
- case '4':
- case 'V':
- mem_free_executable(execmem, JIT_ALLOC_SIZE);
- Parrot_str_free_cstring(signature_str);
- return NULL;
- break;
- default:
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
- "Unknown arg Signature %c\n", *sig);
- /*
- * oops unknown signature:
- * cleanup and try nci.c
- */
- mem_free_executable(execmem, JIT_ALLOC_SIZE);
- Parrot_str_free_cstring(signature_str);
- return NULL;
- }
- args_offset +=4;
- ++arg_count;
- ++sig;
- }
-
- /* prepare to call VTABLE_get_pointer, set up args */
- /* interpreter - movl 8(%ebp), %eax */
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 8);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 0);
-
- /* pmc - movl 12(%ebp), %eax */
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 12);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4);
-
- /* get the get_pointer() pointer from the pmc's vtable */
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1, offsetof(PMC, vtable));
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1, offsetof(VTABLE, get_pointer));
-
- /* call get_pointer(), result goes into eax */
- emitm_callr(pc, emit_EAX);
- emitm_addl_i_r(pc, 16, emit_ESP);
-
- /* call the resulting function pointer */
- emitm_callr(pc, emit_EAX);
- emitm_subl_i_r(pc, 16, emit_ESP);
-
- /* SAVE OFF EAX */
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8);
-
- /*&st*/
- emitm_lea_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, st_offset);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4);
-
- /*interpreter*/
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 8);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 0);
-
- /* RESTORE BACK EAX */
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8);
-
- /* now place return value in registers */
- /* first in signature is the return value */
- sig = signature_str; /* the result */
- switch (*sig) {
- /* I have no idea how to handle these */
- case '2':
- case '3':
- case '4':
- /* get integer from pointer - untested */
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1, 0);
- if (*sig == 2) /* short */
- emitm_movswl_r_r(pc, emit_EAX, emit_EAX);
- /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_I);*/
- break;
- case 'f':
- case 'd':
- jit_emit_fstore_mb_n(interp, pc, emit_EBP, temp_calls_offset + 8);
- /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_N); */
- /* pop num from st(0) and mov to reg */
- break;
- case 's':
- /* movswl %ax, %eax */
- emitm_movswl_r_r(pc, emit_EAX, emit_EAX);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8);
- /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_I); */
- break;
- case 'c':
- /* movsbl %al, %eax */
- emitm_movsbl_r_r(pc, emit_EAX, emit_EAX);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8);
- /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_I); */
- break;
- case 'I': /* INTVAL */
- case 'l':
- case 'i':
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8);
- /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_I); */
- break;
- case 'v': /* void - do nothing */
- break;
- case 'P':
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8);
- /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_P); */
- break;
- case 'p': /* make a new unmanaged struct */
- /* save return value on stack */
-
- /* save pointer p */
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 12);
-
- /* make new pmc */
- emitm_movl_i_m(pc, enum_class_UnManagedStruct, emit_EBP, 0, 1, temp_calls_offset + 4);
- emitm_call_cfunc(pc, Parrot_pmc_new);
-
- /* restore pointer p to EDX */
- emitm_movl_m_r(interp, pc, emit_EDX, emit_EBP, 0, 1, temp_calls_offset + 12);
-
- /* copy UnManagedStruct to stack for set_nci_P call */
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8);
-
- /* eax = PMC, get return value into edx */
- /* mov data(%eax), %eax
- mov %edx, ptr(%eax) */
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1, offsetof(struct PMC, data));
- emitm_movl_r_m(interp, pc, emit_EDX, emit_EAX, 0, 1,
- offsetof(struct Parrot_UnManagedStruct_attributes, ptr));
-
- /* reset EBP(4) */
- emitm_lea_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, st_offset);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4);
-
- /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_P); */
- break;
- case 'S':
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8);
- /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_S); */
- break;
- case 't': /* string */
- /* EAX is char* */
- emitm_movl_i_m(pc, 0, emit_EBP, 0, 1, temp_calls_offset + 8); /* len */
-
- /* overwrites address of st in EBP(4) */
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4);
-
- emitm_call_cfunc(pc, Parrot_str_new);
-
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8);
-
- /* reset EBP(4) */
- emitm_lea_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, st_offset);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4);
-
- /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_S); */
- break;
- default:
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR,
- "Unknown return Signature %c\n", *sig);
- /*
- * oops unknown signature:
- * cleanup and try nci.c
- */
- Parrot_str_free_cstring(signature_str);
- mem_free_executable(execmem, JIT_ALLOC_SIZE);
- return NULL;
- }
-
- /* free temporary strings */
- strings_offset = st_offset + ST_SIZE_OF;
- for (i=0; i<string_buffer_count; ++i) {
- emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, strings_offset);
- emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 0);
- emitm_call_cfunc(pc, Parrot_str_free_cstring);
- strings_offset += 4;
- }
-
- jit_emit_stack_frame_leave(pc);
- emitm_ret(pc);
- PARROT_ASSERT(pc - execmem <= JIT_ALLOC_SIZE);
-
- if (sizeptr)
- *sizeptr = JIT_ALLOC_SIZE;
- Parrot_str_free_cstring(signature_str);
- return (void *)D2FPTR(execmem);
-}
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Deleted: branches/unshared_buffers/src/frame_builder.h
==============================================================================
--- branches/unshared_buffers/src/frame_builder.h Sun Aug 29 17:09:11 2010 (r48718)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,1368 +0,0 @@
-/*
- * Copyright (C) 2002-2009, Parrot Foundation.
- */
-
-/*
- * frame_builder.h
- *
- * i386
- *
- * $Id$
- */
-
-#ifndef PARROT_I386_JIT_EMIT_H_GUARD
-#define PARROT_I386_JIT_EMIT_H_GUARD
-
-#if defined(__cplusplus)
-# define EXTERN extern "C"
-#else
-# define EXTERN
-#endif
-
-#include <assert.h>
-#include "parrot/parrot.h"
-#include "parrot/hash.h"
-#include "parrot/oplib/ops.h"
-
-/*
- * NCI interface
- */
-void *
-Parrot_jit_build_call_func(Interp *, PMC *, STRING *, int *);
-
-/* custom pmc callback functions */
-void
-Parrot_jit_free_buffer(PARROT_INTERP, void *ptr, void *priv);
-
-PMC*
-Parrot_jit_clone_buffer(PARROT_INTERP, PMC *pmc, void *priv);
-
-struct jit_buffer_private_data {
- int size;
-};
-
-/* Scale factor values */
-#define emit_Scale(scale) ((scale) << 6)
-#define emit_Scale_1 emit_Scale(0)
-#define emit_Scale_2 emit_Scale(1)
-#define emit_Scale_4 emit_Scale(2)
-#define emit_Scale_8 emit_Scale(3)
-
-/* ESIB byte */
-#define emit_reg_Index(x) (((x)-1) << 3)
-#define emit_reg_Base(x) ((x)-1)
-#define emit_Index_None ((emit_b100) << 3)
-
-/*
- * helper funcs - get argument n
- */
-
-/*
- * if we have a delegated method like typeof_i_p, that returns an INTVAL
- * and that is all in a sequence of JITted opcodes, and when these INTVAL
- * is MAPped, we got a problem. So the EXT_CALL flag is disabled - mapped
- * registers are saved/restored around vtable calls.
- */
-#define JIT_VTABLE_OPS 1
-
-/* EXEC_SHARED generates code to be used with libparrot.so
- * It grabs the real address of cgp_core from the gcc generated code
- * x/1i cgp_code
- * jmp *0xXXXX
- * x/1wx 0xXXXX
- * real address of cpg_core
- * s. exec_emit_end
- * XXX This should be a command line option.
- */
-#undef EXEC_SHARED
-
-extern UINTVAL ld(UINTVAL);
-
-#define NEG_MINUS_ZERO
-/* #define NEG_ZERO_SUB */
-
-/* Register codes */
-#define emit_None 0
-
-/* These are + 1 the real values */
-#define emit_EAX 1
-#define emit_ECX 2
-#define emit_EDX 3
-#define emit_EBX 4
-#define emit_ESP 5
-#define emit_EBP 6
-#define emit_ESI 7
-#define emit_EDI 8
-
-/* Scratch register. */
-
-#define ISR1 emit_EAX
-#define FSR1 0
-
-#define emit_b00 0
-#define emit_b01 1
-#define emit_b10 2
-#define emit_b11 3
-
-#define emit_b000 0
-#define emit_b001 1
-#define emit_b010 2
-#define emit_b011 3
-#define emit_b100 4
-#define emit_b101 5
-#define emit_b110 6
-#define emit_b111 7
-
-/* Mod R/M byte */
-#define emit_reg(x) ((x) << 3)
-#define emit_Mod(Mod) ((Mod) << 6)
-#define emit_reg_rm(x) ((x)-1)
-
-/* Mod values for Mod R/M Byte */
-#define emit_Mod_b00 emit_Mod(emit_b00)
-#define emit_Mod_b01 emit_Mod(emit_b01)
-#define emit_Mod_b10 emit_Mod(emit_b10)
-
-/* special R/M values */
-#define emit_rm_b101 emit_b101
-#define emit_rm_b100 emit_b100
-
-#define emit_r_m(interp, pc, reg1, b, i, s, d) \
- emit_r_X((interp), (pc), emit_reg((reg1)-1), (b), (i), (s), (d))
-
-#define emit_alu_X_r(X, reg) ((emit_b11 << 6) | ((X) << 3) | ((reg) - 1))
-
-#define emit_alu_r_r(reg1, reg2) emit_alu_X_r(((reg1) - 1), (reg2))
-
-int emit_is8bit(long disp);
-
-char * emit_disp8_32(char *pc, int disp);
-
-void emit_sib(PARROT_INTERP, char *pc, int scale, int i, int base);
-
-char * emit_r_X(PARROT_INTERP, char *pc, int reg_opcode, int base, int i,
- int scale, long disp);
-
-char * emit_shift_i_r(PARROT_INTERP, char *pc, int opcode, int imm, int reg);
-
-char * emit_shift_i_m(PARROT_INTERP, char *pc, int opcode, int imm,
- int base, int i, int scale, long disp);
-
-char * emit_shift_r_r(PARROT_INTERP, char *pc, int opcode, int reg1, int reg2);
-
-char * emit_shift_r_m(PARROT_INTERP, char *pc, int opcode, int reg,
- int base, int i, int scale, long disp);
-
-/* CDQ - need this to do multiply */
-#define emitm_cdq(pc) *((pc)++) = (char) 0x99
-
-/* RET */
-#define emitm_ret(pc) *((pc)++) = (char) 0xc3
-
-/* NOP */
-#define emit_nop(pc) *((pc)++) = (char) 0x90
-
-/* PUSHes */
-
-#define emitm_pushl_r(pc, reg) \
- *((pc)++) = (char) 0x50 | ((reg) - 1)
-
-#define emitm_pushl_i(pc, imm) { \
- *((pc)++) = (char) 0x68; \
- *(long *)(pc) = (long)(imm); \
- (pc) += 4; }
-
-#define emitm_pushl_m(pc, mem) { \
- *((pc)++) = (char) 0xff; \
- *((pc)++) = (char) 0x35; \
- *(long *)(pc) = (long)(mem); \
- (pc) += 4; }
-
-char * emit_pushl_m(PARROT_INTERP, char *pc, int base, int i, int scale,
- long disp);
-
-/* POPs */
-
-char * emit_popl_r(char *pc, int reg);
-
-# define emitm_popl_r(pc, reg) \
- (pc) = emit_popl_r((pc), (reg))
-
-char * emit_popl_m(PARROT_INTERP, char *pc, int base, int i, int scale,
- long disp);
-
-/* MOVes */
-
-char * emit_movb_r_r(char *pc, int reg1, int reg2);
-
-# define jit_emit_mov_rr_i(pc, reg2, reg1) if ((reg1) != (reg2)) { \
- *((pc)++) = (char) 0x89; \
- *((pc)++) = (char) emit_alu_r_r((reg1), (reg2)); }
-
-# define jit_emit_mov_ri_i(interp, pc, reg, imm) { \
- *((pc)++) = (char)(0xb8 | ((reg) - 1)); \
- *(long *)(pc) = (long)(imm); (pc) += 4; }
-
-# define emitm_movX_Y_Z(interp, op, pc, reg1, b, i, s, d) { \
- *((pc)++) = (char) (op); \
- (pc) = emit_r_m((interp), (pc), (reg1), (b), (i), (s), (long)(d)); }
-
-# define emitm_movb_r_m(interp, pc, reg1, b, i, s, d) \
- emitm_movX_Y_Z((interp), 0x88, (pc), (reg1), (b), (i), (s), (d))
-
-# define emitm_movl_r_m(interp, pc, reg1, b, i, s, d) \
- emitm_movX_Y_Z((interp), 0x89, (pc), (reg1), (b), (i), (s), (d))
-
-/* move byte/word with sign extension */
-# define emitm_movsbl_r_m(interp, pc, reg1, b, i, s, d) { \
- *((pc)++) = (char) 0x0f; \
- emitm_movX_Y_Z((interp), 0xBE, (pc), (reg1), (b), (i), (s), (d)); \
-}
-
-# define emitm_movswl_r_m(interp, pc, reg1, b, i, s, d) { \
- *((pc)++) = (char) 0x0f; \
- emitm_movX_Y_Z((interp), 0xBF, (pc), (reg1), (b), (i), (s), (d)); \
-}
-
-# define emitm_movsbl_r_r(pc, reg1, reg2) { \
- *((pc)++) = (char) 0x0f; \
- *((pc)++) = (char) 0xbe; \
- *((pc)++) = (char) emit_alu_r_r((reg1), (reg2)); \
-}
-
-# define emitm_movswl_r_r(pc, reg1, reg2) { \
- *((pc)++) = (char) 0x0f; \
- *((pc)++) = (char) 0xbf; \
- *((pc)++) = (char) emit_alu_r_r((reg1), (reg2)); \
-}
-
-# define emitm_movb_m_r(interp, pc, reg1, b, i, s, d) \
- emitm_movX_Y_Z((interp), 0x8a, (pc), (reg1), (b), (i), (s), (d))
-
-# define emitm_movl_m_r(interp, pc, reg1, b, i, s, d) \
- emitm_movX_Y_Z((interp), 0x8b, (pc), (reg1), (b), (i), (s), (d))
-
-# define emitm_lea_m_r(interp, pc, reg1, b, i, s, d) \
- emitm_movX_Y_Z((interp), 0x8d, (pc), (reg1), (b), (i), (s), (d))
-
-char * emit_movb_i_m(PARROT_INTERP, char *pc, char imm, int base, int i,
- int scale, long disp);
-
-# define emitm_movl_i_m(pc, imm, b, i, s, d) { \
- *((pc)++) = (char) 0xc7; \
- (pc) = emit_r_X((interp), (pc), emit_reg(emit_b000), (b), (i), (s), (long)(d)); \
- *(long *)(pc) = (long)(imm); (pc) += 4; }
-
-/* Various ALU formats */
-
-# define emitm_alul_r_r(pc, op, reg1, reg2) { \
- *((pc)++) = (char) (op); *((pc)++) = (char) emit_alu_r_r((reg1), (reg2)); }
-
-# define emitm_alub_i_r(pc, op1, op2, imm, reg) { \
- *((pc)++) = (char) (op1); *((pc)++) = (char) emit_alu_X_r((op2), (reg)); *((pc)++) = (char)(imm); }
-
-# define emitm_alul_i_r(pc, op1, op2, imm, reg) { \
- *((pc)++) = (char) (op1); \
- *((pc)++) = (char) emit_alu_X_r((op2), (reg)); \
- *(long *)((pc)) = (long)(imm); (pc) += 4; }
-
-# define emitm_alul_i_m(pc, op1, op2, imm, b, i, s, d) { \
- *((pc)++) = (char) (op1); \
- (pc) = emit_r_X((interp), (pc), emit_reg(op2), (b), (i), (s), (d)); \
- *(long *)(pc) = (long)(imm); (pc) += 4; }
-
-# define emitm_alul_r_m(pc, op, reg, b, i, s, d) { \
- *((pc)++) = (char) (op); \
- (pc) = emit_r_X((interp), (pc), emit_reg((reg)-1), (b), (i), (s), (long)(d)); }
-
-/* ADDs */
-
-# define emitm_addb_r_r(pc, reg1, reg2) \
- emitm_alul_r_r((pc), 0x00, (reg1), (reg2))
-
-# define emitm_addb_i_r(pc, imm, reg) \
- emitm_alub_i_r((pc), 0x83, emit_b000, (imm), (reg))
-
-# define jit_emit_add_rr_i(interp, pc, reg1, reg2) \
- emitm_alul_r_r((pc), 0x01, (reg2), (reg1))
-
-# define jit_emit_add_ri_i(interp, pc, reg, imm) \
- emitm_alul_i_r((pc), 0x81, emit_b000, (imm), (reg))
-
-# define emitm_addl_i_r(pc, imm, reg) \
- emitm_alul_i_r((pc), 0x81, emit_b000, (imm), (reg))
-
-# define emitm_addl_i_m(pc, imm, b, i, s, d) \
- emitm_alul_i_m((pc), 0x81, emit_b000, (imm), (b), (i), (s), (d))
-
-# define emitm_addl_r_m(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x01, (reg), (b), (i), (s), (d))
-
-# define emitm_addl_m_r(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x03, (reg), (b), (i), (s), (d))
-
-/* SUBs */
-
-# define jit_emit_sub_rr_i(interp, pc, reg1, reg2) \
- emitm_alul_r_r((pc), 0x29, (reg2), (reg1))
-
-# define emitm_subl_i_r(pc, imm, reg) \
- emitm_alul_i_r((pc), 0x81, emit_b101, (imm), (reg))
-
-# define jit_emit_sub_ri_i(interp, pc, r, i) emitm_subl_i_r((pc), (i), (r))
-
-# define emitm_subl_r_m(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x29, (reg), (b), (i), (s), (d))
-
-# define emitm_subl_m_r(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x2b, (reg), (b), (i), (s), (d))
-
-# define emitm_subl_i_m(pc, imm, b, i, s, d) \
- emitm_alul_i_m((pc), 0x81, emit_b101, (imm), (b), (i), (s), (d))
-
-/* These are used by both signed and unsigned EDIV, but only unsigned MUL */
-# define emitm_alu_imp_r(pc, op, reg) { \
- *((pc)++) = (char) 0xf7; \
- *((pc)++) = (char) emit_alu_X_r((op), (reg)); }
-
-# define emitm_alu_imp_m(pc, op, b, i, s, d) { \
- *((pc)++) = (char) 0xf7; \
- (pc) = emit_r_X((interp), (pc), emit_reg(op), (b), (i), (s), (d)); }
-
-/* Unsigned MUL and EDIV */
-/* EAX implicit destination in multiply and divide */
-
-# define emitm_umull_r(pc, reg2) emitm_alu_imp_r((pc), emit_b100, (reg2))
-
-# define emitm_udivl_r(pc, reg2) emitm_alu_imp_r((pc), emit_b110, (reg2))
-
-# define emitm_umull_m(pc, b, i, s, d) \
- emitm_alu_imp_m((pc), emit_b100, (b), (i), (s), (d))
-
-# define emitm_udivl_m(pc, b, i, s, d) \
- emitm_alu_imp_m((pc), emit_b110, (b), (i), (s), (d))
-
-/* Signed MUL and EDIV */
-
-# define emitm_sdivl_r(pc, reg2) emitm_alu_imp_r((pc), emit_b111, (reg2))
-
-# define emitm_sdivl_m(pc, b, i, s, d) \
- emitm_alu_imp_m((pc), emit_b111, (b), (i), (s), (d))
-
-# define jit_emit_cdq(pc) *(pc)++ = 0x99
-
-/* TEST for zero */
-# define jit_emit_test_r_i(pc, reg1) emitm_alul_r_r((pc), 0x85, (reg1), (reg1))
-
-# define emitm_smull_r(pc, reg2) emitm_alu_imp_r((pc), emit_b101, (reg2))
-
-# define jit_emit_mul_rr_i(interp, pc, reg1, reg2) { \
- *(pc)++ = 0xf; \
- emitm_alul_r_r((pc), 0xaf, (reg1), (reg2)); }
-
-# define emitm_smull_r_m(pc, reg1, b, i, s, d) { \
- *(pc)++ = 0xf; \
- emitm_alul_r_m((pc), 0xaf, (reg1), (b), (i), (s), (d)); }
-
-char * opt_mul(PARROT_INTERP, char *pc, int dest, INTVAL imm, int src);
-
-# define jit_emit_mul_rir_i(pc, dest, imm, src) \
- (pc) = opt_mul(interp, (pc), (dest), (imm), (src))
-
-
-# define jit_emit_mul_ri_i(pc, r, imm) jit_emit_mul_rir_i((pc), (r), (imm), (r))
-
-# define jit_emit_mul_RIM_ii(pc, reg, imm, ofs) \
- emitm_alul_r_m((pc), 0x69, (reg), emit_EBX, emit_None, 1, (ofs)); \
- *(long *)(pc) = (long)(imm); \
- (pc) += 4;
-
-/* NEG */
-
-# define jit_emit_neg_r_i(pc, reg) emitm_alu_imp_r((pc), emit_b011, (reg))
-
-# define emitm_negl_m(pc, b, i, s, d) \
- emitm_alu_imp_m((pc), emit_b011, (b), (i), (s), (d))
-
-/* AND */
-
-# define emit_andl_r_r(pc, reg1, reg2) emitm_alul_r_r((pc), 0x21, (reg1), (reg2))
-# define jit_emit_band_rr_i(interp, pc, r1, r2) emit_andl_r_r((pc), (r2), (r1))
-
-# define jit_emit_band_ri_i(interp, pc, reg, imm) \
- emitm_alul_i_r((pc), 0x81, emit_b100, (imm), (reg))
-
-# define emitm_andl_r_m(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x21, (reg), (b), (i), (s), (d))
-
-# define emitm_andl_m_r(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x23, (reg), (b), (i), (s), (d))
-
-# define emitm_andl_i_m(pc, imm, b, i, s, d) \
- emitm_alul_i_m((pc), 0x81, emit_b100, (imm), (b), (i), (s), (d))
-
-/* TEST op */
-# define jit_emit_test_rr_i(pc, r1, r2) emitm_alul_r_r((pc), 0x85, (r1), (r2))
-
-# define jit_emit_test_ri_i(pc, r, im) \
- emitm_alul_i_r((pc), 0xF7, emit_b000, (im), (r))
-
-# define jit_emit_test_RM_i(pc, r, offs) \
- emitm_alul_r_m((pc), 0x85, (r), emit_EBX, 0, 1, (offs))
-
-/* OR */
-
-# define jit_emit_bor_rr_i(interp, pc, reg1, reg2) emitm_alul_r_r((pc), 0x9, (reg2), (reg1))
-
-# define jit_emit_bor_ri_i(interp, pc, reg, imm) \
- emitm_alul_i_r((pc), 0x81, emit_b001, (imm), (reg))
-
-# define emitm_orl_r_m(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x09, (reg), (b), (i), (s), (d))
-
-# define emitm_orl_m_r(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x0b, (reg), (b), (i), (s), (d))
-
-# define emitm_orl_i_m(pc, imm, b, i, s, d) \
- emitm_alul_i_m((pc), 0x81, emit_b001, (imm), (b), (i), (s), (d))
-
-/* XOR */
-
-# define jit_emit_bxor_rr_i(interp, pc, reg1, reg2) \
- emitm_alul_r_r((pc), 0x31, (reg2), (reg1))
-
-# define jit_emit_bxor_ri_i(intepr, pc, reg, imm) \
- emitm_alul_i_r((pc), 0x81, emit_b110, (imm), (reg))
-
-# define emitm_xorl_r_m(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x31, (reg), (b), (i), (s), (d))
-
-# define emitm_xorl_m_r(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x33, (reg), (b), (i), (s), (d))
-
-# define emitm_xorl_i_m(pc, imm, b, i, s, d) \
- emitm_alul_i_m((pc), 0x81, emit_b110, (imm), (b), (i), (s), (d))
-
-/* NOT */
-
-# define jit_emit_not_r_i(pc, reg) emitm_alu_imp_r((pc), emit_b010, (reg))
-# define emitm_notl_m(pc, b, i, s, d) \
- emitm_alu_imp_m((pc), emit_b010, (b), (i), (s), (d))
-
-# define jit_emit_not_M_i(interp, pc, offs) emitm_notl_m((pc), emit_EBX, 0, 1, (offs))
-
-/* XCHG */
-# define jit_emit_xchg_rr_i(interp, pc, r1, r2) { \
- if ((r1) != (r2)) { \
- *((pc)++) = (char) 0x87; \
- *((pc)++) = (char) emit_alu_r_r((r1), (r2)); \
- } \
-}
-
-# define jit_emit_xchg_rm_i(pc, r, m) { \
- emitm_alul_r_m((pc), 0x87, (r), emit_None, emit_None, emit_None, (m)) \
-}
-# define jit_emit_xchg_RM_i(interp, pc, r, offs) { \
- emitm_alul_r_m((pc), 0x87, (r), emit_EBX, emit_None, 1, (offs)) \
-}
-# define jit_emit_xchg_MR_i(interp, pc, offs, r) jit_emit_xchg_RM_i((interp), (pc), (r), (offs))
-
-/* SHL */
-
-# define jit_emit_shl_ri_i(interp, pc, reg, imm) \
- { (pc) = emit_shift_i_r((interp), (pc), emit_b100, (imm), (reg)); }
-
-# define emitm_shll_i_m(pc, imm, b, i, s, d) \
- { (pc) = emit_shift_i_m((pc), emit_b100, (imm), (b), (i), (s), (d)); }
-
-# define emitm_shll_r_r(interp, pc, reg1, reg2) \
- { (pc) = emit_shift_r_r((interp), (pc), emit_b100, (reg1), (reg2)); }
-
-# define emitm_shll_r_m(pc, reg, b, i, s, d) \
- { (pc) = emit_shift_r_m((pc), emit_b100, (reg), (b), (i), (s), (d)); }
-
-/* SHR */
-
-# define jit_emit_lsr_ri_i(interp, pc, reg, imm) \
- { (pc) = emit_shift_i_r((interp), (pc), emit_b101, (imm), (reg)); }
-
-# define emitm_shrl_i_m(pc, imm, b, i, s, d) \
- { (pc) = emit_shift_i_m((pc), emit_b101, (imm), (b), (i), (s), (d)); }
-
-# define emitm_shrl_r_r(interp, pc, reg1, reg2) \
- { (pc) = emit_shift_r_r((interp), (pc), emit_b101, (reg1), (reg2)); }
-
-# define emitm_shrl_r_m(pc, reg, b, i, s, d) \
- { (pc) = emit_shift_r_m((pc), emit_b101, (reg), (b), (i), (s), (d)); }
-
-/* SAL */
-
-# define emitm_sall_i_r(interp, pc, imm, reg) \
- { (pc) = emit_shift_i_r((interp), (pc), emit_b100, (imm), (reg)); }
-
-# define emitm_sall_i_m(pc, imm, b, i, s, d) \
- { (pc) = emit_shift_i_m((pc), emit_b100, (imm), (b), (i), (s), (d)); }
-
-# define emitm_sall_r_r(interp, pc, reg1, reg2) \
- { (pc) = emit_shift_r_r((interp), (pc), emit_b100, (reg1), (reg2)); }
-
-# define emitm_sall_r_m(pc, reg, b, i, s, d) \
- { (pc) = emit_shift_r_m((pc), emit_b100, (reg), (b), (i), (s), (d)); }
-
-/* SAR */
-
-# define jit_emit_shr_ri_i(interp, pc, reg, imm) \
- { (pc) = emit_shift_i_r((interp), (pc), emit_b111, (imm), (reg)); }
-
-
-# define emitm_sarl_i_m(pc, imm, b, i, s, d) \
- { (pc) = emit_shift_i_m((pc), emit_b111, (imm), (b), (i), (s), (d)); }
-
-# define emitm_sarl_r_r(interp, pc, reg1, reg2) \
- { (pc) = emit_shift_r_r((interp), (pc), emit_b111, (reg1), (reg2)); }
-
-# define emitm_sarl_r_m(pc, reg, b, i, s, d) \
- { (pc) = emit_shift_r_m((pc), emit_b111, (reg), (b), (i), (s), (d)); }
-
-/* rotate */
-
-# define jit_emit_rol_ri_i(interp, pc, reg, imm) \
- { (pc) = emit_shift_i_r((interp), (pc), emit_b000, (imm), (reg)); }
-
-# define jit_emit_ror_ri_i(interp, pc, reg, imm) \
- { (pc) = emit_shift_i_r((interp), (pc), emit_b001, (imm), (reg)); }
-
-/* interface, shift r1 by r2 bits */
-
-# define jit_emit_shl_rr_i(interp, pc, r1, r2) \
- (pc) = opt_shift_rr((interp), jit_info, (r1), (r2), emit_b100)
-
-# define jit_emit_shl_RM_i(interp, pc, r1, offs) \
- (pc) = opt_shift_rm((interp), jit_info, (r1), (offs), emit_b100)
-
-/* shr seems to be the arithmetic shift */
-# define jit_emit_shr_rr_i(interp, pc, r1, r2) \
- (pc) = opt_shift_rr((interp), jit_info, (r1), (r2), emit_b111)
-
-# define jit_emit_shr_RM_i(interp, pc, r1, offs) \
- (pc) = opt_shift_rm((interp), jit_info, (r1), (offs), emit_b111)
-
-# define jit_emit_lsr_rr_i(interp, pc, r1, r2) \
- (pc) = opt_shift_rr((interp), jit_info, (r1), (r2), emit_b101)
-
-# define jit_emit_lsr_RM_i(interp, pc, r1, offs) \
- (pc) = opt_shift_rm((interp), jit_info, (r1), (offs), emit_b101)
-
-/* MOV (reg), reg */
-# define emit_movm_r_r(pc, src, dest) \
- *((pc)++) = (char) 0x8b; \
- *((pc)++) = (char) (src) | (dest) << 3
-
-/* MOV X(reg), reg */
-# define emit_movb_i_r_r(pc, imm, src, dest) \
- *((pc)++) = (char)(0x8b); \
- *((p)c++) = (char)(0x40 | ((src) - 1) | ((dest) - 1) << 3); \
- *((pc)++) = (imm)
-
-/* INC / DEC */
-# define jit_emit_inc_r_i(pc, reg) *((pc)++) = (char)(0x40 | ((reg) - 1))
-# define jit_emit_dec_r_i(pc, reg) *((pc)++) = (char)(0x48 | ((reg) - 1))
-
-/* Floating point ops */
-
-# define emitm_floatop 0xd8 /* 11011000 */
-# define jit_emit_dec_fsp(pc) { *((pc)++) = (char) 0xD9; *((pc)++) = (char) 0xF6; }
-# define jit_emit_inc_fsp(pc) { *((pc)++) = (char) 0xD9; *((pc)++) = (char) 0xF7; }
-
-# define emitm_fl_2(interp, pc, mf, opa, opb, b, i, s, d) { \
- *((pc)++) = (char)(emitm_floatop | ((mf) << 1) | (opa)); \
- (pc) = emit_r_X((interp), (pc), emit_reg(opb), (b), (i), (s), (long)(d)); }
-
-# define emitm_fl_3(pc, d_p_opa, opb_r, sti) { \
- *((pc)++) = (char)(emitm_floatop | (d_p_opa)); \
- *((pc)++) = (char)(0xc0 | ((opb_r) << 3) | (sti)); }
-
-# define emitm_fl_4(pc, op) { \
- *((pc)++) = (char)(emitm_floatop | emit_b001); \
- *((pc)++) = (char)(0xe0 | (op)); }
-
-/* Integer loads and stores */
-# define emitm_fildl(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b01, 1, emit_b000, (b), (i), (s), (d))
-
-# define emitm_fistpl(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b01, 1, emit_b011, (b), (i), (s), (d))
-
-# define emitm_fistl(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b01, 1, emit_b010, (b), (i), (s), (d))
-
-/* long long integer load/store */
-# define emitm_fildll(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b11, 1, emit_b101, (b), (i), (s), (d))
-
-# define emitm_fistpll(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b11, 1, emit_b111, (b), (i), (s), (d))
-
-/* Double loads and stores */
-# define emitm_fldl(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b10, 1, emit_b000, (b), (i), (s), (d))
-
-# define emitm_fstpl(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b10, 1, emit_b011, (b), (i), (s), (d))
-
-# define emitm_fstl(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b10, 1, emit_b010, (b), (i), (s), (d))
-
-/* long double load / store */
-# define emitm_fldt(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b01, 1, emit_b101, (b), (i), (s), (d))
-
-# define emitm_fstpt(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b01, 1, emit_b111, (b), (i), (s), (d))
-
-/* short float load / store */
-# define emitm_flds(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b00, 1, emit_b000, (b), (i), (s), (d))
-
-# define emitm_fstps(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b00, 1, emit_b010, (b), (i), (s), (d))
-
-#if NUMVAL_SIZE == 8
-
-# define jit_emit_fload_m_n(interp, pc, address) \
- emitm_fldl((interp), (pc), emit_None, emit_None, emit_None, (address))
-
-# define jit_emit_fload_mb_n(interp, pc, base, offs) \
- emitm_fldl((interp), (pc), (base), emit_None, 1, (offs))
-
-# define jit_emit_fstore_m_n(interp, pc, address) \
- emitm_fstpl((interp), (pc), emit_None, emit_None, emit_None, (address))
-
-# define jit_emit_fstore_mb_n(interp, pc, base, offs) \
- emitm_fstpl((interp), (pc), (base), emit_None, 1, (offs))
-
-# define jit_emit_fst_mb_n(interp, pc, base, offs) \
- emitm_fstl((interp), (pc), (base), emit_None, 1, (offs))
-
-#else /* NUMVAL_SIZE */
-
-# define jit_emit_fload_m_n(interp, pc, address) \
- emitm_fldt((interp), (pc), emit_None, emit_None, emit_None, (address))
-
-# define jit_emit_fload_mb_n(interp, pc, base, offs) \
- emitm_fldt((interp), (pc), (base), emit_None, 1, (offs))
-
-# define jit_emit_fstore_m_n(pc, address) \
- emitm_fstpt((interp), (pc), emit_None, emit_None, emit_None, (address))
-
-# define jit_emit_fstore_mb_n(interp, pc, base, offs) \
- emitm_fstpt((interp), (pc), (base), emit_None, 1, (offs))
-
-# define jit_emit_fst_mb_n(interp, pc, base, offs) \
- emitm_fstt((interp), (pc), (base), emit_None, 1, (offs))
-
-#endif /* NUMVAL_SIZE */
-
-#if INTVAL_SIZE == 4
-
-# define jit_emit_fload_m_i(interp, pc, address) \
- emitm_fildl((interp), (pc), emit_None, emit_None, emit_None, (address))
-# define jit_emit_fload_mb_i(interp, pc, offs) \
- emitm_fildl((interp), (pc), emit_EBX, emit_None, 1, (offs))
-# define jit_emit_fstore_m_i(pc, m) \
- emitm_fistpl((pc), emit_None, emit_None, emit_None, (m))
-
-#else /* INTVAL_SIZE */
-
-# define jit_emit_fload_m_i(interp, pc, address) \
- emitm_fildll((interp), (pc), emit_None, emit_None, emit_None, (address))
-# define jit_emit_fload_mb_i(interp, pc, offs) \
- emitm_fildll((interp), (pc), emit_EBX, emit_None, 1, (offs))
-# define jit_emit_fstore_m_i(pc, m) \
- emitm_fistpll((pc), emit_None, emit_None, emit_None, (m))
-
-#endif /* INTVAL_SIZE */
-
-/* 0xD8 ops */
-# define emitm_fadd(pc, sti) emitm_fl_3((pc), emit_b000, emit_b000, (sti))
-# define emitm_fmul(pc, sti) emitm_fl_3((pc), emit_b000, emit_b001, (sti))
-# define emitm_fsub(pc, sti) emitm_fl_3((pc), emit_b000, emit_b100, (sti))
-# define emitm_fdiv(pc, sti) emitm_fl_3((pc), emit_b000, emit_b110, (sti))
-
-/* 0xD9 ops */
-# define emitm_fldz(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xee; }
-# define emitm_fld1(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xe8; }
-# define emitm_fsqrt(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xfa; }
-# define emitm_fsin(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xfe; }
-# define emitm_fcos(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xff; }
-# define emitm_fxam(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xe5; }
-
-/* FXCH ST, ST(i) , optimize 2 consecutive fxch with same reg */
-# define emitm_fxch(pc, sti) { \
- emitm_fl_3((pc), emit_b001, emit_b001, (sti)); \
-}
-
-/* FLD ST, ST(i), optimized FSTP(N+1);FLD(N) => FST(N+1) */
-extern unsigned char *lastpc;
-# define emitm_fld(pc, sti) do { \
- if ((unsigned char *)(pc) == (lastpc + 2) && \
- (int)(*lastpc) == (int)0xDD && \
- (int)lastpc[1] == (int)(0xD8+(sti)+1)) \
- lastpc[1] = 0xD0+(sti)+1; \
- else \
- emitm_fl_3((pc), emit_b001, emit_b000, (sti)); \
- } while (0)
-
-/* 0xDA, 0xDB ops */
-/* FCMOV*, FCOMI PPRO */
-
-/* 0xDC like 0xD8 with reversed operands */
-# define emitm_faddr(pc, sti) emitm_fl_3((pc), emit_b100, emit_b000, (sti))
-# define emitm_fmulr(pc, sti) emitm_fl_3((pc), emit_b100, emit_b001, (sti))
-# define emitm_fsubr(pc, sti) emitm_fl_3((pc), emit_b100, emit_b100, (sti))
-
-/* 0xDD ops */
-/* FFree ST(i) */
-# define emitm_ffree(pc, sti) emitm_fl_3((pc), emit_b101, emit_b000, (sti))
-
-/* FST ST(i) = ST */
-# define emitm_fst(pc, sti) emitm_fl_3((pc), emit_b101, emit_b010, (sti))
-
-/* FSTP ST(i) = ST, POP */
-# define emitm_fstp(pc, sti) { \
- lastpc = (unsigned char*) (pc); \
- emitm_fl_3((pc), emit_b101, emit_b011, (sti)); \
-}
-
-/* FUCOM ST(i) <=> ST unordered compares */
-# define emitm_fucom(pc, sti) emitm_fl_3((pc), emit_b101, emit_b100, (sti))
-
-/* FUCOMP ST(i) <=> ST, POP */
-# define emitm_fucomp(pc, sti) emitm_fl_3((pc), emit_b101, emit_b101, (sti))
-
-/* 0xDE ops */
-/* FADDP Add ST(i) = ST + ST(i); POP */
-# define emitm_faddp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b000, (sti))
-
-/* FMULP Mul ST(i) = ST * ST(i); POP */
-# define emitm_fmulp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b001, (sti))
-
-/* FSUB ST = ST - ST(i) */
-
-/* FSUBRP SubR ST(i) = ST - ST(i); POP */
-# define emitm_fsubrp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b100, (sti))
-
-/* FSUBP Sub ST(i) = ST(i) - ST; POP */
-# define emitm_fsubp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b101, (sti))
-
-/* FDIVRP DivR ST(i) = ST(i) / ST(0); POP */
-# define emitm_fdivrp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b110, (sti))
-
-/* FDIVP Div ST(i) = ST(0) / ST(i); POP ST(0) */
-# define emitm_fdivp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b111, (sti))
-
-/* 0xDF OPS: FCOMIP, FUCOMIP PPRO */
-
-/* Negate - called change sign */
-# define emitm_fchs(pc) emitm_fl_4((pc), 0)
-
-/* ABS - ST(0) = ABS(ST(0)) */
-# define emitm_fabs(pc) emitm_fl_4((pc), 1)
-
-/* Comparisons */
-
-# define emitm_fcom(pc, sti) emitm_fl_3((pc), emit_b000, emit_b010, (sti))
-
-# define emitm_fcomp(pc, sti) emitm_fl_3((pc), emit_b000, emit_b011, (sti))
-
-#ifdef PARROT_HAS_JIT_FCOMIP
-# define emitm_fcomip(pc, sti) emitm_fl_3((pc), emit_b111, emit_b110, (sti))
-# define emitm_fcomi(pc, sti) emitm_fl_3((pc), emit_b011, emit_b110, (sti))
-#else
-# define emitm_fcomip(pc, sti) do { \
- emitm_fcomp((pc), (sti)); \
- emitm_fstw(pc); \
- emitm_sahf(pc); \
- } while (0)
-# define emitm_fcomi(pc, sti) do { \
- emitm_fcom((pc), (sti)); \
- emitm_fstw(pc); \
- emitm_sahf(pc); \
- } while (0)
-#endif
-
-# define emitm_fcompp(pc) { *((pc)++) = (char) 0xde; *((pc)++) = (char) 0xd9; }
-
-# define emitm_fcom_m(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b10, 0, emit_b010, (b), (i), (s), (d))
-
-# define emitm_fcomp_m(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b10, 0, emit_b011, (b), (i), (s), (d))
-
-/* ST -= real64 */
-# define emitm_fsub_m(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b10, 0, emit_b100, (b), (i), (s), (d))
-
-/* ST -= int32_mem */
-# define emitm_fisub_m(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b01, 0, emit_b100, (b), (i), (s), (d))
-
-# define emitm_fadd_m(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b10, 0, emit_b000, (b), (i), (s), (d))
-
-/* ST += int32_mem */
-# define emitm_fiadd_m(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b01, 0, emit_b000, (b), (i), (s), (d))
-
-/* ST *= real64 */
-# define emitm_fmul_m(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b10, 0, emit_b001, (b), (i), (s), (d))
-
-/* ST *= int32_mem */
-# define emitm_fimul_m(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b01, 0, emit_b001, (b), (i), (s), (d))
-
-/* ST /= real64 */
-# define emitm_fdiv_m(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b10, 0, emit_b110, (b), (i), (s), (d))
-
-/* ST /= int32_mem */
-# define emitm_fidiv_m(interp, pc, b, i, s, d) \
- emitm_fl_2((interp), (pc), emit_b01, 0, emit_b110, (b), (i), (s), (d))
-
-/* Ops Needed to support loading EFLAGs for conditional branches */
-# define emitm_fstw(pc) emitm_fl_3((pc), emit_b111, emit_b100, emit_b000)
-
-# define emitm_sahf(pc) *((pc)++) = (char) 0x9e
-
-/* misc float */
-# define emitm_ftst(pc) { *(pc)++ = 0xd9; *(pc)++ = 0xE4; }
-# define emitm_fprem(pc) { *(pc)++ = 0xd9; *(pc)++ = 0xF8; }
-# define emitm_fprem1(pc) { *(pc)++ = 0xd9; *(pc)++ = 0xF5; }
-
-# define emitm_fldcw(interp, pc, mem) \
- emitm_fl_2((interp), (pc), emit_b00, 1, emit_b101, 0, 0, 0, (mem))
-
-#if defined(NEG_MINUS_ZERO)
-# define jit_emit_neg_r_n(pc, r) { \
- if (r) { \
- emitm_fld((pc), (r)); \
- } \
- emitm_fchs(pc); \
- if (r) { \
- emitm_fstp((pc), ((r)+1)); \
- } \
- }
-
-# define jit_emit_neg_M_n(interp, pc, mem) { \
- jit_emit_fload_mb_n((interp), (pc), emit_EBX, (mem)); \
- emitm_fchs(pc); \
- jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (mem)); \
- }
-
-#elif defined(NEG_ZERO_SUB)
-
-# define jit_emit_neg_r_n(pc, r) { \
- emitm_fldz(pc); \
- emitm_fsubrp((pc), ((r)+1)); \
- }
-
-# define jit_emit_neg_M_n(interp, pc, mem) { \
- jit_emit_fload_mb_n((interp), (pc), emit_EBX, (mem)); \
- emitm_fldz(pc); \
- emitm_fsubrp((pc), 1); \
- jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (mem)); \
- }
-#else
-
-# define jit_emit_neg_r_n(pc, r) { \
- if (r) { \
- emitm_fld((pc), (r)); \
- } \
- emitm_ftst(pc); \
- emitm_fstw(pc); \
- emitm_sahf(pc); \
- emitm_jxs((pc), emitm_jz, 2); \
- emitm_fchs(pc); \
- if (r) { \
- emitm_fstp((pc), ((r)+1)); \
- } \
- }
-
-# define jit_emit_neg_M_n(interp, pc, mem) { \
- jit_emit_fload_mb_n((interp), (pc), emit_EBX, (mem)); \
- emitm_ftst(pc); \
- emitm_fstw(pc); \
- emitm_sahf(pc); \
- emitm_jxs((pc), emitm_jz, 2); \
- emitm_fchs(pc); \
- jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (mem)); \
- }
-#endif
-
-# define jit_emit_sin_r_n(pc, r) \
- if (r) { \
- emitm_fld((pc), (r)); \
- } \
- emitm_fsin(pc); \
- if (r) { \
- emitm_fstp((pc), ((r)+1)); \
- }
-
-# define jit_emit_cos_r_n(pc, r) \
- if (r) { \
- emitm_fld((pc), (r)); \
- } \
- emitm_fcos(pc); \
- if (r) { \
- emitm_fstp((pc), ((r)+1)); \
- }
-
-# define jit_emit_sqrt_r_n(pc, r) \
- if (r) { \
- emitm_fld((pc), (r)); \
- } \
- emitm_fsqrt(pc); \
- if (r) { \
- emitm_fstp((pc), ((r)+1)); \
- }
-
-# define jit_emit_abs_r_n(pc, r) { \
- if (r) { \
- emitm_fld((pc), (r)); \
- } \
- emitm_fabs(pc); \
- if (r) { \
- emitm_fstp((pc), ((r)+1)); \
- } \
- }
-
-# define jit_emit_abs_r_i(pc, r) { \
- jit_emit_test_r_i((pc), (r)); \
- emitm_jxs((pc), emitm_jns, 3); \
- jit_emit_not_r_i((pc), (r)); \
- jit_emit_inc_r_i((pc), (r)); \
- }
-
-# define jit_emit_abs_m_n(interp, pc, mem) { \
- jit_emit_fload_m_n((interp), (pc), (mem)); \
- emitm_fabs(pc); \
- jit_emit_fstore_m_n((pc), (mem)); \
- }
-
-/* Integer comparisons */
-# define jit_emit_cmp_rr(pc, reg1, reg2) \
- emitm_alul_r_r((pc), 0x39, (reg2), (reg1))
-# define jit_emit_cmp_rr_i(pc, r1, r2) jit_emit_cmp_rr((pc), (r1), (r2))
-
-# define emitm_cmpl_r_m(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x3b, (reg), (b), (i), (s), (d))
-
-# define emitm_cmpl_m_r(pc, reg, b, i, s, d) \
- emitm_alul_r_m((pc), 0x39, (reg), (b), (i), (s), (d))
-
-# define jit_emit_cmp_ri_i(interp, pc, reg, imm) \
- emitm_alul_i_r((pc), 0x81, emit_b111, (imm), (reg))
-
-/* Unconditional Jump/Call */
-
-# define emitm_call_cfunc(pc, func) emitm_calll((pc), (char *)(func) - (pc) - 4)
-
-# define emitm_calll(pc, disp) { \
- *((pc)++) = (char) 0xe8; \
- *(long *)(pc) = (disp); (pc) += 4; }
-
-# define emitm_callr(pc, reg) { \
- *((pc)++) = (char) 0xff; \
- *((pc)++) = (char) 0xd0 | ((reg) - 1); }
-
-# define emitm_callm(pc, b, i, s, d) { \
- *((pc)++) = (char) 0xff; \
- (pc) = emit_r_X((interp), (pc), emit_reg(emit_b010), (b), (i), (s), (d)); }
-
-# define emitm_jumps(pc, disp) { \
- *((pc)++) = (char) 0xeb; \
- *((pc)++) = (disp); }
-
-# define emitm_jumpl(pc, disp) { \
- *((pc)++) = (char) 0xe9; \
- *(long *)(pc) = (disp); (pc) += 4; }
-
-# define emitm_jumpr(pc, reg) { \
- *((pc)++) = (char) 0xff; \
- *((pc)++) = (char)(0xe0 | ((reg) - 1)); }
-
-# define emitm_jumpm(pc, b, i, s, d) { \
- *((pc)++) = (char) 0xff; \
- (pc) = emit_r_X((interp), (pc), emit_reg(emit_b100), (b), (i), (s), (d)); }
-
-/* Conditional jumps */
-
-/* Short jump - 8 bit disp */
-# define emitm_jxs(pc, code, disp) { \
- *((pc)++) = (char)(0x70 | (code)); \
- *((pc)++) = (char)(disp); }
-
-/* Long jump - 32 bit disp */
-# define emitm_jxl(pc, code, disp) { \
- *((pc)++) = (char) 0x0f; \
- *((pc)++) = (char)(0x80 | (code)); \
- *(long *)(pc) = (disp); (pc) += 4; }
-
-# define emitm_jo 0
-# define emitm_jno 1
-# define emitm_jb 2
-# define emitm_jnb 3
-# define emitm_jz 4
-# define emitm_je emitm_jz
-# define emitm_jnz 5
-# define emitm_jne emitm_jnz
-# define emitm_jbe 6
-# define emitm_ja 7
-# define emitm_js 8
-# define emitm_jns 9
-# define emitm_jp 10
-# define emitm_jnp 11
-# define emitm_jl 12
-# define emitm_jnl 13
-# define emitm_jle 14
-# define emitm_jg 15
-
-/* set byte conditional */
-# define jit_emit_setcc_r(pc, cc, r) \
- *(pc)++ = 0x0f; \
- *(pc)++ = 0x90 + (cc); \
- *(pc)++ = (char) emit_alu_X_r(0, (r))
-
-/*
- * core.jit interface
- *
- * The new offset based versions have uppercase RM or MR inside
- * That's probably only during transition time
- */
-
-# define jit_emit_mov_mi_i(pc, dest, immediate) \
- emitm_movl_i_m((pc), (immediate), emit_None, emit_None, emit_None, (dest))
-
-# define jit_emit_mov_MI_i(interp, pc, offs, immediate) \
- emitm_movl_i_m((pc), (immediate), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_mov_rm_i(interp, pc, reg, address) \
- emitm_movl_m_r((interp), (pc), (reg), emit_None, emit_None, emit_None, (address))
-
-# define jit_emit_mov_RM_i(interp, pc, reg, offs) \
- emitm_movl_m_r((interp), (pc), (reg), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_mov_mr_i(interp, pc, address, reg) \
- emitm_movl_r_m((interp), (pc), (reg), emit_None, emit_None, emit_None, (address))
-
-# define jit_emit_mov_MR_i(interp, pc, offs, reg) \
- emitm_movl_r_m((interp), (pc), (reg), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_mul_RM_i(interp, pc, reg, offs) \
- emitm_smull_r_m((pc), (reg), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_sub_RM_i(interp, pc, reg, offs) \
- emitm_subl_m_r((pc), (reg), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_sub_MR_i(interp, pc, offs, reg) \
- emitm_subl_r_m((pc), (reg), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_sub_MI_i(pc, offs, imm) \
- emitm_subl_i_m((pc), (imm), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_add_RM_i(interp, pc, reg, offs) \
- emitm_addl_m_r((pc), (reg), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_add_MR_i(interp, pc, offs, reg) \
- emitm_addl_r_m((pc), (reg), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_add_MI_i(pc, offs, imm) \
- emitm_addl_i_m((pc), (imm), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_cmp_rm_i(pc, reg, address) \
- emitm_cmpl_r_m((pc), (reg), emit_None, emit_None, emit_None, (address))
-
-# define jit_emit_cmp_RM_i(interp, pc, reg, offs) \
- emitm_cmpl_r_m((pc), (reg), emit_EBX, emit_None, 1, (offs))
-
-# define jit_emit_cmp_MR_i(interp, pc, offs, reg) \
- emitm_cmpl_m_r((pc), (reg), emit_EBX, emit_None, 1, (offs))
-
-/* high level routines, behave like real 2 register FP */
-
-/* mapped float registers numbers are ST(1)-ST(4).
- * scratch register is ST(0)
- */
-
-/* ST(i) <- numvar */
-# define jit_emit_mov_RM_n(interp, pc, r, d) { \
- jit_emit_fload_mb_n((interp), (pc), emit_EBX, (d)); \
- emitm_fstp((pc), ((r)+1)); \
-}
-
-/* ST(i) <= NUM_CONST */
-# define jit_emit_mov_ri_n(interp, pc, r, i) { \
- jit_emit_fload_m_n((interp), (pc), (i)); \
- emitm_fstp((pc), ((r)+1)); \
-}
-
-/* ST(i) <= &INT_CONST */
-# define jit_emit_mov_ri_ni(interp, pc, r, i) { \
- jit_emit_fload_m_i((interp), (pc), (i)); \
- emitm_fstp((pc), ((r)+1)); \
-}
-
-/* ST(i) <= INT_REG */
-# define jit_emit_mov_RM_ni(interp, pc, r, i) { \
- jit_emit_fload_mb_i((interp), (pc), (i)); \
- emitm_fstp((pc), ((r)+1)); \
-}
-
-/* NUM_REG(i) <= &INT_CONST
- * the int const i is loaded from the code memory
- */
-# define jit_emit_mov_MI_ni(interp, pc, offs, i) { \
- jit_emit_fload_m_i((interp), (pc), (i)); \
- jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (offs)); \
-}
-
-/* INT_REG <= ST(i) */
-# define jit_emit_mov_mr_in(pc, mem, r) { \
- emitm_fld((pc), (r)); \
- jit_emit_fstore_m_i((pc), (mem)); \
-}
-
-/* numvar <- ST(i) */
-# define jit_emit_mov_mr_n(pc, d, r) { \
- emitm_fld((pc), (r)); \
- jit_emit_fstore_m_n((pc), (d)); \
-}
-
-# define jit_emit_mov_MR_n(interp, pc, d, r) { \
- if (r) { \
- emitm_fld((pc), (r)); \
- jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (d)); \
- } \
- else { \
- jit_emit_fst_mb_n((interp), (pc), emit_EBX, (d)); \
- } \
-}
-
-/* ST(r1) <= ST(r2) */
-# define jit_emit_mov_rr_n(pc, r1, r2) { \
- if ((r1) != (r2)) { \
- if (r2) { \
- emitm_fld((pc), (r2)); \
- emitm_fstp((pc), ((r1)+1)); \
- } \
- else { \
- emitm_fst((pc), (r1)); \
- } \
- } \
-}
-
-/* ST(r1) xchg ST(r2) */
-# define jit_emit_xchg_rr_n(interp, pc, r1, r2) { \
- if ((r1) != (r2)) { \
- emitm_fld((pc), (r1)); \
- emitm_fld((pc), ((r2)+1)); \
- emitm_fstp((pc), ((r1)+2)); \
- emitm_fstp((pc), ((r2)+1)); \
- } \
-}
-
-# define jit_emit_xchg_RM_n(interp, pc, r, offs) { \
- emitm_fld((pc), (r)); \
- jit_emit_fload_mb_n((interp), (pc), emit_EBX, (offs)); \
- emitm_fstp((pc), ((r)+2)); \
- jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (offs)); \
-}
-
-# define jit_emit_xchg_MR_n(interp, pc, offs, r) { \
- emitm_fld((pc), (r)); \
- jit_emit_fload_mb_n((interp), (pc), emit_EBX, (offs)); \
- emitm_fstp((pc), ((r)+2)); \
- jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (offs)); \
-}
-
-# define jit_emit_finit(pc) { *((pc)++) = (char) 0xdb; *((pc)++) = (char) 0xe3; }
-
-/* ST(i) op= MEM */
-
-# define jit_emit_xxx_rm_n(interp, op, pc, r, m) { \
- jit_emit_fload_m_n((interp), (pc), (m)); \
- emitm_f ## op ## p((pc), ((r)+1)); \
-}
-
-# define jit_emit_xxx_RM_n(interp, op, pc, r, offs) { \
- jit_emit_fload_mb_n((interp), (pc), emit_EBX, (offs)); \
- emitm_f ## op ## p((pc), ((r)+1)); \
-}
-
-/*
- * float ops in two flavors: abs memory for constants, offsets for regs
- */
-
-# define jit_emit_add_ri_n(interp, pc, r, m) jit_emit_xxx_rm_n((interp), add, (pc), (r), (m))
-# define jit_emit_sub_ri_n(interp, pc, r, m) jit_emit_xxx_rm_n((interp), sub, (pc), (r), (m))
-# define jit_emit_mul_ri_n(interp, pc, r, m) jit_emit_xxx_rm_n((interp), mul, (pc), (r), (m))
-
-# define jit_emit_add_RM_n(interp, pc, r, o) jit_emit_xxx_RM_n((interp), add, (pc), (r), (o))
-# define jit_emit_sub_RM_n(interp, pc, r, o) jit_emit_xxx_RM_n((interp), sub, (pc), (r), (o))
-# define jit_emit_mul_RM_n(interp, pc, r, o) jit_emit_xxx_RM_n((interp), mul, (pc), (r), (o))
-
-/* ST(r1) += ST(r2) */
-/* r1 == 0: ST(0) <- ST(0) + ST(i)
- * r2 == 0: ST(i) <- ST(0) + ST(i)
- */
-# define jit_emit_add_rr_n(interp, pc, r1, r2) do { \
- if (!(r1)) { \
- emitm_fadd((pc), (r2)); \
- } \
- else if (!(r2)) { \
- emitm_faddr((pc), (r1)); \
- } \
- else { \
- emitm_fld((pc), (r2)); \
- emitm_faddp((pc), ((r1)+1)); \
- } \
- } \
- while (0)
-/*
- * ST(r) += INT_REG
- */
-# define jit_emit_add_RM_ni(pc, r, offs) { \
- emitm_fld((pc), (r)); \
- emitm_fiadd_m((pc), emit_EBX, 0, 1, (offs)); \
- emitm_fstp((pc), ((r)+1)); \
-}
-
-/* ST(r1) -= ST(r2) */
-/* r1 == 0: ST(0) <- ST(0) - ST(i)
- * r2 == 0: ST(i) <- ST(i) - ST(0)
- */
-# define jit_emit_sub_rr_n(interp, pc, r1, r2) do { \
- if (!(r1)) { \
- emitm_fsub((pc), (r2)); \
- } \
- else if (!(r2)) { \
- emitm_fsubr((pc), (r1)); \
- } \
- else { \
- emitm_fld((pc), (r2)); \
- emitm_fsubp((pc), ((r1)+1)); \
- } \
- } \
- while (0)
-
-/*
- * ST(r) -= INT_REG
- */
-# define jit_emit_sub_RM_ni(pc, r, offs) { \
- emitm_fld((pc), (r)); \
- emitm_fisub_m((pc), emit_EBX, 0, 1, (offs)); \
- emitm_fstp((pc), ((r)+1)); \
-}
-
-# define jit_emit_inc_r_n(pc, r) { \
- emitm_fld1(pc); \
- emitm_faddp((pc), ((r)+1)); \
-}
-
-# define jit_emit_dec_r_n(pc, r) { \
- emitm_fld1(pc); \
- emitm_fsubp((pc), ((r)+1)); \
-}
-
-/* ST(r1) *= ST(r2) */
-/* r1 == 0: ST(0) <- ST(0) * ST(i)
- * r2 == 0: ST(i) <- ST(0) * ST(i)
- */
-# define jit_emit_mul_rr_n(interp, pc, r1, r2) do { \
- if (!(r1)) { \
- emitm_fmul((pc), (r2)); \
- } \
- else if (!(r2)) { \
- emitm_fmulr((pc), (r1)); \
- } \
- else { \
- emitm_fld((pc), (r2)); \
- emitm_fmulp((pc), ((r1)+1)); \
- } \
- } \
- while (0)
-
-/*
- * ST(r) *= INT_REG
- */
-# define jit_emit_mul_RM_ni(pc, r, offs) { \
- emitm_fld((pc), (r)); \
- emitm_fimul_m((pc), emit_EBX, 0, 1, (offs)); \
- emitm_fstp((pc), ((r)+1)); \
-}
-
-/*
- * ST(r) /= INT_REG
- */
-# define jit_emit_div_RM_ni(pc, r, offs) { \
- emitm_fld((pc), (r)); \
- emitm_fidiv_m((pc), emit_EBX, 0, 1, (offs)); \
- emitm_fstp((pc), ((r)+1)); \
-}
-
-/* test r for zero */
-# define jit_emit_test_r_n(pc, r) { \
- if (r) { \
- emitm_fxch((pc), (r)); \
- } \
- emitm_fxam(pc); \
- emitm_fstw(pc); \
- emitm_sahf(pc); \
- if (r) { \
- emitm_fxch((pc), (r)); \
- } \
-}
-
-enum { JIT_X86BRANCH, JIT_X86JUMP, JIT_X86CALL };
-
-# define jit_emit_stack_frame_enter(pc) do { \
- emitm_pushl_r((pc), emit_EBP); \
- jit_emit_mov_rr_i((pc), emit_EBP, emit_ESP); \
-} while (0)
-
-# define jit_emit_stack_frame_leave(pc) do { \
- jit_emit_mov_rr_i((pc), emit_ESP, emit_EBP); \
- emitm_popl_r((pc), emit_EBP); \
-} while (0)
-
-# define jit_emit_end(pc) { \
- jit_emit_add_ri_i((interp), (pc), emit_ESP, 4); \
- emitm_popl_r((pc), emit_EDI); \
- emitm_popl_r((pc), emit_ESI); \
- emitm_popl_r((pc), emit_EBX); \
- emitm_popl_r((pc), emit_EBP); \
- emitm_ret(pc); \
- }
-
-size_t calc_signature_needs(const char *sig, int *strings);
-
-void * Parrot_jit_build_call_func(PARROT_INTERP, PMC *pmc_nci,
- STRING *signature, int *sizeptr);
-
-/*
- * register usage
- * %edi, %esi ... mapped, preserved
- * %edx, %ecx ... mapped, not preserved
- * %ebx ... base pointer for register access, preserved
- * %eax ... scratch, return value register
- */
-
-#endif /* PARROT_I386_JIT_EMIT_H_GUARD */
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/unshared_buffers/src/gc/alloc_resources.c
==============================================================================
--- branches/unshared_buffers/src/gc/alloc_resources.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/gc/alloc_resources.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -324,7 +324,7 @@
size_t new_mem = mem_pools->memory_used -
mem_pools->mem_used_last_collect;
if (!mem_pools->gc_mark_block_level
- && new_mem > (mem_pools->mem_used_last_collect >> 1)
+ && new_mem > (mem_pools->mem_used_last_collect >> 2)
&& new_mem > GC_SIZE_THRESHOLD) {
Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
}
@@ -447,19 +447,21 @@
if (mem_pools->gc_sweep_block_level)
return;
+ ++mem_pools->gc_sweep_block_level;
+
+ /* We're collecting */
+ mem_pools->mem_allocs_since_last_collect = 0;
+ mem_pools->header_allocs_since_last_collect = 0;
++mem_pools->gc_collect_runs;
/* Snag a block big enough for everything */
total_size = pad_pool_size(pool);
- if (total_size == 0)
+ if (total_size == 0) {
+ free_old_mem_blocks(mem_pools, pool, pool->top_block, total_size);
+ --mem_pools->gc_sweep_block_level;
return;
-
- ++mem_pools->gc_sweep_block_level;
-
- /* We're collecting */
- mem_pools->mem_allocs_since_last_collect = 0;
- mem_pools->header_allocs_since_last_collect = 0;
+ }
alloc_new_block(mem_pools, total_size, pool, "inside compact");
@@ -678,8 +680,7 @@
else {
/* Note that we don't have it any more */
mem_pools->memory_allocated -= cur_block->size;
- mem_pools->memory_used -=
- cur_block->size - cur_block->free - cur_block->freed;
+ mem_pools->memory_used -= cur_block->size - cur_block->free;
/* We know the pool body and pool header are a single chunk, so
* this is enough to get rid of 'em both */
Modified: branches/unshared_buffers/src/gc/api.c
==============================================================================
--- branches/unshared_buffers/src/gc/api.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/gc/api.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -359,9 +359,9 @@
=item C<STRING * Parrot_gc_new_string_header(PARROT_INTERP, UINTVAL flags)>
Returns a new C<STRING> header from the string pool or the constant string
-pool. Sets default flags on the string object: C<PObj_is_string_FLAG>,
-C<PObj_is_COWable_FLAG>, and C<PObj_live_FLAG> (for GC). Initializes the data
-field of the string buffer to C<NULL>.
+pool. Sets default flags on the string object: C<PObj_is_string_FLAG> and
+C<PObj_is_COWable_FLAG>. Initializes the data field of the string buffer to
+C<NULL>.
=cut
@@ -381,7 +381,7 @@
Buffer_bufstart(string) = NULL;
PObj_get_FLAGS(string) |=
- flags | PObj_is_string_FLAG | PObj_is_COWable_FLAG | PObj_live_FLAG;
+ flags | PObj_is_string_FLAG | PObj_is_COWable_FLAG;
return string;
}
Modified: branches/unshared_buffers/src/gc/gc_ms.c
==============================================================================
--- branches/unshared_buffers/src/gc/gc_ms.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/gc/gc_ms.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -17,6 +17,8 @@
#include "parrot/parrot.h"
#include "gc_private.h"
+#define DEBUG_FREE_LIST 0
+
PARROT_DOES_NOT_RETURN
static void failed_allocation(unsigned int line, unsigned long size) /* HEADERIZER SKIP */
{
@@ -31,6 +33,13 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+PARROT_WARN_UNUSED_RESULT
+static INTVAL contained_in_attr_pool(
+ ARGIN(const PMC_Attribute_Pool *pool),
+ ARGIN(const void *ptr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
static int gc_ms_active_sized_buffers(ARGIN(const Memory_Pools *mem_pools))
__attribute__nonnull__(1);
@@ -253,6 +262,9 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*mem_pools);
+#define ASSERT_ARGS_contained_in_attr_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(pool) \
+ , PARROT_ASSERT_ARG(ptr))
#define ASSERT_ARGS_gc_ms_active_sized_buffers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_gc_ms_add_free_object __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -984,6 +996,37 @@
/*
+=item C<static INTVAL contained_in_attr_pool(const PMC_Attribute_Pool *pool,
+const void *ptr)>
+
+Returns whether the given C<*ptr> points to a location in C<pool>.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+static INTVAL
+contained_in_attr_pool(ARGIN(const PMC_Attribute_Pool *pool), ARGIN(const void *ptr))
+{
+ ASSERT_ARGS(contained_in_attr_pool)
+ const PMC_Attribute_Arena *arena;
+ const ptrdiff_t item_space = pool->objects_per_alloc * pool->attr_size;
+
+ for (arena = pool->top_arena; arena; arena = arena->next) {
+ const ptrdiff_t ptr_diff = (const char *)ptr - (const char *)(arena + 1);
+
+ if (ptr_diff >= 0
+ && ptr_diff < item_space
+ && ptr_diff % pool->attr_size == 0)
+ return 1;
+ }
+
+ return 0;
+}
+
+/*
+
=item C<void gc_ms_free_pmc_attributes(PARROT_INTERP, PMC *pmc)>
Deallocates an attibutes structure from a PMC if it has the auto_attrs
@@ -1022,6 +1065,10 @@
ASSERT_ARGS(gc_ms_free_attributes_from_pool)
PMC_Attribute_Free_List * const item = (PMC_Attribute_Free_List *)data;
+#if DEBUG_FREE_LIST
+ PARROT_ASSERT(contained_in_attr_pool(pool, data));
+#endif
+
item->next = pool->free_list;
pool->free_list = item;
@@ -1236,7 +1283,6 @@
/* Decrease usage */
PARROT_ASSERT(Buffer_pool(str));
Buffer_pool(str)->freed += old_size;
- interp->mem_pools->memory_used -= old_size;
oldmem = Buffer_bufstart(str);
Buffer_bufstart(str) = (void *)mem;
@@ -1504,8 +1550,8 @@
pool->skip = GC_NO_SKIP;
else if (pool->skip == GC_NEVER_SKIP
|| (pool->skip == GC_NO_SKIP
- && (new_mem > (mem_pools->mem_used_last_collect >> 1)
- && mem_pools->header_allocs_since_last_collect >= GC_SIZE_THRESHOLD)))
+ && (new_mem > (mem_pools->mem_used_last_collect >> 2)
+ && new_mem >= GC_SIZE_THRESHOLD)))
Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
/* requires that num_free_objects be updated in Parrot_gc_mark_and_sweep.
@@ -1536,6 +1582,10 @@
ASSERT_ARGS(gc_ms_add_free_object)
GC_MS_PObj_Wrapper *object = (GC_MS_PObj_Wrapper *)to_add;
+#if DEBUG_FREE_LIST
+ PARROT_ASSERT(contained_in_pool(pool, to_add));
+#endif
+
PObj_flags_SETTO(object, PObj_on_free_list_FLAG);
object->next_ptr = pool->free_list;
@@ -1644,9 +1694,6 @@
if (alloc_size > POOL_MAX_BYTES)
pool->objects_per_alloc = POOL_MAX_BYTES / pool->object_size;
-
- if (alloc_size > GC_SIZE_THRESHOLD)
- pool->skip = GC_NEVER_SKIP;
}
Modified: branches/unshared_buffers/src/gc/gc_private.h
==============================================================================
--- branches/unshared_buffers/src/gc/gc_private.h Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/gc/gc_private.h Sun Aug 29 17:09:11 2010 (r48719)
@@ -86,9 +86,9 @@
/* how often to skip a full GC when this pool has nothing free */
typedef enum _gc_skip_type_enum {
GC_NO_SKIP = 0,
- GC_ONE_SKIP,
+ GC_ONE_SKIP, /* unused */
GC_ALWAYS_SKIP,
- GC_NEVER_SKIP
+ GC_NEVER_SKIP /* unused */
} gc_skip_type_enum;
typedef struct GC_Subsystem {
@@ -316,13 +316,16 @@
* blocks allocated from
* the system since the last
* GC run */
- size_t memory_allocated; /* The total amount of allocatable memory
- * allocated. Doesn't count memory for
- * headers or internal structures or
- * anything */
- size_t memory_used; /* The total amount of
- * memory used for
- * buffers and headers */
+ size_t memory_allocated; /* The total amount of memory allocated
+ * in fixed and variable size pools.
+ * Doesn't count memory for internal
+ * structures */
+ size_t memory_used; /* The total amount of memory used
+ * in fixed and variable size
+ * pools. Also includes memory in
+ * variable size pools that has been
+ * freed but can only be reclaimed
+ * by a GC run */
size_t mem_used_last_collect; /* The total amount of
* memory used after
* the last GC run */
Modified: branches/unshared_buffers/src/gc/mark_sweep.c
==============================================================================
--- branches/unshared_buffers/src/gc/mark_sweep.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/gc/mark_sweep.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -32,13 +32,11 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
static void free_buffer(SHIM_INTERP,
- ARGMOD(Memory_Pools *mem_pools),
+ SHIM(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool),
ARGMOD(Buffer *b))
- __attribute__nonnull__(2)
__attribute__nonnull__(3)
__attribute__nonnull__(4)
- FUNC_MODIFIES(*mem_pools)
FUNC_MODIFIES(*pool)
FUNC_MODIFIES(*b);
@@ -80,8 +78,7 @@
FUNC_MODIFIES(*mem_pools);
#define ASSERT_ARGS_free_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(mem_pools) \
- , PARROT_ASSERT_ARG(pool) \
+ PARROT_ASSERT_ARG(pool) \
, PARROT_ASSERT_ARG(b))
#define ASSERT_ARGS_free_pmc_in_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -481,6 +478,7 @@
pool->last_Arena = new_arena;
mem_pools->header_allocs_since_last_collect += size;
+ mem_pools->memory_allocated += size;
}
/*
@@ -658,7 +656,7 @@
static void
free_buffer(SHIM_INTERP,
- ARGMOD(Memory_Pools *mem_pools),
+ SHIM(Memory_Pools *mem_pools),
ARGMOD(Fixed_Size_Pool *pool),
ARGMOD(Buffer *b))
{
Modified: branches/unshared_buffers/src/hash.c
==============================================================================
--- branches/unshared_buffers/src/hash.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/hash.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -25,50 +25,41 @@
*/
#include "parrot/parrot.h"
-#include "pmc/pmc_key.h"
/* the number of entries above which it's faster to hash the hashval instead of
* looping over the used HashBuckets directly */
-#define INITIAL_BUCKETS 8
+#define INITIAL_SIZE 8
/* HEADERIZER HFILE: include/parrot/hash.h */
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
-static int cstring_compare(SHIM_INTERP,
- ARGIN(const char *a),
- ARGIN(const char *b))
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
static void expand_hash(PARROT_INTERP, ARGMOD(Hash *hash))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*hash);
-static UINTVAL get_hash_val(PARROT_INTERP,
- ARGIN(const Hash *hash),
- ARGIN_NULLOK(const void *key))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
+PARROT_CANNOT_RETURN_NULL
+static PMC* get_integer_pmc(PARROT_INTERP, INTVAL value)
+ __attribute__nonnull__(1);
-static void hash_freeze(PARROT_INTERP,
- ARGIN(const Hash *hash),
- ARGMOD(PMC *info))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*info);
+PARROT_CANNOT_RETURN_NULL
+static PMC* get_number_pmc(PARROT_INTERP, FLOATVAL value)
+ __attribute__nonnull__(1);
-static void hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info))
+PARROT_CANNOT_RETURN_NULL
+static PMC * get_string_pmc(PARROT_INTERP, ARGIN(STRING *value))
__attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_PURE_FUNCTION
+static int hash_compare_cstring(SHIM_INTERP,
+ ARGIN(const char *a),
+ ARGIN(const char *b))
__attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*hash)
- FUNC_MODIFIES(*info);
+ __attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
PARROT_PURE_FUNCTION
@@ -96,29 +87,19 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-static int pointer_compare(SHIM_INTERP,
- ARGIN_NULLOK(const void *a),
- ARGIN_NULLOK(const void *b));
-
-#define ASSERT_ARGS_cstring_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(a) \
- , PARROT_ASSERT_ARG(b))
#define ASSERT_ARGS_expand_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash))
-#define ASSERT_ARGS_get_hash_val __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(hash))
-#define ASSERT_ARGS_hash_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_get_integer_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_get_number_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_get_string_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(hash) \
- , PARROT_ASSERT_ARG(info))
-#define ASSERT_ARGS_hash_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(hash) \
- , PARROT_ASSERT_ARG(info))
+ , PARROT_ASSERT_ARG(value))
+#define ASSERT_ARGS_hash_compare_cstring __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(a) \
+ , PARROT_ASSERT_ARG(b))
#define ASSERT_ARGS_key_hash_cstring __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_key_hash_pointer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -132,7 +113,6 @@
#define ASSERT_ARGS_parrot_mark_hash_values __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash))
-#define ASSERT_ARGS_pointer_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -164,38 +144,8 @@
/*
-=item C<static UINTVAL get_hash_val(PARROT_INTERP, const Hash *hash, const void
-*key)>
-
-An inlinable helper function to avoid the overhead of calling key_hash_STRING()
-when there's already a calculated hash value for the STRING key.
-
-=cut
-
-*/
-
-static UINTVAL
-get_hash_val(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(const void *key))
-{
- ASSERT_ARGS(get_hash_val)
- if (hash->hash_val == (hash_hash_key_fn)key_hash_STRING) {
- /* Must be non-const because str_to_hashval caches the result
- * in the STRING struct */
- DECL_CONST_CAST;
- STRING * const s = (STRING *)PARROT_const_cast(void *, key);
- if (s->hashval)
- return s->hashval;
- return Parrot_str_to_hashval(interp, s);
- }
-
- return (hash->hash_val)(interp, key, hash->seed);
-}
-
-
-/*
-
-=item C<int STRING_compare(PARROT_INTERP, const void *search_key, const void
-*bucket_key)>
+=item C<int hash_compare_string(PARROT_INTERP, const void *search_key, const
+void *bucket_key)>
Compares the two strings, returning 0 if they are identical.
@@ -205,30 +155,23 @@
PARROT_WARN_UNUSED_RESULT
int
-STRING_compare(PARROT_INTERP, ARGIN(const void *search_key), ARGIN_NULLOK(const void *bucket_key))
+hash_compare_string(PARROT_INTERP, ARGIN(const void *search_key),
+ ARGIN_NULLOK(const void *bucket_key))
{
- ASSERT_ARGS(STRING_compare)
+ ASSERT_ARGS(hash_compare_string)
STRING const *s1 = (STRING const *)search_key;
STRING const *s2 = (STRING const *)bucket_key;
- if (!s2)
- return 1;
-
if (s1->hashval != s2->hashval)
return 1;
- /* COWed strings */
- if (Buffer_bufstart(s1) == Buffer_bufstart(s2)
- && s1->bufused == s2->bufused)
- return 0;
-
return CHARSET_COMPARE(interp, s1, s2);
}
/*
-=item C<int STRING_compare_distinct_cs_enc(PARROT_INTERP, const void
+=item C<int hash_compare_string_distinct_enc(PARROT_INTERP, const void
*search_key, const void *bucket_key)>
Compare two strings. Returns 0 if they are identical. Considers differing
@@ -238,10 +181,10 @@
PARROT_WARN_UNUSED_RESULT
int
-STRING_compare_distinct_cs_enc(PARROT_INTERP, ARGIN(const void *search_key),
+hash_compare_string_distinct_enc(PARROT_INTERP, ARGIN(const void *search_key),
ARGIN(const void *bucket_key))
{
- ASSERT_ARGS(STRING_compare_distinct_cs_enc)
+ ASSERT_ARGS(hash_compare_string_distinct_enc)
STRING const *s1 = (STRING const *)search_key;
STRING const *s2 = (STRING const *)bucket_key;
@@ -251,13 +194,13 @@
return 1;
}
- return STRING_compare(interp, search_key, bucket_key);
+ return hash_compare_string(interp, search_key, bucket_key);
}
/*
-=item C<static int pointer_compare(PARROT_INTERP, const void *a, const void *b)>
+=item C<int hash_compare_pointer(PARROT_INTERP, const void *a, const void *b)>
Compares the two pointers, returning 0 if they are identical
@@ -267,10 +210,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CONST_FUNCTION
-static int
-pointer_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b))
+int
+hash_compare_pointer(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b))
{
- ASSERT_ARGS(pointer_compare)
+ ASSERT_ARGS(hash_compare_pointer)
return a != b;
}
@@ -332,7 +275,8 @@
/*
-=item C<static int cstring_compare(PARROT_INTERP, const char *a, const char *b)>
+=item C<static int hash_compare_cstring(PARROT_INTERP, const char *a, const char
+*b)>
Compares two C strings for equality, returning -1, 0, and 1 if the first string
is less than, equal to, or greater than the second, respectively.
@@ -344,9 +288,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_PURE_FUNCTION
static int
-cstring_compare(SHIM_INTERP, ARGIN(const char *a), ARGIN(const char *b))
+hash_compare_cstring(SHIM_INTERP, ARGIN(const char *a), ARGIN(const char *b))
{
- ASSERT_ARGS(cstring_compare)
+ ASSERT_ARGS(hash_compare_cstring)
return strcmp(a, b);
}
@@ -372,7 +316,7 @@
/*
-=item C<int PMC_compare(PARROT_INTERP, PMC *a, PMC *b)>
+=item C<int hash_compare_pmc(PARROT_INTERP, PMC *a, PMC *b)>
Compares two PMC for equality, returning 0 if the first is equal to second.
Uses void pointers to store the PMC, sadly.
@@ -384,9 +328,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_PURE_FUNCTION
int
-PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b))
+hash_compare_pmc(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b))
{
- ASSERT_ARGS(PMC_compare)
+ ASSERT_ARGS(hash_compare_pmc)
/* If pointers are same - PMCs are same */
if (a == b)
@@ -420,7 +364,7 @@
/*
-=item C<int int_compare(PARROT_INTERP, const void *a, const void *b)>
+=item C<int hash_compare_int(PARROT_INTERP, const void *a, const void *b)>
Compares two integers for equality, returning -1, 0, and 1 if the first is less
than, equal to, or greater than the second, respectively. Uses void pointers
@@ -433,9 +377,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CONST_FUNCTION
int
-int_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b))
+hash_compare_int(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b))
{
- ASSERT_ARGS(int_compare)
+ ASSERT_ARGS(hash_compare_int)
return a != b;
}
@@ -512,22 +456,9 @@
parrot_mark_hash_keys(PARROT_INTERP, ARGIN(Hash *hash))
{
ASSERT_ARGS(parrot_mark_hash_keys)
- const UINTVAL entries = hash->entries;
- UINTVAL found = 0;
- UINTVAL i;
-
- HashBucket *bucket = hash->buckets;
-
- for (i= 0; i <= hash->mask; ++i, ++bucket) {
- if (bucket->key){
-
- PARROT_ASSERT(bucket->key);
- Parrot_gc_mark_PObj_alive(interp, (PObj *)bucket->key);
-
- if (++found >= entries)
- break;
- }
- }
+ parrot_hash_iterate(hash,
+ PARROT_ASSERT(_bucket->key);
+ Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->key););
}
@@ -545,24 +476,12 @@
parrot_mark_hash_values(PARROT_INTERP, ARGIN(Hash *hash))
{
ASSERT_ARGS(parrot_mark_hash_values)
- const UINTVAL entries = hash->entries;
- UINTVAL found = 0;
- UINTVAL i;
-
- HashBucket *bucket = hash->buckets;
-
- for (i= 0; i <= hash->mask; ++i, ++bucket) {
- if (bucket->key){
-
- PARROT_ASSERT(bucket->value);
- Parrot_gc_mark_PObj_alive(interp, (PObj *)bucket->value);
-
- if (++found >= entries)
- break;
- }
- }
+ parrot_hash_iterate(hash,
+ PARROT_ASSERT(_bucket->value);
+ Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->value););
}
+
/*
=item C<static void parrot_mark_hash_both(PARROT_INTERP, Hash *hash)>
@@ -577,29 +496,16 @@
parrot_mark_hash_both(PARROT_INTERP, ARGIN(Hash *hash))
{
ASSERT_ARGS(parrot_mark_hash_both)
- const UINTVAL entries = hash->entries;
- UINTVAL found = 0;
- UINTVAL i;
-
- HashBucket *bucket = hash->buckets;
-
- for (i= 0; i <= hash->mask; ++i, ++bucket) {
- if (bucket->key){
- PARROT_ASSERT(bucket->key);
- Parrot_gc_mark_PObj_alive(interp, (PObj *)bucket->key);
-
- PARROT_ASSERT(bucket->value);
- Parrot_gc_mark_PObj_alive(interp, (PObj *)bucket->value);
-
- if (++found >= entries)
- break;
- }
- }
+ parrot_hash_iterate(hash,
+ PARROT_ASSERT(_bucket->key);
+ Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->key);
+ PARROT_ASSERT(_bucket->value);
+ Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->value););
}
/*
-=item C<static void hash_thaw(PARROT_INTERP, Hash *hash, PMC *info)>
+=item C<Hash * Parrot_hash_thaw(PARROT_INTERP, PMC *info)>
Visits the contents of a hash during freeze/thaw.
@@ -609,18 +515,46 @@
*/
-static void
-hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info))
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_MALLOC
+Hash *
+Parrot_hash_thaw(PARROT_INTERP, ARGMOD(PMC *info))
{
- ASSERT_ARGS(hash_thaw)
+ ASSERT_ARGS(Parrot_hash_thaw)
+
+ const size_t num_entries = VTABLE_shift_integer(interp, info);
+ const Hash_key_type key_type = (Hash_key_type)VTABLE_shift_integer(interp, info);
+ const PARROT_DATA_TYPE entry_type = (PARROT_DATA_TYPE)VTABLE_shift_integer(interp, info);
+ size_t entry_index;
+ Hash *hash;
+
+ {
+ hash_comp_fn cmp_fn;
+ hash_hash_key_fn key_fn;
+
+ switch (key_type) {
+ case Hash_key_type_int:
+ key_fn = (hash_hash_key_fn)key_hash_int;
+ cmp_fn = (hash_comp_fn)hash_compare_int;
+ break;
+ case Hash_key_type_STRING:
+ key_fn = (hash_hash_key_fn)key_hash_STRING;
+ cmp_fn = (hash_comp_fn)hash_compare_string;
+ break;
+ case Hash_key_type_PMC:
+ key_fn = (hash_hash_key_fn)key_hash_PMC;
+ cmp_fn = (hash_comp_fn)hash_compare_pmc;
+ break;
+ default:
+ Parrot_ex_throw_from_c_args(interp, NULL, 1,
+ "unimplemented key type");
+ break;
+ }
- /* during thaw, info->extra is the key/value count */
- const size_t num_entries = (size_t) hash->entries;
- const Hash_key_type key_type = hash->key_type;
- const PARROT_DATA_TYPE entry_type = hash->entry_type;
- size_t entry_index;
+ hash = parrot_create_hash_sized(interp, entry_type, key_type, cmp_fn, key_fn, num_entries);
- hash->entries = 0;
+ }
/* special case for great speed */
if (key_type == Hash_key_type_STRING
@@ -631,7 +565,7 @@
parrot_hash_put(interp, hash, (void *)key, (void *)i);
}
- return;
+ return hash;
}
for (entry_index = 0; entry_index < num_entries; ++entry_index) {
@@ -687,101 +621,68 @@
break;
}
}
+
+ return hash;
}
/*
-=item C<static void hash_freeze(PARROT_INTERP, const Hash *hash, PMC *info)>
+=item C<void Parrot_hash_freeze(PARROT_INTERP, const Hash *hash, PMC *info)>
Freezes hash into a string.
Takes an interpreter, a pointer to the hash, and a pointer to the structure
containing the string start location.
-Use by parrot_hash_visit.
-
=cut
*/
-static void
-hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info))
+void
+Parrot_hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info))
{
- ASSERT_ARGS(hash_freeze)
+ ASSERT_ARGS(Parrot_hash_freeze)
const Hash_key_type key_type = hash->key_type;
const PARROT_DATA_TYPE entry_type = hash->entry_type;
const size_t entries = hash->entries;
size_t i;
- for (i = 0; i < entries; ++i) {
- HashBucket * const b = hash->buckets + i;
+ VTABLE_push_integer(interp, info, entries);
+ VTABLE_push_integer(interp, info, key_type);
+ VTABLE_push_integer(interp, info, entry_type);
+ parrot_hash_iterate(hash,
switch (key_type) {
case Hash_key_type_int:
- VTABLE_push_integer(interp, info, (INTVAL)b->key);
+ VTABLE_push_integer(interp, info, (INTVAL)_bucket->key);
break;
case Hash_key_type_STRING:
- VTABLE_push_string(interp, info, (STRING *)b->key);
+ VTABLE_push_string(interp, info, (STRING *)_bucket->key);
break;
case Hash_key_type_PMC:
- VTABLE_push_pmc(interp, info, (PMC *)b->key);
+ VTABLE_push_pmc(interp, info, (PMC *)_bucket->key);
break;
default:
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"unimplemented key type");
break;
}
-
switch (entry_type) {
case enum_hash_int:
- VTABLE_push_integer(interp, info, (INTVAL)b->value);
+ VTABLE_push_integer(interp, info, (INTVAL)_bucket->value);
break;
case enum_hash_string:
- VTABLE_push_string(interp, info, (STRING *)b->value);
+ VTABLE_push_string(interp, info, (STRING *)_bucket->value);
break;
case enum_hash_pmc:
- VTABLE_push_pmc(interp, info, (PMC *)b->value);
+ VTABLE_push_pmc(interp, info, (PMC *)_bucket->value);
break;
default:
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"unimplemented value type");
break;
- }
- }
-}
-
-
-/*
-
-=item C<void parrot_hash_visit(PARROT_INTERP, Hash *hash, void *pinfo)>
-
-Freezes or thaws a hash as specified. Takes an interpreter, a pointer to the
-hash, and a pointer to the structure identifying what to do and the location of
-the string.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-parrot_hash_visit(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(void *pinfo))
-{
- ASSERT_ARGS(parrot_hash_visit)
- PMC* const info = (PMC*) pinfo;
-
- switch (VTABLE_get_integer(interp, info)) {
- case VISIT_THAW_NORMAL:
- hash_thaw(interp, hash, info);
- break;
- case VISIT_FREEZE_NORMAL:
- hash_freeze(interp, hash, info);
- break;
- default:
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "unimplemented visit mode");
- }
+ });
}
@@ -828,8 +729,12 @@
const UINTVAL old_size = hash->mask + 1;
const UINTVAL new_size = old_size << 1; /* Double. Right-shift is 2x */
const UINTVAL old_nb = N_BUCKETS(old_size);
+ const UINTVAL new_nb = N_BUCKETS(new_size);
size_t offset, i;
+ const hash_hash_key_fn hash_val_func = hash->hash_val;
+ const int is_string_key = (hash_val_func == (hash_hash_key_fn)key_hash_STRING);
+
/*
allocate some less buckets
e.g. 3 buckets, 4 pointers:
@@ -838,7 +743,7 @@
| --> buckets | |
+---+---+---+-+-+-+-+
^ ^
- | old_mem | hash->bucket_indices
+ | old_mem | hash->index
*/
/* resize mem */
@@ -859,12 +764,12 @@
| buckets | old_bi | new_bi |
+---+---+---+---+---+---+-+-+-+-+-+-+-+-+
^ ^
- | new_mem | hash->bucket_indices
+ | new_mem | hash->index
*/
bs = new_mem;
old_bi = (HashBucket **)(bs + old_nb);
- new_bi = (HashBucket **)(bs + N_BUCKETS(new_size));
+ new_bi = (HashBucket **)(bs + new_nb);
/* things can have moved by this offset */
offset = (char *)new_mem - (char *)old_mem;
@@ -873,57 +778,55 @@
mem_sys_memmove(new_bi, old_bi, old_size * sizeof (HashBucket *));
/* update hash data */
- hash->bucket_indices = new_bi;
+ hash->index = new_bi;
hash->buckets = bs;
hash->mask = new_size - 1;
/* clear freshly allocated bucket index */
- memset(new_bi + old_size, 0, sizeof (HashBucket *) * old_size);
+ memset(new_bi + old_size, 0, sizeof (HashBucket *) * (new_size - old_size));
- /*
- * reloc pointers - this part would be also needed, if we
- * allocate hash memory from GC movable memory, and then
- * also the free_list needs updating (this is empty now,
- * as expand_hash is only called for that case).
- */
- if (offset) {
- size_t j;
- for (j = 0; j < old_size; ++j) {
- HashBucket **next_p = new_bi + j;
- while (*next_p) {
- *next_p = (HashBucket *)((char *)*next_p + offset);
- b = *next_p;
- next_p = &b->next;
- }
- }
- }
-
- /* recalc bucket index */
+ /* reloc pointers and recalc bucket indices */
for (i = 0; i < old_size; ++i) {
HashBucket **next_p = new_bi + i;
- while ((b = *next_p) != NULL) {
+ while (*next_p != NULL) {
+ size_t new_loc;
+ size_t hashval;
+
+ b = (HashBucket *)((char *)*next_p + offset);
+
/* rehash the bucket */
- const size_t new_loc =
- get_hash_val(interp, hash, b->key) & (new_size - 1);
+ if (is_string_key) {
+ STRING *s = (STRING *)b->key;
+ hashval = s->hashval;
+ }
+ else {
+ hashval = hash_val_func(interp, b->key, hash->seed);
+ }
+
+ new_loc = hashval & (new_size - 1);
if (i != new_loc) {
*next_p = b->next;
b->next = new_bi[new_loc];
new_bi[new_loc] = b;
}
- else
- next_p = &b->next;
+ else {
+ *next_p = b;
+ next_p = &b->next;
+ }
}
}
- /* add new buckets to free_list in reverse order
+ /* add new buckets to free_list
* lowest bucket is top on free list and will be used first */
- for (i = 0, b = (HashBucket *)new_bi - 1; i < old_nb; ++i, --b) {
- b->next = hash->free_list;
- b->key = b->value = NULL;
- hash->free_list = b;
+ for (b = bs + old_nb; b < bs + new_nb - 1; ++b) {
+ b->next = b + 1;
+ b->key = b->value = NULL;
}
+
+ b->next = hash->free_list;
+ hash->free_list = bs + old_nb;
}
@@ -946,7 +849,7 @@
return parrot_create_hash(interp,
enum_type_PMC,
Hash_key_type_STRING,
- STRING_compare,
+ hash_compare_string,
(hash_hash_key_fn)key_hash_STRING);
}
@@ -970,7 +873,7 @@
return parrot_create_hash(interp,
enum_type_PMC,
Hash_key_type_cstring,
- (hash_comp_fn)cstring_compare,
+ (hash_comp_fn)hash_compare_cstring,
(hash_hash_key_fn)key_hash_cstring);
}
@@ -994,7 +897,7 @@
return parrot_create_hash(interp,
enum_type_ptr,
Hash_key_type_ptr,
- pointer_compare,
+ hash_compare_pointer,
key_hash_pointer);
}
@@ -1021,7 +924,7 @@
return parrot_create_hash(interp,
enum_type_INTVAL,
Hash_key_type_int,
- int_compare,
+ hash_compare_int,
key_hash_int);
}
@@ -1046,20 +949,68 @@
NOTNULL(hash_comp_fn compare), NOTNULL(hash_hash_key_fn keyhash))
{
ASSERT_ARGS(parrot_create_hash)
+ return parrot_create_hash_sized(interp, val_type, hkey_type, compare, keyhash,
+ INITIAL_SIZE);
+}
+
+
+/*
+
+=item C<static UINTVAL round_up_pow2(UINTVAL x)>
+
+Round a value up to the nearest power of 2.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static UINTVAL
+round_up_pow2(UINTVAL x) {
+ UINTVAL y = 1;
+ while (y < x)
+ y <<= 1;
+ return y;
+}
+
+
+/*
+
+=item C<Hash * parrot_create_hash_sized(PARROT_INTERP, PARROT_DATA_TYPE
+val_type, Hash_key_type hkey_type, hash_comp_fn compare, hash_hash_key_fn
+keyhash, UINTVAL size)>
+
+Creates and initializes a hash, similar to C<parrot_create_hash>.
+
+Preallocates at least C<size> buckets.
+
+=cut
+
+*/
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_MALLOC
+Hash *
+parrot_create_hash_sized(PARROT_INTERP, PARROT_DATA_TYPE val_type, Hash_key_type hkey_type,
+ NOTNULL(hash_comp_fn compare), NOTNULL(hash_hash_key_fn keyhash), UINTVAL size)
+{
+ ASSERT_ARGS(parrot_create_hash_sized)
+ UINTVAL initial_buckets = size > INITIAL_SIZE ? round_up_pow2(size) : INITIAL_SIZE;
HashBucket *bp;
void *alloc = Parrot_gc_allocate_memory_chunk_with_interior_pointers(
- interp, sizeof (Hash) + HASH_ALLOC_SIZE(INITIAL_BUCKETS));
+ interp, sizeof (Hash) + HASH_ALLOC_SIZE(initial_buckets));
Hash * const hash = (Hash*)alloc;
size_t i;
- PARROT_ASSERT(INITIAL_BUCKETS % 4 == 0);
+ PARROT_ASSERT(initial_buckets % 4 == 0);
hash->compare = compare;
hash->hash_val = keyhash;
hash->entry_type = val_type;
hash->key_type = hkey_type;
hash->seed = interp->hash_seed;
- hash->mask = INITIAL_BUCKETS - 1;
+ hash->mask = initial_buckets - 1;
hash->entries = 0;
bp = (HashBucket *)((char *)alloc + sizeof (Hash));
@@ -1070,10 +1021,10 @@
* was deleted */
hash->buckets = bp;
- bp += N_BUCKETS(INITIAL_BUCKETS);
- hash->bucket_indices = (HashBucket **)bp;
+ bp += N_BUCKETS(initial_buckets);
+ hash->index = (HashBucket **)bp;
- for (i = 0, --bp; i < N_BUCKETS(INITIAL_BUCKETS); ++i, --bp) {
+ for (i = 0, --bp; i < N_BUCKETS(initial_buckets); ++i, --bp) {
bp->next = hash->free_list;
hash->free_list = bp;
}
@@ -1121,17 +1072,9 @@
parrot_chash_destroy(PARROT_INTERP, ARGMOD(Hash *hash))
{
ASSERT_ARGS(parrot_chash_destroy)
- UINTVAL i;
-
- for (i = 0; i <= hash->mask; ++i) {
- HashBucket *bucket = hash->bucket_indices[i];
- while (bucket) {
- mem_gc_free(interp, bucket->key);
- mem_gc_free(interp, bucket->value);
- bucket = bucket->next;
- }
- }
-
+ parrot_hash_iterate(hash,
+ mem_gc_free(interp, _bucket->key);
+ mem_gc_free(interp, _bucket->value););
parrot_hash_destroy(interp, hash);
}
@@ -1157,14 +1100,8 @@
ASSERT_ARGS(parrot_chash_destroy_values)
UINTVAL i;
- for (i = 0; i <= hash->mask; ++i) {
- HashBucket *bucket = hash->bucket_indices[i];
- while (bucket) {
- mem_gc_free(interp, bucket->key);
- func(bucket->value);
- bucket = bucket->next;
- }
- }
+ parrot_hash_iterate(hash,
+ mem_gc_free(interp, _bucket->key););
parrot_hash_destroy(interp, hash);
}
@@ -1194,72 +1131,6 @@
/*
-=item C<void * parrot_hash_get_idx(PARROT_INTERP, const Hash *hash, PMC *key)>
-
-Finds the next index into the hash's internal storage for the given Key. Used
-by iterators. Ugly.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-void *
-parrot_hash_get_idx(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *key))
-{
- ASSERT_ARGS(parrot_hash_get_idx)
- HashBucket *b;
- void *res;
- INTVAL i = VTABLE_get_integer(interp, key);
- PMC *fake_bi;
- BucketIndex bi;
-
- /* idx directly in the bucket store, which is at negative
- * address from the data pointer */
- /* locate initial */
- const INTVAL size = (INTVAL)N_BUCKETS(hash->mask + 1);
-
- GETATTR_Key_next_key(interp, key, fake_bi);
- bi = (BucketIndex)fake_bi;
-
- if (bi == INITBucketIndex) {
- i = 0;
- SETATTR_Key_next_key(interp, key, NULL);
- }
- else if (i >= size || i < 0) {
- /* NOTE: These instances of SETATTR_Key_int_key can't be VTABLE
- * functions because of the "special" way hash iterators work. */
- SETATTR_Key_int_key(interp, key, -1);
- return NULL;
- }
-
- res = NULL;
-
- for (b = hash->buckets + i; i < size ; ++i, ++b) {
- /* XXX int keys may be zero - use different iterator */
- if (b->key) {
- if (!res)
- res = b->key;
-
- /* found next key - FIXME hash iter does auto next */
- else
- break;
- }
- }
-
- if (i >= size)
- i = -1;
-
- SETATTR_Key_int_key(interp, key, i);
-
- return res;
-}
-
-
-/*
-
=item C<HashBucket * parrot_hash_get_bucket(PARROT_INTERP, const Hash *hash,
const void *key)>
@@ -1276,15 +1147,41 @@
parrot_hash_get_bucket(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(const void *key))
{
ASSERT_ARGS(parrot_hash_get_bucket)
+ UINTVAL hashval;
+ HashBucket *bucket;
+ const hash_hash_key_fn hash_val = hash->hash_val;
+ const hash_comp_fn compare = hash->compare;
if (hash->entries <= 0)
return NULL;
- /* if the fast search didn't work, try the normal hashing search */
- {
- const UINTVAL hashval = get_hash_val(interp, hash, key);
- HashBucket *bucket = hash->bucket_indices[hashval & hash->mask];
- const hash_comp_fn compare = hash->compare;
+ if (hash_val == (hash_hash_key_fn)key_hash_STRING
+ && compare == hash_compare_string) {
+ /* fast path for string keys */
+ DECL_CONST_CAST;
+ STRING * const s = (STRING *)PARROT_const_cast(void *, key);
+
+ if (s->hashval)
+ hashval = s->hashval;
+ else
+ hashval = Parrot_str_to_hashval(interp, s);
+
+ bucket = hash->index[hashval & hash->mask];
+
+ while (bucket) {
+ const STRING *s2 = (const STRING *)bucket->key;
+
+ if (s == s2
+ || (hashval == s2->hashval
+ && CHARSET_COMPARE(interp, s, s2) == 0))
+ return bucket;
+
+ bucket = bucket->next;
+ }
+ }
+ else {
+ hashval = hash_val(interp, key, hash->seed);
+ bucket = hash->index[hashval & hash->mask];
while (bucket) {
/* key equality is always a match, so it's worth checking */
@@ -1364,16 +1261,45 @@
ARGIN_NULLOK(void *key), ARGIN_NULLOK(void *value))
{
ASSERT_ARGS(parrot_hash_put)
- const UINTVAL hashval = get_hash_val(interp, hash, key);
- HashBucket *bucket = hash->bucket_indices[hashval & hash->mask];
- const hash_comp_fn compare = hash->compare;
-
- /* See if we have an existing value for this key */
- while (bucket) {
- /* store hash_val or not */
- if ((compare)(interp, key, bucket->key) == 0)
- break;
- bucket = bucket->next;
+ UINTVAL hashval;
+ HashBucket *bucket;
+ const hash_hash_key_fn hash_val = hash->hash_val;
+ const hash_comp_fn compare = hash->compare;
+
+ if (hash_val == (hash_hash_key_fn)key_hash_STRING
+ && compare == hash_compare_string) {
+ /* fast path for string keys */
+ STRING *s = (STRING *)key;
+
+ if (s->hashval)
+ hashval = s->hashval;
+ else
+ hashval = Parrot_str_to_hashval(interp, s);
+
+ bucket = hash->index[hashval & hash->mask];
+
+ while (bucket) {
+ const STRING *s2 = (const STRING *)bucket->key;
+
+ if (s == s2
+ || (hashval == s2->hashval
+ && CHARSET_COMPARE(interp, s, s2) == 0))
+ break;
+
+ bucket = bucket->next;
+ }
+ }
+ else {
+ hashval = hash_val(interp, key, hash->seed);
+ bucket = hash->index[hashval & hash->mask];
+
+ /* See if we have an existing value for this key */
+ while (bucket) {
+ /* store hash_val or not */
+ if (compare(interp, key, bucket->key) == 0)
+ break;
+ bucket = bucket->next;
+ }
}
/* If we have a bucket already, put the value in it. Otherwise, we need
@@ -1394,8 +1320,8 @@
hash->free_list = bucket->next;
bucket->key = key;
bucket->value = value;
- bucket->next = hash->bucket_indices[hashval & hash->mask];
- hash->bucket_indices[hashval & hash->mask] = bucket;
+ bucket->next = hash->index[hashval & hash->mask];
+ hash->index[hashval & hash->mask] = bucket;
}
return bucket;
@@ -1418,7 +1344,7 @@
{
ASSERT_ARGS(parrot_hash_delete)
const UINTVAL hashval = (hash->hash_val)(interp, key, hash->seed) & hash->mask;
- HashBucket **prev = &hash->bucket_indices[hashval];
+ HashBucket **prev = &hash->index[hashval];
if (*prev) {
const hash_comp_fn compare = hash->compare;
for (; *prev; prev = &(*prev)->next) {
@@ -1472,33 +1398,30 @@
ARGOUT(Hash *dest), int deep)
{
ASSERT_ARGS(parrot_hash_clone_prunable)
- UINTVAL entries = hash->entries;
- UINTVAL i;
- for (i = 0; i < entries; ++i) {
+ parrot_hash_iterate(hash,
void *valtmp;
- HashBucket *b = hash->buckets + i;
- void * const key = b->key;
+ void * const key = _bucket->key;
switch (hash->entry_type) {
case enum_type_undef:
case enum_type_ptr:
case enum_type_INTVAL:
- valtmp = (void *)b->value;
+ valtmp = (void *)_bucket->value;
break;
case enum_type_STRING:
- valtmp = b->value;
+ valtmp = _bucket->value;
break;
case enum_type_PMC:
- if (PMC_IS_NULL((PMC *)b->value))
+ if (PMC_IS_NULL((PMC *)_bucket->value))
valtmp = (void *)PMCNULL;
else
if (deep)
- valtmp = (void *)VTABLE_clone(interp, (PMC*)b->value);
+ valtmp = (void *)VTABLE_clone(interp, (PMC*)_bucket->value);
else
- valtmp = b->value;
+ valtmp = _bucket->value;
break;
default:
@@ -1506,15 +1429,13 @@
Parrot_ex_throw_from_c_args(interp, NULL, -1,
"hash corruption: type = %d\n", hash->entry_type);
};
-
if (key)
- parrot_hash_put(interp, dest, key, valtmp);
- }
+ parrot_hash_put(interp, dest, key, valtmp););
}
/*
-=item C<PMC* get_integer_pmc(PARROT_INTERP, INTVAL value)>
+=item C<static PMC* get_integer_pmc(PARROT_INTERP, INTVAL value)>
Lookup the PMC type which is used for storing native integers.
@@ -1523,7 +1444,7 @@
*/
PARROT_CANNOT_RETURN_NULL
-PMC*
+static PMC*
get_integer_pmc(PARROT_INTERP, INTVAL value)
{
ASSERT_ARGS(get_integer_pmc)
@@ -1535,7 +1456,7 @@
/*
-=item C<PMC* get_number_pmc(PARROT_INTERP, FLOATVAL value)>
+=item C<static PMC* get_number_pmc(PARROT_INTERP, FLOATVAL value)>
Lookup the PMC type which is used for floating point numbers.
@@ -1544,7 +1465,7 @@
*/
PARROT_CANNOT_RETURN_NULL
-PMC*
+static PMC*
get_number_pmc(PARROT_INTERP, FLOATVAL value)
{
ASSERT_ARGS(get_number_pmc)
@@ -1555,7 +1476,7 @@
/*
-=item C<PMC * get_string_pmc(PARROT_INTERP, STRING *value)>
+=item C<static PMC * get_string_pmc(PARROT_INTERP, STRING *value)>
Lookup the PMC type which is used for storing strings.
@@ -1564,7 +1485,7 @@
*/
PARROT_CANNOT_RETURN_NULL
-PMC *
+static PMC *
get_string_pmc(PARROT_INTERP, ARGIN(STRING *value))
{
ASSERT_ARGS(get_string_pmc)
Modified: branches/unshared_buffers/src/io/socket_api.c
==============================================================================
--- branches/unshared_buffers/src/io/socket_api.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/io/socket_api.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -107,6 +107,7 @@
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
INTVAL
Modified: branches/unshared_buffers/src/io/utf8.c
==============================================================================
--- branches/unshared_buffers/src/io/utf8.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/io/utf8.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -57,7 +57,7 @@
s->encoding = Parrot_utf8_encoding_ptr;
/* count chars, verify utf8 */
- Parrot_utf8_encoding_ptr->iter_init(interp, s, &iter);
+ STRING_ITER_INIT(interp, &iter);
while (iter.bytepos < s->bufused) {
if (iter.bytepos + 4 > s->bufused) {
@@ -84,8 +84,6 @@
s->strlen = iter.charpos;
s = Parrot_str_concat(interp, s, s2);
- /* String is updated. Poke into iterator to replace old string */
- iter.str = s;
*buf = s;
len += len2 + 1;
@@ -93,7 +91,7 @@
}
}
ok:
- iter.get_and_advance(interp, &iter);
+ Parrot_utf8_encoding_ptr->iter_get_and_advance(interp, *buf, &iter);
}
s->strlen = iter.charpos;
return len;
Modified: branches/unshared_buffers/src/ops/core_ops.c
==============================================================================
--- branches/unshared_buffers/src/ops/core_ops.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/ops/core_ops.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -26104,7 +26104,7 @@
PARROT_FUNCTION_CORE, /* core_type = PARROT_XX_CORE */
0, /* flags */
2, /* major_version */
- 6, /* minor_version */
+ 7, /* minor_version */
0, /* patch_version */
1083, /* op_count */
core_op_info_table, /* op_info_table */
@@ -26231,7 +26231,7 @@
hop_buckets = NULL;
}
op_lib_t *
-Parrot_DynOp_core_2_6_0(PARROT_INTERP, long init) {
+Parrot_DynOp_core_2_7_0(PARROT_INTERP, long init) {
/* initialize and return op_lib ptr */
if (init == 1) {
@@ -26260,7 +26260,7 @@
{
PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
- ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_6_0;
+ ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_7_0;
dynop_register(interp, lib);
return lib;
}
Modified: branches/unshared_buffers/src/ops/set.ops
==============================================================================
--- branches/unshared_buffers/src/ops/set.ops Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/ops/set.ops Sun Aug 29 17:09:11 2010 (r48719)
@@ -40,6 +40,9 @@
=item B<set>(out INT, in NUM)
+A floating-point number is truncated (rounded toward zero) when assigned
+to an integer register.
+
=item B<set>(out INT, invar PMC)
=item B<set>(out INT, invar PMC)
Modified: branches/unshared_buffers/src/ops/var.ops
==============================================================================
--- branches/unshared_buffers/src/ops/var.ops Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/ops/var.ops Sun Aug 29 17:09:11 2010 (r48719)
@@ -455,9 +455,10 @@
=item B<find_name>(out PMC, in STR)
-Find the name $2 in lexical, current, global, or builtin namespace and
-store it in $1. If the name doesn't exist
-either throws an exception or sets $1 to PMCNULL, depending on current
+Find the name C<$2> in lexicals, then the current namespace, then the HLL
+root namespace, and finally Parrot builtins. These are checked in order
+and the first match is returned in C<$1>. If no matches are found,
+either throws an exception or sets C<$1> to PMCNULL, depending on current
errors settings. See B<errorson>.
=cut
Modified: branches/unshared_buffers/src/packfile.c
==============================================================================
--- branches/unshared_buffers/src/packfile.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/packfile.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -2632,15 +2632,28 @@
mem_gc_free(interp, byte_code->op_func_table);
if (byte_code->op_info_table)
mem_gc_free(interp, byte_code->op_info_table);
- if (byte_code->op_mapping.libs)
+ if (byte_code->op_mapping.libs) {
+ opcode_t n_libs = byte_code->op_mapping.n_libs;
+ opcode_t i;
+
+ for (i = 0; i < n_libs; i++) {
+ mem_gc_free(interp, byte_code->op_mapping.libs[i].table_ops);
+ mem_gc_free(interp, byte_code->op_mapping.libs[i].lib_ops);
+ }
+
mem_gc_free(interp, byte_code->op_mapping.libs);
+ }
- byte_code->fixups = NULL;
+ if (byte_code->annotations)
+ PackFile_Annotations_destroy(interp, (PackFile_Segment *)byte_code->annotations);
+
+ byte_code->annotations = NULL;
byte_code->const_table = NULL;
byte_code->debugs = NULL;
- byte_code->op_mapping.libs = NULL;
+ byte_code->fixups = NULL;
byte_code->op_func_table = NULL;
byte_code->op_info_table = NULL;
+ byte_code->op_mapping.libs = NULL;
}
@@ -3471,22 +3484,11 @@
if (!hash)
return;
- for (i = 0; i <= hash->mask; ++i) {
- HashBucket *bucket = hash->bucket_indices[i];
-
- while (bucket) {
- PackFile_ConstTable * const table =
- (PackFile_ConstTable *)bucket->key;
- PackFile_Constant * const orig_consts = table->constants;
- PackFile_Constant * const consts =
- (PackFile_Constant *) bucket->value;
- INTVAL j;
-
- mem_gc_free(interp, consts);
- bucket = bucket->next;
- }
- }
-
+ parrot_hash_iterate(hash,
+ PackFile_ConstTable * const table = (PackFile_ConstTable *)_bucket->key;
+ PackFile_Constant * const orig_consts = table->constants;
+ PackFile_Constant * const consts = (PackFile_Constant *) _bucket->value;
+ mem_gc_free(interp, consts););
parrot_hash_destroy(interp, hash);
}
@@ -4310,6 +4312,10 @@
/* Free any entries. */
if (self->entries)
mem_gc_free(interp, self->entries);
+
+ self->keys = NULL;
+ self->groups = NULL;
+ self->entries = NULL;
}
@@ -4452,6 +4458,7 @@
self->num_entries = PF_fetch_opcode(seg->pf, &cursor);
self->entries = mem_gc_allocate_n_zeroed_typed(interp,
self->num_entries, PackFile_Annotations_Entry);
+
for (i = 0; i < self->num_entries; ++i) {
PackFile_Annotations_Entry * const entry = self->entries + i;
entry->bytecode_offset = PF_fetch_opcode(seg->pf, &cursor);
@@ -4648,11 +4655,11 @@
/* Add annotations entry. */
if (self->entries)
- self->entries = mem_gc_realloc_n_typed(interp, self->entries,
- 1 + self->num_entries, PackFile_Annotations_Entry);
- else
- self->entries = mem_gc_allocate_n_typed(interp,
- 1 + self->num_entries, PackFile_Annotations_Entry);
+ self->entries = mem_gc_realloc_n_typed(interp, self->entries,
+ 1 + self->num_entries, PackFile_Annotations_Entry);
+ else
+ self->entries = mem_gc_allocate_n_typed(interp,
+ 1 + self->num_entries, PackFile_Annotations_Entry);
self->entries[self->num_entries].bytecode_offset = offset;
self->entries[self->num_entries].key = key_id;
Copied: branches/unshared_buffers/src/packfile/byteorder.h (from r48712, trunk/src/packfile/byteorder.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/src/packfile/byteorder.h Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/src/packfile/byteorder.h)
@@ -0,0 +1,572 @@
+/*
+Copyright (C) 2001-2009, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/byteorder.c - Byteordering functions
+
+=head1 DESCRIPTION
+
+These are assigned to a vtable when the PBC file is loaded.
+
+If the vtable function for conversion from the native byteorder is called,
+it is a I<no op> and will work, but the caller should know if the
+byteorder in the PBC file is native and skip the conversion and just map
+it in.
+
+=head2 Byte order handlers
+
+Configure will have checked for supported word sizes.
+
+=over 4
+
+=cut
+
+*/
+
+#ifndef PARROT_BYTEORDER_H_GUARD
+#define PARROT_BYTEORDER_H_GUARD
+
+#include "parrot/parrot.h"
+
+/* HEADERIZER HFILE: none */
+
+/*
+
+=item C<static INTVAL fetch_iv_le(INTVAL w)>
+
+This function converts a 4 or 8 byte C<INTVAL> into little endian
+format. If the native format is already little endian, then no
+conversion is done.
+
+=cut
+
+*/
+
+PARROT_INLINE
+PARROT_WARN_UNUSED_RESULT
+PARROT_CONST_FUNCTION
+static INTVAL
+fetch_iv_le(INTVAL w)
+{
+#if !PARROT_BIGENDIAN
+ return w;
+#else
+# if INTVAL_SIZE == 4
+ return (w << 24) | ((w & 0xff00) << 8) | ((w & 0xff0000) >> 8) | (w >> 24);
+# else
+# if INTVAL_SIZE == 8
+ INTVAL r;
+
+ r = w << 56;
+ r |= (w & 0xff00) << 40;
+ r |= (w & 0xff0000) << 24;
+ r |= (w & 0xff000000) << 8;
+ r |= (w & 0xff00000000) >> 8;
+ r |= (w & 0xff0000000000) >> 24;
+ r |= (w & 0xff000000000000) >> 40;
+ r |= (w & 0xff00000000000000) >> 56;
+ return r;
+# else
+ exit_fatal(1, "Unsupported INTVAL_SIZE=%d\n",
+ INTVAL_SIZE);
+# endif
+# endif
+#endif
+}
+
+/*
+
+=item C<static INTVAL fetch_iv_be(INTVAL w)>
+
+This function converts a 4 or 8 byte C<INTVAL> into big endian format.
+If the native format is already big endian, then no conversion is done.
+
+=cut
+
+*/
+
+PARROT_INLINE
+PARROT_WARN_UNUSED_RESULT
+PARROT_CONST_FUNCTION
+static INTVAL
+fetch_iv_be(INTVAL w)
+{
+#if PARROT_BIGENDIAN
+ return w;
+#else
+# if INTVAL_SIZE == 4
+ return (w << 24) | ((w & 0xff00) << 8) | ((w & 0xff0000) >> 8) | (w >> 24);
+# else
+# if INTVAL_SIZE == 8
+ INTVAL r;
+ r = w << 56;
+ r |= (w & 0xff00) << 40;
+ r |= (w & 0xff0000) << 24;
+ r |= (w & 0xff000000) << 8;
+ r |= (w & 0xff00000000) >> 8;
+ r |= (w & 0xff0000000000) >> 24;
+ r |= (w & 0xff000000000000) >> 40;
+ r |= (w & 0xff00000000000000) >> 56;
+ return r;
+# else
+ exit_fatal(1, "Unsupported INTVAL_SIZE=%d\n",
+ INTVAL_SIZE);
+# endif
+# endif
+#endif
+}
+
+/*
+
+=item C<static opcode_t fetch_op_be(opcode_t w)>
+
+Same as C<fetch_iv_be> for opcode_t
+
+=cut
+
+*/
+
+PARROT_INLINE
+PARROT_WARN_UNUSED_RESULT
+PARROT_CONST_FUNCTION
+static opcode_t
+fetch_op_be(opcode_t w)
+{
+#if PARROT_BIGENDIAN
+ return w;
+#else
+# if OPCODE_T_SIZE == 4
+ return (w << 24) | ((w & 0x0000ff00) << 8) | ((w & 0x00ff0000) >> 8) |
+ ((w & 0xff000000) >> 24);
+# else
+ opcode_t r;
+
+ r = w << 56;
+ r |= (w & 0xff00) << 40;
+ r |= (w & 0xff0000) << 24;
+ r |= (w & 0xff000000) << 8;
+ r |= (w & 0xff00000000) >> 8;
+ r |= (w & 0xff0000000000) >> 24;
+ r |= (w & 0xff000000000000) >> 40;
+ r |= (w & 0xff00000000000000) >> 56;
+ return r;
+# endif
+#endif
+}
+
+/*
+
+=item C<static opcode_t fetch_op_le(opcode_t w)>
+
+Same as C<fetch_iv_le> for opcode_t
+
+=cut
+
+*/
+
+PARROT_INLINE
+PARROT_WARN_UNUSED_RESULT
+PARROT_CONST_FUNCTION
+static opcode_t
+fetch_op_le(opcode_t w)
+{
+#if !PARROT_BIGENDIAN
+ return w;
+#else
+# if OPCODE_T_SIZE == 4
+ return (w << 24) | ((w & 0x0000ff00) << 8) | ((w & 0x00ff0000) >> 8) |
+ ((w & 0xff000000) >> 24);
+# else
+ opcode_t r;
+
+ r = w << 56;
+ r |= (w & 0xff00) << 40;
+ r |= (w & 0xff0000) << 24;
+ r |= (w & 0xff000000) << 8;
+ r |= (w & 0xff00000000) >> 8;
+ r |= (w & 0xff0000000000) >> 24;
+ r |= (w & 0xff000000000000) >> 40;
+ r |= (w & 0xff00000000000000) >> 56;
+ return r;
+# endif
+#endif
+}
+
+/*
+
+=pod
+
+Unrolled routines for swapping various sizes from 32-128 bits. These
+should only be used if alignment is unknown or we are pulling something
+out of a padded buffer.
+
+=cut
+
+*/
+
+/*
+
+=item C<static void fetch_buf_be_4(unsigned char *rb, const unsigned char *b)>
+
+Converts a 4-byte big-endian buffer C<b> into a little-endian C<rb>.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+fetch_buf_be_4(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
+{
+#if PARROT_BIGENDIAN
+ memcpy(rb, b, 4);
+#else
+ rb[0] = b[3];
+ rb[1] = b[2];
+ rb[2] = b[1];
+ rb[3] = b[0];
+#endif
+}
+
+/*
+
+=item C<static void fetch_buf_le_4(unsigned char *rb, const unsigned char *b)>
+
+Converts a 4-byte little-endian buffer C<b> into a big-endian buffer C<rb>.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+fetch_buf_le_4(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
+{
+#if !PARROT_BIGENDIAN
+ memcpy(rb, b, 4);
+#else
+ rb[0] = b[3];
+ rb[1] = b[2];
+ rb[2] = b[1];
+ rb[3] = b[0];
+#endif
+}
+
+/*
+
+=item C<static void fetch_buf_be_8(unsigned char *rb, const unsigned char *b)>
+
+Converts an 8-byte big-endian buffer C<b> into a little-endian buffer C<rb>
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+fetch_buf_be_8(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
+{
+#if PARROT_BIGENDIAN
+ memcpy(rb, b, 8);
+#else
+ rb[0] = b[7];
+ rb[1] = b[6];
+ rb[2] = b[5];
+ rb[3] = b[4];
+ rb[4] = b[3];
+ rb[5] = b[2];
+ rb[6] = b[1];
+ rb[7] = b[0];
+#endif
+}
+
+/*
+
+=item C<static void fetch_buf_le_8(unsigned char *rb, const unsigned char *b)>
+
+Converts an 8-byte little-endian buffer C<b> into a big-endian buffer C<rb>.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+fetch_buf_le_8(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
+{
+#if !PARROT_BIGENDIAN
+ memcpy(rb, b, 8);
+#else
+ rb[0] = b[7];
+ rb[1] = b[6];
+ rb[2] = b[5];
+ rb[3] = b[4];
+ rb[4] = b[3];
+ rb[5] = b[2];
+ rb[6] = b[1];
+ rb[7] = b[0];
+#endif
+}
+
+/*
+
+=item C<static void fetch_buf_le_12(unsigned char *rb, const unsigned char *b)>
+
+Converts a 12-byte little-endian buffer C<b> into a big-endian buffer C<b>.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+fetch_buf_le_12(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
+{
+#if !PARROT_BIGENDIAN
+ memcpy(rb, b, 12);
+#else
+ rb[0] = b[11];
+ rb[1] = b[10];
+ rb[2] = b[9];
+ rb[3] = b[8];
+ rb[4] = b[7];
+ rb[5] = b[6];
+ rb[6] = b[5];
+ rb[7] = b[4];
+ rb[8] = b[3];
+ rb[9] = b[2];
+ rb[10] = b[1];
+ rb[11] = b[0];
+#endif
+}
+
+/*
+
+=item C<static void fetch_buf_be_12(unsigned char *rb, const unsigned char *b)>
+
+Converts a 12-byte big-endian buffer C<b> into a little-endian buffer C<b>.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+fetch_buf_be_12(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
+{
+#if PARROT_BIGENDIAN
+ memcpy(rb, b, 12);
+#else
+ rb[0] = b[11];
+ rb[1] = b[10];
+ rb[2] = b[9];
+ rb[3] = b[8];
+ rb[4] = b[7];
+ rb[5] = b[6];
+ rb[6] = b[5];
+ rb[7] = b[4];
+ rb[8] = b[3];
+ rb[9] = b[2];
+ rb[10] = b[1];
+ rb[11] = b[0];
+#endif
+}
+
+/*
+
+=item C<static void fetch_buf_le_16(unsigned char *rb, const unsigned char *b)>
+
+Converts a 16-byte little-endian buffer C<b> into a big-endian buffer C<b>.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+fetch_buf_le_16(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
+{
+#if !PARROT_BIGENDIAN
+ memcpy(rb, b, 16);
+#else
+ rb[0] = b[15];
+ rb[1] = b[14];
+ rb[2] = b[13];
+ rb[3] = b[12];
+ rb[4] = b[11];
+ rb[5] = b[10];
+ rb[6] = b[9];
+ rb[7] = b[8];
+ rb[8] = b[7];
+ rb[9] = b[6];
+ rb[10] = b[5];
+ rb[11] = b[4];
+ rb[12] = b[3];
+ rb[13] = b[2];
+ rb[14] = b[1];
+ rb[15] = b[0];
+#endif
+}
+
+/*
+
+=item C<static void fetch_buf_be_16(unsigned char *rb, const unsigned char *b)>
+
+Converts a 16-byte big-endian buffer C<b> into a little-endian buffer C<b>.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+fetch_buf_be_16(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
+{
+#if PARROT_BIGENDIAN
+ memcpy(rb, b, 16);
+#else
+ rb[0] = b[15];
+ rb[1] = b[14];
+ rb[2] = b[13];
+ rb[3] = b[12];
+ rb[4] = b[11];
+ rb[5] = b[10];
+ rb[6] = b[9];
+ rb[7] = b[8];
+ rb[8] = b[7];
+ rb[9] = b[6];
+ rb[10] = b[5];
+ rb[11] = b[4];
+ rb[12] = b[3];
+ rb[13] = b[2];
+ rb[14] = b[1];
+ rb[15] = b[0];
+#endif
+}
+
+/*
+
+=item C<static void fetch_buf_le_32(unsigned char *rb, const unsigned char *b)>
+
+Converts a 32-byte little-endian buffer C<b> into a big-endian buffer C<b>.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+fetch_buf_le_32(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
+{
+#if !PARROT_BIGENDIAN
+ memcpy(rb, b, 32);
+#else
+ rb[0] = b[31];
+ rb[1] = b[30];
+ rb[2] = b[29];
+ rb[3] = b[28];
+ rb[4] = b[27];
+ rb[5] = b[26];
+ rb[6] = b[25];
+ rb[7] = b[24];
+ rb[8] = b[23];
+ rb[9] = b[22];
+ rb[10] = b[21];
+ rb[11] = b[20];
+ rb[12] = b[19];
+ rb[13] = b[18];
+ rb[14] = b[17];
+ rb[15] = b[16];
+ rb[16] = b[15];
+ rb[17] = b[14];
+ rb[18] = b[13];
+ rb[19] = b[12];
+ rb[20] = b[11];
+ rb[21] = b[10];
+ rb[22] = b[9];
+ rb[23] = b[8];
+ rb[24] = b[7];
+ rb[25] = b[6];
+ rb[26] = b[5];
+ rb[27] = b[4];
+ rb[28] = b[3];
+ rb[29] = b[2];
+ rb[30] = b[1];
+ rb[31] = b[0];
+#endif
+}
+
+/*
+
+=item C<static void fetch_buf_be_32(unsigned char *rb, const unsigned char *b)>
+
+Converts a 32-byte big-endian buffer C<b> into a little-endian buffer C<b>.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+fetch_buf_be_32(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b))
+{
+#if PARROT_BIGENDIAN
+ memcpy(rb, b, 32);
+#else
+ rb[0] = b[31];
+ rb[1] = b[30];
+ rb[2] = b[29];
+ rb[3] = b[28];
+ rb[4] = b[27];
+ rb[5] = b[26];
+ rb[6] = b[25];
+ rb[7] = b[24];
+ rb[8] = b[23];
+ rb[9] = b[22];
+ rb[10] = b[21];
+ rb[11] = b[20];
+ rb[12] = b[19];
+ rb[13] = b[18];
+ rb[14] = b[17];
+ rb[15] = b[16];
+ rb[16] = b[15];
+ rb[17] = b[14];
+ rb[18] = b[13];
+ rb[19] = b[12];
+ rb[20] = b[11];
+ rb[21] = b[10];
+ rb[22] = b[9];
+ rb[23] = b[8];
+ rb[24] = b[7];
+ rb[25] = b[6];
+ rb[26] = b[5];
+ rb[27] = b[4];
+ rb[28] = b[3];
+ rb[29] = b[2];
+ rb[30] = b[1];
+ rb[31] = b[0];
+#endif
+}
+
+#endif /* PARROT_BYTEORDER_H_GUARD */
+
+/*
+
+=back
+
+=head1 HISTORY
+
+Initial version by Melvin on 2002/05/01
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/unshared_buffers/src/packfile/pf_items.c
==============================================================================
--- branches/unshared_buffers/src/packfile/pf_items.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/packfile/pf_items.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -33,6 +33,7 @@
*/
#include "parrot/parrot.h"
+#include "byteorder.h"
/* HEADERIZER HFILE: include/parrot/packfile.h */
@@ -892,16 +893,14 @@
unsigned char buf[4];
opcode_t o;
} u;
-#if PARROT_BIGENDIAN
fetch_buf_le_4(u.buf, b);
+#if PARROT_BIGENDIAN
# if OPCODE_T_SIZE == 8
return (Parrot_Int4)(u.o >> 32);
# else
return (opcode_t) fetch_iv_be((INTVAL)u.o);
# endif
#else
- /* inlining the effects of the fetch_buf_le_4() call is worth it */
- memcpy(u.buf, b, 4);
# if OPCODE_T_SIZE == 8
/* without the cast we would not get a negative int, the vtable indices */
return (Parrot_Int4)(u.o & 0xffffffff);
Modified: branches/unshared_buffers/src/packout.c
==============================================================================
--- branches/unshared_buffers/src/packout.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/packout.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -346,7 +346,6 @@
ASSERT_ARGS(PackFile_Constant_pack)
PMC *key;
size_t i;
- STRING *image;
*cursor++ = self->type;
Modified: branches/unshared_buffers/src/pmc.c
==============================================================================
--- branches/unshared_buffers/src/pmc.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -127,7 +127,7 @@
#ifndef NDEBUG
- pmc->vtable = (VTABLE *)0xdeadbeef;
+ pmc->data = (DPOINTER *)0xdeadbeef;
#endif
Modified: branches/unshared_buffers/src/pmc/addrregistry.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/addrregistry.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/addrregistry.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -47,7 +47,7 @@
Hash *registry = parrot_create_hash(INTERP,
enum_type_int,
Hash_key_type_PMC,
- int_compare,
+ hash_compare_int,
key_hash_int);
SET_ATTR_hash(INTERP, SELF, registry);
Modified: branches/unshared_buffers/src/pmc/bigint.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/bigint.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/bigint.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -699,7 +699,6 @@
=item C<static void bigint_sub_bigint_int(PARROT_INTERP, PMC *self, INTVAL
value, PMC *dest)>
-
=cut
*/
@@ -1259,6 +1258,12 @@
PObj_custom_destroy_SET(SELF);
}
+ VTABLE void init_int(INTVAL iv) {
+ bigint_init(INTERP, SELF);
+ bigint_set_long(INTERP, SELF, (long)iv);
+ PObj_custom_destroy_SET(SELF);
+ }
+
VTABLE PMC *clone() {
PMC *res = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
bigint_set(INTERP, res, SELF);
Modified: branches/unshared_buffers/src/pmc/callcontext.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/callcontext.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/callcontext.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -157,8 +157,6 @@
=item C<static void ensure_positionals_storage(PARROT_INTERP, PMC *self, INTVAL
size)>
-
-
=cut
*/
@@ -182,8 +180,6 @@
=item C<static void ensure_positionals_storage_ap(PARROT_INTERP, PMC *self,
INTVAL size, INTVAL allocated_positionals)>
-
-
=cut
*/
@@ -212,7 +208,7 @@
GETATTR_CallContext_num_positionals(interp, self, num_positionals);
memcpy(new_array, array, num_positionals * sizeof (Pcc_cell));
- if (num_positionals > 8)
+ if (allocated_positionals > 8)
Parrot_gc_free_memory_chunk(interp, array);
else
Parrot_gc_free_fixed_size_storage(interp,
@@ -227,8 +223,6 @@
=item C<static Pcc_cell* get_cell_at(PARROT_INTERP, PMC *self, INTVAL key)>
-
-
=cut
*/
@@ -248,8 +242,6 @@
=item C<static INTVAL autobox_intval(PARROT_INTERP, const Pcc_cell *cell)>
-
-
=cut
*/
@@ -281,8 +273,6 @@
=item C<static FLOATVAL autobox_floatval(PARROT_INTERP, const Pcc_cell *cell)>
-
-
=cut
*/
@@ -314,8 +304,6 @@
=item C<static STRING * autobox_string(PARROT_INTERP, const Pcc_cell *cell)>
-
-
=cut
*/
@@ -348,8 +336,6 @@
=item C<static PMC * autobox_pmc(PARROT_INTERP, Pcc_cell *cell, INTVAL type)>
-
-
=cut
*/
@@ -388,8 +374,6 @@
=item C<static Hash * get_hash(PARROT_INTERP, PMC *SELF)>
-
-
=cut
*/
@@ -407,7 +391,7 @@
hash = parrot_create_hash(interp,
enum_type_ptr,
Hash_key_type_STRING,
- STRING_compare,
+ hash_compare_string,
(hash_hash_key_fn)key_hash_STRING);
SETATTR_CallContext_hash(interp, SELF, hash);
@@ -420,8 +404,6 @@
=item C<static void mark_cell(PARROT_INTERP, Pcc_cell *c)>
-
-
=cut
*/
@@ -451,8 +433,6 @@
=item C<static void mark_positionals(PARROT_INTERP, PMC *self)>
-
-
=cut
*/
@@ -479,8 +459,6 @@
=item C<static void mark_hash(PARROT_INTERP, Hash *h)>
-
-
=cut
*/
@@ -490,25 +468,15 @@
mark_hash(PARROT_INTERP, ARGIN(Hash *h))
{
ASSERT_ARGS(mark_hash)
- INTVAL i;
-
- for (i = h->mask; i >= 0; --i) {
- HashBucket *b = h->bucket_indices[i];
-
- while (b) {
- Parrot_gc_mark_STRING_alive(interp, (STRING *)b->key);
- mark_cell(interp, (Pcc_cell *)b->value);
- b = b->next;
- }
- }
+ parrot_hash_iterate(h,
+ Parrot_gc_mark_STRING_alive(interp, (STRING *)_bucket->key);
+ mark_cell(interp, (Pcc_cell *)_bucket->value););
}
/*
=item C<static PMC * get_named_names(PARROT_INTERP, PMC *SELF)>
-
-
=cut
*/
@@ -524,19 +492,10 @@
/* yes, this *looks* risky, but it's a Parrot STRING hash internally */
if (hash && hash->entries) {
- UINTVAL i, j = 0;
+ UINTVAL j = 0;
PMC *result = Parrot_pmc_new_init_int(interp, enum_class_FixedStringArray, hash->entries);
-
- for (i = 0; i <= hash->mask; ++i) {
- HashBucket *b = hash->bucket_indices[i];
-
- while (b) {
- VTABLE_set_string_keyed_int(interp, result,
- j++, (STRING *)b->key);
- b = b->next;
- }
- }
-
+ parrot_hash_iterate(hash,
+ VTABLE_set_string_keyed_int(interp, result, j++, (STRING *)_bucket->key););
return result;
}
@@ -726,17 +685,8 @@
GET_ATTR_hash(INTERP, SELF, hash);
if (hash) {
- UINTVAL i;
-
- for (i = 0; i <= hash->mask; ++i) {
- HashBucket *b = hash->bucket_indices[i];
-
- while (b) {
- FREE_CELL(INTERP, (Pcc_cell *)b->value);
- b = b->next;
- }
- }
-
+ parrot_hash_iterate(hash,
+ FREE_CELL(INTERP, (Pcc_cell *)_bucket->value););
parrot_hash_destroy(INTERP, hash);
SET_ATTR_hash(INTERP, SELF, NULL);
}
@@ -764,17 +714,8 @@
}
if (hash) {
- UINTVAL i;
-
- for (i = 0; i <= hash->mask; ++i) {
- HashBucket *b = hash->bucket_indices[i];
-
- while (b) {
- FREE_CELL(INTERP, (Pcc_cell *)b->value);
- b = b->next;
- }
- }
-
+ parrot_hash_iterate(hash,
+ FREE_CELL(INTERP, (Pcc_cell *)_bucket->value););
parrot_hash_destroy(INTERP, hash);
}
@@ -1048,14 +989,14 @@
else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "handlers")))
GET_ATTR_handlers(INTERP, SELF, value);
else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "current_HLL"))) {
- /* This function from src/hash.c. */
- /* We probably have to move it to more suitable place */
GET_ATTR_current_HLL(INTERP, SELF, hll);
- value = get_integer_pmc(INTERP, hll);
+ value = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, value, hll);
}
else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "current_hll"))) {
GET_ATTR_current_HLL(INTERP, SELF, hll);
- value = get_string_pmc(INTERP, Parrot_get_HLL_name(INTERP, hll));
+ value = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+ VTABLE_set_string_native(interp, value, Parrot_get_HLL_name(INTERP, hll));
}
else
Parrot_ex_throw_from_c_args(INTERP, NULL,
Modified: branches/unshared_buffers/src/pmc/capture.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/capture.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/capture.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -731,6 +731,8 @@
GET_ATTR_hash(INTERP, capture, hash);
SET_ATTR_array(INTERP, SELF, array);
SET_ATTR_hash(INTERP, SELF, hash);
+ if (!PMC_IS_NULL(array) || !PMC_IS_NULL(hash))
+ PObj_custom_mark_SET(SELF);
}
else
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
Modified: branches/unshared_buffers/src/pmc/class.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/class.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/class.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -151,10 +151,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static int pointer_compare(SHIM_INTERP,
- ARGIN_NULLOK(const void *a),
- ARGIN_NULLOK(const void *b));
-
#define ASSERT_ARGS_build_attrib_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
@@ -183,35 +179,14 @@
#define ASSERT_ARGS_make_class_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(SELF))
-#define ASSERT_ARGS_pointer_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
/*
-=item C<static int pointer_compare(PARROT_INTERP, const void *a, const void *b)>
-
-
-
-=cut
-
-*/
-
-static int
-pointer_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a),
- ARGIN_NULLOK(const void *b))
-{
- ASSERT_ARGS(pointer_compare)
- return a != b;
-}
-
-/*
-
=item C<static size_t key_hash_pointer(PARROT_INTERP, const void *value, size_t
seed)>
-
-
=cut
*/
@@ -228,8 +203,6 @@
=item C<static int cache_class_attribs(PARROT_INTERP, PMC *cur_class, PMC
*attrib_index, PMC *cache, int cur_index)>
-
-
=cut
*/
@@ -489,8 +462,6 @@
=item C<static void initialize_parents(PARROT_INTERP, PMC *object, PMC
*all_parents)>
-
-
=cut
*/
@@ -529,8 +500,6 @@
=item C<static void initialize_parents_pmc(PARROT_INTERP, PMC *object, PMC
*all_parents, PMC *init)>
-
-
=cut
*/
@@ -699,7 +668,7 @@
(Parrot_Class_attributes *) PMC_data(SELF);
/* Set flag for custom GC mark. */
- PObj_custom_mark_SET(SELF);
+ PObj_custom_mark_destroy_SETALL(SELF);
/* Set up the object. */
_class->name = CONST_STRING(INTERP, "");
@@ -718,7 +687,7 @@
_class->parent_overrides = Parrot_pmc_new(INTERP, enum_class_Hash);
_class->isa_cache = parrot_create_hash(INTERP,
enum_type_INTVAL, Hash_key_type_PMC,
- (hash_comp_fn)pointer_compare, (hash_hash_key_fn)key_hash_pointer);
+ (hash_comp_fn)hash_compare_pointer, (hash_hash_key_fn)key_hash_pointer);
/* We put ourself on the all parents list. */
VTABLE_push_pmc(INTERP, _class->all_parents, SELF);
@@ -1461,10 +1430,14 @@
if (PMC_IS_NULL(lookup))
return 0;
- if (PObj_is_class_TEST(lookup) && lookup == SELF)
- return 1;
-
- classobj = Parrot_oo_get_class(INTERP, lookup);
+ if (PObj_is_class_TEST(lookup)) {
+ if (lookup == SELF)
+ return 1;
+ else
+ classobj = lookup;
+ }
+ else
+ classobj = Parrot_oo_get_class(INTERP, lookup);
if (PMC_IS_NULL(classobj))
return 0;
Modified: branches/unshared_buffers/src/pmc/eval.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/eval.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/eval.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -57,8 +57,6 @@
=item C<static void clear_fixups(PARROT_INTERP, const Parrot_Sub_attributes
*sub_data)>
-
-
=cut
*/
@@ -95,8 +93,6 @@
=item C<static PMC* get_sub(PARROT_INTERP, PMC *self, int idx)>
-
-
=cut
*/
@@ -141,8 +137,6 @@
=item C<static void mark_subs(PARROT_INTERP, PMC *self)>
-
-
=cut
*/
Modified: branches/unshared_buffers/src/pmc/exception.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/exception.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/exception.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -166,6 +166,46 @@
/*
+=item C<PMC *clone()>
+
+Create a copy of the Exception.
+
+Copy only the user supplied values, not the throwing and handling
+information.
+
+=cut
+
+*/
+
+ VTABLE PMC *clone() {
+ PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
+ INTVAL id;
+ STRING *message;
+ PMC *payload;
+ INTVAL severity;
+ INTVAL type;
+ INTVAL exit_code;
+ GET_ATTR_id(INTERP, SELF, id);
+ SET_ATTR_id(INTERP, dest, id);
+ GET_ATTR_message(INTERP, SELF, message);
+ SET_ATTR_message(INTERP, dest, message);
+ GET_ATTR_severity(INTERP, SELF, severity);
+ SET_ATTR_severity(INTERP, dest, severity);
+ GET_ATTR_type(INTERP, SELF, type);
+ SET_ATTR_type(INTERP, dest, type);
+ GET_ATTR_exit_code(INTERP, SELF, exit_code);
+ SET_ATTR_exit_code(INTERP, dest, exit_code);
+
+ GET_ATTR_payload(INTERP, SELF, payload);
+ if (!PMC_IS_NULL(payload)) {
+ payload = VTABLE_clone(INTERP, payload);
+ SET_ATTR_payload(INTERP, dest, payload);
+ }
+ return dest;
+ }
+
+/*
+
=item C<void mark()>
Mark any active exception data as live.
@@ -261,7 +301,7 @@
/*
-=item C<INTVAL get_integer_keyed(PMC *key)>
+=item C<INTVAL get_integer_keyed_str(STRING *key)>
Returns the integer value for C<*key>.
@@ -269,11 +309,9 @@
*/
- VTABLE INTVAL get_integer_keyed(PMC *key) {
- STRING * const name = VTABLE_get_string(INTERP, key);
- INTVAL result = 0;
-
- switch (getAttrEnum(INTERP, name)) {
+ VTABLE INTVAL get_integer_keyed_str(STRING *key) {
+ INTVAL result = 0;
+ switch (getAttrEnum(INTERP, key)) {
case attr_type:
GET_ATTR_type(INTERP, SELF, result);
break;
@@ -289,7 +327,7 @@
default:
/* If unknown attribute name, throw an exception. */
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
- "No such integer attribute '%S'", name);
+ "No such integer attribute '%S'", key);
}
return result;
@@ -297,7 +335,7 @@
/*
-=item C<INTVAL get_integer_keyed_str(STRING *key)>
+=item C<INTVAL get_integer_keyed(PMC *key)>
Returns the integer value for C<*key>.
@@ -305,28 +343,9 @@
*/
- VTABLE INTVAL get_integer_keyed_str(STRING *key) {
- INTVAL result = 0;
- switch (getAttrEnum(INTERP, key)) {
- case attr_type:
- GET_ATTR_type(INTERP, SELF, result);
- break;
- case attr_severity:
- GET_ATTR_severity(INTERP, SELF, result);
- break;
- case attr_exit_code:
- GET_ATTR_exit_code(INTERP, SELF, result);
- break;
- case attr_handled:
- GET_ATTR_handled(INTERP, SELF, result);
- break;
- default:
- /* If unknown attribute name, throw an exception. */
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
- "No such integer attribute '%S'", key);
- }
-
- return result;
+ VTABLE INTVAL get_integer_keyed(PMC *key) {
+ STRING * const name = VTABLE_get_string(INTERP, key);
+ return SELF.get_integer_keyed_str(name);
}
/*
@@ -414,7 +433,7 @@
/*
-=item C<void set_integer_keyed(PMC *key, INTVAL value)>
+=item C<void set_integer_keyed_str(STRING *key, INTVAL value) >
Sets the integer value for C<*key>.
@@ -422,9 +441,8 @@
*/
- VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
- STRING * const name = VTABLE_get_string(INTERP, key);
- switch (getAttrEnum(INTERP, name)) {
+ VTABLE void set_integer_keyed_str(STRING *key, INTVAL value) {
+ switch (getAttrEnum(INTERP, key)) {
case attr_type:
SET_ATTR_type(INTERP, SELF, value);
break;
@@ -440,13 +458,13 @@
default:
/* If unknown attribute name, throw an exception. */
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
- "No such integer attribute '%S'", name);
+ "No such integer attribute '%S'", key);
}
}
/*
-=item C<void set_integer_keyed_str(STRING *key, INTVAL value) >
+=item C<void set_integer_keyed(PMC *key, INTVAL value)>
Sets the integer value for C<*key>.
@@ -454,25 +472,9 @@
*/
- VTABLE void set_integer_keyed_str(STRING *key, INTVAL value) {
- switch (getAttrEnum(INTERP, key)) {
- case attr_type:
- SET_ATTR_type(INTERP, SELF, value);
- break;
- case attr_severity:
- SET_ATTR_severity(INTERP, SELF, value);
- break;
- case attr_exit_code:
- SET_ATTR_exit_code(INTERP, SELF, value);
- break;
- case attr_handled:
- SET_ATTR_handled(INTERP, SELF, value);
- break;
- default:
- /* If unknown attribute name, throw an exception. */
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
- "No such integer attribute '%S'", key);
- }
+ VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
+ STRING * const name = VTABLE_get_string(INTERP, key);
+ SELF.set_integer_keyed_str(name, value);
}
/*
Modified: branches/unshared_buffers/src/pmc/filehandle.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/filehandle.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/filehandle.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -438,46 +438,67 @@
*/
METHOD readall(STRING *name :optional, INTVAL got_name :opt_flag) {
- STRING *result;
+ PMC *filehandle;
+ STRING *result = STRINGNULL;
+ size_t size = 0;
if (got_name) {
/* called as class method - open, slurp, close file */
- PMC *filehandle;
STRING *encoding;
- size_t size;
-
- GET_ATTR_encoding(INTERP, SELF, encoding);
if (!Parrot_io_is_closed_filehandle(INTERP, SELF))
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_PIO_ERROR,
"Cannot readall on a new file from an already open filehandle");
- filehandle = Parrot_io_open(INTERP, PMCNULL, name, NULL);
+ GET_ATTR_encoding(INTERP, SELF, encoding);
+ filehandle = Parrot_io_open(INTERP, PMCNULL, name, NULL);
PARROT_ASSERT(filehandle->vtable->base_type == enum_class_FileHandle);
SET_ATTR_encoding(INTERP, filehandle, encoding);
size = (size_t)(Parrot_stat_info_intval(INTERP, name, STAT_FILESIZE));
-
- result = Parrot_io_reads(INTERP, filehandle, size);
- Parrot_io_close(INTERP, filehandle);
}
else {
- /* slurp open file */
+ /* Just get size of already opened file */
+ STRING *filename;
+ Parrot_runloop jump_point;
+
if (Parrot_io_is_closed_filehandle(INTERP, SELF))
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_PIO_ERROR,
"Cannot readall without a file name or open filehandle");
- /* Do line buffering on the filehandle */
- if (!(PARROT_FILEHANDLE(SELF)->flags & PIO_F_LINEBUF))
- Parrot_io_setlinebuf(INTERP, SELF);
+ GET_ATTR_filename(INTERP, SELF, filename);
- result = STRINGNULL;
- do {
- STRING * const part = Parrot_io_reads(INTERP, SELF, 0);
- result = STRING_IS_NULL(result) ? part :
+ /* stat_info ca throw exception. Switch to chunked loading */
+ if (setjmp(jump_point.resume)) {
+ /* caught exception */
+ Parrot_cx_delete_handler_local(interp,
+ Parrot_str_new_constant(interp, "exception"));
+
+ /* Do line buffering on the filehandle */
+ if (!(PARROT_FILEHANDLE(SELF)->flags & PIO_F_LINEBUF))
+ Parrot_io_setlinebuf(INTERP, SELF);
+
+ do {
+ STRING * const part = Parrot_io_reads(INTERP, SELF, 0);
+ result = STRING_IS_NULL(result) ? part :
Parrot_str_concat(INTERP, result, part);
- } while (!Parrot_io_eof(INTERP, SELF));
+ } while (!Parrot_io_eof(INTERP, SELF));
+ }
+ else {
+ /* run normally */
+ Parrot_ex_add_c_handler(interp, &jump_point);
+
+ size = (size_t)(Parrot_stat_info_intval(INTERP, filename, STAT_FILESIZE));
+ filehandle = SELF;
+ }
+ }
+
+ if (size)
+ result = Parrot_io_reads(INTERP, filehandle, size);
+
+ if (got_name) {
+ Parrot_io_close(INTERP, filehandle);
}
RETURN(STRING *result);
Modified: branches/unshared_buffers/src/pmc/float.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/float.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/float.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -77,7 +77,8 @@
=item C<INTVAL get_integer()>
-Returns an integer representation of the number (by casting).
+Returns an integer representation of the number by truncating
+(rounding toward zero).
=cut
@@ -391,6 +392,10 @@
=item C<METHOD PMC *cosh()>
+=item C<METHOD PMC *cot()>
+
+=item C<METHOD PMC *csc()>
+
=item C<METHOD PMC *exp()>
=item C<METHOD PMC *ln()>
@@ -425,13 +430,6 @@
RETURN(PMC *d);
}
- METHOD cos() {
- PMC * const d = Parrot_pmc_new(INTERP,
- Parrot_get_ctx_HLL_type(INTERP, enum_class_Float));
- SET_ATTR_fv(INTERP, d, cos(SELF.get_number()));
- RETURN(PMC *d);
- }
-
METHOD asec() {
PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, acos(1.0 / SELF.get_number()));
@@ -456,12 +454,31 @@
RETURN(PMC *d);
}
+ METHOD cos() {
+ PMC * const d = Parrot_pmc_new(INTERP,
+ Parrot_get_ctx_HLL_type(INTERP, enum_class_Float));
+ SET_ATTR_fv(INTERP, d, cos(SELF.get_number()));
+ RETURN(PMC *d);
+ }
+
METHOD cosh() {
PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, cosh(SELF.get_number()));
RETURN(PMC *d);
}
+ METHOD cot() {
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ SET_ATTR_fv(INTERP, d, 1.0 / tan(SELF.get_number()));
+ RETURN(PMC *d);
+ }
+
+ METHOD csc() {
+ PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ SET_ATTR_fv(INTERP, d, 1.0 / sin(SELF.get_number()));
+ RETURN(PMC *d);
+ }
+
METHOD exp() {
PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
SET_ATTR_fv(INTERP, d, exp(SELF.get_number()));
Modified: branches/unshared_buffers/src/pmc/hash.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/hash.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/hash.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -50,8 +50,62 @@
/* HEADERIZER HFILE: none */
/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static PMC* get_next_hash(PARROT_INTERP,
+ ARGMOD(Hash *hash),
+ ARGIN(void *key))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*hash);
+
+#define ASSERT_ARGS_get_next_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(hash) \
+ , PARROT_ASSERT_ARG(key))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
+/*
+
+=item C<static PMC* get_next_hash(PARROT_INTERP, Hash *hash, void *key)>
+
+Get the next hash for multipart keys. Autovivify a hash if it doesn't exist.
+
+=cut
+
+*/
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static PMC*
+get_next_hash(PARROT_INTERP, ARGMOD(Hash *hash), ARGIN(void *key))
+{
+ ASSERT_ARGS(get_next_hash)
+ PMC *next_hash;
+ HashBucket *bucket;
+
+ if (hash->entry_type != enum_type_PMC)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
+ "Hash entry type must be PMC for multipart keys.");
+
+ bucket = parrot_hash_get_bucket(interp, hash, key);
+
+ if (bucket) {
+ next_hash = (PMC *)bucket->value;
+ }
+ else {
+ /* autovivify a Hash */
+ next_hash = Parrot_pmc_new(interp, enum_class_Hash);
+ parrot_hash_put(interp, hash, key, next_hash);
+ }
+
+ return next_hash;
+}
+
pmclass Hash provides hash auto_attrs {
ATTR Hash *hash;
@@ -88,7 +142,7 @@
attr->hash = parrot_create_hash(INTERP,
(PARROT_DATA_TYPE)value_type,
Hash_key_type_STRING,
- STRING_compare,
+ hash_compare_string,
(hash_hash_key_fn)key_hash_STRING);
PObj_custom_mark_destroy_SETALL(SELF);
}
@@ -98,6 +152,7 @@
if (hash)
parrot_hash_destroy(INTERP, hash);
}
+
/*
=item C<void mark()>
@@ -179,21 +234,21 @@
new_hash = parrot_create_hash(INTERP,
entry_type,
Hash_key_type_STRING,
- STRING_compare,
+ hash_compare_string,
(hash_hash_key_fn)key_hash_STRING);
else if (type == Hash_key_type_int)
/* new_int_hash set BOTH keys and values to INTVAL */
new_hash = parrot_create_hash(INTERP,
entry_type,
Hash_key_type_int,
- int_compare,
+ hash_compare_int,
key_hash_int);
else if (type == Hash_key_type_PMC)
/* new_int_hash set BOTH keys and values to INTVAL */
new_hash = parrot_create_hash(INTERP,
entry_type,
Hash_key_type_PMC,
- (hash_comp_fn)PMC_compare,
+ (hash_comp_fn)hash_compare_pmc,
(hash_hash_key_fn)key_hash_PMC);
else
/* We probably will not implement other types of keys. They are way
@@ -243,9 +298,9 @@
/*
If someone called Hash.set_pointer with NULL pointer...
- It will create STRING* keys hash. Because we can't use STRING_compare
- directly - it declared static in F<src/hash.c>
+ It will create STRING* keys hash.
*/
+
if (old_hash && old_hash->entry_type == type)
return;
@@ -256,7 +311,7 @@
new_hash = parrot_create_hash(INTERP,
(PARROT_DATA_TYPE)type,
old_hash ? old_hash->key_type : Hash_key_type_STRING,
- old_hash ? old_hash->compare : STRING_compare,
+ old_hash ? old_hash->compare : hash_compare_string,
old_hash ? old_hash->hash_val : (hash_hash_key_fn)key_hash_STRING);
break;
default:
@@ -416,24 +471,25 @@
/* Handling Keys */
VTABLE INTVAL get_integer_keyed(PMC *key) {
- const Hash * const hash = (Hash *)SELF.get_pointer();
- HashBucket * const b = parrot_hash_get_bucket(INTERP, hash,
- hash_key_from_pmc(INTERP, hash, key));
- PMC *valpmc;
- PMC *nextkey;
+ const Hash * const hash = (Hash *)SELF.get_pointer();
+ const void * const hash_key = hash_key_from_pmc(INTERP, hash, key);
+ HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, hash_key);
if (!b)
return 0;
- nextkey = key_next(INTERP, key);
- valpmc = hash_value_to_pmc(INTERP, hash, b->value);
+ key = key_next(INTERP, key);
/* Stop recursion. This is last step */
- if (!nextkey)
- return VTABLE_get_integer(INTERP, valpmc);
+ if (!key)
+ return hash_value_to_int(INTERP, hash, b->value);
- /* Recusively call to enclosed aggregate */
- return VTABLE_get_integer_keyed(INTERP, valpmc, nextkey);
+ if (hash->entry_type != enum_type_PMC)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
+ "Hash entry type must be PMC for multipart keys.");
+
+ /* Recursively call to enclosed aggregate */
+ return VTABLE_get_integer_keyed(INTERP, (PMC *)b->value, key);
}
/*
@@ -445,11 +501,8 @@
*/
VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
- Hash * const hash = (Hash *)SELF.get_pointer();
- void * const keystr = hash_key_from_pmc(INTERP, hash, key);
- PMC * const nextkey = key_next(INTERP, key);
- PMC *box;
- HashBucket *b;
+ Hash * const hash = (Hash *)SELF.get_pointer();
+ void * const hash_key = hash_key_from_pmc(INTERP, hash, key);
if (PObj_constant_TEST(SELF)
&& !PObj_constant_TEST((PObj *)key))
@@ -457,23 +510,16 @@
EXCEPTION_INVALID_OPERATION,
"Used non-constant PMC key in constant hash.");
- if (!nextkey) {
- parrot_hash_put(INTERP, hash, keystr,
+ key = key_next(INTERP, key);
+
+ if (!key) {
+ parrot_hash_put(INTERP, hash, hash_key,
hash_value_from_int(INTERP, hash, value));
- return;
}
-
- b = parrot_hash_get_bucket(INTERP, hash, keystr);
- if (b)
- box = hash_value_to_pmc(INTERP, hash, b->value);
else {
- /* autovivify an Hash */
- box = Parrot_pmc_new(INTERP, SELF.type());
- parrot_hash_put(INTERP, hash, keystr,
- hash_value_from_pmc(INTERP, hash, box));
+ PMC * const next_hash = get_next_hash(INTERP, hash, hash_key);
+ VTABLE_set_integer_keyed(INTERP, next_hash, key, value);
}
-
- VTABLE_set_integer_keyed(INTERP, box, nextkey, value);
}
VTABLE void set_integer_keyed_int(INTVAL key, INTVAL value) {
@@ -547,22 +593,23 @@
/* I can't migrate this function right now. Some problem with JITting */
VTABLE FLOATVAL get_number_keyed(PMC *key) {
- PMC *nextkey;
- PMC *valpmc;
- const Hash * const hash = (Hash *)SELF.get_pointer();
- void * const keystr = hash_key_from_pmc(INTERP, hash, key);
- HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, keystr);
+ const Hash * const hash = (Hash *)SELF.get_pointer();
+ void * const hash_key = hash_key_from_pmc(INTERP, hash, key);
+ HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, hash_key);
if (!b)
return 0.0;
- nextkey = key_next(INTERP, key);
- valpmc = hash_value_to_pmc(INTERP, hash, b->value);
+ key = key_next(INTERP, key);
- if (!nextkey)
- return VTABLE_get_number(INTERP, valpmc);
+ if (!key)
+ return hash_value_to_number(INTERP, hash, b->value);
- return VTABLE_get_number_keyed(INTERP, valpmc, nextkey);
+ if (hash->entry_type != enum_type_PMC)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
+ "Hash entry type must be PMC for multipart keys.");
+
+ return VTABLE_get_number_keyed(INTERP, (PMC *)b->value, key);
}
@@ -609,24 +656,25 @@
*/
VTABLE STRING *get_string_keyed(PMC *key) {
- const Hash * const hash = (Hash *)SELF.get_pointer();
- HashBucket * const b = parrot_hash_get_bucket(INTERP, hash,
- hash_key_from_pmc(INTERP, hash, key));
- PMC *valpmc;
- PMC *nextkey;
+ const Hash * const hash = (Hash *)SELF.get_pointer();
+ const void * const hash_key = hash_key_from_pmc(INTERP, hash, key);
+ HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, hash_key);
if (!b)
return Parrot_str_new_noinit(INTERP, enum_stringrep_one, 0);
- nextkey = key_next(INTERP, key);
- valpmc = hash_value_to_pmc(INTERP, hash, b->value);
+ key = key_next(INTERP, key);
/* Stop recursion. This is last step */
- if (!nextkey)
- return VTABLE_get_string(INTERP, valpmc);
+ if (!key)
+ return hash_value_to_string(INTERP, hash, b->value);
- /* Recusively call to enclosed aggregate */
- return VTABLE_get_string_keyed(INTERP, valpmc, nextkey);
+ if (hash->entry_type != enum_type_PMC)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
+ "Hash entry type must be PMC for multipart keys.");
+
+ /* Recursively call to enclosed aggregate */
+ return VTABLE_get_string_keyed(INTERP, (PMC *)b->value, key);
}
/*
@@ -638,11 +686,8 @@
*/
VTABLE void set_string_keyed(PMC *key, STRING *value) {
- Hash * const hash = (Hash *)SELF.get_pointer();
- void * const keystr = hash_key_from_pmc(INTERP, hash, key);
- PMC * const nextkey = key_next(INTERP, key);
- PMC *box;
- HashBucket *b;
+ Hash * const hash = (Hash *)SELF.get_pointer();
+ void * const hash_key = hash_key_from_pmc(INTERP, hash, key);
if (PObj_constant_TEST(SELF)){
if (!PObj_constant_TEST((PObj *)key))
@@ -655,23 +700,16 @@
"Used non-constant STRING value in constant hash.");
}
- if (!nextkey) {
- parrot_hash_put(INTERP, hash, keystr,
+ key = key_next(INTERP, key);
+
+ if (!key) {
+ parrot_hash_put(INTERP, hash, hash_key,
hash_value_from_string(INTERP, hash, value));
- return;
}
-
- b = parrot_hash_get_bucket(INTERP, hash, keystr);
- if (b)
- box = hash_value_to_pmc(INTERP, hash, b->value);
else {
- /* autovivify an Hash */
- box = Parrot_pmc_new(INTERP, SELF.type());
- parrot_hash_put(INTERP, hash, keystr,
- hash_value_from_pmc(INTERP, hash, box));
+ PMC * const next_hash = get_next_hash(INTERP, hash, hash_key);
+ VTABLE_set_string_keyed(INTERP, next_hash, key, value);
}
-
- VTABLE_set_string_keyed(INTERP, box, nextkey, value);
}
/*
@@ -696,8 +734,7 @@
"Used non-constant STRING value in constant hash.");
}
- parrot_hash_put(INTERP, hash,
- hash_key_from_string(INTERP, hash, key),
+ parrot_hash_put(INTERP, hash, hash_key_from_string(INTERP, hash, key),
hash_value_from_string(INTERP, hash, value));
}
@@ -731,14 +768,13 @@
VTABLE PMC *get_pmc_keyed_str(STRING *key) {
const Hash *hash;
- HashBucket *b = NULL;
+ HashBucket *b;
GET_ATTR_hash(INTERP, SELF, hash);
/* special case the most likely key type, for speed */
- key = hash->key_type == Hash_key_type_STRING
- ? key
- : (STRING *)hash_key_from_string(INTERP, hash, key);
+ if (hash->key_type != Hash_key_type_STRING)
+ key = (STRING *)hash_key_from_string(INTERP, hash, key);
b = parrot_hash_get_bucket(INTERP, hash, key);
@@ -765,24 +801,25 @@
/* Compound Key */
VTABLE PMC *get_pmc_keyed(PMC *key) {
- const Hash * const hash = (Hash *)SELF.get_pointer();
- HashBucket * const b = parrot_hash_get_bucket(INTERP, hash,
- hash_key_from_pmc(INTERP, hash, key));
- PMC *valpmc;
- PMC *nextkey;
+ const Hash * const hash = (Hash *)SELF.get_pointer();
+ const void * const hash_key = hash_key_from_pmc(INTERP, hash, key);
+ HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, hash_key);
if (!b)
return PMCNULL;
- nextkey = key_next(INTERP, key);
- valpmc = hash_value_to_pmc(INTERP, hash, b->value);
+ key = key_next(INTERP, key);
/* Stop recursion. This is last step */
- if (!nextkey)
- return valpmc;
+ if (!key)
+ return hash_value_to_pmc(INTERP, hash, b->value);
- /* Recusively call to enclosed aggregate */
- return VTABLE_get_pmc_keyed(INTERP, valpmc, nextkey);
+ if (hash->entry_type != enum_type_PMC)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
+ "Hash entry type must be PMC for multipart keys.");
+
+ /* Recursively call to enclosed aggregate */
+ return VTABLE_get_pmc_keyed(INTERP, (PMC *)b->value, key);
}
/*
@@ -794,11 +831,8 @@
*/
VTABLE void set_number_keyed(PMC *key, FLOATVAL value) {
- Hash * const hash = (Hash *)SELF.get_pointer();
- void * const keystr = hash_key_from_pmc(INTERP, hash, key);
- PMC * const nextkey = key_next(INTERP, key);
- PMC *box = PMCNULL;
- HashBucket *b;
+ Hash * const hash = (Hash *)SELF.get_pointer();
+ void * const hash_key = hash_key_from_pmc(INTERP, hash, key);
if (PObj_constant_TEST(SELF)
&& !PObj_constant_TEST((PObj *)key))
@@ -806,21 +840,16 @@
EXCEPTION_INVALID_OPERATION,
"Used non-constant PMC key in constant hash.");
- if (!nextkey) {
- PMC * const val = get_number_pmc(INTERP, value);
- parrot_hash_put(INTERP, hash, keystr, hash_value_from_pmc(INTERP, hash, val));
- return;
- }
-
- b = parrot_hash_get_bucket(INTERP, (Hash *)SELF.get_pointer(), keystr);
- if (b)
- box = hash_value_to_pmc(INTERP, hash, b->value);
-
- /* autovivify an Hash */
- if (PMC_IS_NULL(box))
- box = Parrot_pmc_new(INTERP, SELF.type());
+ key = key_next(INTERP, key);
- VTABLE_set_number_keyed(INTERP, box, nextkey, value);
+ if (!key) {
+ parrot_hash_put(INTERP, hash, hash_key,
+ hash_value_from_number(INTERP, hash, value));
+ }
+ else {
+ PMC * const next_hash = get_next_hash(INTERP, hash, hash_key);
+ VTABLE_set_number_keyed(INTERP, next_hash, key, value);
+ }
}
/*
@@ -834,7 +863,7 @@
*/
VTABLE void set_number_keyed_str(STRING *key, FLOATVAL value) {
- PMC * const val = get_number_pmc(INTERP, value);
+ Hash * const hash = (Hash *)SELF.get_pointer();
if (PObj_constant_TEST(SELF)
&& !PObj_constant_TEST((PObj *)key))
@@ -842,7 +871,8 @@
EXCEPTION_INVALID_OPERATION,
"Used non-constant STRING key in constant hash.");
- parrot_hash_put(INTERP, (Hash *)SELF.get_pointer(), key, val);
+ parrot_hash_put(INTERP, hash, hash_key_from_string(INTERP, hash, key),
+ hash_value_from_number(INTERP, hash, value));
}
/*
@@ -854,11 +884,8 @@
*/
VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
- Hash * const hash = (Hash *)SELF.get_pointer();
- void * const keystr = hash_key_from_pmc(INTERP, hash, key);
- PMC * const nextkey = key_next(INTERP, key);
- PMC *box;
- HashBucket *b;
+ Hash * const hash = (Hash *)SELF.get_pointer();
+ void * const hash_key = hash_key_from_pmc(INTERP, hash, key);
if (PObj_constant_TEST(SELF)) {
if (!PObj_constant_TEST((PObj *)key))
@@ -872,23 +899,15 @@
"Used non-constant PMC value in constant hash.");
}
- if (!nextkey) {
- parrot_hash_put(INTERP, hash, keystr, value);
- return;
- }
+ key = key_next(INTERP, key);
- b = parrot_hash_get_bucket(INTERP, hash, keystr);
- if (b)
- box = hash_value_to_pmc(INTERP, hash, b->value);
+ if (!key) {
+ parrot_hash_put(INTERP, hash, hash_key, value);
+ }
else {
- /* autovivify an Hash */
- box = Parrot_pmc_new(INTERP, SELF.type());
- parrot_hash_put(INTERP, hash, keystr,
- hash_value_from_pmc(INTERP, hash, box));
+ PMC * const next_hash = get_next_hash(INTERP, hash, hash_key);
+ VTABLE_set_pmc_keyed(INTERP, next_hash, key, value);
}
-
-
- VTABLE_set_pmc_keyed(INTERP, box, nextkey, value);
}
/*
@@ -960,7 +979,12 @@
if (!key)
return 1;
- return VTABLE_exists_keyed(INTERP, hash_value_to_pmc(INTERP, h, b->value), key);
+ if (h->entry_type != enum_type_PMC)
+ Parrot_ex_throw_from_c_args(INTERP, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "Hash entry type must be PMC for multipart keys.");
+
+ return VTABLE_exists_keyed(INTERP, (PMC *)b->value, key);
}
/*
@@ -1006,9 +1030,13 @@
if (!key)
return VTABLE_defined(INTERP, hash_value_to_pmc(INTERP, h, b->value));
- else
- return VTABLE_defined_keyed(INTERP,
- hash_value_to_pmc(INTERP, h, b->value), key);
+
+ if (h->entry_type != enum_type_PMC)
+ Parrot_ex_throw_from_c_args(INTERP, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "Hash entry type must be PMC for multipart keys.");
+
+ return VTABLE_defined_keyed(INTERP, (PMC *)b->value, key);
}
/*
@@ -1045,10 +1073,17 @@
key = key_next(INTERP, key);
- if (!key)
+ if (!key) {
parrot_hash_delete(INTERP, h, sx);
- else
- VTABLE_delete_keyed(INTERP, (PMC *)b->value, key);
+ return;
+ }
+
+ if (h->entry_type != enum_type_PMC)
+ Parrot_ex_throw_from_c_args(INTERP, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "Hash entry type must be PMC for multipart keys.");
+
+ VTABLE_delete_keyed(INTERP, (PMC *)b->value, key);
}
/*
@@ -1154,21 +1189,6 @@
/*
-=item C<void visit(PMC *info)>
-
-Used during archiving to visit the elements in the hash.
-
-=cut
-
-*/
-
- VTABLE void visit(PMC *info) {
- parrot_hash_visit(INTERP, (Hash *)SELF.get_pointer(), info);
- SUPER(info);
- }
-
-/*
-
=item C<void freeze(PMC *info)>
Used to archive the hash.
@@ -1178,12 +1198,8 @@
*/
VTABLE void freeze(PMC *info) {
- Hash * const hash = (Hash *)SELF.get_pointer();
-
SUPER(info);
- VTABLE_push_integer(INTERP, info, VTABLE_elements(INTERP, SELF));
- VTABLE_push_integer(INTERP, info, (INTVAL)hash->key_type);
- VTABLE_push_integer(INTERP, info, hash->entry_type);
+ Parrot_hash_freeze(INTERP, (Hash *)SELF.get_pointer(), info);
}
/*
@@ -1198,47 +1214,7 @@
VTABLE void thaw(PMC *info) {
SUPER(info);
-
- {
- const INTVAL elems = VTABLE_shift_integer(INTERP, info);
- const INTVAL k_type = VTABLE_shift_integer(INTERP, info);
- const INTVAL v_type = VTABLE_shift_integer(INTERP, info);
- Hash *hash;
-
- if (k_type != Hash_key_type_STRING || v_type != enum_hash_pmc) {
- hash_comp_fn cmp_fn;
- hash_hash_key_fn key_fn;
-
- switch (k_type) {
- case Hash_key_type_int:
- key_fn = (hash_hash_key_fn)key_hash_int;
- cmp_fn = (hash_comp_fn)int_compare;
- break;
- case Hash_key_type_STRING:
- key_fn = (hash_hash_key_fn)key_hash_STRING;
- cmp_fn = (hash_comp_fn)STRING_compare;
- break;
- case Hash_key_type_PMC:
- key_fn = (hash_hash_key_fn)key_hash_PMC;
- cmp_fn = (hash_comp_fn)PMC_compare;
- break;
- default:
- Parrot_ex_throw_from_c_args(INTERP, NULL, 1,
- "unimplemented key type");
- break;
- }
-
- SELF.set_pointer(parrot_create_hash(INTERP, (PARROT_DATA_TYPE)v_type,
- (Hash_key_type)k_type, cmp_fn, key_fn));
- }
-
- hash = (Hash *)SELF.get_pointer();
-
- PARROT_ASSERT((INTVAL)hash->key_type == k_type);
- PARROT_ASSERT(hash->entry_type == v_type);
-
- hash->entries = elems;
- }
+ SELF.set_pointer((void *)Parrot_hash_thaw(INTERP, info));
}
}
Modified: branches/unshared_buffers/src/pmc/hashiterator.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/hashiterator.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/hashiterator.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -78,24 +78,9 @@
advance_to_next(PARROT_INTERP, ARGMOD(PMC *self))
{
ASSERT_ARGS(advance_to_next)
-
Parrot_HashIterator_attributes * const attrs = PARROT_HASHITERATOR(self);
- HashBucket *bucket = attrs->bucket;
-
- /* Try to advance current bucket */
- if (bucket)
- bucket = bucket->next;
-
- while (!bucket) {
- /* If there is no more buckets */
- if (attrs->pos == attrs->total_buckets)
- break;
-
- bucket = attrs->parrot_hash->bucket_indices[attrs->pos++];
- }
- attrs->bucket = bucket;
+ parrot_hash_iterator_advance(attrs->parrot_hash, attrs->bucket, attrs->pos);
--attrs->elements;
-
return;
}
Modified: branches/unshared_buffers/src/pmc/imageio.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/imageio.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/imageio.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -82,20 +82,6 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*pmc);
-static void visit_todo_list_freeze(PARROT_INTERP,
- ARGIN_NULLOK(PMC* pmc),
- ARGMOD(PMC* info))
- __attribute__nonnull__(1)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(* info);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PARROT_INLINE
-static PMC * visit_todo_list_thaw(PARROT_INTERP, ARGIN(PMC* info))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
#define ASSERT_ARGS_create_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(info))
@@ -114,12 +100,6 @@
#define ASSERT_ARGS_SET_VISIT_CURSOR __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(pmc) \
, PARROT_ASSERT_ARG(cursor))
-#define ASSERT_ARGS_visit_todo_list_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(info))
-#define ASSERT_ARGS_visit_todo_list_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(info))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -127,8 +107,6 @@
=item C<static opcode_t * GET_VISIT_CURSOR(const PMC *pmc)>
-
-
=cut
*/
@@ -150,8 +128,6 @@
=item C<static void SET_VISIT_CURSOR(PMC *pmc, const char *cursor)>
-
-
=cut
*/
@@ -171,8 +147,6 @@
=item C<static void INC_VISIT_CURSOR(PMC *pmc, UINTVAL inc)>
-
-
=cut
*/
@@ -195,8 +169,6 @@
=item C<static void create_buffer(PARROT_INTERP, PMC *pmc, PMC *info)>
-
-
=cut
*/
@@ -270,8 +242,6 @@
=item C<static INTVAL INFO_HAS_DATA(const PMC *io)>
-
-
=cut
*/
@@ -290,8 +260,6 @@
=item C<static PMC* id_list_get(PARROT_INTERP, const PMC *io, UINTVAL id)>
-
-
=cut
*/
@@ -307,131 +275,6 @@
return VTABLE_get_pmc_keyed_int(interp, PARROT_IMAGEIO(io)->todo, id - 1);
}
-/*
-
-=item C<static PMC * visit_todo_list_thaw(PARROT_INTERP, PMC* info)>
-
-
-
-=cut
-
-*/
-
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PARROT_INLINE
-static PMC *
-visit_todo_list_thaw(PARROT_INTERP, ARGIN(PMC* info))
-{
- ASSERT_ARGS(visit_todo_list_thaw)
-
- const UINTVAL n = VTABLE_shift_integer(interp, info);
- const INTVAL id = PackID_get_PMCID(n);
- const int packid_flags = PackID_get_FLAGS(n);
- PMC *pmc = PMCNULL;
-
- PARROT_ASSERT(PARROT_IMAGEIO(info)->what == VISIT_THAW_NORMAL);
-
- switch (packid_flags) {
- case enum_PackID_seen:
- if (id) /* got a non-NULL PMC */
- pmc = id_list_get(interp, info, id);
- break;
- case enum_PackID_normal:
- {
- PMC * const todo = PARROT_IMAGEIO(info)->todo;
- const INTVAL type = VTABLE_shift_integer(interp, info);
-
- PARROT_ASSERT(id - 1
- == VTABLE_elements(interp, PARROT_IMAGEIO(info)->todo));
-
- if (type <= 0 || type > interp->n_vtable_max)
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "Unknown PMC type to thaw %d", type);
-
- /* workaround to keep ParrotInterpreter PBC hack working */
- if (type == enum_class_ParrotInterpreter)
- PObj_flag_CLEAR(private1, info);
-
- pmc = Parrot_pmc_new_noinit(interp, type);
-
- VTABLE_set_pmc_keyed_int(interp, todo, id - 1, pmc);
- }
- break;
- default:
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "Unknown PMC id args thaw %d", packid_flags);
- break;
- }
-
- return pmc;
-}
-
-/*
-
-=item C<static void visit_todo_list_freeze(PARROT_INTERP, PMC* pmc, PMC* info)>
-
-
-
-=cut
-
-*/
-
-
-static void
-visit_todo_list_freeze(PARROT_INTERP, ARGIN_NULLOK(PMC* pmc), ARGMOD(PMC* info))
-{
- ASSERT_ARGS(visit_todo_list_freeze)
-
- UINTVAL id;
- int packid_type;
-
- PARROT_ASSERT(PARROT_IMAGEIO(info)->what == VISIT_FREEZE_NORMAL);
-
- if (PMC_IS_NULL(pmc)) {
- id = 0;
- packid_type = enum_PackID_seen;
- }
- else {
- Hash * const hash = (Hash *)VTABLE_get_pointer(interp,
- PARROT_IMAGEIO(info)->seen);
- HashBucket * const b = parrot_hash_get_bucket(interp, hash, pmc);
-
- if (b) {
- id = (UINTVAL)b->value;
- packid_type = enum_PackID_seen;
- }
- else {
- ++PARROT_IMAGEIO(info)->id; /* next id to freeze */
- id = PARROT_IMAGEIO(info)->id;
- packid_type = enum_PackID_normal;
- }
- }
-
- VTABLE_push_integer(interp, info, PackID_new(id, packid_type));
-
- if (packid_type == enum_PackID_normal) {
- Hash * const hash = (Hash *)VTABLE_get_pointer(interp,
- PARROT_IMAGEIO(info)->seen);
-
- PARROT_ASSERT(pmc);
-
- /* workaround to keep ParrotInterpreter PBC hack working */
- if (pmc->vtable->base_type == enum_class_ParrotInterpreter)
- PObj_flag_CLEAR(private1, info);
-
- VTABLE_push_integer(interp, info,
- PObj_is_object_TEST(pmc)
- ? (INTVAL) enum_class_Object
- : pmc->vtable->base_type);
-
- parrot_hash_put(interp, hash, pmc, (void *)id);
- VTABLE_push_pmc(interp, PARROT_IMAGEIO(info)->todo, pmc);
- }
-}
-
-
pmclass ImageIO auto_attrs {
ATTR Buffer *buffer; /* buffer to store the image */
ATTR size_t pos; /* current read/write buf position */
@@ -660,7 +503,51 @@
*/
VTABLE void push_pmc(PMC *v) {
- visit_todo_list_freeze(INTERP, v, SELF);
+ UINTVAL id;
+ int packid_type;
+
+ PARROT_ASSERT(PARROT_IMAGEIO(SELF)->what == VISIT_FREEZE_NORMAL);
+
+ if (PMC_IS_NULL(v)) {
+ id = 0;
+ packid_type = enum_PackID_seen;
+ }
+ else {
+ Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP,
+ PARROT_IMAGEIO(SELF)->seen);
+ HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, v);
+
+ if (b) {
+ id = (UINTVAL)b->value;
+ packid_type = enum_PackID_seen;
+ }
+ else {
+ ++PARROT_IMAGEIO(SELF)->id; /* next id to freeze */
+ id = PARROT_IMAGEIO(SELF)->id;
+ packid_type = enum_PackID_normal;
+ }
+ }
+
+ SELF.push_integer(PackID_new(id, packid_type));
+
+ if (packid_type == enum_PackID_normal) {
+ Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP,
+ PARROT_IMAGEIO(SELF)->seen);
+
+ PARROT_ASSERT(v);
+
+ /* workaround to keep ParrotInterpreter PBC hack working */
+ if (v->vtable->base_type == enum_class_ParrotInterpreter)
+ PObj_flag_CLEAR(private1, SELF);
+
+ SELF.push_integer(
+ PObj_is_object_TEST(v)
+ ? (INTVAL) enum_class_Object
+ : v->vtable->base_type);
+
+ parrot_hash_put(INTERP, hash, v, (void *)id);
+ VTABLE_push_pmc(INTERP, PARROT_IMAGEIO(SELF)->todo, v);
+ }
}
@@ -774,7 +661,46 @@
*/
VTABLE PMC *shift_pmc() {
- return visit_todo_list_thaw(INTERP, SELF);
+ const UINTVAL n = SELF.shift_integer();
+ const INTVAL id = PackID_get_PMCID(n);
+ const int packid_flags = PackID_get_FLAGS(n);
+ PMC *pmc = PMCNULL;
+
+ PARROT_ASSERT(PARROT_IMAGEIO(SELF)->what == VISIT_THAW_NORMAL);
+
+ switch (packid_flags) {
+ case enum_PackID_seen:
+ if (id) /* got a non-NULL PMC */
+ pmc = id_list_get(INTERP, SELF, id);
+ break;
+ case enum_PackID_normal:
+ {
+ PMC * const todo = PARROT_IMAGEIO(SELF)->todo;
+ const INTVAL type = VTABLE_shift_integer(INTERP, SELF);
+
+ PARROT_ASSERT(id - 1
+ == VTABLE_elements(INTERP, PARROT_IMAGEIO(SELF)->todo));
+
+ if (type <= 0 || type > INTERP->n_vtable_max)
+ Parrot_ex_throw_from_c_args(INTERP, NULL, 1,
+ "Unknown PMC type to thaw %d", type);
+
+ /* workaround to keep ParrotInterpreter PBC hack working */
+ if (type == enum_class_ParrotInterpreter)
+ PObj_flag_CLEAR(private1, SELF);
+
+ pmc = Parrot_pmc_new_noinit(INTERP, type);
+
+ VTABLE_set_pmc_keyed_int(INTERP, todo, id - 1, pmc);
+ }
+ break;
+ default:
+ Parrot_ex_throw_from_c_args(INTERP, NULL, 1,
+ "Unknown PMC id args thaw %d", packid_flags);
+ break;
+ }
+
+ return pmc;
}
VTABLE void set_pmc(PMC *p)
Modified: branches/unshared_buffers/src/pmc/imageiosize.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/imageiosize.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/imageiosize.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -17,64 +17,6 @@
#define GROW_TO_16_BYTE_BOUNDARY(size) ((size) + ((size) % 16 ? 16 - (size) % 16 : 0))
/* HEADERIZER HFILE: none */
-/* HEADERIZER BEGIN: static */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-static void visit_todo_list_freeze(PARROT_INTERP,
- ARGIN(PMC* pmc),
- ARGMOD(PMC* info))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(* info);
-
-#define ASSERT_ARGS_visit_todo_list_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pmc) \
- , PARROT_ASSERT_ARG(info))
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: static */
-
-/*
-
-=head1 METHODS
-
-=over 4
-
-=item C<static void visit_todo_list_freeze(PARROT_INTERP, PMC* pmc, PMC* info)>
-
-=back
-
-=cut
-
- */
-
-static void
-visit_todo_list_freeze(PARROT_INTERP, ARGIN(PMC* pmc), ARGMOD(PMC* info))
-{
- int is_new = 0;
-
- if (!PMC_IS_NULL(pmc)) {
- Hash * const hash = (Hash *)VTABLE_get_pointer(interp, PARROT_IMAGEIOSIZE(info)->seen);
- HashBucket * const b = parrot_hash_get_bucket(interp, hash, pmc);
- is_new = !b;
- }
-
- VTABLE_push_integer(interp, info, 0);
-
- if (is_new) {
- Hash * const hash = (Hash *)VTABLE_get_pointer(interp, PARROT_IMAGEIOSIZE(info)->seen);
-
- parrot_hash_put(interp, hash, pmc, pmc);
-
- /* workaround to keep ParrotInterpreter PBC hack working */
- if (pmc->vtable->base_type == enum_class_ParrotInterpreter)
- PObj_flag_CLEAR(private1, info);
-
- VTABLE_push_integer(interp, info, pmc->vtable->base_type);
- VTABLE_push_pmc(interp, PARROT_IMAGEIOSIZE(info)->todo, pmc);
- }
-}
pmclass ImageIOSize auto_attrs {
ATTR PMC *seen; /* seen hash */
@@ -298,7 +240,28 @@
*/
VTABLE void push_pmc(PMC *v) {
- visit_todo_list_freeze(INTERP, v, SELF);
+ int is_new = 0;
+
+ if (!PMC_IS_NULL(v)) {
+ Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP, PARROT_IMAGEIOSIZE(SELF)->seen);
+ HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, v);
+ is_new = !b;
+ }
+
+ SELF.push_integer(0);
+
+ if (is_new) {
+ Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP, PARROT_IMAGEIOSIZE(SELF)->seen);
+
+ parrot_hash_put(INTERP, hash, v, v);
+
+ /* workaround to keep ParrotInterpreter PBC hack working */
+ if (v->vtable->base_type == enum_class_ParrotInterpreter)
+ PObj_flag_CLEAR(private1, SELF);
+
+ VTABLE_push_integer(INTERP, SELF, v->vtable->base_type);
+ VTABLE_push_pmc(INTERP, PARROT_IMAGEIOSIZE(SELF)->todo, v);
+ }
}
VTABLE void set_pmc(PMC *p)
@@ -308,7 +271,7 @@
PARROT_IMAGEIOSIZE(SELF)->size += header_length;
}
- visit_todo_list_freeze(INTERP, p, SELF);
+ STATICSELF.push_pmc(p);
Parrot_visit_loop_visit(INTERP, SELF);
}
Modified: branches/unshared_buffers/src/pmc/imageiostrings.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/imageiostrings.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/imageiostrings.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -50,6 +50,8 @@
parrot_new_intval_hash(INTERP));
PARROT_IMAGEIOSTRINGS(SELF)->list = Parrot_pmc_new(INTERP, enum_class_ResizableStringArray);
+
+ PObj_custom_mark_SET(SELF);
}
/*
Modified: branches/unshared_buffers/src/pmc/integer.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/integer.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/integer.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -141,9 +141,8 @@
*/
VTABLE PMC *clone() {
- PMC * const clone = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
- VTABLE_set_integer_native(INTERP, clone, SELF.get_integer());
- return clone;
+ return Parrot_pmc_new_init_int(INTERP, SELF->vtable->base_type,
+ SELF.get_integer());
}
/*
@@ -321,18 +320,13 @@
const INTVAL b = VTABLE_get_integer(INTERP, value);
const INTVAL c = a + b;
- if ((c^a) >= 0 || (c^b) >= 0) {
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- /* need this for e.g. Undef PMC */
- VTABLE_set_integer_native(INTERP, dest, c);
- return dest;
- }
+ if ((c^a) >= 0 || (c^b) >= 0)
+ return Parrot_pmc_new_init_int(INTERP,
+ VTABLE_type(INTERP, SELF), c);
else {
- PMC * temp;
+ PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, a);
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a);
return VTABLE_add(INTERP, temp, value, dest);
}
}
@@ -340,10 +334,9 @@
MULTI PMC *add(Complex value, PMC *dest) {
const INTVAL a = SELF.get_integer();
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, value));
-
- VTABLE_set_number_native(INTERP, dest,
- a + VTABLE_get_number_keyed_int(INTERP, value, 0));
+ dest = Parrot_pmc_new_init_int(INTERP,
+ VTABLE_type(INTERP, value),
+ a + VTABLE_get_number_keyed_int(INTERP, value, 0));
VTABLE_set_number_keyed_int(INTERP, dest, 1,
VTABLE_get_number_keyed_int(INTERP, value, 1));
@@ -354,17 +347,16 @@
MULTI PMC *add(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, SELF.get_integer());
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt,
+ SELF.get_integer());
return VTABLE_add(INTERP, temp, value, dest);
}
MULTI PMC *add(DEFAULT value, PMC *dest) {
dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, value));
-
VTABLE_set_number_native(INTERP, dest,
- SELF.get_integer() + VTABLE_get_number(INTERP, value));
+ SELF.get_integer() + VTABLE_get_number(interp, value));
return dest;
}
@@ -373,17 +365,13 @@
const INTVAL a = VTABLE_get_integer(INTERP, SELF);
const INTVAL c = a + b;
- if ((c^a) >= 0 || (c^b) >= 0) {
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, c);
- return dest;
- }
+ if ((c^a) >= 0 || (c^b) >= 0)
+ return Parrot_pmc_new_init_int(INTERP,
+ VTABLE_type(INTERP, SELF), c);
else {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, a);
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a);
return VTABLE_add_int(INTERP, temp, b, dest);
}
}
@@ -463,17 +451,13 @@
const INTVAL b = VTABLE_get_integer(INTERP, value);
const INTVAL c = a - b;
- if ((c^a) >= 0 || (c^~b) >= 0) {
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, c);
- return dest;
- }
+ if ((c^a) >= 0 || (c^~b) >= 0)
+ return Parrot_pmc_new_init_int(INTERP,
+ VTABLE_type(INTERP, SELF), c);
else {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, a);
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a);
return VTABLE_subtract(INTERP, temp, value, dest);
}
}
@@ -495,8 +479,8 @@
MULTI PMC *subtract(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, SELF.get_integer());
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt,
+ SELF.get_integer());
return VTABLE_subtract(INTERP, temp, value, dest);
}
@@ -524,17 +508,13 @@
const INTVAL a = SELF.get_integer();
const INTVAL c = a - b;
- if ((c^a) >= 0 || (c^~b) >= 0) {
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, c);
- return dest;
- }
+ if ((c^a) >= 0 || (c^~b) >= 0)
+ return Parrot_pmc_new_init_int(INTERP,
+ VTABLE_type(INTERP, SELF), c);
else {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, a);
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a);
return VTABLE_subtract_int(INTERP, temp, b, dest);
}
}
@@ -624,17 +604,13 @@
const INTVAL c = a * b;
const double cf = (double)a * (double)b;
- if ((double) c == cf) {
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, c);
- return dest;
- }
+ if ((double) c == cf)
+ return Parrot_pmc_new_init_int(INTERP,
+ VTABLE_type(INTERP, SELF), c);
else {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, a);
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a);
return VTABLE_multiply(INTERP, temp, value, dest);
}
}
@@ -657,10 +633,8 @@
MULTI PMC *multiply(DEFAULT value, PMC *dest) {
const FLOATVAL valf = VTABLE_get_number(INTERP, value);
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_number_native(INTERP, dest, SELF.get_number() * valf);
- return dest;
+ return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF),
+ SELF.get_number() * valf);
}
@@ -669,17 +643,13 @@
const INTVAL c = a * b;
const double cf = (double)a * (double)b;
- if ((double) c == cf) {
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, c);
- return dest;
- }
+ if ((double) c == cf)
+ return Parrot_pmc_new_init_int(INTERP,
+ VTABLE_type(INTERP, SELF), c);
else {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, a);
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a);
return VTABLE_multiply_int(INTERP, temp, b, dest);
}
}
@@ -765,8 +735,8 @@
MULTI PMC *divide(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, SELF.get_integer());
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt,
+ SELF.get_integer());
return VTABLE_divide(INTERP, temp, value, dest);
}
@@ -777,9 +747,8 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- VTABLE_set_number_native(INTERP, dest, SELF.get_number() / d);
- return dest;
+ return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF),
+ SELF.get_number() / d);
}
@@ -826,8 +795,8 @@
MULTI PMC *floor_divide(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, SELF.get_integer());
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt,
+ SELF.get_integer());
return VTABLE_floor_divide(INTERP, temp, value, dest);
}
@@ -840,11 +809,9 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
f = floor(SELF.get_number() / d);
- VTABLE_set_integer_native(INTERP, dest, (INTVAL)f);
- return dest;
+ return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF),
+ (INTVAL)f);
}
@@ -855,12 +822,9 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
f = floor(SELF.get_number() / value);
- VTABLE_set_integer_native(INTERP, dest, (INTVAL)f);
-
- return dest;
+ return Parrot_pmc_new_init_int(INTERP,
+ VTABLE_type(INTERP, SELF), (INTVAL)f);
}
VTABLE PMC *floor_divide_float(FLOATVAL value, PMC *dest) {
@@ -870,12 +834,9 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"float division by zero");
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
f = floor(SELF.get_number() / value);
- VTABLE_set_integer_native(INTERP, dest, (INTVAL)f);
-
- return dest;
+ return Parrot_pmc_new_init_int(INTERP,
+ VTABLE_type(INTERP, SELF), (INTVAL)f);
}
MULTI void i_floor_divide(BigInt value) {
@@ -948,8 +909,8 @@
MULTI PMC *modulus(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, SELF.get_integer());
+ temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt,
+ SELF.get_integer());
return VTABLE_modulus(INTERP, temp, value, dest);
}
@@ -961,11 +922,8 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"int modulus by zero");
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest,
+ return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF),
intval_mod(SELF.get_integer(), d));
- return dest;
}
@@ -974,11 +932,8 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"int modulus by zero");
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest,
+ return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF),
intval_mod(SELF.get_integer(), value));
- return dest;
}
@@ -987,11 +942,8 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
"int modulus by zero");
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest,
+ return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF),
intval_mod(SELF.get_integer(), (INTVAL)value));
- return dest;
}
@@ -1045,15 +997,16 @@
VTABLE INTVAL is_equal(PMC *value) {
INTVAL retval;
- PMC *temp;
switch (value->vtable->base_type) {
case enum_class_BigInt:
- temp = Parrot_pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, temp, SELF.get_integer());
+ {
+ PMC const *temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt,
+ SELF.get_integer());
Parrot_mmd_multi_dispatch_from_c_args(INTERP,
"is_equal", "PP->I", temp, value, &retval);
return retval;
+ }
break;
default:
return (VTABLE_get_integer(INTERP, SELF)
@@ -1074,15 +1027,20 @@
*/
MULTI INTVAL cmp(String value) {
- const FLOATVAL fdiff = SELF.get_number() - VTABLE_get_number(INTERP, value);
+ INTVAL iv;
+ GET_ATTR_iv(INTERP, SELF, iv);
+ {
+ const FLOATVAL fdiff =
+ (FLOATVAL)iv - VTABLE_get_number(INTERP, value);
- if (FLOAT_IS_ZERO(fdiff)) {
- const INTVAL idiff =
- SELF.get_integer() - VTABLE_get_integer(INTERP, value);
- return idiff > 0 ? 1 : idiff < 0 ? -1 : 0;
- }
+ if (FLOAT_IS_ZERO(fdiff)) {
+ const INTVAL idiff =
+ SELF.get_integer() - VTABLE_get_integer(INTERP, value);
+ return idiff > 0 ? 1 : idiff < 0 ? -1 : 0;
+ }
- return fdiff > 0 ? 1 : -1;
+ return fdiff > 0 ? 1 : -1;
+ }
}
@@ -1210,11 +1168,7 @@
const INTVAL a = abs(SELF.get_integer());
/* TT # 1245 overflow for -maxint */
- dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, a);
- return dest;
-
+ return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF), a);
}
Modified: branches/unshared_buffers/src/pmc/lexinfo.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/lexinfo.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/lexinfo.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -56,8 +56,7 @@
}
VTABLE void init() {
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
- "Cannot create a LexInfo PMC without an initializer");
+ SELF.init_pmc(PMCNULL);
}
VTABLE void init_pmc(PMC *sub) {
@@ -99,25 +98,10 @@
if (Parrot_str_equal(INTERP, what, CONST_STRING(INTERP, "symbols"))) {
PMC * const result = Parrot_pmc_new(INTERP, enum_class_ResizableStringArray);
const Hash *hash = (Hash *)SELF.get_pointer();
- const UINTVAL entries = hash->entries;
- UINTVAL found = 0;
- INTVAL i;
-
- for (i = hash->mask; i >= 0; --i) {
- HashBucket *bucket = hash->bucket_indices[i];
- while (bucket) {
- if (++found > entries)
- Parrot_ex_throw_from_c_args(INTERP, NULL, 1,
- "Detected corruption at LexInfo hash %p entries %d",
- hash, (int)entries);
-
- PARROT_ASSERT(bucket->key);
- VTABLE_push_string(INTERP, result, (STRING *)bucket->key);
-
- bucket = bucket->next;
- }
- }
+ parrot_hash_iterate(hash,
+ PARROT_ASSERT(_bucket->key);
+ VTABLE_push_string(INTERP, result, (STRING *)_bucket->key););
return result;
}
@@ -125,41 +109,6 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
"Unknown introspection value '%S'", what);
}
-
-/*
-
-=item C<void visit(PMC *info)>
-
-=item C<void freeze(PMC *info)>
-
-=item C<void thaw(PMC *info)>
-
-Freeze/thaw interface used during freeze/thaw of the Sub PMC.
-The implementation of the Hash PMC is called.
-
-=cut
-
-*/
-
-
- VTABLE void thaw(PMC *info) {
- const INTVAL elems = VTABLE_shift_integer(INTERP, info);
- const INTVAL k_type = VTABLE_shift_integer(INTERP, info);
- const INTVAL v_type = VTABLE_shift_integer(INTERP, info);
- Hash *hash;
-
- UNUSED(k_type);
- UNUSED(v_type);
-
- PARROT_ASSERT(v_type == enum_hash_int);
- /* TODO make a better interface for hash creation
- * TODO create hash with needed types in the first place
- */
-
- SELF.init_pmc(NULL);
- hash = (Hash *)SELF.get_pointer();
- hash->entries = elems;
- }
}
Modified: branches/unshared_buffers/src/pmc/namespace.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/namespace.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/namespace.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -98,6 +98,15 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
+/*
+
+=item C<static void add_to_class(PARROT_INTERP, Parrot_NameSpace_attributes
+*nsinfo, PMC *classobj, STRING *key, PMC *value)>
+
+=cut
+
+*/
+
static void
add_to_class(PARROT_INTERP, ARGMOD(Parrot_NameSpace_attributes *nsinfo),
ARGMOD_NULLOK(PMC *classobj), ARGIN(STRING *key), ARGIN(PMC *value))
@@ -120,6 +129,15 @@
}
}
+/*
+
+=item C<static int ns_insert_sub_keyed_str(PARROT_INTERP, PMC *self, STRING
+*key, PMC *value)>
+
+=cut
+
+*/
+
PARROT_WARN_UNUSED_RESULT
static int
ns_insert_sub_keyed_str(PARROT_INTERP, ARGIN(PMC *self), ARGIN(STRING *key),
@@ -181,6 +199,15 @@
return stored;
}
+/*
+
+=item C<static int maybe_add_sub_to_namespace(PARROT_INTERP, PMC *SELF, STRING
+*key, PMC *value)>
+
+=cut
+
+*/
+
PARROT_WARN_UNUSED_RESULT
static int
maybe_add_sub_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key),
@@ -198,6 +225,15 @@
return 0;
}
+/*
+
+=item C<static void add_nci_to_namespace(PARROT_INTERP, PMC *SELF, STRING *key,
+PMC *value)>
+
+=cut
+
+*/
+
static void
add_nci_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key),
ARGIN_NULLOK(PMC *value))
@@ -216,6 +252,15 @@
}
}
+/*
+
+=item C<static void add_multi_to_namespace(PARROT_INTERP, PMC *SELF, STRING
+*key, PMC *value)>
+
+=cut
+
+*/
+
static void
add_multi_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key),
ARGIN_NULLOK(PMC *value))
Modified: branches/unshared_buffers/src/pmc/nci.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/nci.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/nci.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -49,6 +49,14 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
+/*
+
+=item C<static void pcc_params(PARROT_INTERP, STRING *sig, Parrot_NCI_attributes
+*nci_info, size_t sig_length)>
+
+=cut
+
+*/
static void
pcc_params(PARROT_INTERP, ARGIN(STRING *sig), ARGMOD(Parrot_NCI_attributes *nci_info),
@@ -143,7 +151,16 @@
mem_sys_free(sig_buf);
}
-/* actually build the NCI thunk */
+/*
+
+=item C<static nci_thunk_t build_func(PARROT_INTERP, Parrot_NCI_attributes
+*nci_info)>
+
+Actually build the NCI thunk.
+
+=cut
+
+*/
PARROT_IGNORABLE_RESULT
static nci_thunk_t
Modified: branches/unshared_buffers/src/pmc/null.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/null.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/null.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -11,10 +11,6 @@
This simply creates a way of catching C<NULL> register accesses without
really slowing down the bytecode execution.
-=head2 Methods
-
-=over 4
-
=cut
*/
@@ -32,30 +28,14 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
-/*
-
-=item C<static void null_pmc_access(PARROT_INTERP, int index)>
-
-
-
-=cut
-
-*/
-
-PARROT_DOES_NOT_RETURN
-static void
-null_pmc_access(PARROT_INTERP, int index)
-{
- ASSERT_ARGS(null_pmc_access)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_NULL_REG_ACCESS,
- "Null PMC access in %s()",
- Parrot_get_vtable_name(interp, index));
-}
-
pmclass Null singleton {
/*
+=head2 Vtable functions
+
+=over 4
+
=item C<void init()>
Overrides the default to do nothing.
@@ -102,9 +82,9 @@
=item C<PMC *find_method(STRING *method_name)>
-=cut
+Gives a more informative message than the automaticaly generated version.
-Gives a more informative message than the automaticaaly generated version.
+=cut
*/
@@ -120,6 +100,32 @@
=back
+=head2 Auxiliar functions
+
+=over 4
+
+=item C<static void null_pmc_access(PARROT_INTERP, int index)>
+
+Throws the Null PMC access exception.
+
+=cut
+
+*/
+
+PARROT_DOES_NOT_RETURN
+static void
+null_pmc_access(PARROT_INTERP, int index)
+{
+ ASSERT_ARGS(null_pmc_access)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_NULL_REG_ACCESS,
+ "Null PMC access in %s()",
+ Parrot_get_vtable_name(interp, index));
+}
+
+/*
+
+=back
+
=cut
*/
Modified: branches/unshared_buffers/src/pmc/object.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/object.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/object.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -85,6 +85,14 @@
/* This finds the index of an attribute in an object's attribute store and
* returns it. Returns -1 if the attribute does not exist. */
+/*
+
+=item C<static INTVAL get_attrib_index(PARROT_INTERP, PMC *self, STRING *name)>
+
+=cut
+
+*/
+
PARROT_WARN_UNUSED_RESULT
static INTVAL
get_attrib_index(PARROT_INTERP, ARGIN(PMC *self), ARGIN(STRING *name))
@@ -138,10 +146,18 @@
return -1;
}
+/*
+
+=item C<static INTVAL get_attrib_index_keyed(PARROT_INTERP, PMC *self, PMC *key,
+STRING *name)>
+
+This variation bypasses the cache and finds the index of a particular
+parent's attribute in an object's attribute store and returns it.
+Returns C<-1> if the attribute does not exist.
-/* This variation bypasses the cache and finds the index of a particular
- * parent's attribute in an object's attribute store and returns it. Returns -1
- * if the attribute does not exist. */
+=cut
+
+*/
PARROT_WARN_UNUSED_RESULT
static INTVAL
@@ -176,6 +192,13 @@
return -1;
}
+/*
+
+=item C<static PMC * find_cached(PARROT_INTERP, PMC *_class, STRING *name)>
+
+=cut
+
+*/
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
@@ -192,6 +215,14 @@
return VTABLE_get_pmc_keyed_str(interp, cache, name);
}
+/*
+
+=item C<static void cache_method(PARROT_INTERP, PMC *_class, STRING *name, PMC
+*method)>
+
+=cut
+
+*/
static void
cache_method(PARROT_INTERP, ARGIN(PMC *_class), ARGIN(STRING *name),
Modified: branches/unshared_buffers/src/pmc/parrotinterpreter.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/parrotinterpreter.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/parrotinterpreter.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -848,6 +848,23 @@
RETURN(PMC *handle);
}
+/*
+
+=item METHOD getpid()
+
+Returns the pid of the current process, 0 in platforms that doesn't
+support it.
+
+This method is experimental. See TT #1564.
+
+=cut
+
+*/
+
+ METHOD getpid() {
+ INTVAL id = Parrot_getpid();
+ RETURN(INTVAL id);
+ }
}
Modified: branches/unshared_buffers/src/pmc/parrotlibrary.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/parrotlibrary.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/parrotlibrary.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -49,9 +49,7 @@
*/
- VTABLE void init() {
- PObj_custom_destroy_SET(SELF);
- }
+ VTABLE void init() {}
/*
@@ -82,8 +80,14 @@
VTABLE PMC *clone() {
PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
- PMC_oplib_init(dest) = PMC_oplib_init(SELF);
- PMC_dlhandle(dest) = PMC_dlhandle(SELF);
+
+ if (PMC_oplib_init(SELF))
+ PMC_oplib_init(dest) = PMC_oplib_init(SELF);
+
+ if (PMC_dlhandle(SELF)) {
+ PMC_dlhandle(dest) = PMC_dlhandle(SELF);
+ PObj_custom_destroy_SET(dest);
+ }
if (PMC_metadata(SELF))
PMC_metadata(dest) = VTABLE_clone(INTERP, PMC_metadata(SELF));
@@ -126,7 +130,7 @@
=item C<void *get_pointer()>
-Get the pointer to the shared library handle.
+Gets the pointer to the shared library handle.
=cut
@@ -140,7 +144,7 @@
=item C<void set_pointer(void *handle)>
-Set the pointer to the shared library handle.
+Sets the pointer to the shared library handle.
=cut
@@ -148,6 +152,7 @@
VTABLE void set_pointer(void *handle) {
PMC_dlhandle(SELF) = handle;
+ PObj_custom_destroy_SET(SELF);
}
}
@@ -155,16 +160,6 @@
=back
-=head1 SEE ALSO
-
- Date: Mon, 29 Sep 2003 14:37:11 -0400 (EDT)
- Subject: Library loading and initialization sequence
- From: Dan Sugalski
-
-=head1 HISTORY
-
-Initial version by leo 2003.10.12.
-
=cut
*/
Modified: branches/unshared_buffers/src/pmc/stringbuilder.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/stringbuilder.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/stringbuilder.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -66,7 +66,7 @@
buffer->encoding = Parrot_default_encoding_ptr;
buffer->charset = Parrot_default_charset_ptr;
/* We need all string flags here because we use this buffer in substr_str */
- buffer->flags = PObj_is_string_FLAG | PObj_live_FLAG;
+ buffer->flags = PObj_is_string_FLAG;
Buffer_bufstart(buffer) = mem_gc_allocate_n_typed(INTERP,
initial_size, char);
Buffer_buflen(buffer) = initial_size;
@@ -145,7 +145,7 @@
STRING * const new_buffer = Parrot_unicode_charset_ptr->to_charset(interp, buffer);
mem_gc_free(INTERP, Buffer_bufstart(buffer));
STRUCT_COPY(buffer, new_buffer);
- buffer->flags = PObj_is_string_FLAG | PObj_live_FLAG;
+ buffer->flags = PObj_is_string_FLAG;
Buffer_bufstart(buffer) = mem_gc_allocate_n_typed(INTERP,
Buffer_buflen(new_buffer), char);
@@ -351,16 +351,13 @@
}
else if (Parrot_str_equal(INTERP, key, comma)) {
INTVAL num_args = VTABLE_elements(INTERP, args);
- INTVAL pos_args = 1;
+ INTVAL pos_args;
- VTABLE_push_string(INTERP, stringbuilder,
- VTABLE_get_string_keyed_int(INTERP, args, 0));
-
- while (pos_args < num_args) {
- VTABLE_push_string(INTERP, stringbuilder, comma_space);
+ for (pos_args = 0; pos_args < num_args; ++pos_args) {
+ if (pos_args > 0)
+ VTABLE_push_string(INTERP, stringbuilder, comma_space);
VTABLE_push_string(INTERP, stringbuilder,
VTABLE_get_string_keyed_int(INTERP, args, pos_args));
- pos_args++;
}
}
else if (Parrot_str_equal(INTERP, key, percent)) {
Modified: branches/unshared_buffers/src/pmc/stringiterator.pmc
==============================================================================
--- branches/unshared_buffers/src/pmc/stringiterator.pmc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/pmc/stringiterator.pmc Sun Aug 29 17:09:11 2010 (r48719)
@@ -27,11 +27,9 @@
/* HEADERIZER END: static */
pmclass StringIterator auto_attrs extends Iterator {
- ATTR PMC *string; /* String to iterate over */
- ATTR INTVAL pos; /* Current position of iterator for forward iterator */
- /* Previous position of iterator for reverse iterator */
- ATTR INTVAL length; /* Length of C<string> */
- ATTR INTVAL reverse; /* Direction of iteration. 1 - for reverse iteration */
+ ATTR STRING *str_val; /* String to iterate over */
+ ATTR String_iter iter; /* String iterator */
+ ATTR INTVAL reverse; /* Direction of iteration. 1 - for reverse iteration */
/*
@@ -43,10 +41,13 @@
*/
VTABLE void init_pmc(PMC *string) {
- SET_ATTR_string(INTERP, SELF, string);
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
+ STRING * const str_val = VTABLE_get_string(INTERP, string);
+
+ SET_ATTR_str_val(INTERP, SELF, str_val);
+ STRING_ITER_INIT(INTERP, iter);
+ SET_ATTR_reverse(INTERP, SELF, ITERATE_FROM_START);
- /* by default, iterate from start */
- SELF.set_integer_native(ITERATE_FROM_START);
PObj_custom_mark_SET(SELF);
}
@@ -61,9 +62,10 @@
*/
VTABLE void mark() {
- PMC *string;
- GET_ATTR_string(INTERP, SELF, string);
- Parrot_gc_mark_PMC_alive(INTERP, string);
+ STRING *str_val;
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ Parrot_gc_mark_STRING_alive(INTERP, str_val);
}
/*
@@ -74,15 +76,21 @@
*/
VTABLE PMC* clone() {
- Parrot_StringIterator_attributes * const attrs =
- PARROT_STRINGITERATOR(SELF);
- PMC * const clone =
- Parrot_pmc_new_init(INTERP, enum_class_StringIterator, attrs->string);
- Parrot_StringIterator_attributes * const clone_attrs =
- PARROT_STRINGITERATOR(clone);
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
+ PMC *clone, *str_pmc;
+ String_iter *clone_iter;
+ STRING *str_val;
+ INTVAL reverse;
+
+ str_pmc = Parrot_pmc_new(INTERP, enum_class_String);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ VTABLE_set_string_native(INTERP, str_pmc, str_val);
+ clone = Parrot_pmc_new_init(INTERP, enum_class_StringIterator, str_pmc);
+ clone_iter = &PARROT_STRINGITERATOR(clone)->iter;
+ *clone_iter = *iter;
+ GET_ATTR_reverse(INTERP, SELF, reverse);
+ SET_ATTR_reverse(INTERP, clone, reverse);
- clone_attrs->pos = attrs->pos;
- clone_attrs->reverse = attrs->reverse;
return clone;
}
@@ -111,12 +119,17 @@
*/
VTABLE INTVAL elements() {
- Parrot_StringIterator_attributes * const attrs =
- PARROT_STRINGITERATOR(SELF);
- if (attrs->reverse)
- return attrs->pos;
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
+ STRING *str_val;
+ INTVAL reverse;
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ GET_ATTR_reverse(INTERP, SELF, reverse);
+
+ if (reverse)
+ return iter->charpos;
else
- return attrs->length - attrs->pos;
+ return str_val->strlen - iter->charpos;
}
VTABLE INTVAL get_integer() {
@@ -137,20 +150,19 @@
*/
VTABLE void set_integer_native(INTVAL value) {
- Parrot_StringIterator_attributes * const attrs =
- PARROT_STRINGITERATOR(SELF);
- switch (value) {
- case ITERATE_FROM_START:
- attrs->reverse = 0;
- attrs->pos = 0;
- attrs->length = VTABLE_elements(INTERP, attrs->string);
- break;
- case ITERATE_FROM_END:
- attrs->reverse = 1;
- attrs->pos = attrs->length
- = VTABLE_elements(INTERP, attrs->string);
- break;
- default:
+ STRING *str_val;
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ if (value == ITERATE_FROM_START) {
+ SET_ATTR_reverse(INTERP, SELF, 0);
+ STRING_ITER_SET_POSITION(INTERP, str_val, iter, 0);
+ }
+ else if (value == ITERATE_FROM_END) {
+ SET_ATTR_reverse(INTERP, SELF, 1);
+ STRING_ITER_SET_POSITION(INTERP, str_val, iter, str_val->strlen);
+ }
+ else {
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
"Wrong direction for StringIterator");
}
@@ -167,9 +179,13 @@
*/
VTABLE PMC *get_pmc() {
- PMC *string;
- GET_ATTR_string(INTERP, SELF, string);
- return string ? string : PMCNULL;
+ PMC * const string = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(
+ interp, enum_class_String));
+ STRING *str_val;
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ VTABLE_set_string_native(interp, string, str_val);
+ return string;
}
/*
@@ -182,17 +198,20 @@
*/
VTABLE PMC *shift_pmc() {
- Parrot_StringIterator_attributes * const attrs =
- PARROT_STRINGITERATOR(SELF);
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
PMC *ret;
+ STRING *str_val, *substr;
+ const String_iter old_iter = *iter;
- if (attrs->pos >= attrs->length)
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ if (iter->charpos >= str_val->strlen)
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
"StopIteration");
ret = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp, enum_class_String));
- VTABLE_set_string_native(INTERP, ret,
- VTABLE_get_string_keyed_int(INTERP, attrs->string, attrs->pos++));
+ STRING_ITER_SKIP(INTERP, str_val, iter, 1);
+ substr = Parrot_str_iter_substr(INTERP, str_val, &old_iter, iter);
+ VTABLE_set_string_native(INTERP, ret, substr);
return ret;
}
@@ -206,14 +225,17 @@
*/
VTABLE STRING *shift_string() {
- Parrot_StringIterator_attributes * const attrs =
- PARROT_STRINGITERATOR(SELF);
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
+ STRING *str_val;
+ const String_iter old_iter = *iter;
- if (attrs->pos >= attrs->length)
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ if (iter->charpos >= str_val->strlen)
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
"StopIteration");
- return VTABLE_get_string_keyed_int(INTERP, attrs->string, attrs->pos++);
+ STRING_ITER_SKIP(INTERP, str_val, iter, 1);
+ return Parrot_str_iter_substr(INTERP, str_val, &old_iter, iter);
}
/*
@@ -226,14 +248,15 @@
*/
VTABLE INTVAL shift_integer() {
- Parrot_StringIterator_attributes * const attrs =
- PARROT_STRINGITERATOR(SELF);
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
+ STRING *str_val;
- if (attrs->pos >= attrs->length)
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ if (iter->charpos >= str_val->strlen)
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
"StopIteration");
- return VTABLE_get_integer_keyed_int(INTERP, attrs->string, attrs->pos++);
+ return STRING_ITER_GET_AND_ADVANCE(INTERP, str_val, iter);
}
/*
@@ -246,17 +269,21 @@
*/
VTABLE PMC *pop_pmc() {
- Parrot_StringIterator_attributes * const attrs =
- PARROT_STRINGITERATOR(SELF);
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
+ STRING *str_val, *substr;
PMC *ret;
+ const String_iter old_iter = *iter;
- if (!STATICSELF.get_bool())
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ /* Shouldn't this test be (iter->charpos <= 0) ? */
+ if (SELF.elements() <= 0)
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
"StopIteration");
ret = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp, enum_class_String));
- VTABLE_set_string_native(INTERP, ret,
- VTABLE_get_string_keyed_int(INTERP, attrs->string, --attrs->pos));
+ STRING_ITER_SKIP(INTERP, str_val, iter, -1);
+ substr = Parrot_str_iter_substr(INTERP, str_val, iter, &old_iter);
+ VTABLE_set_string_native(INTERP, ret, substr);
return ret;
}
@@ -270,14 +297,18 @@
*/
VTABLE STRING *pop_string() {
- Parrot_StringIterator_attributes * const attrs =
- PARROT_STRINGITERATOR(SELF);
-
- if (!STATICSELF.get_bool())
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
+ STRING *str_val;
+ const String_iter old_iter = *iter;
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ /* Shouldn't this test be (iter->charpos <= 0) ? */
+ if (SELF.elements() <= 0)
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
"StopIteration");
- return VTABLE_get_string_keyed_int(INTERP, attrs->string, --attrs->pos);
+ STRING_ITER_SKIP(INTERP, str_val, iter, -1);
+ return Parrot_str_iter_substr(INTERP, str_val, iter, &old_iter);
}
/*
@@ -290,14 +321,17 @@
*/
VTABLE INTVAL pop_integer() {
- Parrot_StringIterator_attributes * const attrs =
- PARROT_STRINGITERATOR(SELF);
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
+ STRING *str_val;
- if (!STATICSELF.get_bool())
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ /* Shouldn't this test be (iter->charpos <= 0) ? */
+ if (SELF.elements() <= 0)
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
"StopIteration");
- return VTABLE_get_integer_keyed_int(INTERP, attrs->string, --attrs->pos);
+ STRING_ITER_SKIP(INTERP, str_val, iter, -1);
+ return STRING_ITER_GET(INTERP, str_val, iter, 0);
}
/*
@@ -311,8 +345,16 @@
*/
VTABLE INTVAL get_integer_keyed_int(INTVAL idx) {
- return VTABLE_get_integer_keyed_int(INTERP, STATICSELF.get_pmc(),
- PARROT_STRINGITERATOR(SELF)->pos + idx);
+ String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter;
+ STRING *str_val;
+ const UINTVAL offset = iter->charpos + idx;
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ if (offset >= str_val->strlen)
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
+ "StopIteration");
+
+ return STRING_ITER_GET(INTERP, str_val, iter, idx);
}
/*
@@ -326,8 +368,22 @@
*/
VTABLE STRING *get_string_keyed_int(INTVAL idx) {
- return VTABLE_get_string_keyed_int(INTERP, STATICSELF.get_pmc(),
- PARROT_STRINGITERATOR(SELF)->pos + idx);
+ String_iter iter = PARROT_STRINGITERATOR(SELF)->iter;
+ String_iter next_iter;
+ STRING *str_val;
+ const UINTVAL offset = iter.charpos + idx;
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ if (offset >= str_val->strlen)
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
+ "StopIteration");
+
+ if (idx != 0)
+ STRING_ITER_SKIP(INTERP, str_val, &iter, idx);
+ next_iter = iter;
+ STRING_ITER_SKIP(INTERP, str_val, &next_iter, 1);
+
+ return Parrot_str_iter_substr(INTERP, str_val, &iter, &next_iter);
}
}
Modified: branches/unshared_buffers/src/runcore/cores.c
==============================================================================
--- branches/unshared_buffers/src/runcore/cores.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/runcore/cores.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -675,7 +675,7 @@
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"attempt to access code outside of current code segment");
- Parrot_gc_mark_and_sweep(interp, GC_TRACE_FULL);
+ Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
Parrot_pcc_set_pc(interp, CURRENT_CONTEXT(interp), pc);
DO_OP(pc, interp);
@@ -717,7 +717,7 @@
"attempt to access code outside of current code segment");
if (interp->pdb->state & PDB_GCDEBUG)
- Parrot_gc_mark_and_sweep(interp, 0);
+ Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
if (interp->pdb->state & PDB_TRACING) {
trace_op(interp,
Modified: branches/unshared_buffers/src/runcore/main.c
==============================================================================
--- branches/unshared_buffers/src/runcore/main.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/runcore/main.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -322,6 +322,11 @@
interp->cores = NULL;
interp->run_core = NULL;
+ if (interp->all_op_libs)
+ mem_gc_free(interp, interp->all_op_libs);
+
+ interp->all_op_libs = NULL;
+
/* dynop libs */
if (interp->n_libs <= 0)
return;
Modified: branches/unshared_buffers/src/runcore/trace.c
==============================================================================
--- branches/unshared_buffers/src/runcore/trace.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/runcore/trace.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -127,15 +127,15 @@
return;
}
- if (!pmc->vtable || (UINTVAL)pmc->vtable == 0xdeadbeef) {
- Parrot_io_eprintf(debugger, "<!!no vtable!!>");
- return;
- }
-
if (PObj_on_free_list_TEST(pmc))
Parrot_io_eprintf(debugger,
"**************** PMC is on free list *****\n");
+ if (!pmc->vtable) {
+ Parrot_io_eprintf(debugger, "<!!no vtable!!>");
+ return;
+ }
+
if (pmc->vtable->pmc_class == pmc) {
STRING * const name = trace_class_name(interp, pmc);
Parrot_io_eprintf(debugger, "Class=%Ss:PMC(%#p)", name, pmc);
Modified: branches/unshared_buffers/src/scheduler.c
==============================================================================
--- branches/unshared_buffers/src/scheduler.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/scheduler.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -111,8 +111,7 @@
=item C<void Parrot_cx_handle_tasks(PARROT_INTERP, PMC *scheduler)>
Handle the pending tasks in the scheduler's task list. Returns when there are
-no more pending tasks. Returns 0 to terminate the scheduler runloop, or 1 to
-continue the runloop.
+no more pending tasks.
=cut
@@ -123,6 +122,12 @@
Parrot_cx_handle_tasks(PARROT_INTERP, ARGMOD(PMC *scheduler))
{
ASSERT_ARGS(Parrot_cx_handle_tasks)
+
+ /* avoid recursive calls */
+ if (SCHEDULER_in_handler_TEST(scheduler))
+ return;
+
+ SCHEDULER_in_handler_SET(scheduler);
SCHEDULER_wake_requested_CLEAR(scheduler);
Parrot_cx_refresh_task_list(interp, scheduler);
@@ -159,6 +164,8 @@
Parrot_cx_refresh_task_list(interp, scheduler);
} /* end of pending tasks */
+
+ SCHEDULER_in_handler_CLEAR(scheduler);
}
/*
Modified: branches/unshared_buffers/src/string/api.c
==============================================================================
--- branches/unshared_buffers/src/string/api.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/string/api.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -353,8 +353,7 @@
/* Clear COW flag. We own buffer */
PObj_get_FLAGS(result) = PObj_is_string_FLAG
- | PObj_is_COWable_FLAG
- | PObj_live_FLAG;
+ | PObj_is_COWable_FLAG;
/* Allocate new chunk of memory */
Parrot_gc_allocate_string_storage(interp, result, alloc_size);
@@ -1085,6 +1084,111 @@
return CHARSET_GET_CODEPOINTS(interp, src, true_offset, true_length);
}
+/*
+
+=item C<STRING * Parrot_str_iter_substr(PARROT_INTERP, const STRING *str, const
+String_iter *l, const String_iter *r)>
+
+Returns the substring between iterators C<l> and C<r>.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+STRING *
+Parrot_str_iter_substr(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGIN(const String_iter *l), ARGIN_NULLOK(const String_iter *r))
+{
+ ASSERT_ARGS(Parrot_str_iter_substr)
+ UINTVAL flags = PObj_get_FLAGS(str) & ~PObj_constant_FLAG;
+ STRING * dest = Parrot_gc_new_string_header(interp, flags);
+ UINTVAL length, size;
+
+ if (r == NULL) {
+ size = str->bufused - l->bytepos;
+ length = str->strlen - l->charpos;
+ }
+ else {
+ size = r->bytepos - l->bytepos;
+ length = r->charpos - l->charpos;
+ }
+
+ Parrot_gc_allocate_string_storage(interp, dest, size);
+ mem_sys_memcopy(Buffer_bufstart(dest), (char *)Buffer_bufstart(str) + l->bytepos, size);
+
+ dest->encoding = str->encoding;
+ dest->charset = str->charset;
+ dest->strlen = length;
+ dest->bufused = size;
+ dest->hashval = 0;
+
+ return dest;
+}
+
+/*
+
+=item C<INTVAL Parrot_str_iter_index(PARROT_INTERP, const STRING *src,
+String_iter *start, String_iter *end, const STRING *search)>
+
+Find the next occurence of STRING C<search> in STRING C<src> starting at
+String_iter C<start>. If C<search> is found C<start> is modified to mark the
+beginning of C<search> and String_iter C<end> is set to the character after
+C<search> in C<src>. Returns the character position where C<search> was found
+or -1 if it wasn't found.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+INTVAL
+Parrot_str_iter_index(PARROT_INTERP,
+ ARGIN(const STRING *src),
+ ARGMOD(String_iter *start), ARGOUT(String_iter *end),
+ ARGIN(const STRING *search))
+{
+ ASSERT_ARGS(Parrot_str_iter_index)
+ String_iter search_iter, search_start, next_start;
+ const UINTVAL len = search->strlen;
+ UINTVAL c0;
+
+ if (len == 0) {
+ *end = *start;
+ return start->charpos;
+ }
+
+ STRING_ITER_INIT(interp, &search_iter);
+ c0 = STRING_ITER_GET_AND_ADVANCE(interp, search, &search_iter);
+ search_start = search_iter;
+ next_start = *start;
+
+ while (start->charpos + len <= src->strlen) {
+ UINTVAL c1 = STRING_ITER_GET_AND_ADVANCE(interp, src, &next_start);
+
+ if (c1 == c0) {
+ UINTVAL c2;
+ *end = next_start;
+
+ do {
+ if (search_iter.charpos >= len)
+ return start->charpos;
+ c1 = STRING_ITER_GET_AND_ADVANCE(interp, src, end);
+ c2 = STRING_ITER_GET_AND_ADVANCE(interp, search, &search_iter);
+ } while (c1 == c2);
+
+ search_iter = search_start;
+ }
+
+ *start = next_start;
+ }
+
+ return -1;
+}
+
/*
@@ -1126,7 +1230,7 @@
UINTVAL true_offset = (UINTVAL)offset;
UINTVAL true_length = (UINTVAL)length;
- UINTVAL start_byte, end_byte;
+ UINTVAL start_byte, end_byte, start_char, end_char;
INTVAL buf_size;
if (STRING_IS_NULL(src)) {
@@ -1162,13 +1266,15 @@
}
/* get byte position of the part that will be replaced */
- ENCODING_ITER_INIT(interp, src, &iter);
+ STRING_ITER_INIT(interp, &iter);
- iter.set_position(interp, &iter, true_offset);
+ STRING_ITER_SET_POSITION(interp, src, &iter, true_offset);
start_byte = iter.bytepos;
+ start_char = iter.charpos;
- iter.set_position(interp, &iter, true_offset + true_length);
+ STRING_ITER_SKIP(interp, src, &iter, true_length);
end_byte = iter.bytepos;
+ end_char = iter.charpos;
/* not possible.... */
if (end_byte < start_byte)
@@ -1185,8 +1291,7 @@
/* Clear COW flag. We own buffer */
PObj_get_FLAGS(dest) = PObj_is_string_FLAG
- | PObj_is_COWable_FLAG
- | PObj_live_FLAG;
+ | PObj_is_COWable_FLAG;
/* size removed bytes added bytes */
buf_size = src->bufused - (end_byte - start_byte) + rep->bufused;
@@ -1207,7 +1312,7 @@
(char *)Buffer_bufstart(src) + end_byte,
src->bufused - end_byte);
- dest->strlen = CHARSET_CODEPOINTS(interp, dest);
+ dest->strlen = src->strlen - (end_char - start_char) + rep->strlen;
dest->hashval = 0;
return dest;
@@ -1815,13 +1920,12 @@
int sign = 1;
UINTVAL i = 0;
String_iter iter;
- UINTVAL offs;
number_parse_state state = parse_start;
- ENCODING_ITER_INIT(interp, s, &iter);
+ STRING_ITER_INIT(interp, &iter);
- for (offs = 0; (state != parse_end) && (offs < s->strlen); ++offs) {
- const UINTVAL c = iter.get_and_advance(interp, &iter);
+ while (state != parse_end && iter.charpos < s->strlen) {
+ const UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, s, &iter);
/* Check for overflow */
if (c > 255)
break;
@@ -1911,17 +2015,16 @@
int d_length = 0;
int check_nan = 0; /* Check for NaN and Inf after main loop */
String_iter iter;
- UINTVAL offs;
number_parse_state state = parse_start;
if (STRING_IS_NULL(s))
return 0.0;
- ENCODING_ITER_INIT(interp, s, &iter);
+ STRING_ITER_INIT(interp, &iter);
- /* Handcrafter FSM to read float value */
- for (offs = 0; (state != parse_end) && (offs < s->strlen); ++offs) {
- const UINTVAL c = iter.get_and_advance(interp, &iter);
+ /* Handcrafted FSM to read float value */
+ while (state != parse_end && iter.charpos < s->strlen) {
+ const UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, s, &iter);
/* Check for overflow */
if (c > 255)
break;
@@ -2286,13 +2389,15 @@
size_t hashval = interp->hash_seed;
- if ((!STRING_IS_NULL(s)) && s->strlen) {
- if (s->encoding->hash)
- hashval = ENCODING_HASH(interp, s, hashval);
- else if (s->charset->compute_hash)
- hashval = CHARSET_COMPUTE_HASH(interp, s, hashval);
- else {
- exit_fatal(1, "String subsystem not properly initialized");
+ if (!STRING_IS_NULL(s)) {
+ if (s->strlen) {
+ if (s->encoding->hash)
+ hashval = ENCODING_HASH(interp, s, hashval);
+ else if (s->charset->compute_hash)
+ hashval = CHARSET_COMPUTE_HASH(interp, s, hashval);
+ else {
+ exit_fatal(1, "String subsystem not properly initialized");
+ }
}
s->hashval = hashval;
@@ -2369,11 +2474,11 @@
Parrot_fixed_8_encoding_ptr, Parrot_ascii_charset_ptr, 0);
/* more work TODO */
- ENCODING_ITER_INIT(interp, src, &iter);
+ STRING_ITER_INIT(interp, &iter);
dp = (unsigned char *)Buffer_bufstart(result);
for (i = 0; len > 0; --len) {
- UINTVAL c = iter.get_and_advance(interp, &iter);
+ UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter);
if (c < 0x7f) {
/* process ASCII chars */
if (i >= charlen - 2) {
@@ -2513,17 +2618,17 @@
Parrot_gc_allocate_string_storage(interp, result, reserved);
result->bufused = reserved;
- src->encoding->iter_init(interp, src, &itersrc);
- encoding->iter_init(interp, result, &iterdest);
+ STRING_ITER_INIT(interp, &itersrc);
+ STRING_ITER_INIT(interp, &iterdest);
while (itersrc.bytepos < srclen) {
- INTVAL c = itersrc.get_and_advance(interp, &itersrc);
+ INTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc);
INTVAL next;
do {
pending = 0;
next = c;
if (c == '\\') {
- c = itersrc.get_and_advance(interp, &itersrc);
+ c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc);
switch (c) {
/* Common one char sequences */
case 'a': next = '\a'; break;
@@ -2533,10 +2638,10 @@
case 'v': next = '\v'; break;
case 'f': next = '\f'; break;
case 'r': next = '\r'; break;
- case 'e': next = '\e'; break;
+ case 'e': next = '\x1B'; break;
/* Escape character */
case 'c':
- c = itersrc.get_and_advance(interp, &itersrc);
+ c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc);
/* This assumes ascii-alike encoding */
if (c < 'A' || c > 'Z')
throw_illegal_escape(interp);
@@ -2544,11 +2649,11 @@
break;
case 'x':
digcount = 0;
- c = itersrc.get_and_advance(interp, &itersrc);
+ c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc);
if (c == '{') {
/* \x{h..h} 1..8 hex digits */
while (itersrc.bytepos < srclen) {
- c = itersrc.get_and_advance(interp, &itersrc);
+ c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc);
if (c == '}')
break;
if (!isxdigit(c))
@@ -2572,7 +2677,7 @@
pending = 0;
break;
}
- c = itersrc.get_and_advance(interp, &itersrc);
+ c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc);
}
}
if (digcount == 0)
@@ -2583,7 +2688,7 @@
case 'u':
/* \uhhhh 4 hex digits */
for (digcount = 0; digcount < 4; ++digcount) {
- c = itersrc.get_and_advance(interp, &itersrc);
+ c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc);
if (!isxdigit(c))
throw_illegal_escape(interp);
digbuf[digcount] = c;
@@ -2594,7 +2699,7 @@
case 'U':
/* \Uhhhhhhhh 8 hex digits */
for (digcount = 0; digcount < 8; ++digcount) {
- c = itersrc.get_and_advance(interp, &itersrc);
+ c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc);
if (!isxdigit(c))
throw_illegal_escape(interp);
digbuf[digcount] = c;
@@ -2607,7 +2712,7 @@
/* \ooo 1..3 oct digits */
digbuf[0] = c;
for (digcount = 1; digcount < 3; ++digcount) {
- c = itersrc.get_and_advance(interp, &itersrc);
+ c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc);
if (c < '0' || c > '7')
break;
digbuf[digcount] = c;
@@ -2621,7 +2726,7 @@
next = c;
}
}
- iterdest.set_and_advance(interp, &iterdest, next);
+ STRING_ITER_SET_AND_ADVANCE(interp, result, &iterdest, next);
} while (pending);
}
result->bufused = iterdest.bytepos;
@@ -2702,7 +2807,7 @@
encoding = result->encoding;
}
- encoding->iter_init(interp, result, &iter);
+ STRING_ITER_INIT(interp, &iter);
for (offs = d = 0; offs < clength; ++offs) {
r = (Parrot_UInt4)((unsigned char *)Buffer_bufstart(result))[offs];
@@ -2725,7 +2830,7 @@
}
PARROT_ASSERT(d < offs);
- iter.set_and_advance(interp, &iter, r);
+ encoding->iter_set_and_advance(interp, result, &iter, r);
++d;
}
@@ -3223,8 +3328,10 @@
ARGIN_NULLOK(const STRING *delim), ARGIN_NULLOK(STRING *str))
{
ASSERT_ARGS(Parrot_str_split)
- PMC *res;
- INTVAL slen, dlen, ps, pe;
+ PMC *res;
+ STRING *tstr;
+ UINTVAL slen, dlen;
+ String_iter iter;
if (STRING_IS_NULL(delim) || STRING_IS_NULL(str))
return PMCNULL;
@@ -3236,44 +3343,38 @@
if (!slen)
return res;
+ STRING_ITER_INIT(interp, &iter);
dlen = Parrot_str_length(interp, delim);
if (dlen == 0) {
- int i;
VTABLE_set_integer_native(interp, res, slen);
- for (i = 0; i < slen; ++i) {
- STRING * const p = Parrot_str_substr(interp, str, i, 1);
- VTABLE_set_string_keyed_int(interp, res, i, p);
- }
-
- return res;
- }
+ do {
+ const String_iter old_iter = iter;
- pe = Parrot_str_find_index(interp, str, delim, 0);
+ STRING_ITER_SKIP(interp, str, &iter, 1);
+ tstr = Parrot_str_iter_substr(interp, str, &old_iter, &iter);
+ VTABLE_set_string_keyed_int(interp, res, old_iter.charpos, tstr);
+ } while (iter.charpos < slen);
- if (pe < 0) {
- VTABLE_push_string(interp, res, str);
return res;
}
- ps = 0;
-
- while (ps <= slen) {
- const int pl = pe - ps;
- STRING * const tstr = Parrot_str_substr(interp, str, ps, pl);
-
- VTABLE_push_string(interp, res, tstr);
- ps = pe + Parrot_str_length(interp, delim);
+ do {
+ String_iter start, end;
+ INTVAL pos;
- if (ps > slen)
+ start = iter;
+ if (Parrot_str_iter_index(interp, str, &start, &end, delim) < 0)
break;
- pe = Parrot_str_find_index(interp, str, delim, ps);
+ tstr = Parrot_str_iter_substr(interp, str, &iter, &start);
+ VTABLE_push_string(interp, res, tstr);
+ iter = end;
+ } while (iter.charpos < slen);
- if (pe < 0)
- pe = slen;
- }
+ tstr = Parrot_str_iter_substr(interp, str, &iter, NULL);
+ VTABLE_push_string(interp, res, tstr);
return res;
}
Modified: branches/unshared_buffers/src/string/charset/ascii.c
==============================================================================
--- branches/unshared_buffers/src/string/charset/ascii.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/string/charset/ascii.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -201,7 +201,6 @@
{
ASSERT_ARGS(to_ascii)
String_iter iter;
- UINTVAL offs;
unsigned char *p;
const UINTVAL len = src->strlen;
@@ -209,9 +208,9 @@
STRING * const dest = Parrot_str_clone(interp, src);
p = (unsigned char *)Buffer_bufstart(dest);
- ENCODING_ITER_INIT(interp, src, &iter);
- for (offs = 0; offs < len; ++offs) {
- const UINTVAL c = iter.get_and_advance(interp, &iter);
+ STRING_ITER_INIT(interp, &iter);
+ while (iter.charpos < len) {
+ const UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter);
if (c >= 128)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LOSSY_CONVERSION,
"can't convert unicode string to ascii");
@@ -493,11 +492,10 @@
return ret_val < 0 ? -1 : 1;
}
else {
- UINTVAL offs;
- ENCODING_ITER_INIT(interp, rhs, &iter);
- for (offs = 0; offs < min_len; ++offs) {
- const UINTVAL cl = ENCODING_GET_BYTE(interp, lhs, offs);
- const UINTVAL cr = iter.get_and_advance(interp, &iter);
+ STRING_ITER_INIT(interp, &iter);
+ while (iter.charpos < min_len) {
+ const UINTVAL cl = ENCODING_GET_BYTE(interp, lhs, iter.charpos);
+ const UINTVAL cr = STRING_ITER_GET_AND_ADVANCE(interp, rhs, &iter);
if (cl != cr)
return cl < cr ? -1 : 1;
}
@@ -531,35 +529,12 @@
UINTVAL offs)
{
ASSERT_ARGS(mixed_cs_index)
+ String_iter start, end;
- if (search->strlen <= src->strlen) {
- String_iter src_iter, search_iter;
- const UINTVAL maxpos = src->strlen - search->strlen + 1;
- const UINTVAL cfirst = Parrot_str_indexed(interp, search, 0);
-
- ENCODING_ITER_INIT(interp, src, &src_iter);
- src_iter.set_position(interp, &src_iter, offs);
- ENCODING_ITER_INIT(interp, search, &search_iter);
-
- while (src_iter.charpos < maxpos) {
- if (cfirst == src_iter.get_and_advance(interp, &src_iter)) {
- const INTVAL next_pos = src_iter.charpos;
- const INTVAL next_byte = src_iter.bytepos;
- UINTVAL len;
- search_iter.set_position(interp, &search_iter, 1);
- for (len = search->strlen - 1; len; --len) {
- if ((src_iter.get_and_advance(interp, &src_iter)) !=
- (search_iter.get_and_advance(interp, &search_iter)))
- break;
- }
- if (len == 0)
- return next_pos - 1;
- src_iter.charpos = next_pos;
- src_iter.bytepos = next_byte;
- }
- }
- }
- return -1;
+ STRING_ITER_INIT(interp, &start);
+ STRING_ITER_SET_POSITION(interp, src, &start, offs);
+
+ return Parrot_str_iter_index(interp, src, &start, &end, search);
}
/*
@@ -638,13 +613,12 @@
validate(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(validate)
- INTVAL offset;
String_iter iter;
const INTVAL length = Parrot_str_length(interp, src);
- ENCODING_ITER_INIT(interp, src, &iter);
- for (offset = 0; offset < length; ++offset) {
- const UINTVAL codepoint = iter.get_and_advance(interp, &iter);
+ STRING_ITER_INIT(interp, &iter);
+ while (iter.charpos < length) {
+ const UINTVAL codepoint = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter);
if (codepoint >= 0x80)
return 0;
}
Modified: branches/unshared_buffers/src/string/charset/iso-8859-1.c
==============================================================================
--- branches/unshared_buffers/src/string/charset/iso-8859-1.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/string/charset/iso-8859-1.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -178,24 +178,24 @@
to_iso_8859_1(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(to_iso_8859_1)
- UINTVAL offs, src_len;
+ UINTVAL src_len;
String_iter iter;
/* iso-8859-1 is never bigger then source */
STRING * dest = Parrot_str_clone(interp, src);
- ENCODING_ITER_INIT(interp, src, &iter);
+ STRING_ITER_INIT(interp, &iter);
src_len = src->strlen;
dest->bufused = src_len;
- dest->charset = Parrot_iso_8859_1_charset_ptr;
- dest->encoding = Parrot_fixed_8_encoding_ptr;
- for (offs = 0; offs < src_len; ++offs) {
- const UINTVAL c = iter.get_and_advance(interp, &iter);
+ while (iter.charpos < src_len) {
+ const UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter);
if (c >= 0x100)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LOSSY_CONVERSION,
"lossy conversion to iso-8559-1");
- ENCODING_SET_BYTE(interp, dest, offs, c);
+ Parrot_fixed_8_encoding_ptr->set_byte(interp, dest, iter.charpos - 1, c);
}
+ dest->charset = Parrot_iso_8859_1_charset_ptr;
+ dest->encoding = Parrot_fixed_8_encoding_ptr;
return dest;
}
@@ -221,18 +221,18 @@
dest->charset = Parrot_unicode_charset_ptr;
dest->encoding = CHARSET_GET_PREFERRED_ENCODING(interp, dest);
Parrot_gc_reallocate_string_storage(interp, dest, src->strlen);
- ENCODING_ITER_INIT(interp, dest, &iter);
- for (offs = 0; offs < src->strlen; ++offs) {
- const UINTVAL c = ENCODING_GET_BYTE(interp, src, offs);
+ STRING_ITER_INIT(interp, &iter);
+ while (iter.charpos < src->strlen) {
+ const UINTVAL c = ENCODING_GET_BYTE(interp, src, iter.charpos);
if (iter.bytepos >= Buffer_buflen(dest) - 4) {
- UINTVAL need = (UINTVAL)((src->strlen - offs) * 1.5);
+ UINTVAL need = (UINTVAL)((src->strlen - iter.charpos) * 1.5);
if (need < 16)
need = 16;
Parrot_gc_reallocate_string_storage(interp, dest,
Buffer_buflen(dest) + need);
}
- iter.set_and_advance(interp, &iter, c);
+ STRING_ITER_SET_AND_ADVANCE(interp, dest, &iter, c);
}
dest->bufused = iter.bytepos;
dest->strlen = iter.charpos;
Modified: branches/unshared_buffers/src/string/charset/unicode.c
==============================================================================
--- branches/unshared_buffers/src/string/charset/unicode.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/string/charset/unicode.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -651,20 +651,20 @@
{
ASSERT_ARGS(compare)
String_iter l_iter, r_iter;
- UINTVAL offs, cl, cr, min_len, l_len, r_len;
+ UINTVAL min_len, l_len, r_len;
/* TODO make optimized equal - strings are equal length then already */
- ENCODING_ITER_INIT(interp, lhs, &l_iter);
- ENCODING_ITER_INIT(interp, rhs, &r_iter);
+ STRING_ITER_INIT(interp, &l_iter);
+ STRING_ITER_INIT(interp, &r_iter);
l_len = lhs->strlen;
r_len = rhs->strlen;
min_len = l_len > r_len ? r_len : l_len;
- for (offs = 0; offs < min_len; ++offs) {
- cl = l_iter.get_and_advance(interp, &l_iter);
- cr = r_iter.get_and_advance(interp, &r_iter);
+ while (l_iter.charpos < min_len) {
+ const UINTVAL cl = STRING_ITER_GET_AND_ADVANCE(interp, lhs, &l_iter);
+ const UINTVAL cr = STRING_ITER_GET_AND_ADVANCE(interp, rhs, &r_iter);
if (cl != cr)
return cl < cr ? -1 : 1;
@@ -716,13 +716,12 @@
validate(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(validate)
- INTVAL offset;
String_iter iter;
const INTVAL length = Parrot_str_length(interp, src);
- ENCODING_ITER_INIT(interp, src, &iter);
- for (offset = 0; offset < length; ++offset) {
- const UINTVAL codepoint = iter.get_and_advance(interp, &iter);
+ STRING_ITER_INIT(interp, &iter);
+ while (iter.charpos < length) {
+ const UINTVAL codepoint = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter);
/* Check for Unicode non-characters */
if (codepoint >= 0xfdd0
&& (codepoint <= 0xfdef || (codepoint & 0xfffe) == 0xfffe)
@@ -877,24 +876,22 @@
ASSERT_ARGS(find_cclass)
String_iter iter;
UINTVAL codepoint;
- UINTVAL pos = offset;
UINTVAL end = offset + count;
- ENCODING_ITER_INIT(interp, src, &iter);
-
- iter.set_position(interp, &iter, pos);
+ STRING_ITER_INIT(interp, &iter);
+ STRING_ITER_SET_POSITION(interp, src, &iter, offset);
end = src->strlen < end ? src->strlen : end;
- for (; pos < end; ++pos) {
- codepoint = iter.get_and_advance(interp, &iter);
+ while (iter.charpos < end) {
+ codepoint = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter);
if (codepoint >= 256) {
if (u_iscclass(interp, codepoint, flags))
- return pos;
+ return iter.charpos - 1;
}
else {
if (Parrot_iso_8859_1_typetable[codepoint] & flags)
- return pos;
+ return iter.charpos - 1;
}
}
@@ -920,37 +917,36 @@
ASSERT_ARGS(find_not_cclass)
String_iter iter;
UINTVAL codepoint;
- UINTVAL pos = offset;
UINTVAL end = offset + count;
int bit;
- if (pos > src->strlen) {
+ if (offset > src->strlen) {
/* XXX: Throw in this case? */
return offset + count;
}
- ENCODING_ITER_INIT(interp, src, &iter);
+ STRING_ITER_INIT(interp, &iter);
- if (pos)
- iter.set_position(interp, &iter, pos);
+ if (offset)
+ STRING_ITER_SET_POSITION(interp, src, &iter, offset);
end = src->strlen < end ? src->strlen : end;
if (flags == enum_cclass_any)
return end;
- for (; pos < end; ++pos) {
- codepoint = iter.get_and_advance(interp, &iter);
+ while (iter.charpos < end) {
+ codepoint = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter);
if (codepoint >= 256) {
for (bit = enum_cclass_uppercase;
bit <= enum_cclass_word ; bit <<= 1) {
if ((bit & flags) && !u_iscclass(interp, codepoint, bit))
- return pos;
+ return iter.charpos - 1;
}
}
else {
if (!(Parrot_iso_8859_1_typetable[codepoint] & flags))
- return pos;
+ return iter.charpos - 1;
}
}
@@ -978,8 +974,8 @@
dest->strlen = 1;
- ENCODING_ITER_INIT(interp, dest, &iter);
- iter.set_and_advance(interp, &iter, codepoint);
+ STRING_ITER_INIT(interp, &iter);
+ STRING_ITER_SET_AND_ADVANCE(interp, dest, &iter, codepoint);
dest->bufused = iter.bytepos;
return dest;
@@ -1002,13 +998,12 @@
{
ASSERT_ARGS(compute_hash)
String_iter iter;
- UINTVAL offs;
size_t hashval = seed;
- ENCODING_ITER_INIT(interp, src, &iter);
+ STRING_ITER_INIT(interp, &iter);
- for (offs = 0; offs < src->strlen; ++offs) {
- const UINTVAL c = iter.get_and_advance(interp, &iter);
+ while (iter.charpos < src->strlen) {
+ const UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter);
hashval += hashval << 5;
hashval += c;
}
Modified: branches/unshared_buffers/src/string/encoding/fixed_8.c
==============================================================================
--- branches/unshared_buffers/src/string/encoding/fixed_8.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/string/encoding/fixed_8.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -41,22 +41,46 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
-static UINTVAL fixed8_get_next(PARROT_INTERP, ARGMOD(String_iter *iter))
+static UINTVAL fixed8_iter_get(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGIN(const String_iter *iter),
+ INTVAL offset)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+static UINTVAL fixed8_iter_get_and_advance(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGMOD(String_iter *iter))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*iter);
-static void fixed8_set_next(PARROT_INTERP,
+static void fixed8_iter_set_and_advance(PARROT_INTERP,
+ ARGMOD(STRING *str),
ARGMOD(String_iter *iter),
UINTVAL c)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*str)
FUNC_MODIFIES(*iter);
-static void fixed8_set_position(SHIM_INTERP,
+static void fixed8_iter_set_position(SHIM_INTERP,
+ ARGIN(const STRING *str),
ARGMOD(String_iter *iter),
UINTVAL pos)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*iter);
+
+static void fixed8_iter_skip(SHIM_INTERP,
+ ARGIN(const STRING *str),
+ ARGMOD(String_iter *iter),
+ INTVAL skip)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*iter);
static size_t fixed_8_hash(SHIM_INTERP,
@@ -95,13 +119,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void iter_init(SHIM_INTERP,
- ARGIN(const STRING *src),
- ARGOUT(String_iter *iter))
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*iter);
-
static void set_byte(PARROT_INTERP,
ARGIN(const STRING *src),
UINTVAL offset,
@@ -122,14 +139,24 @@
#define ASSERT_ARGS_find_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(s) \
, PARROT_ASSERT_ARG(typetable))
-#define ASSERT_ARGS_fixed8_get_next __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_fixed8_iter_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(iter))
+#define ASSERT_ARGS_fixed8_iter_get_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
, PARROT_ASSERT_ARG(iter))
-#define ASSERT_ARGS_fixed8_set_next __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_fixed8_iter_set_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(iter))
+#define ASSERT_ARGS_fixed8_iter_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(iter))
+#define ASSERT_ARGS_fixed8_iter_skip __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(str) \
, PARROT_ASSERT_ARG(iter))
-#define ASSERT_ARGS_fixed8_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(iter))
#define ASSERT_ARGS_fixed_8_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_get_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -143,9 +170,6 @@
#define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(src) \
- , PARROT_ASSERT_ARG(iter))
#define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
@@ -380,85 +404,105 @@
/*
-=item C<static UINTVAL fixed8_get_next(PARROT_INTERP, String_iter *iter)>
+=item C<static UINTVAL fixed8_iter_get(PARROT_INTERP, const STRING *str, const
+String_iter *iter, INTVAL offset)>
-Moves the string iterator C<i> to the next codepoint.
+Get the character at C<iter> plus C<offset>.
=cut
*/
static UINTVAL
-fixed8_get_next(PARROT_INTERP, ARGMOD(String_iter *iter))
+fixed8_iter_get(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGIN(const String_iter *iter), INTVAL offset)
{
- ASSERT_ARGS(fixed8_get_next)
- const UINTVAL c = get_byte(interp, iter->str, iter->charpos++);
- ++iter->bytepos;
- return c;
+ ASSERT_ARGS(fixed8_iter_get)
+ return get_byte(interp, str, iter->charpos + offset);
}
/*
-=item C<static void fixed8_set_next(PARROT_INTERP, String_iter *iter, UINTVAL
-c)>
+=item C<static void fixed8_iter_skip(PARROT_INTERP, const STRING *str,
+String_iter *iter, INTVAL skip)>
-With the string iterator C<i>, appends the codepoint C<c> and advances to the
-next position in the string.
+Moves the string iterator C<i> by C<skip> characters.
=cut
*/
static void
-fixed8_set_next(PARROT_INTERP, ARGMOD(String_iter *iter), UINTVAL c)
+fixed8_iter_skip(SHIM_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *iter), INTVAL skip)
{
- ASSERT_ARGS(fixed8_set_next)
- set_byte(interp, iter->str, iter->charpos++, c);
- ++iter->bytepos;
+ ASSERT_ARGS(fixed8_iter_skip)
+ iter->bytepos += skip;
+ iter->charpos += skip;
+ PARROT_ASSERT(iter->bytepos <= Buffer_buflen(str));
}
/*
-=item C<static void fixed8_set_position(PARROT_INTERP, String_iter *iter,
-UINTVAL pos)>
+=item C<static UINTVAL fixed8_iter_get_and_advance(PARROT_INTERP, const STRING
+*str, String_iter *iter)>
-Moves the string iterator C<i> to the position C<n> in the string.
+Moves the string iterator C<i> to the next codepoint.
=cut
*/
-static void
-fixed8_set_position(SHIM_INTERP, ARGMOD(String_iter *iter), UINTVAL pos)
+static UINTVAL
+fixed8_iter_get_and_advance(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *iter))
{
- ASSERT_ARGS(fixed8_set_position)
- iter->bytepos = iter->charpos = pos;
- PARROT_ASSERT(pos <= Buffer_buflen(iter->str));
+ ASSERT_ARGS(fixed8_iter_get_and_advance)
+ const UINTVAL c = get_byte(interp, str, iter->charpos++);
+ iter->bytepos++;
+ return c;
}
-
/*
-=item C<static void iter_init(PARROT_INTERP, const STRING *src, String_iter
-*iter)>
+=item C<static void fixed8_iter_set_and_advance(PARROT_INTERP, STRING *str,
+String_iter *iter, UINTVAL c)>
-Initializes for string C<src> the string iterator C<iter>.
+With the string iterator C<i>, appends the codepoint C<c> and advances to the
+next position in the string.
=cut
*/
static void
-iter_init(SHIM_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter))
+fixed8_iter_set_and_advance(PARROT_INTERP,
+ ARGMOD(STRING *str), ARGMOD(String_iter *iter), UINTVAL c)
{
- ASSERT_ARGS(iter_init)
- iter->str = src;
- iter->bytepos = iter->charpos = 0;
- iter->get_and_advance = fixed8_get_next;
- iter->set_and_advance = fixed8_set_next;
- iter->set_position = fixed8_set_position;
+ ASSERT_ARGS(fixed8_iter_set_and_advance)
+ set_byte(interp, str, iter->charpos++, c);
+ iter->bytepos++;
}
+/*
+
+=item C<static void fixed8_iter_set_position(PARROT_INTERP, const STRING *str,
+String_iter *iter, UINTVAL pos)>
+
+Moves the string iterator C<i> to the position C<n> in the string.
+
+=cut
+
+*/
+
+static void
+fixed8_iter_set_position(SHIM_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *iter), UINTVAL pos)
+{
+ ASSERT_ARGS(fixed8_iter_set_position)
+ iter->bytepos = iter->charpos = pos;
+ PARROT_ASSERT(pos <= Buffer_buflen(str));
+}
/*
@@ -514,9 +558,13 @@
get_bytes,
codepoints,
bytes,
- iter_init,
find_cclass,
- fixed_8_hash
+ fixed_8_hash,
+ fixed8_iter_get,
+ fixed8_iter_skip,
+ fixed8_iter_get_and_advance,
+ fixed8_iter_set_and_advance,
+ fixed8_iter_set_position
};
STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding);
Modified: branches/unshared_buffers/src/string/encoding/ucs2.c
==============================================================================
--- branches/unshared_buffers/src/string/encoding/ucs2.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/string/encoding/ucs2.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -84,14 +84,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void iter_init(PARROT_INTERP,
- ARGIN(const STRING *src),
- ARGOUT(String_iter *iter))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*iter);
-
static void set_byte(PARROT_INTERP,
SHIM(const STRING *src),
SHIM(UINTVAL offset),
@@ -104,26 +96,54 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static UINTVAL ucs2_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i))
+static size_t ucs2_hash(PARROT_INTERP,
+ ARGIN(const STRING *s),
+ size_t hashval)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static UINTVAL ucs2_iter_get(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGIN(const String_iter *i),
+ INTVAL offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+static UINTVAL ucs2_iter_get_and_advance(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGMOD(String_iter *i))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*i);
-static void ucs2_encode_and_advance(SHIM_INTERP,
+static void ucs2_iter_set_and_advance(PARROT_INTERP,
+ ARGMOD(STRING *str),
ARGMOD(String_iter *i),
UINTVAL c)
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*str)
FUNC_MODIFIES(*i);
-static size_t ucs2_hash(PARROT_INTERP,
- ARGIN(const STRING *s),
- size_t hashval)
+static void ucs2_iter_set_position(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGMOD(String_iter *i),
+ UINTVAL n)
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*i);
-static void ucs2_set_position(SHIM_INTERP,
+static void ucs2_iter_skip(PARROT_INTERP,
+ ARGIN(const STRING *str),
ARGMOD(String_iter *i),
- UINTVAL n)
+ INTVAL skip)
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*i);
#define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -145,24 +165,34 @@
#define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(s))
-#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src) \
- , PARROT_ASSERT_ARG(iter))
#define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_ucs2_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(i))
-#define ASSERT_ARGS_ucs2_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(i))
#define ASSERT_ARGS_ucs2_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(s))
-#define ASSERT_ARGS_ucs2_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_ucs2_iter_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_ucs2_iter_get_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_ucs2_iter_set_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_ucs2_iter_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_ucs2_iter_skip __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -406,7 +436,55 @@
/*
-=item C<static UINTVAL ucs2_decode_and_advance(PARROT_INTERP, String_iter *i)>
+=item C<static UINTVAL ucs2_iter_get(PARROT_INTERP, const STRING *str, const
+String_iter *i, INTVAL offset)>
+
+Get the character at C<i> + C<offset>.
+
+=cut
+
+*/
+
+static UINTVAL
+ucs2_iter_get(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGIN(const String_iter *i), INTVAL offset)
+{
+ ASSERT_ARGS(ucs2_iter_get)
+ return get_codepoint(interp, str, i->charpos + offset);
+}
+
+/*
+
+=item C<static void ucs2_iter_skip(PARROT_INTERP, const STRING *str, String_iter
+*i, INTVAL skip)>
+
+Moves the string iterator C<i> by C<skip> characters.
+
+=cut
+
+*/
+
+static void
+ucs2_iter_skip(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i), INTVAL skip)
+{
+ ASSERT_ARGS(ucs2_iter_skip)
+ UNUSED(str);
+
+#if PARROT_HAS_ICU
+ i->charpos += skip;
+ i->bytepos += skip * sizeof (UChar);
+#else
+ UNUSED(i);
+ UNUSED(skip);
+ no_ICU_lib(interp);
+#endif
+}
+
+/*
+
+=item C<static UINTVAL ucs2_iter_get_and_advance(PARROT_INTERP, const STRING
+*str, String_iter *i)>
Moves the string iterator C<i> to the next UCS-2 codepoint.
@@ -415,35 +493,34 @@
*/
static UINTVAL
-ucs2_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i))
+ucs2_iter_get_and_advance(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i))
{
- ASSERT_ARGS(ucs2_decode_and_advance)
+ ASSERT_ARGS(ucs2_iter_get_and_advance)
#if PARROT_HAS_ICU
- const UChar * const s = (const UChar*) Buffer_bufstart(i->str);
+ UChar * const s = (UChar*) Buffer_bufstart(str);
size_t pos = i->bytepos / sizeof (UChar);
/* TODO either make sure that we don't go past end or use SAFE
* iter versions
*/
const UChar c = s[pos++];
- ++i->charpos;
+ i->charpos++;
i->bytepos = pos * sizeof (UChar);
return c;
#else
- /* This function must never be called if compiled without ICU.
- * See TT #557
- */
- PARROT_ASSERT(0);
+ UNUSED(str);
UNUSED(i);
+ no_ICU_lib(interp);
return (UINTVAL)0; /* Stop the static analyzers from panicing */
#endif
}
/*
-=item C<static void ucs2_encode_and_advance(PARROT_INTERP, String_iter *i,
-UINTVAL c)>
+=item C<static void ucs2_iter_set_and_advance(PARROT_INTERP, STRING *str,
+String_iter *i, UINTVAL c)>
With the string iterator C<i>, appends the codepoint C<c> and advances to the
next position in the string.
@@ -453,64 +530,29 @@
*/
static void
-ucs2_encode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL c)
+ucs2_iter_set_and_advance(PARROT_INTERP,
+ ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c)
{
- ASSERT_ARGS(ucs2_encode_and_advance)
+ ASSERT_ARGS(ucs2_iter_set_and_advance)
#if PARROT_HAS_ICU
- UChar *s = (UChar*) Buffer_bufstart(i->str);
+ UChar * const s = (UChar*) Buffer_bufstart(str);
UINTVAL pos = i->bytepos / sizeof (UChar);
- s[pos++] = (UChar)c;
- ++i->charpos;
+ s[pos++] = (UChar)c;
+ i->charpos++;
i->bytepos = pos * sizeof (UChar);
#else
- /* This function must never be called if compiled without ICU.
- * See TT #557
- */
+ UNUSED(str);
UNUSED(i);
UNUSED(c);
- PARROT_ASSERT(0);
-#endif
-}
-
-/*
-
-=item C<static size_t ucs2_hash(PARROT_INTERP, const STRING *s, size_t hashval)>
-
-Returns the hashed value of the string, given a seed in hashval.
-
-=cut
-
-*/
-
-static size_t
-ucs2_hash(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval)
-{
- ASSERT_ARGS(ucs2_hash)
-#if PARROT_HAS_ICU
- const UChar *pos = (const UChar*) Buffer_bufstart(s);
- UINTVAL len = s->strlen;
- UNUSED(interp);
-
- while (len--) {
- hashval += hashval << 5;
- hashval += *(pos++);
- }
-
- return hashval;
-
-#else
- UNUSED(s);
- UNUSED(hashval);
-
no_ICU_lib(interp);
#endif
}
-
/*
-=item C<static void ucs2_set_position(PARROT_INTERP, String_iter *i, UINTVAL n)>
+=item C<static void ucs2_iter_set_position(PARROT_INTERP, const STRING *str,
+String_iter *i, UINTVAL n)>
Moves the string iterator C<i> to the position C<n> in the string.
@@ -519,50 +561,52 @@
*/
static void
-ucs2_set_position(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL n)
+ucs2_iter_set_position(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i), UINTVAL n)
{
- ASSERT_ARGS(ucs2_set_position)
+ ASSERT_ARGS(ucs2_iter_set_position)
+ UNUSED(str);
#if PARROT_HAS_ICU
i->charpos = n;
i->bytepos = n * sizeof (UChar);
#else
- /* This function must never be called if compiled without ICU.
- * See TT #557
- */
UNUSED(i);
UNUSED(n);
- PARROT_ASSERT(0);
+ no_ICU_lib(interp);
#endif
}
-
/*
-=item C<static void iter_init(PARROT_INTERP, const STRING *src, String_iter
-*iter)>
+=item C<static size_t ucs2_hash(PARROT_INTERP, const STRING *s, size_t hashval)>
-Initializes for string C<src> the string iterator C<iter>.
+Returns the hashed value of the string, given a seed in hashval.
=cut
*/
-static void
-iter_init(PARROT_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter))
+static size_t
+ucs2_hash(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval)
{
- ASSERT_ARGS(iter_init)
+ ASSERT_ARGS(ucs2_hash)
#if PARROT_HAS_ICU
+ const UChar *pos = (const UChar*) Buffer_bufstart(s);
+ UINTVAL len = s->strlen;
UNUSED(interp);
- iter->str = src;
- iter->bytepos = 0;
- iter->charpos = 0;
- iter->get_and_advance = ucs2_decode_and_advance;
- iter->set_and_advance = ucs2_encode_and_advance;
- iter->set_position = ucs2_set_position;
+
+ while (len--) {
+ hashval += hashval << 5;
+ hashval += *(pos++);
+ }
+
+ return hashval;
+
#else
- UNUSED(src);
- UNUSED(iter);
+ UNUSED(s);
+ UNUSED(hashval);
+
no_ICU_lib(interp);
#endif
}
@@ -594,9 +638,13 @@
get_bytes,
codepoints,
bytes,
- iter_init,
find_cclass,
- ucs2_hash
+ ucs2_hash,
+ ucs2_iter_get,
+ ucs2_iter_skip,
+ ucs2_iter_get_and_advance,
+ ucs2_iter_set_and_advance,
+ ucs2_iter_set_position
};
STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding);
Parrot_register_encoding(interp, "ucs2", return_encoding);
Modified: branches/unshared_buffers/src/string/encoding/ucs4.c
==============================================================================
--- branches/unshared_buffers/src/string/encoding/ucs4.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/string/encoding/ucs4.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -84,14 +84,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void iter_init(PARROT_INTERP,
- ARGIN(const STRING *src),
- ARGOUT(String_iter *iter))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*iter);
-
static void set_byte(PARROT_INTERP,
SHIM(const STRING *src),
SHIM(UINTVAL offset),
@@ -104,30 +96,54 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static UINTVAL ucs4_decode_and_advance(PARROT_INTERP,
+static size_t ucs4_hash(PARROT_INTERP,
+ ARGIN(const STRING *s),
+ size_t hashval)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static UINTVAL ucs4_iter_get(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGIN(const String_iter *i),
+ INTVAL offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+static UINTVAL ucs4_iter_get_and_advance(PARROT_INTERP,
+ ARGIN(const STRING *str),
ARGMOD(String_iter *i))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*i);
-static void ucs4_encode_and_advance(PARROT_INTERP,
+static void ucs4_iter_set_and_advance(PARROT_INTERP,
+ ARGMOD(STRING *str),
ARGMOD(String_iter *i),
UINTVAL c)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*str)
FUNC_MODIFIES(*i);
-static size_t ucs4_hash(PARROT_INTERP,
- ARGIN(const STRING *s),
- size_t hashval)
+static void ucs4_iter_set_position(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGMOD(String_iter *i),
+ UINTVAL n)
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*i);
-static void ucs4_set_position(PARROT_INTERP,
+static void ucs4_iter_skip(PARROT_INTERP,
+ ARGIN(const STRING *str),
ARGMOD(String_iter *i),
- UINTVAL n)
+ INTVAL skip)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*i);
#define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -149,26 +165,33 @@
#define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src) \
- , PARROT_ASSERT_ARG(iter))
#define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_ucs4_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_ucs4_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(s))
+#define ASSERT_ARGS_ucs4_iter_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
, PARROT_ASSERT_ARG(i))
-#define ASSERT_ARGS_ucs4_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_ucs4_iter_get_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
, PARROT_ASSERT_ARG(i))
-#define ASSERT_ARGS_ucs4_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_ucs4_iter_set_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s))
-#define ASSERT_ARGS_ucs4_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_ucs4_iter_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_ucs4_iter_skip __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
, PARROT_ASSERT_ARG(i))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -203,7 +226,7 @@
UINTVAL len = Parrot_str_length(interp, src);
STRING *res = Parrot_str_new_init(interp, NULL, len * sizeof (UChar32),
Parrot_ucs4_encoding_ptr, Parrot_unicode_charset_ptr, 0);
- UChar32 *buf = (UChar32 *) Buffer_bufstart(res);
+ UChar32 *buf = (UChar32*) Buffer_bufstart(res);
UINTVAL offs;
for (offs = 0; offs < len; offs++){
buf[offs] = src->encoding->get_codepoint(interp, src, offs);
@@ -432,90 +455,115 @@
/*
-=item C<static UINTVAL ucs4_decode_and_advance(PARROT_INTERP, String_iter *i)>
+=item C<static UINTVAL ucs4_iter_get(PARROT_INTERP, const STRING *str, const
+String_iter *i, INTVAL offset)>
-Moves the string iterator C<i> to the next UCS-4 codepoint.
+Get the character at C<i> + C<offset>.
=cut
*/
static UINTVAL
-ucs4_decode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i))
+ucs4_iter_get(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGIN(const String_iter *i), INTVAL offset)
+{
+ ASSERT_ARGS(ucs4_iter_get)
+ return get_codepoint(interp, str, i->charpos + offset);
+}
+
+/*
+
+=item C<static void ucs4_iter_skip(PARROT_INTERP, const STRING *str, String_iter
+*i, INTVAL skip)>
+
+Moves the string iterator C<i> by C<skip> characters.
+
+=cut
+
+*/
+
+static void
+ucs4_iter_skip(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i), INTVAL skip)
{
- ASSERT_ARGS(ucs4_decode_and_advance)
+ ASSERT_ARGS(ucs4_iter_skip)
+ UNUSED(str);
+
#if PARROT_HAS_ICU
- const UChar32 * const s = (const UChar32 *) Buffer_bufstart(i->str);
- size_t pos = i->bytepos / sizeof (UChar32);
- const UChar32 c = s[pos++];
- ++i->charpos;
- i->bytepos = pos * sizeof (UChar32);
- return c;
+ i->charpos += skip;
+ i->bytepos += skip * sizeof (UChar32);
#else
UNUSED(i);
+ UNUSED(skip);
no_ICU_lib(interp);
#endif
}
/*
-=item C<static void ucs4_encode_and_advance(PARROT_INTERP, String_iter *i,
-UINTVAL c)>
+=item C<static UINTVAL ucs4_iter_get_and_advance(PARROT_INTERP, const STRING
+*str, String_iter *i)>
-With the string iterator C<i>, appends the codepoint C<c> and advances to the
-next position in the string.
+Moves the string iterator C<i> to the next codepoint.
=cut
*/
-static void
-ucs4_encode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL c)
+static UINTVAL
+ucs4_iter_get_and_advance(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i))
{
- ASSERT_ARGS(ucs4_encode_and_advance)
+ ASSERT_ARGS(ucs4_iter_get_and_advance)
+
#if PARROT_HAS_ICU
- UChar32 *s = (UChar32 *) Buffer_bufstart(i->str);
- size_t pos = i->bytepos / sizeof (UChar32);
- s[pos++] = (UChar32) c;
- ++i->charpos;
- i->bytepos = pos * sizeof (UChar32);
+ const UChar32 * const s = (const UChar32*) Buffer_bufstart(str);
+ const UChar32 c = s[i->charpos++];
+ i->bytepos += sizeof (UChar32);
+ return c;
#else
+ UNUSED(str);
UNUSED(i);
no_ICU_lib(interp);
+ return (UINTVAL)0; /* Stop the static analyzers from panicing */
#endif
}
-#if PARROT_HAS_ICU
/*
-=item C<static size_t ucs4_hash(PARROT_INTERP, const STRING *s, size_t hashval)>
+=item C<static void ucs4_iter_set_and_advance(PARROT_INTERP, STRING *str,
+String_iter *i, UINTVAL c)>
-Returns the hashed value of the string, given a seed in hashval.
+With the string iterator C<i>, appends the codepoint C<c> and advances to the
+next position in the string.
=cut
*/
-static size_t
-ucs4_hash(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval)
+static void
+ucs4_iter_set_and_advance(PARROT_INTERP,
+ ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c)
{
- ASSERT_ARGS(ucs4_hash)
- const UChar32 *pos = (const UChar32*) Buffer_bufstart(s);
- UINTVAL len = s->strlen;
- UNUSED(interp);
-
- while (len--) {
- hashval += hashval << 5;
- hashval += *(pos++);
- }
+ ASSERT_ARGS(ucs4_iter_set_and_advance)
- return hashval;
-}
+#if PARROT_HAS_ICU
+ UChar32 * const s = (UChar32*) Buffer_bufstart(str);
+ s[i->charpos++] = (UChar32)c;
+ i->bytepos += sizeof (UChar32);
+#else
+ UNUSED(str);
+ UNUSED(i);
+ UNUSED(c);
+ no_ICU_lib(interp);
#endif
+}
/*
-=item C<static void ucs4_set_position(PARROT_INTERP, String_iter *i, UINTVAL n)>
+=item C<static void ucs4_iter_set_position(PARROT_INTERP, const STRING *str,
+String_iter *i, UINTVAL n)>
Moves the string iterator C<i> to the position C<n> in the string.
@@ -524,9 +572,12 @@
*/
static void
-ucs4_set_position(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL n)
+ucs4_iter_set_position(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i), UINTVAL n)
{
- ASSERT_ARGS(ucs4_set_position)
+ ASSERT_ARGS(ucs4_iter_set_position)
+ UNUSED(str);
+
#if PARROT_HAS_ICU
i->charpos = n;
i->bytepos = n * sizeof (UChar32);
@@ -537,36 +588,33 @@
#endif
}
-
+#if PARROT_HAS_ICU
/*
-=item C<static void iter_init(PARROT_INTERP, const STRING *src, String_iter
-*iter)>
+=item C<static size_t ucs4_hash(PARROT_INTERP, const STRING *s, size_t hashval)>
-Initializes for string C<src> the string iterator C<iter>.
+Returns the hashed value of the string, given a seed in hashval.
=cut
*/
-static void
-iter_init(PARROT_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter))
+static size_t
+ucs4_hash(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval)
{
- ASSERT_ARGS(iter_init)
-#if PARROT_HAS_ICU
+ ASSERT_ARGS(ucs4_hash)
+ const UChar32 *pos = (const UChar32*) Buffer_bufstart(s);
+ UINTVAL len = s->strlen;
UNUSED(interp);
- iter->str = src;
- iter->bytepos = 0;
- iter->charpos = 0;
- iter->get_and_advance = ucs4_decode_and_advance;
- iter->set_and_advance = ucs4_encode_and_advance;
- iter->set_position = ucs4_set_position;
-#else
- UNUSED(src);
- UNUSED(iter);
- no_ICU_lib(interp);
-#endif
+
+ while (len--) {
+ hashval += hashval << 5;
+ hashval += *(pos++);
+ }
+
+ return hashval;
}
+#endif
/*
@@ -595,13 +643,17 @@
get_bytes,
codepoints,
bytes,
- iter_init,
find_cclass,
#if PARROT_HAS_ICU
- ucs4_hash
+ ucs4_hash,
#else
- NULL
+ NULL,
#endif
+ ucs4_iter_get,
+ ucs4_iter_skip,
+ ucs4_iter_get_and_advance,
+ ucs4_iter_set_and_advance,
+ ucs4_iter_set_position
};
STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding);
Parrot_register_encoding(interp, "ucs4", return_encoding);
Modified: branches/unshared_buffers/src/string/encoding/utf16.c
==============================================================================
--- branches/unshared_buffers/src/string/encoding/utf16.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/string/encoding/utf16.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -75,14 +75,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void iter_init(PARROT_INTERP,
- ARGIN(const STRING *src),
- ARGOUT(String_iter *iter))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*iter);
-
static void set_byte(PARROT_INTERP,
ARGIN(const STRING *src),
UINTVAL offset,
@@ -96,21 +88,49 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+static UINTVAL utf16_iter_get(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGIN(const String_iter *i),
+ INTVAL offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
PARROT_WARN_UNUSED_RESULT
-static UINTVAL utf16_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i))
+static UINTVAL utf16_iter_get_and_advance(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGMOD(String_iter *i))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*i);
-static void utf16_encode_and_advance(SHIM_INTERP,
+static void utf16_iter_set_and_advance(PARROT_INTERP,
+ ARGMOD(STRING *str),
ARGMOD(String_iter *i),
UINTVAL c)
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*str)
FUNC_MODIFIES(*i);
-static void utf16_set_position(SHIM_INTERP,
+static void utf16_iter_set_position(PARROT_INTERP,
+ ARGIN(const STRING *str),
ARGMOD(String_iter *i),
UINTVAL n)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*i);
+
+static void utf16_iter_skip(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGMOD(String_iter *i),
+ INTVAL skip)
+ __attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*i);
#define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -133,22 +153,32 @@
#define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src) \
- , PARROT_ASSERT_ARG(iter))
#define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_utf16_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(i))
-#define ASSERT_ARGS_utf16_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(i))
-#define ASSERT_ARGS_utf16_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_utf16_iter_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_utf16_iter_get_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_utf16_iter_set_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_utf16_iter_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_utf16_iter_skip __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -377,24 +407,24 @@
get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
{
ASSERT_ARGS(get_codepoints)
+ UChar const * const s = (UChar*) Buffer_bufstart(src);
const UINTVAL flags = PObj_get_FLAGS(src) & ~PObj_constant_FLAG;
STRING * const dst = Parrot_gc_new_string_header(interp, flags);
- String_iter iter;
- UINTVAL start, size;
+ UINTVAL start = 0;
+ UINTVAL end, size;
- iter_init(interp, src, &iter);
- iter.set_position(interp, &iter, offset);
- start = iter.bytepos;
- iter.set_position(interp, &iter, offset + count);
- size = iter.bytepos - start;
+ U16_FWD_N_UNSAFE(s, start, offset);
+ end = start;
+ U16_FWD_N_UNSAFE(s, end, count);
+ size = (end - start) * sizeof (UChar);
if (!(flags & PObj_external_FLAG)){
Parrot_gc_allocate_string_storage(interp, dst, size);
- mem_sys_memcopy(Buffer_bufstart(dst), Buffer_bufstart(src) + start, size);
+ mem_sys_memcopy(Buffer_bufstart(dst), s + start, size);
}
else {
- Buffer_bufstart(dst) = Buffer_bufstart(src) + start;
+ Buffer_bufstart(dst) = s + start;
Buffer_buflen(dst) = 0;
}
@@ -446,15 +476,24 @@
codepoints(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(codepoints)
- String_iter iter;
+#if PARROT_HAS_ICU
+ const UChar * const s = (UChar*) Buffer_bufstart(src);
+ UINTVAL pos = 0, charpos = 0;
/*
* this is used to initially calculate src->strlen,
* therefore we must scan the whole string
*/
- iter_init(interp, src, &iter);
- while (iter.bytepos < src->bufused)
- iter.get_and_advance(interp, &iter);
- return iter.charpos;
+ while (pos * sizeof (UChar) < src->bufused) {
+ U16_FWD_1_UNSAFE(s, pos);
+ ++charpos;
+ }
+ return charpos;
+#else
+ UNUSED(src);
+
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
+ "no ICU lib loaded");
+#endif
}
/*
@@ -475,106 +514,184 @@
return src->bufused;
}
-#if PARROT_HAS_ICU
/*
-=item C<static UINTVAL utf16_decode_and_advance(PARROT_INTERP, String_iter *i)>
+=item C<static UINTVAL utf16_iter_get(PARROT_INTERP, const STRING *str, const
+String_iter *i, INTVAL offset)>
-Moves the string iterator C<i> to the next UTF-16 codepoint.
+Get the character at C<i> plus C<offset>.
=cut
*/
-PARROT_WARN_UNUSED_RESULT
static UINTVAL
-utf16_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i))
+utf16_iter_get(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGIN(const String_iter *i), INTVAL offset)
{
- ASSERT_ARGS(utf16_decode_and_advance)
- const UChar * const s = (const UChar*) Buffer_bufstart(i->str);
- UINTVAL pos = i->bytepos / sizeof (UChar);
- UINTVAL c;
+ ASSERT_ARGS(utf16_iter_get)
+#if PARROT_HAS_ICU
+ const UChar * const s = (UChar*) Buffer_bufstart(str);
+ UINTVAL c, pos;
+
+ pos = i->bytepos / sizeof (UChar);
+ if (offset > 0) {
+ U16_FWD_N_UNSAFE(s, pos, offset);
+ }
+ else if (offset < 0) {
+ U16_BACK_N_UNSAFE(s, pos, -offset);
+ }
+ U16_GET_UNSAFE(s, pos, c);
- /* TODO either make sure that we don't go past end or use SAFE
- * iter versions
- */
- U16_NEXT_UNSAFE(s, pos, c);
- ++i->charpos;
- i->bytepos = pos * sizeof (UChar);
return c;
+#else
+ UNUSED(str);
+ UNUSED(i);
+ UNUSED(offset);
+
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
+ "no ICU lib loaded");
+#endif
}
/*
-=item C<static void utf16_encode_and_advance(PARROT_INTERP, String_iter *i,
-UINTVAL c)>
+=item C<static void utf16_iter_skip(PARROT_INTERP, const STRING *str,
+String_iter *i, INTVAL skip)>
-With the string iterator C<i>, appends the codepoint C<c> and advances to the
-next position in the string.
+Moves the string iterator C<i> by C<skip> characters.
=cut
*/
static void
-utf16_encode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL c)
+utf16_iter_skip(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i), INTVAL skip)
{
- ASSERT_ARGS(utf16_encode_and_advance)
- UChar * const s = (UChar*) Buffer_bufstart(i->str);
+ ASSERT_ARGS(utf16_iter_skip)
+#if PARROT_HAS_ICU
+ const UChar * const s = (UChar*) Buffer_bufstart(str);
UINTVAL pos = i->bytepos / sizeof (UChar);
- U16_APPEND_UNSAFE(s, pos, c);
- ++i->charpos;
+
+ if (skip > 0) {
+ U16_FWD_N_UNSAFE(s, pos, skip);
+ }
+ else if (skip < 0) {
+ U16_BACK_N_UNSAFE(s, pos, -skip);
+ }
+
+ i->charpos += skip;
i->bytepos = pos * sizeof (UChar);
+#else
+ UNUSED(str);
+ UNUSED(i);
+ UNUSED(skip);
+
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
+ "no ICU lib loaded");
+#endif
}
/*
-=item C<static void utf16_set_position(PARROT_INTERP, String_iter *i, UINTVAL
-n)>
+=item C<static UINTVAL utf16_iter_get_and_advance(PARROT_INTERP, const STRING
+*str, String_iter *i)>
-Moves the string iterator C<i> to the position C<n> in the string.
+Moves the string iterator C<i> to the next UTF-16 codepoint.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+static UINTVAL
+utf16_iter_get_and_advance(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i))
+{
+ ASSERT_ARGS(utf16_iter_get_and_advance)
+#if PARROT_HAS_ICU
+ const UChar * const s = (UChar*) Buffer_bufstart(str);
+ UINTVAL c, pos;
+ pos = i->bytepos / sizeof (UChar);
+ /* TODO either make sure that we don't go past end or use SAFE
+ * iter versions
+ */
+ U16_NEXT_UNSAFE(s, pos, c);
+ i->charpos++;
+ i->bytepos = pos * sizeof (UChar);
+ return c;
+#else
+ UNUSED(str);
+ UNUSED(i);
+
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
+ "no ICU lib loaded");
+#endif
+}
+
+/*
+
+=item C<static void utf16_iter_set_and_advance(PARROT_INTERP, STRING *str,
+String_iter *i, UINTVAL c)>
+
+With the string iterator C<i>, appends the codepoint C<c> and advances to the
+next position in the string.
=cut
*/
static void
-utf16_set_position(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL n)
+utf16_iter_set_and_advance(PARROT_INTERP,
+ ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c)
{
- ASSERT_ARGS(utf16_set_position)
- UChar * const s = (UChar*) Buffer_bufstart(i->str);
+ ASSERT_ARGS(utf16_iter_set_and_advance)
+#if PARROT_HAS_ICU
+ UChar * const s = (UChar*) Buffer_bufstart(str);
UINTVAL pos;
- pos = 0;
- U16_FWD_N_UNSAFE(s, pos, n);
- i->charpos = n;
+ pos = i->bytepos / sizeof (UChar);
+ U16_APPEND_UNSAFE(s, pos, c);
+ i->charpos++;
i->bytepos = pos * sizeof (UChar);
-}
+#else
+ UNUSED(str);
+ UNUSED(i);
+ UNUSED(c);
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
+ "no ICU lib loaded");
#endif
+}
/*
-=item C<static void iter_init(PARROT_INTERP, const STRING *src, String_iter
-*iter)>
+=item C<static void utf16_iter_set_position(PARROT_INTERP, const STRING *str,
+String_iter *i, UINTVAL n)>
-Initializes for string C<src> the string iterator C<iter>.
+Moves the string iterator C<i> to the position C<n> in the string.
=cut
*/
static void
-iter_init(PARROT_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter))
+utf16_iter_set_position(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i), UINTVAL n)
{
- ASSERT_ARGS(iter_init)
- iter->str = src;
- iter->bytepos = iter->charpos = 0;
+ ASSERT_ARGS(utf16_iter_set_position)
#if PARROT_HAS_ICU
- UNUSED(interp);
- iter->get_and_advance = utf16_decode_and_advance;
- iter->set_and_advance = utf16_encode_and_advance;
- iter->set_position = utf16_set_position;
+ UChar * const s = (UChar*) Buffer_bufstart(str);
+ UINTVAL pos;
+ pos = 0;
+ U16_FWD_N_UNSAFE(s, pos, n);
+ i->charpos = n;
+ i->bytepos = pos * sizeof (UChar);
#else
+ UNUSED(str);
+ UNUSED(i);
+ UNUSED(n);
+
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
"no ICU lib loaded");
#endif
@@ -607,9 +724,13 @@
get_bytes,
codepoints,
bytes,
- iter_init,
find_cclass,
- NULL
+ NULL,
+ utf16_iter_get,
+ utf16_iter_skip,
+ utf16_iter_get_and_advance,
+ utf16_iter_set_and_advance,
+ utf16_iter_set_position
};
STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding);
Parrot_register_encoding(interp, "utf16", return_encoding);
Modified: branches/unshared_buffers/src/string/encoding/utf8.c
==============================================================================
--- branches/unshared_buffers/src/string/encoding/utf8.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/string/encoding/utf8.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -71,13 +71,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void iter_init(SHIM_INTERP,
- ARGIN(const STRING *src),
- ARGOUT(String_iter *iter))
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*iter);
-
static void set_byte(PARROT_INTERP,
ARGIN(const STRING *src),
UINTVAL offset,
@@ -100,28 +93,51 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static UINTVAL utf8_decode_and_advance(PARROT_INTERP,
- ARGMOD(String_iter *i))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*i);
-
PARROT_CANNOT_RETURN_NULL
static void * utf8_encode(PARROT_INTERP, ARGIN(void *ptr), UINTVAL c)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void utf8_encode_and_advance(PARROT_INTERP,
+static UINTVAL utf8_iter_get(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGIN(const String_iter *i),
+ INTVAL offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+static UINTVAL utf8_iter_get_and_advance(PARROT_INTERP,
+ ARGIN(const STRING *str),
+ ARGMOD(String_iter *i))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*i);
+
+static void utf8_iter_set_and_advance(PARROT_INTERP,
+ ARGMOD(STRING *str),
ARGMOD(String_iter *i),
UINTVAL c)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*str)
FUNC_MODIFIES(*i);
-static void utf8_set_position(SHIM_INTERP,
+static void utf8_iter_set_position(SHIM_INTERP,
+ ARGIN(const STRING *str),
ARGMOD(String_iter *i),
UINTVAL pos)
__attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*i);
+
+static void utf8_iter_skip(SHIM_INTERP,
+ ARGIN(const STRING *str),
+ ARGMOD(String_iter *i),
+ INTVAL skip)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
FUNC_MODIFIES(*i);
PARROT_WARN_UNUSED_RESULT
@@ -151,9 +167,6 @@
#define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(src) \
- , PARROT_ASSERT_ARG(iter))
#define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
@@ -166,17 +179,27 @@
#define ASSERT_ARGS_utf8_decode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(ptr))
-#define ASSERT_ARGS_utf8_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(i))
#define ASSERT_ARGS_utf8_encode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(ptr))
-#define ASSERT_ARGS_utf8_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_utf8_iter_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_utf8_iter_get_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_utf8_iter_set_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_utf8_iter_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(str) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_utf8_iter_skip __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(str) \
, PARROT_ASSERT_ARG(i))
-#define ASSERT_ARGS_utf8_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(i))
#define ASSERT_ARGS_utf8_skip_backward __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(ptr))
#define ASSERT_ARGS_utf8_skip_forward __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -387,7 +410,65 @@
/*
-=item C<static UINTVAL utf8_decode_and_advance(PARROT_INTERP, String_iter *i)>
+=item C<static UINTVAL utf8_iter_get(PARROT_INTERP, const STRING *str, const
+String_iter *i, INTVAL offset)>
+
+Get the character at C<i> plus C<offset>.
+
+=cut
+
+*/
+
+static UINTVAL
+utf8_iter_get(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGIN(const String_iter *i), INTVAL offset)
+{
+ ASSERT_ARGS(utf8_iter_get)
+ const utf8_t *u8ptr = (utf8_t *)((char *)Buffer_bufstart(str) + i->bytepos);
+
+ if (offset > 0) {
+ u8ptr = (const utf8_t *)utf8_skip_forward(u8ptr, offset);
+ }
+ else if (offset < 0) {
+ u8ptr = (const utf8_t *)utf8_skip_backward(u8ptr, -offset);
+ }
+
+ return utf8_decode(interp, u8ptr);
+}
+
+/*
+
+=item C<static void utf8_iter_skip(PARROT_INTERP, const STRING *str, String_iter
+*i, INTVAL skip)>
+
+Moves the string iterator C<i> by C<skip> characters.
+
+=cut
+
+*/
+
+static void
+utf8_iter_skip(SHIM_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i), INTVAL skip)
+{
+ ASSERT_ARGS(utf8_iter_skip)
+ const utf8_t *u8ptr = (utf8_t *)((char *)Buffer_bufstart(str) + i->bytepos);
+
+ if (skip > 0) {
+ u8ptr = (const utf8_t *)utf8_skip_forward(u8ptr, skip);
+ }
+ else if (skip < 0) {
+ u8ptr = (const utf8_t *)utf8_skip_backward(u8ptr, -skip);
+ }
+
+ i->charpos += skip;
+ i->bytepos = (const char *)u8ptr - (const char *)Buffer_bufstart(str);
+}
+
+/*
+
+=item C<static UINTVAL utf8_iter_get_and_advance(PARROT_INTERP, const STRING
+*str, String_iter *i)>
The UTF-8 implementation of the string iterator's C<get_and_advance>
function.
@@ -397,10 +478,11 @@
*/
static UINTVAL
-utf8_decode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i))
+utf8_iter_get_and_advance(PARROT_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i))
{
- ASSERT_ARGS(utf8_decode_and_advance)
- const utf8_t *u8ptr = (utf8_t *)((char *)Buffer_bufstart(i->str) + i->bytepos);
+ ASSERT_ARGS(utf8_iter_get_and_advance)
+ const utf8_t *u8ptr = (utf8_t *)((char *)Buffer_bufstart(str) + i->bytepos);
UINTVAL c = *u8ptr;
if (UTF8_IS_START(c)) {
@@ -408,13 +490,12 @@
c &= UTF8_START_MASK(len);
i->bytepos += len;
- for (--len; len; --len) {
- ++u8ptr;
+ for (len--; len; len--) {
+ u8ptr++;
if (!UTF8_IS_CONTINUATION(*u8ptr))
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_MALFORMED_UTF8,
"Malformed UTF-8 string\n");
-
c = UTF8_ACCUMULATE(c, *u8ptr);
}
@@ -427,17 +508,17 @@
"Malformed UTF-8 string\n");
}
else {
- ++i->bytepos;
+ i->bytepos++;
}
- ++i->charpos;
+ i->charpos++;
return c;
}
/*
-=item C<static void utf8_encode_and_advance(PARROT_INTERP, String_iter *i,
-UINTVAL c)>
+=item C<static void utf8_iter_set_and_advance(PARROT_INTERP, STRING *str,
+String_iter *i, UINTVAL c)>
The UTF-8 implementation of the string iterator's C<set_and_advance>
function.
@@ -447,23 +528,23 @@
*/
static void
-utf8_encode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL c)
+utf8_iter_set_and_advance(PARROT_INTERP,
+ ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c)
{
- ASSERT_ARGS(utf8_encode_and_advance)
- const STRING * const s = i->str;
- unsigned char * const pos = (unsigned char *)Buffer_bufstart(s) + i->bytepos;
+ ASSERT_ARGS(utf8_iter_set_and_advance)
+ unsigned char * const pos = (unsigned char *)Buffer_bufstart(str) + i->bytepos;
unsigned char * const new_pos = (unsigned char *)utf8_encode(interp, pos, c);
i->bytepos += (new_pos - pos);
/* XXX possible buffer overrun exception? */
- PARROT_ASSERT(i->bytepos <= Buffer_buflen(s));
- ++i->charpos;
+ PARROT_ASSERT(i->bytepos <= Buffer_buflen(str));
+ i->charpos++;
}
/*
-=item C<static void utf8_set_position(PARROT_INTERP, String_iter *i, UINTVAL
-pos)>
+=item C<static void utf8_iter_set_position(PARROT_INTERP, const STRING *str,
+String_iter *i, UINTVAL pos)>
The UTF-8 implementation of the string iterator's C<set_position>
function.
@@ -473,25 +554,46 @@
*/
static void
-utf8_set_position(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL pos)
+utf8_iter_set_position(SHIM_INTERP,
+ ARGIN(const STRING *str), ARGMOD(String_iter *i), UINTVAL pos)
{
- ASSERT_ARGS(utf8_set_position)
- const utf8_t *u8ptr = (const utf8_t *)Buffer_bufstart(i->str);
+ ASSERT_ARGS(utf8_iter_set_position)
+ const utf8_t *u8ptr = (const utf8_t *)Buffer_bufstart(str);
- /* start from last known charpos, if we can */
- if (i->charpos <= pos) {
- const UINTVAL old_pos = pos;
- pos -= i->charpos;
- u8ptr += i->bytepos;
- i->charpos = old_pos;
+ if (pos == 0) {
+ i->charpos = 0;
+ i->bytepos = 0;
+ return;
}
- else
- i->charpos = pos;
- while (pos-- > 0)
- u8ptr += UTF8SKIP(u8ptr);
+ /*
+ * we know the byte offsets of three positions: start, current and end
+ * now find the shortest way to reach pos
+ */
+ if (pos < i->charpos) {
+ if (pos <= (i->charpos >> 1)) {
+ /* go forward from start */
+ u8ptr = (const utf8_t *)utf8_skip_forward(u8ptr, pos);
+ }
+ else {
+ /* go backward from current */
+ u8ptr = (const utf8_t *)utf8_skip_backward(u8ptr + i->bytepos, i->charpos - pos);
+ }
+ }
+ else {
+ const UINTVAL len = str->strlen;
+ if (pos <= i->charpos + ((len - i->charpos) >> 1)) {
+ /* go forward from current */
+ u8ptr = (const utf8_t *)utf8_skip_forward(u8ptr + i->bytepos, pos - i->charpos);
+ }
+ else {
+ /* go backward from end */
+ u8ptr = (const utf8_t *)utf8_skip_backward(u8ptr + str->bufused, len - pos);
+ }
+ }
- i->bytepos = (const char *)u8ptr - (const char *)Buffer_bufstart(i->str);
+ i->charpos = pos;
+ i->bytepos = (const char *)u8ptr - (const char *)Buffer_bufstart(str);
}
@@ -513,8 +615,8 @@
{
ASSERT_ARGS(to_encoding)
STRING *result;
- String_iter src_iter;
- UINTVAL offs, dest_len, dest_pos, src_len;
+ const ENCODING *src_encoding;
+ UINTVAL dest_len, dest_pos, src_len;
unsigned char *p;
if (src->encoding == Parrot_utf8_encoding_ptr)
@@ -523,8 +625,8 @@
result = Parrot_gc_new_string_header(interp, 0);
src_len = src->strlen;
- /* init iter before possilby changing encoding */
- ENCODING_ITER_INIT(interp, src, &src_iter);
+ /* save source encoding before possibly changing it */
+ src_encoding = src->encoding;
result->charset = Parrot_unicode_charset_ptr;
result->encoding = Parrot_utf8_encoding_ptr;
result->strlen = src_len;
@@ -542,15 +644,17 @@
result->bufused = dest_len;
}
else {
+ String_iter src_iter;
+ STRING_ITER_INIT(interp, &src_iter);
dest_len = src_len;
dest_pos = 0;
- for (offs = 0; offs < src_len; ++offs) {
- const UINTVAL c = src_iter.get_and_advance(interp, &src_iter);
+ while (src_iter.charpos < src_len) {
+ const UINTVAL c = src_encoding->iter_get_and_advance(interp, src, &src_iter);
unsigned char *new_pos;
unsigned char *pos;
if (dest_len - dest_pos < 6) {
- UINTVAL need = (UINTVAL)((src->strlen - offs) * 1.5);
+ UINTVAL need = (UINTVAL)((src->strlen - src_iter.charpos + 1) * 1.5);
if (need < 16)
need = 16;
dest_len += need;
@@ -683,10 +787,16 @@
String_iter iter;
UINTVAL start, size;
- iter_init(interp, src, &iter);
- iter.set_position(interp, &iter, offset);
- start = iter.bytepos;
- iter.set_position(interp, &iter, offset + count);
+ STRING_ITER_INIT(interp, &iter);
+
+ if (offset)
+ utf8_iter_set_position(interp, src, &iter, offset);
+
+ start = iter.bytepos;
+
+ if (count)
+ utf8_iter_set_position(interp, src, &iter, offset + count);
+
size = iter.bytepos - start;
if (!(flags & PObj_external_FLAG)){
@@ -747,9 +857,9 @@
* this is used to initially calculate src->strlen,
* therefore we must scan the whole string
*/
- iter_init(interp, src, &iter);
+ STRING_ITER_INIT(interp, &iter);
while (iter.bytepos < src->bufused)
- iter.get_and_advance(interp, &iter);
+ utf8_iter_get_and_advance(interp, src, &iter);
return iter.charpos;
}
@@ -773,29 +883,6 @@
/*
-=item C<static void iter_init(PARROT_INTERP, const STRING *src, String_iter
-*iter)>
-
-Initializes for string C<src> the string iterator C<iter>.
-
-=cut
-
-*/
-
-static void
-iter_init(SHIM_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter))
-{
- ASSERT_ARGS(iter_init)
- iter->str = src;
- iter->bytepos = 0;
- iter->charpos = 0;
- iter->get_and_advance = utf8_decode_and_advance;
- iter->set_and_advance = utf8_encode_and_advance;
- iter->set_position = utf8_set_position;
-}
-
-/*
-
=item C<void Parrot_encoding_utf8_init(PARROT_INTERP)>
Initializes the UTF-8 encoding.
@@ -821,9 +908,13 @@
get_bytes,
codepoints,
bytes,
- iter_init,
find_cclass,
- NULL
+ NULL,
+ utf8_iter_get,
+ utf8_iter_skip,
+ utf8_iter_get_and_advance,
+ utf8_iter_set_and_advance,
+ utf8_iter_set_position
};
STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding);
Parrot_register_encoding(interp, "utf8", return_encoding);
Modified: branches/unshared_buffers/src/string/primitives.c
==============================================================================
--- branches/unshared_buffers/src/string/primitives.c Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/src/string/primitives.c Sun Aug 29 17:09:11 2010 (r48719)
@@ -329,7 +329,7 @@
#if PARROT_HAS_ICU
return u_charDigitValue(character);
#else
- if ((character >= 0x30) || (character <= 0x39))
+ if ((character >= 0x30) && (character <= 0x39))
return character - 0x30;
return -1;
#endif
Modified: branches/unshared_buffers/t/codingstd/c_macro_args.t
==============================================================================
--- branches/unshared_buffers/t/codingstd/c_macro_args.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/codingstd/c_macro_args.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -60,6 +60,9 @@
if ($definition ne "") {
foreach my $arg (split /\s*,\s*/, $args) {
+ # skip args that are code blocks
+ next if $arg eq '_code';
+
# eliminate any properly formed usage of the macro arg
$definition =~ s/\Q($arg)//g;
$definition =~ s/\Q[$arg]//g;
Modified: branches/unshared_buffers/t/codingstd/c_operator.t
==============================================================================
--- branches/unshared_buffers/t/codingstd/c_operator.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/codingstd/c_operator.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -84,16 +84,27 @@
}{defined $1 ? "$1$2" : defined $3 ? "$3$4" : "$5$6"}egsx;
my @lines = split( /\n/, $buf );
- for my $line (@lines) {
+ $comma_space{$path} = [];
+ for (my $i=0; $i <= $#lines; $i++) {
# after a comma there should be one space or a newline
- if ( $line =~ m{ ( (?:,) (?! \s ) (?= .+) ) }gx ) {
- $comma_space{$path} = undef;
+ if ( $lines[$i] =~ m{ ( (?:,) (?! \s ) (?= .+) ) }gx ) {
+ push @{ $comma_space{$path} }, $i;
}
}
}
## L<PDD07/Code Formatting"there should be one space or a newline after a comma">/
- is( join("\n", keys %comma_space), "", "there should be one space or a newline after a comma" );
+ my $files_with_errors = 0;
+ for my $path ( sort keys %comma_space ) {
+ $files_with_errors++ if scalar @{ $comma_space{$path} };
+ }
+ is( $files_with_errors, 0, "there should be one space or a newline after a comma" )
+ or diag( do {
+ for my $k (sort keys %comma_space) {
+ my @lines_failed = @{$comma_space{$k}};
+ print "$k: line(s): @lines_failed\n" if scalar(@lines_failed);
+ }
+ } );
}
# Local Variables:
Modified: branches/unshared_buffers/t/codingstd/perlcritic.t
==============================================================================
--- branches/unshared_buffers/t/codingstd/perlcritic.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/codingstd/perlcritic.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -22,7 +22,7 @@
violations.
This test uses a standard perlcriticrc file, located in
-F<tools/utils/perlcritic.conf>
+F<tools/dev/perlcritic.conf>
If you wish to run a specific policy, the easiest way to do so is to
temporarily add a custom theme to the configuration file and then specify
@@ -62,7 +62,7 @@
'theme=s' => \$theme
);
-my $config = File::Spec->catfile( $PConfig{build_dir}, qw{tools util perlcritic.conf} );
+my $config = File::Spec->catfile( $PConfig{build_dir}, qw{tools dev perlcritic.conf} );
Test::Perl::Critic->import(
-profile => $config,
Modified: branches/unshared_buffers/t/codingstd/pir_code_coda.t
==============================================================================
--- branches/unshared_buffers/t/codingstd/pir_code_coda.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/codingstd/pir_code_coda.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
use strict;
@@ -73,11 +73,9 @@
if $vim_many > 1 || $emacs_many > 1;
}
-ok( !scalar(@no_coda), 'PIR code coda present' )
- or diag( "PIR code coda missing in " . scalar @no_coda . " files:\n at no_coda" );
-
-ok( !scalar(@extra_coda), 'PIR code coda appears only once' )
- or diag( "PIR code coda repeating in " . scalar @extra_coda . " files:\n at extra_coda" );
+# If we use is_deeply, then the differences will show in the test output.
+is_deeply( \@no_coda, [], 'PIR code coda present' );
+is_deeply( \@extra_coda, [], 'PIR code coda appears only once' );
# Local Variables:
# mode: cperl
Modified: branches/unshared_buffers/t/codingstd/pmc_docs.t
==============================================================================
--- branches/unshared_buffers/t/codingstd/pmc_docs.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/codingstd/pmc_docs.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -130,7 +130,6 @@
src/pmc/imageio.pmc
src/pmc/namespace.pmc
src/pmc/nci.pmc
-src/pmc/null.pmc
src/pmc/object.pmc
src/pmc/sub.pmc
src/pmc/threadinterpreter.pmc
Modified: branches/unshared_buffers/t/dynoplibs/trans-infnan.t
==============================================================================
--- branches/unshared_buffers/t/dynoplibs/trans-infnan.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/dynoplibs/trans-infnan.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -20,7 +20,7 @@
.sub main :main
.include 'test_more.pir'
- plan(67)
+ plan(70)
test_exp()
test_sin()
@@ -36,6 +36,7 @@
test_coth()
test_acot()
test_sec()
+ test_csc()
test_sech()
test_asec()
test_ln()
@@ -232,6 +233,18 @@
is($N1, 'NaN', '... sec NaN')
.end
+.sub test_csc
+ $N0 = 'Inf'
+ $N1 = csc $N0
+ is($N1, 'NaN', 'csc: csc Inf')
+ $N0 = '-Inf'
+ $N1 = csc $N0
+ is($N1, 'NaN', '... csc -Inf')
+ $N0 = 'NaN'
+ $N1 = csc $N0
+ is($N1, 'NaN', '... csc NaN')
+.end
+
.sub test_sech
$N0 = 'Inf'
$N1 = sech $N0
@@ -295,20 +308,16 @@
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')
+ $N1 = cot $N0
+ is($N1, 'NaN', 'cot: cot Inf')
+ $N0 = '-Inf'
+ $N1 = cot $N0
+ is($N1, 'NaN', '... cot -Inf')
+ $N0 = 'NaN'
+ $N1 = cot $N0
+ is($N1, 'NaN', '... cot NaN')
.end
.sub test_pow
Modified: branches/unshared_buffers/t/dynoplibs/trans.t
==============================================================================
--- branches/unshared_buffers/t/dynoplibs/trans.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/dynoplibs/trans.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -23,7 +23,7 @@
.local num epsilon
epsilon = _epsilon()
- plan(69)
+ plan(77)
test_sin_n(epsilon)
test_sin_i(epsilon)
@@ -31,8 +31,12 @@
test_cos_i(epsilon)
test_tan_n(epsilon)
test_tan_i(epsilon)
+ test_cot_n(epsilon)
+ test_cot_i(epsilon)
test_sec_n(epsilon)
test_sec_i(epsilon)
+ test_csc_n(epsilon)
+ test_csc_i(epsilon)
test_atan_n(epsilon)
test_atan_i(epsilon)
test_asin_n(epsilon)
@@ -137,6 +141,26 @@
is($N0, 1.557408, "tan(1)", epsilon)
.end
+.sub test_cot_n
+ .param num epsilon
+
+ $N0 = cot 0.5
+ is($N0, 1.8305, "cot(0.5)", epsilon)
+
+ $N0 = cot 1.0
+ is($N0, 0.64209, "cot(1.0)", epsilon)
+.end
+
+.sub test_cot_i
+ .param num epsilon
+
+ $N0 = cot 1
+ is($N0, 0.64209, "cot(1)", epsilon)
+
+ $N0 = cot 2
+ is($N0, -0.45766, "cot(2)", epsilon)
+.end
+
.sub test_sec_n
.param num epsilon
@@ -153,6 +177,26 @@
is($N1, 1.850816, "sec(1)", epsilon)
.end
+.sub test_csc_n
+ .param num epsilon
+
+ $N0 = csc 0.5
+ is($N0, 2.0858, "csc(0.5)", epsilon)
+
+ $N0 = csc 1.0
+ is($N0, 1.1884, "csc(1.0)", epsilon)
+.end
+
+.sub test_csc_i
+ .param num epsilon
+
+ $N0 = csc 1
+ is($N0, 1.1884, "csc(1)", epsilon)
+
+ $N0 = csc 2
+ is($N0, 1.0998, "csc(2)", epsilon)
+.end
+
.sub test_atan_n
.param num epsilon
Copied: branches/unshared_buffers/t/examples/pgegrep.t (from r48712, trunk/t/examples/pgegrep.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/t/examples/pgegrep.t Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/t/examples/pgegrep.t)
@@ -0,0 +1,111 @@
+#! perl
+# Copyright (C) 2009, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/tools/pgegrep.t - test the script tools/utils/pgegrep
+
+=head1 SYNOPSIS
+
+ % prove t/examples/tools/pgegrep.t
+
+=head1 DESCRIPTION
+
+Tests the features of of the C<pgegrep> utility (see F<examples/pgegrep>).
+
+=cut
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+
+use Fatal qw{open close};
+use Test::More;
+use Parrot::Test tests => 10;
+use Parrot::Config;
+use File::Spec ();
+
+my $testdata = File::Spec->catfile(qw{. t tools testdata });
+my $testdata_escaped = $testdata;
+$testdata_escaped =~ s!\\!\\\\!g;
+
+sub pgegrep_output_like {
+ my ($options, $snippet, $desc) = @_;
+
+ my $PARROT = ".$PConfig{slash}$PConfig{test_prog}";
+ my $pgegrep = File::Spec->catfile( qw{. examples tools pgegrep} );
+ my $out = `$PARROT $pgegrep $options`;
+
+ like( $out, $snippet, $desc );
+
+ return;
+}
+
+pgegrep_output_like(
+ '-V',
+ qr!\Qpgegrep v0.0.1\E!,
+ 'pge reports correct version'
+);
+
+pgegrep_output_like(
+ "cat $testdata",
+ qr!keyboardcat!,
+ 'basic sanity of matching a literal'
+);
+
+pgegrep_output_like(
+ "-n cat $testdata",
+ qr!1:keyboardcat!,
+ 'matching a literal with line number'
+);
+
+pgegrep_output_like(
+ "--line-number cat $testdata",
+ qr!1:keyboardcat!,
+ 'matching a literal with line number with long option'
+);
+
+pgegrep_output_like(
+ "-H cat $testdata",
+ qr!$testdata_escaped:keyboardcat!,
+ 'matching a literal with file name'
+);
+
+pgegrep_output_like(
+ "--with-filename cat $testdata",
+ qr!$testdata_escaped:keyboardcat!,
+ 'matching a literal with file name with long option'
+);
+
+
+pgegrep_output_like(
+ "-v cat $testdata",
+ qr!saxophonegiraffe!,
+ 'test inversion of match'
+);
+
+pgegrep_output_like(
+ "--invert-match cat $testdata",
+ qr!saxophonegiraffe!,
+ 'test inversion of match with long option'
+);
+
+pgegrep_output_like(
+ "-l cat $testdata",
+ qr!$testdata_escaped!,
+ 'find files that match'
+);
+
+pgegrep_output_like(
+ "--files-with-matches cat $testdata",
+ qr!$testdata_escaped!,
+ 'find files that match with long option'
+);
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Deleted: branches/unshared_buffers/t/native_pbc/annotations.pbc
==============================================================================
Binary file. No diff available.
Modified: branches/unshared_buffers/t/native_pbc/integer.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/unshared_buffers/t/native_pbc/number.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/unshared_buffers/t/native_pbc/string.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Deleted: branches/unshared_buffers/t/native_pbc/testdata/annotations.pir
==============================================================================
--- branches/unshared_buffers/t/native_pbc/testdata/annotations.pir Sun Aug 29 17:09:11 2010 (r48718)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,18 +0,0 @@
-# Copyright (C) 2009, Parrot Foundation.
-# $Id$
-
-.sub 'main'
-.annotate "file", "annotations.pir"
-.annotate "creator", "Parrot Foundation"
-.annotate "line", 1
- say "Hi"
- say "line"
-.annotate "line", 2
- .return ()
-.end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/unshared_buffers/t/oo/isa.t
==============================================================================
--- branches/unshared_buffers/t/oo/isa.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/oo/isa.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -20,7 +20,7 @@
.sub main :main
.include 'test_more.pir'
- plan(29)
+ plan(30)
isa_by_string_name()
isa_by_class_object()
@@ -28,6 +28,7 @@
subclass_isa_by_class_object()
string_isa_and_pmc_isa_have_same_result()
string_register_and_string_pmc_isa_have_same_result()
+ isa_accepts_rsa()
.end
@@ -181,6 +182,14 @@
ok( $I0, '... and false when it is not' )
.end
+.sub isa_accepts_rsa
+ $P0 = newclass ['Foo';'Buz']
+ $P1 = new $P0
+ $P0 = split "::", "Foo::Buz"
+ $I0 = isa $P1, $P0
+ ok($I0, "isa accepts a ResizablePMCArray")
+ .end
+
.HLL 'foo'
.namespace ['XYZ']
Copied: branches/unshared_buffers/t/op/gc-active-buffers.t (from r48712, trunk/t/op/gc-active-buffers.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/t/op/gc-active-buffers.t Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/t/op/gc-active-buffers.t)
@@ -0,0 +1,62 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/op/gc-active-buffers.t - Test that buffers are freed as soon as possible
+
+=head1 SYNOPSIS
+
+ % prove t/op/gc-active-buffers.t
+
+=head1 DESCRIPTION
+
+Tests that unused buffers (strings) are freed in the first GC run. See
+TT1603 - http://trac.parrot.org/parrot/ticket/1603
+
+=cut
+
+.include 'interpinfo.pasm'
+
+.sub _main :main
+ .include 'test_more.pir'
+
+ plan(1)
+
+ sweep 1
+ $I0 = interpinfo .INTERPINFO_ACTIVE_BUFFERS
+
+ .local int count
+ count= 1000
+ loop:
+ unless count goto done
+
+ # original test form TT1603
+ $P0 = new 'CodeString'
+ $P0.'emit'("a")
+ $S0 = $P0
+
+ # another way to trigger the problem
+ $S1 = "abc"
+ $S2 = substr $S1, 0, 1
+
+ dec count
+ goto loop
+ done:
+
+ sweep 1
+ $I1 = interpinfo .INTERPINFO_ACTIVE_BUFFERS
+
+ $I2 = $I1 - $I0
+ $S0 = $I2
+ $S0 .= " additional active buffers (which should be <= 100)"
+ $I3 = isle $I2, 100
+ ok($I3, $S0)
+ .end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/unshared_buffers/t/op/gc-leaky-box.t (from r48712, trunk/t/op/gc-leaky-box.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/t/op/gc-leaky-box.t Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/t/op/gc-leaky-box.t)
@@ -0,0 +1,77 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/op/gc-leaky-box.t - test for memory leaks in the Garbage Collector
+
+=head1 SYNOPSIS
+
+ % prove t/op/gc-leaky-box.t
+
+=head1 DESCRIPTION
+
+Tests that we actually do a GC mark and sweep after a large number of PMC's have
+been created. Test suggested by chromatic++ . Also includes tests for
+TT1465 - http://trac.parrot.org/parrot/ticket/1465 .
+
+=cut
+
+# 20:57 <chromatic> For every million PMCs allocated, see that the GC has performed a mark/sweep.
+
+.include 'interpinfo.pasm'
+
+.sub _main :main
+ .include 'test_more.pir'
+
+ plan(3)
+
+ $S0 = interpinfo .INTERPINFO_GC_SYS_NAME
+ if $S0 == "inf" goto dont_run_hanging_tests
+
+ test_gc_mark_sweep()
+
+ goto test_end
+ dont_run_hanging_tests:
+ ok(1, "#TODO - Test disabled on gc_inf")
+ ok(1, "#TODO - Test disabled on gc_inf")
+ ok(1, "#TODO - Test disabled on gc_inf")
+ test_end:
+.end
+
+.sub test_gc_mark_sweep
+ .local int counter
+
+ counter = 0
+ loop:
+ $P0 = box 0
+ inc counter
+ if counter < 2e6 goto loop
+
+ $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS
+ $I2 = interpinfo.INTERPINFO_GC_MARK_RUNS
+ $I3 = interpinfo.INTERPINFO_TOTAL_MEM_ALLOC
+
+ $S1 = $I1
+ $S0 = "performed " . $S1
+ $S0 .= " (which should be >=1) GC collect runs"
+ ok($I1,$S0)
+
+ $S1 = $I2
+ $S0 = "performed " . $S1
+ $S0 .= " (which should be >=1) GC mark runs"
+ ok($I2,$S0)
+
+ $S1 = $I3
+ $S0 = "allocated " . $S1
+ $S0 .= " (which should be <= 2_000_000) bytes of memory"
+ $I4 = isle $I3, 2000000
+ ok($I4,$S0)
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/unshared_buffers/t/op/gc-leaky-call.t (from r48712, trunk/t/op/gc-leaky-call.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/t/op/gc-leaky-call.t Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/t/op/gc-leaky-call.t)
@@ -0,0 +1,77 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/op/gc-leaky-call.t - test for memory leaks in the Garbage Collector
+
+=head1 SYNOPSIS
+
+ % prove t/op/gc-leaky-call.t
+
+=head1 DESCRIPTION
+
+Tests that we actually do a GC mark and sweep after a large number of
+function calls.
+
+=cut
+
+.include 'interpinfo.pasm'
+
+.sub _main :main
+ .include 'test_more.pir'
+
+ plan(3)
+
+ $S0 = interpinfo .INTERPINFO_GC_SYS_NAME
+ if $S0 == "inf" goto dont_run_hanging_tests
+
+ test_gc_mark_sweep()
+
+ goto test_end
+ dont_run_hanging_tests:
+ ok(1, "#TODO - Test disabled on gc_inf")
+ ok(1, "#TODO - Test disabled on gc_inf")
+ ok(1, "#TODO - Test disabled on gc_inf")
+ test_end:
+.end
+
+.sub test_gc_mark_sweep
+ .local int counter
+
+ counter = 0
+ loop:
+ consume()
+ inc counter
+ if counter < 1e6 goto loop
+
+ $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS
+ $I2 = interpinfo.INTERPINFO_GC_MARK_RUNS
+ $I3 = interpinfo.INTERPINFO_TOTAL_MEM_ALLOC
+
+ $S1 = $I1
+ $S0 = "performed " . $S1
+ $S0 .= " (which should be >=1) GC collect runs"
+ ok($I1,$S0)
+
+ $S1 = $I2
+ $S0 = "performed " . $S1
+ $S0 .= " (which should be >=1) GC mark runs"
+ ok($I2,$S0)
+
+ $S1 = $I3
+ $S0 = "allocated " . $S1
+ $S0 .= " (which should be <= 2_000_000) bytes of memory"
+ $I4 = isle $I3, 2000000
+ ok($I4,$S0)
+.end
+
+.sub consume
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Deleted: branches/unshared_buffers/t/op/gc-leaky.t
==============================================================================
--- branches/unshared_buffers/t/op/gc-leaky.t Sun Aug 29 17:09:11 2010 (r48718)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,73 +0,0 @@
-#!./parrot
-# Copyright (C) 2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/op/gc-leaky.t - test for memory leaks in the Garbage Collector
-
-=head1 SYNOPSIS
-
- % prove t/op/gc-leaky.t
-
-=head1 DESCRIPTION
-
-Tests that we actually do a GC mark and sweep after a large number of PMC's have
-been created. Test suggested by chromatic++ . More tests are needed to close
-TT1465 - http://trac.parrot.org/parrot/ticket/1465 .
-
-=cut
-
-# 20:57 <chromatic> For every million PMCs allocated, see that the GC has performed a mark/sweep.
-
-.include 'interpinfo.pasm'
-
-.sub _main :main
- .include 'test_more.pir'
-
- plan(2)
-
- $S0 = interpinfo .INTERPINFO_GC_SYS_NAME
- if $S0 == "inf" goto dont_run_hanging_tests
-
- test_gc_mark_sweep()
-
- goto test_end
- dont_run_hanging_tests:
- ok(1, "#TODO - Test disabled on gc_inf")
- ok(1, "#TODO - Test disabled on gc_inf")
- test_end:
-.end
-
-.sub test_gc_mark_sweep
- .local int counter
- counter = 0
- loop:
- $P0 = box 0
- inc counter
- if counter > 1e6 goto done
- goto loop
- done:
- diag("")
- $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS
- $I2 = interpinfo.INTERPINFO_GC_MARK_RUNS
-
- $I3 = isge $I1, 1
- $I4 = isge $I2, 1
-
- $S1 = $I1
- $S0 = "performed " . $S1
- $S0 .= " (which should be >=1) GC collect runs"
- ok($I2,$S0)
-
- $S1 = $I2
- $S0 = "performed " . $S1
- $S0 .= " (which should be >=1) GC mark runs"
- ok($I2,$S0)
-.end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/unshared_buffers/t/op/string.t
==============================================================================
--- branches/unshared_buffers/t/op/string.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/op/string.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -16,6 +16,8 @@
=cut
+.include 'except_types.pasm'
+
.sub main :main
.include 'test_more.pir'
@@ -30,8 +32,9 @@
three_argument_chopn__oob_values()
substr_tests()
neg_substr_offset()
+ exception_substr_null_string()
exception_substr_oob()
- exception_substr_oob()
+ exception_substr_oob_neg()
len_greater_than_strlen()
len_greater_than_strlen_neg_offset()
replace_w_rep_eq_length()
@@ -308,26 +311,61 @@
is( $S1, "length", '' )
.end
+.sub exception_substr_null_string
+ .local string s
+ .local pmc eh
+ .local int r
+ null s
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_SUBSTR_OUT_OF_STRING)
+ set_addr eh, handler
+ push_eh eh
+ r = 1
+ substr s, s, 0, 0
+ r = 0
+ handler:
+ pop_eh
+ is(r, 1, "substr with null string throws" )
+.end
+
# This asks for substring that shouldn't be allowed...
.sub exception_substr_oob
+ .local pmc eh
+ .local int r
set $S0, "A string of length 21"
- set $I0, -99
+ set $I0, 99
set $I1, 6
- push_eh handler
- substr $S1, $S0, $I0, $I1
-handler:
- .exception_is( "Cannot take substr outside string" )
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_SUBSTR_OUT_OF_STRING)
+ set_addr eh, handler
+ push_eh eh
+ r = 1
+
+ substr $S1, $S0, $I0, $I1
+ r = 0
+ handler:
+ pop_eh
+ is(r, 1, "substr outside string throws" )
.end
# This asks for substring that shouldn't be allowed...
-.sub exception_substr_oob
+.sub exception_substr_oob_neg
+ .local pmc eh
+ .local int r
set $S0, "A string of length 21"
- set $I0, 99
+ set $I0, -99
set $I1, 6
- push_eh handler
- substr $S1, $S0, $I0, $I1
-handler:
- .exception_is( "Cannot take substr outside string" )
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_SUBSTR_OUT_OF_STRING)
+ set_addr eh, handler
+ push_eh eh
+ r = 1
+
+ substr $S1, $S0, $I0, $I1
+ r = 0
+ handler:
+ pop_eh
+ is(r, 1, "substr outside string throws - negative" )
.end
# This asks for substring much greater than length of original string
Modified: branches/unshared_buffers/t/pmc/exception.t
==============================================================================
--- branches/unshared_buffers/t/pmc/exception.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/exception.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -16,11 +16,14 @@
=cut
+.include 'except_types.pasm'
+
.sub main :main
.include 'test_more.pir'
- plan(20)
+ plan(31)
test_bool()
test_int()
+ test_integer_keyed()
test_attrs()
test_attributes()
test_push_pop_eh()
@@ -28,28 +31,62 @@
test_push_eh_throw()
test_die()
test_throw_obj()
+ test_throw_clone()
.end
.sub test_bool
- $P0 = new 'ExceptionHandler'
- set_addr $P0, _handler
- ok($P0,'ExceptionHandler object return true')
$P1 = new 'Exception'
ok($P1,'Exception object return true')
- .return()
- _handler:
- say "howdy bool!"
.end
.sub test_int
- $P0 = new 'ExceptionHandler'
- set_addr $P0, _handler
- push_eh $P0
+ $P0 = new 'Exception'
+ $P0 = 42
$I0 = $P0
- ok(1,'get_integer on ExceptionHandler ')
- .return()
- _handler:
- say "howdy int!"
+ is($I0, 42, 'set/get integer on Exception')
+.end
+
+.sub test_integer_keyed
+ .local pmc ex, eh
+ .local int value
+ ex = new ['Exception']
+
+ value = ex['type']
+ is(value, 0, 'get type default value')
+ ex['type'] = .EXCEPTION_SYNTAX_ERROR
+ value = ex['type']
+ is(value, .EXCEPTION_SYNTAX_ERROR, 'get type value changed')
+
+ value = ex['exit_code']
+ is(value, 0, 'get exit_code default value')
+ ex['exit_code'] = 127
+ value = ex['exit_code']
+ is(value, 127, 'get exit_code value changed')
+
+ value = ex['handled']
+ is(value, 0, 'get handled default is false')
+ ex['handled'] = 1
+ value = ex['handled']
+ is(value, 1, 'get handled value changed')
+
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_ATTRIB_NOT_FOUND)
+ set_label eh, catch
+ push_eh eh
+ value = 1
+ ex['the droids you are looking for'] = 42
+ value = 0
+ catch:
+ finalize eh
+ is(value, 1, 'set invalid key throws')
+
+ set_label eh, catch2
+ value = 1
+ value = ex['the droids you are looking for']
+ value = 0
+ catch2:
+ finalize eh
+ is(value, 1, 'get invalid key throws')
.end
.sub test_attrs
@@ -173,6 +210,59 @@
ok(1,'caught exception object thrown')
.end
+# Test clone vtable function
+.sub test_throw_clone
+ .local pmc ex, exclone, eh, ehguard
+ .local int result
+ ex = new ['Exception']
+ ex['type'] = .EXCEPTION_SYNTAX_ERROR
+ exclone = clone ex
+
+ result = iseq ex, exclone
+ is(result, 1, 'cloned Exception is equal to original')
+
+ ehguard = new ['ExceptionHandler']
+ set_label ehguard, catchall
+ push_eh ehguard
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_SYNTAX_ERROR)
+ set_label eh, catch
+ result = 0
+ push_eh eh
+ throw exclone
+ goto catchall
+ catch:
+ result = 1
+ catchall:
+ finalize eh
+ finalize ehguard
+ is(result, 1, 'caught a cloned Exception')
+
+ null exclone
+ result = 0
+ .local pmc pay, getpay, exc
+ set_label ehguard, catchall2
+ set_label eh, catch2
+
+ pay = new ['Integer'], 9875
+ ex['payload'] = pay
+ exclone = clone ex
+ result = iseq ex, exclone
+ is(result, 1, 'cloned Exception with payload is equal to original')
+
+ result = 0
+ throw exclone
+ goto catchall2
+ catch2:
+ .get_results(exc)
+ getpay = exc['payload']
+ $I0 = getpay
+ if $I0 != 9875 goto catchall2
+ result = 1
+ catchall2:
+ is(result, 1, 'caught a cloned Exception with payload')
+.end
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/unshared_buffers/t/pmc/exceptionhandler.t
==============================================================================
--- branches/unshared_buffers/t/pmc/exceptionhandler.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/exceptionhandler.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -23,7 +23,10 @@
.include 'test_more.pir'
# If test exited with "bad plan" MyHandlerCan.can_handle wasn't invoked.
- plan(15)
+ plan(18)
+
+ test_bool()
+ test_int()
.local pmc eh, eh2
eh = new ['ExceptionHandler']
@@ -136,6 +139,26 @@
ok($I0, 'Exception Handler subclass catch exception')
.end
+.sub test_bool
+ $P0 = new 'ExceptionHandler'
+ nok($P0,'ExceptionHandler without address is false')
+ set_addr $P0, _handler
+ ok($P0,'ExceptionHandler with address is true')
+ _handler:
+.end
+
+.sub test_int
+ $P0 = new 'ExceptionHandler'
+ set_addr $P0, _handler
+ push_eh $P0
+ $I0 = $P0
+ ok(1,'get_integer on ExceptionHandler ')
+ .return()
+ _handler:
+ say "howdy int!"
+.end
+
+
.sub subclass_exception_handler
.local pmc myhandler
myhandler = subclass 'ExceptionHandler', [ 'MyHandler' ]
Modified: branches/unshared_buffers/t/pmc/float.t
==============================================================================
--- branches/unshared_buffers/t/pmc/float.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/float.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -16,7 +16,7 @@
=cut
-.const int TESTS = 162
+.const int TESTS = 166
.const num PRECISION = 0.000001
.sub 'test' :main
@@ -78,10 +78,12 @@
log10_method()
log2_method()
sec_method()
+ csc_method()
sech_method()
sin_method()
sinh_method()
tan_method()
+ cot_method()
tanh_method()
sqrt_method()
.end
@@ -998,6 +1000,11 @@
test_method('sec', 0.5, 1.139493927)
.end
+.sub 'csc_method'
+ test_method('csc', 0.5, 2.0858296)
+ test_method('csc', 1.0, 1.1883951)
+.end
+
.sub 'sech_method'
test_method('sech', 0.0, 1.0)
test_method('sech', 0.5, 0.886818884)
@@ -1018,6 +1025,11 @@
test_method('tan', 0.5, 0.546302490)
.end
+.sub 'cot_method'
+ test_method('cot', 0.5, 1.8304877)
+ test_method('cot', 1.0, 0.64209262)
+.end
+
.sub 'tanh_method'
test_method('tanh', 0.0, 0.0)
test_method('tanh', 0.5, 0.462117157)
Modified: branches/unshared_buffers/t/pmc/hash.t
==============================================================================
--- branches/unshared_buffers/t/pmc/hash.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/hash.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -25,11 +25,12 @@
.sub main :main
.include 'test_more.pir'
- plan(172)
+ plan(174)
initial_hash_tests()
more_than_one_hash()
hash_key_type()
+ hash_value_type()
null_key()
hash_keys_with_nulls_in_them()
nearly_the_same_hash_keys()
@@ -156,6 +157,26 @@
end:
.end
+.sub hash_value_type
+ .local pmc h, eh
+ .local int r
+ h = new ['Hash']
+
+ h.'set_value_type'(.DATATYPE_INTVAL)
+ r = h.'get_value_type'()
+ is(r, .DATATYPE_INTVAL, 'get/set _value_type')
+
+ r = 1
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_UNIMPLEMENTED)
+ set_label eh, catch
+ push_eh eh
+ h.'set_value_type'(999999)
+ r = 0
+ catch:
+ is(r, 1, 'set_value_type with invalid type throws')
+.end
+
.sub null_key
new $P0, ['Hash']
$P0['yum'] = 5
@@ -718,6 +739,10 @@
.end
.sub freeze_thaw_preserves_order
+ # is internal order important somehow?
+ todo("freeze/thaw preserves hash internal order")
+ .return ()
+
.local pmc h, cloned
.local string s1, s2
.local int all_ok
Modified: branches/unshared_buffers/t/pmc/lexinfo.t
==============================================================================
--- branches/unshared_buffers/t/pmc/lexinfo.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/lexinfo.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -19,23 +19,11 @@
.sub main :main
.include 'test_more.pir'
- plan(4)
+ plan(3)
- new_test()
inspect_test()
.end
-.sub new_test
- push_eh eh
- $P0 = new ['LexInfo']
- pop_eh
- ok(0, "shouldn't be able to create a LexInfo without an initializer")
- goto end
-eh:
- ok(1, "can't create a LexInfo without an initializer")
-end:
-.end
-
.sub inspect_test
.lex "$a", $P0
.lex "$b", $P1
Modified: branches/unshared_buffers/t/pmc/packfile.t
==============================================================================
--- branches/unshared_buffers/t/pmc/packfile.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/packfile.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -9,14 +9,13 @@
=head1 SYNOPSIS
+ % make test_prep
% prove t/pmc/packfile.t
=head1 DESCRIPTION
Tests the Packfile PMC.
-If you see this tests failing after bumping PBC_COMPAT rerun tools/dev/mk_packfile_pbc.
-
=cut
.include 't/pmc/testlib/packfile_common.pir'
@@ -25,12 +24,12 @@
.sub main :main
.include 'test_more.pir'
- plan(37)
+ plan(42)
'test_new'()
'test_set_string_native'()
'test_get_string'()
'test_set_string'()
- 'test_get_integer'()
+ 'test_get_integer_keyed_str'()
'test_set_integer'()
'test_get_directory'()
'test_load'()
@@ -77,13 +76,16 @@
.sub 'test_get_string'
- .local pmc pf
+ .local pmc pf, eh
pf = new ['Packfile']
$S0 = pf["uuid"]
ok(1, 'get_string(uuid)')
# Requesting unknown key should throw exception
- push_eh unknown_key
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_KEY_NOT_FOUND)
+ set_label eh, unknown_key
+ push_eh eh
$S0 = pf["foo"]
ok(0, "get_string_keyed_int return unknown key")
.return ()
@@ -121,20 +123,61 @@
.return ()
.end
+# Compose the message for the given key
+.sub 'keyed_str_msg'
+ .param string key
+ .local string msg
+ msg = 'get_integer_keyed_str('
+ msg = concat msg, key
+ msg = concat msg, ')'
+ .return(msg)
+.end
+
+# Check the given key in the Packfile pf
+.sub 'do_get_integer_keyed_str'
+ .param pmc pf
+ .param string key
+ .local string msg
+ .local int result
+ msg = 'keyed_str_msg'(key)
+ result = 0
+ push_eh fail
+
+ $I0 = pf[key]
+ result = 1
+ goto end
+ fail:
+ .get_results($P0)
+ pop_eh
+ end:
+ ok(result, msg)
+.end
+
+.sub 'test_get_integer_keyed_str'
+ .local pmc pf, keys
+ .local int nkeys, i
+
+ keys = new ['ResizableStringArray']
+ push keys, 'wordsize'
+ push keys, 'byteorder'
+ push keys, 'fptype'
+ push keys, 'version_major'
+ push keys, 'version_minor'
+ push keys, 'version_patch'
+ push keys, 'bytecode_major'
+ push keys, 'bytecode_minor'
+ nkeys = elements keys
-.sub 'test_get_integer'
- .local pmc pf
push_eh load_error
pf = _pbc()
pop_eh
- $I0 = pf["version_major"]
- ok(1, "get_integer_keyed_str(version_major)")
-
- $I1 = pf["version_minor"]
- ok(1, "get_integer_keyed_str(version_minor)")
- $I2 = pf["version_patch"]
- ok(1, "get_integer_keyed_str(version_patch)")
+ i = 0
+ nextkey:
+ $S0 = keys[i]
+ do_get_integer_keyed_str(pf, $S0)
+ inc i
+ if i < nkeys goto nextkey
# Requesting unknown key should throw exception
push_eh unknown_key
@@ -146,12 +189,20 @@
pop_eh
ok(1, "get_integer_keyed_str handle unknown key properly")
.return ()
+
+ # On load error report a failure for each test
load_error:
.get_results($P0)
pop_eh
- report_load_error($P0, "get_integer_keyed_str(version_major)")
- report_load_error($P0, "get_integer_keyed_str(version_minor)")
- report_load_error($P0, "get_integer_keyed_str(version_patch)")
+
+ i = 0
+ nexterr:
+ $S0 = keys[i]
+ $S0 = keyed_str_msg($S0)
+ report_load_error($P0, $S0)
+ inc i
+ if i < nkeys goto nexterr
+
report_load_error($P0, "get_integer_keyed_str unknown key")
.return()
.end
Modified: branches/unshared_buffers/t/pmc/packfileannotations.t
==============================================================================
--- branches/unshared_buffers/t/pmc/packfileannotations.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/packfileannotations.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -9,6 +9,7 @@
=head1 SYNOPSIS
+ % make test_prep
% prove t/pmc/packfileannotations.t
=head1 DESCRIPTION
@@ -19,6 +20,9 @@
.include 't/pmc/testlib/packfile_common.pir'
+.const string annofilename = 't/pmc/testlib/annotations.pbc'
+
+
.sub 'main' :main
.include 'test_more.pir'
plan(17)
@@ -42,7 +46,7 @@
push_eh load_error
$P0 = new ['FileHandle']
- $P0.'open'('t/native_pbc/annotations.pbc', 'r')
+ $P0.'open'(annofilename, 'r')
$P0.'encoding'('binary')
$S0 = $P0.'readall'()
pf = new 'Packfile'
@@ -98,6 +102,9 @@
$P6 = 2
anns[3] = $P6
+ # Make sure the mark vtable is exercised and the content survives
+ sweep 1
+
# Pack
$S0 = pf
pf = new 'Packfile'
Modified: branches/unshared_buffers/t/pmc/packfileconstanttable.t
==============================================================================
--- branches/unshared_buffers/t/pmc/packfileconstanttable.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/packfileconstanttable.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -8,6 +8,7 @@
=head1 SYNOPSIS
+ % make test_prep
% prove t/pmc/packfileconstanttable.t
=head1 DESCRIPTION
@@ -62,6 +63,10 @@
pf = _pbc()
pop_eh
pftable = _get_consttable(pf)
+
+ # Make sure the mark vtable is exercised and the content survives
+ sweep 1
+
size = elements pftable
ok(size, "PackfileConstantTable.elements returns non-zero")
.return ()
Modified: branches/unshared_buffers/t/pmc/packfiledirectory.t
==============================================================================
--- branches/unshared_buffers/t/pmc/packfiledirectory.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/packfiledirectory.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -9,6 +9,7 @@
=head1 SYNOPSIS
+ % make test_prep
% prove t/pmc/packfiledirectory.t
=head1 DESCRIPTION
Modified: branches/unshared_buffers/t/pmc/packfilefixupentry.t
==============================================================================
--- branches/unshared_buffers/t/pmc/packfilefixupentry.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/packfilefixupentry.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -8,6 +8,7 @@
=head1 SYNOPSIS
+ % make test_prep
% prove t/pmc/packfilefixupentry.t
=head1 DESCRIPTION
Modified: branches/unshared_buffers/t/pmc/packfilefixuptable.t
==============================================================================
--- branches/unshared_buffers/t/pmc/packfilefixuptable.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/packfilefixuptable.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -9,6 +9,7 @@
=head1 SYNOPSIS
+ % make test_prep
% prove t/pmc/packfilefixuptable.t
=head1 DESCRIPTION
Modified: branches/unshared_buffers/t/pmc/packfilerawsegment.t
==============================================================================
--- branches/unshared_buffers/t/pmc/packfilerawsegment.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/packfilerawsegment.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -9,6 +9,7 @@
=head1 SYNOPSIS
+ % make test_prep
% prove t/pmc/packfilerawsegment.t
=head1 DESCRIPTION
Copied: branches/unshared_buffers/t/pmc/testlib/annotations.pir (from r48712, trunk/t/pmc/testlib/annotations.pir)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/t/pmc/testlib/annotations.pir Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/t/pmc/testlib/annotations.pir)
@@ -0,0 +1,20 @@
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+# This file is used from Packfile PMCs tests
+
+.sub 'main'
+.annotate "file", "annotations.pir"
+.annotate "creator", "Parrot Foundation"
+.annotate "line", 1
+ say "Hi"
+ say "line"
+.annotate "line", 2
+ .return ()
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/unshared_buffers/t/pmc/testlib/number.pasm (from r48712, trunk/t/pmc/testlib/number.pasm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/t/pmc/testlib/number.pasm Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/t/pmc/testlib/number.pasm)
@@ -0,0 +1,91 @@
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+# This file is used from Packfile PMCs tests
+
+ set N0, 1.0
+ set N1, 4.0
+ set N2, 16.0
+ set N3, 64.0
+ set N4, 256.0
+ set N5, 1024.0
+ set N6, 4096.0
+ set N7, 16384.0
+ set N8, 65536.0
+ set N9, 262144.0
+ set N10, 1048576.0
+ set N11, 4194304.0
+ set N12, 16777216.0
+ set N13, 67108864.0
+ set N14, 268435456.0
+ set N15, 1073741824.0
+ set N16, 4294967296.0
+ set N17, 17179869184.0
+ set N18, 68719476736.0
+ set N19, 274877906944.0
+ set N20, 1099511627776.0
+ set N21, 4398046511104.0
+ set N22, 17592186044416.0
+ set N23, 70368744177664.0
+ set N24, 281474976710656.0
+ set N25, 1.12589990684262e+15
+
+ print N0
+ print "\n"
+ print N1
+ print "\n"
+ print N2
+ print "\n"
+ print N3
+ print "\n"
+ print N4
+ print "\n"
+ print N5
+ print "\n"
+ print N6
+ print "\n"
+ print N7
+ print "\n"
+ print N8
+ print "\n"
+ print N9
+ print "\n"
+ print N10
+ print "\n"
+ print N11
+ print "\n"
+ print N12
+ print "\n"
+ print N13
+ print "\n"
+ print N14
+ print "\n"
+ print N15
+ print "\n"
+ print N16
+ print "\n"
+ print N17
+ print "\n"
+ print N18
+ print "\n"
+ print N19
+ print "\n"
+ print N20
+ print "\n"
+ print N21
+ print "\n"
+ print N22
+ print "\n"
+ print N23
+ print "\n"
+ print N24
+ print "\n"
+ print N25
+ print "\n"
+ end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/unshared_buffers/t/pmc/testlib/packfile_common.pir
==============================================================================
--- branches/unshared_buffers/t/pmc/testlib/packfile_common.pir Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/testlib/packfile_common.pir Sun Aug 29 17:09:11 2010 (r48719)
@@ -9,7 +9,7 @@
.sub '_filename'
.local string filename
- filename = 't/native_pbc/number.pbc'
+ filename = 't/pmc/testlib/number.pbc'
.return (filename)
.end
Modified: branches/unshared_buffers/t/pmc/timer.t
==============================================================================
--- branches/unshared_buffers/t/pmc/timer.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/pmc/timer.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -6,7 +6,7 @@
use warnings;
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 6;
+use Parrot::Test tests => 7;
use Parrot::Config;
=head1 NAME
@@ -200,6 +200,38 @@
0
OUTPUT
+pir_output_is( << 'CODE', << 'OUTPUT', "Timer - many repetitions" );
+
+.include 'timer.pasm'
+
+.sub expired
+ $P0 = get_global "expired_count"
+ inc $P0
+.end
+
+.sub main :main
+ $P2 = new 'Integer'
+ set_global "expired_count", $P2
+
+ $P0 = new 'Timer'
+ $P1 = get_global "expired"
+
+ $P0[.PARROT_TIMER_HANDLER] = $P1
+ $P0[.PARROT_TIMER_SEC] = 0
+ $P0[.PARROT_TIMER_REPEAT] = 9999
+ $P0[.PARROT_TIMER_RUNNING] = 1
+
+loop:
+ sleep 0
+ if $P2 < 10000 goto loop
+
+ sleep 0.5
+ say $P2
+.end
+CODE
+10000
+OUTPUT
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
Modified: branches/unshared_buffers/t/steps/auto/pmc-01.t
==============================================================================
--- branches/unshared_buffers/t/steps/auto/pmc-01.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/steps/auto/pmc-01.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More tests => 23;
+use Test::More tests => 33;
use Carp;
use Cwd;
use File::Path qw| mkpath |;
@@ -17,6 +17,7 @@
use Parrot::Configure::Test qw(
test_step_constructor_and_description
);
+use IO::CaptureOutput qw( capture );
########## regular ##########
@@ -94,14 +95,14 @@
my $pmcdir = qq{$tdir/src/pmc};
ok(mkpath($pmcdir, { mode => 0755 }), "Able to make directory for testing");
my $num = qq{$pmcdir/pmc.num};
- open my $IN3, ">", $num or croak "Unable to open file for writing: $!";
- print $IN3 "# comment line\n";
- print $IN3 "\n";
- print $IN3 "default.pmc\t0\n";
- print $IN3 "null.pmc 1\n";
- print $IN3 "env.pmc 2\n";
- print $IN3 "notapmc 3\n";
- close $IN3 or croak "Unable to close file after writing: $!";
+ open my $OUT3, ">", $num or croak "Unable to open file for writing: $!";
+ print $OUT3 "# comment line\n";
+ print $OUT3 "\n";
+ print $OUT3 "default.pmc\t0\n";
+ print $OUT3 "null.pmc 1\n";
+ print $OUT3 "env.pmc 2\n";
+ print $OUT3 "notapmc 3\n";
+ close $OUT3 or croak "Unable to close file after writing: $!";
my $order_ref = auto::pmc::get_pmc_order();
is_deeply(
$order_ref,
@@ -114,7 +115,12 @@
);
my @pmcs = qw| env.pmc default.pmc null.pmc other.pmc |;
- my @sorted_pmcs = auto::pmc::sort_pmcs(@pmcs);
+ my $pseudoman = 'MANIFEST';
+ open my $MAN, '>', $pseudoman or croak "Unable to open $pseudoman";
+ print $MAN "src/pmc/$_\n" for @pmcs;
+ close $MAN or croak;
+ my @sorted_pmcs =
+ split / /, auto::pmc::get_sorted_pmc_str(@pmcs);
is_deeply(
\@sorted_pmcs,
[ qw| default.pmc null.pmc env.pmc other.pmc | ],
@@ -130,6 +136,61 @@
my $pmcdir = qq{$tdir/src/pmc};
ok(mkpath($pmcdir, { mode => 0755 }), "Able to make directory for testing");
+ my $num = qq{$pmcdir/pmc.num};
+ open my $OUT4, ">", $num or croak "Unable to open file for writing: $!";
+ print $OUT4 "# comment line\n";
+ print $OUT4 "\n";
+ print $OUT4 "default.pmc\t0\n";
+ print $OUT4 "null.pmc 1\n";
+ print $OUT4 "env.pmc 2\n";
+ print $OUT4 "notapmc 3\n";
+ close $OUT4 or croak "Unable to close file after writing: $!";
+ my $order_ref = auto::pmc::get_pmc_order();
+ is_deeply(
+ $order_ref,
+ {
+ 'default.pmc' => 0,
+ 'null.pmc' => 1,
+ 'env.pmc' => 2,
+ },
+ "Able to read src/pmc/pmc.num correctly"
+ );
+
+ my @pmcs = qw| env.pmc default.pmc null.pmc other.pmc |;
+ my $pseudoman = 'MANIFEST';
+ open my $MAN, '>', $pseudoman or croak "Unable to open $pseudoman";
+ print $MAN "src/pmc/$_\n" for @pmcs[0..2];
+ close $MAN or croak;
+ {
+ my ($stdout, $stderr);
+ my @sorted_pmcs;
+ capture( sub {
+ @sorted_pmcs = split / /,
+ auto::pmc::get_sorted_pmc_str(@pmcs);
+ },
+ \$stdout,
+ \$stderr,
+ );
+ like( $stderr,
+ qr/PMCs found in \/src\/pmc not found in MANIFEST: $pmcs[3]/,
+ "Got expected warning",
+ );
+ is_deeply(
+ \@sorted_pmcs,
+ [ qw| default.pmc null.pmc env.pmc other.pmc | ],
+ "PMCs sorted correctly"
+ );
+ }
+
+ ok( chdir $cwd, 'changed back to original directory after testing' );
+}
+
+{
+ my $tdir = tempdir( CLEANUP => 1 );
+ ok( chdir $tdir, 'changed to temp directory for testing' );
+
+ my $pmcdir = qq{$tdir/src/pmc};
+ ok(mkpath($pmcdir, { mode => 0755 }), "Able to make directory for testing");
eval { my $order_ref = auto::pmc::get_pmc_order(); };
like($@,
qr/Can't read src\/pmc\/pmc\.num/, "Got expected 'die' message");
@@ -138,6 +199,28 @@
ok( chdir $cwd, 'changed back to original directory after testing' );
}
+my $seen_man = auto::pmc::pmcs_in_manifest();
+ok( keys %{$seen_man}, 'src/pmc/*.pmc files were seen in MANIFEST' );
+
+{
+ my $tdir = tempdir( CLEANUP => 1 );
+ ok( chdir $tdir, 'changed to temp directory for testing' );
+
+ my @pmcs = qw| env.pmc default.pmc null.pmc other.pmc |;
+ my $pseudoman = 'foobar';
+ open my $MAN, '>', $pseudoman or croak "Unable to open $pseudoman";
+ print $MAN "src/pmc/$_\n" for @pmcs;
+ close $MAN or croak;
+
+ my $seen_manifest = auto::pmc::pmcs_in_manifest($pseudoman);
+ is_deeply(
+ $seen_manifest,
+ { map { $_ => 1} @pmcs },
+ "Got expected files in differently named MANIFEST",
+ );
+ ok( chdir $cwd, 'changed back to original directory after testing' );
+}
+
pass("Completed all tests in $0");
################### DOCUMENTATION ###################
Modified: branches/unshared_buffers/t/tools/dump_pbc.t
==============================================================================
--- branches/unshared_buffers/t/tools/dump_pbc.t Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/t/tools/dump_pbc.t Sun Aug 29 17:09:11 2010 (r48719)
@@ -4,7 +4,7 @@
=head1 NAME
-t/tools/dumb_pbc.t - test the script tools/utils/dump_pbc.pl
+t/tools/dumb_pbc.t - test the script tools/dev/dump_pbc.pl
=head1 SYNOPSIS
@@ -34,7 +34,7 @@
my $PARROT = ".$PConfig{slash}$PConfig{test_prog}";
system( "$PARROT --output $pbc_fn $pir_fn" );
- my $cmd = File::Spec->catfile( qw{. tools util dump_pbc.pl} );
+ my $cmd = File::Spec->catfile( qw{. tools dev dump_pbc.pl} );
my $out = `$PConfig{perl} $cmd $pbc_fn`;
like( $out, $snippet, $desc );
Deleted: branches/unshared_buffers/t/tools/pgegrep.t
==============================================================================
--- branches/unshared_buffers/t/tools/pgegrep.t Sun Aug 29 17:09:11 2010 (r48718)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,111 +0,0 @@
-#! perl
-# Copyright (C) 2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/tools/pgegrep.t - test the script tools/utils/pgegrep
-
-=head1 SYNOPSIS
-
- % prove t/tools/pgegrep.t
-
-=head1 DESCRIPTION
-
-Tests the features of of the C<pgegrep> utility.
-
-=cut
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-
-use Fatal qw{open close};
-use Test::More;
-use Parrot::Test tests => 10;
-use Parrot::Config;
-use File::Spec ();
-
-my $testdata = File::Spec->catfile(qw{. t tools testdata });
-my $testdata_escaped = $testdata;
-$testdata_escaped =~ s!\\!\\\\!g;
-
-sub pgegrep_output_like {
- my ($options, $snippet, $desc) = @_;
-
- my $PARROT = ".$PConfig{slash}$PConfig{test_prog}";
- my $pgegrep = File::Spec->catfile( qw{. tools util pgegrep} );
- my $out = `$PARROT $pgegrep $options`;
-
- like( $out, $snippet, $desc );
-
- return;
-}
-
-pgegrep_output_like(
- '-V',
- qr!\Qpgegrep v0.0.1\E!,
- 'pge reports correct version'
-);
-
-pgegrep_output_like(
- "cat $testdata",
- qr!keyboardcat!,
- 'basic sanity of matching a literal'
-);
-
-pgegrep_output_like(
- "-n cat $testdata",
- qr!1:keyboardcat!,
- 'matching a literal with line number'
-);
-
-pgegrep_output_like(
- "--line-number cat $testdata",
- qr!1:keyboardcat!,
- 'matching a literal with line number with long option'
-);
-
-pgegrep_output_like(
- "-H cat $testdata",
- qr!$testdata_escaped:keyboardcat!,
- 'matching a literal with file name'
-);
-
-pgegrep_output_like(
- "--with-filename cat $testdata",
- qr!$testdata_escaped:keyboardcat!,
- 'matching a literal with file name with long option'
-);
-
-
-pgegrep_output_like(
- "-v cat $testdata",
- qr!saxophonegiraffe!,
- 'test inversion of match'
-);
-
-pgegrep_output_like(
- "--invert-match cat $testdata",
- qr!saxophonegiraffe!,
- 'test inversion of match with long option'
-);
-
-pgegrep_output_like(
- "-l cat $testdata",
- qr!$testdata_escaped!,
- 'find files that match'
-);
-
-pgegrep_output_like(
- "--files-with-matches cat $testdata",
- qr!$testdata_escaped!,
- 'find files that match with long option'
-);
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Copied: branches/unshared_buffers/tools/build/README (from r48712, trunk/tools/build/README)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/build/README Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/build/README)
@@ -0,0 +1,13 @@
+# $Id$
+README for tools/build/
+
+This directory is intended to hold programs, templates and configuration files
+invoked by the default 'make' target ('make all'), with or without
+command-line options, during the Parrot build process.
+
+Programs, templates and configuration files invoked by 'make install' or
+'make install-dev' should be placed in tools/release/.
+
+Other things being equal, programs, templates and configuration files invoked
+by all other 'make' targets (e.g., 'make headerizer') should be placed in
+tools/dev/.
Deleted: branches/unshared_buffers/tools/build/addopstags.pl
==============================================================================
--- branches/unshared_buffers/tools/build/addopstags.pl Sun Aug 29 17:09:11 2010 (r48718)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,54 +0,0 @@
-#!perl
-
-# Copyright (C) 2004-2006, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-
-=head1 NAME
-
-tools/build/addopstags.pl - add src/ops/*.ops to tags
-
-=head1 SYNOPSIS
-
- perl tools/build/addopstags.pl src/ops/*.ops
-
-=head1 DESCRIPTION
-
-Add src/ops/*.ops to tags file.
-
-=cut
-
-my %seen;
-my @tags;
-
-# Pull ops tags
-while (<>) {
- if (/\bop \s+ (\w+) \s* \(/x) {
- next if $seen{$1}++;
-
- # tag file excmd xflags
- push @tags, join( "\t", $1, $ARGV, qq{$.;"}, "f" ) . "\n";
- }
-}
-continue {
- close ARGV if eof; # reset $.
-}
-
-# Pull existing tags
-open my $T, '<', 'tags';
-push @tags, <$T>;
-close $T;
-
-# Spit 'em out sorted
-open $T, '>', 'tags';
-print $T sort @tags;
-close $T;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/unshared_buffers/tools/build/headerizer.pl
==============================================================================
--- branches/unshared_buffers/tools/build/headerizer.pl Sun Aug 29 17:09:11 2010 (r48718)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,497 +0,0 @@
-#! perl
-# Copyright (C) 2001-2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-tools/build/headerizer.pl - Generates the function header parts of .h
-files from .c files
-
-=head1 SYNOPSIS
-
- % perl tools/build/headerizer.pl OBJFILES
-
-=head1 DESCRIPTION
-
-Update the headers in F<include/parrot> with the function declarations in
-the F<*.pmc> or F<*.c> files that correspond to the F<*.o> files passed
-on the command line.
-
-=head1 TODO
-
-* Generate docs from funcs
-
-* Somehow handle static functions in the source file
-
-=head1 NOTES
-
-* the .c files MUST have a /* HEADERIZER HFILE: foo/bar.h */ directive in them
-
-* Support for multiple .c files pointing at the same .h file
-
-* Does NOT remove all blocks in the .h file, so if a .c file
-disappears, its block is "orphaned" and will remain there.
-
-=head1 COMMAND-LINE OPTIONS
-
-=over 4
-
-=item C<--macro=X>
-
-Print a list of all functions that have macro X. For example, --macro=PARROT_EXPORT.
-
-=back
-
-=head1 COMMAND-LINE ARGUMENTS
-
-=over 4
-
-=item C<OBJFILES>
-
-One or more object file names.
-
-=back
-
-=cut
-
-use strict;
-use warnings;
-
-use Getopt::Long;
-use lib qw( lib );
-use Parrot::Config;
-use Parrot::Headerizer;
-
-my $headerizer = Parrot::Headerizer->new;
-
-main();
-
-=head1 FUNCTIONS
-
-=head2 extract_function_declaration_and_update_source( $cfile_name )
-
-Extract all the function declarations from the C file specified by
-I<$cfile_name>, and update the comment blocks within.
-
-=cut
-
-sub extract_function_declarations_and_update_source {
- my $cfile_name = shift;
-
- open( my $fhin, '<', $cfile_name ) or die "Can't open $cfile_name: $!";
- my $text = join( '', <$fhin> );
- close $fhin;
-
- my @func_declarations = $headerizer->extract_function_declarations( $text );
- for my $decl ( @func_declarations ) {
- my $specs = $headerizer->function_components_from_declaration( $cfile_name, $decl );
- my $name = $specs->{name};
-
- my $heading = $headerizer->generate_documentation_signature($decl);
-
- $text =~ s/=item C<[^>]*\b$name\b[^>]*>\n+/$heading\n\n/sm or do {
- warn "$cfile_name: $name has no POD\n" unless $name =~ /^yy/; # lexer funcs don't have to have POD
- }
- }
- open( my $fhout, '>', $cfile_name ) or die "Can't create $cfile_name: $!";
- print {$fhout} $text;
- close $fhout;
-
- return @func_declarations;
-}
-
-
-sub attrs_from_args {
- my $func = shift;
- my @args = @_;
-
- my @attrs = ();
- my @mods = ();
-
- my $name = $func->{name};
- my $file = $func->{file};
- my $n = 0;
- for my $arg (@args) {
- ++$n;
- if ( $arg =~ m{ARG(?:MOD|OUT)(?:_NULLOK)?\((.+?)\)} ) {
- my $modified = $1;
- if ( $modified =~ s/.*\*/*/ ) {
- # We're OK
- }
- else {
- $modified =~ s/.* (\w+)$/$1/ or die qq{Unable to figure out the modified parm out of "$modified"};
- }
- push( @mods, "FUNC_MODIFIES($modified)" );
- }
- if ( $arg =~ m{(ARGIN|ARGOUT|ARGMOD|ARGFREE_NOTNULL|NOTNULL)\(} || $arg eq 'PARROT_INTERP' ) {
- push( @attrs, "__attribute__nonnull__($n)" );
- }
- if ( ( $arg =~ m{\*} ) && ( $arg !~ /\b(SHIM|((ARGIN|ARGOUT|ARGMOD)(_NULLOK)?)|ARGFREE(_NOTNULL)?)\b/ ) ) {
- if ( $name !~ /^yy/ ) { # Don't complain about the lexer auto-generated funcs
- $headerizer->squawk( $file, $name, qq{"$arg" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE} );
- }
- }
- if ( ($arg =~ /\bconst\b/) && ($arg =~ /\*/) && ($arg !~ /\*\*/) && ($arg =~ /\b(ARG(MOD|OUT))\b/) ) {
- $headerizer->squawk( $file, $name, qq{"$arg" is const, but that $1 conflicts with const} );
- }
- }
-
- return (@attrs, at mods);
-}
-
-sub asserts_from_args {
- my @args = @_;
- my @asserts;
-
- for my $arg (@args) {
- if ( $arg =~ m{(ARGIN|ARGOUT|ARGMOD|ARGFREE_NOTNULL|NOTNULL)\((.+)\)} ) {
- my $var = $2;
- if($var =~ /\(*\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*\)\s*\(/) {
- # argument is a function pointer
- $var = $1;
- }
- else {
- # try to isolate the variable's name;
- # strip off everything before the final space or asterisk.
- $var =~ s{.+[* ]([^* ]+)$}{$1};
- # strip off a trailing "[]", if any.
- $var =~ s{\[\]$}{};
- }
- push( @asserts, "PARROT_ASSERT_ARG($var)" );
- }
- if( $arg eq 'PARROT_INTERP' ) {
- push( @asserts, "PARROT_ASSERT_ARG(interp)" );
- }
- }
-
- return (@asserts);
-}
-
-sub make_function_decls {
- my @funcs = @_;
-
- my @decls;
- foreach my $func (@funcs) {
- my $multiline = 0;
-
- my $return = $func->{return_type};
- my $alt_void = ' ';
-
- # Splint can't handle /*@alt void@*/ on pointers, although this page
- # http://www.mail-archive.com/lclint-interest@virginia.edu/msg00139.html
- # seems to say that we can.
- if ( $func->{is_ignorable} && ($return !~ /\*/) ) {
- $alt_void = " /*\@alt void@*/\n";
- }
-
- my $decl = sprintf( "%s%s%s(", $return, $alt_void, $func->{name} );
- $decl = "static $decl" if $func->{is_static};
-
- my @args = @{ $func->{args} };
- my @attrs = attrs_from_args( $func, @args );
-
- for my $arg (@args) {
- if ( $arg =~ m{SHIM\((.+)\)} ) {
- $arg = $1;
- if ( $func->{is_static} || ( $arg =~ /\*/ ) ) {
- $arg = "SHIM($arg)";
- }
- else {
- $arg = "NULLOK($arg)";
- }
- }
- }
-
- my $argline = join( ", ", @args );
- if ( length( $decl . $argline ) <= 75 ) {
- $decl = "$decl$argline)";
- }
- else {
- if ( $args[0] =~ /^((SHIM|PARROT)_INTERP|Interp)\b/ ) {
- $decl .= ( shift @args );
- $decl .= "," if @args;
- }
- $argline = join( ",", map { "\n\t$_" } @args );
- $decl = "$decl$argline)";
- $multiline = 1;
- }
-
- my $attrs = join( "", map { "\n\t\t$_" } @attrs );
- if ($attrs) {
- $decl .= $attrs;
- $multiline = 1;
- }
- my @macros = @{ $func->{macros} };
- $multiline = 1 if @macros;
-
- $decl .= $multiline ? ";\n" : ";";
- $decl = join( "\n", @macros, $decl );
- $decl =~ s/\t/ /g;
- push( @decls, $decl );
- }
-
- foreach my $func (@funcs) {
- my @args = @{ $func->{args} };
- my @asserts = asserts_from_args( @args );
-
- my $assert = "#define ASSERT_ARGS_" . $func->{name};
- if(length($func->{name}) > 29) {
- $assert .= " \\\n ";
- }
- $assert .= " __attribute__unused__ int _ASSERT_ARGS_CHECK = (";
- if(@asserts) {
- $assert .= "\\\n ";
- $assert .= join(" \\\n , ", @asserts);
- }
- else {
- $assert .= "0";
- }
- $assert .= ")";
- push(@decls, $assert);
- }
-
- return @decls;
-}
-
-sub read_file {
- my $filename = shift;
-
- open my $fh, '<', $filename or die "couldn't read '$filename': $!";
- my $text = do { local $/ = undef; <$fh> };
- close $fh;
-
- return $text;
-}
-
-sub write_file {
- my $filename = shift;
- my $text = shift;
-
- open my $fh, '>', $filename or die "couldn't write '$filename': $!";
- print {$fh} $text;
- close $fh;
-}
-
-sub replace_headerized_declarations {
- my $source_code = shift;
- my $sourcefile = shift;
- my $hfile = shift;
- my @funcs = @_;
-
- # Allow a way to not headerize statics
- if ( $source_code =~ m{/\*\s*HEADERIZER NONE:\s*$sourcefile\s*\*/} ) {
- return $source_code;
- }
-
- @funcs = sort api_first_then_alpha @funcs;
-
- my @function_decls = make_function_decls(@funcs);
-
- my $function_decls = join( "\n", @function_decls );
- my $STARTMARKER = qr{/\* HEADERIZER BEGIN: $sourcefile \*/\n};
- my $ENDMARKER = qr{/\* HEADERIZER END: $sourcefile \*/\n?};
- my $DO_NOT_TOUCH = q{/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */};
-
- $source_code =~
- s{($STARTMARKER)(?:.*?)($ENDMARKER)}
- {$1$DO_NOT_TOUCH\n\n$function_decls\n$DO_NOT_TOUCH\n$2}s
- or die "Need begin/end HEADERIZER markers for $sourcefile in $hfile\n";
-
- return $source_code;
-}
-
-sub api_first_then_alpha {
- return ( ( $b->{is_api} || 0 ) <=> ( $a->{is_api} || 0 ) )
- || ( lc $a->{name} cmp lc $b->{name} );
-}
-
-sub main {
- my $macro_match;
- GetOptions(
- 'macro=s' => \$macro_match,
- ) or exit(1);
-
- die 'No files specified.' unless @ARGV;
- my %ofiles;
- ++$ofiles{$_} for @ARGV;
- my @ofiles = sort keys %ofiles;
- for (@ofiles) {
- print "$_ is specified more than once.\n" if $ofiles{$_} > 1;
- }
- my %sourcefiles;
- my %sourcefiles_with_statics;
- my %api;
-
- # Walk the object files and find corresponding source (either .c or .pmc)
- for my $ofile (@ofiles) {
- next if $ofile =~ m/^\Qsrc$PConfig{slash}ops\E/;
-
- $ofile =~ s/\\/\//g;
-
- my $is_yacc = ($ofile =~ /\.y$/);
- if ( !$is_yacc ) {
- my $sfile = $ofile;
- $sfile =~ s/\Q$PConfig{o}\E$/.s/;
- next if -f $sfile;
- }
-
- my $cfile = $ofile;
- $cfile =~ s/\Q$PConfig{o}\E$/.c/ or $is_yacc
- or die "$cfile doesn't look like an object file";
-
- my $pmcfile = $ofile;
- $pmcfile =~ s/\Q$PConfig{o}\E$/.pmc/;
-
- my $from_pmc = -f $pmcfile && !$is_yacc;
-
- my $sourcefile = $from_pmc ? $pmcfile : $cfile;
-
- my $source_code = read_file( $sourcefile );
- die qq{can't find HEADERIZER HFILE directive in "$sourcefile"}
- unless $source_code =~
- m{ /\* \s+ HEADERIZER\ HFILE: \s+ ([^*]+?) \s+ \*/ }sx;
-
- my $hfile = $1;
- if ( ( $hfile ne 'none' ) && ( not -f $hfile ) ) {
- die qq{"$hfile" not found (referenced from "$sourcefile")};
- }
-
- my @decls;
- if ( $macro_match ) {
- @decls = $headerizer->extract_function_declarations( $source_code );
- }
- else {
- @decls = extract_function_declarations_and_update_source( $sourcefile );
- }
-
- for my $decl (@decls) {
- my $components = $headerizer->function_components_from_declaration( $sourcefile, $decl );
- push( @{ $sourcefiles{$hfile}->{$sourcefile} }, $components ) unless $hfile eq 'none';
- push( @{ $sourcefiles_with_statics{$sourcefile} }, $components ) if $components->{is_static};
- if ( $macro_match ) {
- if ( grep { $_ eq $macro_match } @{$components->{macros}} ) {
- push( @{ $api{$sourcefile} }, $components );
- }
- }
- }
- } # for @cfiles
-
- if ( $macro_match ) {
- my $nfuncs = 0;
- for my $cfile ( sort keys %api ) {
- my @funcs = sort { $a->{name} cmp $b->{name} } @{$api{$cfile}};
- print "$cfile\n";
- for my $func ( @funcs ) {
- print " $func->{name}\n";
- ++$nfuncs;
- }
- }
- my $s = $nfuncs == 1 ? '' : 's';
- print "$nfuncs $macro_match function$s\n";
- }
- else { # Normal headerization and updating
- # Update all the .h files
- for my $hfile ( sort keys %sourcefiles ) {
- my $sourcefiles = $sourcefiles{$hfile};
-
- my $header = read_file($hfile);
-
- for my $cfile ( sort keys %{$sourcefiles} ) {
- my @funcs = @{ $sourcefiles->{$cfile} };
- @funcs = grep { not $_->{is_static} } @funcs; # skip statics
-
- $header = replace_headerized_declarations( $header, $cfile, $hfile, @funcs );
- }
-
- write_file( $hfile, $header );
- }
-
- # Update all the .c files in place
- for my $cfile ( sort keys %sourcefiles_with_statics ) {
- my @funcs = @{ $sourcefiles_with_statics{$cfile} };
- @funcs = grep { $_->{is_static} } @funcs;
-
- my $source = read_file($cfile);
- $source = replace_headerized_declarations( $source, 'static', $cfile, @funcs );
-
- write_file( $cfile, $source );
- }
- print "Headerization complete.\n";
- }
-
- my %warnings = %{$headerizer->{warnings}};
- if ( keys %warnings ) {
- my $nwarnings = 0;
- my $nwarningfuncs = 0;
- my $nwarningfiles = 0;
- for my $file ( sort keys %warnings ) {
- ++$nwarningfiles;
- print "$file\n";
- my $funcs = $warnings{$file};
- for my $func ( sort keys %{$funcs} ) {
- ++$nwarningfuncs;
- for my $error ( @{ $funcs->{$func} } ) {
- print " $func: $error\n";
- ++$nwarnings;
- }
- }
- }
-
- print "$nwarnings warnings in $nwarningfuncs funcs in $nwarningfiles C files\n";
- }
-
- return;
-}
-
-=head1 NAME
-
-headerizer.pl
-
-=head1 SYNOPSIS
-
- $ tools/build/headerizer.pl [object files]
-
-Generates C function declarations based on the function definitions in
-the C source code.
-
-=head1 DIRECTIVES
-
-The headerizer works off of directives in the source and header files.
-
-One source file's public declarations can only go into one header file.
-However, one header file can have declarations from multiple source files.
-In other words, headers-to-source is one-to-many.
-
-=over 4
-
-=item HEADERIZER BEGIN: F<source-filename> / HEADERIZER END: F<source-filename>
-
-Marks the beginning and end of a block of declarations in a header file.
-
- # In file foo.h
- /* HEADERIZER BEGIN: src/foo.c */
- /* HEADERIZER END: src/foo.c */
-
- /* HEADERIZER BEGIN: src/bar.c */
- /* HEADERIZER END: src/bar.c */
-
-=item HEADERIZER HFILE: F<header-filename>
-
-Tells the headerizer where the declarations for the functions should go
-
- # In file foo.c
- /* HEADERIZER HFILE: foo.h */
-
- # In file bar.c
- /* HEADERIZER HFILE: foo.h */
-
-=back
-
-=cut
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Copied: branches/unshared_buffers/tools/dev/README (from r48712, trunk/tools/dev/README)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/README Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/README)
@@ -0,0 +1,7 @@
+# $Id$
+README for tools/dev/
+
+This directory is intended to hold programs, templates and configuration files
+found useful by Parrot developed other than those (a) invoked by the default
+'make' target ('make all'), with or without command-line options, during the
+Parrot build process; or (b) invoked by 'make install' or 'make install-dev'.
Copied: branches/unshared_buffers/tools/dev/addopstags.pl (from r48712, trunk/tools/dev/addopstags.pl)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/addopstags.pl Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/addopstags.pl)
@@ -0,0 +1,54 @@
+#!perl
+
+# Copyright (C) 2004-2006, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+
+=head1 NAME
+
+tools/dev/addopstags.pl - add src/ops/*.ops to tags
+
+=head1 SYNOPSIS
+
+ perl tools/dev/addopstags.pl src/ops/*.ops
+
+=head1 DESCRIPTION
+
+Add src/ops/*.ops to tags file.
+
+=cut
+
+my %seen;
+my @tags;
+
+# Pull ops tags
+while (<>) {
+ if (/\bop \s+ (\w+) \s* \(/x) {
+ next if $seen{$1}++;
+
+ # tag file excmd xflags
+ push @tags, join( "\t", $1, $ARGV, qq{$.;"}, "f" ) . "\n";
+ }
+}
+continue {
+ close ARGV if eof; # reset $.
+}
+
+# Pull existing tags
+open my $T, '<', 'tags';
+push @tags, <$T>;
+close $T;
+
+# Spit 'em out sorted
+open $T, '>', 'tags';
+print $T sort @tags;
+close $T;
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/unshared_buffers/tools/dev/as2c.pl
==============================================================================
--- branches/unshared_buffers/tools/dev/as2c.pl Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/tools/dev/as2c.pl Sun Aug 29 17:09:11 2010 (r48719)
@@ -6,16 +6,16 @@
=head1 NAME
-as2c.pl - convert gas assembler listing to i386 code array
+as2c.pl - convert GNU Assembler listing to i386 code array
=head1 DESCRIPTION
-The plan behind of as2c.pl is to create compiler independent
-machine code for an architecture. Code in e.g. masm, gas, nasm syntax
-doesn't fit all compilers. Therefore as2c.pl translates gas syntax to a
+The plan behind of F<as2c.pl> is to create compiler independent
+machine code for an architecture. Code in, I<e.g.,> MASM, GAS, NASM syntax
+doesn't fit all compilers. Therefore F<as2c.pl> translates GAS syntax to a
bytestring, which is then used as the asm code.
-as2c.pl is used very rarely. Once the code is generated and
+F<as2c.pl> is used very rarely. Once the code is generated and
checked in, there's usually no need to change it later.
=cut
@@ -125,6 +125,16 @@
close $IN;
}
+=head1 REFERENCES
+
+GNU Assembler: (GAS) L<http://en.wikipedia.org/wiki/GNU_Assembler>
+
+Microsoft Macro Assembler (MASM): L<http://en.wikipedia.org/wiki/Microsoft_Macro_Assembler>
+
+Netwide Assembler (NASM) L<http://en.wikipedia.org/wiki/Netwide_Assembler>
+
+=cut
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
Copied: branches/unshared_buffers/tools/dev/dump_pbc.pl (from r48712, trunk/tools/dev/dump_pbc.pl)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/dump_pbc.pl Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/dump_pbc.pl)
@@ -0,0 +1,125 @@
+#! perl
+
+# Copyright (C) 2008, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+tools/dev/dump_pbc.pl - Weave together PBC disassembly with PIR source
+
+=head1 SYNOPSIS
+
+ perl tools/dev/dump_pbc.pl foo.pbc
+
+=head1 DESCRIPTION
+
+dump_pbc.pl uses Parrot's F<pbc_disassemble> program to disassemble the opcodes
+in a PBC (Parrot ByteCode) file, then weaves the disassembly together with
+the original PIR source file(s). This makes it easier to see how the PIR
+syntactic sugar is desugared into raw Parrot opcodes.
+
+=head1 BUGS
+
+This program has only been tested for a few simple cases. Also, the name
+might suggest a different use than its actual purpose.
+
+While it is not a bug in F<dump_pbc.pl> per se, there is a line numbering
+bug for some PBC opcode sequences that will result in the disassembled
+opcodes appearing just before the source lines they represent, rather
+than just after. There does not appear to be consensus yet about where
+this bug actually resides.
+
+=cut
+
+use strict;
+use warnings;
+use Cwd;
+use FindBin;
+
+my ($PARROT_ROOT, $RUNTIME_DIR);
+BEGIN {
+ $PARROT_ROOT = Cwd::abs_path("$FindBin::Bin/../..");
+ $RUNTIME_DIR = "$PARROT_ROOT/runtime/parrot";
+}
+
+use lib "$PARROT_ROOT/lib";
+use Parrot::Config '%PConfig';
+
+my $DISASSEMBLER = "$PConfig{build_dir}$PConfig{slash}pbc_disassemble$PConfig{exe}";
+
+go(@ARGV);
+
+sub go {
+ my $pbc = shift;
+
+ # The following mess brought to you by Win32, where pipe open doesn't work,
+ # and thus its greater security and cleaner error handling are unavailable.
+
+ -f $pbc && -r _
+ or die "PBC file '$pbc' does not exist or is not readable.\n";
+
+ -f $DISASSEMBLER && -x _
+ or die "Can't find disassembler '$DISASSEMBLER';"
+ . "did you remember to make parrot first?\n";
+
+ my @dis = `$DISASSEMBLER $pbc`;
+ die "No disassembly; errors: $?, $!" unless @dis;
+
+ my $cur_file = '';
+ my $cur_line = -1;
+ my %cache;
+
+ foreach (@dis) {
+ if (/^(?:# )?Current Source Filename (.*)/) {
+ my $found = $1;
+ $found =~ s/^'//;
+ $found =~ s/'$//;
+ if ($cur_file ne $found) {
+ $cur_file = $found;
+ $cache{$cur_file} ||= slurp_file($cur_file);
+ $cur_line = -1;
+
+ print "\n#### $cur_file\n";
+ }
+ }
+ elsif (my ($info, $seq, $pc, $line, $code) = /^((\d+)-(\d+) (\d+): )(.*)/) {
+ my $int_line = int $line;
+ my $len_line = length $line;
+ if ($cur_line != $int_line) {
+ $cur_line = 0 if $cur_line == -1;
+ print "\n";
+ foreach my $i ($cur_line + 1 .. $int_line) {
+ my $source_code = $cache{$cur_file}[$i-1];
+ # next unless $source_code =~ /\S/;
+ printf "# %*d: %s", $len_line, $i, $source_code;
+ print "\n" if $source_code =~ /^\.end/;
+ }
+ $cur_line = $int_line;
+ }
+
+ print ' ' x ($len_line + 4), "$code\n";
+ }
+ }
+}
+
+sub slurp_file {
+ my $file = shift;
+ my $source;
+
+ open $source, '<', $file
+ or open $source, '<', "$PARROT_ROOT/$file"
+ or open $source, '<', "$RUNTIME_DIR/$file"
+ or die "Could not open source file '$file': $!";
+
+ my @lines = <$source>;
+
+ return \@lines;
+}
+
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/unshared_buffers/tools/dev/faces.pl
==============================================================================
--- branches/unshared_buffers/tools/dev/faces.pl Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/tools/dev/faces.pl Sun Aug 29 17:09:11 2010 (r48719)
@@ -7,9 +7,21 @@
use Gravatar::URL;
-=for usage
+=head1 NAME
-use to generate source for http://trac.parrot.org/parrot/wiki/ParrotFaces
+faces.pl - Generate source for Parrot wiki ParrotFaces page
+
+=head1 SYNOPSIS
+
+ perl tools/dev/faces.pl
+
+=head1 DESCRIPTION
+
+Used to create L<http://trac.parrot.org/parrot/wiki/ParrotFaces>
+
+=head1 PREREQUISITE
+
+Gravatar::URL (L<http://search.cpan.org/dist/Gravatar-URL/>).
=cut
Modified: branches/unshared_buffers/tools/dev/fetch_languages.pl
==============================================================================
--- branches/unshared_buffers/tools/dev/fetch_languages.pl Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/tools/dev/fetch_languages.pl Sun Aug 29 17:09:11 2010 (r48719)
@@ -3,7 +3,8 @@
=head1 NAME
-fetch_languages.pl - A helper to fetch language implementations from the SCM repoistories
+fetch_languages.pl - Fetch language implementations from their source code
+management repositories
=head1 SYNOPSIS
Copied: branches/unshared_buffers/tools/dev/headerizer.pl (from r48712, trunk/tools/dev/headerizer.pl)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/headerizer.pl Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/headerizer.pl)
@@ -0,0 +1,464 @@
+#! perl
+# Copyright (C) 2001-2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+tools/dev/headerizer.pl - Generates the function header parts of .h
+files from .c files
+
+=head1 SYNOPSIS
+
+ $ perl tools/dev/headerizer.pl [object files]
+
+Generates C function declarations based on the function definitions in
+the C source code.
+
+=head1 DESCRIPTION
+
+The headerizer works off of directives in the source and header files.
+
+One source file's public declarations can only go into one header file.
+However, one header file can have declarations from multiple source files.
+In other words, headers-to-source is one-to-many.
+
+=over 4
+
+=item C<HEADERIZER BEGIN:> F<source-filename> / C<HEADERIZER END:> F<source-filename>
+
+Marks the beginning and end of a block of declarations in a header file.
+
+ # In file foo.h
+ /* HEADERIZER BEGIN: src/foo.c */
+ /* HEADERIZER END: src/foo.c */
+
+ /* HEADERIZER BEGIN: src/bar.c */
+ /* HEADERIZER END: src/bar.c */
+
+=item C<HEADERIZER HFILE:> F<header-filename>
+
+Tells the headerizer where the declarations for the functions should go
+
+ # In file foo.c
+ /* HEADERIZER HFILE: foo.h */
+
+ # In file bar.c
+ /* HEADERIZER HFILE: foo.h */
+
+=back
+
+=head1 COMMAND-LINE OPTIONS
+
+=over 4
+
+=item C<--macro=X>
+
+Print a list of all functions that have macro X. For example, --macro=PARROT_EXPORT.
+
+=back
+
+=cut
+
+use strict;
+use warnings;
+
+use Getopt::Long;
+use lib qw( lib );
+use Parrot::Config;
+use Parrot::Headerizer;
+
+my $headerizer = Parrot::Headerizer->new;
+
+main();
+
+=head1 FUNCTIONS
+
+=head2 extract_function_declaration_and_update_source( $cfile_name )
+
+Extract all the function declarations from the C file specified by
+I<$cfile_name>, and update the comment blocks within.
+
+=cut
+
+sub extract_function_declarations_and_update_source {
+ my $cfile_name = shift;
+
+ open( my $fhin, '<', $cfile_name ) or die "Can't open $cfile_name: $!";
+ my $text = join( '', <$fhin> );
+ close $fhin;
+
+ my @func_declarations = $headerizer->extract_function_declarations( $text );
+ for my $decl ( @func_declarations ) {
+ my $specs = $headerizer->function_components_from_declaration( $cfile_name, $decl );
+ my $name = $specs->{name};
+
+ my $heading = $headerizer->generate_documentation_signature($decl);
+
+ $text =~ s/=item C<[^>]*\b$name\b[^>]*>\n+/$heading\n\n/sm or do {
+ warn "$cfile_name: $name has no POD\n" unless $name =~ /^yy/; # lexer funcs don't have to have POD
+ }
+ }
+ open( my $fhout, '>', $cfile_name ) or die "Can't create $cfile_name: $!";
+ print {$fhout} $text;
+ close $fhout;
+
+ return @func_declarations;
+}
+
+
+sub attrs_from_args {
+ my $func = shift;
+ my @args = @_;
+
+ my @attrs = ();
+ my @mods = ();
+
+ my $name = $func->{name};
+ my $file = $func->{file};
+ my $n = 0;
+ for my $arg (@args) {
+ ++$n;
+ if ( $arg =~ m{ARG(?:MOD|OUT)(?:_NULLOK)?\((.+?)\)} ) {
+ my $modified = $1;
+ if ( $modified =~ s/.*\*/*/ ) {
+ # We're OK
+ }
+ else {
+ $modified =~ s/.* (\w+)$/$1/ or die qq{Unable to figure out the modified parm out of "$modified"};
+ }
+ push( @mods, "FUNC_MODIFIES($modified)" );
+ }
+ if ( $arg =~ m{(ARGIN|ARGOUT|ARGMOD|ARGFREE_NOTNULL|NOTNULL)\(} || $arg eq 'PARROT_INTERP' ) {
+ push( @attrs, "__attribute__nonnull__($n)" );
+ }
+ if ( ( $arg =~ m{\*} ) && ( $arg !~ /\b(SHIM|((ARGIN|ARGOUT|ARGMOD)(_NULLOK)?)|ARGFREE(_NOTNULL)?)\b/ ) ) {
+ if ( $name !~ /^yy/ ) { # Don't complain about the lexer auto-generated funcs
+ $headerizer->squawk( $file, $name, qq{"$arg" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE} );
+ }
+ }
+ if ( ($arg =~ /\bconst\b/) && ($arg =~ /\*/) && ($arg !~ /\*\*/) && ($arg =~ /\b(ARG(MOD|OUT))\b/) ) {
+ $headerizer->squawk( $file, $name, qq{"$arg" is const, but that $1 conflicts with const} );
+ }
+ }
+
+ return (@attrs, at mods);
+}
+
+sub asserts_from_args {
+ my @args = @_;
+ my @asserts;
+
+ for my $arg (@args) {
+ if ( $arg =~ m{(ARGIN|ARGOUT|ARGMOD|ARGFREE_NOTNULL|NOTNULL)\((.+)\)} ) {
+ my $var = $2;
+ if($var =~ /\(*\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*\)\s*\(/) {
+ # argument is a function pointer
+ $var = $1;
+ }
+ else {
+ # try to isolate the variable's name;
+ # strip off everything before the final space or asterisk.
+ $var =~ s{.+[* ]([^* ]+)$}{$1};
+ # strip off a trailing "[]", if any.
+ $var =~ s{\[\]$}{};
+ }
+ push( @asserts, "PARROT_ASSERT_ARG($var)" );
+ }
+ if( $arg eq 'PARROT_INTERP' ) {
+ push( @asserts, "PARROT_ASSERT_ARG(interp)" );
+ }
+ }
+
+ return (@asserts);
+}
+
+sub make_function_decls {
+ my @funcs = @_;
+
+ my @decls;
+ foreach my $func (@funcs) {
+ my $multiline = 0;
+
+ my $return = $func->{return_type};
+ my $alt_void = ' ';
+
+ # Splint can't handle /*@alt void@*/ on pointers, although this page
+ # http://www.mail-archive.com/lclint-interest@virginia.edu/msg00139.html
+ # seems to say that we can.
+ if ( $func->{is_ignorable} && ($return !~ /\*/) ) {
+ $alt_void = " /*\@alt void@*/\n";
+ }
+
+ my $decl = sprintf( "%s%s%s(", $return, $alt_void, $func->{name} );
+ $decl = "static $decl" if $func->{is_static};
+
+ my @args = @{ $func->{args} };
+ my @attrs = attrs_from_args( $func, @args );
+
+ for my $arg (@args) {
+ if ( $arg =~ m{SHIM\((.+)\)} ) {
+ $arg = $1;
+ if ( $func->{is_static} || ( $arg =~ /\*/ ) ) {
+ $arg = "SHIM($arg)";
+ }
+ else {
+ $arg = "NULLOK($arg)";
+ }
+ }
+ }
+
+ my $argline = join( ", ", @args );
+ if ( length( $decl . $argline ) <= 75 ) {
+ $decl = "$decl$argline)";
+ }
+ else {
+ if ( $args[0] =~ /^((SHIM|PARROT)_INTERP|Interp)\b/ ) {
+ $decl .= ( shift @args );
+ $decl .= "," if @args;
+ }
+ $argline = join( ",", map { "\n\t$_" } @args );
+ $decl = "$decl$argline)";
+ $multiline = 1;
+ }
+
+ my $attrs = join( "", map { "\n\t\t$_" } @attrs );
+ if ($attrs) {
+ $decl .= $attrs;
+ $multiline = 1;
+ }
+ my @macros = @{ $func->{macros} };
+ $multiline = 1 if @macros;
+
+ $decl .= $multiline ? ";\n" : ";";
+ $decl = join( "\n", @macros, $decl );
+ $decl =~ s/\t/ /g;
+ push( @decls, $decl );
+ }
+
+ foreach my $func (@funcs) {
+ my @args = @{ $func->{args} };
+ my @asserts = asserts_from_args( @args );
+
+ my $assert = "#define ASSERT_ARGS_" . $func->{name};
+ if(length($func->{name}) > 29) {
+ $assert .= " \\\n ";
+ }
+ $assert .= " __attribute__unused__ int _ASSERT_ARGS_CHECK = (";
+ if(@asserts) {
+ $assert .= "\\\n ";
+ $assert .= join(" \\\n , ", @asserts);
+ }
+ else {
+ $assert .= "0";
+ }
+ $assert .= ")";
+ push(@decls, $assert);
+ }
+
+ return @decls;
+}
+
+sub read_file {
+ my $filename = shift;
+
+ open my $fh, '<', $filename or die "couldn't read '$filename': $!";
+ my $text = do { local $/ = undef; <$fh> };
+ close $fh;
+
+ return $text;
+}
+
+sub write_file {
+ my $filename = shift;
+ my $text = shift;
+
+ open my $fh, '>', $filename or die "couldn't write '$filename': $!";
+ print {$fh} $text;
+ close $fh;
+}
+
+sub replace_headerized_declarations {
+ my $source_code = shift;
+ my $sourcefile = shift;
+ my $hfile = shift;
+ my @funcs = @_;
+
+ # Allow a way to not headerize statics
+ if ( $source_code =~ m{/\*\s*HEADERIZER NONE:\s*$sourcefile\s*\*/} ) {
+ return $source_code;
+ }
+
+ @funcs = sort api_first_then_alpha @funcs;
+
+ my @function_decls = make_function_decls(@funcs);
+
+ my $function_decls = join( "\n", @function_decls );
+ my $STARTMARKER = qr{/\* HEADERIZER BEGIN: $sourcefile \*/\n};
+ my $ENDMARKER = qr{/\* HEADERIZER END: $sourcefile \*/\n?};
+ my $DO_NOT_TOUCH = q{/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */};
+
+ $source_code =~
+ s{($STARTMARKER)(?:.*?)($ENDMARKER)}
+ {$1$DO_NOT_TOUCH\n\n$function_decls\n$DO_NOT_TOUCH\n$2}s
+ or die "Need begin/end HEADERIZER markers for $sourcefile in $hfile\n";
+
+ return $source_code;
+}
+
+sub api_first_then_alpha {
+ return ( ( $b->{is_api} || 0 ) <=> ( $a->{is_api} || 0 ) )
+ || ( lc $a->{name} cmp lc $b->{name} );
+}
+
+sub main {
+ my $macro_match;
+ GetOptions(
+ 'macro=s' => \$macro_match,
+ ) or exit(1);
+
+ die 'No files specified.' unless @ARGV;
+ my %ofiles;
+ ++$ofiles{$_} for @ARGV;
+ my @ofiles = sort keys %ofiles;
+ for (@ofiles) {
+ print "$_ is specified more than once.\n" if $ofiles{$_} > 1;
+ }
+ my %sourcefiles;
+ my %sourcefiles_with_statics;
+ my %api;
+
+ # Walk the object files and find corresponding source (either .c or .pmc)
+ for my $ofile (@ofiles) {
+ next if $ofile =~ m/^\Qsrc$PConfig{slash}ops\E/;
+
+ $ofile =~ s/\\/\//g;
+
+ my $is_yacc = ($ofile =~ /\.y$/);
+ if ( !$is_yacc ) {
+ my $sfile = $ofile;
+ $sfile =~ s/\Q$PConfig{o}\E$/.s/;
+ next if -f $sfile;
+ }
+
+ my $cfile = $ofile;
+ $cfile =~ s/\Q$PConfig{o}\E$/.c/ or $is_yacc
+ or die "$cfile doesn't look like an object file";
+
+ my $pmcfile = $ofile;
+ $pmcfile =~ s/\Q$PConfig{o}\E$/.pmc/;
+
+ my $from_pmc = -f $pmcfile && !$is_yacc;
+
+ my $sourcefile = $from_pmc ? $pmcfile : $cfile;
+
+ my $source_code = read_file( $sourcefile );
+ die qq{can't find HEADERIZER HFILE directive in "$sourcefile"}
+ unless $source_code =~
+ m{ /\* \s+ HEADERIZER\ HFILE: \s+ ([^*]+?) \s+ \*/ }sx;
+
+ my $hfile = $1;
+ if ( ( $hfile ne 'none' ) && ( not -f $hfile ) ) {
+ die qq{"$hfile" not found (referenced from "$sourcefile")};
+ }
+
+ my @decls;
+ if ( $macro_match ) {
+ @decls = $headerizer->extract_function_declarations( $source_code );
+ }
+ else {
+ @decls = extract_function_declarations_and_update_source( $sourcefile );
+ }
+
+ for my $decl (@decls) {
+ my $components = $headerizer->function_components_from_declaration( $sourcefile, $decl );
+ push( @{ $sourcefiles{$hfile}->{$sourcefile} }, $components ) unless $hfile eq 'none';
+ push( @{ $sourcefiles_with_statics{$sourcefile} }, $components ) if $components->{is_static};
+ if ( $macro_match ) {
+ if ( grep { $_ eq $macro_match } @{$components->{macros}} ) {
+ push( @{ $api{$sourcefile} }, $components );
+ }
+ }
+ }
+ } # for @cfiles
+
+ if ( $macro_match ) {
+ my $nfuncs = 0;
+ for my $cfile ( sort keys %api ) {
+ my @funcs = sort { $a->{name} cmp $b->{name} } @{$api{$cfile}};
+ print "$cfile\n";
+ for my $func ( @funcs ) {
+ print " $func->{name}\n";
+ ++$nfuncs;
+ }
+ }
+ my $s = $nfuncs == 1 ? '' : 's';
+ print "$nfuncs $macro_match function$s\n";
+ }
+ else { # Normal headerization and updating
+ # Update all the .h files
+ for my $hfile ( sort keys %sourcefiles ) {
+ my $sourcefiles = $sourcefiles{$hfile};
+
+ my $header = read_file($hfile);
+
+ for my $cfile ( sort keys %{$sourcefiles} ) {
+ my @funcs = @{ $sourcefiles->{$cfile} };
+ @funcs = grep { not $_->{is_static} } @funcs; # skip statics
+
+ $header = replace_headerized_declarations( $header, $cfile, $hfile, @funcs );
+ }
+
+ write_file( $hfile, $header );
+ }
+
+ # Update all the .c files in place
+ for my $cfile ( sort keys %sourcefiles_with_statics ) {
+ my @funcs = @{ $sourcefiles_with_statics{$cfile} };
+ @funcs = grep { $_->{is_static} } @funcs;
+
+ my $source = read_file($cfile);
+ $source = replace_headerized_declarations( $source, 'static', $cfile, @funcs );
+
+ write_file( $cfile, $source );
+ }
+ print "Headerization complete.\n";
+ }
+
+ my %warnings = %{$headerizer->{warnings}};
+ if ( keys %warnings ) {
+ my $nwarnings = 0;
+ my $nwarningfuncs = 0;
+ my $nwarningfiles = 0;
+ for my $file ( sort keys %warnings ) {
+ ++$nwarningfiles;
+ print "$file\n";
+ my $funcs = $warnings{$file};
+ for my $func ( sort keys %{$funcs} ) {
+ ++$nwarningfuncs;
+ for my $error ( @{ $funcs->{$func} } ) {
+ print " $func: $error\n";
+ ++$nwarnings;
+ }
+ }
+ }
+
+ print "$nwarnings warnings in $nwarningfuncs funcs in $nwarningfiles C files\n";
+ }
+
+ return;
+}
+
+# From earlier documentation:
+# * Generate docs from funcs
+# * Somehow handle static functions in the source file
+# * the .c files MUST have a /* HEADERIZER HFILE: foo/bar.h */ directive in them
+# * Support for multiple .c files pointing at the same .h file
+# * Does NOT remove all blocks in the .h file, so if a .c file
+# disappears, its block is "orphaned" and will remain there.
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Copied: branches/unshared_buffers/tools/dev/mk_language_shell.in (from r48712, trunk/tools/dev/mk_language_shell.in)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/mk_language_shell.in Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/mk_language_shell.in)
@@ -0,0 +1,787 @@
+#!@perl@
+# Copyright (C) 2007-2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+tools/dev/mk_language_shell.pl -- create initial files for a new language implementation
+
+=head1 SYNOPSIS
+
+ % perl tools/dev/mk_language_shell.pl [options] Xyz [path]
+
+option:
+
+ --with-doc
+ --with-ops
+ --with-pmc
+
+=head1 DESCRIPTION
+
+This script populates a directory with files for building a
+new language translator in Parrot. The first argument is the
+name of the language to be built. The C<path> argument
+says where to populate the directory, if no C<path> is specified
+then it is taken to be a subdirectory of the current directory
+with the same name as the language (converted to lowercase).
+
+For a language 'Xyz', this script will create the following
+files and directories (relative to C<path>, which defaults
+to F<xyz> if an explicit C<path> isn't given):
+
+ PARROT_REVISION
+ README
+ setup.pir
+ xyz.pir
+ doc/running.pod
+ doc/Xyz.pod
+ src/Xyz.pir
+ src/Xyz/Grammar.pm
+ src/Xyz/Actions.pm
+ src/Xyz/Compiler.pm
+ src/Xyz/Runtime.pm
+ src/pmc/xyz.pmc
+ src/ops/xyz.ops
+ src/xyz.pir
+ t/00-sanity.t
+ xyz/.ignore
+
+Any files that already exist are skipped, so this script can
+be used to repopulate a language directory with omitted files.
+
+If all goes well, after creating the language shell one can simply
+change to the language directory and type
+
+ $ parrot setup.pir
+ $ parrot setup.pir test
+
+to verify that the new language compiles and configures properly.
+
+=cut
+
+use strict;
+use warnings;
+
+use FindBin qw($Bin);
+use lib "$Bin/../lib"; # install location
+use lib "$Bin/../../lib"; # build location
+
+use File::Path;
+use File::Spec;
+use Getopt::Long;
+
+use Parrot::Config qw/ %PConfig /;
+
+my ($with_doc, $with_ops, $with_pmc);
+GetOptions(
+ 'with-doc' => \$with_doc,
+ 'with-ops' => \$with_ops,
+ 'with-pmc' => \$with_pmc,
+);
+
+unless (@ARGV) {
+ die "usage: $0 language [path]\n";
+}
+
+## determine the language we're trying to build
+my $lang = $ARGV[0];
+my $lclang = lc $lang;
+my $uclang = uc $lang;
+
+## the name and revision of the script, for use in the generated README
+my $script = $0;
+my $rev = '$Revision$';
+$rev =~ s/^\D*(\d+)\D*$/$1/;
+
+my $no_doc = $with_doc ? '' : '#';
+my $no_ops = $with_ops ? '' : '#';
+my $no_pmc = $with_pmc ? '' : '#';
+
+## get the path from the command line, or if not supplied then
+## use $lclang.
+my $path = $ARGV[1] || $lclang;
+
+## now loop through the file information (see below), substituting
+## any instances of @lang@, @lclang@, @UCLANG@, and @Id@ with
+## the language name or the svn id tag. If the line has the form
+## __filepath__, then start a new file.
+my $fh;
+while (<DATA>) {
+ last if /^__DATA__$/;
+ s{\@lang\@} {$lang}g;
+ s{\@lclang\@} {$lclang}ig;
+ s{\@UCLANG\@} {$uclang}ig;
+ s{\@Id\@} {\$Id\$}ig;
+ s{\@script\@} {$script}ig;
+ s{\@rev\@} {$rev}ig;
+ s{\@no_doc\@} {$no_doc}ig;
+ s{\@no_ops\@} {$no_ops}ig;
+ s{\@no_pmc\@} {$no_pmc}ig;
+ s{\@rev\@} {$rev}ig;
+ if (/^__(.*)__$/) { start_new_file("$path$PConfig{slash}$1"); }
+ elsif ($fh) { print $fh $_; }
+}
+## close the last file
+close($fh) if $fh;
+
+## we're done
+1;
+
+
+## this function closes any previous opened file, and determines
+## if we're creating a new file. It also calls C<mkpath> to
+## create any needed parent subdirectories.
+sub start_new_file {
+ my ($filepath) = @_;
+ if ($fh) {
+ close $fh;
+ undef $fh;
+ }
+ if (-e $filepath) {
+ print "skipping $filepath\n";
+ return;
+ }
+ if (!$with_doc and $filepath =~ /doc/) {
+ print "no doc: skipping $filepath\n";
+ return;
+ }
+ if (!$with_ops and $filepath =~ /ops/) {
+ print "no ops: skipping $filepath\n";
+ return;
+ }
+ if (!$with_pmc and $filepath =~ /pmc/) {
+ print "no pmc: skipping $filepath\n";
+ return;
+ }
+ if (!$with_ops and!$with_pmc and $filepath =~ /dynext/) {
+ print "no dynext: skipping $filepath\n";
+ return;
+ }
+ my ($volume, $dir, $base) = File::Spec->splitpath($filepath);
+ my $filedir = File::Spec->catpath($volume, $dir);
+ unless (-d $filedir) {
+ print "creating $filedir\n";
+ mkpath( [ $filedir ], 0, 0777 );
+ }
+ print "creating $filepath\n";
+ open $fh, '>', $filepath;
+
+ return;
+}
+
+
+
+### The section below contains the text of the files to be created.
+### The name of the file to be created is given as C<__filepath__>,
+### and all subsequent lines up to the next C<__filepath__> are
+### placed in the file (performing substitutions on @lang@, @lclang@,
+### @UCLANG@, and @Id@ as appropriate).
+
+__DATA__
+__README__
+Language '@lang@' was created with @script@, r at rev@.
+
+ $ parrot setup.pir
+ $ parrot setup.pir test
+
+__setup.pir__
+#!/usr/bin/env parrot
+# @Id@
+
+=head1 NAME
+
+setup.pir - Python distutils style
+
+=head1 DESCRIPTION
+
+No Configure step, no Makefile generated.
+
+=head1 USAGE
+
+ $ parrot setup.pir build
+ $ parrot setup.pir test
+ $ sudo parrot setup.pir install
+
+=cut
+
+.sub 'main' :main
+ .param pmc args
+ $S0 = shift args
+ load_bytecode 'distutils.pbc'
+
+ .local int reqsvn
+ $P0 = new 'FileHandle'
+ $P0.'open'('PARROT_REVISION', 'r')
+ $S0 = $P0.'readline'()
+ reqsvn = $S0
+ $P0.'close'()
+
+ .local pmc config
+ config = get_config()
+ $I0 = config['revision']
+ unless $I0 goto L1
+ unless reqsvn > $I0 goto L1
+ $S1 = "Parrot revision r"
+ $S0 = reqsvn
+ $S1 .= $S0
+ $S1 .= " required (currently r"
+ $S0 = $I0
+ $S1 .= $S0
+ $S1 .= ")\n"
+ print $S1
+ end
+ L1:
+
+ $P0 = new 'Hash'
+ $P0['name'] = '@lang@'
+ $P0['abstract'] = 'the @lang@ compiler'
+ $P0['description'] = 'the @lang@ for Parrot VM.'
+
+ # build
+ at no_ops@ $P1 = new 'Hash'
+ at no_ops@ $P1['@lclang at _ops'] = 'src/ops/@lclang at .ops'
+ at no_ops@ $P0['dynops'] = $P1
+
+ at no_pmc@ $P2 = new 'Hash'
+ at no_pmc@ $P3 = split ' ', 'src/pmc/@lclang at .pmc'
+ at no_pmc@ $P2['@lclang at _group'] = $P3
+ at no_pmc@ $P0['dynpmc'] = $P2
+
+ $P4 = new 'Hash'
+ $P4['src/gen_actions.pir'] = 'src/@lang@/Actions.pm'
+ $P4['src/gen_compiler.pir'] = 'src/@lang@/Compiler.pm'
+ $P4['src/gen_grammar.pir'] = 'src/@lang@/Grammar.pm'
+ $P4['src/gen_runtime.pir'] = 'src/@lang@/Runtime.pm'
+ $P0['pir_nqp-rx'] = $P4
+
+ $P5 = new 'Hash'
+ $P6 = split "\n", <<'SOURCES'
+src/@lclang at .pir
+src/gen_actions.pir
+src/gen_compiler.pir
+src/gen_grammar.pir
+src/gen_runtime.pir
+SOURCES
+ $S0 = pop $P6
+ $P5['@lclang@/@lclang at .pbc'] = $P6
+ $P5['@lclang at .pbc'] = '@lclang at .pir'
+ $P0['pbc_pir'] = $P5
+
+ $P7 = new 'Hash'
+ $P7['parrot- at lclang@'] = '@lclang at .pbc'
+ $P0['installable_pbc'] = $P7
+
+ # test
+ $S0 = get_parrot()
+ $S0 .= ' @lclang at .pbc'
+ $P0['prove_exec'] = $S0
+
+ # install
+ $P0['inst_lang'] = '@lclang@/@lclang at .pbc'
+
+ # dist
+ $P0['doc_files'] = 'README'
+
+ .tailcall setup(args :flat, $P0 :flat :named)
+.end
+
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
+
+__PARROT_REVISION__
+ at rev@
+__doc/@lang at .pod__
+# @Id@
+
+=head1 @lang@
+
+=head1 Design
+
+=head1 SEE ALSO
+
+=cut
+
+# Local Variables:
+# fill-column:78
+# End:
+# vim: expandtab shiftwidth=4:
+__doc/running.pod__
+# @Id@
+
+=head1 Running
+
+This document describes how to use the command line @lclang@ program, which
+...
+
+=head2 Usage
+
+ parrot @lclang at .pbc [OPTIONS] <input>
+
+or
+
+ parrot- at lclang@@exe [OPTIONS] <input>
+
+A number of additional options are available:
+
+ -q Quiet mode; suppress output of summary at the end.
+
+=cut
+
+# Local Variables:
+# fill-column:78
+# End:
+# vim: expandtab shiftwidth=4:
+
+__dynext/.ignore__
+
+__ at lclang@/.ignore__
+
+__ at lclang@.pir__
+# @Id@
+
+=head1 TITLE
+
+ at lclang@.pir - A @lang@ compiler.
+
+=head2 Description
+
+This is the entry point for the @lang@ compiler.
+
+=head2 Functions
+
+=over 4
+
+=item main(args :slurpy) :main
+
+Start compilation by passing any command line C<args>
+to the @lang@ compiler.
+
+=cut
+
+.sub 'main' :main
+ .param pmc args
+
+ load_language '@lclang@'
+
+ $P0 = compreg '@lang@'
+ $P1 = $P0.'command_line'(args)
+.end
+
+=back
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
+
+__src/@lclang at .pir__
+# @Id@
+
+=head1 TITLE
+
+ at lclang@.pir - A @lang@ compiler.
+
+=head2 Description
+
+This is the base file for the @lang@ compiler.
+
+This file includes the parsing and grammar rules from
+the src/ directory, loads the relevant PGE libraries,
+and registers the compiler under the name '@lang@'.
+
+=head2 Functions
+
+=over 4
+
+=item onload()
+
+Creates the @lang@ compiler using a C<PCT::HLLCompiler>
+object.
+
+=cut
+
+.HLL '@lclang@'
+ at no_pmc@.loadlib '@lclang at _group'
+
+.namespace []
+
+.sub '' :anon :load
+ load_bytecode 'HLL.pbc'
+
+ .local pmc hllns, parrotns, imports
+ hllns = get_hll_namespace
+ parrotns = get_root_namespace ['parrot']
+ imports = split ' ', 'PAST PCT HLL Regex Hash'
+ parrotns.'export_to'(hllns, imports)
+.end
+
+.include 'src/gen_grammar.pir'
+.include 'src/gen_actions.pir'
+.include 'src/gen_compiler.pir'
+.include 'src/gen_runtime.pir'
+
+=back
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
+
+__src/@lang@/Grammar.pm__
+=begin overview
+
+This is the grammar for @lang@ in Perl 6 rules.
+
+=end overview
+
+grammar @lang@::Grammar is HLL::Grammar;
+
+token TOP {
+ <statementlist>
+ [ $ || <.panic: "Syntax error"> ]
+}
+
+## Lexer items
+
+# This <ws> rule treats # as "comment to eol".
+token ws {
+ <!ww>
+ [ '#' \N* \n? | \s+ ]*
+}
+
+## Statements
+
+rule statementlist { [ <statement> | <?> ] ** ';' }
+
+rule statement {
+ | <statement_control>
+ | <EXPR>
+}
+
+proto token statement_control { <...> }
+rule statement_control:sym<say> { <sym> [ <EXPR> ] ** ',' }
+rule statement_control:sym<print> { <sym> [ <EXPR> ] ** ',' }
+
+## Terms
+
+token term:sym<integer> { <integer> }
+token term:sym<quote> { <quote> }
+
+proto token quote { <...> }
+token quote:sym<'> { <?[']> <quote_EXPR: ':q'> }
+token quote:sym<"> { <?["]> <quote_EXPR: ':qq'> }
+
+## Operators
+
+INIT {
+ @lang@::Grammar.O(':prec<u>, :assoc<left>', '%multiplicative');
+ @lang@::Grammar.O(':prec<t>, :assoc<left>', '%additive');
+}
+
+token circumfix:sym<( )> { '(' <.ws> <EXPR> ')' }
+
+token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> }
+token infix:sym</> { <sym> <O('%multiplicative, :pirop<div>')> }
+
+token infix:sym<+> { <sym> <O('%additive, :pirop<add>')> }
+token infix:sym<-> { <sym> <O('%additive, :pirop<sub>')> }
+__src/@lang@/Actions.pm__
+class @lang@::Actions is HLL::Actions;
+
+method TOP($/) {
+ make PAST::Block.new( $<statementlist>.ast , :hll<@lclang@>, :node($/) );
+}
+
+method statementlist($/) {
+ my $past := PAST::Stmts.new( :node($/) );
+ for $<statement> { $past.push( $_.ast ); }
+ make $past;
+}
+
+method statement($/) {
+ make $<statement_control> ?? $<statement_control>.ast !! $<EXPR>.ast;
+}
+
+method statement_control:sym<say>($/) {
+ my $past := PAST::Op.new( :name<say>, :pasttype<call>, :node($/) );
+ for $<EXPR> { $past.push( $_.ast ); }
+ make $past;
+}
+
+method statement_control:sym<print>($/) {
+ my $past := PAST::Op.new( :name<print>, :pasttype<call>, :node($/) );
+ for $<EXPR> { $past.push( $_.ast ); }
+ make $past;
+}
+
+method term:sym<integer>($/) { make $<integer>.ast; }
+method term:sym<quote>($/) { make $<quote>.ast; }
+
+method quote:sym<'>($/) { make $<quote_EXPR>.ast; }
+method quote:sym<">($/) { make $<quote_EXPR>.ast; }
+
+method circumfix:sym<( )>($/) { make $<EXPR>.ast; }
+
+__src/@lang@/Compiler.pm__
+class @lang@::Compiler is HLL::Compiler;
+
+INIT {
+ @lang@::Compiler.language('@lang@');
+ @lang@::Compiler.parsegrammar(@lang@::Grammar);
+ @lang@::Compiler.parseactions(@lang@::Actions);
+}
+__src/@lang@/Runtime.pm__
+# language-specific runtime functions go here
+
+sub print(*@args) {
+ pir::print(pir::join('', @args));
+ 1;
+}
+
+sub say(*@args) {
+ pir::say(pir::join('', @args));
+ 1;
+}
+__src/pmc/@lclang at .pmc__
+/*
+Copyright (C) 20xx, Parrot Foundation.
+ at Id@
+
+=head1 NAME
+
+src/pmc/@lang at .pmc - @lang@
+
+=head1 DESCRIPTION
+
+These are the vtable functions for the @lang@ class.
+
+=cut
+
+=head2 Helper functions
+
+=over 4
+
+=item INTVAL size(INTERP, PMC, PMC)
+
+*/
+
+#include "parrot/parrot.h"
+
+static INTVAL
+size(Interp *interp, PMC* self, PMC* obj)
+{
+ INTVAL retval;
+ INTVAL dimension;
+ INTVAL length;
+ INTVAL pos;
+
+ if (!obj || PMC_IS_NULL(obj)) {
+ /* not set, so a simple 1D */
+ return VTABLE_get_integer(interp, self);
+ }
+
+ retval = 1;
+ dimension = VTABLE_get_integer(interp, obj);
+ for (pos = 0; pos < dimension; pos++)
+ {
+ length = VTABLE_get_integer_keyed_int(interp, obj, pos);
+ retval *= length;
+ }
+ return retval;
+}
+
+/*
+
+=back
+
+=head2 Methods
+
+=over 4
+
+=cut
+
+*/
+
+pmclass @lang@
+ extends ResizablePMCArray
+ provides array
+ group @lclang at _group
+ auto_attrs
+ dynpmc
+ {
+/*
+
+=item C<void class_init()>
+
+initialize the pmc class. Store some constants, etc.
+
+=cut
+
+*/
+
+ void class_init() {
+ }
+
+
+/*
+
+=item C<PMC* init()>
+
+initialize the instance.
+
+=cut
+
+*/
+
+void init() {
+ SUPER();
+};
+
+=item C<PMC* get()>
+
+Returns a vector-like PMC.
+
+=cut
+
+*/
+
+ METHOD PMC* get() {
+ PMC* property;
+ INTVAL array_t;
+ STRING* property_name;
+
+ property_name = string_from_literal(INTERP, "property");
+ shape = VTABLE_getprop(INTERP, SELF, property_name);
+ if (PMC_IS_NULL(property)) {
+ /*
+ * No property has been set yet. This means that we are
+ * a simple vector
+ *
+ * we use our own type here. Perhaps a better way to
+ * specify it?
+ */
+ /*
+ array_t = Parrot_pmc_get_type_str(INTERP,
+ string_from_literal(INTERP, "@lang@"));
+ */
+ property = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+
+ VTABLE_set_integer_native(INTERP, property, 1);
+ VTABLE_set_integer_keyed_int(INTERP, property, 0,
+ VTABLE_get_integer(INTERP, SELF));
+ VTABLE_setprop(INTERP, SELF, property_name, property);
+ }
+ RETURN(PMC* property);
+ }
+
+/*
+
+=item C<PMC* set()>
+
+Change the existing @lang@ by passing in an existing vector.
+
+If the new property is larger than our old property, pad the end of the vector
+with elements from the beginning.
+
+If the new property is shorter than our old property, truncate elements from
+the end of the vector.
+
+=cut
+
+*/
+
+ METHOD set(PMC *new_property) {
+ STRING* property_name;
+ PMC* old_property;
+ INTVAL old_size, new_size, pos;
+
+ /* save the old property momentarily, set the new property */
+ property_name = string_from_literal(INTERP, "property");
+ old_property = VTABLE_getprop(INTERP, SELF, property_name);
+ VTABLE_setprop(INTERP, SELF, property_name, new_property);
+
+ /* how big are these property? */
+ old_size = size(INTERP, SELF, old_property);
+ new_size = size(INTERP, SELF, new_property);
+
+ if (old_size > new_size) {
+ for (; new_size != old_size; new_size++) {
+ VTABLE_pop_pmc(INTERP, SELF);
+ }
+ } else if (new_size > old_size) {
+ pos = 0;
+ for (; new_size != old_size; old_size++, pos++) {
+ VTABLE_push_pmc(INTERP, SELF,
+ VTABLE_get_pmc_keyed_int(INTERP, SELF, pos));
+ }
+ }
+ }
+
+/*
+
+=back
+
+=cut
+
+*/
+
+}
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
+__src/ops/@lclang at .ops__
+/*
+ * @id@
+ * Copyright (C) 20xx, Parrot Foundation.
+ */
+
+BEGIN_OPS_PREAMBLE
+
+#include "parrot/dynext.h"
+
+END_OPS_PREAMBLE
+
+/* Op to get the address of a PMC. */
+inline op @lclang at _pmc_addr(out INT, invar PMC) :base_core {
+ $1 = (int) $2;
+ goto NEXT();
+}
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
+
+__t/00-sanity.t__
+# This just checks that the basic parsing and call to builtin say() works.
+say '1..4';
+say 'ok 1';
+say 'ok ', 2;
+say 'ok ', 2 + 1;
+say 'ok', ' ', 4;
+__DATA__
+
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
+
Deleted: branches/unshared_buffers/tools/dev/mk_language_shell.pl
==============================================================================
--- branches/unshared_buffers/tools/dev/mk_language_shell.pl Sun Aug 29 17:09:11 2010 (r48718)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,787 +0,0 @@
-#! perl
-# Copyright (C) 2007-2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-tools/dev/mk_language_shell.pl -- create initial files for a new language implementation
-
-=head1 SYNOPSIS
-
- % perl tools/dev/mk_language_shell.pl [options] Xyz [path]
-
-option:
-
- --with-doc
- --with-ops
- --with-pmc
-
-=head1 DESCRIPTION
-
-This script populates a directory with files for building a
-new language translator in Parrot. The first argument is the
-name of the language to be built. The C<path> argument
-says where to populate the directory, if no C<path> is specified
-then it is taken to be a subdirectory of the current directory
-with the same name as the language (converted to lowercase).
-
-For a language 'Xyz', this script will create the following
-files and directories (relative to C<path>, which defaults
-to F<xyz> if an explicit C<path> isn't given):
-
- PARROT_REVISION
- README
- setup.pir
- xyz.pir
- doc/running.pod
- doc/Xyz.pod
- src/Xyz.pir
- src/Xyz/Grammar.pm
- src/Xyz/Actions.pm
- src/Xyz/Compiler.pm
- src/Xyz/Runtime.pm
- src/pmc/xyz.pmc
- src/ops/xyz.ops
- src/xyz.pir
- t/00-sanity.t
- xyz/.ignore
-
-Any files that already exist are skipped, so this script can
-be used to repopulate a language directory with omitted files.
-
-If all goes well, after creating the language shell one can simply
-change to the language directory and type
-
- $ parrot setup.pir
- $ parrot setup.pir test
-
-to verify that the new language compiles and configures properly.
-
-=cut
-
-use strict;
-use warnings;
-
-use FindBin qw($Bin);
-use lib "$Bin/../lib"; # install location
-use lib "$Bin/../../lib"; # build location
-
-use File::Path;
-use File::Spec;
-use Getopt::Long;
-
-use Parrot::Config qw/ %PConfig /;
-
-my ($with_doc, $with_ops, $with_pmc);
-GetOptions(
- 'with-doc' => \$with_doc,
- 'with-ops' => \$with_ops,
- 'with-pmc' => \$with_pmc,
-);
-
-unless (@ARGV) {
- die "usage: $0 language [path]\n";
-}
-
-## determine the language we're trying to build
-my $lang = $ARGV[0];
-my $lclang = lc $lang;
-my $uclang = uc $lang;
-
-## the name and revision of the script, for use in the generated README
-my $script = $0;
-my $rev = '$Revision$';
-$rev =~ s/^\D*(\d+)\D*$/$1/;
-
-my $no_doc = $with_doc ? '' : '#';
-my $no_ops = $with_ops ? '' : '#';
-my $no_pmc = $with_pmc ? '' : '#';
-
-## get the path from the command line, or if not supplied then
-## use $lclang.
-my $path = $ARGV[1] || $lclang;
-
-## now loop through the file information (see below), substituting
-## any instances of @lang@, @lclang@, @UCLANG@, and @Id@ with
-## the language name or the svn id tag. If the line has the form
-## __filepath__, then start a new file.
-my $fh;
-while (<DATA>) {
- last if /^__DATA__$/;
- s{\@lang\@} {$lang}g;
- s{\@lclang\@} {$lclang}ig;
- s{\@UCLANG\@} {$uclang}ig;
- s{\@Id\@} {\$Id\$}ig;
- s{\@script\@} {$script}ig;
- s{\@rev\@} {$rev}ig;
- s{\@no_doc\@} {$no_doc}ig;
- s{\@no_ops\@} {$no_ops}ig;
- s{\@no_pmc\@} {$no_pmc}ig;
- s{\@rev\@} {$rev}ig;
- if (/^__(.*)__$/) { start_new_file("$path$PConfig{slash}$1"); }
- elsif ($fh) { print $fh $_; }
-}
-## close the last file
-close($fh) if $fh;
-
-## we're done
-1;
-
-
-## this function closes any previous opened file, and determines
-## if we're creating a new file. It also calls C<mkpath> to
-## create any needed parent subdirectories.
-sub start_new_file {
- my ($filepath) = @_;
- if ($fh) {
- close $fh;
- undef $fh;
- }
- if (-e $filepath) {
- print "skipping $filepath\n";
- return;
- }
- if (!$with_doc and $filepath =~ /doc/) {
- print "no doc: skipping $filepath\n";
- return;
- }
- if (!$with_ops and $filepath =~ /ops/) {
- print "no ops: skipping $filepath\n";
- return;
- }
- if (!$with_pmc and $filepath =~ /pmc/) {
- print "no pmc: skipping $filepath\n";
- return;
- }
- if (!$with_ops and!$with_pmc and $filepath =~ /dynext/) {
- print "no dynext: skipping $filepath\n";
- return;
- }
- my ($volume, $dir, $base) = File::Spec->splitpath($filepath);
- my $filedir = File::Spec->catpath($volume, $dir);
- unless (-d $filedir) {
- print "creating $filedir\n";
- mkpath( [ $filedir ], 0, 0777 );
- }
- print "creating $filepath\n";
- open $fh, '>', $filepath;
-
- return;
-}
-
-
-
-### The section below contains the text of the files to be created.
-### The name of the file to be created is given as C<__filepath__>,
-### and all subsequent lines up to the next C<__filepath__> are
-### placed in the file (performing substitutions on @lang@, @lclang@,
-### @UCLANG@, and @Id@ as appropriate).
-
-__DATA__
-__README__
-Language '@lang@' was created with @script@, r at rev@.
-
- $ parrot setup.pir
- $ parrot setup.pir test
-
-__setup.pir__
-#!/usr/bin/env parrot
-# @Id@
-
-=head1 NAME
-
-setup.pir - Python distutils style
-
-=head1 DESCRIPTION
-
-No Configure step, no Makefile generated.
-
-=head1 USAGE
-
- $ parrot setup.pir build
- $ parrot setup.pir test
- $ sudo parrot setup.pir install
-
-=cut
-
-.sub 'main' :main
- .param pmc args
- $S0 = shift args
- load_bytecode 'distutils.pbc'
-
- .local int reqsvn
- $P0 = new 'FileHandle'
- $P0.'open'('PARROT_REVISION', 'r')
- $S0 = $P0.'readline'()
- reqsvn = $S0
- $P0.'close'()
-
- .local pmc config
- config = get_config()
- $I0 = config['revision']
- unless $I0 goto L1
- unless reqsvn > $I0 goto L1
- $S1 = "Parrot revision r"
- $S0 = reqsvn
- $S1 .= $S0
- $S1 .= " required (currently r"
- $S0 = $I0
- $S1 .= $S0
- $S1 .= ")\n"
- print $S1
- end
- L1:
-
- $P0 = new 'Hash'
- $P0['name'] = '@lang@'
- $P0['abstract'] = 'the @lang@ compiler'
- $P0['description'] = 'the @lang@ for Parrot VM.'
-
- # build
- at no_ops@ $P1 = new 'Hash'
- at no_ops@ $P1['@lclang at _ops'] = 'src/ops/@lclang at .ops'
- at no_ops@ $P0['dynops'] = $P1
-
- at no_pmc@ $P2 = new 'Hash'
- at no_pmc@ $P3 = split ' ', 'src/pmc/@lclang at .pmc'
- at no_pmc@ $P2['@lclang at _group'] = $P3
- at no_pmc@ $P0['dynpmc'] = $P2
-
- $P4 = new 'Hash'
- $P4['src/gen_actions.pir'] = 'src/@lang@/Actions.pm'
- $P4['src/gen_compiler.pir'] = 'src/@lang@/Compiler.pm'
- $P4['src/gen_grammar.pir'] = 'src/@lang@/Grammar.pm'
- $P4['src/gen_runtime.pir'] = 'src/@lang@/Runtime.pm'
- $P0['pir_nqp-rx'] = $P4
-
- $P5 = new 'Hash'
- $P6 = split "\n", <<'SOURCES'
-src/@lclang at .pir
-src/gen_actions.pir
-src/gen_compiler.pir
-src/gen_grammar.pir
-src/gen_runtime.pir
-SOURCES
- $S0 = pop $P6
- $P5['@lclang@/@lclang at .pbc'] = $P6
- $P5['@lclang at .pbc'] = '@lclang at .pir'
- $P0['pbc_pir'] = $P5
-
- $P7 = new 'Hash'
- $P7['parrot- at lclang@'] = '@lclang at .pbc'
- $P0['installable_pbc'] = $P7
-
- # test
- $S0 = get_parrot()
- $S0 .= ' @lclang at .pbc'
- $P0['prove_exec'] = $S0
-
- # install
- $P0['inst_lang'] = '@lclang@/@lclang at .pbc'
-
- # dist
- $P0['doc_files'] = 'README'
-
- .tailcall setup(args :flat, $P0 :flat :named)
-.end
-
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
-
-__PARROT_REVISION__
- at rev@
-__doc/@lang at .pod__
-# @Id@
-
-=head1 @lang@
-
-=head1 Design
-
-=head1 SEE ALSO
-
-=cut
-
-# Local Variables:
-# fill-column:78
-# End:
-# vim: expandtab shiftwidth=4:
-__doc/running.pod__
-# @Id@
-
-=head1 Running
-
-This document describes how to use the command line @lclang@ program, which
-...
-
-=head2 Usage
-
- parrot @lclang at .pbc [OPTIONS] <input>
-
-or
-
- parrot- at lclang@@exe [OPTIONS] <input>
-
-A number of additional options are available:
-
- -q Quiet mode; suppress output of summary at the end.
-
-=cut
-
-# Local Variables:
-# fill-column:78
-# End:
-# vim: expandtab shiftwidth=4:
-
-__dynext/.ignore__
-
-__ at lclang@/.ignore__
-
-__ at lclang@.pir__
-# @Id@
-
-=head1 TITLE
-
- at lclang@.pir - A @lang@ compiler.
-
-=head2 Description
-
-This is the entry point for the @lang@ compiler.
-
-=head2 Functions
-
-=over 4
-
-=item main(args :slurpy) :main
-
-Start compilation by passing any command line C<args>
-to the @lang@ compiler.
-
-=cut
-
-.sub 'main' :main
- .param pmc args
-
- load_language '@lclang@'
-
- $P0 = compreg '@lang@'
- $P1 = $P0.'command_line'(args)
-.end
-
-=back
-
-=cut
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
-
-__src/@lclang at .pir__
-# @Id@
-
-=head1 TITLE
-
- at lclang@.pir - A @lang@ compiler.
-
-=head2 Description
-
-This is the base file for the @lang@ compiler.
-
-This file includes the parsing and grammar rules from
-the src/ directory, loads the relevant PGE libraries,
-and registers the compiler under the name '@lang@'.
-
-=head2 Functions
-
-=over 4
-
-=item onload()
-
-Creates the @lang@ compiler using a C<PCT::HLLCompiler>
-object.
-
-=cut
-
-.HLL '@lclang@'
- at no_pmc@.loadlib '@lclang at _group'
-
-.namespace []
-
-.sub '' :anon :load
- load_bytecode 'HLL.pbc'
-
- .local pmc hllns, parrotns, imports
- hllns = get_hll_namespace
- parrotns = get_root_namespace ['parrot']
- imports = split ' ', 'PAST PCT HLL Regex Hash'
- parrotns.'export_to'(hllns, imports)
-.end
-
-.include 'src/gen_grammar.pir'
-.include 'src/gen_actions.pir'
-.include 'src/gen_compiler.pir'
-.include 'src/gen_runtime.pir'
-
-=back
-
-=cut
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
-
-__src/@lang@/Grammar.pm__
-=begin overview
-
-This is the grammar for @lang@ in Perl 6 rules.
-
-=end overview
-
-grammar @lang@::Grammar is HLL::Grammar;
-
-token TOP {
- <statementlist>
- [ $ || <.panic: "Syntax error"> ]
-}
-
-## Lexer items
-
-# This <ws> rule treats # as "comment to eol".
-token ws {
- <!ww>
- [ '#' \N* \n? | \s+ ]*
-}
-
-## Statements
-
-rule statementlist { [ <statement> | <?> ] ** ';' }
-
-rule statement {
- | <statement_control>
- | <EXPR>
-}
-
-proto token statement_control { <...> }
-rule statement_control:sym<say> { <sym> [ <EXPR> ] ** ',' }
-rule statement_control:sym<print> { <sym> [ <EXPR> ] ** ',' }
-
-## Terms
-
-token term:sym<integer> { <integer> }
-token term:sym<quote> { <quote> }
-
-proto token quote { <...> }
-token quote:sym<'> { <?[']> <quote_EXPR: ':q'> }
-token quote:sym<"> { <?["]> <quote_EXPR: ':qq'> }
-
-## Operators
-
-INIT {
- @lang@::Grammar.O(':prec<u>, :assoc<left>', '%multiplicative');
- @lang@::Grammar.O(':prec<t>, :assoc<left>', '%additive');
-}
-
-token circumfix:sym<( )> { '(' <.ws> <EXPR> ')' }
-
-token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> }
-token infix:sym</> { <sym> <O('%multiplicative, :pirop<div>')> }
-
-token infix:sym<+> { <sym> <O('%additive, :pirop<add>')> }
-token infix:sym<-> { <sym> <O('%additive, :pirop<sub>')> }
-__src/@lang@/Actions.pm__
-class @lang@::Actions is HLL::Actions;
-
-method TOP($/) {
- make PAST::Block.new( $<statementlist>.ast , :hll<@lclang@>, :node($/) );
-}
-
-method statementlist($/) {
- my $past := PAST::Stmts.new( :node($/) );
- for $<statement> { $past.push( $_.ast ); }
- make $past;
-}
-
-method statement($/) {
- make $<statement_control> ?? $<statement_control>.ast !! $<EXPR>.ast;
-}
-
-method statement_control:sym<say>($/) {
- my $past := PAST::Op.new( :name<say>, :pasttype<call>, :node($/) );
- for $<EXPR> { $past.push( $_.ast ); }
- make $past;
-}
-
-method statement_control:sym<print>($/) {
- my $past := PAST::Op.new( :name<print>, :pasttype<call>, :node($/) );
- for $<EXPR> { $past.push( $_.ast ); }
- make $past;
-}
-
-method term:sym<integer>($/) { make $<integer>.ast; }
-method term:sym<quote>($/) { make $<quote>.ast; }
-
-method quote:sym<'>($/) { make $<quote_EXPR>.ast; }
-method quote:sym<">($/) { make $<quote_EXPR>.ast; }
-
-method circumfix:sym<( )>($/) { make $<EXPR>.ast; }
-
-__src/@lang@/Compiler.pm__
-class @lang@::Compiler is HLL::Compiler;
-
-INIT {
- @lang@::Compiler.language('@lang@');
- @lang@::Compiler.parsegrammar(@lang@::Grammar);
- @lang@::Compiler.parseactions(@lang@::Actions);
-}
-__src/@lang@/Runtime.pm__
-# language-specific runtime functions go here
-
-sub print(*@args) {
- pir::print(pir::join('', @args));
- 1;
-}
-
-sub say(*@args) {
- pir::say(pir::join('', @args));
- 1;
-}
-__src/pmc/@lclang at .pmc__
-/*
-Copyright (C) 20xx, Parrot Foundation.
- at Id@
-
-=head1 NAME
-
-src/pmc/@lang at .pmc - @lang@
-
-=head1 DESCRIPTION
-
-These are the vtable functions for the @lang@ class.
-
-=cut
-
-=head2 Helper functions
-
-=over 4
-
-=item INTVAL size(INTERP, PMC, PMC)
-
-*/
-
-#include "parrot/parrot.h"
-
-static INTVAL
-size(Interp *interp, PMC* self, PMC* obj)
-{
- INTVAL retval;
- INTVAL dimension;
- INTVAL length;
- INTVAL pos;
-
- if (!obj || PMC_IS_NULL(obj)) {
- /* not set, so a simple 1D */
- return VTABLE_get_integer(interp, self);
- }
-
- retval = 1;
- dimension = VTABLE_get_integer(interp, obj);
- for (pos = 0; pos < dimension; pos++)
- {
- length = VTABLE_get_integer_keyed_int(interp, obj, pos);
- retval *= length;
- }
- return retval;
-}
-
-/*
-
-=back
-
-=head2 Methods
-
-=over 4
-
-=cut
-
-*/
-
-pmclass @lang@
- extends ResizablePMCArray
- provides array
- group @lclang at _group
- auto_attrs
- dynpmc
- {
-/*
-
-=item C<void class_init()>
-
-initialize the pmc class. Store some constants, etc.
-
-=cut
-
-*/
-
- void class_init() {
- }
-
-
-/*
-
-=item C<PMC* init()>
-
-initialize the instance.
-
-=cut
-
-*/
-
-void init() {
- SUPER();
-};
-
-=item C<PMC* get()>
-
-Returns a vector-like PMC.
-
-=cut
-
-*/
-
- METHOD PMC* get() {
- PMC* property;
- INTVAL array_t;
- STRING* property_name;
-
- property_name = string_from_literal(INTERP, "property");
- shape = VTABLE_getprop(INTERP, SELF, property_name);
- if (PMC_IS_NULL(property)) {
- /*
- * No property has been set yet. This means that we are
- * a simple vector
- *
- * we use our own type here. Perhaps a better way to
- * specify it?
- */
- /*
- array_t = Parrot_pmc_get_type_str(INTERP,
- string_from_literal(INTERP, "@lang@"));
- */
- property = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, property, 1);
- VTABLE_set_integer_keyed_int(INTERP, property, 0,
- VTABLE_get_integer(INTERP, SELF));
- VTABLE_setprop(INTERP, SELF, property_name, property);
- }
- RETURN(PMC* property);
- }
-
-/*
-
-=item C<PMC* set()>
-
-Change the existing @lang@ by passing in an existing vector.
-
-If the new property is larger than our old property, pad the end of the vector
-with elements from the beginning.
-
-If the new property is shorter than our old property, truncate elements from
-the end of the vector.
-
-=cut
-
-*/
-
- METHOD set(PMC *new_property) {
- STRING* property_name;
- PMC* old_property;
- INTVAL old_size, new_size, pos;
-
- /* save the old property momentarily, set the new property */
- property_name = string_from_literal(INTERP, "property");
- old_property = VTABLE_getprop(INTERP, SELF, property_name);
- VTABLE_setprop(INTERP, SELF, property_name, new_property);
-
- /* how big are these property? */
- old_size = size(INTERP, SELF, old_property);
- new_size = size(INTERP, SELF, new_property);
-
- if (old_size > new_size) {
- for (; new_size != old_size; new_size++) {
- VTABLE_pop_pmc(INTERP, SELF);
- }
- } else if (new_size > old_size) {
- pos = 0;
- for (; new_size != old_size; old_size++, pos++) {
- VTABLE_push_pmc(INTERP, SELF,
- VTABLE_get_pmc_keyed_int(INTERP, SELF, pos));
- }
- }
- }
-
-/*
-
-=back
-
-=cut
-
-*/
-
-}
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
-__src/ops/@lclang at .ops__
-/*
- * @id@
- * Copyright (C) 20xx, Parrot Foundation.
- */
-
-BEGIN_OPS_PREAMBLE
-
-#include "parrot/dynext.h"
-
-END_OPS_PREAMBLE
-
-/* Op to get the address of a PMC. */
-inline op @lclang at _pmc_addr(out INT, invar PMC) :base_core {
- $1 = (int) $2;
- goto NEXT();
-}
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
-
-__t/00-sanity.t__
-# This just checks that the basic parsing and call to builtin say() works.
-say '1..4';
-say 'ok 1';
-say 'ok ', 2;
-say 'ok ', 2 + 1;
-say 'ok', ' ', 4;
-__DATA__
-
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
-
Modified: branches/unshared_buffers/tools/dev/mk_native_pbc
==============================================================================
--- branches/unshared_buffers/tools/dev/mk_native_pbc Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/tools/dev/mk_native_pbc Sun Aug 29 17:09:11 2010 (r48719)
@@ -137,18 +137,6 @@
perl t/harness t/native_pbc/number.t && \
perl t/harness t/native_pbc/string.t
-./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
-
if [ "$enable_long_double" = "1" ]; then
if [ "$1" = "--noconf" ]; then
echo "Hmm. You have no long double, and we want to try --floatval=long double"
Copied: branches/unshared_buffers/tools/dev/ncidef2pasm.pl (from r48712, trunk/tools/dev/ncidef2pasm.pl)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/ncidef2pasm.pl Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/ncidef2pasm.pl)
@@ -0,0 +1,237 @@
+#! perl
+
+# Copyright (C) 2003-2007, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+tools/dev/ncidef2asm.pl - Turn an NCI library definition file into PASM
+
+=head1 SYNOPSIS
+
+ perl tools/dev/ncidef2asm.pl path/to/from_file [ path/to/to_file ]
+
+=head1 DESCRIPTION
+
+This program takes an NCI library definition file and turns it into PASM.
+
+An NCI library definition file provides the information needed to
+generate a parrot wrapper for the named library (or libraries). Its
+format is simple, and looks like:
+
+ [package]
+ ncurses
+
+ [lib]
+ libform.so
+
+ [defs]
+ p new_field i i i i i i
+
+ [lib]
+ libncurses.so
+
+ [defs]
+ i is_term_resized i i
+
+Note that the assembly file is generated in the order you specify, so
+if there are library dependencies, make sure you have them in the
+correct order.
+
+=head2 package
+
+Declares the package that all subsequent sub PMCs will be put
+into. The name is a simple concatenation of the package name, double
+colon, and the routine name, with no preceding punctuation.
+
+=head2 lib
+
+The name of the library to be loaded. Should be as qualified as
+necessary for your platform--generally the full filename is required,
+though the directory generally isn't.
+
+You may load multiple libraries here, but only the last one loaded
+will be exposed to subsequent defs.
+
+=head2 defs
+
+This section holds the definitions of functions. Each function is
+assumed to be in the immediate preceding library. The definition of
+the function is:
+
+ return_type name [param [param [param ...]]]
+
+The param and return_type parameters use the NCI standard, which for
+reference is:
+
+=over 4
+
+=item p
+
+Parameter is a void pointer, taken from the PMC's data pointer. PMC is
+assumed to be an unmanagedstruct or child class.
+
+Taken from a P register
+
+=item c
+
+Parameter is a character.
+
+Taken from an I register
+
+=item s
+
+Parameter is a short
+
+Taken from an I register
+
+=item i
+
+Parameter is an int
+
+Taken from an I register
+
+=item l
+
+Parameter is a long
+
+Taken from an I register
+
+=item f
+
+Paramter is a float
+
+Taken from an N register.
+
+=item d
+
+Parameter is a double.
+
+Taken from an N register.
+
+=item t
+
+Paramter is a char *, presumably a C string
+
+Taken from an S register
+
+=item v
+
+Void. Only valid as a return type, noting that the function returns no data.
+
+=item I
+
+Interpreter pointer. The current interpreter pointer is passed in
+
+=item P
+
+PMC.
+
+=item 2
+
+Pointer to short.
+
+Taken from an I register.
+
+=item 3
+
+Pointer to int.
+
+Taken from an I register
+
+=item 4
+
+Pointer to long
+
+Taken from an I register
+
+=back
+
+=cut
+
+use strict;
+use warnings;
+
+my ( $from_file, $to_file ) = @ARGV;
+
+# If there is no destination file, strip off the extension of the
+# source file and add a .pasm to it
+if ( !defined $to_file ) {
+ $to_file = $from_file;
+ $to_file =~ s/\..*$//;
+ $to_file .= ".pasm";
+}
+
+open my $INPUT, '<', "$from_file" or die "Can't open up $from_file, error $!";
+open my $OUTPUT, '>', "$to_file" or die "Can't open up $to_file, error $!";
+
+# To start, save all the registers, just in case
+print $OUTPUT "saveall\n";
+
+my @libs;
+my ( $cur_package, $line, $cur_section );
+
+# Our dispatch table
+my (%dispatch) = (
+ package => \&package_line,
+ lib => \&lib_line,
+ defs => \&def_line,
+);
+
+while ( $line = <$INPUT> ) {
+
+ # Throw away trailing newlines, comments, and whitespace. If the
+ # line's empty, then off to the next line
+ chomp $line;
+ $line =~ s/#.*//;
+ $line =~ s/\s*$//;
+ next unless $line;
+
+ # Is it a section line? If so, extract the section and set it.
+ if ( $line =~ /\[(\w+)\]/ ) {
+ $cur_section = $1;
+ next;
+ }
+
+ # Everything else goes to the handler
+ $dispatch{$cur_section}->($line);
+
+}
+
+# Put the registers back and end
+print $OUTPUT "restoreall\n";
+print $OUTPUT "end\n";
+close $OUTPUT;
+
+sub package_line {
+ my $line = shift;
+
+ # Trim leading and trailing spaces
+ $line =~ s/^\s*//;
+ $line =~ s/\s*$//;
+
+ # Set the global current package
+ $cur_package = $line;
+
+}
+
+sub lib_line {
+ my $line = shift;
+ print $OUTPUT "loadlib P1, '$line'\n";
+}
+
+sub def_line {
+ my $line = shift;
+ my ( $return_type, $name, @params ) = split ' ', $line;
+ unshift @params, $return_type;
+ my $signature = join( "", @params );
+ print $OUTPUT "dlfunc P2, P1, '$name', '$signature'\n";
+ print $OUTPUT "store_global '${cur_package}::${name}', P2\n";
+}
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Copied: branches/unshared_buffers/tools/dev/parrot-config.pir (from r48712, trunk/tools/dev/parrot-config.pir)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/parrot-config.pir Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/parrot-config.pir)
@@ -0,0 +1,103 @@
+#!/usr/bin/env parrot
+# $Id$
+
+=head1 NAME
+
+config.pir - Print a Parrot configuration item
+
+=head1 VERSION
+
+version 0.01
+
+=head1 SYNOPSIS
+
+ ./parrot parrot-config.pir VERSION
+ ./parrot parrot-config.pir ccflags
+ ./parrot parrot-config.pir --dump
+
+=head1 DESCRIPTION
+
+Print out configuration items.
+
+=head1 AUTHOR
+
+Leopold Toetsch E<lt>lt at toetsch.atE<gt>.
+
+=head1 COPYRIGHT
+
+Copyright (C) 2004-2009, Parrot Foundation.
+
+=cut
+
+.sub _main :main
+ .param pmc argv
+ .local int argc
+ argc = argv
+ if argc < 2 goto usage
+ .local pmc interp, conf_hash
+ .local string key
+ .include "iglobals.pasm"
+ interp = getinterp
+ conf_hash = interp[.IGLOBALS_CONFIG_HASH]
+ .local int i
+ i = 1
+loop:
+ key = argv[i]
+ if key == '--help' goto usage
+ if key == '--dump' goto dump
+ $I0 = defined conf_hash[key]
+ unless $I0 goto failkey
+ dec argc
+ if i < argc goto dumpsome
+ $S0 = conf_hash[key]
+ print $S0
+ inc i
+ if i < argc goto loop
+ print "\n"
+ end
+dumpsome:
+ key = argv[i]
+ $I0 = defined conf_hash[key]
+ unless $I0 goto failkey
+ print key
+ print " => '"
+ $S1 = conf_hash[key]
+ print $S1
+ say "'"
+ inc i
+ if i <= argc goto dumpsome
+ end
+failkey:
+ print " no such key: '"
+ print key
+ print "'\n"
+ end
+dump:
+ .local pmc iterator
+ iterator = iter conf_hash
+iter_loop:
+ unless iterator goto iter_end
+ shift $S0, iterator
+ print $S0
+ print " => '"
+ $S1 = conf_hash[$S0]
+ print $S1
+ say "'"
+ goto iter_loop
+iter_end:
+ end
+usage:
+ $S0 = argv[0]
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'($S0)
+ $P1.'print'(" [ <config-key> [ <config-key> ... ] | --dump | --help ]\n")
+ exit 1
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/unshared_buffers/tools/dev/pbc_to_exe.pir
==============================================================================
--- branches/unshared_buffers/tools/dev/pbc_to_exe.pir Sun Aug 29 02:05:11 2010 (r48718)
+++ branches/unshared_buffers/tools/dev/pbc_to_exe.pir Sun Aug 29 17:09:11 2010 (r48719)
@@ -18,10 +18,10 @@
pbc_to_exe my.pbc --install
=> installable_my.exe
-Warning! With --install there must be no directory prefix in the first arg yet.
-
=cut
+.include 'interpcores.pasm'
+
.sub 'main' :main
.param pmc argv
@@ -31,8 +31,10 @@
.local string cfile
.local string objfile
.local string exefile
+ .local int runcore
+ .local int install
- (infile :optional, cfile :optional, objfile :optional, exefile :optional) = 'handle_args'(argv)
+ (infile, cfile, objfile, exefile, runcore, install) = 'handle_args'(argv)
unless infile > '' goto err_infile
.local string code_type
@@ -66,6 +68,10 @@
print outfh, codestring
+ print outfh, '#define RUNCORE '
+ print outfh, runcore
+ print outfh, "\n"
+
print outfh, <<'MAIN'
int main(int argc, const char *argv[])
{
@@ -86,6 +92,7 @@
Parrot_init_stacktop(interp, &interp);
Parrot_set_executable_name(interp,
Parrot_str_new(interp, argv[0], 0));
+ Parrot_set_run_core(interp, (Parrot_Run_core_t)RUNCORE);
Parrot_set_flag(interp, PARROT_DESTROY_FLAG);
pf = PackFile_new(interp, 0);
@@ -122,8 +129,8 @@
no_extra:
- 'compile_file'(cfile, objfile)
- 'link_file'(objfile, exefile, extra_obj)
+ 'compile_file'(cfile, objfile, install)
+ 'link_file'(objfile, exefile, extra_obj, install)
.return ()
err_infile:
@@ -143,49 +150,99 @@
obj = $P0['o']
exe = $P0['exe']
- .local pmc args
- args = argv
-
- .local int argc
- argc = args
+ load_bytecode 'Getopt/Obj.pbc'
+ .local pmc getopt
+ getopt = new ['Getopt';'Obj']
+ push getopt, 'install|i'
+ push getopt, 'runcore|R:s'
+ push getopt, 'output|o:s'
+ push getopt, 'help|h'
+
+ $P0 = shift argv # ignore program name
+ .local pmc opts
+ opts = getopt.'get_options'(argv)
+
+ .local int help
+ .local int install
+ .local string runcore
+ .local string outfile
+ help = opts['help']
+ install = opts['install']
+ runcore = opts['runcore']
+ outfile = opts['output']
+
+ unless help goto end_help
+ $P0 = getstderr
+ print $P0, <<'HELP'
+pbc_to_exe [options] <file>
+ Options:
+ -h --help
+ -i --install
+ -R --runcore=slow|fast
+ -o --output=FILE
+HELP
+ exit 0
+ end_help:
- if argc == 2 goto proper_args
- if argc == 3 goto check_install
- .return ()
-
- check_install:
- .local string infile, install
+ .local string infile
+ infile = shift argv
- $P0 = shift args
- infile = shift args
- install = shift args
- if install == '--install' goto proper_install
- .return ()
+ $S0 = substr infile, -4, 4
+ $S0 = downcase $S0
+ unless $S0 != '.pbc' goto done_pbc_extn_check
+ die "input pbc file name does not end in '.pbc'"
+ done_pbc_extn_check:
- proper_install:
.local string cfile, objfile, exefile
+ if outfile == '' goto no_outfile
+ $I0 = length exe
+ $I1 = - $I0
+ $S0 = substr outfile, $I1, $I0
+ $S0 = downcase $S0
+ $S1 = downcase exe
+ unless $S0 != $S1 goto done_exe_extn_check
+ $S0 = "output executable name does not end in `" . exe
+ $S0 = $S0 . "'"
+ die $S0
+ done_exe_extn_check:
+ outfile = replace outfile, $I1, $I0, ''
+
+ cfile = outfile . '.c'
+ objfile = outfile . obj
+ exefile = outfile . exe
+ goto end_outfile
+ no_outfile:
+ # substitute .c for .pbc
+ # remove .c for executable
+ outfile = replace infile, -4, 4, '' # remove .pbc extension
+ cfile = outfile . '.c'
+ objfile = outfile . obj
+ exefile = outfile . exe
+ unless install goto end_installable
+ exefile = 'prepend_installable'(exefile)
+ end_installable:
+ end_outfile:
+
+ .local int runcore_code
+ unless runcore == 'slow' goto end_slow_core
+ runcore_code = .PARROT_SLOW_CORE
+ goto done_runcore
+ end_slow_core:
+ unless runcore == 'fast' goto end_fast_core
+ runcore_code = .PARROT_FAST_CORE
+ goto done_runcore
+ end_fast_core:
+ unless runcore == '' goto end_unspecified_core
+ runcore_code = .PARROT_FAST_CORE
+ goto done_runcore
+ end_unspecified_core:
+ # invalid runcore name
+ $S0 = "Unsupported runcore: `" . runcore
+ $S0 = $S0 . "'"
+ die $S0
+ done_runcore:
- cfile = 'replace_pbc_extension'(infile, '.c')
- objfile = 'replace_pbc_extension'(infile, obj)
- $S0 = 'replace_pbc_extension'(infile, exe)
- exefile = 'prepend_installable'($S0)
-
- .return(infile, cfile, objfile, exefile)
-
- proper_args:
-
- $P0 = shift args
- infile = shift args
-
- cfile = 'replace_pbc_extension'(infile, '.c')
- objfile = 'replace_pbc_extension'(infile, obj)
- exefile = 'replace_pbc_extension'(infile, exe)
-
- # substitute .c for .pbc
- # remove .c for executable
-
- # TODO this should complain about results/returns mismatch
- .return(infile, cfile, objfile, exefile)
+ .return (infile, cfile, objfile, exefile, runcore_code, install)
.end
.sub 'determine_code_type'
@@ -518,7 +575,7 @@
.sub 'compile_file'
.param string cfile
.param string objfile
- .param int install :optional
+ .param int install
$P0 = '_config'()
.local string cc, ccflags, cc_o_out, osname, build_dir, slash
@@ -578,7 +635,7 @@
.param string objfile
.param string exefile
.param string extra_obj
- .param int install :optional
+ .param int install
$P0 = '_config'()
.local string cc, link, link_dynamic, linkflags, ld_out, libparrot, libs, o
@@ -607,7 +664,7 @@
config = concat build_dir, slash
config .= 'src'
config .= slash
- if exeprefix == 'installable_' goto config_to_install
+ if install goto config_to_install
config .= 'parrot_config'
goto config_cont
config_to_install:
Copied: branches/unshared_buffers/tools/dev/perlcritic-cage.conf (from r48712, trunk/tools/dev/perlcritic-cage.conf)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/perlcritic-cage.conf Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/perlcritic-cage.conf)
@@ -0,0 +1,37 @@
+# A more stringent set of rules for cage cleaners
+
+[-CodeLayout::ProhibitParensWithBuiltins]
+[CodeLayout::ProhibitHardTabs]
+allow_leading_tabs = 0
+
+[-CodeLayout::RequireTidyCode]
+
+[-ControlStructures::ProhibitPostfixControls]
+[-ControlStructures::ProhibitUnlessBlocks]
+
+[-Documentation::PodSpelling]
+[-Documentation::RequirePodAtEnd]
+[-Documentation::RequirePodSections]
+
+[-ErrorHandling::RequireCarping]
+
+[-InputOutput::ProhibitBacktickOperators]
+[-InputOutput::ProhibitInteractiveTest]
+[-InputOutput::RequireCheckedSyscalls]
+functions = :builtins
+exclude_functions = print
+
+[-Miscellanea::RequireRcsKeywords]
+
+[-Modules::RequireVersionVar]
+
+[-RegularExpressions::ProhibitEscapedMetacharacters]
+[-RegularExpressions::RequireDotMatchAnything]
+[-RegularExpressions::RequireExtendedFormatting]
+[-RegularExpressions::RequireLineBoundaryMatching]
+
+[-ValuesAndExpressions::ProhibitConstantPragma]
+[-ValuesAndExpressions::ProhibitEmptyQuotes]
+[-ValuesAndExpressions::ProhibitMagicNumbers]
+
+[-Variables::ProhibitPunctuationVars]
Copied: branches/unshared_buffers/tools/dev/perlcritic.conf (from r48712, trunk/tools/dev/perlcritic.conf)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/perlcritic.conf Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/perlcritic.conf)
@@ -0,0 +1,75 @@
+verbose = 3
+
+# not all the profiles listed here are installed by default, even if you have
+# Perl::Critic. Shhhh.
+profile-strictness = quiet
+
+[BuiltinFunctions::ProhibitStringySplit]
+add_themes = parrot
+
+[CodeLayout::ProhibitDuplicateCoda]
+add_themes = parrot
+
+[CodeLayout::ProhibitHardTabs]
+allow_leading_tabs = 0
+add_themes = parrot
+
+[CodeLayout::ProhibitTrailingWhitespace]
+add_themes = parrot
+
+[CodeLayout::RequireTidyCode]
+perltidyrc = tools/dev/perltidy.conf
+add_themes = extra
+
+[CodeLayout::UseParrotCoda]
+add_themes = parrot
+
+[InputOutput::ProhibitBarewordFileHandles]
+add_themes = parrot
+
+[InputOutput::ProhibitTwoArgOpen]
+add_themes = parrot
+
+[NamingConventions::ProhibitAmbiguousNames]
+# remove abstract from the list of forbidden names
+forbid = bases close contract last left no record right second set
+add_themes = extra
+
+[Subroutines::ProhibitBuiltinHomonyms]
+add_themes = extra
+
+[Subroutines::ProhibitExplicitReturnUndef]
+add_themes = parrot
+
+[Subroutines::ProhibitSubroutinePrototypes]
+add_themes = parrot
+
+[Subroutines::RequireFinalReturn]
+add_themes = extra
+
+[TestingAndDebugging::MisplacedShebang]
+add_themes = parrot
+
+[TestingAndDebugging::ProhibitShebangWarningsArg]
+add_themes = parrot
+
+[TestingAndDebugging::RequirePortableShebang]
+add_themes = parrot
+
+[TestingAndDebugging::RequireUseStrict]
+add_themes = parrot
+
+[TestingAndDebugging::RequireUseWarnings]
+add_themes = parrot
+
+[ValuesAndExpressions::ProhibitInterpolationOfLiterals]
+add_themes = extra
+
+[Variables::ProhibitConditionalDeclarations]
+add_themes = parrot
+
+[Bangs::ProhibitFlagComments]
+add_themes = extra
+
+[Bangs::ProhibitRefProtoOrProto]
+add_themes = extra
Copied: branches/unshared_buffers/tools/dev/perltidy.conf (from r48712, trunk/tools/dev/perltidy.conf)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/perltidy.conf Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/perltidy.conf)
@@ -0,0 +1,15 @@
+# A declarative version of PDD07 for perl.
+
+# Must apply...
+
+-l=100 # Source line width is limited to 100 characters.
+-i=4 # must be indented four columns (no tabs)
+-ola # Labels (including case labels) must be outdented two columns
+-ci=4 # Long lines, when split, must use at least one extra level of indentation on the continued line.
+-ce # Cuddled elses are forbidden: i.e. avoid } else { .
+
+# Nice to haves...
+
+# Freeze new lines; some really short lines look good the way they
+# are, this should stop perltidy from merging them together
+-fnl
Copied: branches/unshared_buffers/tools/dev/update_copyright.pl (from r48712, trunk/tools/dev/update_copyright.pl)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/dev/update_copyright.pl Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/dev/update_copyright.pl)
@@ -0,0 +1,63 @@
+#! perl
+# $Id$
+
+# Copyright (C) 2008, Parrot Foundation.
+
+use strict;
+use warnings;
+use Fatal qw( open close );
+
+=head1 NAME
+
+F<tools/dev/update_copyright.pl>
+
+=head1 DESCRIPTION
+
+Given a list of files as command line arguments, update the copyright
+notice to go from the earliest year noted to the current year.
+
+Edits the files in place. You should update the copyright on a modified
+file before you commit it back to the repository.
+
+=cut
+
+use lib 'lib';
+use Parrot::Test;
+
+# Accept a little fuzz in the original copyright notice..
+my $copyright_re = qr/
+ Copyright \s+ \(C\) \s+
+ (\d\d\d\d)\s*(?:-\s*\d\d\d\d)? \s* ,? \s*
+ The \s+ Perl \s+ Foundation\.?
+/xi;
+
+my $year = (localtime())[5]+1900;
+
+# loop over all the files specified on the command line
+foreach my $file (@ARGV) {
+ my $contents = Parrot::Test::slurp_file( $file );
+ if ( $contents =~ $copyright_re) {
+ my $old_year = $1;
+ if ($old_year eq $year) {
+ warn "$file already up to date.\n";
+ next;
+ }
+ else {
+ $contents =~ s/$copyright_re/Copyright (C) $old_year-$year, Parrot Foundation./;
+ open my $ofh, '>', $file;
+ print {$ofh} $contents;
+ close $ofh;
+ }
+ }
+ else {
+ warn "$file doesn't have a valid copyright line.\n";
+ }
+}
+
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Copied: branches/unshared_buffers/tools/release/README (from r48712, trunk/tools/release/README)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/release/README Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/release/README)
@@ -0,0 +1,5 @@
+# $Id$
+README for tools/release/
+
+This directory is intended to hold programs, templates and configuration files
+useful during the release process.
Copied: branches/unshared_buffers/tools/release/crow.pir (from r48712, trunk/tools/release/crow.pir)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/release/crow.pir Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/release/crow.pir)
@@ -0,0 +1,107 @@
+#! ./parrot
+# Copyright (C) 2007-2008, Parrot Foundation.
+# $Id$
+
+=head1 TITLE
+
+crow.pir -- Make noise about the new Parrot release
+
+=head1 DESCRIPTION
+
+This utility is used to help Release Managers format announcement messages.
+It uses a *very* simple and fast templating system, described in the related
+module, L<runtime/parrot/library/Crow.pir>.
+
+=head1 SYNOPSIS
+
+ # see
+ % parrot tools/release/crow.pir --help
+
+=cut
+
+
+.sub 'main' :main
+ .param pmc args
+
+ load_bytecode 'Crow.pbc'
+
+ .local pmc exports, curr_namespace, test_namespace
+ curr_namespace = get_namespace
+ test_namespace = get_namespace ['Crow']
+ exports = split ' ', 'get_news get_args process'
+ test_namespace.'export_to'(curr_namespace, exports)
+
+ .local pmc opts
+ opts = get_args(args)
+
+ unless null opts goto got_opts
+ opts = new 'Hash'
+ got_opts:
+
+ .local pmc templates
+ templates = 'get_json'('tools/release/templates.json')
+
+ .local string template, type
+ type = opts['type']
+ if type != '' goto got_type
+ type = 'text'
+
+got_type:
+ template = 'get_template'(templates, type)
+
+ .local pmc data
+ data = 'get_json'('tools/release/release.json')
+
+ .local string version
+ version = data['release.version']
+
+ $S0 = concat type, '.news'
+ $I0 = templates[$S0]
+ if $I0 goto get_news
+ data['NEWS'] = ''
+ goto process
+ get_news:
+ $S0 = 'get_news'(version)
+ data['NEWS'] = $S0
+
+
+ process:
+ .local string result
+ result = process(template, data)
+ say result
+.end
+
+
+.sub 'get_json'
+ .param string filename
+
+ load_bytecode 'Config/JSON.pbc'
+
+ .local pmc exports, curr_namespace, test_namespace
+ curr_namespace = get_namespace
+ test_namespace = get_namespace [ 'Config';'JSON' ]
+ exports = split ' ', 'ReadConfig'
+ test_namespace.'export_to'(curr_namespace, exports)
+
+ .local pmc result
+ result = ReadConfig(filename)
+
+ .return (result)
+.end
+
+
+.sub 'get_template'
+ .param pmc templates
+ .param string type
+
+ $S0 = concat type, '.text'
+ $S1 = templates[$S0]
+ .return ($S1)
+.end
+
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/unshared_buffers/tools/release/gen_release_info.pl (from r48712, trunk/tools/release/gen_release_info.pl)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/release/gen_release_info.pl Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/release/gen_release_info.pl)
@@ -0,0 +1,63 @@
+#! perl
+# Copyright (C) 2008, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+
+=head1 NAME
+
+tools/release/gen_release_info.pl - generate release info for graphs and charts
+
+=head1 DESCRIPTION
+
+This utility generates release information from subversion in csv format,
+suitable for graphs, charts, and reports.
+
+=cut
+
+
+my $repo_url = 'https://svn.parrot.org/parrot/tags';
+
+## create a release information data structure
+my $r = {
+ map { $_->{number} => $_ }
+ map { m{^(RELEASE_)(.*)/}
+ ? {
+ tag => "$1$2",
+ number => sub{$a = shift; $a =~ y/_/./; $a }->($2),
+ }
+ : ()
+ }
+ qx { svn ls $repo_url }
+};
+
+## gather interesting release-related information from the tag
+map {
+ ## ask subversion for info about the tag
+ my $readme = $repo_url . '/' . $r->{$_}{tag};
+ warn "retrieving info on $readme\n";
+ my $info = qx{ LANG=C svn info $readme };
+
+ ## pull the interesting items
+ $info =~ m{Author: (\S+)} and $r->{$_}{author} = $1;
+ $info =~ m{Rev: (\S+)} and $r->{$_}{revision} = $1;
+ $info =~ m{Date: (\S+)} and $r->{$_}{date} = $1;
+} keys %{ $r };
+
+
+## output info in csv format
+print
+ map { "$_\n" }
+ map { my $n = $_; join ',' =>
+ map { $r->{$n}{$_} || '' }
+ qw{ tag number author revision date }
+ }
+ sort keys %$r;
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Copied: branches/unshared_buffers/tools/release/inc_ver.pir (from r48712, trunk/tools/release/inc_ver.pir)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/release/inc_ver.pir Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/release/inc_ver.pir)
@@ -0,0 +1,48 @@
+#!/usr/bin/env parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+.sub 'main' :main
+ .local string version_file_name
+ version_file_name = 'VERSION'
+
+ # read the version
+ $P0 = new 'FileHandle'
+ $P0.'open'( version_file_name, 'r' )
+ $S0 = $P0.'readline'()
+ $P0.'close'()
+
+ print 'version: '
+ print $S0
+
+ # split the version
+ $P1 = split '.', $S0
+
+ # increment version
+ $I0 = $P1[1]
+ inc $I0
+ if $I0 != 12 goto NOT_NILL
+ $I0 = $P1[0]
+ inc $I0
+ $P1[0] = $I0
+ $I0 = 0
+NOT_NILL:
+ $P1[1] = $I0
+
+ # join the incremented version
+ $S0 = join '.', $P1
+
+ print 'new version: '
+ print $S0
+
+ # write the new version to the version_file
+ $P0.'open'( version_file_name, 'w' )
+ $P0.'print'( $S0 )
+ $P0.'close'()
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/unshared_buffers/tools/release/release.json (from r48712, trunk/tools/release/release.json)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/release/release.json Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/release/release.json)
@@ -0,0 +1,21 @@
+{
+ "release.version" : "2.7.0",
+ "release.name" : "Australian King",
+ "release.day" : "Tuesday",
+ "release.date" : "17 August 2010",
+ "release.nextdate" : "21 September 2010",
+
+ "web.root" : "http://parrot.org/",
+ "web.source" : "download",
+ "web.openpatches" : "openpatches.html",
+ "web.repository" : "https://svn.parrot.org/parrot/trunk/",
+
+ "bugday.day" : "Saturday",
+ "bugday.date" : "18 September 2010",
+
+ "wiki.root" : "https://trac.parrot.org/parrot/wiki/",
+ "wiki.bugday" : "bug_day_2010_09_18",
+
+ "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/releases/devel/2.7.0/",
+ "subversion.root" : "http://subversion.apache.org/"
+}
Copied: branches/unshared_buffers/tools/release/templates.json (from r48712, trunk/tools/release/templates.json)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/unshared_buffers/tools/release/templates.json Sun Aug 29 17:09:11 2010 (r48719, copy of r48712, trunk/tools/release/templates.json)
@@ -0,0 +1,83 @@
+{
+ "text.news" : true,
+ "text.text" : "
+
+On behalf of the Parrot team, I'm proud to announce Parrot @release.version@
+\"@release.name at .\" Parrot (@web.root@) is a virtual machine aimed
+at running all dynamic languages.
+
+Parrot @release.version@ is available on Parrot's FTP site, or follow the
+download instructions at @web.root@@web.source at . For those who would like to
+develop on Parrot, or help develop Parrot itself, we recommend using Subversion
+on the source code repository to get the latest and best Parrot code.
+
+Parrot @release.version@ News:
+ at NEWS@
+
+Many thanks to all our contributors for making this possible, and our sponsors
+for supporting this project. Our next scheduled release is @release.nextdate at .
+
+Enjoy!
+
+",
+
+ "html.news" : true,
+ "html.text" : "
+<p>On behalf of the Parrot team, I'm proud to announce Parrot @release.version@
+"@release.name at ." <a href=\"@web.root@\">Parrot</a>
+is a virtual machine aimed at running all dynamic languages.</p>
+
+<p>Parrot @release.version@ is available on <a href=\"@ftp.path@\">Parrot's FTP
+site</a>, or <a href=\"@web.root@@web.source@\">follow the download
+instructions</a>. For those who would like to develop on Parrot, or help
+develop Parrot itself, we recommend using <a
+href=\"@subversion.root@\">Subversion</a> on <a href=\"@web.repository@\">our
+source code repository</a> to get the latest and best Parrot code.</p>
+
+<p>Parrot @release.version@ News:<br/>
+<pre>@NEWS@</pre></p>
+
+<p>Thanks to all our contributors for making this possible, and our sponsors
+for supporting this project. Our next release is @release.nextdate at .</p>
+
+<p>Enjoy!</p>
+",
+
+ "bugday.news" : false,
+ "bugday.text" : "
+Bug Day
+
+On @bugday.day@, @bugday.date@, please join us on IRC in #parrot
+(irc.parrot.org) to work on closing out as many Trac tickets
+(https://trac.parrot.org) tickets as possible in the parrot queue. This will
+help us get ready for the next release of parrot: @release.version@, scheduled
+for @release.day@, @release.date at . You'll find C, parrot assembly, perl,
+documentation, and plenty of tasks to go around. Core developers will be
+available most of the day (starting at around 10am GMT) to answer questions.
+
+No experience with parrot necessary.
+
+--From: @wiki.root@@wiki.bugday at --
+
+Check the list at:
+
+https://trac.parrot.org/parrot/report/3
+
+Which contains all the tickets I'd like to see resolved in @version at . To
+see all the open tickets, use:
+
+https://trac.parrot.org/parrot/report
+
+If you've got something you're working on that you think you'll be
+getting done before the release, please
+- add a ticket for it (if necessary);
+- set its milestone to this release.
+
+Thanks in advance for your patches and commits. ^_^
+
+... Speaking of patches, we should also get through as many of these
+(accept or reject) as possible.
+
+ at web.root@@web.openpatches@
+"
+}
More information about the parrot-commits
mailing list